Ultimi post su Drupal

Finalmente ho cominciato a lavorare alla traduzione dell’ultimo tutorial del manuale su CCK per amministratori presente sulla documentazione ufficiale di drupal.org.

Chi segue questo blog sa che da un po’ di tempo ho abbandonato Drupal, non per la qualità del CMS, assolutamente fuori discussione, ma per la complessità del funzionamento, non solo del CMS base, ma anche dei moduli più importanti, quali CCK e Views.

Questa complessità rende Drupal un CMS per utenti molto avanzati e non è assolutamente semplice delegarne l’amministrazione.

Però un lavoro avviato va portato a termine, quindi, dopo aver tradotto

ho cominciato a lavorare al tutorial che spiega come importare dati da un database esterno all’interno del database di Drupal, in modo che vengano visualizzati come nodi.

Il tutorial è più lungo e complesso dei precedenti, quindi mi richiederà un certo tempo. Spero che abbiate la pazienza di aspettare un po’ 😉

Poi, però, sarà difficile che torni a scrivere su Drupal, anche perchè sto progettando, con alcuni amici, di aprire un nuovo blog dedicato al mio hobby del momento: le API di Flickr e di GMaps.

A presto…

Annunci

CMS awards

Anche quest’anno si ripropone la tenzone, organizzata da Packt Publishing, tra i CMS più popolari.

Dal 27 al 31 ottobre ci sono state (e ci saranno) una serie di proclamazioni. La scaletta è la seguente:

27 ottobre – Open Source MVPs announced
28 ottobre – Best Other Open Source CMS Award result
29 ottobre – Best Open Source PHP CMS Award result
30 ottobre – Most Promising Open Source CMS winner announced
31 ottobre – Overall 2008 Open Source CMS Award winner announced

Ieri c’è stata la proclamazione di Drupal come miglior CMS open source basato su Php. Joomla e CMS made easy sono secondi a pari merito.

Se la logica è la stessa di quella seguita lo scorso anno (Joomla miglior Open Source PHP CMS e Drupal miglior CMS in assoluto), possiamo aspettarci che quest’anno saranno invertite le posizioni (ovviamente sono semplici supposizioni).

Cmq, per esseren sicuri, bisognerà aspettare il 31.

Detto questo, vi esprimo le mie perplessità su questi “awards”. Sono utili allo sviluppo del software open source? Sono obiettivi? Oppure servono alla Packt a vendere un bel po’ di manuali in più?

P.s.: il mio CMS dell’anno l’ho già proclamato un paio di post fa

Drupal o Joomla?

Adesso basta! Ho trovato la mia risposta (per ora).

Alla domanda “qual è il miglior CMS” si è soliti rispondere “dipende”.

Si dice che “Drupal è meglio dal punto di vista dell’architettura dell’informazione e per la gestione granulare dei privilegi degli utenti”, … “Joomla è meglio per la semplicità d’uso e per l’enorme numero di applicazioni … “, ecc. ecc.

Adesso aggiungo una nuova variabile: il tempo. Gli sviluppi dei due progetti sembrano procedere ad ondate (in un mare abbastanza agitato). Prima sembrava che Joomla fosse avanti per tutta una serie di motivi, poi siamo passati a considerare Drupal come miglior CMS, per gli evidenti problemi di sicurezza di Joomla (oltre che per le diversità strutturali). E ora? Ora sembra che Joomla stia rivivendo un momento magico, per la presenza di un team che si occupa solo della sicurezza, per le prospettive prossime di aumento delle potenzialità nella gestione dei gruppi di utenti (con Joomla 1.6) e, non ultimi, i problemi che sta affrontando Drupal dal punto di vista della sicurezza e non solo.

Non solo? Appunto: nelle scorse settimane ho riscontrato, dopo un aggiornamento fortemente consigliato, dei problemi che non sono riuscito nemmeno a comprendere (non dico a risolvere). Ora un nuovo aggiornamento di sicurezza…

La mia soluzione è stata semplice e sbrigativa. Ho eliminato il vecchio sito fatto con Drupal e lo sto rifacendo di sana pianta con Joomla. Almeno agli utenti potrò delegare con una certa serenità anche l’amministrazione da back-end (mi era impossibile delegare l’amministrazione di Drupal, vista la complessità della gestione degli indispensabili moduli CCK e Views).

La semplicità d’uso e d’aggiornamento, secondo me, sono due elementi imprescindibili della qualità di un progetto di CMS, soprattutto quando il codice è aperto e vengono pubblicate con una certa frequenza patch e aggiornamenti che vanno a tappare le falle che di settimana in settimana emergono.

E in questo oggi Joomla è insuperabile.

Come dividere un campo di CCK in un campo a valori multipli

Libera traduzione da http://drupal.org/node/229893

Istalla il modulo devel per essere in grado di eseguire facilmente codice PHP e adata il codice che segue alle tue necessità:

divisione

Questo esempio divide i campi di CCK che contengono una lista concatenata di valori multipli (in questo caso gli autori nel campo di CCK ‘authorlist’) al loro giusto posto all’interno di un campo a valori multipli (in questo caso ‘authors’):

