Résumé des opérations
* Créer un fichier pour gérer l'affichage (et éventuellement
l'édition des options) du (ou des) block(s) : mymodule/block/mymodule_block1.php
* Créer un fichier de définition des variables de langage des blocs
: mymodule/language/english/block.php
* Créer le template du block : mymodule/templates/blocks/
mymodule _block1.html
* Insérer les paramêtres du block dans le fichier xoops_version.php
* Mettre à jour le module pour la prise en compte des modifications
Fichier principal : mymodule_block1.php
Ce fichier contient :
* Une fonction pour la gestion de l'affichage du block : b_
mymodule _show p.ex.
* Eventuellement une fonction de gestion des options du block : b_
mymodule _edit p.ex.
Exemple ci-dessous avec choix du nomtre d'items affichés dans le
block.
Ces options seront accessibles dans la fonction d'édition du bloc
du menu admin system
// fonction pour l'affichage
function b_ mymodule _show ($options) {
global $xoopsDB;
$block = array();
$myts =& MyTextSanitizer::getInstance();
// requête sql
$sql = "SELECT id, title, post_time, from ".$xoopsDB->prefix("mymodule")."
WHERE condition=0 ORDER BY post_time DESC LIMIT 0, $options[0]";
$result=$xoopsDB->queryF($sql);
// construction du tableau pour le passage des données
au template
while($myrow=$xoopsDB->fetchArray($result)){
$message = array();
$message['id'] = $myrow[id'];
$title = $myts->makeTboxData4Show($myrow["title"]);
$message['title'] = $title;
$message['date'] = formatTimestamp($myrow['post_time'],"s");
$block[mymodule][] = $message;
}
return $block;
}
// fonction édition option
function b_ mymodule _edit($options) {
$form = ""._MB_MYMODULE_DISP." ";
$form .= "<input type=\"text\" name=\"options[]\"
value=\"".$options[0]."\" /> "._MB_MYMODULE_NBITEM."";
return $form;
}
Xoops_version :
Insérer les paramêtres du bloc :
// Blocks
$modversion['blocks'][1]['file'] = "mymodule_block1.php";
$modversion['blocks'][1]['name'] = _MI_MYMODULE_BNAME1;
$modversion['blocks'][1]['description'] = "Shows recently added ... ";
$modversion['blocks'][1]['show_func'] = "b_ mymodule _show";
// fonction affichage du bloc
$modversion['blocks'][1]['edit_func'] = "b_ mymodule _edit";
// fonction édition options du bloc
$modversion['blocks'][1]['options'] = "5";
// options (séparation par | si plusieurs)
$modversion['blocks'][1]['template'] = mymodule _block1.html';
Template du bloc
<ul>
<{foreach item=message from=$block.mymodule}>
<li>
<{$message.date}><br>
<a href ="<{$xoops_url}>/modules/mymodule/index.php?id=<{$message.id}>”><{$message.title}></a>
</li>
<{/foreach}>
</ul>
Remarque
Il est souvent utile de prévoir une option permettant de gérer
la longueur de texte affichée dans le bloc, afin de permettre à
l'utilisateur de la modifier selon que le bloc sera mis au centre ou sur
un coté.
// dans la fonction d'affichage
….
if ( !XOOPS_USE_MULTIBYTES ) {
if (strlen($myrow['texte']) >= $options[1]) {
$title = $myts->makeTboxData4Show(substr($myrow['texte'],0,($options[1]
-1)))."...";
}
}
…..
// dans la fonction édition option
$form = "" ….
$form .= " <br>"._MB_MYMODULE_CHARS." <input
type='text' name='options[]' value='".$options[1]."' /> "._MB_
MYMODULE _LENGTH."";
Fichiers langage
Ne pas oublier d'insérer les variables de langage
* Des blocks (_MB_ MYMODULE_DISP, …) dans mymodule/language/english/block.php
* De xoops_version ( _MI_MYMODULE_BNAME1,…) dans mymodule/language/english
/modinfo.php
Et toujours penser à faire la mise à jour du module !
|