Annonces
 
Question aléatoire
Classe Categories_management
 



Introduction


Cette classe permet de gérer très simplement un système de catégories infinies (c'est-à-dire qu'une catégorie peut contenir des catégories et ceci de façon infinie). Pour pouvoir l'utiliser il suffit simplement de respecter certaines règles détaillées ici qui portent notamment sur votre base de données et votre fichier cache.

Ce que fait cette classe


Voici plus précisément ce que propose cette classe :
  • Panneau d'administration des catégories (déplacement, modification, suppression, création) avec plusieurs de ces fonctions en AJAX.
  • Génération de formulaire HTML de type select qui permet de faire choisir une catégorie lors de l'ajout d'un élément à l'intérieur par exemple (elle peut tenir compte des autorisations).
  • Gérer la visibilité de chaque catégorie


Pourquoi utiliser cette classe ?


Si vous souhaitez utiliser un système de catégories, il est fortement conseillé d'utiliser cette classe. Inutile de réinventer la roue pour chaque module. Cette classe est fiable et optimisée, elle vous évitera de plus énormément de travail, un tel système de catégories ne se fait pas en quelques heures. Cependant elle gère très peu d'interfaces, ce sera à vous de les faire. Elle s'occupera de toutes les opérations sur les catégories. Il vous faudra en revanche respecter quelques règles notamment concernant les structures des tables dans la base de données.

Fonctionnement de la classe


Accès à la classe


Cette classe du framework PHPBoost se trouve dans le fichier cats_management.class.php du répertoire includes. Il faudra donc systématiquement utiliser ce code avant de l'utiliser : Code PHP :
include_once('../includes/kernel/framework/categories.class.php');


Personnalisation


Cette classe est générique dans le sens ou elle est adaptable pour tout genre de module. Il faudra donc certainement l'adapter à chaque module (seuls les modules utilisant le système de catégories de façon très basique pourront se contenter de ce qu'elle contient). L'avantage de sa conception est qu'elle est très facilement personnalisable. Pour cela il suffit simplement de créer soi-même une classe héritant de la classe Cats_management. Cela permet de redéfinir des méthodes existantes ou d'en définir de nouvelles.

Voici un cas qui montre bien l'intérêt de cet héritage. Considérons un module (une galerie photos par exemple) avec des catégories qui contiennent des photos. Il est intéressant de savoir combien de photos contiennent chaque catégorie. Le problème est que lorsque nous allons déplacer une catégorie, si nous la mettons dans une autre catégorie le nombre de photos de son ancienne et de sa nouvelle catégorie va changer. On va donc dans ce cas redéfinir la méthode Move_category_into_another_category() dans laquelle on appellera la méthode générique ainsi que d'autres opérations qui s'occuperont de modifier le nombre de photos. Pour appeler la méthode de la classé générique dans la classe qu'on est en train de créer il faudra utiliser le mot clé parent :
Code PHP :
//On charge la classé générique
include_once('../kernel/framework/categories.class.php');
 
//On étend cette classe afin de l'adapter à notre module
class Mes_categories extends Cats_management
{
	//Déclaration d'attributs/méthodes autres
 
	//Méthode de déplacement
	function Move_category_into_another_category($id, $new_id_cat, $position = 0)
	{
		//Déplacement grâce à la méthode générique
		parent::Move_category_into_another_category($id, $new_id_cat, $position);
		//Travail sur le nombre de catégories
	}
}


Méthodes disponibles


Voici les différentes méthodes à votre disposition dans cette classe.




Catégories contenues par cette catégorie :

Aucune sous catégorie existante

Articles contenus par cette catégorie :   RSS

 Classe Categories_management - conditions à respecter
 classe Categories_management - traitement des actions
 Méthode Categories_management :: Add_category
 Méthode Categories_management :: Build_categories_administration_interface
 Méthode Categories_management :: Build_children_id_list
 Méthode Categories_management :: Build_parent_id_list
 Méthode Categories_management :: Build_select_form
 Méthode Categories_management :: Categories_management
 Méthode Categories_management :: Change_category_visibility
 Méthode categories_management :: Check_displaying_configuration
 Méthode Categories_management :: Check_error
 Méthode Categories_management :: Delete_category
 Méthode Categories_management :: Move_category
 Méthode Categories_management :: Move_category_into_another_category
 Méthode Categories_management :: Set_displaying_configuration
Cette page a été vue 211 fois