Pagination dans module perso - 
Xtra -  26/09/2015
Citation :#~~~~~ DEBUT BLOC A NE PAS SUPPRIMER ~~~~~
#~ Version du CMS: 1.12
#~ Url du site : www.ancestramil.fr
#~ Hébergeur / Soft : 
#~ Informations Système : Environement de dev.
#~      ----------------------------------------------
#~      Cms Version: 1.12.1
#~      Installed Modules:
#~          CMSMailer: 5.2.2
#~          FileManager: 1.4.5
#~          MenuManager: 1.8.7
#~          MicroTiny: 1.2.9
#~          ModuleManager: 1.5.8
#~          News: 2.15.2
#~          Search: 1.7.13
#~          ThemeManager: 1.1.8
#~          Archiver: 0.2.6
#~          Captcha: 0.5.2
#~          CGExtensions: 1.49.7
#~          FrontEndUsers: 1.29
#~          CustomContent: 1.10
#~          rrAncestra: 0.1
#~          SelfRegistration: 1.9.2
#~          VisitorStats: 0.3.3
#~          MysqlDump: 1.3.1
#~          JM_Forum: 1.0.9.b
#~          FormBuilder: 0.8.1.1
#~          Gallery: 2.0.2
#~          TinyMCE: 2.9.12
#~          FormBrowser: 0.4.2
#~          CMSDumper: 1.3
#~          Revisions: 1.0-Beta2
#~          CGSimpleSmarty: 1.9.1
#~          CmsAncestramil: 0.1
#~          CmsModuleCleaner: 1.3.1
#~      Config Information:
#~          php_memory_limit: 
#~          process_whole_template: 
#~          max_upload_size: 100000000
#~          url_rewriting: none
#~          page_extension: 
#~          query_var: page
#~          image_manipulation_prog: GD
#~          auto_alias_content: true
#~          locale: 
#~          default_encoding: utf-8
#~          admin_encoding: utf-8
#~          set_names: true
#~      Php Information:
#~          phpversion: 5.5.28
#~      ----------------------------------------------
#~~~~~ FIN BLOC A NE PAS SUPPRIMER ~~~~~
Bonjour,
Mon code pour passer à la page suivante/précédente me renvoi à une page vide avec le bouton Retour au Menu. Je n'arrive pas a comprendre mon erreur.
Les Bases :
Mon module est uniquement pour une utilisation en BackOffice.
rrAncestra.module.php juste pour install/uninstall etc..
Dans mon action.defautandmin.php un lien vers function.admin_tab_liens.php ou ce trouve mon code.
Mon code de la partie Pagination :
Code :
/**************
 * Pagination *
 **************/
$p_lienParPage = 10; // Nombre de liens par page.
$sql = "SELECT COUNT(*) AS totalliens FROM ".cms_db_prefix()."module_ancestra_liens"; // Compte le nombre de lien(s) dans la table.
$p_nbresLiens = $db->GetRow($sql); // Exécute la requête et place la première ligne du résultat dans un tableau puis libère le jeu de résultat.
if($p_nbresLiens === false) // On test le code retour de la requête
{
    die('Erreur SQL !<br>'.$sql.'<br>'.mysql_error());
    exit;
}
$p_total_liens = $p_nbresLiens['totalliens']; // On récupère le nombre de liens.
$p_nbrePages = ceil($p_total_liens / $p_lienParPage); // On calcul le nombre de page à l'entier supérieur.
if(!isset($params['p_lienDepart']) || empty($params['p_lienDepart'])) // Si la variable n'est pas initialisé on l'initialise à 0
{
    $params['p_lienDepart'] = 0; // Le premier lien en cours sera le lien 0.
}
if($params['p_lienDepart'] = 0) // Si le premier lien est 0.
{
    $p_pageCours = 1; // La 1er page sera la page 1.
    $p_lienDepart = 0; // Le 1er lien sera le lien 0.
}
else // sinon
{
    if($params['p_lienDepart'] < $p_total_liens) // Sécurité : Le lien de départ ne doit pas être supérieur au nombre total de liens.
    {        
        $p_pageCours = floor($params['p_lienDepart'] / $p_lienParPage) + 1; // On calcul la page en cours.
        $p_lienDepart = $params['p_lienDepart']; // Affecte le lien de départ en cours avec la variable transmise de page en page.
    }
}
if($params['p_lienDepart'] >= $p_lienParPage) // Si le lien de départ est plus grand ou égal au nombre de lien par page.
{
    $this->smarty->assign('page_prec', $this->CreateLink($id, 'defautadmin', $returnid, $this->Lang('page_prec'), array('p_lienDepart'=>($params['p_lienDepart'] - $p_lienParPage)))); // Création du lien de la page précédente.
}
else // sinon...
{
    $this->smarty->assign('page_prec',''); // Pas de page précédente.
}
if ($params['p_lienDepart'] + $p_lienParPage < $p_total_liens) // Si le lien de départ + le nombre de lien par page est suppérieur au nombre de page.
{
    $this->smarty->assign('page_suiv', $this->CreateLink($id, 'defautadmin', $returnid, $this->Lang('page_suiv'), array('p_lienDepart'=>($params['p_lienDepart'] + $p_lienParPage)))); // Création du lien de la page suivante.
}
else // sinon...
{
    $this->smarty->assign('page_suiv',''); // Pas de page suivante.
}
$smarty->assign('page_no', $this->Lang('ol_pages').' '.$p_pageCours.' '.$this->Lang('ol_a').' '.$p_nbrePages);
Qui aurait la solution et surtout l'explication sur ma boulette ?
Pour le moment j'ai fait <Précédent Page x à x Suivante>. Prochaine étape les liens vers les pages en direct.
Pagination dans module perso - 
heriquet -  26/09/2015
Salut,
A tout hasard, pas d'erreurs dans les logs de ton site ?
C'est peut-être un souci de ce côté là.
Tu es certain que tu as un output via l'action de ton module ? Si tu fais un bête "echo 'test';" tu vois quelque chose ?
Pagination dans module perso - 
Xtra -  26/09/2015
merci de ton aide
Je ne trouve rien dans le log. Il n'existe qu'un seul log ? dans admin errror_log ?
Justement je ne suis pas sur du tout. Je n'arrive pas a avoir de retour même en mettant des echo un peu partout 

 J'ai l'impression de sortir du module.
