Thèmeswitcher V4: ordre alphabétique?
Je vous repose la question ..
Créations de Modules
Swan Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre Swan
- Inscrit le : 31/05/2013
- Site internet
Il y a trois ans, je vous avais déjà posé la question, maintenant, je vous la repose pour la V4 pour avoir le tri alphabétique dans l'administration et dans le mini-module du switcherthemes :
Citation :
Bonjour à tous,
J'ai un petit grincement de dent sur une petite chose bien ridicule, mais qui me semblerait bien judicieux de regarder et voir si vous pouvez m'aider...
J'ai remarque que se soit dans l'administration des thèmes ou celui du ThemeSwitcher, les thèmes étaient placés par ordre d'arrivée dans le CMS et que l'on a pas la possibilité de les ordonner par ordre alphabétique...
Une idée?
Bonjour à tous,
J'ai un petit grincement de dent sur une petite chose bien ridicule, mais qui me semblerait bien judicieux de regarder et voir si vous pouvez m'aider...
J'ai remarque que se soit dans l'administration des thèmes ou celui du ThemeSwitcher, les thèmes étaient placés par ordre d'arrivée dans le CMS et que l'on a pas la possibilité de les ordonner par ordre alphabétique...
Une idée?
J'ai bien cherché par mes moyens et on a réussi à trouvé la partie concerné :
dans "kernelframeworkphpboostthemeThememanager.class.php"
Code PHP :
<?php /*################################################## /** * ThemeManager.class.php * ------------------- * begin : April 10, 2011 * copyright : (C) 2011 Kevin MASSY * email : kevin.massy@phpboost.com * * *################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * *################################################### */ /** * @author Kevin MASSY <kevin.massy@phpboost.com> * @package {@package} */ class ThemeManager { private static $error=null; public static function get_installed_themes_map() { return ThemesConfig::load()->get_themes(); } public static function get_activated_themes_map() { foreach(ThemesConfig::load()->get_themes()as $theme){ if($theme->is_activated()){ $activated_themes[$theme->get_id()]=$theme; } } return $activated_themes; }
On a tenté le ksort à la ligne 51 .. mais rien et en fouillant le ThemesSwitcherphpboostThemesSwitcherModuleMiniMenu.class.php on a relevé ceci de la ligne 64 à 72 ..
Code PHP :
foreach (ThemeManager::get_activated_and_authorized_themes_map() as $id => $theme) { $selected = ($user->get_theme() == $id) ? ' selected="selected"' : ''; $tpl->assign_block_vars('themes', array( 'NAME' => $theme->get_configuration()->get_name(), 'IDNAME' => $id, 'SELECTED' => $selected )); }
Que le Name est imbriqué en sous tableau de ID du thème.
Donc comment fait on pour que le trie se fasse sur le nom du thème , et non pas sur l'id attribué lorsque l'on installe le thème ?
Merci d'avance...
Swan.
Édité par Swan Le 04/09/2013 à 14h52

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
Tu étais bien partie avec le ksort.
Dans kernelframeworkphpboostthemeThememanager.class.php, rajoutes la ligne suivante avant le return de la fonction get_activated_themes_map() (ligne 51 environ) :
Code PHP :
ksort($activated_themes);
Et rajoutes la ligne suivante avant le return de la fonction get_activated_and_authorized_themes_map() (ligne 63 environ) :
Code PHP :
ksort($themes);
Pour avoir la liste triée dans l'admin, remplaces la fonction get_installed_themes_map() (ligne 38) par :
Code PHP :
J'ai fait la modification, ça sera intégré de base à partir de la prochaine version (4.0.6).
Julien
Édité par j1.seth Le 04/09/2013 à 14h19
Swan Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre Swan
- Inscrit le : 31/05/2013
- Site internet
Merci pour l'affichage en mini- module, c'est bon.
Par contre le tri n'est pas fait sur l'administration des thèmes installés. Je pencherais plus du coté de ce dossier et fichier: ..adminthemescontrollersAdminThemesInstalledListController.class.php pour l'odre du tri..
une idée ?
Edit: Tu m'as devancé .. Merci .
Édité par Swan Le 04/09/2013 à 14h47

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
Swan Membre non connecté
Booster Mortier
-
Booster Mortier
- Voir le profil du membre Swan
- Inscrit le : 31/05/2013
- Site internet
Voilà le placement :
Code PHP :
<?php /*################################################## /** * ThemeManager.class.php * ------------------- * begin : April 10, 2011 * copyright : (C) 2011 Kevin MASSY * email : kevin.massy@phpboost.com * * *################################################### * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * *################################################### */ /** * @author Kevin MASSY <kevin.massy@phpboost.com> * @package {@package} */ class ThemeManager { private static $error = null; public static function get_installed_themes_map() { foreach (ThemesConfig::load()->get_themes() as $theme) { $themes[$theme->get_id()] = $theme; } return $themes; } public static function get_activated_themes_map() { foreach (ThemesConfig::load()->get_themes() as $theme) { if ($theme->is_activated()) { $activated_themes[$theme->get_id()] = $theme; } } return $activated_themes; } public static function get_activated_and_authorized_themes_map() { foreach (ThemesConfig::load()->get_themes() as $theme) { if ($theme->is_activated() && $theme->check_auth()) { $themes[$theme->get_id()] = $theme; } } return $themes; }
Édité par Swan Le 04/09/2013 à 15h38

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
.Bonne journée.
Julien
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie