Forum CMS Made Simple FR

Version complète : Pagination dans module perso
Vous consultez actuellement la version basse qualité d’un document. Voir la version complète avec le bon formatage.
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.
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 ?
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 Wink J'ai l'impression de sortir du module.
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 ?
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');

?>
Aucun output avec defaultadmin ? Ca devrait à ce que je peux voir.
On gère ça comment ?

J'ai déjà plus de cheveux et maintenant bientôt plus de café a force de chercher Wink