[Résolu] comptage par catégorie ?

LaddyLaddy Member
C'est avec un immense plaisir que je découvre pluxml blog, avec la nouvelle version d'interviewonline.

Je voudrai savoir si il y avait moyen que le nombre d'articles dans chaque catégories soit comptés et apparaissent entre parenthèses à coter du nom de la catégorie ?

Si oui comment ?

Merci d'avance.

Réponses

  • AliAli Member
    novembre 2006 modifié
    C'est possible biensûr... il faut faire du php dans ce cas là. Je suis pas pro du tout mais bon, histoire de mettre des bases il faudrait faire un truc comme ça en plus dans les fonctions ou table pour le menu des catégories.

    J'ai regardé il faut modifier des trucs dans " classe " et " fonctions ".

    Dans classe il faut ajouter un truc pour que le nom de la catégorie s'édite à chaques ajouts de billets dans cette catégorie...
    function editCategories($content){
    
    
    		$content = unslash($content);
    		$xml = "<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>\n<document>\n";
    
    		foreach($content as $cat_num => $cat_name){
    			if(is_numeric($cat_num) & $cat_name != ''){
    				$cat_ord = $content[$cat_num.'_ord'];
    				if(isset($content[$cat_num.'_url']) && $content[$cat_num.'_url'] != ''){
    					$cat_url = cat2url($content[$cat_num.'_url']);
    				}else{
    					$cat_url = cat2url($cat_name);
    				}
    				$xml .= "\t<categorie number=\"".$cat_num."\" ordre=\"".$cat_ord."\" url=\"".$cat_url."\">".amp($cat_name)."</categorie>\n";
    			}
    		}
    
    Ici il fautdrait mettre un truc

    if(new_article)
    edit(title="+1 nombre d'article)


    Un truc du genre... après je suis un gros newbie dans le php... je m'y interesse, mais pas au point de faire une fonction comme celle-ci.

    Mais je suis sûr que c'est comme celà.




    [edit]j'ai trouvé une petite base pour faire cette fonction avec l'id.

    Tout en bas de Class.admin.php il y a " id " et j'ai repris celle-ci en faisant à ma manière : ( biensûr c'est faux ! )

    original
    function nextId(){
    
    		if(!$this->aFiles){
    			return '0001';
    		}
    		rsort($this->aFiles);
    		return str_pad(fileInfo($this->aFiles['0'],'fileId')+1,4, "0", STR_PAD_LEFT);
    	}
    
    }
    
    Le mien ( mon idée )
    function nbrcat(){
    
    		if(!$this->aArticleCreated){
    			return '+1';
    		}
    		rsort($this->aArticleCreated);
    		return str_pad(fileInfo($this->aArticleCreated['0'],'nbrcat')+1,4, "0", STR_PAD_LEFT);
    	}
    
    }
    
    Bienspur je sais que tout ce que je viens de dire, ça sert à rien, puisque tout le monde auraient pensé à celà... mais je l'ai quand même dit, et je suis content :)

    eShopPartner marche pas ;)
  • Il est possible que cette solution marche mais ce n'est vraiment pas top, imagine que l'on supprime un article.

    Personnellement si je devais ajouter une fonctionnalité de ce type (et je pense que ça viendra) je verrai un comptage à chaque execution en même temps que la fonction getUsedCategories(), je rajouterai le résultat du comptage dans le tableau des catégories et ensuite une petite modif ds la fonction qui affiche la liste des catégories pour afficher le nombre d'articles.
  • concetement ça donne quoi parce que moi le php connait rien.

    Merci Ali pour ton aide
    le lien eShopPartner de nouveau fonctionnel.
  • En php ça demande un peu de boulot quand même, j'ai énoncé le principe à suivre apres peut-etre que quelqu'un voudra écrire le code qui va avec.
    Si j'ai un moment je pourrais le faire mais je ne garantis rien
  • Est-ce qu'un résultat comme celui te conviendrai : http://skyline-arts.com/journal/ ?
  • Skyline a écrit:
    Est-ce qu'un résultat comme celui te conviendrai : http://skyline-arts.com/journal/ ?
    tout à fait c'est ce que je recherche Skyline/
  • Ok je vais publier les modifications sur le wiki de la documentation.
    Je posterai ici pour te prévenir que c'est fait.
  • merci Skyline
  • de rien
  • LaddyLaddy Member
    décembre 2006 modifié
    Voila c'est en place sur :
    http://www.artgraph-evo2.info/interviewonline

    juste une erreur à corriger dans ton code sur le wiki : Manque un \ avant le n.



    case 'catlist':
    echo '<ul>';
    if ($option != ''){
    echo '<li><a href="index.php">'.$option.'</a></li>';
    }
    foreach($pluxml->uCats as $cat_num => $cat_info) {
    echo '<li><a href="?'.$cat_num.'/'.$cat_info.'">'.$cat_info.' ('.$cat_info.')</a></li>';
    }
    echo "</ul>\n";
    break;
  • C'est corrigé, merci
Connectez-vous ou Inscrivez-vous pour répondre.