Creare nuovi nodi

19 contenuti / 0 new
Ultimo contenuto
Creare nuovi nodi

Ciao a tutti sono nuovo di drupal e non ho molta conoscenza a riguardo. Ad un primo approccio mi sono trovato un pò in difficoltà ma sto cominciando ad entrare nelle logiche di questo CMS. Una delle cose che mi sta creando più disagio è la questione dei nodi, per quanto rigaurda la prima pagina cioè la home tutto ok, modificando la sezione node.tpl.php sono riuscito ad avere lo schema grafico che volevo, il problema sorge quando sono andato a creare il menu in alto con il $primary_links(array), ho creato le varie voci "chi siamo" "contatti" ecc... ora il problema è che quando vado ad inserire i contenuti all'interno di queste voci di menù la visualizzazione del node rimane la stessa della home e non riesco a pubblicare contenuti con diversa veste grafica. Ora mi chiedevo ma per fare questo è possibile creare un nuovo nodo da associare ad ogni diversa pagina? Se si come devo impostare il tutto? O c'è un'altro modo per risolvere la questione che vi ho posto qui sopra?
Il sito su cui sto lavorando e http://www.drupal.anteadev.com/
Grazie a tutti in anticipo :)

Ciao MyTechinca, benvenuto!

Devi usare "Template Suggestions".

Tutto quello che ti serve per comprenderne il funzionamento lo trovi ampiamente trattato in questa discussione:
http://www.drupalitalia.org/node/8940

Ciao
Kipper

Ciao Kipper grazie mille ora provo e poi ti faccio sapere....grazie mille ancora sei stato gentilissimo :)

Ciao Kipper scusa la mia ignoranza sull'argomento ma io allora ho creato un nuovo nodo
node-contatti.tpl.ph :

<div class="column-center">
        <h1>Ultimi prodotti in evidenza</h1>
            <?php if ($mission) { ?><div id="mission"><?php print $mission ?></div><?php } ?>
  <div class="box-b">
<h1 class="title"><?php print $title ?></h1>
<div class="tabs"><?php print $tabs ?></div>
<?php if ($show_messages) { print $messages; } ?>
<?php print $help ?>
<?php print $content; ?>
  </div>
        </div>

e poi in template.php ho inserito questo codice:

<?php
  
function liber(&$vars, $hook) {
   if (isset(
$vars['node'])) {
  
$vars['template_files'][] = 'page-'. str_replace('_', '-', $vars['node']->type);
  }
}
?>

a questo punto il nuovo nodo è stato effettivamente creato o ho sbagliato nel crearlo? Se è giusto come faccio ad utilizzarlo? E se invece è sbagliato sapresti indicarmi gentilmente come crearlo.
Grazie per la disponibilità

Ciao MyTechinca,

Scusa se ti rispondo adesso...

Allora:

1. In "template.tpl.php" (nella cartella del tuo tema) aggiungi in un punto che vuoi il codice qui sotto facendo attenzione di sostituire miotema con il nome del tuo tema:

function miotema_preprocess_page(&$vars) {
    if ($vars['node']->type != "" && arg(2)!='edit' && arg(1) !='add') {
    $vars['template_files'][] = "page-node-" . $vars['node']->type;
  }
}

P.S. controlla per sicurezza che tale funzione miotema_preprocess_page non sia già dichiarata altrove in template.php

2. In node-mio_content_type.tpl.php devi inserire il tuo codice (DIV, Tabelle etc etc...) in questo punto:

