Cartes heuristiques dans Sarkaspip
par

Cet article fait suite aux article Adapter son SarkaSPIP et Gestion des sites dans SarkaSPIP.
Le plugin eva_freemind
La première chose est d’installer le plugin eva_freemind (http://www.eva-web.edres74.ac-greno...). Je vous conseille d’ailleurs de vous simplifier la vie en l’installant depuis l’installateur de l’administration de SPIP (voir à ce sujet Adapter son SarkaSPIP).
Le plugin eva_freemind vous met à disposition 2 fonctionnalités principales :
- la possibilité de lire les fichiers Freemind (.mm) directement dans le navigateur en saisissant la balise
<freemind|doc=23>où "23" représente le numéro du document .mm ;- la possibilité d’afficher le plan du site lui-même sous la forme d’une carte heuristique.
Si la première fonctionnalité est directement accessible sans procéder à aucune adaptation du squelette (voir un exemple d’application ici : Le laboratoire de microbiologie), la seconde fonctionnalité nécessitera d’ajouter quelques lignes aux fichiers de SarkaSPIP.
Changer l’icone par défaut du plugin
L’icône par défaut présent dans le plugin n’étant pas forcément à votre goût, vous pouvez être amené à en changer.
Vous pouvez, par exemple, choisir cette icône :
Vous la placerez directement dans le répertoire /squelettes/vignettes.
Le plan du site sous forme de carte heuristique
Pour afficher un lien vers la carte heuristique (lorsque le plugin eva_freemind est présent et activié) au sein de la page de "plan du site", nous allons reprendre 2 fichiers de SarkaSPIP, les recopier dans /squelettes/noisettes/plan et les modifier comme suit :
Le fichier inc_plan.html :
[(#REM)
<!-- Corps de la page plan du site pour ajaxisation
Recoit en argument :
- tri: le tri courant (date, rubrique, auteur ou carte heuristique)
-->
]
[(#ENV{tri}|=={par_date}|?{' '})<INCLURE{fond=noisettes/plan/inc_plan_date}>]
[(#ENV{tri}|=={par_rubrique}|?{' '})<INCLURE{fond=noisettes/plan/inc_plan_rubrique}>]
[(#ENV{tri}|=={par_auteur}|?{' '})<INCLURE{fond=noisettes/plan/inc_plan_auteur}>]
[(#PLUGIN{EVA_FREEMIND}|oui)[(#ENV{tri}|=={par_carte}|?{' '})<INCLURE{fond=noisettes/plan/inc_plan_carte}>]]Le fichier inc_plan_pagination.html :
[(#REM)
<!-- Bande de pagination du plan du site
Recoit en argument :
- tri: le tri courant (date, rubrique ou auteur)
-->
]
<div class="pagination">
[(#ENV{tri}|!={par_date}|?{<a class="ajax" href="[(#URL_PAGE{plan,tri=par_date})]"><:sarkaspip:tri_par_date:></a>,<span class="on"><:sarkaspip:tri_par_date:></span>})][(#EVAL{_SARKASPIP_CONFIG_SYMBOLE_PAGINATION})]
[(#ENV{tri}|!={par_rubrique}|?{<a class="ajax" href="[(#URL_PAGE{plan,tri=par_rubrique})]"><:sarkaspip:tri_par_rubrique:></a>,<span class="on"><:sarkaspip:tri_par_rubrique:></span>})][(#EVAL{_SARKASPIP_CONFIG_SYMBOLE_PAGINATION})]
[(#ENV{tri}|!={par_auteur}|?{<a class="ajax" href="[(#URL_PAGE{plan,tri=par_auteur})]"><:sarkaspip:tri_par_auteur:></a>,<span class="on"><:sarkaspip:tri_par_auteur:></span>})]
[(#PLUGIN{EVA_FREEMIND}|oui)[(#EVAL{_SARKASPIP_CONFIG_SYMBOLE_PAGINATION})][(#ENV{tri}|!={par_carte}|?{<a class="ajax" href="[(#URL_PAGE{plan,tri=par_carte})]"><:sarkaspip:tri_par_carte:></a>,<span class="on"><:sarkaspip:tri_par_carte:></span>})]]
</div>Il faut ensuite créer un fichier inc_plan_carte.html que l’on va placer dans le même répertoire :
[(#REM)<!-- Plan du site par carte heuristique -->]
<B_auteurs>
<INCLURE{fond=noisettes/plan/inc_plan_pagination}{tri=par_carte}>
<script type="text/javascript" src="#EVAL{_DIR_PLUGIN_EVA_FREEMIND}scripts/flashobject.js"></script>
<div id="flashcontent">Flash ou Javascript ne sont pas activés. Activez-les et relancez la page !</div>
<script type="text/javascript">
// <![CDATA[
var fo = new FlashObject("#EVAL{_DIR_PLUGIN_EVA_FREEMIND}scripts/visorFreemind.swf", "visorFreeMind",
"[(#ENV**{largeur}|?{#ENV**{largeur},"90%"})]",
"[(#ENV**{hauteur}|?{#ENV**{hauteur},"800"})]",
6, "#9999ff");
fo.addParam("quality", "high");
fo.addParam("bgcolor", "#ffffff");
fo.addVariable("openUrl", "_blank");
fo.addVariable("initLoadFile", "#URL_SITE_SPIP/spip.php?page=plan_mm");
fo.addVariable("startCollapsedToLevel","5");
fo.write("flashcontent");
// ]]>
</script>
<INCLURE{fond=noisettes/plan/inc_plan_pagination}{tri=par_carte}>
</B_auteurs>Nous allons adapter la page de génération du plan du plugin pour l’intégrer à SarkaSPIP. Pour cela recopions ce code dans /squelettes/plan_mm.html :
[(#HTTP_HEADER{Content-type: application/download; Content-Length: 500; Content-Disposition: attachment; filename: plan_du_site.mm [; charset=(#CHARSET)]})]
<map version="0.8.1">
<node TEXT="[(#NOM_SITE_SPIP)]" STYLE="fork">
<edge STYLE="bezier" WIDTH="2"/>
<font BOLD="true" NAME="SansSerif" SIZE="21"/>
<icon BUILTIN="gohome"/>
<BOUCLE_secteur(RUBRIQUES){racine}{id_rubrique!==#RACINE_SPECIALISEE}{par num titre}{par titre}>
[<node[ LINK="(#URL_RUBRIQUE)"] COLOR="#003366" TEXT="(#TITRE|textebrut|attribut_html)" STYLE="bubble" FOLDED="true" POSITION="right">]
[<richcontent TYPE="NOTE"><html><head/><body><p align="left" style="width:200px">(#DESCRIPTIF|textebrut|attribut_html)</p></body></html></richcontent>]
<edge COLOR="#0066ff"/>
<icon BUILTIN="desktop_new"/>
<BOUCLE_a(ARTICLES){id_rubrique}{par date}{inverse}{0,25}>
[<node[ LINK="(#URL_ARTICLE)"] COLOR="#339966" TEXT="(#TITRE|textebrut|attribut_html|couper{50})">]
[<richcontent TYPE="NOTE"><html><head/><body><p align="right" width="200">(#INTRODUCTION|textebrut|attribut_html|couper{150})</p></body></html></richcontent>]
<edge COLOR="#339966"/>
<icon BUILTIN="pencil"/>
<font BOLD="false" NAME="SansSerif" SIZE="12"/>
<BOUCLE_a_doc(DOCUMENTS){id_article}{mode=document}{par num titre, date}{extension!=jpg}{extension!=gif}{extension!=png}>
[<node LINK="#URL_SITE_SPIP/#URL_DOCUMENT" COLOR="#666666" TEXT="[(#TITRE|textebrut|attribut_html|sinon{<:info_document:>}) - ](#TYPE_DOCUMENT)[ - (#TAILLE|taille_en_octets)]">]
<edge COLOR="#666666"/>
</node>
</BOUCLE_a_doc>
</node>
</BOUCLE_a>
<BOUCLE_sr(RUBRIQUES){id_parent}>
[<node FOLDED="true" LINK="[(#URL_RUBRIQUE)]" TEXT="(#TITRE|textebrut|attribut_html|couper{50})">]
[<richcontent TYPE="NOTE"><html><head/><body><p align="left" style="width:200px">(#DESCRIPTIF|textebrut|attribut_html)</p></body></html></richcontent>]
<edge COLOR="#0066ff"/>
<icon BUILTIN="desktop_new"/>
<BOUCLE_sr_a(ARTICLES){id_rubrique}{par date}{inverse}{0,25}>
[<node LINK="[(#URL_ARTICLE)]" COLOR="#339966" TEXT="(#TITRE|textebrut|attribut_html|couper{50})">]
[<richcontent TYPE="NOTE"><html><head/><body><p align="right" width="200">(#INTRODUCTION|textebrut|attribut_html|couper{150})</p></body></html></richcontent>]
<edge COLOR="#339966"/>
<icon BUILTIN="pencil"/>
<font BOLD="false" NAME="SansSerif" SIZE="12"/>
<BOUCLE_sr_a_doc(DOCUMENTS){id_article}{mode=document}{par num titre, date}{extension!=jpg}{extension!=gif}{extension!=png}>
[<node LINK="[(#URL_DOCUMENT)]" COLOR="#666666" TEXT="[(#TITRE|textebrut|attribut_html|sinon{<:info_document:>}) - ](#TYPE_DOCUMENT)[ - (#TAILLE|taille_en_octets)]">]
<edge COLOR="#666666"/>
</node>
</BOUCLE_sr_a_doc>
</node>
</BOUCLE_sr_a>
<BOUCLE_sr_doc(DOCUMENTS){id_rubrique}{mode=document}{par num titre, date}{extension!=jpg}{extension!=gif}{extension!=png}>
[<node LINK="[(#URL_DOCUMENT)]" COLOR="#666666" TEXT="[(#TITRE|sinon{<:info_document:>}) - ](#TYPE_DOCUMENT)[ - (#TAILLE|taille_en_octets)]">
<edge COLOR="#666666"/>
</node>]
</BOUCLE_sr_doc>
<BOUCLE_sssr(BOUCLE_sr)> </BOUCLE_sssr>
</node>
</BOUCLE_sr>
<BOUCLE_secteur_doc(DOCUMENTS){id_rubrique}{mode=document}{par num titre, date}>
[<node LINK="[(#URL_DOCUMENT)]" COLOR="#666666" TEXT="[(#TITRE|sinon{<:info_document:>}) - ](#TYPE_DOCUMENT)[ - (#TAILLE|taille_en_octets)]">
<edge COLOR="#666666"/>
</node>]
</BOUCLE_secteur_doc>
</node>
</BOUCLE_secteur>
</node>
</map>Enfin, il ne nous reste plus qu’à ajouter une ligne de traduction pour le fichier /squelettes/lang/local_fr.php :
'tri_par_carte' => 'La carte du site',Vous pouvez maintenant utiliser la carte interactive généré automatiquement : http://www.biotechno.fr/spip.php?pa...


Commentaires