Fork me on GitHub

Création de blocs


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]."\" />&nbsp;"._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 .= "&nbsp;<br>"._MB_MYMODULE_CHARS."&nbsp;<input type='text' name='options[]' value='".$options[1]."' />&nbsp;"._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 !

Licence, certains droits réservés
Partager Twitter Partagez cette article sur GG+
  Voir cet article en format PDF Imprimer cet article Envoyer cet article

Naviguer à travers les articles
Article précédent Création de templates Ajouter des commentaires à  votre module Article suivant
Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

40 Personne(s) en ligne (1 Personne(s) connectée(s) sur Documentations) | Utilisateur(s): 0 | Invité(s): 40 | Plus ...