Back to top

Autore Topic: scrivere nell'<head> della pagina di un articolo  (Letto 3781 volte)

Offline antoniomg

  • Nuovo arrivato
  • *
  • Post: 8
    • Mostra profilo
scrivere nell'<head> della pagina di un articolo
« il: 02 Giu 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.

Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:scrivere nell'<head> della pagina di un articolo
« Risposta #1 il: 02 Giu 2017, 14:39:36 »
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.

Offline antoniomg

  • Nuovo arrivato
  • *
  • Post: 8
    • Mostra profilo
Re:scrivere nell'<head> della pagina di un articolo
« Risposta #2 il: 02 Giu 2017, 15:09:09 »
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.

Offline $Red

  • Moderator
  • Instancabile
  • *****
  • Post: 5351
  • "Bastard Inside"
    • Mostra profilo
Re:scrivere nell'<head> della pagina di un articolo
« Risposta #3 il: 02 Giu 2017, 15:39:33 »
Ciao, gli OG di facebook li inseriscono automaticamente molti plugin di condivisione! esempio social 2S o BT Social Sharing o 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

Offline antoniomg

  • Nuovo arrivato
  • *
  • Post: 8
    • Mostra profilo
Re:scrivere nell'<head> della pagina di un articolo
« Risposta #4 il: 02 Giu 2017, 16:36:04 »
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..

Offline Alex21

  • Appassionato
  • ***
  • Post: 645
    • Mostra profilo
Re:scrivere nell'<head> della pagina di un articolo
« Risposta #5 il: 02 Giu 2017, 17:56:18 »
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


Il sistema funziona anche in Joomla 3.7.x e il meta tag di prova che ho inserito
Codice: [Seleziona]
<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
Codice: [Seleziona]
/*********************/
$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.

Offline $Red

  • Moderator
  • Instancabile
  • *****
  • Post: 5351
  • "Bastard Inside"
    • Mostra profilo
Re:scrivere nell'<head> della pagina di un articolo
« Risposta #6 il: 02 Giu 2017, 21:19:42 »
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


Il sistema funziona anche in Joomla 3.7.x e il meta tag di prova che ho inserito
Codice: [Seleziona]
<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
Codice: [Seleziona]
/*********************/
$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.

Offline danielecr

  • Abituale
  • ****
  • Post: 1357
    • Mostra profilo
Re:scrivere nell'<head> della pagina di un articolo
« Risposta #7 il: 02 Giu 2017, 21:37:46 »
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:
Codice: [Seleziona]
<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:
Codice: [Seleziona]
<?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.
« Ultima modifica: 02 Giu 2017, 21:40:01 da danielecr »

Offline antoniomg

  • Nuovo arrivato
  • *
  • Post: 8
    • Mostra profilo
Re:scrivere nell'<head> della pagina di un articolo
« Risposta #8 il: 03 Giu 2017, 01:05:49 »
Grazie ragazzi, anche le mie ricerche di oggi mi hanno portato su "jfactory" domani proverò ad adottare le vostre soluzioni.. vi farò sapere!

Offline Alex21

  • Appassionato
  • ***
  • Post: 645
    • Mostra profilo
Re:scrivere nell'<head> della pagina di un articolo
« Risposta #9 il: 03 Giu 2017, 10:53:18 »
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!

Offline danielecr

  • Abituale
  • ****
  • Post: 1357
    • Mostra profilo
Re:scrivere nell'<head> della pagina di un articolo
« Risposta #10 il: 03 Giu 2017, 11:05:09 »
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.

 



Web Design Bolzano Kreatif