Joomla.it Forum
Joomla! 3 => Joomla! 3 => : squalogu 30 Nov 2016, 17:59:59
-
ciao, sto cercando di collegare un file js che ho creato ad un determinato modulo e pagina. l'ho caricato in media/system/js, ho provato a richiamarlo inserendo il richiamo nel file index o nel modulo della pagina ma non va.. viene richiamato ma non applicato
-
bho, che centra quel percorso mi chiedo.
- devi inserirlo nella cartella js del template
- 2 richiamarlo con un codice tipo:
<?php
$doc = JFactory::getDocument();
$doc->addScript($this->baseurl."/templates/".$this->template."/bootstrap/js/bootstrap.js");
?>
da integrare nel codice esistente, quindi da ricontrolare se esiste la dichiarazione
$doc = JFactory::getDocument();
e quindi usare solo
$doc->addScript($this->baseurl."/templates/".$this->template."/bootstrap/js/bootstrap.js");
Per la consulenza mi sei debitore di una unità ;)
-
ti sono debitore di una pizza, quindi quando verrai in Sardegna oltre a consigliarti e farti sconto su traghetti e hotel ce la beviamo..
ma.. domanda.
in che file devo incorporare:
<?php$doc = JFactory::getDocument();
$doc->addScript($this->baseurl."/templates/".$this->template."/bootstrap/js/bootstrap.js");
?>
nel file js? o nell'index o dove?
-
nella index.php del tuo template ( templates/tuotemplate/index.php )
-
ho fatto così ma non va
<?php
/**
* @version $Id: coolfeed.php 100 2012-04-14 17:42:51Z dddddddd@gmail.com $
* @license License GNU General Public License version 2 or later
*/
// No direct access
defined('_JEXEC') or die;
require_once dirname(__FILE__).DIRECTORY_SEPARATOR.'core/avatar.php';
Avatar::loadFrameWork();
$template = Avatar::getTemplate($this);
echo $template->render();
$template->optimize();
$doc = JFactory::getDocument();$doc->addScript($this->baseurl."/nometemplates/".$this->template."/js/nomefile.js");
-
devi applicare con esattezza quello che ti ha suggerito giusebos, altrimenti non funziona. Nel caso specifico non puoi usare nometemplates nella url del template :D
edit: mi seorge un dubbio, non vorrei che quel codice sia adatto solo per usi precedenti l'istanziazione del template. E se invece nel tag < head > del template ci piazzi direttamente:
<script src="<?php echo $this->baseurl . "/nometemplates/" . $this->template . "/js/nomefile.js"; ?>" ></script>
che succede?
-
anche così potrebbe andare
<script src="<?php echo $this->baseurl . "/nometemplates/" . $this->template . "/js/nomefile.js"; ?>" ></script>
veniamo io e giovi ospiti una settimana a spese tue ;D ;D ;D ;D
-
Ahaha! Non dire così altrimenti sembra che mi sono imbucato apposta nella discussione ;D
-
tranquilli una pizza in più non guasta ... ma non riempite un minivan ;D
comunque non va..
-
in firebug o nella consolle per sviluppatori lo vedi come una risorsa esterna o come un network error 404?
-
viene caricato, ma non eseguito...
in firebug o in chrome vedo il file js
-
viene caricato, ma non eseguito...
in firebug o in chrome vedo il file js
Mah, leggendo http://www.html.it/pag/44914/template-html-di-partenza/
sembra che venga caricato in un'altra posizione. Nella <head > carica il file css.
Il js lo carica prima di </body> con jQuery presente.
-
Mi sa che mi sono perso qualcosa :o
@squaloglu: se non viene applicato c'è un errore nel codice, nella posizione o lo stai applicando a qualche selettore sbagliato. Di che script stiamo parlando? Cosa fa esattamente?
-
il file js in allegato dovrebbe nascondere le descrizioni/elenchi elle tabelle di questa estensione http://demo.joomboost.com/easy-price-table e mostrarle al click
-
script bocciato! A partire dal window.onload :(
jQuery non ti piace proprio? :D
Ma sei sicuro che la consolle non ti dia errori? Io vedo una specie di carattere di escape al termine di ogni riga
-
il file js in allegato dovrebbe nascondere le descrizioni/elenchi elle tabelle di questa estensione http://demo.joomboost.com/easy-price-table (http://demo.joomboost.com/easy-price-table) e mostrarle al click
Una faccenda di display none allora.
Qui si va ad una differenza basilare di punti di vista: chi ama le librerie e chi ne fa volentieri a meno.
Comunque a me sembra che:
- window.onload non debba usarsi perché rallenta inutilmente, meglio "DOMContentLoaded" che attende solo fino a quando il DOM è completo.
- php forse nemmeno serve: magari ti basta una iniezione diretta di codice javascript nel template.
- di bootstrap puoi fare a meno.
Ti allego un frammento che mostra / nasconde, molto semplice ma funzionante.
<script type="text/javascript">
var jsMod_istat = {disVis : 0};
document.addEventListener('DOMContentLoaded', function() {
var a = document.getElementById('a_disclaimer');
a.onclick = function (){
var dis = document.getElementById('ist_disclaimer');
if(jsMod_istat.disVis == 0){
dis.style.display = 'block';
jsMod_istat.disVis = 1;
}
else {
dis.style.display = 'none';
jsMod_istat.disVis = 0;
}
};
});
</script>
Il frammento va inserito nella <head>
Ciao!