Fork me on GitHub






Wordbook "evolution" - hack admin
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
Ce sujet fait suite à : https://www.frxoops.org/modules/newbb/ ... p?topic_id=22576&forum=12
Mais le thème abordé est tellement différent du corps du sujet précédent que je préfère en ouvrir un nouveau.

Sur mon site www.aquaportail.com, nous utilisons un système de Newsletter fait maison car il y a des envois très réguliers et les modules existants étaient soient trop lourds, soient... buggués.

Par rapport à WordBook v1.16, voici un fichier d'administration qui permet de connaître la liste des entrées dans le glossaire (sans gestion de catégorie) entre 2 dates données. L'intérêt est évident lorsqu'on veut, par exemple, communiquer les dernières entrées dans le glossaire selon une périodicité fixe, typiquement toutes les semaines.

Le fichier suivant demande une date de début (fixée par défaut à J-7) et une date de fin (aujourd'hui par défaut) et un nombre de colonnes (2 par défaut) pour l'affichage de la liste.

Ceci n'est pas une opération à effectuer sans de bonnes connaissances en PHP!!!

Comme il s'agit d'une nouvelle fonction d'administration, il faut modifier le fichier /modules/wordbook/include/functions.php et ajouter le code suivant à la ligne 226 :
echo "<li style="list-stylenonemargin0displayinline"><a href="latestdays.php" style="padding3px 0.5emmargin-left3pxborder1px solid #778; background: ".$tblColors[6]."; text-decoration: none; white-space: nowrap; ">Derniers jours</a></li>";

L'accès à un nouveau fichier nommé 'latestdays.php' est créé dans l'administration.

Ensuite, il faut sauvegarder le contenu suivant dans un fichier nommé "latestdays.php" dans le dossier (répertoire) /admin du module.
<?php
/**
 * Module: WordBook
 * Version: v1.16
 * Derniere MAJ : August 2007
 * Developer: Jef aka 'anemone-clown' www.aquaportail.com
 * Licence: GNU
 */

include("admin_header.php"); 

global 
$Menu$xoopsConfig$xoopsModuleConfig$xoopsDB;

xoops_cp_header();
adminMenu();

$aujourdhui date("d/m/Y");
list(
$jour$mois$annee) = explode('/'$aujourdhui);
$timestamp mktime(000$mois$jour 7$annee); // par defaut : 7 jours

$fin = (!isset($_POST['fin'])) ? $aujourdhui $_POST['fin'];
$debut = (!isset($_POST['debut'])) ? date('d/m/Y',$timestamp) : $_POST['debut'];
$nbcolumns = (!isset($_POST['nbcolumns']) && ($_POST['nbcolumns'] < 1)) ? $_POST['nbcolumns'];

list(
$jour$mois$annee) = explode('/'$debut);
$timestampdebut mktime(000$mois$jour$annee);
list(
$jour$mois$annee) = explode('/'$fin);
$timestampfin mktime(000$mois$jour$annee) + 86399;

echo 
"<br />date début = ".$timestampdebut." -> ".formatTimestamp($timestampdebut,"m")."
      <br />date fin = "
.$timestampfin." -> ".formatTimestamp($timestampfin,"m")."
      <br /><br />"
;

// formulaire
$my_form = new XoopsThemeForm('Selection de la période'"periode""latestdays.php");
$my_form -> addElement(new XoopsFormText("Date début :""debut"1510$debut), true);
$my_form -> addElement(new XoopsFormText("Date fin :""fin"1510$fin), true);
$my_form -> addElement(new XoopsFormText("Nombre de colonnes :""nbcolumns"55$nbcolumns), true);
$button_tray = new XoopsFormElementTray('');
$button_tray->addElement(new XoopsFormButton('''ok''OK''submit'));
$my_form -> addElement($button_tray);
$my_form -> display();
// Fin formulaire

$pubwords $xoopsDB -> query"SELECT * FROM " $xoopsDB -> prefix"wbentries" ) . " WHERE submit = '0' AND offline ='0' ");
$publishedwords $xoopsDB -> getRowsNum $pubwords );

$result $xoopsDB -> query"SELECT * FROM " $xoopsDB -> prefix"wbentries" ) . " WHERE (datesub >= " $timestampdebut") AND (datesub <= " $timestampfin ") AND (submit='0') AND (offline ='0') ORDER BY datesub DESC");
$nbweekwords $xoopsDB -> getRowsNum($result);

echo 
'<br /><table class="outer" summary="" cellspacing="1" width="100%"><tr>';

$entetecolonne '<td valign="top"><table><tr><th style="text-align: center; width: 100px;">Date</th><th>&nbsp;<b>Terme</b></th></tr>';

if (!
$result) {
    echo 
'<td><b class="head">Aucune entrée</b></td>';
}
else {    
    
$nb 0;
    
$nbt $nbweekwords;
  
$division ceil($nbweekwords $nbcolumns);
  
$sos $entetecolonne;
    while(
$myrow $xoopsDB -> fetchArray($result)) {
        
$nb++;
        
$nbt--;
        
$sos .= '<tr><td class="even" style="text-align: center;">'.formatTimestamp($myrow['datesub'],"s").'</td>';
        
$sos .= '<td>&nbsp;<b>'.$myrow['term'].'</b></td></tr>';
        if ((
$nb == $division) && ($nbt 0)) {
          
$nb 0;
          
$sos .= '</table></td>'.$entetecolonne;
        }
    }
    
$sos .= '</table></td>';
    echo 
$sos;
}
echo 
'</tr></table>';

echo 
'<br /><fieldset><legend><b>Infos</b></legend><br />
- <b>'
.$nbweekwords.'</b> définitions ont été saisies durant les 'ceil(($timestampfin-$timestampdebut)/86400) .' derniers jours.<br /><br />
- Le Glossaire totalise <b>'
.$publishedwords.'</b> entrées le 'date("d/m/Y") .'<br /><br /></fieldset>';

xoops_cp_footer();

?>


Le fichier créé affichera ce genre de résultats :

Open in new window

J'ai fait ça rapidemment aujourd'hui, j'espère que c'est compréhensible pour les profanes.

Posté le : 06/08/2007 16:43

Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Partager Twitter Partagez cette article sur GG+
Re: Wordbook "evolution" - hack admin
Semi pro
Inscrit: 22/02/2004 20:41
Messages: 997
Merci pour ce hack.

Vu que tu travailles sur wordbook, j'ai remarqué quelques bugs:

1°)Bugs

Ex:
Je rajoute une entrée avec le terme suivant "age de l'univers" ainsi que la définition et je valide.

Je m'apercois que j'ai fait une faute d'orthographe par exemple, j'edite l'entrée mais là, je m'apercois que le terme est coupé comme ceci "age de l" surement à cause de l'aspostrophe.

2°)Bugs

Ex:
Je possede plusieurs entrées comme par exemple (plan, planète,..)

Je vais sur une entrée où dans la definition, il y a planète mais à la place d'avoir le mot "planète" qui dirige vers sa propre entrée, j'obtiens Planètes qui dirige vers "plan". Exemple ici,
je suppose que c'est à cause des accents et dans ce cas là "è".

Pourtant des fois sur certaines entrées, il n'y a aucun problème comme ici

Posté le : 06/08/2007 17:50
Partager Twitter Partagez cette article sur GG+
Re: Wordbook "evolution" - hack admin
Régulier
Inscrit: 26/02/2007 16:00
Messages: 494
Citation :
kraven30 a écrit:
Pourtant des fois sur certaines entrées, il n'y a aucun problème comme ici

La définition est vierge... tu ne risques pas d'avoir de soucis!!!

Je prends note des bugs signalés, mais es-tu avec une installation Xoops 2.0.x ou Xoops 2.2 et, enfin, Php 4 ou 5 ?

Posté le : 06/08/2007 18:49

Portail en aquariophilie avec une passion pour le poisson clown en aquariums récifaux.
Partager Twitter Partagez cette article sur GG+
Re: Wordbook "evolution" - hack admin
Semi pro
Inscrit: 22/02/2004 20:41
Messages: 997
Version PHP=>4.4.7
Version Xoops=> 2.0.16

Citation :
La définition est vierge... tu ne risques pas d'avoir de soucis!!!


Comment ça vide ???

++

Posté le : 06/08/2007 19:38
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

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