- Home
- Categorie
- Coding e Sistemistica
- Joomla!
- Joomla: inserire un H1
-
Ciao FDA e grazie della risposta.
Non riesco a capire quale dei 2 file sia quello che comanda la home nel mio caso.
Le directory e i file che io vedo nel mio sito sono:
category > blog_item.php
frontpage > default_item.phpMa oltre a quello, una volta aperti entrambi i file per vedere il codice, vedo che a loro volta richiamano altre funzioni.
Il titolo del quale vorrei modificare il tag è proveniente da un modulo di news che vedo in "gestione articoli" (ID 110).
Qua, al momento, mi fermo sperando in un input.
Grazie
Un saluto
-
Pensavo si trattasse di un articolo. Se il titolo è dovuto a un modulo di news allora devi modificare il template del modulo.
Procedi così: entra nel modulo con id=110 e vai nel tab "advanced", tra gli altri trovi nche un menu a tendina con etichetta "header tag" > seleziona h1 invece di h3.
Con questa procedura dovresti riuscire a inserire l'h1 soltanto sul modulo con id=110 e non su tutti i moduli di questo tipo.
Fammi sapere se hai risolto.
-
Se non va neanche così vuol dire che sul template che adotti non è implementata questa funzionalità, quindi devi aprire il file del template del modulo e intervenire a mano, cosa che puoi fare in più modi:
- inserendo semplicemente l'h1 sul titolo (che poi varrà per tutti i moduli)
- mettendo una condizione per stampare l'h1 solo in quel caso (più difficile ma ottieni di non modificare in h1 tutti i moduli).
Su alcuni template il file generale da modificare in questo caso è: root di joomla > templates > tuo template > html > modules.php
-
Ciao FDA,
la prima soluzione che mi hai dato non è applicabile. Anche se il pannello di controllo è in italiano in "advanced" non c'è nessuna comando che somigli ad un header tag e con possibilità di modificare i tag header.
Allora sono andato nel modules.php che mi hai indicato. Anche se ho l'indecisione sul template utilizzato (uno ha accanto a sè nella gestione template la stellina nella colonna "predefinito", l'altro il segno di spunta nella colonna "assegnato" ), uno di essi ha nel nome la variante pagina interna, quindi penso che sia l'altro.
In ogni caso il contenuto del file modules.php (in entrambi i templates sono identici) a prima e ignorante occhiata non sembra mostrarmi modi di personalizzazione del titolo del modulo. Te lo riporto qui sotto in un quote per ben evidenziarlo.
/**
- @version $Id: modules.php 14401 2010-01-26 14:10:00Z louis $
- @package Joomla
- @copyright Copyright (C) 2005 - 2010 Open Source Matters. All rights reserved.
- @license GNU/GPL, see LICENSE.php
- Joomla! is free software. This version may have been modified pursuant
- to the GNU General Public License, and as distributed it includes or
- is derivative of works licensed under the GNU General Public License or
- other free or open source software licenses.
- See COPYRIGHT.php for copyright notices and details.
*/
// no direct access
defined('_JEXEC') or die('Restricted access');/**
- This is a file to add template specific chrome to module rendering. To use it you would
- set the style attribute for the given module(s) include in your template to use the style
- for each given modChrome function.
- eg. To render a module mod_test in the sliders style, you would use the following include:
- <jdoc:include type="module" name="test" style="slider" />
- This gives template designers ultimate control over how modules are rendered.
- NOTICE: All chrome wrapping methods should be named: modChrome_{STYLE} and take the same
- two arguments.
*/
/*
- Module chrome for rendering the module in a slider
*/
function modChrome_slider($module, &$params, &$attribs)
{
jimport('joomla.html.pane');
// Initialize variables
$sliders = & JPane::getInstance('sliders');
$sliders->startPanel( JText::_( $module->title ), 'module' . $module->id );
echo $module->content;
$sliders->endPanel();
}
/*
- Module chrome that allows for rounded corners by wrapping in nested div tags
*/
function modChrome_jarounded($module, &$params, &$attribs)
{ ?>
<div class="jamod module<?php echo $params->get('moduleclass_sfx'); ?>" id="Mod<?php echo $module->id; ?>">
<div>
<div>
<div>
<?php if ($module->showtitle != 0) : ?>
<?php
if(isset($_COOKIE['Mod'.$module->id])) $modhide = $_COOKIE['Mod'.$module->id];
else $modhide = 'show';
?>
<h3 class="<?php echo $modhide; ?>"><span><?php echo $module->title; ?></span></h3>
<?php endif; ?>
<div class="jamod-content"><?php echo $module->content; ?></div>
</div>
</div>
</div>
</div>
<?php
}
?>
Grazie
Ciao
-
Ciao bobrock4,
allora dovrebbe trattarsi di un Joomla! 1.5.
Procedi così:- Nella parte finale del codice che hai postato c'è questa riga:
<h3 class="<?php echo $modhide; ?>"><span><?php echo $module->title; ?></span></h3>
- Modifica h3 in h1 oppure inserisci una condizione per modificare in h1 soltanto il modulo con id=110; non ricordo come si fa in Joomla 1.5, ma se non ci riesci avvertimi qui e faccio una prova. Nota che a seguito di un'ispezione via browser del sorgente potresti vedere ancora il tag h3 vecchio: in questo caso pulisci la cache di Joomla dal pannello amministrativo, in Joomla 1.5 devi andare da menu superiore in Strumenti > Pulisci cache, selezioni tutto e fai clic su Cancella.
Aggiornaci.
-
@FDA said:
- Modifica h3 in h1 oppure inserisci una condizione per modificare in h1 soltanto il modulo con id=110; non ricordo come si fa in Joomla 1.5, ma se non ci riesci avvertimi qui e faccio una prova.
Aggiornaci.
Ciao FDA, l'H1 adesso l'ha preso seguendo il tuo consiglio Adesso ve ne sono molti di H1, alcuni dei quali inutili. Vorrei fare in modo, se possibile, di inserirlo in modo condizionato solo a quel modulo. Quando vedo come fai poi lo metto anche ad altri.
Grazie, un saluto
-
Ciao FDA,
ma tu sai da dove si gestiscono le meta description nella versione 1.5? Nella pagina (articolo) ci sono le informazioni metadata, ma non corrispondono alla meta description che vedo nel codice sorgente. Nella mia versione c'è anche installato un plugin che si chiama SEO simple.
Grazie
un saluto
-
Ciao bobrock4,
in Joomla 1.5 puoi definire un meta description "generale" dal menu superiore (Sito > Configurazione) che si attiva quando non c'è uno specifico meta description definito a livello di articolo. Credo però che dipenda dal plugin.Non conosco SEO simple, ma altre estensioni seo/sef permettono di sovrascrivere i valori di meta description e dunque questo potrebbe valere anche per SEO simple. Cerca il menu del plugin e verifica se sovrascrive il meta description, cosa che tra l'altro promette di fare: extensions.joomla.org/extensions/site-management/seo-a-metadata/meta-data/4102
Per la cosa della condizione su H1 ti faccio sapere, devo smanettarci un attimo.
-
Ciao FDA,
Il pannello di amministrazione della pagina alla voce "informazioni metadata-->descrizione" consente delle customizzazioni che sono poi visibili anche da SEO boss. E' il meta tag description.
Ho installato il plugin SEOboss che, anche nella versione free, mi consentirebbe di personalizzare il meta tag description per ogni pagina/articolo. Lui mi conferma che nella pagina la meta tag description è già stata definita dalla informazioni metadata.
Lo strano è che nella pagina i tool SEO e il sorgente pagina mi fanno vedere un'altra meta tag description, che non so da dove sia stato pescata. Non dalle informazioni metadata. Il testo è corretto, ma è nella lingua sbagliata.
Hai idea del perchè? Settaggi nelle lingue?
Grazie
Ciao
-
Ciao bobrock4.
Hai idea del perchè? Settaggi nelle lingue?
Non ne ho idea, forse è installata un'estensione per il multilingua che non riesce a gestire più lingue sul meta description, oppure può gestire i meta ma non è configurata bene. :bho:
-
Ok FDA. Grazie della tua risposta. Ciao
-
@FDA said:
Modifica h3 in h1 oppure inserisci una condizione per modificare in h1 soltanto il modulo con id=110; non ricordo come si fa in Joomla 1.5, ma se non ci riesci avvertimi qui e faccio una prova.
Ciao FDA. Scusa se ritorno sull'argomento, ma ho cercato supporto in altri forum per non richiedertelo, senza però trovare risposta. Hai idea come posso fare per modificare solo quell'H1? Dammi uno spunto magari, poi ci penso io ad approfondire.
Un saluto
E Buon Anno a tutti
-
Ciao bobrock4,
prendo a esempio il file root di joomla 1.5 > templates > beez > html > modules.php. L'originale è così:function modChrome_beezDivision($module, &$params, &$attribs) { $headerLevel = isset($attribs['headerLevel']) ? (int) $attribs['headerLevel'] : 3; if (!empty ($module->content)) : ?> <div class="moduletable<?php echo $params->get('moduleclass_sfx'); ?>"> <?php if ($module->showtitle) : ?> <h<?php echo $headerLevel; ?>><?php echo $module->title; ?></h<?php echo $headerLevel; ?>> <?php endif; ?> <?php echo $module->content; ?> </div> <?php endif; }
Puoi modificarlo in qualcosa del genere:
function modChrome_beezDivision($module, &$params, &$attribs) { $headerLevel = isset($attribs['headerLevel']) ? (int) $attribs['headerLevel'] : 3; if (!empty ($module->content)) : ?> <div class="moduletable<?php echo $params->get('moduleclass_sfx'); ?>"> <?php if ($module->showtitle) : ?> <?php if ($module->id == 110) { echo "<h1>" . $module->title . "</h1>"; } else { echo "<h" . $headerLevel . ">" . $module->title . "</h" . $headerLevel . ">"; } ?> <?php endif; ?> <?php echo $module->content; ?> </div> <?php endif; }
Al posto di "110" inserisci l'id per il quale vuoi l'h1. Al posto di "h1" puoi sostituire h2, h4 ... .
Attenzione agli stili CSS.
Fammi sapere se hai risolto.Francesco
-
Ciao FDA,
non trovando lo stesso path ho fatto una ricerca con la stringa $module->showtitle e la sola ricorrenza che ho trovato è questo codice nel file administrator-->template-->system-->html. Non so se è la stessa cosa.
/* * xhtml (divs and font headder tags) */ function modChrome_xhtml($module, &$params, &$attribs) { if (!empty ($module->content)) : ?> <div class="module<?php echo $params->get('moduleclass_sfx'); ?>"> <?php if ($module->showtitle != 0) : ?> <h3><?php echo $module->title; ?></h3> <?php endif; ?> <?php echo $module->content; ?> </div> <?php endif; }
Ciao
-
Ciao bobrock4,
a occhio il file che hai preso è quello relativo al template di modulo nel back end, mentre a te serve quello nel front end. Dovresti cercare il file module.php all'interno di root > templates > tuotemplate > html. Se non trovi nulla così, allora prova a cercare in root > templates > system > html > module.php (qui però fai una prova, potrei confondermi ;)).
-
Ciao, seguendo il tuo ultimo path ho sono arrivato al file dove avevo modificato l'h3 in h1 e che aveva funzionato, anche se mi sono trovato 12 h1 nella pagina.
Ti prendo la porzione di codice che lo riguardava.
/* * Module chrome that allows for rounded corners by wrapping in nested div tags */ function modChrome_jarounded($module, &$params, &$attribs) { ?> <div class="jamod module<?php echo $params->get('moduleclass_sfx'); ?>" id="Mod<?php echo $module->id; ?>"> <div> <div> <div> <?php if ($module->showtitle != 0) : ?> <?php if(isset($_COOKIE['Mod'.$module->id])) $modhide = $_COOKIE['Mod'.$module->id]; else $modhide = 'show'; ?> <h3 class="<?php echo $modhide; ?>"><span><?php echo $module->title; ?></span></h3> <?php endif; ?> <div class="jamod-content"><?php echo $module->content; ?></div> </div> </div> </div> </div> <?php } ?>
Non ho visto dove potrei intervenire.
Grazie
Ciao
-
Ciao.
Modifica così:function modChrome_jarounded($module, &$params, &$attribs) { ?> <div class="jamod module<?php echo $params->get('moduleclass_sfx'); ?>" id="Mod<?php echo $module->id; ?>"> <div> <div> <div> <?php if ($module->showtitle != 0) : ?> <?php if(isset($_COOKIE['Mod'.$module->id])) $modhide = $_COOKIE['Mod'.$module->id]; else $modhide = 'show'; ?> <h<?php if ($module->id == 110) {echo '1';} else {echo '3'} ?> class="<?php echo $modhide; ?>"><span><?php echo $module->title; ?></span></h<?php if ($module->id == 110) {echo '1';} else {echo '3'} ?>> <?php endif; ?> <div class="jamod-content"><?php echo $module->content; ?></div> </div> </div> </div> </div> <?php } ?>
Fammi sapere se va.
-
Ciao, ho provato ma sul codice
<h<?php if ($module->id == 110) {echo '1';} else {echo '3'} ?> class="<?php echo $modhide; ?>"><span><?php echo $module->title; ?></span></h<?php if ($module->id == 110) {echo '1';} else {echo '3'} ?>> <?php endif; ?>
mi da un errore, ma riesco a non vederlo più mettendo {echo '3';} al posto di {echo '3'}.
In ogni caso non mostra sulla pagina live nè l'h1 nè l'h3.
Grazie del tuo intervento
-
Avevo dimenticato il ; a due parti
In ogni caso non mostra sulla pagina live nè l'h1 nè l'h3.
Ci deve essere un motivo banale, perché dovrebbe andare ...