|
Re: TDMPicture |
|
Régulier
Inscrit: 06/06/2004 21:24
De Paris
|
Citation :alain01 a écrit : Citation :moss a écrit : Je me pose donc plusieurs questions. Est-il possible de rapatrier coté front-office les catégories et sous catégories à plat de manière plus classique en lieu et place de cette barre ? Réponse habituelle : Surcharge des pages du module
Le soucis c'est qu'aujourd'hui tout le système de navigation est envoyé à travers une balise <{$tree_display}>, donc je sais pas comment faire...
Posté le : 23/02/2013 12:54
|
|
|
Re: TDMPicture |
|
Admin Frxoops
Inscrit: 16/05/2003 18:10
De Rhone-Alpes
|
Alors, il te faut trouver cette fonction, certainement déclarée dans le fichier portant le même nom mais avec l'extension php et ensuite, comprendre ce bout de code pour modifier le contenu de cette balise.
Cela revient à hacker le module.
SI tu ne trouves pas la fonction dans ce fichier, fait une recherche dans tout le module, sur les fichiers en php.
Posté le : 23/02/2013 13:32
|
|
|
Re: TDMPicture |
|
Régulier
Inscrit: 06/06/2004 21:24
De Paris
|
J'ai réussi à revenir au niveau de ce qu'on voit dans ce post de venom, https://www.frxoops.org/modules/newbb/ ... id=223000#forumpost223000 mais impossible d'afficher les sous categories à plat en dehors du menu déroulant, cela part dans une fonction makeselbox, et après ça dépasse mes compétences Si quelqu'un a une idée, merci d'avance
Posté le : 24/02/2013 11:34
|
|
|
Re: TDMPicture |
|
Semi pro
Inscrit: 10/11/2004 13:40
|
Bonsoir, @moss On peut encore le modifier pour l'adapter exactement comme tu le veux, mais je me suis inspirée de TDMDownloads dans modules/TDMPicture/index.php Après
$xoopsTpl->assign('display_tris', $mytree->makeSelTris($_SERVER['PHP_SELF'], "", $tris, $order));
//
Ajoute
//Pour les permissions
$categories = TDMPicture_MygetItemIds('tdmpicture_catview', 'TDMPicture');
//Tableau des catégories
$criteria = new CriteriaCompo();
$criteria->add(new Criteria('cat_display', 1));
$criteria->add(new Criteria('cat_id', '(' . implode(',', $categories) . ')','IN'));
$criteria->setSort('cat_weight ASC, cat_title');
$criteria->setOrder('ASC');
$picturescat_arr = $cat_handler->getall($criteria);
$mytree = new XoopsObjectTree($picturescat_arr, 'cat_id', 'cat_pid');
$xoopsTpl->assign('nb_catcol', 2);//2 est le nombre de colonnes pour afficher les catégories
$count = 1;
foreach (array_keys($picturescat_arr) as $i) {
if ($picturescat_arr[$i]->getVar('cat_pid') == 0){
$xoopsTpl->append('categories', array('image' => TDMPICTURE_CAT_URL . $picturescat_arr[$i]->getVar('cat_img'), 'id' => $picturescat_arr[$i]->getVar('cat_id'), 'title' => $picturescat_arr[$i]->getVar('cat_title'), 'count' => $count));
$count++;
}
}
dans modules/TDMPicture/viewcat.php Après
//$xoopsTpl->assign('nav_bar', $GLOBALS['navbar']);
Ajoute
//Pour les permissions
$categories = TDMPicture_MygetItemIds('tdmpicture_catview', 'TDMPicture');
//Tableau des catégories
$criteria = new CriteriaCompo();
$criteria->add(new Criteria('cat_display', 1));
$criteria->add(new Criteria('cat_pid', $ct));
$criteria->add(new Criteria('cat_id', '(' . implode(',', $categories) . ')','IN'));
$criteria->setSort('cat_weight ASC, cat_title');
$criteria->setOrder('ASC');
$picturescat_arr = $cat_handler->getall($criteria);
$mytree = new XoopsObjectTree($picturescat_arr, 'cat_id', 'cat_pid');
$xoopsTpl->assign('nb_catcol', 2);//2 est le nombre de colonnes pour afficher les catégories
$count = 1;
foreach (array_keys($picturescat_arr) as $i) {
$xoopsTpl->append('categories', array('image' => TDMPICTURE_CAT_URL . $picturescat_arr[$i]->getVar('cat_img'), 'id' => $picturescat_arr[$i]->getVar('cat_id'), 'title' => $picturescat_arr[$i]->getVar('cat_title'), 'count' => $count));
$count++;
}
dans modules/TDMPicture/include/functions.php A la fin du fichier et avant
?>
Ajoute la fonction
//Fonction pour affichage catégories suivant pemissions
function TDMPicture_MygetItemIds($permtype,$dirname)
{
global $xoopsUser;
static $permissions = array();
if(is_array($permissions) && array_key_exists($permtype, $permissions)) {
return $permissions[$permtype];
}
$module_handler =& xoops_gethandler('module');
$tdmModule =& $module_handler->getByDirname($dirname);
$groups = is_object($xoopsUser) ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS;
$gperm_handler =& xoops_gethandler('groupperm');
$categories = $gperm_handler->getItemIds($permtype, $groups, $tdmModule->getVar('mid'));
return $categories;
}
Et dans les templates modules/TDMPicture/templates/ tdmpicture_index.html tdmpicture_viewcat.html
<!-- Start Show categories -->
<{if count($categories) gt 0}>
<table border="0" cellpadding="0" align="center">
<tr>
<{foreach item=category from=$categories}>
<td>
<a title="<{$category.title}>" href="<{$xoops_url}>/modules/TDMPicture/viewcat.php?ct=<{$category.id}>"><{$category.title}></a>
</td>
<{if $category.count is div by $nb_catcol}>
</tr>
<tr>
<{/if}>
<{/foreach}>
</tr>
</table>
<{/if}>
<!-- End Show categories -->
Posté le : 25/02/2013 20:29
|
PS : Toujours faire une sauvegarde des fichiers avant de les modifier !------------------------------------------- http://www.aideordi.com
|
|
Re: TDMPicture |
|
Régulier
Inscrit: 06/06/2004 21:24
De Paris
|
Merci Nikita J'avais réussi à en arriver là, mais je souhaite en plus avoir les sous-catégories à plat, celle qui sont dans le menu déroulant... Et c'est là que ca se complique, car pour apparaitre dans ce menu déroulant, cela se passe dans une fonction... et j'arrive donc pas à l'afficher en dehors de ce menu déroulant
Posté le : 27/02/2013 22:48
|
|
|
Re: TDMPicture |
|
Semi pro
Inscrit: 26/03/2004 17:57
De Metz
|
Salut, regarde du coter de makeSelBoxOptions ou makeSelBoxOptions2
Posté le : 28/02/2013 10:13
|
|
|
Re: TDMPicture |
|
Semi pro
Inscrit: 10/11/2004 13:40
|
Citation :J'avais réussi à en arriver là Tu peux nous montrer où tu étais exactement arriver, on peut voir les codes ?
Posté le : 28/02/2013 10:21
|
PS : Toujours faire une sauvegarde des fichiers avant de les modifier !------------------------------------------- http://www.aideordi.com
|
|
Re: TDMPicture |
|
Régulier
Inscrit: 06/06/2004 21:24
De Paris
|
Voici le code utilisé coté html
<{$display_cat}>
et coté php
$criteria = new CriteriaCompo();
$criteria->add(new Criteria('cat_display', 1));
// $criteria->add(new Criteria('cat_index', 1));
$criteria->setSort('cat_weight');
$criteria->setOrder('ASC');
/* $criteria->add(new Criteria('cat_display', 1));*/
$cat_arr = $cat_handler->getall($criteria);
$mytree = new TDMObjectTree($cat_arr, 'cat_id', 'cat_pid');
// asigne les URL
// define("TDM_CAT_URL", TDMPICTURE_CAT_URL);
// define("TDM_CAT_PATH", TDMPICTURE_CAT_PATH);
// define("TDM_CAT_LINK", "viewcat.php");
// $cat_display = $xoopsModuleConfig['tdmpicture_cat_display'];
// $cat_cel = $xoopsModuleConfig['tdmpicture_cat_cel'];
$display_cat = $mytree->makeCatBox($file_handler, 'cat_title','-', $cat = false);
$xoopsTpl->assign('display_cat', $display_cat);
$numcat = $cat_handler->getCount($criteria);
$xoopsTpl->assign('numcat', $numcat);
Cela m'affiche bien les catégories mais les sous-catégories sont dans un menu déroulant, hors je les souhaites les une en dessous des autres à plat... et idéalement avec le nombre de photos dans chaque lol Merci en tout cas de te pencher sur ce sujet
Posté le : 28/02/2013 23:28
|
|
|
Re: TDMPicture |
|
Régulier
Inscrit: 06/06/2004 21:24
De Paris
|
Merci Venom, j'avais pas bien vu ton message, en effet cela se passe du coté de ces fonctions, mais je comprend pas bien ce qui se passe dedans, je suis pas du tout developpeur, j'essai juste de bidouiller en comprenant... lol Du coup, en allant du coté de la solution de nikita, j'ai observé TDM Downloads et j'avance un peu... Voici ce que j'ai mis coté php
$categories = TDMPicture_MygetItemIds('tdmpicture_cat', 'TDMPicture');
//tableau des téléchargements
$criteria = new CriteriaCompo();
$criteria->add(new Criteria('file_display', 0, '!='));
$criteria->add(new Criteria('cat_id', '(' . implode(',', $categories) . ')','IN'));
$file_arr = $file_handler->getAll($criteria);
$file_count = $file_handler->getCount($criteria);
$xoopsTpl->assign('lang_thereare',$file_count);
//tableau des catégories
$criteria = new CriteriaCompo();
$criteria->setOrder('ASC');
$criteria->setSort('cat_weight');
$criteria->add(new Criteria('cat_display', 1));
$cat_arr = $cat_handler->getAll($criteria);
$mytree = new TDMObjectTree($cat_arr, 'cat_id', 'cat_pid');
//affichage des catégories
$count = 1;
$keywords = '';
foreach (array_keys($cat_arr) as $i) {
if ($cat_arr[$i]->getVar('cat_pid') == 0){
$totalpictures = TDMPicture_NumbersOfEntries($mytree, $categories, $file_arr, $cat_arr[$i]->getVar('cat_id'));
$subcategories_arr = $mytree->getFirstChild($cat_arr[$i]->getVar('cat_id'));
$chcount = 0;
$subcategories = '';
//pour les mots clef
$keywords .= $cat_arr[$i]->getVar('cat_title') . ',';
foreach (array_keys($subcategories_arr) as $j) {
$subcategories .= '<li><a href="' . XOOPS_URL . '/modules/TDMPicture/viewcat.php?ct=' . $subcategories_arr[$j]->getVar('cat_id') ."&tris=".$tris."&limit=".$limit.'">' . $subcategories_arr[$j]->getVar('cat_title') . '</a></li>' ;
$keywords .= $cat_arr[$i]->getVar('cat_title') . ',';
$chcount++;
}
$xoopsTpl->append('categories', array('id' => $cat_arr[$i]->getVar('cat_id'), 'title' => $cat_arr[$i]->getVar('cat_title'), 'subcategories' => $subcategories, 'totalpictures' => $totalpictures, 'count' => $count));
$count++;
}
}
et coté html dans le template j'ai mis ça
<{$lang_thereare}>
<!-- Start category loop -->
<{foreach item=category from=$categories}>
<a href="<{$xoops_url}>/modules/TDMPicture/viewcat.php?ct=<{$category.id}>"><h3><{$category.title}></h3></a> (<{$category.totalpictures}>)
<{if $category.subcategories != ""}>
<ul><{$category.subcategories}></ul><{/if}>
<{/foreach}>
Ca marche pas mal, j'ai quelques problèmes quand même... Une de mes catégorie apparait deux fois, et le nombre d'item par catégorie <{$category.totalpictures}> et le nombre d'item total <{$lang_thereare}> ne fonctionne pas Accessoirement je comprend pas tout a ce que j'ai mis
Posté le : 01/03/2013 19:50
|
|
|
Re: TDMPicture |
|
Régulier
Inscrit: 06/06/2004 21:24
De Paris
|
Hello, J'ai réussi a mettre un peu d'ordre dans mon code, je rencontre un dernier problème... Je n'arrive pas a compter les éléments dans chaque sous-catégorie... J'ai beau comparé à TDM qui le fait je n'y arrive pas Voici mon code, si quelqu'un à une idée, un grand merci d'avance La ligne
//$criteria->add(new Criteria('cat_id', '(' . implode(',', $categories) . ')','IN'));
est commenté sinon ça fonctionne plus du tout Dans le index.php
$categories = TDMPicture_MygetItemIds('tdmpicture_view', 'TDMPicture');
$criteria = new CriteriaCompo();
$criteria->add(new Criteria('file_display', 0, '!='));
$numpict = $file_handler->getCount($criteria);
$xoopsTpl->assign('lang_thereare',$numpict);
$criteria = new CriteriaCompo();
$criteria->add(new Criteria('file_display', 0, '!='));
$criteria->add(new Criteria('file_cat', '(' . implode(',', $categories) . ')','IN'));
$file_arr = $file_handler->getAll($criteria);
//Tableau des catégories
$criteria = new CriteriaCompo();
$criteria->add(new Criteria('cat_display', 1));
//$criteria->add(new Criteria('cat_id', '(' . implode(',', $categories) . ')','IN'));
$criteria->setSort('cat_weight ASC, cat_title');
$criteria->setOrder('ASC');
$picturescat_arr = $cat_handler->getAll($criteria);
$mytree = new TDMObjectTree($picturescat_arr, 'cat_id', 'cat_pid');
//affichage des catégories
$count = 1;
$keywords = '';
foreach (array_keys($picturescat_arr) as $i) {
if ($picturescat_arr[$i]->getVar('cat_pid') == 0){
$totalpictures = TDMPicture_NumbersOfEntries($mytree, $categories, $file_arr, $picturescat_arr[$i]->getVar('cat_id'));
$subcategories_arr = $mytree->getFirstChild($picturescat_arr[$i]->getVar('cat_id'));
$chcount = 0;
$subcategories = '';
//pour les mots clef
$keywords .= $picturescat_arr[$i]->getVar('cat_title') . ',';
foreach (array_keys($subcategories_arr) as $j) {
$subcategories .= '<li><a href="' . XOOPS_URL . '/modules/TDMPicture/viewcat.php?ct=' . $subcategories_arr[$j]->getVar('cat_id') ."&tris=".$tris."&limit=".$limit.'">' . $subcategories_arr[$j]->getVar('cat_title') . '</a> ('.$totalpictures.') </li>' ;
$keywords .= $picturescat_arr[$i]->getVar('cat_title') . ',';
$chcount++;
}
$xoopsTpl->append('categories', array('id' => $picturescat_arr[$i]->getVar('cat_id'), 'title' => $picturescat_arr[$i]->getVar('cat_title'), 'subcategories' => $subcategories, 'totalpictures' => $totalpictures, 'count' => $count));
$count++;
}
}
dans modules/TDMPicture/include/functions.php
//Fonction pour affichage catégories suivant pemissions
function TDMPicture_MygetItemIds($permtype,$dirname)
{
global $xoopsUser;
static $permissions = array();
if(is_array($permissions) && array_key_exists($permtype, $permissions)) {
return $permissions[$permtype];
}
$module_handler =& xoops_gethandler('module');
$tdmModule =& $module_handler->getByDirname($dirname);
$groups = is_object($xoopsUser) ? $xoopsUser->getGroups() : XOOPS_GROUP_ANONYMOUS;
$gperm_handler =& xoops_gethandler('groupperm');
$categories = $gperm_handler->getItemIds($permtype, $groups, $tdmModule->getVar('mid'));
return $categories;
}
function TDMPicture_NumbersOfEntries($mytree, $categories, $entries,$cid)
{
$count = 0;
$child_arr = array();
if(in_array($cid, $categories)) {
$child = $mytree->getAllChild($cid);
foreach (array_keys($entries) as $i) {
if ($entries[$i]->getVar('file_cat') == $cid){
$count++;
}
foreach (array_keys($child) as $j) {
if ($entries[$i]->getVar('file_cat') == $j){
$count++;
}
}
}
}
return $count;
}
Et dans les templates modules/TDMPicture/templates/tdmpicture_index.html
<{$lang_thereare}>
<!-- Start category loop -->
<{foreach item=category from=$categories}>
<a href="<{$xoops_url}>/modules/TDMPicture/viewcat.php?ct=<{$category.id}>"><h3><{$category.title}></h3></a>
<{if $category.subcategories != ""}>
<ul><{$category.subcategories}></ul><{/if}>
<{/foreach}>
Posté le : 02/03/2013 16:13
|
|
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.
|