Mini-module galerie [Réglé]
Swan Membre non connecté
Booster Mortier
- Booster Mortier
- Voir le profil du membre Swan
- Inscrit le : 31/05/2013
- Site internet
Juste une petite question ou suggestion : serait il possible de rajouter le choix de la galerie à visualiser dans le mini module ?
Swan.
babsolune Membre non connecté
Administrateur
- Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
Intéressée ?
Swan Membre non connecté
Booster Mortier
- Booster Mortier
- Voir le profil du membre Swan
- Inscrit le : 31/05/2013
- Site internet
*Attention demande pour la 5.0 aussi
Baso oui
Donc que les catégories principales si je comprends bien ?
Swan.
babsolune Membre non connecté
Administrateur
- Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
Cèpe Arty
- Créer la constante dans la config pour enregistrer la catégorie à scanner (php)
- Créer le sélecteur sur la page de configuration (controller + tpl + lang)
- Limiter la récupération des images à la galerie sélectionnée dans le cache du mini menu (php)
- Bonus (php + tpl)
La constante
/phpboost/GalleryConfig.class.php :
// ~ Ligne 28 // après class GalleryConfig extends AbstractConfigData { // ajouter const CATEGORY_SELECTOR = 'category_selector'; // ~ Ligne 67 // après const NO_SCROLL = 'no_scroll'; //ajouter public function get_category_selector() { return $this->get_property(self::CATEGORY_SELECTOR); } public function set_category_selector($value) { $this->set_property(self::CATEGORY_SELECTOR, $value); } // Ligne 356 // après return array( // ajouter self::CATEGORY_SELECTOR => 1,
Le sélecteur
/admin_gallery_config.php :
// ~ Ligne 41 // après if ($valid) { // ajouter $config->set_category_selector(retrieve(POST, 'cat_selector', 0)); // ~ Ligne 125 // après foreach ($array_scroll as $key => $name) { $selected = ($config->get_scroll_type() == $key) ? ' selected="selected"' : ''; $scroll_types .= '<option value="' . $key . '"' . $selected . '>' . $name . '</option>'; } // ajouter // Categorie selectionnee pour le mini menu $cat_selector = ''; $search_category_children_options = new SearchCategoryChildrensOptions(); $search_category_children_options->add_authorizations_bits(Category::CONTRIBUTION_AUTHORIZATIONS); $search_category_children_options->add_authorizations_bits(Category::WRITE_AUTHORIZATIONS); $categories = GalleryService::get_categories_manager()->get_children(Category::ROOT_CATEGORY, $search_category_children_options); foreach ($categories as $id => $category) { $selected_cat = ($config->get_category_selector() == $category->get_id()) ? ' selected="selected"' : ''; $cat_selector .= '<option value="' . $category->get_id() . '"' . $selected_cat . '>' . $category->get_name() . '</option>'; } // ~ Ligne 155 // après 'C_DISPLAY_PICS_FULL_SCREEN' => $config->get_pics_enlargement_mode() == GalleryConfig::FULL_SCREEN, // ajouter 'CAT_SELECTOR' => $cat_selector, // ~ Ligne 188 // après 'L_UNLIMITED' => $LANG['illimited'], // ajouter 'L_SELECT_CAT' => $LANG['gallery_selector'],
/lang/french/gallery_french.php :
// ~ Ligne 36 // après $LANG['gallery_config'] = 'Configuration de la galerie'; // ajouter $LANG['gallery_selector'] = 'Sélectionner la catégorie à afficher dans le mini menu';
/templates/admin_gallery_config.tpl :
// ~ Ligne 73 // après <legend>{L_CONFIG_CONFIG}</legend> <div class="fieldset-inset"> // ajouter <div class="form-element"> <label for="cat_selector">* {L_SELECT_CAT}</label> <div class="form-field"><label> <select name="cat_selector" id="cat_selector"> {CAT_SELECTOR} </select> </label> </div> </div>
A ce stade on doit avoir un selecteur#liste-déroulante qui liste toutes les catégories du module dans la config du module
Récupération des images dans la le mini
/phpboost/GalleryMiniMenuCache.class.php :
// ~ Ligne 48 // après WHERE g.aprob = 1 // ajouter AND g.idcat = :selected_cat // ~ Ligne 51 // remplacer LIMIT 30"); // par LIMIT 30", array( 'selected_cat' => $config->get_category_selector() ));
Il ne reste plus qu'à tester si on a bien dans le mini, uniquement les images de la catégorie sélectionnée et que les images changent quand on change de catégorie.
A NOTER: comme la sélection de la catégorie se fait dans l'admin, la liste est forcément complète, attention donc à ne pas choisir une catégorie qui serait limitée en autorisation
Bonus : envoyer le lien vers la catégorie plutot que vers l'image
/phpboost/GalleryModuleMiniMenu.class.php :
// ~ Ligne 158 // remplacer 'U_PICS' => TPL_PATH_TO_ROOT . '/gallery/gallery' . url('.php?cat=' . $row['idcat'] . '&id=' . $row['id'], '-' . $row['idcat'] . '-' . $row['id'] . '.php') // par 'U_PICS' => TPL_PATH_TO_ROOT . '/gallery/gallery' . url('.php?cat=' . $row['idcat'] . '&id=' . $row['id'], '-' . $row['idcat'] . '.php')
/templates/gallery_mini.tpl :
// ~ Lignes 30 et 36 // supprimer #pics_max // après {pics_mini.U_PICS}
Édité par babsolune Le 16/05/2018 à 06h59
Swan Membre non connecté
Booster Mortier
- Booster Mortier
- Voir le profil du membre Swan
- Inscrit le : 31/05/2013
- Site internet
Merci Je teste cela dans la journée
Swan.
j1.seth Membre non connecté
- Administrateur
- Voir le profil du membre j1.seth
- Inscrit le : 01/09/2008
- Site internet
- Groupes :
- Chef de Projet
- Equipe Développement
Si tu veux afficher des images de la catégorie et ses sous-catégories tu peux utiliser ce qui suit :
Dans /gallery/phpboost/GalleryMiniMenuCache.class.php :
Code PHP :
// ~ Ligne 48 // après WHERE g.aprob = 1 // ajouter AND g.idcat IN :selected_cat // ~ Ligne 51 // remplacer LIMIT 30"); // par LIMIT 30", array( 'selected_cat' => GalleryService::get_authorized_categories($config->get_category_selector()) ));
Attention toutefois, il s'agit d'un fichier de cache, celui-ci n'est pas régénéré souvent et son contenu dépendra des autorisations de lecture de la première personne qui affichera le site après rafraîchissement du cache.
Si c'est un admin il y aura le contenu de toute la catégorie et toutes ses sous-catégories, sinon on ne verra que ce que l'utilisateur courant a le droit de voir jusqu'à la prochaine régénération du cache.
Donc je conseille de n'appliquer cela que sur des catégories et sous-catégories pour lesquelles tout le monde a accès.
Swan Membre non connecté
Booster Mortier
- Booster Mortier
- Voir le profil du membre Swan
- Inscrit le : 31/05/2013
- Site internet
Bonjour,
@ j1.seth: Merci pour cette solution temporaire Elle a au moins le mérite d'être là
@ Babso : * j'éditerais mon sujet au fur et à mesure du tuto si besoin.
Swan.
Édité par Swan Le 17/05/2018 à 09h15
babsolune Membre non connecté
Administrateur
- Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
Comment c'est plus précis quand un dev senior intervient !
Swan Membre non connecté
Booster Mortier
- Booster Mortier
- Voir le profil du membre Swan
- Inscrit le : 31/05/2013
- Site internet
Bon plus sérieusement, la modif une fois faites elle doit bien apparaitre dans la page de configuration du module galerie ? ou alors dans l'édition du mini-menu-gallery ?
Car dans les 2 après régénération des caches, je n'ai rien -_-'
-----------------------------------------------
Sinon en interne en modifiant la catégorie à la volé dans
/phpboost/GalleryConfig.class.php :
Code PHP :
// Ligne 356 // après return array( // ajouter self::CATEGORY_SELECTOR => 1,
en plaçant le numéro de catégorie*
Édité par Swan Le 17/05/2018 à 10h25
babsolune Membre non connecté
Administrateur
- Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
Swan Membre non connecté
Booster Mortier
- Booster Mortier
- Voir le profil du membre Swan
- Inscrit le : 31/05/2013
- Site internet
<span class="success"> Je valide <img src="/images/smileys/grin.png" alt=":D" class="smiley" /></span>
par contre dans le :
<div class="formatter-container formatter-blockquote"><span class="formatter-title">Citation :</span><div class="formatter-content">
<h3 class="formatter-title">Bonus : envoyer le lien vers la catégorie plutot que vers l'image</h3>
/phpboost/GalleryModuleMiniMenu.class.php :
// ~ Ligne 158 // remplacer 'U_PICS' => TPL_PATH_TO_ROOT . '/gallery/gallery' . url('.php?cat=' . $row['idcat'] . '&id=' . $row['id'], '-' . $row['idcat'] . '-' . $row['id'] . '.php') // par 'U_PICS' => TPL_PATH_TO_ROOT . '/gallery/gallery' . url('.php?cat=' . $row['idcat'] . '&id=' . $row['id'], '-' . $row['idcat'] . '.php')
</div></div>
on a nous en 5.0.17:
Je ne le place pas ici car le & amp; n'est pas pris en compte dans le code donc attention de bien regarder <img src="/images/smileys/happy.png" alt="^^" class="smiley" />
==> <a href="https://pastebin.com/GcTaxV53">https://pastebin.com/GcTaxV53</a>
babsolune Membre non connecté
Administrateur
- Administrateur
- Voir le profil du membre babsolune
- Inscrit le : 16/05/2008
- Site internet
- Groupes :
& amp; en 5.1 mais interprété en & par le [code ] dans le tuto
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie