Archivio per ‘ Drupal ’ Category

Drupal 7 – Oggi il rilascio!

mercoledì, gennaio 5th, 2011

Da poche ore è disponibile Drupal 7.0!!

http://drupal.org/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à!

Drupal 6.x Aruba e .htaccess, così funziona.

lunedì, agosto 23rd, 2010

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/

Drupal 6 – Inclusione di campi nei campi nelle viste

martedì, maggio 4th, 2010

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ì:

  • Si espongono i campi image-attach e Nodo: Corpo (è un esempio per un testo e una img)
  • Si escludono entrambi dalla visualizzazione
  • Nel campo image-attach si pongono dimensioni, limiti, e links come desideriamo
  • Nel campo Nodo: Corpo si pone il trimming e HTML Strip a piacimento insieme a tutti gli altri filtri
  • Si espone un 2° campo Nodo: Corpo che andremo a riscrivere totalmente nella forma [image_attach_images] [body]

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.

Drupal 6.x – Imagecache, gestione 404 e lang prefix

venerdì, aprile 23rd, 2010

Piccolissima modifica all’htaccess nel caso:

  • State usando il mio sistema per controllare i 404
  • Volete usate Imagecache
  • Volete usare la traduzione con il lang prefix sull’URL

(continua…)

Drupal 6 – Vitaminizzare la gestione delle revision

mercoledì, marzo 31st, 2010

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
Poi ho pubblicato la stessa nel template specifico del content-type di cui volevo fare il controllo di versione:
<? 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 &egrave; 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 &egrave; l'attuale revisione del documento. </div>
<?php endif; ?>
<? if (!$node->is_current): ?>
<div> Questa &egrave; una precedente revisione del documento. </div>
<?php endif; ?>

Drupal 6 – Invocare un modulo direttamente dal template tpl.php

mercoledì, marzo 31st, 2010

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

Problema di permessi nel caricamento file con Drupal 6.x

giovedì, febbraio 25th, 2010

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.

Fonte: http://drupal.org/node/203204