Personalizzare la pagina 'Create content' di Drupal

tags: Drupal  
drupal tags: user interaction  

Purtroppo la funzione utilizzata da Drupal per generare la pagina 'Create content' non è una funzione di theming, e pertanto non può essere sovrascritta nel template.tpl.php.

Come poter quindi personalizzare o modificare ciò che viene mostrato in questa pagina?

Una soluzione veloce è la seguente:

  1. Creare un file di template per la pagina 'Create content' aggiungendo al nostro tema un file page-node-add.tpl.php
  2. Sostituire all'output del content (print $content) il codice rivisto e personalizzato che fa al caso nostro.

Ad esempio:

<?php if (arg(2)== null) { 
global
$user;
$types = node_get_types();
foreach (
$types as $type) {
    if (
function_exists($type->module .'_form') && node_access('create', $type->type)) {
       
$type_url_str = str_replace('_', '-', $type->type);
       
$title = t('Add a new @s.', array('@s' => $type->name));
       
$out = '<dt>'. l(drupal_ucfirst($type->name), "node/add/$type_url_str", array('title' => $title)) .'</dt>';
       
$out .= '<dd>'. filter_xss_admin($type->description) .'</dd>';
       
$item[$type->type] = $out;
        if (
$type->type == 'page' ||
           
$type->type == 'story') {
                if ((
$user->uid == 0) || ($user->uid > 1)) {
                    unset(
$item[$type->type]);
                }   
            }
        }
    }
uksort($item, 'strnatcasecmp');
$item['profile'] = '<dt>'. l(drupal_ucfirst('My Profile'), "user/".$user->uid."/edit", array('title' => $title)) .'</dt>';
$item['profile'] .= '<dd>Edit your profile page</dd>';
$output = t('Here are the ways that you can contribute content to the website:') .'<dl>'. implode('', $item) .'</dl>';
print
$output;
}
else { print
$content; }
?>

il codice di esempio qui sopra ci permette di:

  • non mostrare i link alla creazione dei contenuti di tipo "page" e "story"
  • personalizzare il messaggio mostrato sotto al titolo 'Create content' della pagina
  • aggiungere altri link custom (in questo caso un link alla pagina di modifica del profilo personale)

Potremmo ovviamente andare ad aggiungere classi e id css, contenuti o qualsiasi altro codice.


Vedi anche:

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Allowed HTML tags: <a> <em> <p> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <h2> <h3> <h4> <img> <hr>
  • Linee e paragrafi vanno a capo automaticamente.
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente

Maggiori informazioni sulle opzioni di formattazione.

Archivio

Febbraio 2012
DomLunMarMerGioVenSab
1234
567891011
12131415161718
19202122232425
26272829
PureDivs Conversione Temi Drupal
PureDivs Conversione Temi Drupal