Fork me on GitHub


 Bas   Précédent   Suivant

« 1 (2) 3 4 5 ... 25 »


Re: TDMPicture
Régulier
Inscrit: 06/06/2004 21:24
De Paris
Messages: 245
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
Transférer la contribution vers d'autres applications Transférer


Re: TDMPicture
Régulier
Inscrit: 06/06/2004 21:24
De Paris
Messages: 245
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>&nbsp;(<{$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
Transférer la contribution vers d'autres applications Transférer


Re: TDMPicture
Régulier
Inscrit: 06/06/2004 21:24
De Paris
Messages: 245
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
Transférer la contribution vers d'autres applications Transférer


Re: TDMPicture
Régulier
Inscrit: 06/06/2004 21:24
De Paris
Messages: 245
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
Transférer la contribution vers d'autres applications Transférer


Re: TDMPicture
Régulier
Inscrit: 06/06/2004 21:24
De Paris
Messages: 245
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
Transférer la contribution vers d'autres applications Transférer


Re: TDMPicture
Régulier
Inscrit: 06/06/2004 21:24
De Paris
Messages: 245
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
Transférer la contribution vers d'autres applications Transférer


Re: TDMPicture
Régulier
Inscrit: 06/06/2004 21:24
De Paris
Messages: 245
Bonjour,

Je viens d'installer la derniere version de TDMP sur xoops 2.5.5 et j'otbiens cette erreur :


$erreur $file_handler->insert($obj); } } } if ($erreur) { redirect_header('submit.php'2_MD_TDMPICTURE_BASE); } //include_once('../include/forms.php'); echo $obj->getHtmlErrors().$errors; $form =& $obj->getForm(); $form->display(); break; case "list": default: redirect_header("index.php", 2, _MD_TDMPICTURE_NOPERM); exit();     } tdmpicture_header();     include_once "../../footer.php"; ?>


Posté le : 23/02/2013 12:45
Transférer la contribution vers d'autres applications Transférer


Re: TDMPicture
Régulier
Inscrit: 06/06/2004 21:24
De Paris
Messages: 245
Bonjour,

Je vais faire un peu de hors sujet par rapport au dernier post et parler plus organisation des albums photos... Je me permet de partager ma reflexion ici, car elle peut peut-être participer à l'amélioration du module

En fait j'ai plus de 10 000 photos, 9 catégories, et entre 5 et 10 sous-catégorie par catégorie et même quelques sous-sous-catégorie... ce qui fait beaucoup beaucoup de catégorie... Je réfléchis donc à comment présenter cela de manière optimale et compréhensible.

Dans la dernière version que j'ai testé (il y'a quelques semaine donc c'est pas la toute dernière), la barre de navigation pour les catégories ne me convient car d'une part je trouve le système un peu complexe à comprendre - avis personnel - mais d'autres part je pense avoir trop de catégories et sous catégorie pour fonctionner comme cela. De plus j'ai à souhait que les utilisateurs puissent directement visualiser le niveau 1 et 2 directement.

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 ?

Autre reflexion, est ce qu'un système de tags ne deviendrait pas plus intéressant ? Et du coup dans quelle mesure est il possible d'intégrer un système de tag a TDMPicture ? Y'a t il un module ou un plugin qui permet d'acceder à ce type de fonctionnalité pour TDMP ?

Voilà, merci d'avance pour vos avis, et désolé d'avoir été un peu long. J'espère que ma reflexion intéressera d'autres personnes aussi

Posté le : 18/02/2013 12:04
Transférer la contribution vers d'autres applications Transférer


Re: Modification block Last commented item de MyComments
Régulier
Inscrit: 06/06/2004 21:24
De Paris
Messages: 245
Pour ceux que ça intéresserait, j'ai finalement réussi en ajoutant ceci dans le fichier php du block :

$com['nbcomment']   = xoops_comment_count($mid$comments[$i]->getVar('com_itemid'));


et en utilisant ceci
<{$comment.nbcomment}>
pour l'appeler coté surcharge html...

Voilà

Posté le : 28/01/2013 17:47
Transférer la contribution vers d'autres applications Transférer


Modification block Last commented item de MyComments
Régulier
Inscrit: 06/06/2004 21:24
De Paris
Messages: 245
Bonjour tout le monde,

J'utilise le module MyComments et notamment son super block dernier sujet commenté... je souhaiterais juste récupérer une info supplémentaire à afficher dans le block...

Je voudrais récupérer le nombre de commentaires par item afin de visualiser la popularité d'un sujet...

Quelqu'un aurait une idée de comment faire ?

