Fork me on GitHub






Je ne trouve plus...
Régulier
Inscrit: 04/02/2003 08:53
De Paris
Messages: 312
Bonjour,

Je suis à la recherche de trois choses que je ne trouve plus sur le site :

1 - Toute info pour passer un module de xoops V1 en V2 (je sais, ça date un peu, mais je viens seulement de faire la migration de mon site 1.3.10 en 2.0.13.1 !)

2 - L'astuce qui permet de donner des droits d'administration sur certains modules à un membre sans qu'il figure dans la liste du bloc " Infos du site". Je me souviens avoir lu ça quelque part sur Xoops France...

3 - Des infos pour modulariser un script non xoops (autre que les infos que j'ai déjà trouvé sur le site de thecat sur la création d'un module !).

Merci à vous

Vincent

Posté le : 08/10/2005 22:37

Open in new window
18 ans sous XOOPS !
Partager Twitter Partagez cette article sur GG+
Re: Je ne trouve plus...
Semi pro
Inscrit: 05/04/2003 19:03
Messages: 1645
Bonjour,

ça en fait des infos à transmettre, tout ça Pour toutes celles et ceux qui nous lisent, je vous conseille, lorsque vous trouvez une info qui vous intéresse vraiment de la conserver sur votre disque dur en faisant une sauvegarde de la page affichée.

Parenthèse mise à part, voilà, Bioskop, ce que j'ai pu retrouver sur on disque:

1- D'après Philou sur Xoops-Thèmes en 2003:
Citation :

Un début de réponse....

+ Un nouveau dossier a été ajoute dans l'arborescence de notre module : template
+ Les fonctions OpenTable() et CloseTable() n'existent plus.
+ Dans le fichier xoops_version.php, vous pouvez ajouter ces lignes à la fin si vous avez créé des templates :
// Templates
ici un modèle pour la page index.php du module.

$modversion['templates'][1]['file'] = 'myinfos_index.html';
$modversion['templates'][1]['description'] = 'Afficher le texte se trouvant
dans la base';

et si nous avions un autre fichier, exemple : ajouter_commentaire.php, on aurait pu ajouter un nouveau modèle :

$modversion['templates'][2]['file'] =
'myinfos_ajouter_commentaire.html';
$modversion['templates'][2]['description'] = '';

