Back to top

Autore Topic: [RISOLTO] inserire codice in sezione <head> di una pagina specificata  (Letto 24392 volte)

Offline eos87

  • Nuovo arrivato
  • *
  • Post: 27
    • Mostra profilo
Salve a tutti!
Vorrei chiedere se per caso esiste un'estensione per Joomla 1.7, in grado di far inserire del codice HTML/CSS/JS nella sezione <head> di una specifica pagina dell'intero sito.
Ho trovato ad esempio estensioni gratuite come questa http://extensions.joomla.org/extensions/edition/custom-code-in-modules/11936?qh=YToxOntpOjA7czoxMDoiZWFzeWhlYWRlciI7fQ%3D%3D, che però permettono di inserire codice e script nella sezione <head> di tutte le pagine del sito; perciò se ho in mente di inserire delle proprietà css per controllare l'aspetto di un solo articolo in una determinata pagina non va bene.
Avete qualche suggerimento e link da propormi? Ve ne sarei molto grata  :)
« Ultima modifica: 23 Gen 2012, 12:58:45 da eos87 »

Offline giusebos

  • Fuori controllo
  • *
  • Post: 21748
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
Re:inserire codice in sezione <head> di una pagina specificata
« Risposta #1 il: 23 Gen 2012, 11:16:22 »
crea una modulo, inserisci il codice, disabilita il titolo, pubblicalo nella pagina scelta.
su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline eos87

  • Nuovo arrivato
  • *
  • Post: 27
    • Mostra profilo
Re:inserire codice in sezione <head> di una pagina specificata
« Risposta #2 il: 23 Gen 2012, 11:37:11 »
come faccio però a pubblicare un modulo nel codice html della pagina scelta (nel mio caso nella sezione <head>)? Di solito i moduli non si pubblicano in una posizione stabilita dal template?

Offline giusebos

  • Fuori controllo
  • *
  • Post: 21748
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
Re:inserire codice in sezione <head> di una pagina specificata
« Risposta #3 il: 23 Gen 2012, 12:38:29 »
Se tu devi mettere del codice javascript, è lo vuoi solo su una pagina, va bene inserirlo su un modulo, questo non si vedrà.

per tutto il resto meglio una spiegazione più consona

Citazione
............inserire del codice HTML/CSS/JS nella sezione <head>.........
su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline eos87

  • Nuovo arrivato
  • *
  • Post: 27
    • Mostra profilo
Re:inserire codice in sezione <head> di una pagina specificata
« Risposta #4 il: 23 Gen 2012, 12:46:42 »
Sarò più precisa allora: io dovrei inserire delle regole css per controllare l'aspetto di alcuni paragrafi che si trovano solo in un certo articolo. Tutti gli stili ovviamente non vanno inseriti in un punto qualsiasi del codice html della pagina, bensì nella sua sezione head. Ed è qui che vien fuori il problema: tramite i moduli (con HTML personalizzato) posso inserire del codice solo dopo il tag <body>, e tra l'altro se io ho creato dei menu dove le voci sono del tipo "categoria blog", non potrò associare quel modulo alla pagina specifica dove si trova il singolo articolo. Quindi ciò che vorrei chiedere è questo: esiste un modo per inserire del codice racchiuso dentro a un  <style type="text/css">...</style> in una precisa pagina del mio sito joomla?


Offline tomtomeight

  • Global Moderator
  • Fuori controllo
  • ********
  • Post: 32046
  • Sesso: Maschio
  • Gli automatismi aiutano ma non insegnano nulla.
    • Mostra profilo
Re:inserire codice in sezione <head> di una pagina specificata
« Risposta #5 il: 23 Gen 2012, 12:52:32 »
Direttamente non puoi in quanto in un cms dinamico quella che tu consideri una precisa pagina, in realtà non esiste, perché viene generata dinamicamente solo su richiesta.

Offline eos87

  • Nuovo arrivato
  • *
  • Post: 27
    • Mostra profilo
[RISOLTO] inserire codice in sezione <head> di una pagina specificata
« Risposta #6 il: 23 Gen 2012, 12:57:56 »
Ok allora mi affiderò agli stili in linea. Grazie per avermi cancellato ogni dubbio  :)

Offline giusebos

  • Fuori controllo
  • *
  • Post: 21748
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
Re:inserire codice in sezione <head> di una pagina specificata
« Risposta #7 il: 23 Gen 2012, 13:03:38 »
devi percorrere un'altra strada.

Se desideri che solo 1 articolo oppure n articoli debbano avere un tipo di formattazione, devi fare l'override dell'impaginazione dell'articolo, oppure dell'impaginazione blog, aggiungendo le nuove regole css che andrai a creare direttamente nel file css principale.


potrai trovare quelle "impaginazioni alternative" alla voce "layout alternativo" dentro la gestione dell'articolo, oppure nelle impostazioni della categoria alla medesima voce "layout alternativo".

Puoi avere più informazioni sull'override cercando fra le guide degli utenti del forum.

Se la risposta che ti ho proposto è quello che stai cercando dovresti cambiare il titolo del primo 3d in:

"override: realizzare pagine con differenti stili"