J'insere le code du block tel qu'il est si ça peut faciliter quelq'un à m'aider, merci d'avance

function b_mycomments2_show($options)
{
    global 
$xoopsUser;
    include_once 
XOOPS_ROOT_PATH.'/modules/mycomments/include/comment_constants.php';
    
$limit 10// If you  are not getting suficient results, please increase a little more this number
    
$block $comment_config $trackedItems = array();

    
$comment_handler =& xoops_getmodulehandler('comment','mycomments');
    
$moduleperm_handler =& xoops_gethandler('groupperm');
    
$member_handler =& xoops_gethandler('member');
    
$module_handler =& xoops_gethandler('module');

    
$criteria = new CriteriaCompo(new Criteria('com_status'MYCOM_ACTIVE));
    
$criteria->setLimit(intval($options[0] * $limit));
    
$criteria->setSort('com_created');
    
$criteria->setOrder('DESC');

    
$comments $comment_handler->getObjects($criteriatrue);
    
$modules $module_handler->getObjects(new Criteria('hascomments'1), true);

    
$count 0;
    foreach (
array_keys($comments) as $i) {
        if ( 
$count == $options[0])  continue;
        
$mid $comments[$i]->getVar('com_modid');

        if (
$xoopsUser) {
            if (!
$moduleperm_handler->checkRight('module_read'$mid$xoopsUser->getGroups())) {
                continue;
            }
        } else {
            if (!
$moduleperm_handler->checkRight('module_read'$midXOOPS_GROUP_ANONYMOUS)) {
                continue;
            }
        }

          
$com['module'] = '<a href="'.XOOPS_URL.'/modules/'.$modules[$mid]->getVar('dirname').'/">'.'<img src="'.XOOPS_URL '/modules/' $modules[$mid]->getVar('dirname''n') . '/images/ico.gif" />'.'</a>';
        if (!isset(
$comment_config[$mid])) {
            
$comment_config[$mid] = $modules[$mid]->getInfo('comments');
        }
        
$com['id'] = $i;
        
$com['title'] = '<a href="'.XOOPS_URL.'/modules/'.$modules[$mid]->getVar('dirname').'/'.$comment_config[$mid]['pageName'].'?'.$comment_config[$mid]['itemName'].'='.$comments[$i]->getVar('com_itemid').'&com_id='.$i.'&com_rootid='.$comments[$i]->getVar('com_rootid').'&'.htmlspecialchars($comments[$i]->getVar('com_exparams')).'#comment'.$i.'">'.$comments[$i]->getVar('com_title').'</a>';
        
$com['icon'] = htmlspecialchars$comments[$i]->getVar('com_icon'), ENT_QUOTES );
        
$com['icon'] = ($com['icon'] != '') ? $com['icon'] : 'icon1.gif';
        
$com['time'] = formatTimestamp($comments[$i]->getVar('com_created'),'s');
        if (
$comments[$i]->getVar('com_uid') > 0) {
            
$poster =& $member_handler->getUser($comments[$i]->getVar('com_uid'));
            if (
is_object($poster)) {
                
$com['poster'] = '<a href="'.XOOPS_URL.'/userinfo.php?uid='.$comments[$i]->getVar('com_uid').'">'.$poster->getVar('uname').'</a>';
            } else {
                
$com['poster'] = $GLOBALS['xoopsConfig']['anonymous'];
            }
        } else {
            
$com['poster'] = $GLOBALS['xoopsConfig']['anonymous'];
        }
        if (
count($trackedItems) > 0) {
            
$itemMatch false;
            foreach (
array_keys($trackedItems) as $j) {
                if (
$comments[$i]->getVar('com_modid') == $trackedItems[$j]['modid'] && $comments[$i]->getVar('com_itemid') == $trackedItems[$j]['itemid']) {
                    
$itemMatch true;
                }
            }
            if (!
$itemMatch) {
                
$block['comments'][] =& $com;
                
$trackedItems[] = array('modid' => $comments[$i]->getVar('com_modid'), 'itemid' => $comments[$i]->getVar('com_itemid') );
                
$count++;
            }
        } else {
            
$block['comments'][] =& $com;
            
$trackedItems[] = array('modid' => $comments[$i]->getVar('com_modid'), 'itemid' => $comments[$i]->getVar('com_itemid') );
            
$count++;
        }
        unset(
$com);
    }
    return 
$block;
}

Posté le : 26/01/2013 14:49
Transférer la contribution vers d'autres applications Transférer



 Haut
« 1 (2) 3 4 5 ... 25 »




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

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