Joomla.it Forum
Joomla! 3 => Joomla! 3 => : antoniomg 02 Jun 2017, 14:29:37
-
Buonasera a tutti, vorrei sapere se esiste la possibilità di scrivere nell'head di un articolo, magari sfruttando la funzione dei campi aggiuntivi: mi spiego meglio, vorrei aggiungere dei meta tag diversi per ogni articolo come per esempio i tag open graph per facebook.
Grazie anticipatamente.
-
Nei cms e quindi anche in joomla, non esiste una pagina di un articolo specifico. Le pagine html vengono costruite dinamicamente a richiesta prendendo i vari elementi dal template, e dal db, appunto l'head sta nel template ed è comune per tutte le pagine che verranno generate.Per quello che vuoi fare esistono apposite estensioni, guarda nella jed.
-
Si infatti, so che le pagine sono generate dinamicamente. Proprio in virtù di questo volevo cercare di modificare il codice con un pò di php e aggiungere nell'head delle informazioni in base all'id dell'articolo.
cmq cercherò anche nella jed e se trovo una estensione cercherò di studiarla per vedere come si comporta il codice.
Nel frattempo se qualcuno sapesse darmi qualche dritta vi sarei molto grato.
-
Ciao, gli OG di facebook li inseriscono automaticamente molti plugin di condivisione! esempio social 2S (https://extensions.joomla.org/extension/social2s/) o BT Social Sharing (https://extensions.joomla.org/extension/bt-social-sharing/) o Fast Social Share (https://extensions.joomla.org/extension/fast-social-share/), se non trovi estensioni che fanno al caso tuo per gli altri tipi di tag li puoi inserire tranquillamente negli articoli usando il "pulsate" codice sorgente che trovi nell' editor di joomla! Strumenti/codice sorgente
-
Grazie mille $red! ma inserendo codice nell'articolo per come mi hai spiegato andrà a finire all'interno del body, giusto? mentre da quello che so i tag og devono stare necessariamente nell'head..
Se però possono atre anche nel body allora la tua soluzione fa al caso mio..
-
Grazie mille $red! ma inserendo codice nell'articolo per come mi hai spiegato andrà a finire all'interno del body, giusto? mentre da quello che so i tag og devono stare necessariamente nell'head..
Se però possono atre anche nel body allora la tua soluzione fa al caso mio..
Ciao antoniomg,
ho fatto un tentativo seguendo la procedura descritta qui:
https://stackoverflow.com/questions/13466364/adding-custom-meta-tags-for-every-different-page-in-joomla (https://stackoverflow.com/questions/13466364/adding-custom-meta-tags-for-every-different-page-in-joomla)
Il sistema funziona anche in Joomla 3.7.x e il meta tag di prova che ho inserito <meta name="prova insert tag" content="pippo">
si vede nella head ma con dei grossi difetti. Intanto viene fuori dopo un tag che carica un file .js mentre i metatags dovrebbero stare tutti prima.
Poi inserire nell'index del template /*********************/
$doc = JFactory::getDocument();
$doc->addCustomTag("<meta name='prova insert tag' content='pippo'/>");
/* ****************/
sporca parecchio: è bruttissimo.
Andrebbe inserito molto più a monte ma allora ... diventa un plugin.
Comunque, se si vuole mettere una pezza il metodo funziona.
Un saluto.
-
e poi l'inserimento in ogni singolo articolo come si fà?
Ciao antoniomg,
ho fatto un tentativo seguendo la procedura descritta qui:
https://stackoverflow.com/questions/13466364/adding-custom-meta-tags-for-every-different-page-in-joomla (https://stackoverflow.com/questions/13466364/adding-custom-meta-tags-for-every-different-page-in-joomla)
Il sistema funziona anche in Joomla 3.7.x e il meta tag di prova che ho inserito <meta name="prova insert tag" content="pippo">
si vede nella head ma con dei grossi difetti. Intanto viene fuori dopo un tag che carica un file .js mentre i metatags dovrebbero stare tutti prima.
Poi inserire nell'index del template /*********************/
$doc = JFactory::getDocument();
$doc->addCustomTag("<meta name='prova insert tag' content='pippo'/>");
/* ****************/
sporca parecchio: è bruttissimo.
Andrebbe inserito molto più a monte ma allora ... diventa un plugin.
Comunque, se si vuole mettere una pezza il metodo funziona.
Un saluto.
-
Ciao,
anche io avevo bisogno di inserire nell'head di OGNI articolo presente contenuti differenti e ho adottato questa soluzione, che può piacere o no..
Nell'index php del template ho aggiunto questo codice nell'head:
<jdoc:include type="head" />
<?php $input = JFactory::getApplication()->input;
$id = $input->getInt('id'); //get the article ID
$article = JTable::getInstance('content');
$article->load($id);?>
<jdoc:include type="module" name="mod_custom" title="ogtag_<?php echo $article->get('title');?>" />
Poi sempre a partire dalla cartella base del template, nella cartella html -> mod_custom ho creato il file templatecustom.php con questo codice:
<?php
/**
* @package Joomla.Site
* @subpackage mod_custom
*
* @copyright Copyright (C) 2005 - 2017 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('_JEXEC') or die;
?>
<?php echo $module->content; ?>
Quindi basta a questo punto creare un modulo custom dal titolo ogtag_titoloArticolo con contenuto uguale a quello che vuoi inserire (direttamente il codice html).
Quindi come template scegli il template custom che hai creato: in questo modo non ti racchiude il modulo custom in un div.
-
Grazie ragazzi, anche le mie ricerche di oggi mi hanno portato su "jfactory" domani proverò ad adottare le vostre soluzioni.. vi farò sapere!
-
Ciao,
anche io avevo bisogno di inserire nell'head di OGNI articolo presente contenuti differenti e ho adottato questa soluzione, che può piacere o no..
Una soluzione interessante, imho.
Tua originale mi sembra.
ciao!
-
In realtà non è mia la soluzione, l'ho trovata in rete cercando un po' e adattata al modulo custom, ma non ricordo la fonte.
Così com'è, l'unica pecca è che per ogni articolo bisogna creare un modulo personalizzato "ogtag_titoloArticolo" altrimenti il codice cerca il modulo ma non lo trova. In caso non si voglia inserire nulla, basta creare il modulo personalizzato vuoto.