Creare un 'finto' file manager - stile Explorer/Nautilus

7 contenuti / 0 new
Ultimo contenuto
Creare un 'finto' file manager - stile Explorer/Nautilus

Ho bisogno di un consiglio. Sto ponderando un problema che potrebbe diventare un piccolo HOW-TO. Ho un cliente che vuole una specie di file manager (o file browser, come preferisci) in stile Explorer (Windows) o Nautilus (Linux/Ubuntu).

Ma in questo caso c'è un piccolo problema. I file sono limitati all'accesso - devi avere il ruolo giusto. Questo viene controllato secondo l'accesso alla pagina (tramite content access e acl - lo so forse era meglio taxonomy access lite - ormai "les jeux sont faits"), quindi metto un file solo in una pagina - diciamo un tipo di contenuto 'page-file'. E questi saranno le foglie.

Per i rami, sto pensando di usare un vocabolario gerarchico (Taxonomy). Un esempio (il cliente non sa ancora come sarà 'sto geriarchia, sigh) potrebb'essere:

PHP
  Drupal
    Books
    Web sites
Java
  Books
  Web Sites
JavaScript
  jQuery
    Books
    Web sites

Allora le domande:
1. Qualche soluzione migliore al tipo 'page-file'? Ma ricordi il problema di controllo accesso...
2. Si può avere due termine vocabolario con lo stesso nome (es: Books), ma con un tid diverse, uno per Java/Books ed un altro per PHP/Drupal/Books?
2a. E se non, quale sono le alternativi?
(Detto forse meglio; è molto probabile che l'utente vorrà creare due rami con lo stesso nome ma che riferiscono a due indirizi diverse. Devo accontantarlo.)
3. Mi basta Taxonomy Block per creare il blocco di rami tipo 'folders', che si trova di solito sulla sinistra in Explorer? Oh, sempre espanso s'intende, non voglio essaggerare ;-)
4. Basta un singolo view - sempre tipo blocco (che legge il tid) per creare la lista di pagine (che hanno un file solo) sulla destra per tutti i rami del vocabolario gerarchico?
5. Soluzione più semplice di questo? Mi accorgo di essere fin troppo capace trovare soluzione complessi...

TIA

John

Bene, dopo 30 minuti di prova posso rispondere alle mie domande:

1. Qualche soluzione migliore al tipo 'page-file'? Ma ricordi il problema di controllo accesso...
Boh

2. Si può avere due termine vocabolario con lo stesso nome (es: Books), ma con un tid diverse, uno per Java/Books ed un altro per PHP/Drupal/Books?
Si si può - devo dire che questo mi ha sorpreso un pò. Forse stavo troppo vicino al significato di vocabolario...

2a. E se non, quale sono le alternativi?
N/A

3. Mi basta Taxonomy Block per creare il blocco di rami tipo 'folders', che si trova di solito sulla sinistra in Explorer? Oh, sempre espanso s'intende, non voglio essaggerare ;-)
Si, basta. Solo che sembra che crea solo un blocco. Non è possibile creare n blocchi per n vocabolarie. Peccato.

4. Basta un singolo view - sempre tipo blocco (che legge il tid) per creare la lista di pagine (che hanno un file solo) sulla destra per tutti i rami del vocabolario gerarchico?
Neanche quello per il momento. Basta la pagina category/file-system/java/book

5. Soluzione più semplice di questo? Mi accorgo di essere fin troppo capace trovare soluzione complessi...
Boh

TIA
Non c'è di che...

John

Più imparo, più dubito.

Lo so che è un po' tardi, ma la butto lo stesso: avevi considerato l'ipotesi book invece di usare la tassonomia? Mi sembra ci sia anche un modulo per assegnare abbastanza rapidamente l'accesso a tutte le figlie di una pagina del libro.

Quanto ai termini omonimi nel vocabolario, certo che sono possibili, a maggior ragione se sono in rami diversi della stessa tassonomia, in quanto sono definiti anche dai loro avi e discendenti. Chiaramente, bisogna stare poi attenti a come li presenti, perché a quel punto, metterli in quel calderone che è la variabile $links non ha tanto senso.

Pinolo wrote:
Lo so che è un po' tardi, ma la butto lo stesso: avevi considerato l'ipotesi book invece di usare la tassonomia? Mi sembra ci sia anche un modulo per assegnare abbastanza rapidamente l'accesso a tutte le figlie di una pagina del libro.

Non sei in ritardo, ed hai ragione. Come la documentazione su questo sito. Poi non credo che ci sia un problema per il blocco. La geriarchia nasconderebbe pagine non accessibile? Penso che l'unico problema è che la geriarchia visualizzerebbe sia rami che foglie, mentre con taxonomy nel blocco ci sono solo rami, e foglie nella pagina category/file-system/java/book.

Pinolo wrote:
Quanto ai termini omonimi nel vocabolario, certo che sono possibili, a maggior ragione se sono in rami diversi della stessa tassonomia, in quanto sono definiti anche dai loro avi e discendenti. Chiaramente, bisogna stare poi attenti a come li presenti, perché a quel punto, metterli in quel calderone che è la variabile $links non ha tanto senso.

Grazie per la delucidazione. Sono andato a vedere un pò più in dettaglio le tabelle term_data e term_hierarchy. Per il momento il calderone non è andato in ebollizione (vedo solo 'Book'). Un problema però e che Taxonomy_block non visualizza rami di terzo livello. Vado a vedere un pò di codice...
Vocabolario:
PHP
  Books
  Drupal
    Books
    Web sites

ma vedo solo
PHP
  Books
  Drupal

John

Più imparo, più dubito.

non ci avevo mai pensato, però effettivamente con qualche accorgimento grafico.... book è perfetto per creare qualcosa che assomigli ad file managere in stile "Explorer"

Slice2Theme Servizio per la conversione di Design in markup HTML e/o temi.

WeBrain Solution | Pillsofbits Of Bits

Infatti, funziona...

kiuz wrote:
non ci avevo mai pensato, però effettivamente con qualche accorgimento grafico.... book è perfetto per creare qualcosa che assomigli ad file managere in stile "Explorer"

Con tre nei; prima bisogna avere una pagina 'root' (titolo 'C:' ;-), secondo espande e comprime i rami seconda dove clicci, non si può avere tutti i rami espansi di default (almeno senza ulteriori modifiche), e i fogli appaiano nel blocco.

Proseguendo con taxonomy, Taxonomy_block non segue la profondità della geriarchia del vocabolario (solo genitori/figlio, cioè 2 livelli), e non usa codice dal modulo taxonomy. Ho provato due altri; Tinytax e advanced taxonomy blocks. Il primo è molto semplice, ma ha qualche problema con le geriarchie. Il secondo (scaricato l'ultima versione dal CVS) è molto completo, ma richiede jQuery Menu, e si 'dimentica' quale rami erano espanso o contratto se cambi pagina.

Per il mio scopo, credo basterà aggiungere uno 'skin' diverso a tinytax per completare l'opera - ma questo mi porta fuori da un semplice HOW-TO, sarà un Esempio forse?

John

Più imparo, più dubito.

Per mancanza di tempo, ho deciso di usare advanced taxonomy blocks. Si può forzare l'espansione di tutti i rami. Funzione simile a book, ma non mostra i fogli. Nei prossimi giorni scrivo un piccolo tutorial.

John

Più imparo, più dubito.