Pagination dans module perso - 
heriquet -  26/09/2015
Le log PHP de ton hébergement si tu y as accès (sinon c'est compliqué).
Mets une trace dans l'action defaultadmin, mais aussi dans admin_tab_liens pour voir si tu passes dedans.
Petite question : pourquoi admin_tab_liens est une fonction et non une action (action.admin_tab_liens.php) ?
Et aussi pourquoi tes liens pointent-ils sur l'action defaultadmin et non admin_tab_liens ?
Pagination dans module perso - 
Xtra -  26/09/2015
Je suis sur mon environnement de développement soit mon NAS. Je viens de fouiller le NAS et dans /var/log/httpd/user-error_log je retrouve des erreurs mais rien qui pourrait m'aider dans le cas présent.
je passe dans admin_tab_liens car mon code que j'ai cité y est. Comment mettre une trace dans l'action defaultadmin ?
Je n'ai pas de function DoAction dans le module. Je ne sais pas si obligatoire mais sans j'arrive sur la page action.defaultadmin qui appel function.admin_tab_liens qui appel action.admin_edit_lien
Bonne question pour fonction/action j'ai peut-être raté un truc lors de mon apprentissage via wiki/forum google etc...
mon action.defaultadmin.php
Code :
<?php
/****************************************************************************
 * Si l'accès ne provient pas du noyau de CmsMadeSimple, je refuse l'accès. *
 ****************************************************************************/
if(!isset($gCms)) exit;
/*********************************
 * Vérification de la permission *
 *********************************/
if(! $this->VisibleToAdminUser())
{
    echo $this->ShowErrors($this->Lang('accessdenied'));
    return;
}
/************
 * débogage *
 ************/
echo "Debut defaultadmin <br />";
var_dump($params);
echo "<br />";
/***************************************
 * Vérification de l'onglet par défaut *
 ***************************************/
if(!empty($params['active_tab']))
{
    $tab = $params['active_tab'];
}
else
{
    $tab = '';
}
/***********
 * Communs *
 ***********/
//$admintheme = CmsAdminThemeBase::GetThemeObject(); // Charge le thème courant.
//$smarty->assign('editIcon', $admintheme->DisplayImage('icons/system/edit.gif', lang('edit'), '', '', 'systemicon')); // Charge l'image "edit" du thème courant.
//$smarty->assign('deleteIcon', $admintheme->DisplayImage('icons/system/delete.gif', lang('delete'), '', '', 'systemicon')); // Charge l'image "delete" du thème courant.
/*********************
 * Ajout des onglets *
 *********************/
$tab_header = $this->StartTabHeaders();
$tab_header.= $this->SetTabHeader('liens', $this->Lang('tab_liens'), 'liens' == $tab ? true : false);
$tab_header.= $this->SetTabHeader('patronymes', $this->Lang('tab_patronymes'), 'patronymes' == $tab ? true : false);
$tab_header.= $this->EndTabHeaders();
$this->smarty->assign('tabs_start',$tab_header.$this->StartTabContent());
$this->smarty->assign('tab_end',$this->EndTab());
$this->smarty->assign('tabs_end',$this->EndTabContent());
/*****************************
 * Contenu de l'onglet Liens *
 *****************************/
$this->smarty->assign('liensTpl',$this->StartTab('liens', $params));
include(dirname(__FILE__).'/function.admin_tab_liens.php');
/**********************************
 * Contenu de l'onglet Patronymes *
 **********************************/
$this->smarty->assign('patronymesTpl',$this->StartTab('patronymes', $params));
include(dirname(__FILE__).'/function.admin_tab_patronymes.php');
/*******************************************************
 * Passe une référence au module pour smarty.          *
 * Permet des appels au fichier de langue directement. *
 * ex : {$mod->Lang('xxxx')}                           *
 *******************************************************/
$smarty->assign_by_ref('mod',$this);
/************
 * débogage *
 ************/
echo "Fin defaultadmin <br />";
var_dump($params);
echo "<br />";
/****************************************************************
 * On génère le template nommé defaultadmin.tpl                 *
 * Doit se trouver dans le sous répertoire /templates du module *
 ****************************************************************/
echo $this->ProcessTemplate('defaultadmin.tpl');
?>
 
Pagination dans module perso - 
heriquet -  27/09/2015
Aucun output avec defaultadmin ? Ca devrait à ce que je peux voir.
Pagination dans module perso - 
Xtra -  27/09/2015
On gère ça comment ?
J'ai déjà plus de cheveux et maintenant bientôt plus de café a force de chercher