così magari chi cerca una soluzione del genere la potrà trovare più facilmente.

In genere la domanda che hai posto serve solo per avere codice Javascript in determinate pagine, magari per avere una qualche funzionalità non disponibile con nessuna estensione.
su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline tonicopi

  • Global Moderator
  • Instancabile
  • ********
  • Post: 12790
  • Sesso: Maschio
    • Mostra profilo
A me pare che non si stia tenendo conto che si possono inserire moduli anche nella sezione head del template e non solo nel body. Quello che è stato richiesto è dunque possibile in tre mosse:

1 - inserire una posizione modulo nella head del template, ad esempio
Codice: [Seleziona]
<jdoc:include type="modules" name="codice" />.
Se si pensa di inserire un foglio di di stile o anche una sola regola css che deve sovrascrivere altri fogli di stile è bene mettere questa posizione modulo immendiatamen te prima di chiudere il tag head così:
Codice: [Seleziona]
  <jdoc:include type="modules" name="codice" />

        </head>
;

2- fare un modulo di tipo html personalizzato nel quale inseriremo direttamente la nostra regola css oppure il codice di richiamo di un intero foglio di stile così:
Codice: [Seleziona]
<link rel="stylesheet" href="/cartella_root/templates/tuo_template/css/tuo_stile.css" type="text/css" />;

3- pubblicare il modulo testè fatto nella posizione modulo inserita nella head (nel nostro esempio codice) e pubblicare il modulo nella o nelle pagine dove si vuole che tale foglio di stile venga caricato. Se si tratta di un artioclo non linkato da nessuna voce di menù si deve creare un menu nascosto con una voce di menu che punta  a tale articolo in modo che diventi possibile assegnare il modulo con il codice anche  a tale articolo.

Aggiungo che se volessimo formattare tutti gli articoli di una stessa categoria basta pubblicare una voce di menu che punta a quella categoria, anche nel menu nascosto, ed assegnare a quella voce il modulo con il codice. In buona sostanza anche un modulo pubblicato nella head del template segue le stesse regole degli altri moduli pubblicati nella parte visibile del template.
 ;)
joomlacsszengarden.com = il giardino dei css di Joomla!
L'attesa del piacere è essa stessa... piacere!

Offline giusebos

  • Fuori controllo
  • *
  • Post: 21748
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
Come sempre le risposte sono ottime ed abbondanti al contrario delle richieste ;)
su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline eos87

  • Nuovo arrivato
  • *
  • Post: 27
    • Mostra profilo
Grazie mille tonicopi, sei stato chiarissimo nella spiegazione e hai capito perfettamente di cosa avevo bisogno: poter linkare del codice css in un determinato articolo senza bisogno di gonfiare ulteriormente il foglio di stile principale per tutto il sito. Ottima la soluzione di creare un menu con voci che puntano a determinati articoli, e tenerlo nascosto (cioè non pubblicato): non ci sarei mai arrivata  :)

A buon rendere!

Offline giusebos

  • Fuori controllo
  • *
  • Post: 21748
  • Sesso: Maschio
  • Giuseppe Serbelloni Mazzanti Viendalmare
    • Mostra profilo
Tonicopi è sempre il meglio in un attimo decodificato la domanda.  :)
su www.icagenda.it guide e tutorial con esempi di chronoforms e chronoconnectivity

Offline tonicopi

  • Global Moderator
  • Instancabile
  • ********
  • Post: 12790
  • Sesso: Maschio
    • Mostra profilo
.... in un attimo decodificato la domanda.  :)
ah ah aha.... e che non sapevo neanche che eos87 è una femmina, che allora mi si moltiplicano le risorse  ;D

@eos87: mettici il rosa nel profilo  ;)
joomlacsszengarden.com = il giardino dei css di Joomla!
L'attesa del piacere è essa stessa... piacere!

Offline paolobros

  • Esploratore
  • **
  • Post: 68
  • Sesso: Maschio
  • web per passione
    • Mostra profilo
Tonicopi sei un grande!!!!! Erano giorni che cercavo questa cosa senza successo!!!
Lo so che sto in ritardo con la chiusura del post ma l'ho trovato solo oggi. Grazieeee.   :D ;D :) 8) ::)
paolobros

Offline Gioacchino Cipriano

  • Appassionato
  • ***
  • Post: 409
  • Sesso: Maschio
    • Mostra profilo
A me pare che non si stia tenendo conto che si possono inserire moduli anche nella sezione head del template e non solo nel body. Quello che è stato richiesto è dunque possibile in tre mosse:

1 - inserire una posizione modulo nella head del template, ad esempio
Codice: [Seleziona]
<jdoc:include type="modules" name="codice" />.
Se si pensa di inserire un foglio di di stile o anche una sola regola css che deve sovrascrivere altri fogli di stile è bene mettere questa posizione modulo immendiatamen te prima di chiudere il tag head così:
Codice: [Seleziona]
  <jdoc:include type="modules" name="codice" />

        </head>
;