– seleziona i nodi da cambiare
– scorre i nodi (while)
– pulisce il campo ‘authorlist’
– divide il campo ‘authorlist’ con un punto e virgola ;
– scorre i valori separati (foreach)
– inserisce i valori in un campo a valori multipli ‘authors’
– esegue i cambiamenti

<?php
$results
= db_query(“SELECT * FROM {node} WHERE type=’%s’ “, “pub”);
// AND nid BETWEEN 0 and 100
while ($my_node = db_fetch_object($results)) {
$node = node_load($my_node->nid);
_content_widget_invoke(‘prepare form values’, $node);
$my_field = trim($node->field_authorlist[0][‘value’],“; “);

$values = array();
$my_authors = explode(“;”, $my_field);
$my_delta = 0;

foreach ($my_authors as $my_author) {
$values[‘field_authors’][$my_delta][‘value’] = trim($my_author);
$my_delta++;
}
drupal_execute(‘pub_node_form’, $values, $node);
}
?>

Esegui 2 o tre volte (tante quanti sono i valori separati /ne dovresti avere 3) dato che il form a valori multipli consente di inserire 3 nuovi valori per volta, cioè ad ogni preview (dato che qui stiamo usando drupal_execute).

unione

L’altro modo consiste nell’unire/concatenare un campo a valori multipli in un campo singolo:

<?php
$results
= db_query(“SELECT * FROM {node} WHERE type=’%s'”, “pub”);
while (
$mynode = db_fetch_object($results)) {
$node = node_load($mynode->nid);
_content_widget_invoke(‘prepare form values’, $node);
$my_authors = array();
foreach (
$node->field_authors as $my_author) {
$my_authors[] = $my_author[‘value’];
}
$values[‘field_authorsconcat’][0][‘value’] = implode(“; “, $my_authors);
drupal_execute(‘pub_node_form’, $values, $node);
}
?>

Best Practice nella creazione dei tipi di contenuto di CCK

Libera traduzione da http://drupal.org/node/62533

Ci sono diverse cose da tenere in mente quando si progettano i tipi di contenuto di CCK:

Ci sono diversi vantaggi nel far condividere un namespace ai tipi di campo di CCK. Un vantaggio è l’ereditarietà simulata di un tipo di contenuto padre (di livello gerarchicamente superiore – ndt). Ad esempio, se i tipi di contenuto managers e designers condividono un campo salario, può essere facilmente creata una view che mostra i salari di tutti i manager e di tutti i designer. Allo stesso modo, possono essere create delle query per selezionare tutti i nodi che hanno un campo end_date maggiore di una certa data.

Riflettere sulla struttura globale dei tipi di contenuto prima di passare al design, può ripagare in diversi modi. Si può decidere quali campi sono semanticamente equivalenti e quali campi andrebbero tenuti separati.

Aggiungere un prefisso è il modo giusto per distinguere questi campi.

Continua …

Diritti d’accesso ai tipi di contenuto di CCK

Libera traduzione da http://drupal.org/node/77475

Se si ha bisogno di aggiungere privilegi alla modifica e alla vista ai tipi di nodi di CCK che sono stati creati come le optioni di accesso al modulo books:

– creare pagine del libro
– creare nuovi libri
*** MODIFICARE PAGINE DEL LIBRO ***

si può accedere a questa funzione senza nessuna modifica a CCK.

Tutto quello di cui si ha bisogno è uno dei molti moduli per l’accesso ai nodi – uno qualsiasi potrebbe andar bene e c’è una serie di buone possibilità di scelta, ma per questo esempio si utilizzerà il “Node privacy by role“, che funziona bene; consentendo di dare impostazioni predefinite ad ogni tipo di contenuto di CCK che si va a configurare.

Una volta istallato il modulo Node privacy by role, si può cambiare il funzionamento predefinito di un tipo di contenuto in modo che tutti i contenuti dello stesso tipo sono modificabili dai ruoli selezionati. Inoltre consente di assegnare privilegi specifici ad un nodo particolare, nel caso si volesse proteggerlo alla vista o alla modifica.

How to… – con node privacy by role

Dopo aver abilitato il modulo nella pagina di configurazione, ci si assicuri di attivarlo nella pagina Administer – settings – node_pryvacy_byrole (questo era necessario con le versioni di Drupal precedenti alla 4.7. Maggiori info qui. Ndt), altrimenti nessuna impostazione avrà effetto.

Dopo aver creato il tipo di contenuto, si vada su Amministra – Gestione contenuti – tipi di contenuto. Da qui, si possono assegnare al tipo di contenuto selezionato i permessi desiderati. Bisogna espandere la sezione node privacy by role (se necessario) e si accede alle seguenti opzioni:

  • Permessi sui permessi: Si possono selezionare, per ruolo, gli utenti che possono cambiare i permessi, nodo per nodo, dall’impostazione predefinita per il tipo di nodo.
  • Permessi di modifica predefiniti: si possono selezionare i ruoli che, per default, possono modificare nodi di un certo tipo.
  • Permessi di vista predefiniti: si possono selezionare i ruoli che, per default, possono visualizzare nodi di un certo tipo.

Se si vogliono impostare permessi per un nodo particolare, le opzioni sono disponibili in fondo alla pagina di modifica.

Al momento è necessario applicare i permessi di vista e modifica per ruolo su tutte le pagine con nodi di CCK che sono già state create.

Continua …