Comment intégrer pxxo dans dokuwiki

Download plugin-pxxo.tar.gz

Il est possible d'insérer relativement simplement des widgets pxxo dans les pages d'un site dokuwiki. Il faut pour cela installer le plugin pxxo puis utiliser la syntaxe suivante dans votre page wiki là où vous désirez insérer le widget :

<pxxo widget="Pxxo_Widget_HelloWorld">
  <params>
    <montexte>Bla bla bla</montexte>
    <theme>blue</theme>
  </params>
</pxxo>

La liste des paramètres doit être exprimée dans un format XML compris par le package PEAR::XML_Serializer. Voila par exemple comment exprimer un tableau multi-dimensionnel que voici :

$params['width']  = '250px';
$params['height'] = '260px';
$params['controls'] = array('GSmallZoomControl', 'GMapTypeControl');

Voici ce qu'il faut écrire pour avoir l'équivalent en XML :

  <params>
    <width>250px</width><height>260px</height>
    <controls>GSmallZoomControl</controls>
    <controls>GMapTypeControl</controls>
  </params>

Voici un exemple un peu plus plus complexe, en php :

$params['items']['folder1']['parent'] = null;
$params['items']['folder1']['name']   = 'Dossier1';
$params['items']['folder1']['order']  = 0;
$params['items']['folder1']['type']   = 'folder';
 
$params['items']['folder2']['parent'] = 'folder1';
$params['items']['folder2']['name']   = 'Dossier2';
$params['items']['folder2']['order']  = 1;
$params['items']['folder2']['type']   = 'folder';
 
$params['items']['folder3']['parent'] = 'folder2';
$params['items']['folder3']['name']   = 'Dossier3';
$params['items']['folder3']['order']  = 0;
$params['items']['folder3']['type']   = 'folder';

Voici ce qu'il faut écrire pour avoir l'équivalent en XML :

<params>
    <items>
        <folder1>
            <parent />
            <name>Dossier1</name>
            <order>0</order>
            <type>folder</type>
        </folder1>
        <folder2>
            <parent>folder1</parent>
            <name>Dossier2</name>
            <order>1</order>
            <type>folder</type>
        </folder2>
        <folder3>
            <parent>folder2</parent>
            <name>Dossier3</name>
            <order>0</order>
            <type>folder</type>
        </folder3>
    </items>
</params>

Examples

Nom du widget Rendu Wiki code
HelloWorld
error
Pxxo_Widget_HelloWorld - parameters description cannot be parsed.
Parsing error message is: XML_Parser: > required at XML input line 2:23.
<params>
    <montexteBla bla bla</montexte>
    <theme>blue</theme>
  </params>
<pxxo widget="Pxxo_Widget_HelloWorld">
  <params>
    <montexte>Bla bla bla</montexte>
    <theme>blue</theme>
  </params>
</pxxo>
HelloWorld (avec une erreur de syntaxe)
error
Pxxo_Widget_HelloWorld - parameters description cannot be parsed.
Parsing error message is: XML_Parser: > required at XML input line 2:23.
<params>
    <montexteBla bla bla</montexte>
    <theme>blue</theme>
  </params>
<pxxo widget="Pxxo_Widget_HelloWorld">
  <params>
    <montexteBla bla bla</montexte>
    <theme>blue</theme>
  </params>
</pxxo>
GoogleMaps
<pxxo widget="Pxxo_Widget_GoogleMaps">
  <params>
    <key>ABQIAAAAsHVA1uQhfTfkYV-IfWkNLhSNt7z7u_GeIa9L7vF_w14j5JokQhSqookYtStELYvgzJ9XDbU1sKpgXw</key>
    <width>250px</width><height>260px</height>
    <controls>GSmallZoomControl</controls>
    <controls>GMapTypeControl</controls>
  </params>
</pxxo>
TreeView
<pxxo widget="Pxxo_Widget_TreeView">
<params>
    <items>
        <folder1>
            <parent />
            <name>Dossier1</name>
            <order>0</order>
            <type>folder</type>
        </folder1>
        <folder2>
            <parent>folder1</parent>
            <name>Dossier2</name>
            <order>1</order>
            <type>folder</type>
        </folder2>
        <item1>
            <parent>folder1</parent>
            <name>This is an item</name>
            <order>2</order>
            <type>item</type>
        </item1>
        <folder3>
            <parent>folder2</parent>
            <name>Dossier3</name>
            <order>0</order>
            <type>folder</type>
        </folder3>
    </items>
</params>
</pxxo>