Ordinare le immagini nel modulo IMCE

4 contenuti / 0 new
Ultimo contenuto
Ordinare le immagini nel modulo IMCE

Ciao
Sto utilizzando il modulo IMCE per l'inserimento e la gestione delle immagini. L'unico neo che ho trovato è che l'elenco delle immagini caricate non è in nessun tipo di ordine. Questo per me rende difficoltosa la ricerca delle immagini già inserite, soprattutto se l'inserimento è stato fatto tempo addietro.

Nel modulo imce.module l'elenco dei file viene inserito nell'array $rows. A questo punto ho inserito la funzione di ordinamento php

    sort($rows); /* ordina */

all'interno della funzione function imce_browse() e precisamente alla riga 135

. . . . . . .
  foreach ($directory['files'] as $path=>$file) {
    $rows[] = array(array('data' => $file['f'], 'class' => 'filename'),
      array('data' => format_size($file['s']), 'class' => 'size', 'id' => 's-'.$file['s']),
      array('data' => $file['w'].'x'.$file['h'], 'class' => 'dimensions'),
      array('data' => date('Y-m-d', $file['d']), 'class' => 'date', 'id' => 'd-'.$file['d'], 'title' => date('H:i:s', $file['d'])),
      array('data' => $set->delete ? l(t('delete'), 'imce/delete/'.$file['f'], NULL, 'token='.$token) : '', 'class' => 'operations'),
    );
    sort($rows); /* ordina */
  }
  if (!isset($rows)) {
    $rows = array(array('<div class="messages">'.t('Directory is empty.').'</div>'));
  }
  $_SESSION['imcetotal'] = $directory['size'];
. . . . .

L'effetto è ora quello di avere l'elenco dei file ordinato alfabeticamente.

Ciao Silvio

non facevi prima ad elencarle dalla Query SQL? Ti risparmi un sacco di cicli.
Aggiungi alla fine ORDER BY title o per cosa vuoi ordinarle. (non so se è title, non so come salva la roba IMCE)

Ciao Psicomante
ho rivisto il modulo IMCE.
Per conoscere il contenuto di una directory non viene utilizzata una SELECT ma bensì la funzione readdir().
In questo caso il contenuto della viene letto un file alla volta e viene creato un'array $directory non ordinato.

Scorpio26 wrote:
Ciao Psicomante
ho rivisto il modulo IMCE.
Per conoscere il contenuto di una directory non viene utilizzata una SELECT ma bensì la funzione readdir().
In questo caso il contenuto della viene letto un file alla volta e viene creato un'array $directory non ordinato.

Bene, ora quell'array lo ordini. Non so se PHP ha delle funzioni per l'ordinamento (credo proprio di si!!) altrimenti cerchi l'algoritmo di QuickSort (il più efficiente! caso medio: n*logn) e lo implementi sul tuo array ;)

EDIT: http://it.wikipedia.org/wiki/Quicksort, ma non c'è in php.