Ordinare le immagini nel modulo IMCE

Posts: 67
Iscritto il: 09 Ott 06

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


Posts: 1049
Iscritto il: 24 Apr 05
Admin di Drupal ItaliaModeratore di Drupal ItaliaRedattore di Drupal Italia. Contribuisco a manualiTraduttore

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)

__________________

Posts: 67
Iscritto il: 09 Ott 06

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.


Posts: 1049
Iscritto il: 24 Apr 05
Admin di Drupal ItaliaModeratore di Drupal ItaliaRedattore di Drupal Italia. Contribuisco a manualiTraduttore

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 Eye-wink

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

__________________

Condividi contenuti