[risolto] Nuova pagina lista oggetti (gdrcd)
Pagine → 1 2
25/07/2025 09:39:00
Ciao!
allora, la differenza è questa
Percorso assoluto:
<img src="https://www.miosito.com/immagini/foto.jpg" alt="Foto">
È l'indirizzo completo della risorsa che stai cercando, include il dominio che hai registrato (l'indirizzo della tua land, per intenderci).
mentre il path relativo
<img src="/immagini/foto.jpg" alt="Foto">
È relativo alla posizione del file HTML corrente, quindi alla pagina da cui viene richiamato. facendo esempio con GDRCD , se stai lavorando ad un file dentro pages, per referenziare un file o una icona in theme il percorso relativo è "../theme/advanced/imgs/immagine.png"
quindi deve tenere conto di dove si trova il file dentro la tua land.
Non so se mi sono spiegato bene... :D
25/07/2025 11:11:55
@cbr89: ti ringrazio tanto per la risposta! In effetti mi era venuto il dubbio perchè, pur integrando il tutto come da pacchetto e secondo indicazioni, il folder immagini degli oggetti non funziona poiché non compare alcuna immagine. Non so se sono io a sbagliare oppure c'è un bug nel codice postato nel pacchetto di Haruka.
25/07/2025 11:16:12
Sicurament potrebbe essere legato al path che non viene impostato bene... se vuoi postare un pezzettino di codice , magari gli diamo uno sguardo :D
25/07/2025 11:19:05 e modificato da staff shadowland il 25/07/2025 11:19:44
Il codice è quello di Haruka, in path ho inserito in questo modo:
$path = 'indirizzomiosito/themes/advanced/imgs/items';
e appunto non richiama nulla.
25/07/2025 11:28:33
come si chiama il file ed in qualche cartella è posizionato?
sembra proprio che tu abbia sbagliato il path, appunto
25/07/2025 11:31:08 e modificato da staff shadowland il 25/07/2025 11:35:44
Il percorso è proprio quello dichiarato, per questo motivo non mi spiego come mai non funzioni.
Le immagini sono quelle classiche degli oggetti, con percorso:
themes/advanced/imgs/items
Aggiungo il codice integrale della pagina posizionata in pages:
<?php /*HELP: */
if($_SESSION['permessi'] >= MODERATOR) { /* se almeno admin */
?>
<div>
<!-- Titolo della pagina -->
<div class="page_title">
<h3>Elenco immagini nella cartella dedicata</h3>
</div>
<!-- Operazioni -->
<div class="page_body">
<?php /**/
$path = 'https://indirizzomiosito/themes/advanced/imgs/items';
// get the directory contents as an array
$dir_contents = scandir($path);
// remove . and .. from the array
$dir_contents = array_diff($dir_contents, array('.', '..'));
// check if the sort option is set in the query string
if (isset($_REQUEST['sort_by'])) {
$sort_by = $_REQUEST['sort_by'];
} else {
$sort_by = 'date_desc'; // default sorting is by date
}
// sort the array based on the selected option
switch ($sort_by) {
case 'name_desc':
arsort($dir_contents, SORT_NATURAL | SORT_FLAG_CASE); // sort by name, descending
break;
case 'name_asc':
asort($dir_contents, SORT_NATURAL | SORT_FLAG_CASE); // sort by name, ascending
break;
case 'date_asc':
$dir_contents = array_map(function($file) use($path) {
return [$file, filemtime("$path/$file")];
}, $dir_contents); // add file modification time to each file name
usort($dir_contents, function($a, $b) {
return $a[1] - $b[1]; // sort by modification time, ascending
});
$dir_contents = array_map(function($file) {
return $file[0]; // remove the modification time from the array
}, $dir_contents);
break;
case 'date_desc':
$dir_contents = array_map(function($file) use($path) {
return [$file, filemtime("$path/$file")];
}, $dir_contents); // add file modification time to each file name
usort($dir_contents, function($a, $b) {
return $b[1] - $a[1]; // sort by modification time, descending
});
$dir_contents = array_map(function($file) {
return $file[0]; // remove the modification time from the array
}, $dir_contents);
break;
default:
sort($dir_contents, SORT_NATURAL | SORT_FLAG_CASE); // default sorting is by name, ascending
}
// set the number of images per page
$per_page = 200;
// get the current page number from the query string
if (isset($_REQUEST['pagination'])) {
$pagination = $_REQUEST['pagination'];
} else {
$pagination = 1;
}
// calculate the offset
$offset = ($pagination - 1) * $per_page;
// remove non-image files from the array
$dir_contents = array_filter($dir_contents, function($file) use($path) {
return exif_imagetype("$path/$file");
});
// calculate the total number of pages
$total_pages = ceil(count($dir_contents) / $per_page);
// slice the array to get the current page's images
$images = array_slice($dir_contents, $offset, $per_page);
// print the images
echo 'IMMAGINI:';
echo '<div style="display: flex; flex-wrap: wrap;">';
foreach ($images as $image) {
// escape special characters in the image filename
$escaped_image = htmlspecialchars($image, ENT_QUOTES);
// print the image
echo '<div style="width: 200px; height: 200px; margin: 10px;">';
echo "<a href='../../themes/advanced/imgs/items/$escaped_image' target='_blank'><img src='../../themes/advanced/imgs/items/$escaped_image' width='200' height='200'></a>";
echo "<div style='text-align: center; height:100%;'>$escaped_image</div>";
echo '</div>';
}
echo '</div>';
// calculate the total number of pages
$total_pages = ceil(count($dir_contents) / $per_page);
// print the pagination links
echo '<div style="text-align: center;">';
echo '<form action="main.php?page=servizi_listaoggettifolder" method="post">';
echo '<select name="sort_by">';
echo "<option value='date_desc'".($sort_by == 'date_desc' ? ' selected' : '').">Data ultima modifica (Prima i più recenti)</option>";
echo "<option value='date_asc'".($sort_by == 'date_asc' ? ' selected' : '').">Data ultima modifica (Prima i più vecchi)</option>";
echo "<option value='name_asc'".($sort_by == 'name_asc' ? ' selected' : '').">Nome (da A a Z)</option>";
echo "<option value='name_desc'".($sort_by == 'name_desc' ? ' selected' : '').">Nome (da Z ad A)</option>";
echo '</select>';
echo '<input type="submit" value="Sort">';
echo '</form>';
// loop through the total number of pages and print the pagination links
for ($i = 1; $i <= $total_pages; $i++) {
if ($i == $pagination) {
echo "<span style='font-weight: bold;'>$i</span> ";
} else {
echo "<a href='main.php?page=servizi_listaoggettifolder&pagination=$i&sort_by=$sort_by'>$i</a> ";
}
}
echo '</div>';
} else { echo '<div class="warning">Non sei abilitato a vedere questa pagina</div>'; }//fine if se non si è admin ?>
</div><!-- operazioni-->
</div><!-- box -->
25/07/2025 18:16:51 e modificato da blancks il 25/07/2025 18:17:17
Il problema direi che è qui:
$path = 'https://indirizzomiosito/themes/advanced/imgs/items';
Da quello che vedo al volo, dovrebbe essere un percorso locale e non una url.
Se la pagina si trova in pages, prova a modificare $path in questo modo:
$path = dirname(__FILE__, 2) . '/themes/advanced/imgs/items';
25/07/2025 19:43:16
@Blancks: così funziona perfettamente! Grazie mille! *__*
Discussione seguita da
Pagine → 1 2
Rispondi alla Discussione Segui Discussione Inoltra Discussione Forum Programmazione, Open Source e Hosting Elenco Forum
Articoli, Interviste e altre Risorse!
Feudera ↗
Storie di Agarthi ↗
RAID Shadow Legends ↗
Cafuné ↗
Imperion ↗
Crossout ↗
New Orleans ↗
Tibia ↗