[SPIP Zone] ajout d'une icône dans le porte-plume

Bonjour

J’essaye de rajouter une icône dans le porte-plume pour le plugin « Onglets dans le texte »

J’ai donc mis l’icône onglets.png dans un dossier /icones_barre

J’ai ensuite ajouter dans paquet.xml

J’ai enfin ajouté ceci dans onglets_texte_pipelines.php

function onglets_texte_porte_plume_barre_pre_charger($barres){
$barre_edition = &$barres[‹ edition ›];

$module_barre = « barre_outils »;
if (intval($GLOBALS[‹ spip_version_branche ›])>2)
$module_barre = « barreoutils »;

$barre_edition->ajouterApres(‹ barre_cadre ›, array(
« id » => ‹ onglets_texte ›,
« name » => ‹ Insérer un système d’onglets ›,
« className » => « outil_onglets »,
« replaceWith » => « \n<onglet|debut|titre=Titre du premier onglet>\ncontenu du premier onglet\n\n<onglet|titre=Titre du deuxième onglet>\ncontenu du deuxième onglet\n\n<onglet|titre=Titre du troisième onglet>\ncontenu du troisième onglet\n\n<onglet|fin>\n »,
« display » => true,
));

return $barres;
}

function onglets_texte_porte_plume_lien_classe_vers_icone($flux){
return array_merge($flux, array(
‹ outil_onglets › => array(‹ onglets.png ›,‹ 0 ›),
));
}

Une idée de ce qui bloque ?

Bon un petit up au cas où ...
J'ai fait pareil sur le plugin escal et ça fonctionne mais pas avec "onglets dans le texte"
Je ne vois pas ce qui manque.

JC

Le 13/10/2019 à 19:36, Jean-Christophe Villeneuve a écrit :

Bonjour

J'essaye de rajouter une icône dans le porte-plume pour le plugin "Onglets dans le texte"

J'ai donc mis l'icône *onglets.png* dans un dossier */icones_barre**
*
J'ai ensuite ajouter dans *paquet.xml

* <pipeline nom="porte_plume_barre_pre_charger" inclure="onglets_texte_pipelines.php" />
<pipeline nom="porte_plume_lien_classe_vers_icone" inclure="onglets_texte_pipelines.php" />

J'ai enfin ajouté ceci dans *onglets_texte_pipelines.php