+ Integration des templates par le fichier index.php de votre module. (avant le fichier header principal (*)(celui qui se trouve à la racine de votre site)

$xoopsOption['template_used'] = array('myinfos_index.html');
$xoopsOption['template_main'] = 'myinfos_index.html';
if($xoopsConfig['startpage'] == "myinfos"){
$xoopsOption['show_rblock'] =1;
include(XOOPS_ROOT_PATH."/header.php"); /// (*)
make_cblock();
echo "<br />";
}else{
$xoopsOption['show_rblock'] =0;
include(XOOPS_ROOT_PATH."/header.php");
}

+ On déclare des variables qui seront utilisées par le template.
Constantes qui ont été définies auparavant dans le fichier main.php du dossier language/french/.
Ex : Les deux variables $title et $lastinfo pourront être affichées par la suite dans le template.

$xoopsTpl->assign('title', _MD_TITLE);
$xoopsTpl->assign('lastinfo', _MD_LAST_INFOS);
$result=$xoopsDB->query("SELECT * FROM
".$xoopsDB->prefix("myinfos")."") or die("Error");

+ Stockage des infos dans un tableau $info

$info = array();
$myts =& MyTextSanitizer::getInstance();
list($informations, $nohtml, $nosmiley, $noxcode) = $xoopsDB->fetchRow($result);
$html = !empty($nohtml) ? 0 :1;
$smiley = !empty($nosmiley) ? 0 :1;
$xcode = !empty($noxcode) ? 0 :1;

Ici on stocke notre texte dans le tableau $infos, on pourra par la suite y accéder de cette façon :

$info.texte
$info['texte'] = $myts->makeTareaData4Show($informations, $html, $smiley, $xcode);

Pour envoyer le tableau au template, n'oubliez pas cette ligne

$xoopsTpl->append('infos', $info);
include_once(XOOPS_ROOT_PATH."/footer.php");
?>

+ le template (HTML + appels de variables)

<table width="100%" cellpadding="4" cellspacing="0"
border="0">
<tr class="bg3">
<td colspan="2" align="center">
// affichage de la variable $title definie dans index.php
// syntaxe d'affichage : <{$variable}>
<span class="fg2"><b><{$title}></b></span></td>
</tr>
<tr>
<td class="bg3"><p>&nbsp;</p>
// on lit le tableau (ici une seule ligne mais ce serait identique)
<{foreach item=info from=$infos}>
<{$info.texte}>
<{/foreach}>
</td>
</tr>
<tr>
<td class="bg3" align=center>
// On peut afficher un autre texte en fin de template
<br><span class="fg2"><b><{$lastinfo}></b></span>
</td>
</tr>
</table>


RAPPEL : si vous modifiez un template il est imperatif de faire une MAJ du module considéré (le template est stocke dans la base)
admin/index.php (du module modifie)

OpenTable() et CloseTable() retirées.
fonctions de gestion du cache retirées . (xoopsfaq_write_contss() par exemple)

modification des requetes

$sql = "DELETE FROM ".$xoopsDB->prefix("xoopsfaq_categories")." WHERE
category_id=".$cat_id."";


devient

$sql = sprintf("DELETE FROM %s WHERE category_id = %u",
$xoopsDB->prefix("xoopsfaq_categories"), $cat_id);


+ gestion des messages utilisateurs

echo "<div align='center'>";
echo "<h4 style='color:#ff0000'>"._XD_RUSURECAT."</h4>";
echo "<table><tr><td>n";
echo myTextForm("index.php?op=delcat&cat_id=".$cat_id."&ok=1'" , _YES);
echo "</td><td>n";
echo myTextForm("index.php?op=listcat", _NO);
echo "</td></tr></table>n";
echo "</div>";

devient

xoops_confirm(array('op' => 'delcat', 'cat_id' => $cat_id,
'ok' => 1), 'index.php', _XD_RUSURECAT);


index.php (du module modifie)

Nous n'allons nous intéresser qu'au code qui interroge la base afin de récuperer les éléments affichées sur la page du module. Dans cette partie là, tout le code a été revu, les données sont stockées dans un tableau associatif $category, ainsi que l'envoi des informations vers le template intitulé : xoopsfaq_index.html
On assigne au template quelques variables

$xoopsTpl->assign('lang_faq', _XD_DOCS);
$xoopsTpl->assign('lang_categories', _XD_CATEGORIES);
On interroge la base pour récupérer les catégories de la FAQ
$result = $xoopsDB->query('SELECT category_id, category_title FROM
'.$xoopsDB->prefix('xoopsfaq_categories').' ORDER BY category_order
ASC');


On liste les données récupérées.

while (list($id, $name) = $xoopsDB->fetchRow($result)) {

On créé un tableau associatif pour stocker ces données.

$category = array();

les variables NAME et ID sont stockées dans le tableau

$category['name'] = $myts->makeTboxData4Show($name);
$category['id'] = $id;


On récupère les questions et réponses en fonction des catégories

$sql = 'SELECT contents_id, contents_title FROM
'.$xoopsDB->prefix('xoopsfaq_contents').' WHERE contents_visible=1 AND
category_id='.$id.' ORDER BY contents_order ASC';
$result2 = $xoopsDB->query($sql);

Pour chaque questions-réponses on stocke le titre et l'id de la réponse

while ($myrow = $xoopsDB->fetchArray($result2)) {
$category['questions'][] = array('id' => $myrow['contents_id'],
'title' => $myts->makeTboxData4Show($myrow['contents_title']));
}

On envoie au template le tableau d'une manière bien étrange

(append_by_ref)
$xoopsTpl->append_by_ref('categories', $category);


On détruit la variable

unset($category);

templates/xoopsfaq_index.html
Le template qui est appelé par le module XoopsFaq pour afficher les questions-réponses.
Tout comme le template du module Myinfos, voici du code html avec l'affichage de variables code]<h4 style="text-align:left;"><{$lang_faq}></h4>
<table width="100%" cellpadding="4" cellspacing="0" border="0">
<tr>
<td><b><{$lang_categories}></b></td>
</tr>
<tr>
<td>[/code]
Là, il est question de boucler afin d'afficher toutes les questions et réponses stockées dans la base. Noter bien la syntaxe foreach item=.. from=...)

<!-- start category loop -->
<{foreach item=category from=$categories}>

&nbsp;&nbsp;<img src="<{$xoops_url}>/modules/xoopsfaq/images/folder.gif"
width="14" height="14" border="0" alt=""
/>&nbsp;<a

Pour accéder aux données du tableau on écrit comme ça :

$category.id
href="index.php?cat_id=<{$category.id}>"><{$category.name}></a>
<ul style="list-style-image:url(images/question.gif);">

<!-- start question loop -->
<{foreach item=question from=$category.questions}>

<li><a
href="index.php?cat_id=<{$category.id}>#q<{$question.id}>">
<{$question.title}></a></li>
<{/foreach}>
<!-- end question loop -->
</ul>
<{/foreach}>
<!-- end category loop -->
</td>
</tr>
</table>
<h4 style="text-align:left;"><{$lang_faq}></h4>



Ce document s'appuie sur le module FAQ (pour sa simplicité) et s'inpire d'un article de xoops-quebec (adapté car c'était pour la V2RC1)


2- Pas d'info pour le moment. Désolé

3- D'après Inconnue Team:
Citation :
Alors je vais essayé de vous expliqué vite fait comment creer un module vite fait bien fait:

1:Trouver quelque chose pour faire un module (script php,bout de script, code etcetc)
2:Creer les bases du module avec un dossier que l'on nommera dans l'exemple "mon module"
3:Creer avec l'aide de phpedit le xoops_version.php c'est le fichier neccésaire pour faire fonctionné votre module, dedans il y a dans notre exemple:

$modversion['name'] = "mon module"; <----Nom du module
$modversion['version'] = 0.1;<----Version du module
$modversion['description'] = "Mon 1er module";<---description du module
$modversion['credits'] = "";<---Si il y a des crédits
$modversion['author'] = "Xoopsé by Inconnueteam
( http://www.inconnueteam.net )";<---Auteur du module
$modversion['help'] = "";<---Fichier d'aide s'il y a
$modversion['license'] = "";<---Nom de la license s'il y a
$modversion['official'] = 0;<----Official ou non!
$modversion['image'] = "mon module.gif";<----Image du module(pour l'admin)
$modversion['dirname'] = "mon module";<---Nom du module qui sera affiché dans le menu!

// Menu
$modversion['hasMain'] = 1;<----Si le module doit etre affiché dans le bloc menu!!

Voilà une fois ceci fait nous allons passé à l'étape suivante faire la base du module. Dedans le + généralement vous devez mettre ses bases pour que le module puisse fonctionné corectement:
Creer un fichier index.php et mettez ce code dedans:
Au debut du fichier:

include("../../mainfile.php");
include($xoopsConfig['root_path']."header.php");
$xoopsOption['show_rblock'] =0;<---Si mettre 1 les blocks de droites seront affichés
OpenTable();

En fin de fichiers:

CloseTable();
include ("../../footer.php");
?>

Et au milieu vous insérez votre code et c'est tout ,dans la prochaine partie nous verrons comment rajoutez des defines et autres base sql si vous avez une...


Inséré in fichier sql
Alors voilà vous avez un script à modularisé et flûte vous avez un sql à ajouté horreur et danmation (lol ça s'écrit comme ça???)
Alors voilà la méthode à suivre :::

Ouvrez votre xoops_version.php et insérez ceci ::
//SQL
$modversion['sqlfile']['mysql'] = "sql/sql.sql"; <==ceci est le chemin ou est stocké votre fichier sql
-Ouvrez votre fichier sql de votre script et comptez le nombre de tables que vous avez.
- Allez dans votre xoops_version et insérez vos tables de la manière suivante::

$modversion['tables'][0] = "table_1";
$modversion['tables'][1] = "table_2";
$modversion['tables'][2] = "table_3";

Toujours commencé par le chiffre zéro car c'est mieux
Si vous avez d'autres tables insérez d'autres lignes...
Voilà j'espère que cela vous aideras bonne adapte

Posté le : 09/10/2005 08:04
Partager Twitter Partagez cette article sur GG+
Re: Je ne trouve plus...
Régulier
Inscrit: 04/02/2003 08:53
De Paris
Messages: 312
Merci fooups, c'est un bon début !Je vais regarder ça de près.

Posté le : 09/10/2005 22:04

Open in new window
18 ans sous XOOPS !
Partager Twitter Partagez cette article sur GG+

 Haut   Précédent   Suivant



Vous pouvez voir les sujets.
Vous ne pouvez pas débuter de nouveaux sujets.
Vous ne pouvez pas répondre aux contributions.
Vous ne pouvez pas éditer vos contributions.
Vous ne pouvez pas effacez vos contributions.
Vous ne pouvez pas ajouter de nouveaux sondages.
Vous ne pouvez pas voter en sondage.
Vous ne pouvez pas attacher des fichiers à vos contributions.
Vous ne pouvez pas poster sans approbation.

Propulsé avec XOOPS | Graphisme adapté par Tatane, Grosdunord, Montuy337513

86 Personne(s) en ligne (73 Personne(s) connectée(s) sur Forum) | Utilisateur(s): 0 | Invité(s): 86 | Plus ...