Da poche ore è disponibile Drupal 7.0!!
Mancano ancora molti moduli importanti per iniziare ad usarlo in produzione, però vale la pena testarlo e provarlo per capirne le grandi potenzialità!
Da poche ore è disponibile Drupal 7.0!!
Mancano ancora molti moduli importanti per iniziare ad usarlo in produzione, però vale la pena testarlo e provarlo per capirne le grandi potenzialità!
Riporto la guida di mplebani per configurare il .htaccess di Drupal 6 quando abbiamo un hosting Aruba. Ho seguito i suoi consigli e ho attivato velocemente i Clean URL.
Commentare queste righe:
# Options -Indexes # Options +FollowSymLinks # DirectoryIndex index.php
Fonte: http://mplebani.wordpress.com/2009/01/10/installare-drupal-6-su-aruba/
Il codice standard delle viste nello stile campi utilizza per ogni dato visualizzato un div del tipo <div class=”field-nome-campo”>dato</div>. Questo può essere molto utile quando si vogliono usare i float per gestire ogni singolo dato in modo autonomo. Però ad esempio se vogliamo costruire un testo controllato (HTML strip e trimmed) includendo dentro lo stesso campo un altro campo di tipo image (image attach o cck image) allora la cosa si complica. Il concetto è valido per ogni somma di uno o più campi di ogni tipo senza perdere il controllo sull’output di ogni campo.
Si può risolvere così:
Così facendo otteniamo un solo campo nella forma <div=”field-campo-body”>immagine + testo elaborato</div>, possiamo quindi miscelare più campi tra loro utilizzando anche tutte le funzioni di gestione dell’output che mette a disposizione il componente delle viste in fase di esposizione.
Piccolissima modifica all’htaccess nel caso:
Drupal fornisce una gestione delle revisioni dei nodi che permette di gestire le varie versioni di un documento. Il problema è che la pagina di gestione è bruttina e non è accessibile direttamente dal front-end. Ho scritto quindi alcuni snippet di codice PHP per ottenere una gestione più lineare e accessibile delle versioni.
Innanzitutto ho scritto una vista blocco che riporta le informazioni della attuale revisione. Così da dare un pò di informazioni su cosa si sta vedendo.
Questo il dettaglio:
Campi Revisione nodo: Data di creazione Data di creazione Revisione nodo: Titolo Titolo Revisione nodo: Messaggio di log Messaggio
<? if ($node->is_current): ?>
<?php
$block = module_invoke('views', 'block', 'view', 'og_news-block_4');
print $block['content'];
?>
Poi ho realizzato una serie di links dinamici come un pannellino di gestione che appare diverso a seconda che ci si trovi nella revisione attuale o in una di quelle precedenti:
<? if ($node->is_current): ?> <div> <p>Operazioni sull'ultima revisione pubblicata.</p> <a href="/node/<?php echo $node->nid ?>/view"> Visualizza ultima revisione </a> <a href="/node/<?php echo $node->nid ?>/edit?destination=node/<?php echo $node->nid ?>/view"> Modifica ultima revisione </a> <a href="/node/<?php echo $node->nid ?>/revisions"> Visualizza revisioni precedenti </a> <a href="/node/<?php echo $node->nid ?>/delete"> Cancella tutto il documento </a> </div> <?php endif; ?> <? if (!$node->is_current): ?> <div> <p>Operazioni sulla revisione che stai vedendo in questo momento.</p> <p>Questa è la revisione numero <? echo arg(3) ?> del documento numero <?php echo $node->nid ?>. </p> <a href="/node/<?php echo $node->nid ?>/revisions"> Torna alla lista delle revisioni </a> <a href="/node/<?php echo $node->nid ?>/view"> Visualizza ultima revisione </a> <a href="/node/<?php echo $node->nid ?>/revisions/<? echo arg(3) ?>/edit?destination=node/<?php echo $node->nid ?>/view"> Modifica questa revisione </a> <a href="/node/<?php echo $node->nid ?>/revisions/<? echo arg(3) ?>/delete"> Cancella questa revisione </a> </div> <?php endif; ?>
E infine un messaggio per far capire in che revisioni ci si trovi:
<? if ($node->is_current): ?> <div> Questa è l'attuale revisione del documento. </div> <?php endif; ?> <? if (!$node->is_current): ?> <div> Questa è una precedente revisione del documento. </div> <?php endif; ?>
A volte non basta la gestione delle zone di pubblicazione di Drupal. E’ una dura realtà. E che si fa? Semplice, da veri grezzi dell’informatica si invoca il modulo che vogliamo pubblicare direttamente da template.
Il codice PHP da utilizzare è il seguente:
<?php
$block = module_invoke('module_name', 'block', 'view', 0);
print $block['content'];
?>
Dove è sufficiente indicare il nome del blocco e il delta. Il nome del blocco lo trovate nella pagina di configurazione del singolo blocco (in basso).
Il codice può essere utilizzato direttamente nei tpl.php del vostro tema. Può essere soggetto a condizioni e altro, del resto c’è tutto il php a disposizione!
L’uso più potente di questo sistema è a mio avviso la creazione di un blocco-vista dinamico, così da avere un singolo blocco che si popola secondo i parametri dinamici che gli vengono passati e pubblicabile dentro un singolo content-type o singolo nodo (!!!) a piacimento. Anche la grafica è parsabile e ci sono alcune variabili da poter stampare o meno.
Per i dettagli: http://drupal.org/node/26502
A causa di un piccola mancanza nelle API di Drupal 6.x è possibile che i file caricati dal back-end vengano salvati con permessi errati. Questo comporta l’impossibilità di scaricare i files e di traduce in un errore 403 di Apache. Si può ovviare in due modi:
Patch al core di Drupal al file /includes/file.inc
+ // Give everyone read access so that FTP'd users or
+ // non-webserver users can see/read these files,
+ // and give group write permissions so group members
+ // can alter files uploaded by the webserver.
+ @chmod($file->filepath, 0664);
+
$file->uid = $user->uid;
$file->status = FILE_STATUS_TEMPORARY;
Aggiunta di riga PHP in settings.php
if(isset($_FILES['files'])){
foreach($_FILES['files']['tmp_name'] as $key => $val) chmod($val,0644);
}
Entrambi i metodi possono andare…. io preferisco il secondo perchè risolve la questione senza togliere la possibilità di fare upgrade del sistema.