Salve a tutti...
Ho (forse) trovato un sistema per far visualizzare un'immagine al posto del titolo della pagina, ma siccome non ne mastico molto di php ho scopiazzato e modificato il codice riportato qui sotto dal manuale di php.
Praticamente la mia idea e' quella di sfruttare il nome del file, cioe' se nel titolo della pagina inserisco per esempio 'chisiamo', viene controllato se il file chisiamo.png esista altrimenti visualizza il titolo 'chisiamo'. Nel caso nel titolo inserisco 'Chi siamo', (il file 'Chi siamo.png' non esiste) e quindi nel titolo visualizzera' il messaggio 'Chi siamo'.
Spero di essere stato abbastanza chiaro e non troppo confusionale... ;)
Comunque con il codice che ho inserito nel file node.tpl.php e' inutile dire che non funziona. Qualcuno mi puo aiutare per piacere? Grazie Marco.
<?php
$filename = "sites/default/files/$title.png";
if (file_exists($filename)) {
echo "<h2 class='PostHeaderIcon-wrapper'> <span class='PostHeader'><a href='<?php echo $node_url; ?>' title='<?php echo $title; ?>'><img src='sites/default/files/<?php echo $title; ?>.png'</a></span></h2>"
} else {
echo "<h2 class='PostHeaderIcon-wrapper'> <span class='PostHeader'><a href='<?php echo $node_url; ?>' title='<?php echo $title; ?>'><?php echo $title; ?></a></span></h2>"
}
?>
Credo che nel tuo codice ci siano 2 problemi, entrambi relativi ai percorsi.
1 - non credo che il $filename impostato così funzioni. Credo richieda un path di sistema assoluto, che forse puoi ricavare con l'aiuto di $_SERVER['document-root'] o qualche altra variabile del genere.
2 - il path inserito nell'attributo src deve essere assoluto, cioè cominciare con uno slash, altrimenti non funziona per nodi con un path che ha più livelli (es. potrebbe funzionare per pagina.html, ma non per categoria/pagina.html)
Pinolo: il problema non e' nel path, anzi... quello funziona anche se non e' assoluto; ho inserito il comando echo $filename e quello mi da il risultato sperato.
Quello che non funziona e' proprio il codice php. Riporto qui sotto l'errore e l'intero node.tpl.php
Parse error: syntax error, unexpected '}', expecting ',' or ';' in /var/www/banq_temp/themes/banqueting/node.tpl.php on line 18
La linea 18 corrisponde al comando } else {. Penso ci sia qualche errore sintattico nel senso che non riconosce l'apertura o la chiusura del codice php.
<div class="Post">
<div class="Post-tl"></div>
<div class="Post-tr"><div></div></div>
<div class="Post-bl"><div></div></div>
<div class="Post-br"><div></div></div>
<div class="Post-tc"><div></div></div>
<div class="Post-bc"><div></div></div>
<div class="Post-cl"><div></div></div>
<div class="Post-cr"><div></div></div>
<div class="Post-cc"></div>
<div class="Post-body">
<div class="Post-inner">
<div class="PostMetadataHeader">
<?php
$filename = "sites/default/files/$title.png";
if (file_exists($filename)) {
echo "<h2 class='PostHeaderIcon-wrapper'> <span class='PostHeader'><a href='<?php echo $node_url; ?>' title='<?php echo $title; ?>'><img src='sites/default/files/<?php echo $title; ?>.png'</a></span></h2>"
} else {
echo "<h2 class='PostHeaderIcon-wrapper'> <span class='PostHeader'><a href='<?php echo $node_url; ?>' title='<?php echo $title; ?>'><?php echo $title; ?></a></span></h2>"
}
?>
</div>
<div class="PostContent">
<div class="article"><?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>
echo "<h2 class='PostHeaderIcon-wrapper'> <span class='PostHeader'><a href='<?php echo $node_url; ?>' title='<?php echo $title; ?>'><img src='sites/default/files/<?php echo $title; ?>.png'</a></span></h2>"
Qui hai fatto casino: hai inserito dei tag <?php all'interno dell'echo. INoltre non hai messo il punto e virgola alla fine dell'echo