*function onglets_texte_porte_plume_barre_pre_charger($barres){
$barre_edition = &$barres['edition'];

$module\_barre = &quot;barre\_outils&quot;;
if \(intval\($GLOBALS\[&#39;spip\_version\_branche&#39;\]\)&gt;2\)
$module\_barre = &quot;barreoutils&quot;;

$barre\_edition\-&gt;ajouterApres\(&#39;barre\_cadre&#39;, array\(
    &quot;id&quot;          =&gt; &#39;onglets\_texte&#39;,
    &quot;name&quot;        =&gt; &#39;Insérer un système d\\&#39;onglets&#39;,
    &quot;className&quot;   =&gt; &quot;outil\_onglets&quot;,
    &quot;replaceWith&quot; =&gt; &quot;\\n&lt;onglet|debut|titre=Titre du premier onglet&gt;\\ncontenu du premier onglet\\n\\n&lt;onglet|titre=Titre du deuxième onglet&gt;\\ncontenu du deuxième onglet\\n\\n&lt;onglet|titre=Titre du troisième onglet&gt;\\ncontenu du troisième onglet\\n\\n&lt;onglet|fin&gt;\\n&quot;,
    &quot;display&quot;     =&gt; true,
\)\);

return $barres;

}

function onglets_texte_porte_plume_lien_classe_vers_icone($flux){
return array_merge($flux, array(
'outil_onglets' => array('onglets.png','0'),
));
}

Une idée de ce qui bloque ?

----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

Le mar. 15 oct. 2019 20:17, Jean-Christophe Villeneuve a écrit :

Bon un petit up au cas où …

Je préparais ma réponse ^^ (recherche du lien que je rajouterai plus loin) Mais si pas de réponse peut-être que personne n’a de réponse pour le moment :-/

J’ai fait pareil sur le plugin escal et ça fonctionne mais pas avec « onglets dans le texte »
Je ne vois pas ce qui manque.

Du coup, j’ai envie de dire que le problème est résolu… (il suffit de refaire la même chose, en repartant de zéro et en y allant pas à pas car on peut perdre du temps avec une petite coquille qu’on ne voit pas…)

JC

Le 13/10/2019 à 19:36, Jean-Christophe Villeneuve a écrit :

Bonjour

J’essaye de rajouter une icône dans le porte-plume pour le plugin « Onglets dans le texte »

J’ai donc mis l’icône onglets.png dans un dossier /icones_barre

J’ai ensuite ajouter dans paquet.xml

J’ai enfin ajouté ceci dans onglets_texte_pipelines.php

function onglets_texte_porte_plume_barre_pre_charger($barres){
$barre_edition = &$barres[‹ edition ›];

$module_barre = « barre_outils »;
if (intval($GLOBALS[‹ spip_version_branche ›])>2)
$module_barre = « barreoutils »;

$barre_edition->ajouterApres(‹ barre_cadre ›, array(
« id » => ‹ onglets_texte ›,
« name » => ‹ Insérer un système d'onglets ›,
« className » => « outil_onglets »,
« replaceWith » => « \n<onglet|debut|titre=Titre du premier onglet>\ncontenu du premier onglet\n\n<onglet|titre=Titre du deuxième onglet>\ncontenu du deuxième onglet\n\n<onglet|titre=Titre du troisième onglet>\ncontenu du troisième onglet\n\n<onglet|fin>\n »,
« display » => true,
));

return $barres;
}

function onglets_texte_porte_plume_lien_classe_vers_icone($flux){
return array_merge($flux, array(
‹ outil_onglets › => array(‹ onglets.png ›,‹ 0 ›),
));
}

Une idée de ce qui bloque ?

Alors « bloquer » dans quel sens ? Qu’est ce qui ne fonctionne pas comme tu souhaites ?

J’ai récemment fait un truc similaire en suivant https://contrib.spip.net/Porte-Plume-documentation-technique#Completer-une-barre-d-outil Du coup, je ne comprends pas d’où vient ton $barre_edition De même, pour les icônes (que je ne suis pas parvenu à afficher pour ma part), j’ai un doute sur ton tableau (en regardant d’autres plugins c’est bien un tableau de id_bouton => fichier_icone tout simplement)

Merci beaucoup pour ta réponse.

J’ai bien essayé de tout refaire plusieurs fois mais toujours pas d’icone.< (c’est ça le blocage !)
J’ai simplifié mon code ainsi

function onglets_texte_porte_plume_barre_pre_charger($barres){
$barre = &$barres[‹ edition ›];

$barre->ajouterApres(‹ barre_cadre ›, array(
« id » => ‹ onglets_texte ›,
« name » => ‹ Insérer un système d’onglets ›,
« className » => « outil_onglets »,
« replaceWith » => « bla bla bla »,
« display » => true,
));

return $barres;
}

function onglets_texte_porte_plume_lien_classe_vers_icone($flux){
return array_merge($flux, array(
‹ outil_onglets › => ‹ onglets.png ›,
));
}

mais toujours pas d’icone
je deviens chevre …

Ah je viens de tester d'ajouter après un bouton de premier niveau (grpCaracteres ou guillemets) et ça marche !!
C'est donc parce que j'essaye de le rajouter après un bouton de second niveau visiblement.

Le 15/10/2019 à 21:48, Jean-Christophe Villeneuve a écrit :

Merci beaucoup pour ta réponse.

J'ai bien essayé de tout refaire plusieurs fois mais toujours pas d'icone.< (c'est ça le blocage !)
J'ai simplifié mon code ainsi

function onglets_texte_porte_plume_barre_pre_charger($barres){
$barre = &$barres['edition'];

$barre\-&gt;ajouterApres\(&#39;barre\_cadre&#39;, array\(
    &quot;id&quot;          =&gt; &#39;onglets\_texte&#39;,
    &quot;name&quot;        =&gt; &#39;Insérer un système d\\&#39;onglets&#39;,
    &quot;className&quot;   =&gt; &quot;outil\_onglets&quot;,
    &quot;replaceWith&quot; =&gt; &quot;bla bla bla&quot;,
    &quot;display&quot;     =&gt; true,
\)\);

return $barres;

}

function onglets_texte_porte_plume_lien_classe_vers_icone($flux){
return array_merge($flux, array(
'outil_onglets' => 'onglets.png',
));
}

mais toujours pas d'icone
je deviens chevre ...

Le 15/10/2019 à 21:22, Gildas Cotomale a écrit :

Le mar. 15 oct. 2019 20:17, Jean-Christophe Villeneuve a écrit :

    Bon un petit up au cas où ...

Je préparais ma réponse ^^ (recherche du lien que je rajouterai plus loin) Mais si pas de réponse peut-être que personne n'a de réponse pour le moment :-/

    J'ai fait pareil sur le plugin escal et ça fonctionne mais pas
    avec "onglets dans le texte"
    Je ne vois pas ce qui manque.

Du coup, j'ai envie de dire que le problème est résolu... (il suffit de refaire la même chose, en repartant de zéro et en y allant pas à pas car on peut perdre du temps avec une petite coquille qu'on ne voit pas...)

    JC

    Le 13/10/2019 à 19:36, Jean-Christophe Villeneuve a écrit :

    Bonjour

    J'essaye de rajouter une icône dans le porte-plume pour le
    plugin "Onglets dans le texte"

    J'ai donc mis l'icône *onglets.png* dans un dossier */icones_barre**
    *
    J'ai ensuite ajouter dans *paquet.xml

    * <pipeline nom="porte_plume_barre_pre_charger"
    inclure="onglets_texte_pipelines.php" />
     <pipeline nom="porte_plume_lien_classe_vers_icone"
    inclure="onglets_texte_pipelines.php" />

    J'ai enfin ajouté ceci dans *onglets_texte_pipelines.php

    *function onglets_texte_porte_plume_barre_pre_charger($barres){
     $barre_edition = &$barres['edition'];

     $module_barre = "barre_outils";
     if (intval($GLOBALS['spip_version_branche'])>2)
     $module_barre = "barreoutils";

     $barre_edition->ajouterApres('barre_cadre', array(
     "id" => 'onglets_texte',
     "name" => 'Insérer un système d\'onglets',
     "className" => "outil_onglets",
     "replaceWith" => "\n<onglet|debut|titre=Titre du premier
    onglet>\ncontenu du premier onglet\n\n<onglet|titre=Titre du
    deuxième onglet>\ncontenu du deuxième
    onglet\n\n<onglet|titre=Titre du troisième onglet>\ncontenu du
    troisième onglet\n\n<onglet|fin>\n",
     "display" => true,
     ));

     return $barres;
    }

    function onglets_texte_porte_plume_lien_classe_vers_icone($flux){
     return array_merge($flux, array(
     'outil_onglets' => 'onglets.png',
     ));
    }

    Une idée de ce qui bloque ?

Alors "bloquer" dans quel sens ? Qu'est ce qui ne fonctionne pas comme tu souhaites ?

J'ai récemment fait un truc similaire en suivant Porte Plume : documentation technique - SPIP-Contrib Du coup, je ne comprends pas d'où vient ton $barre_edition De même, pour les icônes (que je ne suis pas parvenu à afficher pour ma part), j'ai un doute sur ton tableau (en regardant d'autres plugins c'est bien un tableau de id_bouton => fichier_icone tout simplement)

----
spip-zone@rezo.net - https://listes.rezo.net/mailman/listinfo/spip-zone

Le mar. 15 oct. 2019 22:18, Jean-Christophe Villeneuve a écrit :

Ah je viens de tester d’ajouter après un bouton de premier niveau (grpCaracteres ou guillemets) et ça marche !!
C’est donc parce que j’essaye de le rajouter après un bouton de second niveau visiblement.

Intéressant ; je vais voir si c’est pour ça que ça ne s’affiche pas chez moi (en fait je veux ajouter un bouton au premier niveau et des boutons dans le sous menu de celui ci…)

Le 15/10/2019 à 21:48, Jean-Christophe Villeneuve a écrit :

Merci beaucoup pour ta réponse.

J’ai bien essayé de tout refaire plusieurs fois mais toujours pas d’icone.< (c’est ça le blocage !)

Donc c’est le même problème que j’ai rencontré mais pas cherché plus loin.

J’ai simplifié mon code ainsi

function onglets_texte_porte_plume_barre_pre_charger($barres){
$barre = &$barres[‹ edition ›];

$barre->ajouterApres(‹ barre_cadre ›, array(
« id » => ‹ onglets_texte ›,
« name » => ‹ Insérer un système d'onglets ›,
« className » => « outil_onglets »,
« replaceWith » => « bla bla bla »,
« display » => true,
));

return $barres;
}

function onglets_texte_porte_plume_lien_classe_vers_icone($flux){
return array_merge($flux, array(
‹ outil_onglets › => ‹ onglets.png ›,
));
}

J’aime mieux ce code simplifié. :slight_smile:
À première vue tout semble correct (faut juste voir si ‹ barre_cadre › existe)

mais toujours pas d’icone
je deviens chevre …

Le 15/10/2019 à 21:22, Gildas Cotomale a écrit :

J’ai récemment fait un truc similaire en suivant https://contrib.spip.net/Porte-Plume-documentation-technique#Completer-une-barre-d-outil

Oui le bouton barre_cadre existe si on a activé « enluminures typographiques »
Pour afficher un sous-menu il faut utiliser dropMenu
Voici un exemple issu d’Escal

$barre_edition->ajouterApres(‹ grpCaracteres ›,
array(
« id » => ‹ ajouts_escal ›,
« name » => ‹ utiliser un outil d’Escal ›,
« className » => « outil_ajouts_escal »,
« display » => true,
« dropMenu » => array(
// aide
array(
« id » => ‹ escal_aide ›,
« name » => ‹ apporter une aide ›,
« className » => « outil_escal_aide »,
« openWith » => « \n »,
« closeWith » => « \n »,
« display » => true,
« selectionType » => « line »,
),
etc …
),
));