Joomla.it Forum
Joomla! 2.5 (versione con supporto terminato) => Joomla! 1.6/1.7/2.5 => : eos87 23 Jan 2012, 11:05:05
-
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 (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 :)
-
crea una modulo, inserisci il codice, disabilita il titolo, pubblicalo nella pagina scelta.
-
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?
-
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
............inserire del codice HTML/CSS/JS nella sezione <head>.........
-
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?
-
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.
-
Ok allora mi affiderò agli stili in linea. Grazie per avermi cancellato ogni dubbio :)
-
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.
-
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
<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ì:
<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ì:
<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.
;)
-
Come sempre le risposte sono ottime ed abbondanti al contrario delle richieste ;)
-
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!
-
Tonicopi è sempre il meglio in un attimo decodificato la domanda. :)
-
.... 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 ;)
-
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) ::)
-
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
<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ì:
<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ì:
<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?
-
Ma per inserire il codice di analytics non ti serve creare una posizione modulo.
-
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.
-
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ì
<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ì
<?php echo $module->content;?>
Poi nelle funzioni avanzate dle modulo html personalizzato si assegna il layout alternativo così creato.
e tutto sembra a posto... ;)
-
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ì
<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ì
<?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?
-
Però pensandoci la tua soluzione mi sembra definitiva.
-
Però pensandoci la tua soluzione mi sembra definitiva.
Ero obbligato dal RISOLTO nel primo post ;D
-
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ì
<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;?>
<>
a così
<?php echo $module->content;?>
e tutto sembra a posto... ;)
Scusa Tonicopi,
ho fatto la modifica, ma mi prende sempre il default.php, dove sbaglio?
-
Ops, non sbagliavo, ma non assegnavo il layout alternativo :D
-
Grande tonicopi!
Prima, per fare questo usavo Jumy ma non mi piaceva più di tanto includere pagine esterne.
L'unico appunto che posso fare alla procedura descritta è che, nel mio caso (Joomla! 2.5.28 e Editor TinyMCE) va disabilitato l'editor, altrimenti non prende i comandi che si immettono (li visualizza a schermo, invece di farli prendere come istruzioni).
Grazie davvero!
-
Grande tonicopi!
Prima, per fare questo usavo Jumy ma non mi piaceva più di tanto includere pagine esterne.
L'unico appunto che posso fare alla procedura descritta è che, nel mio caso (Joomla! 2.5.28 e Editor TinyMCE) va disabilitato l'editor, altrimenti non prende i comandi che si immettono (li visualizza a schermo, invece di farli prendere come istruzioni).
Grazie davvero!
Fermo restando Grande tonicopi.
Perchè devi disabilitare l'editor? Io l'ho fatto tranquillamente.
-
Ciao,
cerco di spiegarmi un po' meglio.
Dovevo inserire questo codice:
<script type="text/javascript" src="http://www.lacalama.it/templates/zz/js/lib/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="http://www.lacalama.it/templates/zz/js/source/jquery.fancybox.pack.js?v=2.1.5"></script>
<link rel="stylesheet" href="http://www.lacalama.it/templates/zz/js/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
Con l'editor suddetto (TinyMCE - e Joomla 2.5.28) mi succedeva così:
1) se usavo "editor si/no" per inserire codice "puro", dopo aver copiato/incollato il codice ed aver premuto nuovamente "editor si/no", il testo immesso spariva. Ho provato 100 volte, ma succedeva sempre così!
2) se copiavo/incollavo semplicemente nella pagina dell'editor, il tutto veniva salvato, ma in pratica veniva "formattato" in questa maniera (aprendo editor si/no):
<p><script type="text/javascript" src="http://www.lacalama.it/templates/zz/js/lib/jquery-1.8.2.min.js"></script><br /><script type="text/javascript" src="http://www.lacalama.it/templates/zz/js/source/jquery.fancybox.pack.js?v=2.1.5"></script><br /><link rel="stylesheet" href="http://www.lacalama.it/templates/zz/js/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" /></p>
Il modulo veniva incluso prima del </head> nella pagina index.php del template.
Con il metodo (1) non succedeva nulla, mentre col metodo (2) veniva scritto:
<script type="text/javascript" src="http://www.lacalama.it/templates/zz/js/lib/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="http://www.lacalama.it/templates/zz/js/source/jquery.fancybox.pack.js?v=2.1.5"></script>
<link rel="stylesheet" href="http://www.lacalama.it/templates/zz/js/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
all'inizio della pagina in questione.
Disabilitando l'editor e copiando/incollando il codice, il tutto ha funzionato alla perfezione.
Non so se il problema è dato dalla versione 2.5.28, però su tre installazioni di Joomla (tutte e tre 2.5.X) il risultato è il solito.
Misteri dell'informatica! :)
P.s. Grande tonicopi 8)
-
Ciao,
cerco di spiegarmi un po' meglio.
Dovevo inserire questo codice:
<script type="text/javascript" src="http://www.lacalama.it/templates/zz/js/lib/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="http://www.lacalama.it/templates/zz/js/source/jquery.fancybox.pack.js?v=2.1.5"></script>
<link rel="stylesheet" href="http://www.lacalama.it/templates/zz/js/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
Con l'editor suddetto (TinyMCE - e Joomla 2.5.28) mi succedeva così:
1) se usavo "editor si/no" per inserire codice "puro", dopo aver copiato/incollato il codice ed aver premuto nuovamente "editor si/no", il testo immesso spariva. Ho provato 100 volte, ma succedeva sempre così!
2) se copiavo/incollavo semplicemente nella pagina dell'editor, il tutto veniva salvato, ma in pratica veniva "formattato" in questa maniera (aprendo editor si/no):
<p><script type="text/javascript" src="http://www.lacalama.it/templates/zz/js/lib/jquery-1.8.2.min.js"></script><br /><script type="text/javascript" src="http://www.lacalama.it/templates/zz/js/source/jquery.fancybox.pack.js?v=2.1.5"></script><br /><link rel="stylesheet" href="http://www.lacalama.it/templates/zz/js/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" /></p>
Il modulo veniva incluso prima del </head> nella pagina index.php del template.
Con il metodo (1) non succedeva nulla, mentre col metodo (2) veniva scritto:
<script type="text/javascript" src="http://www.lacalama.it/templates/zz/js/lib/jquery-1.8.2.min.js"></script>
<script type="text/javascript" src="http://www.lacalama.it/templates/zz/js/source/jquery.fancybox.pack.js?v=2.1.5"></script>
<link rel="stylesheet" href="http://www.lacalama.it/templates/zz/js/source/jquery.fancybox.css?v=2.1.5" type="text/css" media="screen" />
all'inizio della pagina in questione.
Disabilitando l'editor e copiando/incollando il codice, il tutto ha funzionato alla perfezione.
Non so se il problema è dato dalla versione 2.5.28, però su tre installazioni di Joomla (tutte e tre 2.5.X) il risultato è il solito.
Misteri dell'informatica! :)
P.s. Grande tonicopi 8)
Leopardo ho capito. Pensavo ti riferissi alla modifica della pagina del template. Per inserire il codice puoi fare come hai detto tu oppure usare il plugin sourcerer di NoNumber.
-
Buongiorno,
anche se questo post è datato, cerco di fare una domanda per un dubbio che mi è sorto.
Premetto che non ho messo in pratica quanto scritto e suggerito da Tonicopi, credo che il tutto funzioni se si dovesse aggiungere un modulo personalizzato, contenente css o js, solo per un articolo statico (associato ad una voce di menu).
Nel caso fossimo in presenza di una voce di menu con tipologia "categoria blog", come si potrebbe associare il suddetto modulo ad un articolo specifico?
In base al suo Id?
Grazie
-
Ma come ti viene in mente di riaprire un post risolto e vecchio di 7 anni e gia di per se incasinato? Aprine uno nuovo ed esponi il tuo problema alla luce delle versioni correnti.