{"id":1663,"date":"2017-11-30T12:52:23","date_gmt":"2017-11-30T10:52:23","guid":{"rendered":"https:\/\/www.h-hennes.fr\/blog\/?p=1663"},"modified":"2018-11-22T18:09:52","modified_gmt":"2018-11-22T16:09:52","slug":"prestashop-1-7-gerer-les-menus-dans-ladministration","status":"publish","type":"post","link":"https:\/\/www.h-hennes.fr\/blog\/2017\/11\/30\/prestashop-1-7-gerer-les-menus-dans-ladministration\/","title":{"rendered":"Prestashop 1.7 : G\u00e9rer les menus dans l&rsquo;administration"},"content":{"rendered":"<p>Derni\u00e8rement j&rsquo;ai souhait\u00e9 d\u00e9sactiver l&rsquo;affichage d&rsquo;un \u00e9l\u00e9ment de menu dans le back-office de prestashop 1.7 .<br \/>\nPour un utilisateur standard c&rsquo;est relativement simple puisqu&rsquo;il suffit de jouer avec les permissions pour afficher \/ masquer les diff\u00e9rents menu, mais ce n&rsquo;est pas le cas dans un r\u00f4le d&rsquo;administrateur.<\/p>\n<p>La page de gestion des menus qui existait dans les anciennes versions n&rsquo;est plus accessible, via des liens existants ( ou alors je ne l&rsquo;ai pas trouv\u00e9e ).<br \/>\nLa bonne nouvelle par contre c&rsquo;est que le controlleur existe toujours.<\/p>\n<p>Pour (re)faire fonctionner la gestion des menus, nous allons donc cr\u00e9er un nouveau module hh_adminmenu<br \/>\nAvec le contenu suivant :<\/p>\n<pre lang=\"php\" escaped=\"true\">class Hh_AdminMenu extends Module {\r\n\r\n    public function __construct() {\r\n\r\n        $this-&gt;name = 'hh_adminmenu';\r\n        $this-&gt;displayName = 'HH admin menu';\r\n        $this-&gt;tab = '';\r\n        $this-&gt;version = '0.1.0';\r\n        $this-&gt;author = 'hhhennes';\r\n\r\n        parent::__construct();\r\n\r\n        $this-&gt;displayName = $this-&gt;l('Hh Admin menu');\r\n        $this-&gt;description = $this-&gt;l('Display again admin menu management');\r\n        $this-&gt;ps_versions_compliancy = array('min' =&gt; '1.7.1', 'max' =&gt; _PS_VERSION_);\r\n    }\r\n\r\n    \/**\r\n     * Install Module\r\n     * @return boolean\r\n     *\/\r\n    public function install() {\r\n        \r\n        if (!parent::install()) {\r\n            return false;\r\n        }\r\n\r\n        \/\/Ajout du liens vers la page des menus existants\r\n        $tab = new Tab();\r\n        $tab-&gt;class_name = 'AdminTabs';\r\n        $tab-&gt;id_parent = Tab::getIdFromClassName('AdminAdvancedParameters');\r\n        $languages = Language::getLanguages();\r\n        foreach ($languages as $lang) {\r\n            $tab-&gt;name[$lang['id_lang']] = $this-&gt;l('Menus');\r\n        }\r\n        try {\r\n            $tab-&gt;save();\r\n        } catch (Exception $e) {\r\n            echo $e-&gt;getMessage();\r\n            return false;\r\n        }\r\n\r\n        return true;\r\n    }\r\n    \r\n    \/**\r\n     * Uninstall module\r\n     * @return boolean\r\n     *\/\r\n    public function uninstall() {\r\n        \r\n        if ( !parent::uninstall() ) {\r\n            return false ;\r\n        }\r\n        \r\n        $id_tab = Tab::getIdFromClassName('AdminTabs');\r\n        $tab = new Tab($id_tab);\r\n        try{\r\n            $tab-&gt;delete();\r\n        } catch (Exception $e) {\r\n            echo $e-&gt;getMessage();\r\n            return false;\r\n        }\r\n        \r\n        return true;\r\n    }\r\n\r\n}\r\n<\/pre>\n<p>L&rsquo;installation du menu permettra le retour de l&rsquo;\u00e9l\u00e9ment \u00ab\u00a0menus\u00a0\u00bb dans les Param\u00e8tre avanc\u00e9s<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1664\" src=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2017\/11\/menu.png\" alt=\"Menu admin\" width=\"411\" height=\"281\" srcset=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2017\/11\/menu.png 411w, https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2017\/11\/menu-300x205.png 300w\" sizes=\"auto, (max-width: 411px) 100vw, 411px\" \/><\/p>\n<p>La gestion des droits de cette page a \u00e9t\u00e9 modifi\u00e9e pour en interdire l&rsquo;acc\u00e8s, il est donc \u00e9galement n\u00e9cessaire de sucharger le controller AdminTabsController<br \/>\nvia le fichier override\/controllers\/admin\/AdminTabsController.php avec le contenu suivant :<\/p>\n<pre lang=\"php\" escaped=\"true\">class AdminTabsController extends AdminTabsControllerCore {\r\n    \r\n    \r\n    \/**\r\n     * Changement du mode d'acc\u00e8s pour pouvoir afficher l'onglet\r\n     * @param string $action\r\n     * @param bool $disable\r\n     *\/\r\n    public function access($action, $disable = false)\r\n    {\r\n        return Profile::getProfileAccess($this-&gt;context-&gt;employee-&gt;id_profile, Tab::getCurrentTabId());       \r\n    }\r\n        \r\n}\r\n<\/pre>\n<p>Une fois le module install\u00e9, le menu est bien de retour \ud83d\ude42<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-1665\" src=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2017\/11\/menus.jpg\" alt=\"Menus admins\" width=\"972\" height=\"450\" srcset=\"https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2017\/11\/menus.jpg 972w, https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2017\/11\/menus-300x139.jpg 300w, https:\/\/www.h-hennes.fr\/blog\/wp-content\/uploads\/2017\/11\/menus-768x356.jpg 768w\" sizes=\"auto, (max-width: 972px) 100vw, 972px\" \/><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Derni\u00e8rement j&rsquo;ai souhait\u00e9 d\u00e9sactiver l&rsquo;affichage d&rsquo;un \u00e9l\u00e9ment de menu dans le back-office de prestashop 1.7 . Pour un utilisateur standard c&rsquo;est relativement simple puisqu&rsquo;il suffit de jouer avec les permissions pour afficher \/ masquer les diff\u00e9rents menu, mais ce n&rsquo;est pas le cas dans un r\u00f4le d&rsquo;administrateur. La page de gestion des menus qui existait [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[245],"tags":[348,508,483],"class_list":["post-1663","post","type-post","status-publish","format-standard","hentry","category-prestashop-2","tag-admin","tag-menus","tag-prestashop-1-7","prestashop-1-7","prestashop-1-7-2","prestashop-1-7-5","prestashop-1-7-7","prestashop-1-7-8","prestashop-8-0"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1663","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/comments?post=1663"}],"version-history":[{"count":1,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1663\/revisions"}],"predecessor-version":[{"id":1666,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/posts\/1663\/revisions\/1666"}],"wp:attachment":[{"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/media?parent=1663"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/categories?post=1663"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.h-hennes.fr\/blog\/wp-json\/wp\/v2\/tags?post=1663"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}