Appel à un javascript dans la partie privée

Bonjour

J'ai mis en place un modèle qui réalise un petit diaporama à partir
d'images mises en documents joints à un article. Ce modèle fait appel à
un javascript que je voudrais bien garder en fichier séparé du modèle et
qui est donc appelé dans l'entête head des pages sommaire, rubrique ou
article.

Côté public tout fonctionne bien. Mais côté privé rien n'est visible
dans la prévisualisation de l'article le modèle est bien interprété mais
comme le javascript n'est pas présent, rien ne s'affiche et une erreur
javascript est générée...

Merci des pistes

--
Dominique
http://wojylac.free.fr

Côté public tout fonctionne bien. Mais côté privé rien n'est visible
dans la prévisualisation de l'article le modèle est bien interprété mais
comme le javascript n'est pas présent, rien ne s'affiche et une erreur
javascript est générée...

Merci des pistes
  

alors c'est juste une piste mais dans les plugins tu as un pipeline : header_privé ,
éventuellement rajoute ce pipeline dans mes_fonctions.php ou mieux encore si tu en fait un plugin :slight_smile:

---
Antivirus avast! : message Sortant sain.
Base de donnees virale (VPS) : 000763-3, 02/08/2007
Analyse le : 03/08/2007 12:01:33
avast! - copyright (c) 1988-2007 ALWIL Software.

ml-yoann@advisio-com.fr <ml-yoann@advisio-com.fr> wrote:

alors c'est juste une piste mais dans les plugins tu as un pipeline :
header_privé ,
éventuellement rajoute ce pipeline dans mes_fonctions.php ou mieux
encore si tu en fait un plugin :slight_smile:

Oui j'avais bien pensé à la question pipeline. mais :
1. comment on invoque un pipeline depuis "mes_fonctions.php" ? pas
trouvé de doc là-dessus...

2. j'ai commencé à regarder côté plugin, mais alors la question serait
"comment trasformer un modèle en plugin ?" des exemples ...?

3. C'est vraiment un point où la doc de spip reste très générale et
manque de précision... Je sais elle est le résultat du travail de tous
mais c'est dommage (pour spip) que les mécanismes de base soient si peu
documentés...

Merci.

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.

Salut,

Dominique a écrit :

Oui j'avais bien pensé à la question pipeline. mais :
1. comment on invoque un pipeline depuis "mes_fonctions.php" ? pas
trouvé de doc là-dessus...

La partie privée n'exploite pas mes_fonctions.php
Le fichier mes_fonctions.php ne sert qu'à la compilation des squelettes et les pages de la partie privée ne sont pas (encore?) des squelettes.
C'est TRES TRES TRES difficile d'utiliser les pipelines sans passer par les plugins.

2. j'ai commencé à regarder côté plugin, mais alors la question serait
"comment trasformer un modèle en plugin ?"

On ne transforme pas un modèle en plugins. On l'embarque dans un plugin : dans le répertoire du plugin, tu as un fichier plugin.xml. Tu crées à cet emplacement un répertoire modeles dans lequel tu colles ton modèle. Quand tu active le plugin, le modèle est exploitable. C'est tout. :slight_smile:

--
James

James <klike@free.fr> wrote:

La partie privée n'exploite pas mes_fonctions.php
Le fichier mes_fonctions.php ne sert qu'à la compilation des squelettes
et les pages de la partie privée ne sont pas (encore?) des squelettes.
C'est TRES TRES TRES difficile d'utiliser les pipelines sans passer par
les plugins.

C'est bien ce que je me disais...

> 2. j'ai commencé à regarder côté plugin, mais alors la question serait
> "comment trasformer un modèle en plugin ?"

On ne transforme pas un modèle en plugins. On l'embarque dans un plugin
: dans le répertoire du plugin, tu as un fichier plugin.xml. Tu crées à
cet emplacement un répertoire modeles dans lequel tu colles ton modèle.
Quand tu active le plugin, le modèle est exploitable. C'est tout. :slight_smile:

Donc pour résumer :
je créé un répertoire "/plugins/diaporama"

dans diaporama
1. plugin.xml
2. un dossier modeles avec dedans le modele "diaporama.html"
3. un fichier diaporama.php
4. le javascript diaporama.js

avec notamment requis dans plugin
<plugin>
<nom>Diaporama</nom>
<version>0.1</version>
<etat>dev</etat>
<description>.....</description>
<prefix>diaporama</prefix>
<pipeline>
        <nom>header_prive</nom>
        <action>inclure_java</action>
        <inclure>diaporama.php</inclure>
</pipeline>
</plugin>

Dans diaporama.php il y a une fonction "diaporama_inclure_meta"
function diaporama_inclure_java($flux) {
        $flux .= '<script type="text/javascript"
src="'._DIR_PLUGIN_DIAPORAMA.'diaporama.js"
name="java-diaporama"></script>'. "\n";
        return $flux;
}
La façon d'invoquer le chemin pour le javascript est inspirée du plugin
barre_Typo_Enrichie-v2 et elle fonctionne. (donc le principe est
_DIR_PLUGIN_NOMPREFIXPLUGIN )

remarque : c'est OK pour le principe du plugin à partir d'un modèle
(seul oubli de ma part au début dans diaporama.php la fonction doit
s'appeler "diaporama_inclure_meta" sinon elle n'est pas reconnue...
-j'ai relu la doc et tout est rentré dans l'ordre - )

le modèle est reconnu dans la partie publique et dans la partie privée,
et l'appel au javascript est bien placé dans le head privé, tout est ok
mais....

Je voudrais inclure aussi tant qu'à faire automatiquement le lien vers
le javascript dans le head public mais si dans le fichier plugin.xml
j'indique aussi
<pipeline>
        <nom>insert_head</nom>
        <action>inclure_java</action>
        <inclure>diaporama.php</inclure>
</pipeline>
Pas de résulat, rien n'est inclus, pas le lien vers le fichier
javascript dans le head ???
Même en vidant le cache, recalculant les pages, désactivant et
reactivant le pugin.
Bon on le mettra "à la main", mais je ne vois pas l'erreur...

Merci pour l'aide et en espérant que ce résumé pourra servir

--
http://wojylac.free.fr
Un proverbe chinois dit que lorsqu'on a rien à dire
on cite généralement un proverbe chinois.