afficher les sous-sous-catégories

More
7 years 4 weeks ago #16441 by dolly2
Bonjour,
J'ai une structure de ce type:
végétaux
 |_fruits
    |_ pommes
    |_ poires
        |_ conférence
 |_légumes
    |_ artichaut
    |_ poireaux
        |_ ...

je voudrais que l'affichage catégorie "végétaux" affiche le contenu de tous les végétaux...
si j'active "afficher les sous-catégories", les sou-catégories sons bien inclues mais pas les "sous-sous-catégories": j'ai les végétaux, les fruits, mais pas les pommes.

Y a t'il un moyen d'avoir les sous-catégories de manière récursive ?

merci merci !!

Please Log in or Create an account to join the conversation.

More
7 years 4 weeks ago #16442 by dolly2
testé avec 1.5.4 et 1.5.5, même problème...

Please Log in or Create an account to join the conversation.

More
7 years 4 weeks ago #16444 by micker
c'est normal
l'affichage ne fait pas le sous souscategorie pour des raisons de performance
désoler

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]

Please Log in or Create an account to join the conversation.

More
7 years 4 weeks ago #16451 by dolly2
aie je m´ en doutais, apres avoir parcouru les forum. J´ ai une piste, mais en trifatouillant le code... Je posterai mes resultats. Y a t il moyen de contacter le dev pour lui suggerer ma proposition? Je vais de ttes facons essayer! Merci pour ta réponse rapide.

Please Log in or Create an account to join the conversation.

More
7 years 4 weeks ago #16454 by micker
n'hesite pas si tu trouve des choses je lui ferai passer ou on le mettra dans le bug tracker
Merci pour ta future participation

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]

Please Log in or Create an account to join the conversation.

More
7 years 4 weeks ago #16465 by dolly2
Et voici...
Dans le fichier components/com_flexicontent/models/category.php

function _buildItemWhere( )
remplacer:
if(is_array($this->_childs))
  foreach($this->_childs as $ch)
    $_group_cats[] = $ch->id;
par
$query = $this->_buildChildsquery(true);
		$this->_recursiveChilds = $this->_getList($query);
			if(is_array($this->_recursiveChilds))
				foreach($this->_recursiveChilds as $ch)
					$_group_cats[] = $ch->id;

et remplacer la fonction function _buildChildsquery() par ceci:
/**
	 * Method to build the Categories query
	 *
	 * @access private
	 * @return string
	 */
	function _buildChildsquery(/*ajout*/$isRecursive=false)
	{
		$user 		= &JFactory::getUser();
		$gid		= (int) $user->get('aid');
		$ordering	= 'ordering ASC';

		// Get the category parameters
		$cparams 	= $this->_category->parameters;
		// show unauthorized items
		$show_noauth = $cparams->get('show_noauth', 0);
		$andaccess = '';
		
		// filter by permissions
		if (!$show_noauth) {
			if (FLEXI_ACCESS) {
				$readperms = FAccess::checkUserElementsAccess($user->gmid, 'read');
				if (isset($readperms['category'])) {
					$andaccess = ' AND ( c.access <= '.$gid.' OR c.id IN ('.implode(",", $readperms['category']).') )';
				} else {
					$andaccess = ' AND c.access <= '.$gid;
				}
			} else {
				$andaccess = ' AND c.access <= '.$gid;
			}
		}
		//ajout:
		$categories = array($this->_id);
		if ($isRecursive){
			
			$thislevel = array($this->_id);
			do{
			$query = 'SELECT id'
				. ' FROM #__categories AS c'
				. ' WHERE c.published = 1'
				. ' AND c.parent_id IN ('. implode(',', $thislevel) . ')'
				;
			$this->_db->setQuery($query);
		$thislevel = $this->_db->loadResultArray();
		$categories=array_merge($categories, $thislevel);
			} while (count($thislevel) != 0);
			
		}
		 
		//fin de l'ajout
		$query = 'SELECT c.*,'
				. ' CASE WHEN CHAR_LENGTH( c.alias ) THEN CONCAT_WS( \':\', c.id, c.alias ) ELSE c.id END AS slug'
				. ' FROM #__categories AS c'
				. ' WHERE c.published = 1'
				/* modifié*/. ' AND c.parent_id IN ('. implode(',', $categories) . ')'
				. $andaccess
				. ' ORDER BY '.$ordering
				;
		return $query;
	}

il doit y avoir plus élégant, mais ca n'ajoute qu'une seule requête par niveau de profondeur, donc en terme de perf ca reste raisonnable !

Please Log in or Create an account to join the conversation.

More
7 years 4 weeks ago #16472 by bsky92
Whaouh, merci :)

J'ai voulu du coup deplacer le message dans les Tips and Tricks, mais l'option n'existe pas a priori dans les outils de modération !!!

Please Log in or Create an account to join the conversation.

More
7 years 4 weeks ago #16474 by micker
c'est fait !
tu peus mettre ca dans le bug tracker
comme solution
http://code.google.com/p/flexicontent/issues/list
Merci

FLEXIcontent is Free but involves a very big effort on our part.
Like the our support? (for a bug-free FC, despite being huge extension) Like the features? Like the ongoing development and future commitment to FLEXIcontent?
-- Add your voice to the FLEXIcontent JED listing reviews. Thanks![/size]

Please Log in or Create an account to join the conversation.

Moderators: vistamediajoomlacornerggppdk
© 2018 Flexicontent. All Rights Reserved.