<div class="content clear-block">
    Tuoi div, tabelle e codice (solo codice che va nel body della pagina non nell'head!)
</div>

P.S. Devi togliere:

<?php print $content ?>

...e, al suo posto, devi inserire il tuo codice, appunto...

3. In page-node-mio_content_type.tpl.php nell'head, inseriscci per esempio gli "stili" e, in ogni caso, tutti quegli elementi che vanno nell'head.

In definitiva:
node-mio_content_type.tpl.php - controlla il body
page-node-mio_content_type.tpl.php - controlla l'head

Adesso, quando crei un nuovo contenuto (nel nostro caso "mio_content_type"), una volta dato invio, ti appare la tua pagina personalizzata.

P.S. Molto importante:
Dopo aver creato tutto quello detto sopra, è importantissimo svuotare la Cache prima di procedere alla creazione della tua nuova pagina. Mi ricordo che non mi funzionava nulla proprio per questo motivo!

Se hai bisogno sono qui!

Ciao
Kipper

Grazie per la tua pazienza ora proverò a fare come mi ha suggerito sperando di riuscirci :D

Ciao Kipper,
Ho seguito le tue istruzioni ho vuotato anche la cache ma niente non riesco a creare nodi differenziati tra loro, ora provo a spiegarti tutto filo per segno, magari fin ora non sono stato abbastanza chiaro e me ne scuso.
Allora, nel mio sito sulla home ho creato un tipo di struttura che va bene con il mio tema, il mio problema sorge con l'utilizzo dei menù con i primary_links. Per ogni link vorrei creare un impostazione di pagina diversa, ogni pagina in pratica dovrebbe avere una sua struttura e non sempre quella della home come succede a me. Sapresti indicarmi un metodo efficace per ottenere quello che mi serve, se il metodo è quello che mi hai già indicato scusa ma non riesco ad applicarlo, potresti spiegarmelo in maniera un pò più semplificata?
Il link di riferimento del sito dove sto lavorando è il seguente: http://www.drupal.anteadev.com/
Grazie in anticipo.
A presto.

Mi sa che devo correggere il tiro:

Ti avevo detto di togliere:

<?php print $content ?>

Invece lo devi lasciare!!!
...si deve togliere per lavori più specifici che non mi sembra il caso adesso di parlarne...

Questa variabile stampa quello che inserisci nel "body" quindi:

<div class="content clear-block">
<div id "container">
<div id="01">Tuo contenuto 01</div>
<div id="02">Tuo contenuto 02</div>
<div id="03"><?php print $content ?></div>
</div>
</div>

In pratica devi creare il template con i DIV per i tuoi contenuti (es. Sottotitoli, immagini etc... posizionati a tuo piacere...) e, nel DIV dove vuoi che appaia il contenuto del "body" (quello che inserisci in fase di creazione del "nodo/contenuto" - Create Content), devi inserire:

<?php print $content ?>

...che è la variabile che stampa il contenuto, come de esempio sopra, appunto...

Dovresti creare:
node-chi_siamo.tpl.php - page-node-chi_siamo.tpl.php
node-prodotti.tpl.php - page-node-prodotti.tpl.php
etc...

Poi, per collegare questi "nodi" ai Primary Link ad esempio "Chi Siamo", quando sei nella pagina/nodo (Chi Siamo), se guardi nella barra degli indireizzi di IE o Firefox o Safari noterai una cosa di questo tipo:
www.tuosito.com/content/chi-siamo (se stai usando gli url semplificati...)
oppure:
www.tuosito.com/content/node/25 (se NON stai usando gli url semplificati...)

Bene, nelle impostazione del menu del Primary Link, nella prima textarea, ti viene chiesto il percorso da assegnare a questo menu; è in questa textare che devi mettere:
"content/chi-siamo" oppure "content/node/25"
...è questo il percorso a cui la voce di menu (in questo caso Chi Siamo dei "Primary Link") va a "puntare" e, di conseguenza, ne visualizza la pagina/nodo

Ho scritto molto di fretta un po per il caldo e un po perchè devo uscire urgentemente...

Per qualsiasi cosa sono qui... se non hai capito sicuramente al prossimo post "confezioniamo" per bene il tutto.

Ciao
Kipper

Ciao Kipper mi sei stato di grandissimo aiuto, sto cominciando a creare nodi personalizzati, anche se ho ancora molto lavoro da fare e molte cose da capire, ti ringrazio per la tua gentilezza, non avrei saputo cosa fare senza il tuo aiuto.
A presto :) e grazie ancora...

il codice node.tpl.php che ho è questo

<div id="node-<?php print $node->nid; ?>" class="node<?php if(!empty($type)) { echo ' '.$type; } if ($sticky) { echo ' sticky'; } if ($promote) { print ' promote'; } if (!$status) { print ' node-unpublished'; } ?>">
<div class="art-post">
    <div class="art-post-body">
<div class="art-post-inner">
<?php ob_start(); ?>
<h2 class="art-postheader"><?php echo art_node_title_output($title, $node_url, $page); ?>
</h2>
<?php $metadataContent = ob_get_clean(); ?>
<?php if (trim($metadataContent) != ''): ?>
<div class="art-postmetadataheader">
<?php echo $metadataContent; ?>
</div>
<?php endif; ?>
<div class="art-postcontent">
<div class="art-article"><?php print $picture; ?><?php echo $content; ?>
<?php if (isset($node->links['node_read_more'])) { echo '<div class="read_more">'.get_html_link_output($node->links['node_read_more']).'</div>'; }?></div>
</div>
<div class="cleared"></div>
</div>
    </div>
</div>
</div>

dove dovrei inserire il mio codice?
non trovo il campo

Ma di quale tema è? ...l'hai modificato?

Questo node.tpl.php mi è nuovo (e strano...) - se ci dai maggiori dettagli...

l'ho creato con artisteer3

Mi dispiace ma non saprei aiutarti...
Conosco artisteer - non mi ha mai convinto sin dalla prima occhiata...

quindi l'unica possibilità è abbandonare artisteer?

Ho detto di conoscere artisteer nel senso che l'ho installato ma in realtà non l'ho mai usato (scusa se mi sono spiegato male...) per il semplice motivo che mi ha dato subito l'impressione di togliermi il pieno controllo sulla "temizzazione" personalizzata... mi sembra che ci sono degli user qui sul forum che lo usano, se qualcuno di questi fosse in ascolto potrebbe intervenire per darti maggiori info...

l'unica soluzione, come dici tu, non è quella di abbandonare artisteer, ma secondo il mio punto di vista potrebbe anche esserlo... ma è solo il mio modesto punto di vista...

@padawan
..se l'artister ti ha piombato, prova artists che è liberato

ho preso un altro tema acquia_prosper

<div class="content clearfix">
      <?php print $picture ?>
      <?php print $content ?>
    </div>

con questo posso modificare il nodo?

credo di si... prova, è l'unico modo per verificare...

per inserire un mio codice html cosa dovrei fare

<div class="content clearfix">
<div id "container">
<div id="01">codice html</div>
<div id="03"><?php print $content ?></div>
</div>
</div>

salvo il tutto come node-prova.tpl.php

digitando http://localhost/drupal/content/prove per aprire la pagina

come codice html ho messo un codice dove vi son immagini e tabelle tutto in codice html