Annuaire des placements : gérer des sous-rubriques
Comme je l’annonçais il y a quelques jours, l’Annuaire des placements a fait peau neuve et ses fonctionnalités se développent petit à petit. Dernière nouveauté en date, la gestion de sous-rubriques au sein des différentes catégories de l’annuaire. Ainsi, une personne recherchant une solution de défiscalisation peut préciser le type d’encadrement légal qu’elle souhaite utiliser (Loi de Robien, Borloo, loi Malraux…).

Pour mettre en place cette fonctionnalité, deux solutions techniques : gérer une liste de catégories complexe avec des notions d’héritage et de parentés, ou utiliser une base de mots-clés. C’est la seconde solution, plus simple, qui a été mise en place.
Ainsi, pour chaque catégorie de premier niveau de l’annuaire, une liste de mots clés fixes est définie. Ne sont alors affichés pour ces mots clés que les sites qui utilisent ces mots en renseignant leur fiche lors de l’inscription, et qui appartiennent bien entendu à la catégorie mère. La gestion de l’affichage des catégories, et surtout la sélection des sites en est fortement simplifiée.
Seul inconvénient, la mise en place de ce genre de système à l’aide de Dreamweaver. En effet, la sélection d’enregistrements à partir d’une information (le mot clé) fournie par un autre enregistrement est impossible dans Dreamweaver sans modifier le code source d’une page. C’est là l’une des faiblesses de l’outil de développement d’Adobe.
Il convient donc de modifier le code de sélection des jeux d’enregistrement afin de pouvoir mettre en place de type d’action :
- Tout d’abord, définir le jeu d’enregistrement qui trouvera les sites comme si le mot clé recherché était une variable d’URL, du genre $_GET[’motcle’]. La requête SQL construite par Dreamweaver, ou plutôt son inclusion PHP ressemble alors à :
- Dreamweaver construit sa requête SQL en fonction d’appel à des variables MySQL (les %s placés à l’intérieur de la requête) et de fonctions GetSQLValueString chargées de trouver les données. Dans le code précédent, c’est justement la fonction GetSQLValueString($sitekw_dern_5sites, “text”) qui localise la chaîne à utiliser pour identifier le mot-clé.
- Il convient donc d’indiquer à Dreamweaver que la variable à rechercher est issue d’une requête précédente, comme le titre de la catégorie active ($row_categorie_active[’titre’]). On obtient alors ce simple changement de code dans la construction de la requête PHP :
$sitecat_dern_5sites = “0″;
if (isset($row_categorie_active[’id_parents’])) {
$sitecat_dern_5sites = $row_categorie_active[’id_parents’];
}
$sitekw_dern_5sites = “rien”;
if (isset($row_categorie_active[’titre’])) {
$sitekw_dern_5sites = “%”.strtolower($row_categorie_active[’titre’]).”%”;
}
$sitecat_dern_5sites = “0″;
if (isset($_GET[’id_parents’])) {
$sitecat_dern_5sites = $_GET[’id_parents’];
}$sitekw_dern_5sites = “rien”;
if (isset($_GET[’motcle’])) {
$sitekw_dern_5sites = $_GET[’motcle’];
}mysql_select_db($database_annuplacement, $annuplacement);
$query_dern_5sites = sprintf(”SELECT annu_finance_sites.*, annu_finance_categories.titre AS cat_titre, annu_finance_categories.url AS cat_url FROM annu_finance_sites INNER JOIN annu_finance_categories ON annu_finance_categories.id = annu_finance_sites.categorie WHERE annu_finance_sites.categorie=%s AND LOWER(annu_finance_sites.mots_cles) LIKE %s ORDER BY annu_finance_sites.titre ASC”, GetSQLValueString($sitecat_dern_5sites, “int”),GetSQLValueString($sitekw_dern_5sites, “text”));
Cette méthode fonctionne, bien entendu, à condition que le jeu d’enregistrement categorie_active soit mis en place avant le jeu d’enregistrement actuel… Voici donc les premiers pas vers la modification manuelle des jeux d’enregistrements de Dreamweaver. Si vous avez des questions ou des commentaires, n’hésitez pas…



