{"id":417,"date":"2014-09-07T11:02:11","date_gmt":"2014-09-07T09:02:11","guid":{"rendered":"http:\/\/geekcommunicant.com\/blog\/?p=417"},"modified":"2022-12-05T18:21:18","modified_gmt":"2022-12-05T17:21:18","slug":"multi-site-modx","status":"publish","type":"post","link":"https:\/\/geekcommunicant.com\/blog\/2014\/09\/07\/multi-site-modx\/","title":{"rendered":"Le multi-site avec MODX"},"content":{"rendered":"\n<p>Gr\u00e2ce \u00e0 son syst\u00e8me de contextes, MODX Revolution permet la gestion de plusieurs sites \u00e0 partir de la m\u00eame installation du syst\u00e8me. Nous allons voir dans cet article comment faire.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Le syst\u00e8me de contextes<\/h2>\n\n\n\n<p>Ce syst\u00e8me permet de clairement s\u00e9parer les ressources dans leur arbres (voir image ci-dessous). La premi\u00e8re section correspond aux ressources cr\u00e9es pour le site principal, alors que la\/les suivante(s) correspond(ent) \u00e0\/aux autre(s) site(s) rajout\u00e9(s) au syst\u00e8me par la suite.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"276\" height=\"526\" src=\"https:\/\/geekcommunicant.com\/blog\/wp-content\/uploads\/arbre-multi-contextes.png\" alt=\"Arbre multi-contextes\" class=\"wp-image-418\" srcset=\"https:\/\/geekcommunicant.com\/blog\/wp-content\/uploads\/arbre-multi-contextes.png 276w, https:\/\/geekcommunicant.com\/blog\/wp-content\/uploads\/arbre-multi-contextes-157x300.png 157w\" sizes=\"auto, (max-width: 276px) 100vw, 276px\" \/><\/figure>\n<\/div>\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\">Cr\u00e9ation d&rsquo;un nouveau contexte<\/h2>\n\n\n\n<p>Pour cr\u00e9er un nouveau contexte, se rendre sur la page de gestion des contextes, accessible dans le m\u00eame menu que les param\u00e8tres syst\u00e8mes (voir image ci-dessous). Une fois sur cette page, appuyez sur le bouton \u00ab\u00a0Cr\u00e9er\u00a0\u00bb, puis renseignez la cl\u00e9 (attention de bien la choisir \u00e0 cette \u00e9tape, sinon pour la modifier il faudra passer directement en base de donn\u00e9es), le nom (utilis\u00e9 dans l&rsquo;arbre de ressources), ainsi que la description (appara\u00eet au survol dans l&rsquo;abre de ressources).<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"291\" height=\"345\" src=\"https:\/\/geekcommunicant.com\/blog\/wp-content\/uploads\/acces-gestion-contextes.png\" alt=\"Acc\u00e8s gestion contextes\" class=\"wp-image-420\" srcset=\"https:\/\/geekcommunicant.com\/blog\/wp-content\/uploads\/acces-gestion-contextes.png 291w, https:\/\/geekcommunicant.com\/blog\/wp-content\/uploads\/acces-gestion-contextes-253x300.png 253w\" sizes=\"auto, (max-width: 291px) 100vw, 291px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Param\u00e9trage du contexte<\/h2>\n\n\n\n<p>Maintenant que notre contexte est cr\u00e9\u00e9, il nous reste encore \u00e0 le param\u00e9trer. Pour ce faire, faites un clic droit sur le contexte nouvellement cr\u00e9\u00e9, selectionnez \u00ab\u00a0Mise \u00e0 jour du contexte\u00a0\u00bb, et pour finir, rendez vous sur l&rsquo;onglet \u00ab\u00a0Param\u00e8tres du contexte\u00a0\u00bb.<\/p>\n\n\n\n<p>Il vous faut maintenant cr\u00e9er les param\u00e8tres suivants, donn\u00e9s sous la forme <span style=\"font-style: italic;\">cl\u00e9&nbsp;&#8211;&nbsp;valeur<\/span>:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>base_url &#8211; \/<\/li>\n\n\n\n<li>http_host &#8211; votrenouveaudomaine.fr\/<\/li>\n\n\n\n<li>site_name &#8211; Votre nouveau super site<\/li>\n\n\n\n<li>site_start &#8211; XX (correspond \u00e0 l&rsquo;ID de la premi\u00e8re ressource cr\u00e9\u00e9 dans le nouveau contexte)<\/li>\n\n\n\n<li>site_url &#8211; http:\/\/votrenouveaudomaine.fr\/<\/li>\n<\/ul>\n\n\n\n<p>Vous pouvez \u00e9galement dans ces param\u00e8tres r\u00e9gler diff\u00e9remment un param\u00e8tre syst\u00e8me (comme la r\u00e9\u00e9criture d&rsquo;URL).<\/p>\n\n\n\n<p>\u00c0 la fin de cette \u00e9tape vous devriez avoir (\u00e0 l&rsquo;exception de la derni\u00e8re ligne) la liste de param\u00e8tres suivante:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img loading=\"lazy\" decoding=\"async\" width=\"680\" height=\"365\" src=\"https:\/\/geekcommunicant.com\/blog\/wp-content\/uploads\/options-contextes.png\" alt=\"Options contexte\" class=\"wp-image-422\" srcset=\"https:\/\/geekcommunicant.com\/blog\/wp-content\/uploads\/options-contextes.png 680w, https:\/\/geekcommunicant.com\/blog\/wp-content\/uploads\/options-contextes-300x161.png 300w, https:\/\/geekcommunicant.com\/blog\/wp-content\/uploads\/options-contextes-500x268.png 500w\" sizes=\"auto, (max-width: 680px) 100vw, 680px\" \/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Rendre le nouveau contexte accessible<\/h2>\n\n\n\n<p>Maintenant que notre nouveau contexte est correctement param\u00e9tr\u00e9 il reste encore \u00e0 le rendre accessible. Cela se passe dans le fichier <span style=\"font-style: italic;\">index.php<\/span> \u00e0 la racine de votre installation MODX.<\/p>\n\n\n\n<p>Vers la ligne 64 environ, remplacer<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/* Initialize the default &#039;web&#039; context *\/\n$modx-&gt;initialize(&#039;web&#039;); \n<\/pre><\/div>\n\n\n<p>par<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\n\/* setup for multiple domains *\/\nswitch(strtolower(MODX_HTTP_HOST)) {\n    case &#039;votrenouveaudomaine.fr&#039;:\n    case &#039;www.votrenouveaudomaine.fr&#039;:\n        $modx-&gt;initialize(&#039;cl\u00e9-nouveau-contexte&#039;);\n        break;\n    default:\n        $modx-&gt;initialize(&#039;web&#039;);\n        break;\n}\n<\/pre><\/div>\n\n\n<p>Il est important de pr\u00e9voir le fait que votre nouveau domaine soit aussi accessible avec les 3 w. Lors de la cr\u00e9ation du second site sur mon installation MODX je n&rsquo;avais pas pr\u00e9vu ce cas, et en faisant quelques recherches Google pour v\u00e9rifier l&rsquo;\u00e9tat du r\u00e9f\u00e9rencement du nouveau site, j&rsquo;ai eu la d\u00e9sagr\u00e9able surprise de trouver des pages de mon site principal accessibles sous le deuxi\u00e8me domaine.<\/p>\n\n\n\n<p><strong>Edit du 5 d\u00e9cembre 2022<\/strong> : depuis la derni\u00e8re version majeure de MODX (la version 3), l&rsquo;aiguillage n&rsquo;est plus \u00e0 placer dans le fichier index.php (qui doit \u00eatre modifi\u00e9 \u00e0 chaque mise-\u00e0-jour du CMS) mais dans un fichier <code>config.context.php<\/code> situ\u00e9 \u00e0 la racine de votre installation MODX.<\/p>\n\n\n\n<p>Le code reste structur\u00e9 de la m\u00eame mani\u00e8re avec un switch, mais au lieu de faire appel \u00e0 la m\u00e9thode initialize() de l&rsquo;objet $modx, il faut utiliser un return.<\/p>\n\n\n<div class=\"wp-block-syntaxhighlighter-code \"><pre class=\"brush: php; title: ; notranslate\" title=\"\">\nswitch($_SERVER&#x5B;&#039;HTTP_HOST&#039;]) {\n    case &#039;domaine1.com&#039;:\n    case &#039;www.domaine1.com&#039;:\n        return &#039;contexte_1&#039;;\n    case &#039;domaine2.fr&#039;:\n    case &#039;www.domaine2.fr&#039;:\n        return &#039;contexte_2&#039;;\n    default:\n        return &#039;web&#039;;\n}\n<\/pre><\/div>","protected":false},"excerpt":{"rendered":"<p>Gr\u00e2ce \u00e0 son syst\u00e8me de contextes, MODX Revolution permet la gestion de plusieurs sites \u00e0 partir de la m\u00eame installation du syst\u00e8me. Nous allons voir dans cet article comment faire. Le syst\u00e8me de contextes Ce syst\u00e8me permet de clairement s\u00e9parer &hellip; <a href=\"https:\/\/geekcommunicant.com\/blog\/2014\/09\/07\/multi-site-modx\/\">Continuer la lecture <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[26],"tags":[24,39],"class_list":["post-417","post","type-post","status-publish","format-standard","hentry","category-modx","tag-modx","tag-multi-site"],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_shortlink":"https:\/\/wp.me\/p2IoOb-6J","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":314,"url":"https:\/\/geekcommunicant.com\/blog\/2014\/03\/30\/pourquoi-choisir-modx\/","url_meta":{"origin":417,"position":0},"title":"Pourquoi choisir MODX ?","author":"geekc","date":"30\/03\/2014","format":false,"excerpt":"Comme je l'ai annonc\u00e9 dans l'article pr\u00e9c\u00e9dent, j'ai choisis d'utiliser MODX pour mon site. Dans cet article je vais vous pr\u00e9senter MODX et vous dire ce qui me l'a fait choisir. Pr\u00e9sentation de MODX MODX est un syt\u00e8me de gestion de contenu (Content Management System en anglais) qui existe depuis\u2026","rel":"","context":"Dans &quot;MODX&quot;","block_context":{"text":"MODX","link":"https:\/\/geekcommunicant.com\/blog\/category\/modx\/"},"img":{"alt_text":"Arbre de ressources MODX","src":"https:\/\/i0.wp.com\/geekcommunicant.com\/blog\/wp-content\/uploads\/arbre_de_ressources.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":310,"url":"https:\/\/geekcommunicant.com\/blog\/2014\/03\/26\/le-site-nouveau-est-arrive\/","url_meta":{"origin":417,"position":1},"title":"Le site nouveau est arriv\u00e9 !!!","author":"geekc","date":"26\/03\/2014","format":false,"excerpt":"Bon OK, si vous \u00eates all\u00e9s le voir, vous ne constaterez aucun changement, et c'est normal ! La nouveaut\u00e9 n'est ni dans le contenu, ni dans la forme, mais sous le capot. En effet, jusqu'\u00e0 pr\u00e9sent mon site n'avait aucun CMS - sauf bien entendu ce blog ici pr\u00e9sent qui\u2026","rel":"","context":"Dans &quot;Divers&quot;","block_context":{"text":"Divers","link":"https:\/\/geekcommunicant.com\/blog\/category\/divers\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":370,"url":"https:\/\/geekcommunicant.com\/blog\/2014\/07\/07\/ajouter-meta-generator-modx-revolution\/","url_meta":{"origin":417,"position":2},"title":"Ajouter une m\u00e9ta \u00ab\u00a0generator\u00a0\u00bb \u00e0 MODX Revolution","author":"geekc","date":"07\/07\/2014","format":false,"excerpt":"J'ai longtemps cherch\u00e9 \u00e0 rajouter la balise m\u00e9ta \"generator\" \u00e0 mon MODX Revolution, et en fouillant la foisonnante doc de MODX j'ai enfin trouv\u00e9 une solution. Ma solution utilise un snippet (pour aller chercher le num\u00e9ro de version), et un chunk (pour mettre le tout en HTML). Le snippet Le\u2026","rel":"","context":"Dans &quot;MODX&quot;","block_context":{"text":"MODX","link":"https:\/\/geekcommunicant.com\/blog\/category\/modx\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":382,"url":"https:\/\/geekcommunicant.com\/blog\/2014\/08\/15\/menu-mobile-modx\/","url_meta":{"origin":417,"position":3},"title":"Un menu pour mobile avec MODX","author":"geekc","date":"15\/08\/2014","format":false,"excerpt":"Avec la g\u00e9n\u00e9ralisation des terminaux mobiles (smartphones et tablettes) il est important de prendre en compte la taille r\u00e9duite de leur affichage lors de la conception de votre site. Un \u00e9l\u00e9ment essentiel du design d'un site est le menu principal de navigation. Pour les terminaux mobiles, une des solutions est\u2026","rel":"","context":"Dans &quot;JavaScript&quot;","block_context":{"text":"JavaScript","link":"https:\/\/geekcommunicant.com\/blog\/category\/javascript\/"},"img":{"alt_text":"Menu pour smartphone","src":"https:\/\/i0.wp.com\/geekcommunicant.com\/blog\/wp-content\/uploads\/menu-smartphone.jpg?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":778,"url":"https:\/\/geekcommunicant.com\/blog\/2019\/05\/13\/enlever-meta-generator-wordpress\/","url_meta":{"origin":417,"position":4},"title":"Enlever la balise meta \u00ab\u00a0generator\u00a0\u00bb sur votre site WordPress","author":"geekc","date":"13\/05\/2019","format":false,"excerpt":"Je sais qu\u2019il y a quelque temps, j\u2019avais fait un article sur comment rajouter une balise meta \u00ab\u00a0generator\u00a0\u00bb \u00e0 un site MODX, mais cette balise peut remettre en question la s\u00e9curit\u00e9 de votre site. Une faille de s\u00e9curit\u00e9\u00a0? Conna\u00eetre le CMS derri\u00e8re un site peut faciliter la vie \u00e0 toute\u2026","rel":"","context":"Dans &quot;PHP&quot;","block_context":{"text":"PHP","link":"https:\/\/geekcommunicant.com\/blog\/category\/php\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]},{"id":249,"url":"https:\/\/geekcommunicant.com\/blog\/2013\/08\/28\/looking-for\/","url_meta":{"origin":417,"position":5},"title":"Looking for&#8230;","author":"geekc","date":"28\/08\/2013","format":false,"excerpt":"La nouvelle viens de tomber, mon CDD de webmaster ne donnera pas de suite. Je suis donc \u00e0 nouveau sur le march\u00e9, et suis \u00e0 la recherche d'un nouveau poste de \u00ab webmaster++ \u00bb. Par \u00ab webmaster++ \u00bb j'entend que je sais un peu plus que simplement mettre \u00e0 jour\u2026","rel":"","context":"Dans &quot;Divers&quot;","block_context":{"text":"Divers","link":"https:\/\/geekcommunicant.com\/blog\/category\/divers\/"},"img":{"alt_text":"","src":"","width":0,"height":0},"classes":[]}],"_links":{"self":[{"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/posts\/417","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/comments?post=417"}],"version-history":[{"count":0,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/posts\/417\/revisions"}],"wp:attachment":[{"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/media?parent=417"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/categories?post=417"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/geekcommunicant.com\/blog\/wp-json\/wp\/v2\/tags?post=417"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}