Framework

Classe Categories_management

Table des matières

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.
Cette page a été vue 2401 fois