2- fare un modulo di tipo html personalizzato nel quale inseriremo direttamente la nostra regola css oppure il codice di richiamo di un intero foglio di stile così:
Codice: [Seleziona]
<link rel="stylesheet" href="/cartella_root/templates/tuo_template/css/tuo_stile.css" type="text/css" />;

3- pubblicare il modulo testè fatto nella posizione modulo inserita nella head (nel nostro esempio codice) e pubblicare il modulo nella o nelle pagine dove si vuole che tale foglio di stile venga caricato. Se si tratta di un artioclo non linkato da nessuna voce di menù si deve creare un menu nascosto con una voce di menu che punta  a tale articolo in modo che diventi possibile assegnare il modulo con il codice anche  a tale articolo.

Aggiungo che se volessimo formattare tutti gli articoli di una stessa categoria basta pubblicare una voce di menu che punta a quella categoria, anche nel menu nascosto, ed assegnare a quella voce il modulo con il codice. In buona sostanza anche un modulo pubblicato nella head del template segue le stesse regole degli altri moduli pubblicati nella parte visibile del template.
 ;)
Riprendo questo vecchio post. Essendo da inserire nell'head c'è il problema che viene incluso anche il Tag <div class="custom"> dove all'interno ad esempio inserisco lo script di Google Analytics.
Quindi penso non sia corretto.
Che ne pensi Tonicopi?
Grazie
Gioacchino Cipriano

Offline tonicopi

  • Global Moderator
  • Instancabile
  • ********
  • Post: 12790
  • Sesso: Maschio
    • Mostra profilo
Ma per inserire il codice di analytics non ti serve creare una posizione modulo.
joomlacsszengarden.com = il giardino dei css di Joomla!
L'attesa del piacere è essa stessa... piacere!

Offline Gioacchino Cipriano

  • Appassionato
  • ***
  • Post: 409
  • Sesso: Maschio
    • Mostra profilo
Ma per inserire il codice di analytics non ti serve creare una posizione modulo.
Era un esempio. Da intendere qualsiasi script che necessita di essere in quella posizione. Ovvero nell'head.
Grazie
Gioacchino Cipriano

Offline tonicopi

  • Global Moderator
  • Instancabile
  • ********
  • Post: 12790
  • Sesso: Maschio
    • Mostra profilo
Questa discussione riguardava la 2.5 e adesso le cose sono andate avanti.
Ho provato con la 3.4.3 template protostar e se inserisco un javascript o un css nel modo descritto con un modulo di tipo html personalizzato mi porta il div addirittura fuori dalla head e lo mette sotto il tag <body>.
Un javascript e un css funzioneramnno però lo stesso, credo..
Ad ogni modo si può metterlo nella head ugualmente. Basta creare un nuovo stile del modulo di tipo custom.
Si va in
modules/mod_custom/tmpl/default.php
e si duplica il default.php rinominandolo.
In quello duplicato si toglie il div cambiando il codice da così
Codice: [Seleziona]
<div class="custom<?php echo $moduleclass_sfx ?>" <?php if ($params->get('backgroundimage')) : ?> style="background-image:url(<?php echo $params->get('backgroundimage');?>)"<?php endif;?> >
    <?php echo $module->content;?>
</div>
a così
Codice: [Seleziona]
    <?php echo $module->content;?>Poi nelle funzioni avanzate dle modulo html personalizzato si assegna il layout alternativo così creato.
e tutto sembra a posto...  ;)
« Ultima modifica: 27 Lug 2015, 11:13:48 da tonicopi »
joomlacsszengarden.com = il giardino dei css di Joomla!
L'attesa del piacere è essa stessa... piacere!

Offline Gioacchino Cipriano

  • Appassionato
  • ***
  • Post: 409
  • Sesso: Maschio
    • Mostra profilo
Questa discussione riguardava la 2.5 e adesso le cose sono andate avanti.
Ho provato con la 3.4.3 template protostar e se inserisco un javascript o un css nel modo descritto con un modulo di tipo html personalizzato mi porta il div addirittura fuori dalla head e lo mette sotto il tag <body>.
Un javascript e un css funzioneramnno però lo stesso, credo..
Ad ogni modo si può metterlo nella head ugualmente. Basta creare un nuovo stile del modulo di tipo custom.
Si va in
modules/mod_custom/tmpl/default.php
e si duplica il default.php rinominandolo.
In quello duplicato si toglie il div cambiando il codice da così
Codice: [Seleziona]
<div class="custom<?php echo $moduleclass_sfx ?>" <?php if ($params->get('backgroundimage')) : ?> style="background-image:url(<?php echo $params->get('backgroundimage');?>)"<?php endif;?> >
    <?php echo $module->content;?>
</div>
a così
Codice: [Seleziona]
    <?php echo $module->content;?>e tutto sembra a posto...  ;)
A me lo mette nell'head. Però eventualmente si potrebbe pensare a un replace del <div class = "custom" ....
Che dici?
Grazie
Gioacchino Cipriano

Offline Gioacchino Cipriano

  • Appassionato
  • ***
  • Post: 409
  • Sesso: Maschio
    • Mostra profilo
Però pensandoci la tua soluzione mi sembra definitiva.
Grazie
Gioacchino Cipriano

 



Web Design Bolzano Kreatif