{
    "size": 108,
    "i": -1,
    "result": [
        {
            "filename": ".\/data\/articles\/0119.004.002.202506021415.nouveaux-tutoriels-sur-la-creation-de-themes.xml",
            "title": "Tutoriels sur la cr\u00e9ation de th\u00e8mes.",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003C\/p\u003ESur pluxthemes.com, une nouvelle serie de tutoriels est sortie pour \u003Cq\u003Ed\u00e9mystifier\u003C\/q\u003E la cr\u00e9ation d'un th\u00e8me pour pluxml.\u003C\/p\u003E\r\n\u003Cp\u003ELes articles  expliquent en \u00e9tapes \u003Cem\u003Ele comment du pourquoi\u003C\/em\u003E\u003C\/p\u003E\r\n\u003Cp\u003ELes premiers articles concernent les fichiers et leur contenus\u003C\/p\u003E\r\n\u003Ctable id=\"themeFiles\"\u003E\r\n  \u003Cthead\u003E\r\n    \u003Ctr\u003E\r\n      \u003Cth\u003E Mode d'affichage \u003Cbr\u003E\u003Csmall\u003E\u003Cem\u003Efichiers obligatoires\u003C\/em\u003E\u003C\/small\u003E\u003C\/th\u003E\r\n      \u003Cth\u003Efichiers accessoires\u003Cbr\u003E \u003Csmall\u003Eaux differents modes\u003C\/small\u003E\u003C\/th\u003E\r\n      \u003Cth\u003EAutres \u003Cbr\u003E\u003Csmall\u003Eutiles, administration\u003C\/small\u003E\u003C\/th\u003E\r\n      \u003Cth\u003ESous-Dossiers\u003C\/th\u003E\r\n    \u003Ctr\u003E\r\n  \u003C\/thead\u003E\r\n  \u003Ctbody\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd data-header=\"Mode d'affichage - fichiers obligatoires\"\u003E\r\n        \u003Cul\u003E\r\n          \u003Cli\u003Ehome.php\u003C\/li\u003E\r\n          \u003Cli\u003Earticle.php\u003C\/li\u003E\r\n          \u003Cli\u003Ecategorie.php\u003C\/li\u003E\r\n          \u003Cli\u003Estatic.php\u003C\/li\u003E\r\n          \u003Cli\u003Etag.php\u003C\/li\u003E\r\n          \u003Cli\u003Earchive.php\u003C\/li\u003E\r\n          \u003Cli\u003Eerreur.php\u003C\/li\u003E\r\n        \u003C\/ul\u003E\r\n      \u003C\/td\u003E\r\n      \u003Ctd data-header=\"fichiers communs et accessoires\"\u003E\r\n        \u003Cul\u003E\r\n          \u003Cli\u003Eheader.php\u003C\/li\u003E\r\n          \u003Cli\u003Esidebar.php\u003C\/li\u003E\r\n          \u003Cli\u003Efooter.php\u003C\/li\u003E\r\n          \u003Cli\u003Ecommentaires.php\u003C\/li\u003E\r\n        \u003C\/ul\u003E\r\n      \u003C\/td\u003E\r\n      \u003Ctd data-header=\"Autres - utiles, administration\"\u003E\r\n        \u003Cul\u003E\r\n          \u003Cli\u003Einfos.xml \u003Cb\u003E\u003Csmall\u003Eobligatoire\u003C\/b\u003E\u003C\/small\u003E\u003C\/li\u003E\r\n          \u003Cli\u003E...\u003C\/li\u003E\r\n          \u003Cli\u003Eindex.html\u003C\/li\u003E\r\n          \u003Cli\u003Epreview.png ou preview.jpg\u003C\/li\u003E\r\n        \u003C\/ul\u003E\r\n      \u003C\/td\u003E\r\n      \u003Ctd data-header=\"Sous-Dossiers\"\u003E\r\n        \u003Cul\u003E\r\n          \u003Cli\u003Elang\/ \u003Csmall\u003Elangues et aide\u003C\/small\u003E\u003C\/li\u003E\r\n          \u003Cli\u003ECSS\/ \u003Csmall\u003Econseill\u00e9 pour stocker \u003Cbr\u003Evos feuilles de styles\u003C\/small\u003E\u003C\/li\u003E\r\n          \u003Cli\u003EIMG\/ \u003Csmall\u003Econseill\u00e9 pour stocker \u003Cbr\u003Eles images du th\u00e8me\u003C\/small\u003E\u003C\/li\u003E\r\n          \u003Cli\u003EJS\/ \u003Csmall\u003Econseill\u00e9 pour stocker \u003Cbr\u003Evos scripts\u003C\/small\u003E\u003C\/li\u003E\r\n        \u003C\/ul\u003E\r\n      \u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n  \u003C\/tbody\u003E\r\n\u003C\/table\u003E\r\n\u003Cp\u003ELes derniers abordent l'affichage avec des feuilles de styles \u003Ci\u003Emaison\u003C\/i\u003E ou issues d'un \u003Ci\u003Eframework\u003C\/i\u003E.\u003C\/p\u003E\r\n\u003Cstyle\u003E\r\n@media (max-width: 960px) {\r\n  #themeFiles {\r\n    margin: 1em auto;\r\n  }\r\n  #themeFiles tbody,\r\n  #themeFiles tfoot {\r\n    display: contents;\r\n  }\r\n\r\n  #themeFiles thead {\r\n    display: none;\r\n  }\r\n  #themeFiles tr {\r\n    display: grid;\r\n  }\r\n  #themeFiles td {\r\n    outline: 1px solid;\r\n  }\r\n  #themeFiles td::before {\r\n    display: block;\r\n    padding: 1em;\r\n    font-weight: bold;\r\n    text-align: center;\r\n    background: silver;\r\n    content: attr(data-header);\r\n    outline: 1px solid;\r\n  }\r\n}\r\n\u003C\/style\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article119\/nouveaux-tutoriels-sur-la-creation-de-themes\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"nouveaux-tutoriels-sur-la-creation-de-themes\"\n\t\t\t},\n\t\t\t\"headline\": \"Tutoriels sur la cr\u00e9ation de th\u00e8mes.\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/pixabay\/website-g111894089_1280.jpg\",\n\t\t\t\t\"datePublished\": \"2025-06-02T14:15:00Z\",\n\t\t\t\"dateModified\": \"2025-07-06T20:41:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Tutoriels, Th\u00e8me, Th\u00e8mes, Tuto, Template, Templates, Cr\u00e9ation\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch3\u003EPourquoi?\u003C\/h3\u003E\r\n\u003Cp\u003EPour qu'un th\u00e8me fonctionne dans PluXml, \u003Cb\u003Eil faut suivre quelques r\u00e8gles de bases:\u003C\/b\u003E\u003C\/p\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003EUn th\u00e8me requiert un minimum de fichiers pour \u00eatre vu dans l'administration et pour construire vos pages cot\u00e9 visiteurs,\u003Cb\u003E les articles font l'inventaire de ces fichiers et de leurs d\u00e9clinaisons possibles\u003C\/b\u003E.\u003C\/li\u003E\r\n\u003Cli\u003EPour afficher les contenus dans vos pages,  PluXml dispose de fonctions d\u00e9di\u00e9es pour chaque type de donn\u00e9es de vos contenus, \u003Cb\u003Eles articles donnent des exemples\u003C\/b\u003E.\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\u003Ch3\u003EComment\u003C\/h3\u003E\r\n\u003Cp\u003ELes articles expliquent:\u003C\/p\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003EComment distribu\u00e9 le HTML d'un document dans les diff\u00e9rents fichier\u003C\/li\u003E\r\n\u003Cli\u003EComment afficher les contenus dans la structure HTML de votre th\u00e8me\u003C\/li\u003E\r\n\u003Cli\u003EEt donnent des exemples fonctionnels\u003C\/li\u003E\r\n\u003Cli\u003EComment ajout\u00e9 vos feuilles de styles et mettre en place vos premiers styles.\u003C\/li\u003E\r\n\u003Cli\u003EEt donnent quelques infos et liens de ressources en annexes.\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\r\n\u003Ch3\u003EVue d'ensemble de la s\u00e9rie d'articles.\u003C\/h3\u003E\r\n\u003Ctable id=\"sum\"\u003E\r\n  \u003Cthead\u003E\r\n    \u003Ctr\u003E\r\n      \u003Cth\u003EArticles de la s\u00e9rie:\u003Cbr\u003E \"cr\u00e9er un th\u00e8me\" \u003C\/th\u003E\r\n      \u003Cth\u003Earticles connexes\u003C\/th\u003E\r\n      \u003Cth\u003ERessources externes\u003C\/th\u003E\r\n    \u003C\/tr\u003E\r\n  \u003C\/thead\u003E\r\n  \u003Ctbody\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/article119\/creer-un-theme-etape-fichiers-01\" target=\"_blank\"\u003E\u00e9tape fichiers 01\u003C\/a\u003E\u003C\/td\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/mettre-a-jour-un-vieux-theme-14\" target=\"_blank\"\u003EMAJ d'un vieux th\u00e8me\u003C\/a\u003E\u003C\/td\u003E\r\n      \u003Ctd rowspan=\"6\"\u003E\r\n        \u003Cul style=\"list-style:none\"\u003E\r\n          \u003Cli\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/installation-dun-theme\" target=\"_blank\"\u003EInstaller un th\u00e8me\u003C\/a\u003E\u003C\/li\u003E\r\n          \u003Cli\u003E\u003Ca href=\"https:\/\/wiki.pluxml.org\/docs\/develop\/plxshow.html\" target=\"_blank\"\u003ELa doc officielle\u003C\/a\u003E\u003C\/li\u003E\r\n          \u003Cli\u003E\u003Ca href=\"https:\/\/www.pierre-giraud.com\/html-css-apprendre-coder-cours\/element-balise-attribut\/\" target=\"_blank\"\u003EBases HTML\u003C\/a\u003E\u003C\/li\u003E\r\n          \u003Cli\u003E\u003Ca href=\"https:\/\/www.pierre-giraud.com\/html-css-apprendre-coder-cours\/selecteur-propriete\/\" target=\"_blank\"\u003EBases CSS\u003C\/a\u003E\u003C\/li\u003E\r\n          \u003Cli\u003E\u003Ca href=\"https:\/\/www.pierre-giraud.com\/php-mysql-apprendre-coder-cours\/creer-enregistrer-executer-script\/\" target=\"_blank\"\u003ETutoriel PHP en fran\u00e7ais\u003C\/a\u003E\u003C\/li\u003E\r\n          \u003Cli\u003E\u003Ca href=\"https:\/\/www.pierre-giraud.com\/javascript-apprendre-coder-cours\/\" target=\"_blank\"\u003ETutoriel JavaScript en fran\u00e7ais\u003C\/a\u003E\u003C\/li\u003E\r\n        \u003C\/ul\u003E\r\n      \u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/article120\/creer-un-theme-etape-fichiers-02\" target=\"_blank\"\u003E\u00e9tape fichiers 02\u003C\/a\u003E\u003C\/td\u003E\r\n      \u003Ctd\u003E\u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/article121\/creer-un-theme-etape-fichiers-03\" target=\"_blank\"\u003E\u00e9tape fichiers 03\u003C\/a\u003E\u003C\/td\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/mettre-a-jour-un-vieux-theme-44\" target=\"_blank\"\u003Eth\u00e8me multilingue\u003C\/a\u003E\u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/article122\/creer-un-theme-etape-fichiers-04\" target=\"_blank\"\u003E\u00e9tape fichiers 04\u003C\/a\u003E\u003C\/td\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/affichage-des-commentaires-et-gestion-des-plugins-sur-un-theme\" target=\"_blank\"\u003Eaffichage des commentaires\u003C\/a\u003E.\u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/article123\/creer-un-theme-etape-fichiers-05\" target=\"_blank\"\u003E\u00e9tape fichiers 05\u003C\/a\u003E\u003C\/td\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/mettre-a-jour-un-vieux-theme-24\" target=\"_blank\"\u003Ele fil d'Ariane\u003C\/a\u003E\u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/article124\/creer-un-theme-etape-fichiers-06\" target=\"_blank\"\u003E\u00e9tape fichiers 06\u003C\/a\u003E\u003C\/td\u003E\r\n      \u003Ctd\u003E\u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd colspan=\"3\"\u003E archive ZIP du th\u00e8me construit dans ce tutoriel \u003Ca href=\"https:\/\/pluxthemes.com\/themes\/themedututo.zip\" download\u003Ethemedututo.zip\u003C\/a\u003E.\u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/article125\/creer-un-theme-etape-styles-01\" target=\"_blank\"\u003E\u00e9tape CSS 01\u003C\/a\u003E\u003C\/td\u003E\r\n      \u003Ctd\u003E\u003C\/td\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/developer.mozilla.org\/fr\/docs\/Web\/HTML\/Guides\/Viewport_meta_element\" target=\"_blank\"\u003Emeta \"viewport\"\u003C\/a\u003E\u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/article126\/creer-un-theme-etape-styles-02\" target=\"_blank\"\u003E\u00e9tape CSS 02\u003C\/a\u003E\u003C\/td\u003E\r\n      \u003Ctd\u003E\u003C\/td\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/developer.mozilla.org\/fr\/docs\/Web\/HTML\/Reference\/Elements\/link\" target=\"_blank\"\u003Ela balise \"link\"\u003C\/a\u003E\u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n\t\t\u003Ctr\u003E\r\n\t\t\t\u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/creer-un-theme-etape-styles-03\" target=\"_blank\"\u003E\u00e9tape CSS 03\u003C\/a\u003E\u003C\/td\u003E\r\n\t\t\t\u003Ctd\u003E\u003C\/td\u003E\r\n\t\t\t\u003Ctd\u003E\u003Ca href=\"https:\/\/www.w3.org\/developers\/tools\/\" target=\"_blank\"\u003E Outils de verification du W3C\u003C\/a\u003E.\u003C\/td\u003E\r\n\t\t\u003C\/tr\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd colspan=\"3\"\u003E* * * \u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/creer-un-theme-etape-integration-01\" target=\"_blank\"\u003E\u00e9tape int\u00e9gration 01\u003C\/a\u003E\u003Cbr\u003E\r\ntheme HTML5 pris en exemple: \u003Ca href=\"https:\/\/html5up.net\/massively\" target=\"_blank\"\u003Emassively\u003C\/a\u003E.\u003C\/td\u003E\r\n      \u003Ctd\u003E\u00e9tape fichier 02 - \u00e9tape fichier 03 - \u00e9tape fichier 05\u003C\/td\u003E\r\n      \u003Ctd\u003E\u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd colspan=\"3\"\u003EArchive du theme du tutoriel \u003Ca href=\"https:\/\/pluxopolis.net\/data\/medias\/documents\/massively-integration-01.zip\" download\u003Emassively-integration-01.zip\u003C\/a\u003E\r\n      \u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/creer-un-theme-etape-integration-02\" target=\"_blank\"\u003E\u00e9tape int\u00e9gration 02\u003C\/a\u003E\u003C\/td\u003E\r\n      \u003Ctd\u003E\u003Ca href=\"https:\/\/pluxopolis.net\/mettre-en-place-un-edito.html\" target=\"_blank\"\u003Emettre en place un edito \u003C\/a\u003E\u003C\/td\u003E\r\n      \u003Ctd\u003E\u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n    \u003Ctr\u003E\r\n      \u003Ctd colspan=\"3\"\u003EArchive du theme du tutoriel \u003Ca href=\"https:\/\/pluxthemes.com\/themes\/massively\/massively.zip\" download=\"\"\u003Emassively.zip\u003C\/a\u003E.\r\n      \u003C\/td\u003E\r\n    \u003C\/tr\u003E\r\n  \u003C\/tbody\u003E\r\n\u003C\/table\u003E\r\n\u003Cstyle\u003E\r\n#top article b {\r\nfont-weight:bolder\r\n}\r\n#top article i {\r\nfont-style:italic;\r\nfont-weight:bolder\r\n}\r\n#sum tr \u003E * {\r\n  vertical-align: middle;\r\n  text-align: center;\r\n  border: solid 1px;\r\n}\r\n\u003C\/style\u003E",
            "tags": "Tutoriels, Th\u00e8me, Th\u00e8mes, Tuto, Template, Templates, Cr\u00e9ation",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/pixabay\/website-g111894089_1280.jpg",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0119",
            "author": "002",
            "categorie": "004",
            "url": "nouveaux-tutoriels-sur-la-creation-de-themes",
            "date": "202506021415",
            "nb_com": 0,
            "date_creation": "202506021415",
            "date_update": "202507062041"
        },
        {
            "filename": ".\/data\/articles\/0118.013.002.202503151631.plugin-orejime.xml",
            "title": "Plugin \"orejime\". Gestionnaire de Cookies.",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003ECe nouveau plugin, vous procure une interface de configuration pour \"OREJIME\" qui est un gestionnaire de cookies:\u003C\/p\u003E\r\n\u003Cul style=\"overflow:hidden\"\u003E\r\n\t\u003Cli\u003E gratuit\u003C\/li\u003E\r\n\t\u003Cli\u003Esous licence libre\u003C\/li\u003E\r\n\t\u003Cli\u003E opensource\u003C\/li\u003E\r\n\t\u003Cli\u003Econforme \u00e0:\r\n\t\t\u003Cul\u003E\r\n\t\t\t\u003Cli\u003E  \u003Cabbr title=\"R\u00e8glement g\u00e9n\u00e9ral sur la protection des donn\u00e9es\"\u003ERGPD\u003C\/abbr\u003E\u003C\/li\u003E\r\n\t\t\t\u003Cli\u003E\u003Cabbr title=\"Lignes directrices pour l'accessibilit\u00e9 des contenus Web\"\u003EWCAG\u003C\/abbr\u003E(via la transposition en fran\u00e7ais de la norme, \u003Cabbr lang=\"fr\" title=\"R\u00e9f\u00e9rentiel g\u00e9n\u00e9ral d'am\u00e9lioration de l'accessibilit\u00e9\"\u003ERGAA\u003C\/abbr\u003E).\u003C\/li\u003E\r\n\t\t\u003C\/ul\u003E\r\n\t\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Cp\u003ELe plugin, en tant qu'interface ne modifie pas \u003Cb\u003Eorejime\u003C\/b\u003E, il aide \u00e0 la mise en \u0153uvre de cet outil en balisant vos scripts et contenus externes, puis en initialisant \u003Cb\u003Eorejime\u003C\/b\u003E cot\u00e9 visiteurs, en fonction de votre configuration de fa\u00e7on automatique.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EPlus d'information \u00e0 propos de ce gestionnaire de cookies depuis son site: \r\n\t\u003Ca href=\"https:\/\/boscop.fr\/gestionnaire-cookies-orejime\/\" title=\"La page de : Gestionnaire de cookies Orejime \" target=\"_blank\"\u003EGestionnaire de cookies Orejime \u279a\u003C\/a\u003E, \r\n\t\u003Ca href=\"https:\/\/orejime.boscop.fr\/\" target=\"_blank\" title=\"exemple\"\u003Ecaract\u00e9ristiques et exemples \u279a\u003C\/a\u003E et \r\n\t\u003Ca href=\"https:\/\/github.com\/boscop-fr\/orejime\" target=\"_blank\" title d\u00e9pot github\"\u003E d\u00e9pot publique sur github de Orejime \u279a\u003C\/a\u003E\r\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article118\/plugin-orejime\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"plugin-orejime\"\n\t\t\t},\n\t\t\t\"headline\": \"Plugin \"orejime\". Gestionnaire de Cookies.\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/biscuit.png\",\n\t\t\t\t\"datePublished\": \"2025-03-15T16:31:00Z\",\n\t\t\t\"dateModified\": \"2025-03-15T18:34:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Plugins, Cookies\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\u003Cstrong\u003ELe plugin vous permet depuis l'administration de votre site PluXml de configurer:\u003C\/strong\u003E\u003C\/p\u003E\r\n\u003Cul\u003E\r\n\t\u003Cli\u003ELes familles\/types de traceurs ou contenus externes par Famille ou rattach\u00e9s \u00e0 une famille en r\u00e9digeant une description pour informer le visiteur.\u003C\/li\u003E\r\n\t\u003Cli\u003ELes options \u003Cstrong\u003Erequis\u003C\/strong\u003E(obligatoire) et \u003Cstrong\u003Enon requis\u003C\/strong\u003E(demandant un consentement de l'internaute).\u003C\/li\u003E\r\n\t\u003Cli\u003EVotre page de \"Politique de confidentialit\u00e9\" (celle ci est gen\u00e9r\u00e9 par le plugin, il y manquera vos textes.)\u003C\/li\u003E\r\n\t\u003Cli\u003EModifier ou cr\u00e9er les traductions existantes ou manquantes (par d\u00e9faut la version anglaise devrait s'afficher)\u003C\/li\u003E\r\n\t\u003Cli\u003EUn bouton \u003Cstrong\u003EReset\u003C\/strong\u003E apr\u00e9s que le visiteur a valid\u00e9 ses choix.\u003C\/li\u003E\r\n\t\u003Cli\u003EUn bouton \u003Cstrong\u003EConfigurer\u003C\/strong\u003E apr\u00e9s que le visiteur a valid\u00e9 ses choix.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Cp\u003EVous n'avez pas \u00e0 toucher aux fichiers du th\u00e8me, les traceurs sont automatiquement inject\u00e9s dans la partie \u003Ccode\u003E&lt;head&gt;\u003C\/code\u003E de votre page.\u003C\/p\u003E\r\n\u003Cp\u003EVos script ou codes HTML n'ont pas \u00e0 \u00eatre modifi\u00e9s, il suffit de les copier\/coller dans l'administration. Ils seront encapsul\u00e9s dans une balise \u003Ccode\u003E&lt;template&gt;\u003C\/code\u003E .\r\nLes codes pour les contenus externes \u00e0 inserer dans vos publications seront \u00e0 copier\/coller aux endroits d'affichages (articles, pages statiques, ... ).\u003C\/p\u003E\r\n\u003Cp\u003ELe script d'initialisation est automatiquement inject\u00e9 en fin de page en fonction de votre configuration si vous avez au moins une famille configur\u00e9e.\u003C\/p\u003E\r\n\u003Cp\u003ET\u00e9l\u00e9charger ce plugin: \u003Ca href=\"https:\/\/ressources.pluxopolis.net\/banque-plugins\/plugins\/orejime.1.0.1.zip\" download title=\"archive zip du plugin pour PluXml\"\u003EOrejime\u003C\/a\u003E, il est aussi  disponible depuis \u003Ca href=\"https:\/\/github.com\/gcyrillus\/orejime\" target=\"_blank\"\u003E github \u279a\u003C\/a\u003E.\u003C\/p\u003E",
            "tags": "Plugins, Cookies",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/biscuit.png",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0118",
            "author": "002",
            "categorie": "013",
            "url": "plugin-orejime",
            "date": "202503151631",
            "nb_com": 0,
            "date_creation": "202503151631",
            "date_update": "202503151834"
        },
        {
            "filename": ".\/data\/articles\/0117.013.002.202502112104.plxnotifyme-remplace-mynewsletter.xml",
            "title": "plxNotifyMe remplace MyNewsLetter",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003EPluxopolis s'\u00e9tait dot\u00e9 d'une newsletter en juillet 2023 avec le plugin MyNewsletter, ce dernier s'est av\u00e9r\u00e9 plut\u00f4t complexe, rigide et peu efficace \u00e0 l'utilisation.\u003C\/p\u003E\r\n\u003Cp\u003ELe plugin \u003Cem\u003EplxNotifyMe est simplifi\u00e9 et aussi am\u00e9lior\u00e9\u003C\/em\u003E sur plusieurs aspects tout en reprenant une partie du code de MyNewsLetter(cryptage des adresses par exemple).\u003C\/p\u003E\r\n\u003Cp\u003EIl peut remplacer MyNewsLetter et importer sa liste d'abonn\u00e9s .\u003C\/p\u003E\r\n\u003Cp\u003EC'est le choix que Pluxopolis \u00e0 fait. \u003C\/p\u003E\r\n\u003Cp\u003E\u003Cb\u003ET\u00e9l\u00e9chargement:\u003C\/b\u003E \u003Ca href=\"https:\/\/ressources.pluxopolis.net\/banque-plugins\/index.php?plugin=plxNotifyMe&download\"\u003E Il est disponible ici \u003C\/a\u003E. \u003C\/p\u003E\r\n\u003Cbr\u003E\r\n\u003Ch3\u003EQue faut-il savoir pour l'utiliser efficacement ?\u003C\/h3\u003E\r\n\u003Ch4\u003E- Les envois d\u2019e-mail\u003C\/h4\u003E\r\n\u003Cbr\u003E\r\n\u003Cp\u003ELes envois de mails se font toujours individuellement et par lots d'abonn\u00e9s avec un d\u00e9lai entre chaque envoi de lots\u003C\/p\u003E\r\n\u003Cp\u003ELe plugin utilise la configuration d'envoi des courriels de PluXml,  par d\u00e9faut PluXml utilise la fonction native \u003Ccode\u003Email()\u003C\/code\u003E de PHP, il est aussi possible de le configurer pour envoyer des mails par \u003Ccode\u003ESMTP simple\u003C\/code\u003E  ou \u003Ccode\u003ESMTP OAUTH2\u003C\/code\u003E(gmail) , beaucoup plus fiables que \u003Ccode\u003Email()\u003C\/code\u003E.\u003C\/p\u003E\r\n\u003Cbr\u003E\r\n\u003Cp\u003ELa fonction \u003Ccode class=\"language php\"\u003Email()\u003C\/code\u003E n'est pas toujours disponible ou peut-\u00eatre brid\u00e9e par votre h\u00e9bergeur. Le mail est envoy\u00e9 par le serveur. \u003C\/p\u003E\r\n\u003Cp\u003ESi votre serveur est mutualis\u00e9, la messagerie destinataire ne saura pas de quel site il provient. Il y a de grandes chances que votre mail, si il parvient \u00e0 \u00eatre envoy\u00e9, finisse dans les spams ou tout bonnement bloqu\u00e9 par la messagerie du destinataire. Ce n'est pas ce que l'on souhaite.\u003C\/p\u003E\r\n\u003Cstyle\u003Eem,b{color:hotpink;font-weight:bolder}code{color:blue}\u003C\/style\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article117\/plxnotifyme-remplace-mynewsletter\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"plxnotifyme-remplace-mynewsletter\"\n\t\t\t},\n\t\t\t\"headline\": \"plxNotifyMe remplace MyNewsLetter\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/pexels-photo-193003.jpeg\",\n\t\t\t\t\"datePublished\": \"2025-02-11T21:04:00Z\",\n\t\t\t\"dateModified\": \"2025-03-15T18:38:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t}\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003EPour augmenter les chances que vos mails ne soient consid\u00e9r\u00e9s comme dangereux ou \u003Cem\u003Epolluant\u003C\/em\u003E, m\u00eame si la fonction \u003Ccode\u003Email()\u003C\/code\u003E est fonctionnelle, je vous recommande d'utiliser l'une des deux autres options configurables dans PluXml, voir : \u003Ca href=\"https:\/\/wiki.pluxml.org\/docs\/customize\/advancedconfig.html#envoi-d-e-mails\" title = \"aide configuration envoi courriel dans PluXml\"\u003Ewiki : Envoi d\u2019e-mails\u003C\/a\u003E.\u003C\/p\u003E\r\n\u003Cp\u003E\u003Cb\u003EIl 'y a pas de plage d'envoi configurable (jour\/heure)\u003C\/b\u003E , les notifications sont envoy\u00e9es sit\u00f4t qu'il y a une nouvelle publication.\u003C\/p\u003E\r\n\u003Ch4\u003E- Les notifications\u003C\/h4\u003E\r\n\u003Cp\u003ELes notifications sont envoy\u00e9es des la premi\u00e8re publication d'un article \u003Cb\u003Eet uniquement \u00e0 ce moment l\u00e0!\u003C\/b\u003E,\u003C\/p\u003E\r\n\u003Cp\u003EElles envoient une copie de votre article sans son image d'accroche.\u003C\/p\u003E\r\n\u003Cp\u003ER\u00e9fl\u00e9chissez au contenu que vous souhaitez envoyer avant sa premi\u00e8re publication, est ce l'article complet et finalis\u00e9 ?\u003C\/p\u003E\r\n\u003Ch4\u003E- Envoyer une vrai newsletter ?\u003C\/h4\u003E\r\n\u003Cp\u003EPour envoy\u00e9 une notification comme une newsletter classique et l\u2019\u00e9vincer de l'affichage sur le site, voici comment faire:\u003C\/p\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003ECr\u00e9er une cat\u00e9gorie\u003C\/li\u003E\r\n\u003Cli\u003ES\u00e9lectionner \u003Cb\u003Emasquer\u003C\/b\u003E pour cette cat\u00e9gorie dans la colonne menu.\u003C\/p\u003E\r\n\u003Cli\u003EApr\u00e9s enregistrement de cette nouvelle cat\u00e9gorie, cliquez sur \u003Cb\u003Eoptions\u003C\/b\u003E(derniere colonne), s\u00e9lectionner \u003Cb\u003Enon\u003C\/b\u003E pour \u003Cem\u003EAfficher les articles de cette cat\u00e9gorie sur la page d'accueil :\u003C\/em\u003E, cliquez sur \"Mettre \u00e0 jour cette cat\u00e9gorie\".\u003C\/li\u003E\r\n\u003Cli\u003ECr\u00e9er un nouvel article et le rattach\u00e9 \u00e0 cette cat\u00e9gorie \u003Cem\u003Emasqu\u00e9e\u003C\/em\u003E\u003C\/li\u003E\r\n\u003Cli\u003ER\u00e9diger votre newsletter.\u003C\/li\u003E\r\n\u003Cli\u003EQuand votre newsletter est pr\u00eate, cliquer sur \"publier\", l'envoi aux abonn\u00e9s commence. Le contenu sera envoy\u00e9 aux abonn\u00e9s ne sera plus modifi\u00e9, vous pourrez toujours modifier, mettre hors ligne ou effacer cet article sur le site.\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\u003Cp\u003ESi les liens vers cette cat\u00e9gorie cr\u00e9\u00e9e pour les newsletter, ainsi que les liens des articles, ne sont pas affich\u00e9s, Ils existent et restent accessibles. \u003C\/p\u003E\r\n\u003Cp\u003ELe lien envoy\u00e9 dans le mail permet de visualis\u00e9 l'article directement sur le site.\u003C\/p\u003E\r\n\u003Ch3\u003EPages configuration et administration\u003C\/h3\u003E\r\n\u003Cp\u003ELa configuration du plugin vous laisse les choix:\u003C\/p\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003ED'afficher une page statique sur le site ou le visiteur peut s'inscrire, puis suivre le process d'inscription.\u003C\/li\u003E\r\n\u003Cli\u003ED\u00e9terminer sa position au menu\u003C\/li\u003E\r\n\u003Cli\u003ELa configuration est compatible avec le plugin plxMyMultilingue, un onglet par langues configur\u00e9es permets de personnalis\u00e9 les \u00e9l\u00e9ments textes des formulaires.\u003C\/li\u003E \r\n\u003Cli\u003E\u003Cdel\u003EPaginer l'affichage par groupe de X  abonn\u00e9s dans l'administration.\u003C\/del\u003Epas encore publi\u00e9\u003C\/li\u003E\r\n\u003Cli\u003E Nombre d'envois par lots\u003C\/li\u003E\r\n\u003Cli\u003ED\u00e9lai entre chaque envois de lots\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\u003Cp\u003EL'administration du plugin vous permet:\u003C\/p\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003EVisualisez des statistiques simples concernant les abonnements, envois et retour\u003C\/li\u003E\r\n\u003Cli\u003EVisualisez la liste des abonn\u00e9s et de retirer ou ajouter(en validant automatiquement) des abonnements.\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\u003Ch3\u003ECaract\u00e9ristiques\u003C\/h3\u003E\r\n\u003Cp\u003EEnvoi une copie de la premi\u00e8re publication d'un article.\u003C\/p\u003E\r\n\u003Cp\u003EEfface automatiquement un abonnement non valid\u00e9 au boit de 3 mois\u003C\/p\u003E\r\n\u003Cp\u003EAnnuler ou effacer un abonnement est irr\u00e9versible,Il n'y a pas d\u2019historique, il est donc possible de refaire un abonnement avec une adresse mail d\u00e9j\u00e0 utilis\u00e9e par le pass\u00e9..\u003C\/p\u003E\r\n\u003Cp\u003EUtilise la configuration de PluXml pour l'envoi des Notifications\u003C\/p\u003E\r\n\u003Cp\u003EPHP 7.2.5 et +\u003C\/p\u003E\r\n\u003Cp\u003E...\u003C\/p\u003E",
            "tags": "",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/pexels-photo-193003.jpeg",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0117",
            "author": "002",
            "categorie": "013",
            "url": "plxnotifyme-remplace-mynewsletter",
            "date": "202502112104",
            "nb_com": 0,
            "date_creation": "202502112104",
            "date_update": "202503151838"
        },
        {
            "filename": ".\/data\/articles\/0116.001,013.002.202412100000.ajouter-un-forum-a-pluxml.xml",
            "title": "Ajouter un Forum \u00e0 PluXml",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003EUn plugin forum pour PluXml ? Les options sont peu nombreuses et la solution est souvent d'installer un forum \u00e0 cot\u00e9 de PluXml , puis de retravailler les th\u00e8mes du forum et  de PluXml pour naviguer de l'un \u00e0 l'autre sans avoir l'impression de changer de site.\u003C\/p\u003E\r\n\u003Ch3\u003EBase de donn\u00e9es ou flat-file ?\u003C\/h3\u003E\r\n\u003Cp\u003EEn utilisant PluXml, vous recherchez probablement quelque chose de l\u00e9ger et sans base de donn\u00e9es. Il n'y a pas grand choix . Les forums n'ont plus la cote et ceux encore suivi par leur d\u00e9veloppeur r\u00e9duisent encore le choix du \"possible\".\u003C\/p\u003E\r\n\u003Ch3\u003EQuelque chose de l\u00e9ger.\u003C\/h3\u003E\r\n\u003Cp\u003ESi vous n'avez besoin que d'un espace de discussion , fonctionnant comme un mini forum (sujets\/r\u00e9ponses),  un plugin r\u00e9cent, \"StaticMiniForum\", qui fait moins de 70ko et en s'int\u00e9grant \u00e0 votre PluXml sans difficult\u00e9s est une solution. Il dispose m\u00eame d'un moteur de recherche interne.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article116\/ajouter-un-forum-a-pluxml\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"ajouter-un-forum-a-pluxml\"\n\t\t\t},\n\t\t\t\"headline\": \"Ajouter un Forum \u00e0 PluXml\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/label-gb0507ad5d_1280.jpg\",\n\t\t\t\t\"datePublished\": \"2024-12-10T00:00:00Z\",\n\t\t\t\"dateModified\": \"2025-02-11T11:59:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Plugins, forum, json\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003EChaque page statique de votre site peut devenir un espace de discussion et recevoir un mini-forum.\u003C\/p\u003E\r\n\u003Cp\u003ECes pages statiques peuvent \u00eatre  rattach\u00e9es \u00e0 un groupe et servir de cat\u00e9gorie de Forum.\u003C\/p\u003E\r\n\u003Ch3\u003ECr\u00e9ation d'un espace de discussion\u003C\/h3\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003ET\u00e9l\u00e9charger la derniere version du plugin \u003Ca href=\"https:\/\/ressources.pluxopolis.net\/banque-plugins\/index.php?plugin=StaticMiniForum&download\" title=\"archive au format ZIP du plugin, sur ressources.pluxopolis.net\"\u003EstaticMiniForum\u003C\/a\u003E \u003C\/li\u003E\r\n\u003Cli\u003EInstaller et activer le plugin\u003C\/li\u003E\r\n\u003Cli\u003EConfigurer le plugin en choisissant la ou les pages statiques qui afficheront les espaces de discussions.\u003C\/li\u003E\r\n\u003Cli\u003EAller sur la page statique o\u00f9 un mini forum est activ\u00e9 et cr\u00e9er le premier sujet\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\u003Ch3\u003EMembres et mod\u00e9rations\u003C\/h3\u003E\r\n\u003Cp\u003ED\u00e9s l'activation du plugin:\u003C\/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E Tous les utilisateurs de PluXml deviennent membre du forum\u003C\/li\u003E\r\n\u003Cli\u003E Les utilisateurs avec le statut d' Administrateur, Gestionnaire ou Mod\u00e9rateur, deviennent mod\u00e9rateurs des espaces de discussions et peuvent effacer ou \u00e9diter les sujets et r\u00e9ponses des membres.\u003C\/li\u003E\r\n\u003Cli\u003EDe nouveaux membres peuvent s'inscrire mais n'auront pas d\u2019acc\u00e8s \u00e0 la zone d'administration du site, leur profil aura le statut de \"membre\", limit\u00e9 aux interaction du forums \u003Cspan class=\"alert orange\" style=\"display:inline;padding:0 1em;\"\u003E\u003Cb\u003E!\u003C\/b\u003E D'autres plugins peuvent aussi utiliser ce niveau d\u2019accr\u00e9ditation minimale, les acc\u00e9s autoris\u00e9s \u00e0 ce niveau se cumuleront.\u003C\/span\u003E\u003C\/li\u003E\r\n\u003Cli\u003ELes membres connect\u00e9s peuvent aussit\u00f4t cr\u00e9er des sujets et r\u00e9pondre aux sujets ouverts.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Cp\u003E&Agrave; la d\u00e9sactivation du plugin, tous les profils avec le statut \"Membre\" sont d\u00e9sactiv\u00e9s\u003C\/p\u003E\r\n\u003Ch3\u003Ebase de donn\u00e9es en \"flat-file\"\u003C\/h3\u003E\r\n\u003Cp\u003ELes donn\u00e9es sont stock\u00e9es au format json et non pas au format XML comme PluXml le laisserait penser, il n'y a donc pas lieu de se connecter \u00e0 une base de donn\u00e9es.\u003C\/p\u003E\r\n\u003Cp\u003ECes ne sont pas effac\u00e9es \u00e0 la suppression du plugin, ce qui permet de faire une mise \u00e0 jour compl\u00e8te du plugin en le supprimant au pr\u00e9alable sans perdre les donn\u00e9es des forums ni les profils \"membre\". Chaque forum reste n\u00e9anmoins rattach\u00e9s \u00e0 un seul num\u00e9ro de page statiques.\u003C\/p\u003E",
            "tags": "Plugins, forum, json",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/label-gb0507ad5d_1280.jpg",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0116",
            "author": "002",
            "categorie": "001,013",
            "url": "ajouter-un-forum-a-pluxml",
            "date": "202412100000",
            "nb_com": 0,
            "date_creation": "202412092001",
            "date_update": "202502111159"
        },
        {
            "filename": ".\/data\/articles\/0115.013.002.202412071728.limiter-le-nombre-de-connexions-simultanees-dun-visiteur.xml",
            "title": "Limiter le nombre de connexions simultan\u00e9es d'un visiteur.",
            "allow_com": "0",
            "template": "article.php",
            "chapo": "\u003Cp\u003EM\u00eame si votre site re\u00e7oit peu de visiteur, il peut arriver qu'un robot demande une multitude de pages en quelques secondes.\u003C\/p\u003E\r\n\u003Cp\u003EC'est un malotru qui peut mettre \u00e0 mal votre site durant sa visite. Les robots d'indexation en g\u00e9n\u00e9ral n'ont pas ce comportement. et un visiteur humain ne se connecte pas \u00e0 plusieurs page simultan\u00e9ment non plus. \u003C\/p\u003E\r\n\u003Cp\u003EUn petit plugin peut momentan\u00e9ment mettre votre PluXml \u00e0 l'abri de l'assaut d'un malotru en lui renvoyant une simple page sans mettre en branle le c\u0153ur de PluXml.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article115\/limiter-le-nombre-de-connexions-simultanees-dun-visiteur\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"limiter-le-nombre-de-connexions-simultanees-dun-visiteur\"\n\t\t\t},\n\t\t\t\"headline\": \"Limiter le nombre de connexions simultan\u00e9es d'un visiteur.\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/pexels-photo-256302.jpeg\",\n\t\t\t\t\"datePublished\": \"2024-12-07T17:28:00Z\",\n\t\t\t\"dateModified\": \"2025-02-26T04:31:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Plugins, connexion\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch3\u003EQuel est ce plugin?\u003C\/h3\u003E\r\n\u003Cp\u003EC'est \u003Cem\u003EOups\u003C\/em\u003E\u003C\/p\u003E\r\n\u003Cp\u003EVous trouverez son archive ici : \u003Ca href=\"https:\/\/ressources.pluxopolis.net\/banque-plugins\/plugins\/oups.0.2.zip\" \u003Eoups.zip\u003C\/a\u003E\u003C\/p\u003E\r\n\u003Ch3\u003EQue fait-il?\u003C\/h3\u003E\r\n\u003Cp\u003EA chaque demande de page d'un visiteur:\u003C\/p\u003E\r\n\u003Cul\u003E \r\n\u003Cli\u003EIl enregistre en session l'heure \u00e0 la seconde pr\u00e9s\u003C\/li\u003E\r\n\u003Cli\u003EV\u00e9rifie le nombre de connexion sur cette seconde\u003C\/li\u003E\r\n\u003Cli\u003EStoppe le chargement de pluXml si le nombre de connexion d\u00e9passe la valeur configur\u00e9e(6 par d\u00e9faut)\u003C\/p\u003E\r\n\u003Cli\u003EV\u00e9rifie si il y a un interdiction de connexion en cours (dur\u00e9e de 10 secondes par d\u00e9faut)\u003C\/li\u003E\r\n\u003C\/ul\u003E",
            "tags": "Plugins, connexion",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/pexels-photo-256302.jpeg",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0115",
            "author": "002",
            "categorie": "013",
            "url": "limiter-le-nombre-de-connexions-simultanees-dun-visiteur",
            "date": "202412071728",
            "nb_com": 2,
            "date_creation": "202412071728",
            "date_update": "202502260431"
        },
        {
            "filename": ".\/data\/articles\/0114.007,010.002.202411301801.privatiser-pluxml-sans-plugins.xml",
            "title": "Privatiser PluXml sans plugins",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003EIl existe plusieurs plugins destin\u00e9 \u00e0 privatiser en tout ou partie PluXml, mais saviez-vous que vous pouviez le faire depuis votre th\u00e8me?\u003C\/p\u003E\r\n\u003Cp\u003E3 fichiers viennent r\u00e9cemment d'\u00eatre propos\u00e9s sur le forum\u003C\/p\u003E\r\n\u003Cp\u003E3 pour 3 options de privatisations.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article114\/privatiser-pluxml-sans-plugins\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"privatiser-pluxml-sans-plugins\"\n\t\t\t},\n\t\t\t\"headline\": \"Privatiser PluXml sans plugins\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/red-and-white-no-smoking-sign.jpg\",\n\t\t\t\t\"datePublished\": \"2024-11-30T18:01:00Z\",\n\t\t\t\"dateModified\": \"2024-12-10T00:44:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Th\u00e8me, Scripts, Tuto, Template\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch3\u003EQuelles sont ces options et comment les mettre en \u0153uvre.\u003C\/h3\u003E\r\n\u003Cp\u003E\u003Cu\u003ELe th\u00e8me par d\u00e9faut est pris en exemple.\u003C\/u\u003E\u003C\/p\u003E\r\n\u003Cp\u003ESans plugins, ni fichier \u003Ccode\u003E.httpassword\u003C\/code\u003E qui ne fonctionnerait qu'avec Apache, il y a les fichiers du th\u00e8mes pour int\u00e9grer cela \u00e0 PluXml.\u003C\/p\u003E\r\n\u003Cp\u003EL'id\u00e9e est de seulement cach\u00e9 les contenus des pages et pas l'interface du site. les options: \u003C\/p\u003E\r\n\u003Col\u003E\r\n  \u003Cli\u003Etout, \u003C\/li\u003E\r\n  \u003Cli\u003Etout sauf la page statique en accueil,\u003C\/li\u003E\r\n  \u003Cli\u003Etout et la pr\u00e9sence d'une page statique en accueil., \u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\u003Cp\u003EChacune de ses options sont \u00e0 cod\u00e9es dans 3 fichiers diff\u00e9rent que l'on va ajouter au th\u00e8me\u003C\/p\u003E\r\n\u003Cp\u003E\u003Cstrong\u003EATTENTION\u003C\/strong\u003E Ces options ne sont pas \u00e0 utiliser ensemble , c'est l'une ou une autre.\u003C\/p\u003E\r\n\u003Cp\u003EUne fois le fichier d\u00e9pos\u00e9 dans votre th\u00e8me, il faut le lier \u00e0 votre th\u00e8me \u00e0 partir du fichier \u003Cb\u003Eheader.php\u003C\/b\u003E. \u003C\/p\u003E\r\n\u003Ch4\u003E100% privatis\u00e9 \u003C\/h4\u003E\r\n\u003Cp\u003ECopier le fichier \u003Ca href=\"https:\/\/raw.githubusercontent.com\/gcyrillus\/scripts-pour-pluxml\/refs\/heads\/main\/is_private.php\" target=\"_blank\"\u003Eis_private.php\u003C\/a\u003E et d\u00e9poser le dans le r\u00e9pertoire du th\u00e8me avec les autres fichiers template.\u003C\/p\u003E\r\n\u003Cp\u003EEditer le fichier header.php du theme par d\u00e9faut et ajouter la ligne suivante : \u003C\/p\u003E\r\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E&lt;?php   include __DIR__.'\/is_private.php'; ?&gt;\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Ch4\u003ESans privatiser la page static d'accueil\u003C\/h4\u003E\r\n\u003Cp\u003ECette option est similaire \u00e0 la pr\u00e9c\u00e9dente si vous n'avez pas configur\u00e9 de page statique en accueil\u003C\/p\u003E\r\n\u003Cp\u003ESi vous avez configur\u00e9 une page statique en accueil, alors c'est la seule dont le contenu sera publi\u00e9 si vous n'etes pas connect\u00e9.\u003C\/p\u003E\r\n\u003Cp\u003ECopier le fichier \u003Ca href=\"https:\/\/github.com\/gcyrillus\/scripts-pour-pluxml\/raw\/refs\/heads\/main\/is_homeStatic_public.php\" target=\"_blank\"\u003Eis_homeStatic_public.php\u003C\/a\u003E et deposer le dans le repertoire du th\u00e8me avec les autres fichiers template.\u003C\/p\u003E\r\n\u003Cp\u003EEditer le fichier header.php du theme par d\u00e9faut et ajouter la ligne suivante : \u003C\/p\u003E\r\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E&lt;?php   include __DIR__.'\/is_homeStatic_public.php'; ?&gt;\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Ch4\u003E100% privatiser en retirant la page d'accueil\u003C\/h4\u003E\r\n\u003Cp\u003ECette troisi\u00e8me option privatise toute les pages et fait disparaitre la page statique d'accueil si vous en aviez configur\u00e9e une. Elle ne r\u00e9apparait qu'une fois connect\u00e9.\u003C\/p\u003E\r\n\u003Cp\u003ECopier le fichier \u003Ca href=\"https:\/\/github.com\/gcyrillus\/scripts-pour-pluxml\/raw\/refs\/heads\/main\/is_homeStatic_private.php\" target=\"_blank\"\u003Eis_homeStatic_private.php\u003C\/a\u003E et deposer le dans le repertoire du th\u00e8me avec les autres fichiers template.\u003C\/p\u003E\r\n\u003Cp\u003EEditer le fichier header.php du theme par d\u00e9faut et ajouter la ligne suivante : \u003C\/p\u003E\r\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E&lt;?php   include __DIR__.'\/is_homeStatic_private.php'; ?&gt;\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Ch4\u003ED'autre options ?\u003C\/h4\u003E\r\n\u003Cp\u003ECes trois exemples similaires vous montre qu'il suffit d''inclure une \u003Csmall style=\"font-size:8pt\"\u003E(ou plusieurs)\u003C\/small\u003E condition dans un fichier du th\u00e8me pour modifier ou remplacer ce qui sera afficher derri\u00e8re.\u003C\/p\u003E\r\n\u003Ch4\u003ELe principe\u003C\/h4\u003E\r\n\u003Col\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003E Inclure une condition en fin du fichier header.php par le biais d'un autre fichier.\u003C\/p\u003E\r\n    \u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E&lt;?php   include __DIR__.'\/maCondition.php'; ?&gt;\u003C\/code\u003E\u003C\/pre\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003EAvec la condition dans le fichier qui coupera cours au chargement des ressources initiales demand\u00e9es\u003C\/p\u003E\r\n    \u003Cpre\u003EmaCondition.php\r\n\u003Ccode class=\"language-php\"\u003E&lt;?php  \r\n    if( \/* la condition *\/ ) {\r\n        # on affiche ce que l'on veut ici en reprenant la structure de base du corps de la page\r\necho '\t&lt;main class=\"main\"\u003E\t\t\r\n\t\t&lt;div class=\"container\"\u003E\t\t\t\r\n\t\t\t&lt;div class=\"grid\"\u003E\t\t\t\t\r\n\t\t\t\t&lt;div class=\"content col sml-12\"\u003E\r\n\t\t\t\t\t&lt;article class=\"article\" \u003E';\r\n        # execute le script soumis \u00e0 condition et affiche les r\u00e9sultats\r\n\r\n        # on referme le corps de la page\r\n        echo'\t\t\t\t\t&lt;\/article\u003E\r\n\t\t\t\t&lt;\/div\u003E\r\n\t\t\t&lt;\/div\u003E\r\n\t\t&lt;\/div\u003E\r\n\t&lt;\/main\u003E';\r\n\r\n         # on injecte le pied de page \r\n\t\tinclude __DIR__.'\/footer.php'; \r\n\t\texit; \/\/ la suite ne doit pas \u00eatre interpr\u00e9t\u00e9, Le script s\u2019arr\u00eate ICI !\r\n   }\r\n   # derri\u00e8re , si la condition n'est pas remplie, le script continue \u00e0 s\u2019ex\u00e9cuter normalement et les fichiers du template continue \u00e0 se charger\r\n ?&gt;\u003C\/code\u003E\u003C\/pre\u003E\r\n  \u003C\/li\u003E\r\n  \u003Cli\u003E\r\n    \u003Cp\u003EOu qui ajoute quelque chose\u003C\/p\u003E\r\n\r\n    \u003Cp\u003EAvec la condition dans le fichier qui coupera cours au chargement des ressources initiales demand\u00e9es\u003C\/p\u003E\r\n    \u003Cpre\u003EmaCondition.php\r\n\u003Ccode class=\"language-php\"\u003E&lt;?php  \r\n    if( \/* la condition *\/ ) {\r\n        # on affiche ce que l'on veut ici \r\n\r\n        # execute le script soumis \u00e0 condition et affiche les r\u00e9sultats\r\n   }\r\n   # derri\u00e8re la condition, le script continue \u00e0 s\u2019ex\u00e9cuter normalement et les fichiers du template continue \u00e0 se charger\r\n ?&gt;\u003C\/code\u003E\u003C\/pre\u003E\r\n  \u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\u003Ch3\u003EConclusion\u003C\/h3\u003E\r\n\u003Cp\u003EEn passant par le th\u00e8me, il est possible d'ajout\u00e9 de nombreuses fonctionnalit\u00e9 \u00e0 PluXml sans devoir touch\u00e9 au coeur du CMS ni d\u00e9velloper des plugins sp\u00e9cifique.\u003C\/p\u003E",
            "tags": "Th\u00e8me, Scripts, Tuto, Template",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/red-and-white-no-smoking-sign.jpg",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0114",
            "author": "002",
            "categorie": "007,010",
            "url": "privatiser-pluxml-sans-plugins",
            "date": "202411301801",
            "nb_com": 8,
            "date_creation": "202411301801",
            "date_update": "202412100044"
        },
        {
            "filename": ".\/data\/articles\/0113.001,004,013.002.202411222148.install-pluxml-et-plugins-dun-clique.xml",
            "title": "Install PluXml et plugins d'un clique.",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Ch3\u003Eservice en un \u00e9clair\u003C\/h3\u003E\r\n\u003Cp\u003EVoici un script renversant tellement qu'il facilite l'installation du dernier PluXml ainsi q'une s\u00e9lection aux choix de quelques plugins en ligne. C'est \u003Cb style=\"color:#6495ED\"\u003Eremote_install\u003C\/b\u003E.\u003C\/p\u003E\r\n\u003Cp\u003ECe n'est pas le premier script qui permet d'installer en un \u00e9clair un PluXml  en local ou en ligne,mais celui-ci vous permet aussi de s\u00e9lectionner quelques plugins choisis parmi + de 380 actuellement recens\u00e9s.\u003C\/p\u003E\r\n\u003Cp\u003ELe script s'occupe d'aller chercher l'archive de PluXml et celles des plugins que vous avez s\u00e9lectionn\u00e9 pour vous les pr\u00e9installer . Ils ne vous reste plus qu'a finaliser l'installation de votre CMS puis d'activer les plugins choisis.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article113\/install-pluxml-et-plugins-dun-clique\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"install-pluxml-et-plugins-dun-clique\"\n\t\t\t},\n\t\t\t\"headline\": \"Install PluXml et plugins d'un clique.\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/pexels\/pexels-photo-1630344.jpeg\",\n\t\t\t\t\"datePublished\": \"2024-11-22T21:48:00Z\",\n\t\t\t\"dateModified\": \"2024-12-01T23:36:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"install, Astuce, Cr\u00e9ation, outils, Plugins, PluXml, T\u00e9l\u00e9chargements\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch3\u003EO\u00f9 le trouver\u003C\/h3\u003E\r\n\u003Cp\u003ELe script est t\u00e9l\u00e9chargeable ici \u003Ca href=\"data\/documents\/remote_install.zip\"\u003Eremote_install.zip\u003C\/a\u003E.\u003C\/p\u003E\r\n\u003Ch3\u003EInstallation\u003C\/h3\u003E\r\n\u003Cp\u003EIl n'y a pas de v\u00e9ritable installation , il faut ouvrir l'archive et d\u00e9poser son unique fichier \u00e0 la racine de votre h\u00e9bergement.\u003C\/p\u003E\r\n\u003Ch3\u003EUtilisation\u003C\/h3\u003E\r\n\u003Cp\u003EAcc\u00e9der au fichier avec votre navigateur \u00e0 l'adresse de votre site o\u00f9 se trouve le script \u003Cb style=\"color:#6495ED\"\u003Eremote_install.php\u003C\/b\u003E, ce qui donne une adresse du type : \u003Ca href=\"#\" onclick=\"return false\"\u003Ehttps:\/\/votresite.com\/remote_install.php\u003C\/a\u003E.\r\n\u003Cfigure style=\"text-align: center;\"\u003E\r\n \u003Cimg src=\"data\/medias\/images-site\/remote_install.jpg\" title=\"interface d'installation en ligne\"\u003E\r\n\u003Cfigcaption\u003EAper\u00e7u interface\u003C\/figcaption\u003E\r\n\u003C\/figure\u003E\r\n\u003Cp\u003ES\u00e9lectionner ce que vous voulez installer en cochant les boites\u003C\/p\u003E\r\n\u003Cp\u003EPour installer les plugins, il est pr\u00e9f\u00e9rable d'installer aussi PluXml si ce n'est d\u00e9j\u00e0 fait.\u003C\/p\u003E\r\n\u003Cp\u003ELa description des plugins est affichable en cliquent sur le point d'interrogation.\u003C\/p\u003E\r\n\r\n\u003Cfigure style=\"text-align: center;\"\u003E\r\n \u003Cimg src=\"data\/medias\/images-site\/remote_insfos.jpg\" title=\"interface d'installation en ligne\"\u003E\r\n\u003Cfigcaption\u003EAffichage description plugin\u003C\/figcaption\u003E\r\n\u003C\/figure\u003E\r\n\r\n\u003Ch3\u003EPour finir\u003C\/h3\u003E\r\n\u003Cp\u003ELe temps de lire cette article est \u00e0 peu pr\u00e9s le temps qu'il va vous falloir pour;\u003C\/p\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003E t\u00e9l\u00e9charger le script\u003C\/li\u003E\r\n\u003Cli\u003Edezipper l'archive\u003C\/li\u003E\r\n\u003Cli\u003Ed\u00e9poser le fichier \u00e0 la racine de votre site\u003C\/li\u003E\r\n\u003Cli\u003Eouvrir la page \u003Ca href=\"#\" onclick=\"return false\"\u003Ehttps:\/\/votresite.com\/remote_install.php\u003C\/a\u003E\u003C\/li\u003E\r\n\u003Cli\u003ECocher ce que vous voulez installer\u003C\/li\u003E\r\n\u003Cli\u003EFinaliser l'installation de Pluxml avec vos nom, mot de passe fraichement cr\u00e9\u00e8 et adresse mail .\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\u003Ch3\u003EModifier les choix de plugins\u003C\/h3\u003E\r\n\u003Cp\u003EEn \u00e9ditant le script et le contenu de la variable \u003Ccode class=\"language-php\"\u003E$selectedPlugins\u003C\/code\u003E, il est possible de modifier cette liste.\u003C\/p\u003E\r\n\u003Cp\u003Echaque nom de plugin doit \u00eatre s\u00e9parer du pr\u00e9c\u00e9dent par une virgule et \u00eatre \u00e9crit \u00e0 la lettre pr\u00e9s en respectant la case.Le script ira le chercher dans la liste des plugins disponibles dans la \u003Ca href=\"plugins.html\"target=\"_blank\"\u003Ebanque\u003C\/a\u003E et s\u00e9lectionnera la derni\u00e8re version disponible.\u003C\/p\u003E\r\n\u003Ch3\u003EAutre chose\u003C\/h3\u003E\r\n\u003Cp\u003E\u003Cdel\u003EIl manque encore la possibilit\u00e9 de s\u00e9lectionner un th\u00e8me \u00e0 l'installation ...\u003C\/del\u003E \u003C\/p\u003E\r\n\u003Cp\u003E\u003Cins datetime=\"2024-11-26\"\u003EScript avec l'option d'ajouter un th\u00e8me disponible sur pluxthemes.com :  \u003Ca href=\"data\/documents\/remote_install.V.2.zip\"\u003Eremote_install.V.2.zip\u003C\/a\u003E \u003Csmall style=\"font-size:.7em\"\u003Eenviron 20 th\u00e8mes\u003C\/small\u003E\u003C\/ins\u003E\u003C\/p\u003E\r\n\u003Cp\u003E\u003C\/p\u003E\r\n\u003Cp\u003EN\u2019h\u00e9siter pas \u00e0 faire vos retour d'exp\u00e9rience et propositions d'am\u00e9liorations.\u003C\/p\u003E\r\n\u003Cp\u003ELa liste de plugins propos\u00e9 est volontairement r\u00e9duites en nombre et  fonctionnant correctement sur la derni\u00e8re version 5.8.16 de PluXml et PhP \u003E 8.x\u003C\/p\u003E\r\n\u003Ch3\u003EEt \u00e0 partir d'une page statique?\u003C\/h3\u003E\r\n\u003Cp\u003EC'est possible aussi\u003C\/p\u003E\r\n\u003Cp\u003ELe script est d\u00e9clin\u00e9 en version pour une page statique qui ne sera accessible qu'aux administrateur du site.\u003C\/p\u003E\r\n\u003Cp\u003ELe script \u00e0 inclure est \u00e0 sur github \u003Ca href=\"https:\/\/raw.githubusercontent.com\/gcyrillus\/scripts-pour-pluxml\/refs\/heads\/main\/static-remote-install.php\" target=\"_blank\"\u003Estatic-remote-install.php\u003C\/a\u003E. Copier\/coller le dans votre page statique depuis l'administration de Pluxml, les antislashs sont d\u00e9j\u00e0 \u00e9chapp\u00e9s, vous n'avez pas \u00e0 vous en pr\u00e9occuper. \u003C\/p\u003E\r\n\u003Cp\u003EIl faut au pr\u00e9alable avoir un PluXml install\u00e9!\u003C\/p\u003E\r\n\u003Ch4\u003EQuel int\u00e9r\u00eat dans une page statique ?\u003C\/h4\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003EIl pourra mettre PluXml \u00e0 jour si la version affich\u00e9e diff\u00e8re de celle que vous avez. encochant la case \"Installer PluXml  \r\nVersion X.X.X. , ou retirer les modification des fichiers internes de PluXml si la version est la m\u00eame. \r\n\u003Cstrong style=\"display:block;color:red;font-variant:smallcaps\"\u003EDans tout les cas, si il y a un th\u00e8me par d\u00e9faut modifi\u00e9 par vos soin, il sera remplac\u00e9 par l'original\u003C\/strong\u003E\u003C\/li\u003E\r\n\u003Cli\u003EVous pouvez ajouter un th\u00e8me de la liste ou seulement les pr\u00e9visualiser dans une seconde fen\u00eatre.\u003C\/li\u003E\r\n\u003Cli\u003EVous pourrez aussi installer, ou r\u00e9installer, les derni\u00e8res versions des plugins de la liste.\u003C\/li\u003E\r\n\u003C\/ol\u003E",
            "tags": "install, Astuce, Cr\u00e9ation, outils, Plugins, PluXml, T\u00e9l\u00e9chargements",
            "meta_description": "",
            "meta_keywords": "install, Astuce, Cr\u00e9ation, outils, Plugins, PluXml, T\u00e9l\u00e9chargements",
            "title_htmltag": "installation automatiser de PluXml et plugins",
            "thumbnail": "data\/medias\/pexels\/pexels-photo-1630344.jpeg",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0113",
            "author": "002",
            "categorie": "001,004,013",
            "url": "install-pluxml-et-plugins-dun-clique",
            "date": "202411222148",
            "nb_com": 0,
            "date_creation": "202411222148",
            "date_update": "202412012336"
        },
        {
            "filename": ".\/data\/articles\/0112.013.002.202409262355.construire-un-plugin-avec-thecrock.xml",
            "title": "Construire un plugin avec theCrock",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003EDans le forum de PluXml , un utilisateur connaissant bien le CMS, \u00e0 demander un peu d'aide pour construire un plugin pour ajouter un champ aux articles, afin de publier des dates \u00e9v\u00e9nementielles. Il a tenter theCrock pour se lancer dans la cr\u00e9ation d'un plugin, sans succ\u00e8s.\u003C\/p\u003E\r\n\u003Cp\u003EDes plugins proche de l'id\u00e9e que l'on peut s'en faire existent, \u003Ca href=\"https:\/\/ressources.pluxopolis.net\/banque-plugins\/plugins\/kzChamPlus-2_7_0.zip\"\u003EKzChamPlus\u003C\/a\u003E et \u003Ca href=\"https:\/\/ressources.pluxopolis.net\/banque-plugins\/plugins\/plnCalendrier-fork.zip\"\u003EplnCalendrier\u003C\/a\u003E par exemples.\u003C\/p\u003E\u003Cp\u003EMais aucun des plugins disponibles ne convenait, l'un prend un temps pour apprendre \u00e0 s'en servir et l'autre ne correspondait pas plus au besoin.\u003C\/p\u003E\r\n\u003Cp\u003EBien entendu, le forum lui \u00e0 r\u00e9pondu et deux plugins ont vu le jour : \u003Ca href=\"https:\/\/kazimentou.fr\/repo\/index.php?plugin=kzEvents&download\"\u003EkzEvents de Bazooka07\u003C\/a\u003E et un exemple de plugin produit avec le \u003Ca href=\"https:\/\/pluxopolis.net\/thecrock\" target=\"_blank\"\u003E\"chaudron \u00e0 plugins\"\u003C\/a\u003E : \u003Ca href=\"https:\/\/ressources.pluxopolis.net\/banque-plugins\/index.php?plugin=addEvents&download\"\u003EaddEvents\u003C\/a\u003E. C'est ce second plugin que l'on va d\u00e9cortiquer un peu de son squelette et regarder comment on peut commencer \u00e0 le construire.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article112\/construire-un-plugin-avec-thecrock\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"construire-un-plugin-avec-thecrock\"\n\t\t\t},\n\t\t\t\"headline\": \"Construire un plugin avec theCrock\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/1725803655-a-computer-on-a-desk.jpg\",\n\t\t\t\t\"datePublished\": \"2024-09-26T23:55:00Z\",\n\t\t\t\"dateModified\": \"2024-10-05T22:19:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t}\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003C\/div\u003E\r\n\u003Cdiv class=\"stickyArtAside\"\u003E\r\n\t\u003Cnav\u003ERessources: \u003Ca href=\"https:\/\/wiki.pluxml.org\/docs\/develop\/plugins\/hooks.html\" target=\"_blank\"\u003EDocumentation Officiel\u003C\/a\u003E - \u003Ca href=\"\" target=\"_blank\"\u003ELe Chaudron\u003C\/a\u003E - \u003Ca href=\"https:\/\/forum.pluxml.org\/\" target=\"_blank\"\u003EForum Officiel\u003C\/a\u003E.\u003C\/nav\u003E\r\n\t\u003Cstyle\u003E\r\n\t\t.stickyArtAside {\r\n\t\tbackground:#DBE9E8;\r\n\t\tmargin:-1em 1em 1em;\r\n\t\tpadding:3px 1em;\r\n\t\tborder-radius:5px;\r\n\t\tbox-shadow:3px 3px 3px;\r\n\t\tposition:sticky;\r\n\t\tz-index:10000;\r\n\t\ttop:0;\r\n\t\t}\r\n\t\tp:last-of-type:has(.symbol) {\r\n\t\tmargin: 2em 0;\r\n\t\tbackground: #E0EAE5;\r\n\t\tpadding: 0.5em 0;\r\n\t\tbox-shadow: 0 0 3px #E0EAE5;\r\n\t\t}\r\n\t\tdl.artGrid {\r\n\t\tdisplay:grid;\r\n\t\tgrid-template-columns:auto 1fr;\r\n\t\tgap:0px ;\r\n\t\tpadding:0;\r\n\t\tmargin-bottom:1em;\r\n\t\t}\r\n\t\t.artGrid dd {\r\n\t\tdisplay:grid;\r\n\t\tgrid-template-columns:1fr auto;\r\n\t\t}\r\n\t\t.artGrid, .artGrid :is(dt,dd) {\r\n\t\tborder:1px solid;\r\n\t\tpadding:3px;\r\n\t\t}\r\n\t\t#top .artGrid :is(dl dd b.alert){\r\n\t\tmin-width:6.75em;\r\n\t\ttext-align:center;\r\n\t\tmargin:auto 0!important;\r\n\t\tpadding:2px 0 4px!important;\r\n\t\tfont-weight:bold;\r\n\t\tbox-shadow:2px 2px 3px silver\r\n\t\t}\r\n\t\u003C\/style\u003E\u003C\/div\u003E\r\n\t\u003Cdiv class=\"blog\"\u003E\r\n\t\t\u003Cp\u003E\u003Ca href=\"https:\/\/forum.pluxml.org\/profile\/kamea\" title=\"profil de Kamea sur le forum de PluXml\" target=_blank\"\u003EKamea\u003C\/a\u003E, l'auteur du sujet et auteur de th\u00e8mes \u003Csup\u003Eex: \u003Ca href=\"https:\/\/pluxthemes.com\/equinoxe\" target=\"_blank\"\u003E\u00e9quinoxe\u003C\/a\u003E\u003C\/sup\u003E \u00e0 tent\u00e9 de s'aider du chaudron \u00e0 plugins pour creer son plugin , sans succ\u00e8s.\u003C\/p\u003E\r\n\t\t\r\n\t\t\u003Ch3\u003EAutopsie\u003C\/h3\u003E\r\n\t\t\u003Cp\u003EA l'aide du chaudron \u00e0 plugins, il est possible de passer rapidement \u00e0 l'essentiel sans avoir \u00e0 d\u00e9boguer l'installation et l'activation du plugin.\u003C\/p\u003E\r\n\t\t\u003Cp\u003EIl vous est servi un zip avec en garniture:\u003C\/p\u003E\r\n\t\t\u003Cul\u003E\r\n\t\t\t\u003Cli class=\"alert red\" style=\"margin:1px 0 0 -1em;padding:2px 1em;display:flex;justify-content:space-between\"\u003ELe fichier infos.xml \u003Cb\u003Eobligatoire\u003C\/b\u003E\u003C\/li\u003E\r\n\t\t\t\u003Cli class=\"alert red\" style=\"margin:1px 0 0 -1em;padding:2px 1em;display:flex;justify-content:space-between\"\u003ELe r\u00e9pertoire du plugin  \u003Cb\u003Eobligatoire\u003C\/b\u003E\u003C\/li\u003E\r\n\t\t\t\u003Cli class=\"alert red\" style=\"margin:1px 0 0 -1em;padding:2px 1em;display:flex;justify-content:space-between\"\u003ELe fichier de CLASS du plugin  \u003Cb\u003Eobligatoire\u003C\/b\u003E\u003C\/li\u003E\r\n\t\t\t\u003Cli\u003E Le corps des fonctions\u003C\/li\u003E\r\n\t\t\t\u003Cli\u003ELes hooks choisis, parmi + de 170 diss\u00e9min\u00e9 dans PluXml.\u003C\/li\u003E\r\n\t\t\t\u003Cli\u003EDes variables en exemples ou depuis le formulaire, initialis\u00e9es avec des valeurs par d\u00e9faut.\u003C\/li\u003E\r\n\t\t\t\u003Cli\u003EUne  page de configuration\u003C\/li\u003E\r\n\t\t\t\u003Cli\u003EUne page d'administration\u003C\/li\u003E\r\n\t\t\t\u003Cli\u003El\u2019\u00e9bauche des fichiers d'aides et de langues\u003C\/li\u003E\r\n\t\t\t\u003Cli\u003ELa compatibilit\u00e9 avec le plugin plxMyMultilingue\u003C\/li\u003E\r\n\t\t\t\u003Cli\u003EUn module d'aide \u00e0 la configuration\u003C\/li\u003E\r\n\t\t\t\u003Cli\u003EFichiers de style et JavaScript\u003C\/li\u003E\r\n\t\t\t\u003Cli\u003EUne arborescence de r\u00e9pertoire\u003C\/li\u003E\r\n\t\t\t\u003Cli\u003Everser un logo\u003C\/li\u003E\r\n\t\t\u003C\/ul\u003E\r\n\t\t\u003Cp\u003E...  tout cela en quelques cliques au travers d'un formulaire pour se faire livrer un zip pr\u00eat  \u00e0 \u00eatre d\u00e9charger dans le r\u00e9pertoire \u003Cb\u003Eplugins\u003C\/b\u003E. Vous pouvez d\u00e9j\u00e0 l'activer.\u003C\/p\u003E\r\n\t\t\u003Cp\u003ESelon les options prises, vous aurez d\u00e9j\u00e0 acc\u00e8s aux page d'administration, configuration, statique , au wizard et la possibilit\u00e9 d'enregistrer vos variables de configurations ...\u003C\/p\u003E\r\n\t\t\r\n\t\t\u003Ch3\u003EPar o\u00f9 commencer?\u003C\/h3\u003E\r\n\t\t\u003Cp\u003EFaire une diff\u00e9rence entre un hook et une fonction: \u003C\/p\u003E\r\n\t\t\u003Cdl class=\"artGrid\"\u003E\r\n\t\t\t\u003Cdt\u003ELe hook\u003C\/dt\u003E\u003Cdd\u003E sert \u00e0 injecter du code dans le code de PluXml\u003C\/dd\u003E\r\n\t\t\t\u003Cdt\u003ELa fonction\u003C\/dt\u003E\u003Cdd\u003E est une fonction interne au Plugin\u003C\/dd\u003E\r\n\t\t\u003C\/dl\u003E\r\n\t\t\u003Cp\u003EPour le moment il n'y a que le squelette et nous allons chercher ce qu'il lui manque pour l'\u00e9toffer.\u003C\/p\u003E\r\n\t\t\u003Cp\u003EPour construire notre squelette,une fois la description faite et les pages choisies, il nous faut d\u00e9terminer les hook dont nous aurons besoins pour entrer dans le code de PluXml. Le formulaire les regroupes par famille et emplacement.\u003C\/p\u003E\r\n\t\t\u003Cp\u003ELes hooks n\u00e9cessaires aux options choisies seront int\u00e9gr\u00e9es et si ce hook vous est aussi utile, vous pouvez y ajouter votre propre code. \u003C\/p\u003E\r\n\t\t\u003Cp\u003EVous pouvez aussi ajouter vos propre fonctions pour a\u00e9rer et  faciliter le maintient de votre code.\u003C\/p\u003E\r\n\t\t\r\n\t\t\u003Cp\u003ELe premier hook que l'on va rechercher est celui qui nous permet de s'accrocher \u00e0 la page d\u2019\u00e9dition des articles.\u003C\/p\u003E\r\n\t\t\u003Cp\u003EVous trouverez leur liste dans la \u003Ca href=\"https:\/\/wiki.pluxml.org\/docs\/develop\/plugins\/hooks.html\" target=\"_blank\" title=\"liste des hooks\"\u003Edoc\u003C\/a\u003E,  il peuvent \u00eatre s\u00e9lectionn\u00e9s dans le formulaire.\u003C\/p\u003E\r\n\t\t\u003Cp\u003ERassurez-vous, les noms des hook sont plut\u00f4t \u00e9loquent et on en trouve deux facilement :\u003C\/p\u003E\r\n\t\t\u003Col\u003E\r\n\t\t\t\u003Cli\u003EAdminArticleSidebar\u003C\/li\u003E\r\n\t\t\t\u003Cli\u003EAdminArticleTop\u003C\/li\u003E\r\n\t\t\u003C\/ol\u003E\r\n\t\t\u003Cp\u003EEn les recherchant dans le fichier \u003Ccode style=\"font-weight:bold\"\u003E\/core\/admin\/article.php\u003C\/code\u003E on les trouve dans une zone de texte de la page. On ne peut donc y injecter \r\n\t\t\tque du texte , pour cela on injecte une balise  \r\n\t\t\tPHP fermante \u003Ccode style=\"color:red\"\u003E ?\u003E \u003C\/code\u003E \u003Cb style=\"font-wheight:bold\"\u003Epuis\u003C\/b\u003E une balise PHP ouvrante \u003Ccode style=\"color:red\"\u003E &lt;?php \u003C\/code\u003E. entre ces \r\n\t\t\tdeux balise, nous pouvons maintenant injecter du texte et \r\n\t\tdu code qui ne sera pas interpr\u00e9t\u00e9 dans le plugin, mais dans le code de la page \u003Cb style=\"font-wheight:bold\"\u003Earticle.php\u003C\/b\u003E. \u003C\/p\u003E\r\n\t\t\u003Cp\u003EPrenons le Hook :\u003C\/p\u003E\r\n\t\t\u003Cpre\u003E\u003Ccode\u003E\t\t\/** \r\n\t\t\t* M\u00e9thode AdminArticleTop\r\n\t\t\t* \r\n\t\t\t* Descrition\t:\r\n\t\t\t* @author\t\t: TheCrok\r\n\t\t\t* \r\n\t\t\t**\/\r\n\t\t\tpublic function AdminArticleTop() {\r\n\t\t\t\/\/ ici vos scripts\r\n\t\t}\u003C\/code\u003E\u003C\/pre\u003E\r\n\t\t\u003Cp\u003EEt en ins\u00e9rant dans ce hook:\u003C\/p\u003E \u003Cpre\u003E\u003Ccode class=\"laguage php\"\u003E?\u003E&lt;label\u003Elabel&lt;\/label\u003E&lt;input\u003E&lt;?php\u003C\/code\u003E\u003C\/pre\u003E\r\n\t\t\u003Cp\u003ECe code affichera dans la page d\u2019\u00e9dition d'un article : \u003Clabel style=\"display:inline;float:none;\"\u003Elabel\u003C\/label\u003E\u003Cinput\u003E, au dessus du champ titre.\u003C\/p\u003E\r\n\t\t\u003Cp\u003EBon, on \u00e0 \u00e9crit une seule ligne de HTML dans notre squelette et on \u00e0 d\u00e9j\u00e0 un champ suppl\u00e9mentaire qui s'affiche, c'est encourageant\u003C\/p\u003E\r\n\t\t\u003Ch4\u003EC'est parti.\u003C\/h4\u003E\r\n\t\t\u003Cp\u003EMaintenant qu'un nouveau champ s'affiche, il nous faut mieux le d\u00e9finir et sauvegarder ses donn\u00e9es, c'est une date que l'on veut sauvegarder\u003C\/p\u003E\r\n\t\t\u003Cp\u003EComme nous avons une page de configuration, vous verrez que dans le code de celle-ci, une fonction interne \u00e0 PluXml pour cr\u00e9er des inputs, nous allons l'utilis\u00e9, \r\n\t\ten injectant du code PHP.\u003C\/p\u003E\r\n\t\t\u003Cpre\u003E\u003Ccode\u003E?\u003E&lt;label for=\"id_dateEvent\"\u003EDate \u00c9v\u00e9nement&nbsp;:&lt;\/label\u003E&lt;?php\r\n\t\t\techo '&lt;?php\r\n\t\t\tplxUtils::printInput('dateEvent', 'valeur'  , 'date'); ?\u003E';\r\n\t\t\t?\u003E\r\n\t\t\t&lt;?php\r\n\t\t\u003C\/code\u003E\u003C\/pre\u003E\r\n\t\t\u003Cp\u003EEn rempla\u00e7ant le code pr\u00e9c\u00e9dent par celui-ci, on affiche maintenant un label avec un input de type date, comme demand\u00e9 dans le troisi\u00e8me param\u00e8tre de la fonction \u003Ccode style=\"color:blue\"\u003EprintInput(()\u003C\/code\u003E.\u003C\/p\u003E\r\n\t\t\u003Cpre\u003E\u003Ccode\u003E\t\t\/** \r\n\t\t\t* M\u00e9thode AdminArticleTop\r\n\t\t\t* \r\n\t\t\t* Descrition\t:\r\n\t\t\t* @author\t\t: TheCrok\r\n\t\t\t* \r\n\t\t\t**\/\r\n\t\t\tpublic function AdminArticleTop() {\r\n\t\t\t?\u003E&lt;label for=\"id_dateEvent\"\u003EDate \u00c9v\u00e9nement&nbsp;:&lt;\/label\u003E&lt;?php\r\n\t\t\techo '&lt;?php\r\n\t\t\tplxUtils::printInput('dateEvent', 'valeur'  , 'date'); ?\u003E';\r\n\t\t\t?\u003E\r\n\t\t\t&lt;?php\r\n\t\t}\u003C\/code\u003E\u003C\/pre\u003E\r\n\t\t\r\n\t\t\u003Ch4\u003ESauvegarder la date\u003C\/h4\u003E\r\n\t\t\u003Cp\u003EChaque plugin est capable d'enregistrer pour lui seul des param\u00e8tres, ce que fait la page de configuration, \r\n\t\tNous pouvons donc simplement en reprendre et adapter la m\u00e9thode \u003Cb style=\"font-weight:bold\"\u003Esans oublier que nous injecteront le code \r\n\t\tdans PluXml\u003C\/b\u003E.\u003C\/p\u003E\r\n\t\t\u003Cp\u003EPour cela, il va falloir rendre les fonctionnalit\u00e9 de lecture et \u00e9criture du plugin accessible la page d\u2019\u00e9dition d'article dans l'administration.\u003C\/p\u003E\r\n\t\t\u003Cpre\u003EEt pour reduire l'appel au plugin, on le case dans une variable:\r\n\t\t\t\u003Ccode\u003E$plug = $plxAdmin-\u003EplxPlugins-\u003EgetInstance(''.basename(__DIR__).'');\u003C\/code\u003E\u003C\/pre\u003E\r\n\t\t\u003Cp\u003EIl nous faut maintenant une variable pour stocker notre date. Si nous n'avons pas de date, la variable sera vide, mais elle doit \u00eatre initialiser.\u003C\/p\u003E\r\n\t\t\u003Cp\u003ECette variable doit aussi \u00eatre reli\u00e9 \u00e0 l'article. Dans la page d'\u00e9dition, la variable \u003Ccode style=\"color:red;\"\u003E$artId\u003C\/code\u003E nous donne l'identifiant \r\n\t\tde l'article. Nous utiliseront le m\u00eame identifiant comme nom de param\u00e8tre et stockeront dans la page la valeur qu'il contient dans $dateEvent.\u003C\/p\u003E\r\n\t\t\u003Cp\u003EIls nous reste maintenant \u00e0 tester si un param\u00e8tre au nom de l'identifiant de l'article existe et si il contient quelque chose. si il n'y a rien, on gardera cette variable vide\u003C\/p\u003E\r\n\t\t\u003Cpre\u003E\u003Ccode\u003E$dateEvent = $plug-\u003EgetParam($artId)\t== '' ? '' : $plug-\u003EgetParam($artId);\u003C\/code\u003E\u003C\/pre\u003E\r\n\t\t\u003Ch4\u003Efinaliser la fonction de lecture\/\u00e9criture.\u003C\/h4\u003E\r\n\t\t\u003Cpre\u003E\u003Ccode\u003E\t\t\/** \r\n\t\t\t\t* M\u00e9thode AdminArticleTop\r\n\t\t\t\t* \r\n\t\t\t\t* Descrition\t:\r\n\t\t\t\t* @author\t\t: TheCrok\r\n\t\t\t\t* \r\n\t\t\t\t**\/\r\n\t\t\t\tpublic function AdminArticleTop() {\r\n\t\t\t\t?\u003E&lt;label for=\"id_dateEvent\"\u003EDate \u00c9v\u00e9nement&nbsp;:&lt;\/label\u003E&lt;?php\r\n\t\t\t\techo '&lt;?php\r\n\t\t\t\t$plug = $plxAdmin-\u003EplxPlugins-\u003EgetInstance(''.basename(__DIR__).'');\r\n\t\t\t\t$dateEvent = $plug-\u003EgetParam($artId)\t== '' ? '' : $plug-\u003EgetParam($artId); \r\n\t\t\t\tplxUtils::printInput('dateEvent', $dateEvent  , 'date'); ?\u003E';\r\n\t\t\t\t?\u003E\r\n\t\t\t\t&lt;?php\r\n\t\t\t}\u003C\/code\u003E\u003C\/pre\u003E\r\n\t\t\t\u003Cp\u003ECa y est, nous avons un champ suppl\u00e9mentaire fonctionnel qui affiche et enregistre une date si il y en a une.\u003C\/p\u003E\r\n\t\t\t\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/medias\/images-site\/icon.png\"\u003E\u003C\/p\u003E\r\n\t\t\t\u003Ch3\u003ELire et utiliser cette date sur le site\u003C\/h3\u003E\r\n\t\t\t\u003Cp\u003EDans les donn\u00e9es du des param\u00e8tres du plugin il y a des identifiants d'article, et les articles affich\u00e9s cot\u00e9 visiteur.\u003C\/p\u003E\r\n\t\t\t\u003Cp\u003ELe pont entre les deux est possible\u003C\/p\u003E,  \r\n\t\t\t\u003Cp\u003ECot\u00e9 site, PluXml fonctionne selon plusieurs modes\u003C\/p\u003E\r\n\t\t\t\u003Col\u003E\r\n\t\t\t\t\u003Cli\u003Ehome\u003C\/li\u003E\r\n\t\t\t\t\u003Cli\u003Earticle\u003C\/li\u003E\r\n\t\t\t\t\u003Cli\u003Ecategorie\u003C\/li\u003E\r\n\t\t\t\t\u003Cli\u003Estatic\u003C\/li\u003E\r\n\t\t\t\t\u003Cli\u003Etags\u003C\/li\u003E\r\n\t\t\t\t\u003Cli\u003Earchives\u003C\/li\u003E\r\n\t\t\t\t\u003Cli\u003Eerreur\u003C\/li\u003E\r\n\t\t\t\u003C\/ol\u003E\r\n\t\t\t\u003Cp\u003E\u003Cb style=\"font-weight:bold\"\u003EIl sera possible de filtrer selon le type de page demand\u00e9e et afficher en cons\u00e9quences nos infos.\u003C\/b\u003ENous savons si un ou des articles sont affich\u00e9s.\u003C\/p\u003E\r\n\t\t\t\u003Ch4\u003EQuels hooks?\u003C\/h4\u003E\r\n\t\t\t\u003Cp\u003Equels sont les hooks commun au traitement des articles disponibles sur lesquels on pourrait traiter ou signaler cette date \u00e9v\u00e8nementielle?\u003C\/p\u003E\r\n\t\t\t\u003Col\u003E\r\n\t\t\t\t\u003Cli\u003EplxMotorParseArticle\u003C\/li\u003E\r\n\t\t\t\t\u003Cli\u003EplxShowPageTitle *\u003C\/li\u003E\r\n\t\t\t\t\u003Cli\u003EplxShowMeta *\u003C\/li\u003E\r\n\t\t\t\t\u003Cli\u003EplxShowArtFeed *\u003C\/li\u003E\r\n\t\t\t\t\u003Cli\u003EplxShowLastArtList\u003C\/li\u003E\r\n\t\t\t\t\u003Cli\u003ESitemapArticles\u003C\/li\u003E\r\n\t\t\t\t\u003Cli\u003EThemeEndHead\u003C\/li\u003E\r\n\t\t\t\t\u003Cli\u003EThemeEndBody\u003C\/li\u003E\r\n\t\t\t\t\u003Cli\u003E ...\u003C\/li\u003E\r\n\t\t\t\u003C\/ol\u003E\r\n\t\t\t\u003Cp\u003E* Hooks acceptant une valeur de retour permettant d\u2019interrompre l\u2019ex\u00e9cution du code suivant l\u2019appel du hook.\u003C\/p\u003E\r\n\t\t\t\u003Cp\u003EL'id\u00e9e est pour le moment d'accroch\u00e9 notre date au contenu d'un article, on va s\u2019int\u00e9resser aux hook dans plxMotor .\u003C\/p\u003E\r\n\t\t\t\u003Cp\u003E\u003Ccode style=\"color:blue\"\u003EplxMotorParseArticle\u003C\/code\u003E semble \u00eatre le seul qui va nous int\u00e9resser\u003C\/p\u003E\r\n\t\t\t\u003Ch4\u003Ecr\u00e9ation du hook \u003Ccode\u003EplxMotorParseArticle\u003C\/code\u003E\u003C\/h4\u003E\r\n\t\t\t\u003Cp\u003ERegardons o\u00f9 se trouve ce hook dans le code du fichier \u003Cb style=\"font-weight:bold\"\u003E\/core\/lib\/class.plx.motor.php\u003C\/b\u003E.\u003C\/p\u003E\r\n\t\t\t\u003Cp\u003EIl se trouve dans la fonction \u003Ccode style=\"color:blue\"\u003EparseArticle($filename)\u003C\/code\u003E et \u00e0 l'endroit de ce hook, \r\n\t\t\tnous avons toutes les informations et champs de l'article, nous pouvons les modifier ou les completer \u00e0 partior de cet endroit.\u003C\/p\u003E\r\n\t\t\t\u003Cp\u003E\r\n\t\t\t\t\u003Cp\u003E\u003Cb style=\"font-weight:bold\"\u003ELe hook dans notre squellette de plugin:\u003C\/b\u003E\u003C\/p\u003E\r\n\t\t\t\t\u003Cpre\u003E\u003Ccode\u003E\t\t\/** \r\n\t\t\t\t\t* M\u00e9thode plxMotorParseArticle\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* Descrition\t:\r\n\t\t\t\t\t* @author\t\t: TheCrok\r\n\t\t\t\t\t* \r\n\t\t\t\t\t**\/\r\n\t\t\t\t\tpublic function plxMotorParseArticle() {\r\n\t\t\t\t\t# code \u00e0 executer\r\n\t\t\t\t\t\r\n\t\t\t\t\t}\r\n\t\t\t\t\u003C\/code\u003E\u003C\/pre\u003E\r\n\t\t\t\t\u003Cp\u003ELe hook se trouve dans une zone de code php, On peut preparer l'injection de code avec :\u003C\/p\u003E\r\n\t\t\t\t\u003Cpre\u003E\u003Ccode\u003E\t\techo '&lt;?php\r\n\t\t\t\t\t\/\/ ici le code PHP \u00e0 injecter \r\n\t\t\t\t?\u003E';\u003C\/code\u003E\u003C\/pre\u003E\r\n\t\t\t\t\u003Cp\u003ECette fonction est aussi utilis\u00e9 dans l'admin pour remplir les champs dans l'\u00e9dition des articles, il ne faut \r\n\t\t\t\tpas intervenir dans ce contexte aux risques de modifier en boucle les contenus de l'article.\u003C\/p\u003E\r\n\t\t\t\t\u003Cp\u003EUne fa\u00e7on de verifier si l'on se trouve dans la page d'administration d'un article est d'\u00e9couter comment la page est demand\u00e9e.\r\n\t\t\t\tPour cela on teste si une variable particuli\u00e8re est transmise au navigateur par l'URL\u003C\/p\u003E\r\n\t\t\t\t\u003Cp\u003EDans l'admin, cette variable est \u003Ccode style=\"color:blue\"\u003Ea\u003C\/code\u003E et elle transmet l'identifiant de l'article. Si cette variable est absente, \r\n\t\t\t\talors on est cot\u00e9 visiteur et l'on peut interagir avec le contenu de l'article.\u003C\/p\u003E\r\n\t\t\t\t\u003Cp\u003EOn continue \u00e0 alimenter notre hook\u003C\/p\u003E\r\n\t\t\t\t\u003Cpre\u003E\u003Ccode\u003E\t\t\/** \r\n\t\t\t\t\t* M\u00e9thode plxMotorParseArticle\r\n\t\t\t\t\t* \r\n\t\t\t\t\t* Descrition\t:\r\n\t\t\t\t\t* @author\t\t: TheCrok\r\n\t\t\t\t\t* \r\n\t\t\t\t\t**\/\r\n\t\t\t\t\tpublic function plxMotorParseArticle() {\r\n\t\t\t\t\t# code \u00e0 executer\r\n\t\t\t\t\techo '$lt;?php\r\n\t\t\t\t\tif(!isset($_GET['a'])) {\r\n\t\t\t\t\t\/\/ code \u00e0 executer cot\u00e9 visiteur\r\n\t\t\t\t\t}\r\n\t\t\t\t\t?\u003E';\r\n\t\t\t\t\t}\r\n\t\t\t\t\u003C\/code\u003E\u003C\/pre\u003E\r\n\t\t\t\t\u003Cp\u003EPour acc\u00e9der aux donn\u00e9es du plugin, il faut \u00e0 nouveau le rendre accessible depuis la fonction \u003Ccode style=\"color:blue\"\u003EparseArticle($filename)\u003C\/code\u003E \r\n\t\t\t\to\u00f9 se trouve le hook pour tester si l'identifiant de l'article correspond \u00e0 un param\u00e8tre.\u003C\/p\u003E\r\n\t\t\t\t\u003Cpre\u003E\u003Ccode\u003E$plug = $this-\u003EplxPlugins-\u003EgetInstance(''.basename(__DIR__).'');\r\n\t\t\t\t\tif($plug-\u003EgetParam($art['numero'])!='') {\r\n\t\t\t\t\t\/*code \u00e0 ex\u00e9cuter si le param\u00e8tre contient une date*\/\r\n\t\t\t\t}\u003C\/code\u003E\u003C\/pre\u003E\r\n\t\t\t\t\u003Cp\u003E&Agrave; l'endroit du hook, les infos et contenus de l'article se trouve dans le tableau \u003Ccode style=\"color:red\"\u003E$art\u003C\/code\u003E, rien n'est encore affich\u00e9\u003C\/p\u003E\r\n\t\t\t\t\u003Cp\u003ENous pouvons injecter du texte et du code HTML dans ces donn\u00e9es, lesquelles choisir?\u003C\/p\u003E\r\n\t\t\t\t\u003Cp\u003ERegardons les champs de l'article\u003C\/p\u003E\r\n\t\t\t\t\u003Cpre style=\"white-space:normal\"\u003E\u003Cdl class=\"artGrid\"\u003E\r\n\t\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['filename']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\t\u003Cdd\u003ELe nom du fichier \u003Cb class=\"alert red\" style=\"margin:0;padding:2px;\"\u003Ene pas modifier\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['title']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\t\u003Cdd\u003ELe titre de l'article \u003Cb class=\"alert green\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['allow_com']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\t\u003Cdd\u003EAutorisation des commentaires : 0 ou 1 uniquement.\u003Cb class=\"alert orange\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['template'\t]\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\t\u003Cdd\u003Efichier template utiliser pour l'affichage \u003Cb class=\"alert orange\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['chapo']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\t\u003Cdd\u003EContenu de chapo\u003Cb class=\"alert green\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['content']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\t\u003Cdd\u003Econtenu de content \u003Cb class=\"alert green\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['tags']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\t\u003Cdd\u003Eliste des tags en texte\u003Cb class=\"alert orange\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['meta_description']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\t\u003Cdd\u003Econtenu de la balise meta description \u003Cb class=\"alert green\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['meta_keywords']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\t\u003Cdd\u003Econtenu de la balise meta keywords \u003Cb class=\"alert green\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['title_htmltag']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\t\u003Cdd\u003Econtenu de la balise title dans head \u003Cb class=\"alert green\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['thumbnail']\u003C\/code\u003E\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\u003Cdd\u003El'adresse d'une image \u003Cb class=\"alert orange\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E \u003C\/dd\u003E\r\n\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['thumbnail_title']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\u003Cdd\u003Econtenu de l'attribut title d'une image \u003Cb class=\"alert green\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['thumbnail_alt']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\u003Cdd\u003Etexte alternatif de l'image \u003Cb class=\"alert green\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['numero']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\u003Cdd\u003Eidentifiant de l'article \u003Cb class=\"alert red\" style=\"margin:0;padding:2px;\"\u003Ene pas modifier\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['author']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\u003Cdd\u003El'auteur\u003Cb class=\"alert blue\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['categorie']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\u003Cdd\u003Eliste des identifiants cat\u00e9gorie auxquelles est rattach\u00e9 l'article.\u003Cb class=\"alert blue\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['url']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\u003Cdd\u003Ela derniere partie de l'url de l'article (SEO Friendly)) \u003Cb class=\"alert red\" style=\"margin:0;padding:2px;\"\u003Ene pas modifier\u003C\/b\u003E\u003C\/dd\u003E\r\n\t\t\t\t\u003Cdt\u003E\u003Ccode class=\"language-php\" style=\"padding:0;border:0;\"\u003E$art['nb_com']\u003C\/code\u003E\u003C\/dt\u003E\r\n\t\t\t\t\u003Cdd\u003Ele nombre de commentaires \u003Cb class=\"alert blue\" style=\"margin:0;padding:2px\"\u003Emodifiable\u003C\/b\u003E\u003C\/dd\u003E\u003C\/dl\u003E\u003C\/pre\u003E\r\n\t\t\t\t\u003Cp\u003ENous avons toutes nos entr\u00e9es pour modifier notre article et selon que le plugin est destin\u00e9 \u00e0 \u00eatre partag\u00e9 ou \u00e0 votre usage, \r\n\t\t\t\tces modifications seront le plus sobres possible ou raccords \u00e0 votre site.\u003C\/p\u003E\r\n\t\t\t\t\u003Cp\u003ERassurez-vous, jusqu'ici le plugin n'a physiquement modifi\u00e9 aucun de vos articles et ne le fera pas.\u003C\/p\u003E\r\n\t\t\t\t\u003Cp\u003E si vous avez des bogues ou des r\u00e9sultat \u00e9tranges \u00e0 l'affichage, ce ne sera qu'une erreur dans le code du plugin ou un mauvais choix de hook. \r\n\t\t\t\tIl suffit de la corriger, ce n'est souvent qu'une erreur de frappe dans le code et n'a aucune incidence sur vos donn\u00e9es.\u003C\/p\u003E\r\n\t\t\t\t\u003Ch4\u003EPoursuivons\u003C\/h4\u003E\r\n\t\t\t\t\u003Cp\u003EDans les modes de PluXml, il n'y en \u00e0 qu'un qui affiche l'article en entier et seul, c'est le mode \u003Ccode style=\"color:blue\"\u003Earticle\u003C\/code\u003E.\u003C\/p\u003E\r\n\t\t\t\t\u003Cp\u003ELe plugin avec son option \"page statique\" qui s'affichera avec son propre mode interpr\u00e9t\u00e9 depuis sa variable de configuration   \r\n\t\t\t\t\u003Ccode style=\"color:blue\"\u003ENom du param\u00e8tre dans l'url\u003C\/code\u003E en comparaison \u00e0 l'URl demand\u00e9e.\u003C\/p\u003E\r\n\t\t\t\t\u003Cp\u003ECela fait deux modes que nous pouvons potentiellement filtrer pour differencier l'affichage des contenus.\u003C\/p\u003E\r\n\t\t\t\t\u003Cp\u003E* Il est suffisant de plac\u00e9 une icone dans ou \u00e0 cot\u00e9 du titre d'un article au fil des pages.\u003C\/p\u003E\r\n\t\t\t\t\u003Cp\u003E* La page statique inject\u00e9e par le plugin peut, quant \u00e0 elle, afficher un bandeau aux articles avec la date bien en \u00e9vidence.\u003C\/p\u003E\r\n\t\t\t\t\u003Cp\u003E\u003Csmal style=\"font-size:.85em;color:slategrey\"l\u003ECe ne sont que des choix pour l'exemple, il n'y a \u00e0 l'origine de la demande d'aide sur \r\n\t\t\t\tle forum, ni cahier des charges ni sc\u00e9nari visuels et de navigation.\u003C\/small\u003E\u003C\/p\u003E\r\n\t\t\t\t\u003Cp\u003ECompl\u00e9tons notre hook avec l'ajout d'une ic\u00f4ne au titre, seulement si notre article est li\u00e9 \u00e0 une date \u00e9v\u00e9nementielle. \r\n\t\t\t\tPrenons l'ic\u00f4ne du plugin pour l'exemple at affichons la devant le texte du titre.\u003C\/p\u003E\r\n\t\u003Cpre\u003E\u003C\/code\u003E$art['title'] = '\u003Cimg src=\"'.PLX_PLUGINS.basename(__DIR__).'\/icon.png\"\u003E ' . $art['title'];\u003C\/code\u003E\u003C\/pre\u003E\r\n\t\u003Cp\u003EOn remarque qu'a ce stade, les donn\u00e9es extraite des articles ne sont plus nettoy\u00e9es et qu'elles peuvent recevoir du code HTML, \r\n\til faudra \u00eatre attentif aux balises ajout\u00e9es et s'assurer qu'elles sont bien \u00e9crites, referm\u00e9es et qu'elle ne produisent pas de code HTML invalde, au risque de perturb\u00e9e l'affichage. \u003C\/p\u003E\r\n\t\u003Cp\u003ENotre hook devient:\u003C\/p\u003E\r\n\t\u003Cpre\u003E\u003Ccode\u003E\t\t\/** \r\n\t\t* M\u00e9thode plxMotorParseArticle\r\n\t\t* \r\n\t\t* Descrition\t:\r\n\t\t* @author\t\t: TheCrok\r\n\t\t* \r\n\t\t**\/\r\n\t\tpublic function plxMotorParseArticle() {\r\n\t\t# code \u00e0 executer\r\n\t\techo '$lt;?php\r\n\t\tif(!isset($_GET['a'])) {\r\n\t\t\t$art['title'] = '&lt;img src=\"'.PLX_PLUGINS.basename(__DIR__).'\/icon.png\"\u003E ' . $art['title'];\r\n\t\t}\r\n\t\t?\u003E';\r\n\t\t}\r\n\t\u003C\/code\u003E\u003C\/pre\u003E\t\t\t\t\r\n\t\u003Cp\u003ELes champs d'article, indiqu\u00e9s pr\u00e9cedemment, vous montrent lesquels sont modifiables.\u003C\/p\u003E\r\n\t\u003Cp\u003EVous pouvez aisaiment utiliser le champ \u003Ccode style=\"color:blue\"\u003E$art['thumbnail']\u003C\/code\u003E pour afficher l'affiche de votre \u00e9v\u00e9ment ou ajouter un lien devant  \r\n\t\u003Ccode style=\"color:blue\"\u003E$art['chapo']\u003C\/code\u003E ou  \u003Ccode style=\"color:blue\"\u003E$art['content']\u003C\/code\u003E pour mettre en t\u00e9l\u00e9chargement un programme ou plaquette PDF de votre \u00e9v\u00e9nement.\u003C\/p\u003E\r\n\t\u003Ch3\u003EEnsuite ?\u003C\/h3\u003E\r\n\t\u003Cp\u003ELe reste du d\u00e9vellopement de votre plugin suivra le m\u00eame principe.\u003C\/p\u003E\r\n\t\u003Cp\u003EQuelle fonction ou modification \u00e0 apporter ?\u003C\/p\u003E\r\n\t\u003Cul\u003E\r\n\t\t\u003Cli\u003E recherche des hooks qui se trouve aux endroits propices pour la ou les modification dont on a besoins.\u003C\/li\u003E\r\n\t\t\u003Cli\u003E Y a t-il des donn\u00e9es \u00e0 modifier ou fonction \u00e0 ajouter.\u003C\/li\u003E\r\n\t\t\u003Cli\u003E Faut-il injecter du code ou alimenter le plugin?\u003C\/li\u003E\r\n\t\t\u003Cli\u003E Cette modification est t-elle configurable \u00e0 partir d'un param\u00e8tre du plugin.\u003C\/li\u003E\r\n\t\t\u003Cli\u003E Est ce cot\u00e9 visiteur, administration ou les deux ?\u003C\/li\u003E\r\n\t\t\u003Cli\u003E Est ce en fonction d'un mode de PluXml ?\u003C\/li\u003E\r\n\t\t\u003Cli\u003E Y-a t-il des donn\u00e9es ou param\u00e8tres \u00e0 mettre \u00e0 jour?\u003C\/li\u003E\r\n\t\t\u003Cli\u003Eetc ...\u003C\/li\u003E\r\n\t\u003C\/ul\u003E\r\n\t\u003Cp\u003EVous pouvez retrouver ce plugin sur la page \u003Ca href=\"\"\u003Eplugins.html\u003C\/a\u003E de pluxopolis et suivre les modifications et ajouts de fonctionnalit\u00e9 en l'autopsiant au fil de ses versions (0.1 \u00e0 2.3 au moment de l'\u00e9criture de cet article.\u003C\/p\u003E\r\n\u003Cp\u003EVous pouvez commenter ici ou depuis \u003Ca href=\"https:\/\/pluxopolis.net\/plugins.html\" target=\"_blank\"\u003Ele sujet du forum\u003C\/a\u003E. Le forum de  PluXml est aussi ouvert pour vous aider \u00e0 develloper votre propre plugin.\u003C\/p\u003E",
            "tags": "",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/1725803655-a-computer-on-a-desk.jpg",
            "thumbnail_title": "ecran et clavier, php,html,js et css sont autour, un plugin va naitre.",
            "thumbnail_alt": "",
            "numero": "0112",
            "author": "002",
            "categorie": "013",
            "url": "construire-un-plugin-avec-thecrock",
            "date": "202409262355",
            "nb_com": 2,
            "date_creation": "202409262355",
            "date_update": "202410052219"
        },
        {
            "filename": ".\/data\/articles\/0111.001,013,014.002.202407241139.signaler-un-bug-sur-le-forum-de-pluxml.xml",
            "title": "Signaler un bug sur le forum de PluXml",
            "allow_com": 0,
            "template": "article-full-width.php",
            "chapo": "\u003Cstyle\u003E\t\t\t\t#top #myPost:has(#signalement:empty) {\n\t\t\t\tdisplay:none;\n\t\t\t\t}\n\t\t\t\tabbr:hover:after {\n  content: attr(title);\n}\u003C\/style\u003E\n\u003Cdiv id=\"myPost\"\u003E\u003Cbutton type=\"button\" onclick=\"copyIt()\"\u003ECopier\u003C\/button\u003E\u003Ctextarea id=\"signalement\"\u003E\u003C\/textarea\u003E\u003Cbutton type=\"button\" onClick=\"closeIt()\"\u003Efermer\u003C\/button\u003E\u003C\/div\u003E\u003Cp\u003EPour signaler un bug et esp\u00e9rer qu'il soit rapidement \u00e9liminer, il faut ajouter quelques informations pour le d\u00e9crire et indiquer o\u00f9 et dans quelles conditions il se produit . Ces informations pourront aider \u00e0 l'identifier et \u00e0 trouver son origine:\u003C\/p\u003E\n\u003Cp class=\"alert blue\" style=\"display:block;margin:1em;\"\u003EQue se soit PluXml ou un de ses plugins, la d\u00e9marche est la m\u00eame: \u003Cabbr title=\" O\u00f9 Qui Quoi Quand\" style=\"\nfont-weight: bold;\n  letter-spacing: 2px;\n  color: #555;\n  font-family: arial;\n  text-transform: uppercase;\n  font-variant: small-caps;\n  font-size: 1.6em;\n  filter: drop-shadow(0px 0px 1px black);\n  text-decoration: none;\"\u003E\n  \u003Cspan style=\"\n  padding: 0.1rem .35em;\n  background: gold linear-gradient(to bottom left,transparent,#0004,#0000);\n  line-height: 2;\n  clip-path: polygon(0% 6%, 10% 2%, 19% 6%, 31% 6%, 36% 1%, 45% 0%, 59% 2%, 62% 7%, 76% 10%, 85% 5%, 97% 1%, 100% 12%, 98% 48%, 100% 54%, 100% 60%, 98% 63%, 98% 66%, 100% 71%, 100% 83%, 100% 92%, 99% 100%, 87% 95%, 82% 100%, 73% 100%, 63% 95%, 55% 100%, 49% 100%, 30% 100%, 30% 97%, 13% 100%, 11% 100%, 3% 100%, 1% 91%, 3% 79%, 1% 68%, 0% 50%, 7% 39%, 0% 28%, 0% 15%);\n  color: white;\n  \"\u003EO.Q.Q.Q\u003C\/span\u003E\u003C\/abbr\u003E.\u003C\/p\u003E\n\u003Cp\u003E Un formulaire se propose de donner un coup de main pour r\u00e9diger un signalement avec un minimum d'information sur le bug que vous avez d\u00e9couvert et qui vous agace.\u003C\/p\u003E\n\u003Cp\u003EUne fois le formulaire rempli, cliquez sur envoyer et copiez le texte g\u00e9n\u00e9rer. Ils ne vous reste plus qu'a cr\u00e9er un nouveau sujet sur le \u003Ca href=\"https:\/\/forum.pluxml.org\" title=\"forum de pluxml\"\u003Eforum\u003C\/a\u003E.\u003C\/p\u003E\n\u003Cp\u003EFormulaire ci-dessous dans la suite de cet article.\u003C\/p\u003E\n\u003Cp style=\"overflow: hidden;\"\u003E\u003Csmall style=\"font-size:.8em;font-variant:small-caps;font-weight:bolder;color: #777;text-align: right;\/*! display: block; *\/background: beige;float: inline-end;\"\u003ENotez que ce formulaire est aussi inclus dans la page listant la majorit\u00e9 des plugins connus.\u003C\/small\u003E\u003C\/p\u003E\n\n\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article111\/signaler-un-bug-sur-le-forum-de-pluxml\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"signaler-un-bug-sur-le-forum-de-pluxml\"\n\t\t\t},\n\t\t\t\"headline\": \"Signaler un bug sur le forum de PluXml\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/pexels-photo-3819742.jpeg\",\n\t\t\t\t\"datePublished\": \"2024-07-24T11:39:00Z\",\n\t\t\t\"dateModified\": \"2024-07-24T11:56:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Plugins, PluXml, bug, bogue\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cform id=\"iGotABug\"\u003E\n\t\t\t\t\t\t\t\u003Cul\u003E\n\t\t\t\t\t\t\t\t\u003Cli\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"descBug\"\u003EDescription du bug de PluXml\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Ctextarea rows=\"6\" cols=\"40\" style=\"min-height:7.2em\" id=\"descBug\" name=\"descBug\" placeholder=\"description du bug&#10;&nbsp;&nbsp;- est ce cot\u00e9 admin, visiteurs ou les 2?&#10;&nbsp;&nbsp;- Y-a t-il des message d'erreurs?&#10;&nbsp;&nbsp;- Est ce un probl\u00e9me visuel?&#10;Autres ...\"\u003E\u003C\/textarea\u003E\n\t\t\t\t\t\t\t\t\u003C\/li\u003E\n\t\t\t\t\t\t\t\t\u003Cli\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"plux\"\u003EMa version de PluXml:\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Cselect id=\"plux\" name=\"plux\"\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"latest\"\u003Ederniere version officielle\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"rc\"\u003EUne Release Candidat (pr\u00e9cisez la version)\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.15\"\u003E5.8.15\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.14\"\u003E5.8.14\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.13\"\u003E5.8.13\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.12\"\u003E5.8.12\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.11\"\u003E5.8.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.10\"\u003E5.8.10\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.9\"\u003E5.8.9\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.8\"\u003E5.8.8\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.7\"\u003E5.8.7\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.6\"\u003E5.8.6\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.5\"\u003E5.8.5\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.4\"\u003E5.8.4\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.3\"\u003E5.8.3\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.2\"\u003E5.8.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.14\"\u003E5.8.14\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8.1\"\u003E5.8.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.8\"\u003E5.8\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.7\"\u003E5.7\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.6\"\u003E5.6\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.5\"\u003E5.5\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003C!--\u003Coption value=\"5.4\"\u003E5.4\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.3.1\"\u003E5.3.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.3\"\u003E5.3\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.2\"\u003E5.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.1.7\"\u003E5.1.7\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.1.6\"\u003E5.1.6\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.1.2\"\u003E5.1.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.1.1\"\u003E5.1.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.0.2\"\u003E5.0.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.0.1\"\u003E5.0.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.0\"\u003E5.0\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"4.3.2\"\u003E4.3.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"4.3.1\"\u003E4.3.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"4.3\"\u003E4.3\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"4.2\"\u003E4.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"4\"\u003E4\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"3.1\"\u003E3.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"3\"\u003E3\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"2\"\u003E2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"0.3.1\"\u003E0.3.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"0.2.0\"\u003E0.2.0\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"0.1.4\"\u003E0.1.4\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"0.1.3\"\u003E0.1.3\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"0.1.2\"\u003E0.1.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"0.1.1\"\u003E0.1.1\u003C\/option\u003E--\u003E\n\t\t\t\t\t\t\t\t\t\u003C\/select\u003E\n\t\t\t\t\t\t\t\t\t\u003C\/li\u003E\u003Clabel for=\"contexte\"\u003EContexte d'hebergement\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Cselect id=\"contexte\" name=\"contexte\"\u003E\n\t\t\t\t\t\t\t\t\t\u003Coption value=''\u003EChoisir\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\u003Coption value=\"localhostW\"\u003EServeur local Windows\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\u003Coption value=\"localhostL\"\u003EServeur local Linux\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\u003Coption value=\"mutualiser\"\u003EHebergement gratuit\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\u003Coption value=\"mutualiser\"\u003EHebergement payant mutualis\u00e9\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\u003Coption value=\"Hpro\"\u003EHebergement Pro\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\u003C\/select\u003E\n\t\t\t\t\t\t\t\t\u003Cli\u003E\u003Clabel for=\"php\"\u003EMa version de PhP :\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Cselect id=\"php\" name=\"php\"\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=''\u003EIndiquez votre version de PhP \u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.3.9\"\u003E8.3.9\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.3.7\"\u003E8.3.7\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.3.6\"\u003E8.3.6\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.3.4\"\u003E8.3.4\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.3.3\"\u003E8.3.3\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.3.2\"\u003E8.3.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.3.1\"\u003E8.3.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.3.0\"\u003E8.3.0\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.20\"\u003E8.2.20\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.19\"\u003E8.2.19\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.18\"\u003E8.2.18\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.17\"\u003E8.2.17\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.16\"\u003E8.2.16\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.15\"\u003E8.2.15\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.14\"\u003E8.2.14\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.13\"\u003E8.2.13\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.12\"\u003E8.2.12\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.11\"\u003E8.2.11\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.10\"\u003E8.2.10\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.9\"\u003E8.2.9\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.8\"\u003E8.2.8\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.7\"\u003E8.2.7\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.6\"\u003E8.2.6\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.5\"\u003E8.2.5\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.4\"\u003E8.2.4\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.3\"\u003E8.2.3\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.2\"\u003E8.2.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.1\"\u003E8.2.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.2.0\"\u003E8.2.0\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.28\"\u003E8.1.28\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.27\"\u003E8.1.27\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.26\"\u003E8.1.26\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.25\"\u003E8.1.25\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.24\"\u003E8.1.24\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.23\"\u003E8.1.23\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.22\"\u003E8.1.22\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.21\"\u003E8.1.21\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.20\"\u003E8.1.20\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.19\"\u003E8.1.19\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.18\"\u003E8.1.18\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.17\"\u003E8.1.17\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.16\"\u003E8.1.16\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.15\"\u003E8.1.15\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.14\"\u003E8.1.14\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.13\"\u003E8.1.13\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.12\"\u003E8.1.12\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.11\"\u003E8.1.11\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.10\"\u003E8.1.10\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.9\"\u003E8.1.9\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.8\"\u003E8.1.8\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.7\"\u003E8.1.7\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.6\"\u003E8.1.6\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.5\"\u003E8.1.5\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.4\"\u003E8.1.4\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.3\"\u003E8.1.3\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.2\"\u003E8.1.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.1\"\u003E8.1.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.1.0\"\u003E8.1.0\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.30\"\u003E8.0.30\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.29\"\u003E8.0.29\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.28\"\u003E8.0.28\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.27\"\u003E8.0.27\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.26\"\u003E8.0.26\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.25\"\u003E8.0.25\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.24\"\u003E8.0.24\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.23\"\u003E8.0.23\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.22\"\u003E8.0.22\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.21\"\u003E8.0.21\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.20\"\u003E8.0.20\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.19\"\u003E8.0.19\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.18\"\u003E8.0.18\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.17\"\u003E8.0.17\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.16\"\u003E8.0.16\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.15\"\u003E8.0.15\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.14\"\u003E8.0.14\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.13\"\u003E8.0.13\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.12\"\u003E8.0.12\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.11\"\u003E8.0.11\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.10\"\u003E8.0.10\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.9\"\u003E8.0.9\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.8\"\u003E8.0.8\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.7\"\u003E8.0.7\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.6\"\u003E8.0.6\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.5\"\u003E8.0.5\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.3\"\u003E8.0.3\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.2\"\u003E8.0.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.1\"\u003E8.0.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"8.0.0\"\u003E8.0.0\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.33\"\u003E7.4.33\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.32\"\u003E7.4.32\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.30\"\u003E7.4.30\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.29\"\u003E7.4.29\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.28\"\u003E7.4.28\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.27\"\u003E7.4.27\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.26\"\u003E7.4.26\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.25\"\u003E7.4.25\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.24\"\u003E7.4.24\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.23\"\u003E7.4.23\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.22\"\u003E7.4.22\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.21\"\u003E7.4.21\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.20\"\u003E7.4.20\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.19\"\u003E7.4.19\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.18\"\u003E7.4.18\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.16\"\u003E7.4.16\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.15\"\u003E7.4.15\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.14\"\u003E7.4.14\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.13\"\u003E7.4.13\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.12\"\u003E7.4.12\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.11\"\u003E7.4.11\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.10\"\u003E7.4.10\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.9\"\u003E7.4.9\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.8\"\u003E7.4.8\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.7\"\u003E7.4.7\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.6\"\u003E7.4.6\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.5\"\u003E7.4.5\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.4\"\u003E7.4.4\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.3\"\u003E7.4.3\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.2\"\u003E7.4.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.1\"\u003E7.4.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.4.0\"\u003E7.4.0\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.33\"\u003E7.3.33\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.32\"\u003E7.3.32\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.31\"\u003E7.3.31\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.30\"\u003E7.3.30\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.29\"\u003E7.3.29\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.28\"\u003E7.3.28\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.27\"\u003E7.3.27\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.26\"\u003E7.3.26\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.25\"\u003E7.3.25\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.24\"\u003E7.3.24\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.23\"\u003E7.3.23\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.22\"\u003E7.3.22\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.21\"\u003E7.3.21\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.20\"\u003E7.3.20\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.19\"\u003E7.3.19\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.18\"\u003E7.3.18\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.17\"\u003E7.3.17\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.16\"\u003E7.3.16\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.15\"\u003E7.3.15\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.14\"\u003E7.3.14\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.13\"\u003E7.3.13\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.12\"\u003E7.3.12\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.11\"\u003E7.3.11\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.10\"\u003E7.3.10\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.9\"\u003E7.3.9\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.8\"\u003E7.3.8\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.7\"\u003E7.3.7\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.6\"\u003E7.3.6\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.5\"\u003E7.3.5\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.4\"\u003E7.3.4\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.3\"\u003E7.3.3\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.2\"\u003E7.3.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.1\"\u003E7.3.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.3.0\"\u003E7.3.0\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.34\"\u003E7.2.34\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.33\"\u003E7.2.33\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.32\"\u003E7.2.32\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.31\"\u003E7.2.31\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.30\"\u003E7.2.30\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.29\"\u003E7.2.29\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.28\"\u003E7.2.28\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.27\"\u003E7.2.27\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.26\"\u003E7.2.26\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.25\"\u003E7.2.25\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.24\"\u003E7.2.24\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.23\"\u003E7.2.23\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.22\"\u003E7.2.22\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.21\"\u003E7.2.21\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.20\"\u003E7.2.20\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.19\"\u003E7.2.19\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.18\"\u003E7.2.18\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.17\"\u003E7.2.17\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.16\"\u003E7.2.16\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.15\"\u003E7.2.15\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.14\"\u003E7.2.14\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.13\"\u003E7.2.13\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.12\"\u003E7.2.12\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.11\"\u003E7.2.11\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.10\"\u003E7.2.10\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.9\"\u003E7.2.9\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.8\"\u003E7.2.8\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.7\"\u003E7.2.7\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.6\"\u003E7.2.6\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.5\"\u003E7.2.5\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.4\"\u003E7.2.4\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.3\"\u003E7.2.3\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.2\"\u003E7.2.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.1\"\u003E7.2.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.2.0\"\u003E7.2.0\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.33\"\u003E7.1.33\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.32\"\u003E7.1.32\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.31\"\u003E7.1.31\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.30\"\u003E7.1.30\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.29\"\u003E7.1.29\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.28\"\u003E7.1.28\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.27\"\u003E7.1.27\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.26\"\u003E7.1.26\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.25\"\u003E7.1.25\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.24\"\u003E7.1.24\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.23\"\u003E7.1.23\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.22\"\u003E7.1.22\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.21\"\u003E7.1.21\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.20\"\u003E7.1.20\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.19\"\u003E7.1.19\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.18\"\u003E7.1.18\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.17\"\u003E7.1.17\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.16\"\u003E7.1.16\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.15\"\u003E7.1.15\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.14\"\u003E7.1.14\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.13\"\u003E7.1.13\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.12\"\u003E7.1.12\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.11\"\u003E7.1.11\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.10\"\u003E7.1.10\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.9\"\u003E7.1.9\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.8\"\u003E7.1.8\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.7\"\u003E7.1.7\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.6\"\u003E7.1.6\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.5\"\u003E7.1.5\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.4\"\u003E7.1.4\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.3\"\u003E7.1.3\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.2\"\u003E7.1.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.1\"\u003E7.1.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.1.0\"\u003E7.1.0\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.33\"\u003E7.0.33\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.32\"\u003E7.0.32\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.31\"\u003E7.0.31\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.30\"\u003E7.0.30\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.29\"\u003E7.0.29\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.28\"\u003E7.0.28\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.27\"\u003E7.0.27\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.26\"\u003E7.0.26\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.25\"\u003E7.0.25\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.24\"\u003E7.0.24\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.23\"\u003E7.0.23\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.22\"\u003E7.0.22\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.21\"\u003E7.0.21\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.20\"\u003E7.0.20\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.19\"\u003E7.0.19\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.18\"\u003E7..18\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.17\"\u003E7.0.17\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.16\"\u003E7.0.16\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.15\"\u003E7.0.15\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.14\"\u003E7.0.14\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.13\"\u003E7.0.13\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.12\"\u003E7.0.12\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.11\"\u003E7.0.11\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.10\"\u003E7.0.10\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.9\"\u003E7.0.9\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.8\"\u003E7.0.8\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.7\"\u003E7.0.7\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.6\"\u003E7.0.6\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.5\"\u003E7.0.5\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.4\"\u003E7.0.4\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.3\"\u003E7.0.3\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.2\"\u003E7.0.2\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.1\"\u003E7.0.1\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"7.0.0\"\u003E7.0.0\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"5.6.4\"\u003E5.6.40\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"\u003C5.6.4\"\u003E&lt;5.6.40\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\u003C\/select\u003E\n\t\t\t\t\t\t\t\t\u003C\/li\u003E\n\t\t\t\t\t\t\t\t\u003Cli\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"server\"\u003Eserveur\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Cselect id=\"server\" name=\"server\"\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"\"\u003EChoisir\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"Apache\"\u003EApache\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"Nginx\"\u003ENginx\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"Autre\"\u003EAutre\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\u003C\/select\u003E\n\t\t\t\t\t\t\t\t\u003C\/li\u003E\u003C\/li\u003E\n\t\t\t\t\t\t\t\t\u003Cli\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"maj\"\u003EEst ce suite \u00e0 une mise \u00e0 jour ?\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Cselect id=\"maj\" name=\"maj\"\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"non\"\u003ENon\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"Oui\"\u003EOui\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\u003C\/select\u003E\n\t\t\t\t\t\t\t\t\u003C\/li\u003E\n\t\t\t\t\t\t\t\t\u003Cli\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"mig\"\u003EEst ce suite \u00e0 une migration vers un autre serveur ?\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Cselect id=\"mig\" name=\"mig\"\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"non\"\u003ENon\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"Oui\"\u003EOui\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\u003C\/select\u003E\n\t\t\t\t\t\t\t\t\u003C\/li\u003E\n\t\t\t\t\t\t\t\t\u003Cli\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"b\"\u003Emessage d'erreur cot\u00e9 visiteur ?\u003C\/label\u003E\u003Cinput type=\"checkbox\" id=\"b\" name=\"b1\"\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"msg\"\u003Ecopier\/coller le message ici\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Ctextarea id=\"msg\" name=\"msg\" placeholder=\"message affich\u00e9 cot\u00e9 visiteur\"\u003E\u003C\/textarea\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"b0\"\u003Emessage d'erreur cot\u00e9 administration ?\u003C\/label\u003E\u003Cinput type=\"checkbox\" id=\"b0\" name=\"b0\"\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"msg0\"\u003Ecopier\/coller le message ici\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Ctextarea id=\"msg0\" name=\"msg0\" placeholder=\"message afficher dans l'administration\"\u003E\u003C\/textarea\u003E\n\t\t\t\t\t\t\t\t\u003C\/li\u003E\n\t\t\t\t\t\t\t\t\u003Cli\u003E\n\t\t\t\t\t\t\t\t\t\u003Chr style=\"grid-column:1\/-1;width:100%\"\u003E\n\t\t\t\t\t\t\t\t\u003C\/li\u003E\n\t\t\t\t\t\t\t\t\u003Cli\u003E\n\t\t\t\t\t\t\t\t\t\u003Ch3 style=\"grid-column:1\/-1;font-size:1.1em;font-weight:400;margin:0\"\u003EBug plugin?\u003C\/h3\u003E\n\t\t\t\t\t\t\t\t\u003C\/li\u003E\n\t\t\t\t\t\t\t\t\u003Cli\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"plugBug\"\u003ELe bug est -il du \u00e0 un Plugin?\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Cselect id=\"plugBug\" name=\"plugBug\"\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"non\"\u003ENon\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"Oui\"\u003EOui\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\u003C\/select\u003E\n\t\t\t\t\t\t\t\t\u003C\/li\u003E\n\t\t\t\t\t\t\t\t\u003Cli\u003E\n\t\t\t\t\t\t\t\t\t\u003Chr style=\"grid-column:1\/-1;width:100%\"\u003E\n\t\t\t\t\t\t\t\t\u003C\/li\u003E\n\t\t\t\t\t\t\t\t\u003Cli\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"plugId\"\u003ENom du plugin\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Cinput id=\"plugId\" name=\"plugId\" placeholder=\"nom du plugin\"\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"plugVer\"\u003EVersion du plugin\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Cinput id=\"plugVer\" name=\"plugVer\" placeholder=\"Version\"\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"plugOrig\"\u003E adresse de l'archive du plugin\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Cinput id=\"plugOrig\" name=\"plugOrig\" placeholder=\"URL de l'archive du plugin\"\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"when\"\u003EA quel moment le bug s'est t-il declar\u00e9\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Cselect id=\"when\" name=\"when\"\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"\"\u003EChoisir\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"straight\"\u003EInstallation du plugin dans le repertoire 'plugins'\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"onactivate\"\u003E\u00e0 l'activation\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"onConfig\"\u003Eenregistrement de la configuration\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"onAdmin\"\u003Eenregistrement dans l'administration\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value\"onActivateOther\"\u003E\u00e0 l'activation d'un autre plugin\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"onUpdate\"\u003E\u00e0 la mise \u00e0 jour du plugin\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"onUpdatePluxml\"\u003E\u00e0 la mise \u00e0 jour de PluXml\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"onNewPhp\"\u003Eau changement de version de PhP\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"onNewServer\"\u003Eau changement de serveur (Apache\/nGinx)\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"onUpdatePluXmlConfig\"\u003Econfiguration de Pluxml modifi\u00e9e(urlRewriting,.)\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"theme\"\u003EAu changement ou mise \u00e0 jour d'un th\u00e8me\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Coption value=\"oups\"\u003ESoudainement, il n'y a eu aucun changement\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\u003C\/select\u003E\n\t\t\t\t\t\t\t\t\t\u003Ch3 style=\"grid-column:1\/-1;font-size:1.1em;font-weight:400;margin:0\"\u003EDescription du bug\u003C\/h3\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"b1\"\u003Emessage d'erreur cot\u00e9 visiteur?\u003C\/label\u003E\u003Cinput type=\"checkbox\" id=\"b1\" name=\"b1\"\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"msg1\"\u003Ecopier\/coller le message ici\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Ctextarea id=\"msg1\" name=\"msg1\" placeholder=\"message affich\u00e9 cot\u00e9 visiteur\"\u003E\u003C\/textarea\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"b2\"\u003Emessage d'erreur cot\u00e9 administration?\u003C\/label\u003E\u003Cinput type=\"checkbox\" id=\"b2\" name=\"b2\"\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"msg2\"\u003Ecopier\/coller le message ici\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Ctextarea id=\"msg2\" name=\"msg2\" placeholder=\"message afficher dans l'administration\"\u003E\u003C\/textarea\u003E\n\t\t\t\t\t\t\t\t\t\u003Clabel for=\"brien\"\u003EPas de message mais ne fonctionne pas.\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\u003Cinput type=\"checkbox\" id=\"brien\" name=\"brien\"\u003E\n\t\t\t\t\t\t\t\t\u003C\/li\u003E\n\t\t\t\t\t\t\t\t\u003Cli\u003E\n\t\t\t\t\t\t\t\t\t\u003Chr style=\"grid-column:1\/-1;width:100%\"\u003E\n\t\t\t\t\t\t\t\t\u003C\/li\u003E\n\t\t\t\t\t\t\t\t\u003Cli\u003E\u003Clabel for=\"other\"\u003ECe plugin depend-il d'un autre?\u003C\/label\u003E \u003Cselect id=\"other\" name=\"other\"\u003E\n\t\t\t\t\t\t\t\t\t\u003Coption value=\"0\"\u003Enon\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\u003Coption value=\"1\"\u003Eoui\u003C\/option\u003E\n\t\t\t\t\t\t\t\t\t\u003Cselect\u003E\n\t\t\t\t\t\t\t\t\t\u003C\/li\u003E\n\t\t\t\t\t\t\t\t\t\u003Cli\u003E\u003Clabel for=\"others\"\u003EQuel(s) autre(s) plugin(s) utilisez vous ?\u003C\/label\u003E\n\t\t\t\t\t\t\t\t\t\t\u003Ctextarea id=\"others\" name=\"others\" rows=\"8\" placeholder=\"lister vos autres plugin et indiquer si ils sont activ\u00e9s et leur version\"\u003E\u003C\/textarea\u003E\n\t\t\t\t\t\t\t\t\t\u003C\/li\u003E\n\t\t\t\t\t\t\t\t\u003C\/ul\u003E\n\t\t\t\t\t\t\t\t\u003C\/ul\u003E\n\t\t\t\t\t\t\t\t\u003Cinput type=\"submit\"\u003E\n\t\t\t\t\t\t\t\u003C\/form\u003E\n\t\t\t\t\t\t\t\u003Cstyle\u003E#top #myPost:has(#signalement:empty) {\n  display: none;\n}\n\n#iGotABug ul,\n#iGotABug p {\n  display: grid;\n  grid-template-columns: auto 1fr;\n  gap: 0.75em 0;\n}\n#iGotABug label {\n  max-width: 16em;\n  padding-inline-end: 2em;\n  border-bottom: solid 1px lightgray;\n}\n#iGotABug select {\n  margin-top: auto;\n}\nul li {\n  display: contents;\n}\nsection {\n  width: max-content;\n  max-width: 95%;\n  padding: 1em;\n  margin: auto;\n}\n#iGotABug [type=\"checkbox\"] {\n  margin: auto auto 0 -0.75em;\n}\n#iGotABug section h3 {\n  margin-inline-start: -2rem !important;\n  margin-top: -0.2rem !important;\n  padding: 0.1em;\n  background: ivory;\n}\n\n#iGotABug label[for^=\"b\"] {\n  color: blue;\n}\n\n#iGotABug [type=\"checkbox\"]:not(:checked) + label,\n#iGotABug [type=\"checkbox\"]:not(:checked) + label + textarea,\n#iGotABug ul:has(#other option[value=\"non\"]:checked) [for=\"others\"],\n#iGotABug ul:has(#other option[value=\"non\"]:checked) #others,\n#iGotABug li:has(#plugBug option[value=\"non\"]:checked) ~ li {\n  display: none;\n}\n\n#top #myPost:has(textarea#signalement) {\n  position: sticky;\n  inset: 4em 2em 2em;\n  background: white;\n  white-space: pre;\n  box-shadow: 0 0 0 100vh rgba(0, 0, 0, 0.7) !important;\n  min-height: 80vh;\n  width: auto;\n  z-index: 1;\n  top: 3em;\n  display: grid;\n  grid-template-rows: auto 1fr auto;\n}\n#signalement {\n  width: auto;\n  height: auto;\n  margin: 1em;\n}\nbody:has(#signalement:not(:empty))::before {\n  content: \"Modifier ou pas, puis Copier\/coller ce texte dans le corps de votre sujet dans le forum pour demander de l'aide.\";\n  position: fixed;\n  inset: 0.5em 2em auto;\n  background: yellow;\n  padding: 0.5em 1em;\n  z-index: 2;\n  height:1.5em;\n}\n\n\t\t\t\u003C\/style\u003E\n\t\t\t\u003Cscript\u003E\n\t\t\t\tconst form = document.getElementById(\"iGotABug\");\n\t\t\t\t\n\t\t\t\tform.addEventListener(\"submit\", function (e) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tgetDatas();\n\t\t\t\t\t\n\t\t\t\t\treturn false;\n\t\t\t\t});\n\t\t\t\tfunction getDatas() {\n\t\t\t\t\tlet bugData = new FormData(form);\t\t\t\t\n\t\t\t\t\tlet dataToPrint=``;\n\t\t\t\t\tfor(let [name, value] of bugData) {\n\t\t\t\t\t\tlet title;\n\t\t\t\t\t\tif(value !='' && value !='0' && value !='non')  {\n\t\t\t\t\t\t\tconsole.log(name +': '+value);\n\t\t\t\t\t\t\ttitle = document.querySelector('label[for=\"'+name+'\"]').textContent.trim();\n\t\t\t\t\t\t\tdataToPrint += `\n**${title}**\n\\`\\`\\`\n${value} \n\\`\\`\\`     \n___`;      \n\t\t\t\t\t\t}\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\tconsole.log(dataToPrint);\n\t\t\t\t\tdocument.querySelector('#signalement').innerHTML = dataToPrint;\n\t\t\t\t\talert('Vous pouvez maintenant creer un post  dans sur le forum de pluxml, \\n en faisant un copier\/coller le texte au format markdown dans le sujet. \\n\\n  Dans la rubrique Plugin : \\n https:\/\/forum.pluxml.org\/categories\/plugins \\n \\n Une bonne \u00e2me ou le concepteur lui m\u00eame pourra faire une mise \u00e0 jour. ')\n\t\t\t\t}\nfunction closeIt() {\n document.querySelector('#signalement').innerHTML='';\n}\nfunction copyIt() {\n const txtPost = document.querySelector('#signalement'); \n  txtPost.select();\n  txtPost.setSelectionRange(0, 99999);\n  try {\n    document.execCommand('copy') ;\n    alert('copi\u00e9! pr\u00e9s \u00e0 \u00eatre inserer dans votre sujet sur le forum');\n  }\n  catch(err) {\n  alert('Veuillez copi\u00e9 le texte selectionn\u00e9 ,\\npuis l\\'inserer dans votre post sur le forum');    \n  }\n}\n\t\t\t\u003C\/script\u003E",
            "tags": "Plugins, PluXml, bug, bogue",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/pexels-photo-3819742.jpeg",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0111",
            "author": "002",
            "categorie": "001,013,014",
            "url": "signaler-un-bug-sur-le-forum-de-pluxml",
            "date": "202407241139",
            "nb_com": 1,
            "date_creation": "202407241139",
            "date_update": "202407241156"
        },
        {
            "filename": ".\/data\/articles\/0109.001,004.002.202404271613.pluxml-5813-et-la-version-590-en-dev.xml",
            "title": "PluXml 5.8.13 et la version 5.9.0 en dev",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003EPluXml continue a \u00e9voluer\u003C\/p\u003E\r\n\u003Cp class=\"alert green\"\u003E\u003Cins\u003E\u003Cb\u003Eversion stable en F\u00e9vrier 2025 : 5.8.19\u003C\/b\u003E\u003C\/ins\u003E\r\n \u003Ca href=\"https:\/\/www.pluxml.org\/download\/pluxml-latest.zip\"\u003ELa derni\u00e8re version stable\u003C\/a\u003E est maintenant disponible \u003Cb\u003Esans d\u00e9lais d\u00e9s\u003C\/b\u003E la publication d'une release.\u003C\/p\u003E\r\n\u003Cp\u003ELa version stable est pass\u00e9e de la 5.8.9 \u00e0 la 5.8.19, en corrigeant plusieurs petits bugs ou typos\u003C\/p\u003E\r\n\u003Cp class=\"alert blue\" style=\"overflow:hidden\"\u003EVous trouverez la derni\u00e8re version stable  \u003Ca href=\"https:\/\/www.pluxml.org\/download\/pluxml-latest.zip\" target=\"_blank\"\u003Eici \u003C\/a\u003E.\u003C\/p\u003E\r\n\u003Cp\u003EElle se conforme aux versions de PHP 7.2.5 \u00e0 8.3.4, \u00e9vitant ainsi tout les messages d\u00e9sagr\u00e9ables de pratiques de codages devenus obsol\u00e8tes et bient\u00f4t inop\u00e9rants. \u003C\/p\u003E\r\n\u003Cp\u003ELa mise \u00e0 jour se fait de fa\u00e7on classique sans modifier la structure de vos fichiers de configurations ou des articles. \u003C\/p\u003E\r\n\u003Cp\u003E\u003C\/p\u003E\r\n\u003Cp\u003EVous pouvez suivre les \u00e9volutions de PluXml avec les \u003Ca href=\"https:\/\/github.com\/pluxml\/PluXml\/tags\" target=\"_blank\"\u003Earchives des diff\u00e9rentes versions\u003C\/a\u003E . Les archives avec le suffixe -rcX , indiquent une version en d\u00e9veloppement \u00e0 tester , \u00e0 ne pas utiliser pour un site en ligne\u003C\/p\u003E\r\n\u003Cp\u003E\u003C\/p\u003E\r\n\u003Cp\u003EEt \u00e0 propos de la 5.9.0-rcX, qu'en est-il ?\u003C\/p\u003E\r\n\u003Cp class=\"alert green\"\u003ELa version en d\u00e9veloppement est toujours t\u00e9l\u00e9chargeable \u003Ca href=\"https:\/\/github.com\/pluxml\/PluXml\/archive\/refs\/heads\/master.zip\" target=\"_blank\"\u003Eici\u003C\/a\u003E quelque soit la version en cours ou en release candidate (RC).. Les versions R.C. sont en phases de tests, vous pouvez les tester et remonter les bugs rencontr\u00e9s sur le forum, il est d\u00e9conseill\u00e9 de les utiliser sur vos sites en lignes\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article109\/pluxml-5813-et-la-version-590-en-dev\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"pluxml-5813-et-la-version-590-en-dev\"\n\t\t\t},\n\t\t\t\"headline\": \"PluXml 5.8.13 et la version 5.9.0 en dev\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/pexels\/pexels-photo-265667.jpeg\",\n\t\t\t\t\"datePublished\": \"2024-04-27T16:13:00Z\",\n\t\t\t\"dateModified\": \"2025-07-06T18:07:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Evolution, PluXml, Th\u00e8mes, Plugins\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch3\u003ELa version 5.9.0, le futur\u003C\/h3\u003E\r\n\u003Cp\u003ECette version fonctionnelle , toujours en d\u00e9veloppement, \u00e0 d\u00e9j\u00e0 beaucoup modifi\u00e9e et am\u00e9lior\u00e9e le c\u0153ur de PluXml en factorisant et am\u00e9liorant un grand nombre de ses fonctions internes.\u003C\/p\u003E\r\n\u003Cp\u003EL'une des nouveaut\u00e9s est aussi une avanc\u00e9e remarquable dans l\u2019internationalisation (i18n ) du CMS, les URL classique de PluXml comme : articleX, categorieX, ...refl\u00e8tent maintenant la langue configur\u00e9e pour le site, en traduisant les mot cl\u00e9s des URLs.\u003C\/p\u003E\r\n\r\n\u003Ch4\u003ELe cas des plugins dans la 5.9.0\u003C\/h3\u003E\r\n\u003Cp\u003EUne compatibilit\u00e9 partielle est conserv\u00e9e, principalement pour les plugins \"dit officiels\".\u003C\/p\u003E\r\n\u003Cp\u003ED'autre part:\u003C\/p\u003E\r\n\u003Col\u003E\r\n\u003Cli\u003E La r\u00e9\u00e9criture d'une grosse  partie du code de PluXml peut avoir des effets de bords sur certains plugins qui sont encore compatible avec la derni\u00e8re version stable de PluXml. \u003C\/li\u003E\r\n\u003Cli\u003EDe nombreux Plugins ne fonctionnent plus ou que partiellement avec PHP8.x , cela ne d\u00e9pend pas de PluXml.\u003C\/li\u003E\r\n\u003Cli\u003E Enfin, le forum de PluXml reste le meilleur endroit pour obtenir de l'aide sur l'installation et l'usage d'un plugin, quelle que soit la version de PluXml utilis\u00e9e.\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\u003Ch4\u003ECas des th\u00e8mes\u003C\/h4\u003E\r\n\u003Cp\u003EDans l'ensemble, les th\u00e8mes continueront de fonctionner tel quel, certaines nouvelles fonctionnalit\u00e9s ou templates affichables ne seront pas disponibles.\u003C\/p\u003E\r\n\u003Cp\u003E Pour r\u00e9adapter un th\u00e8mes et y ajouter les nouveaux templates , \u003Ca href=\"https:\/\/pluxthemes.com\/mise-a-jour\" target=\"_blank\"\u003Eune serie de tutoriels sur pluxthemes.com\u003C\/a\u003E vous montrerons comment ajout\u00e9 un template dans votre th\u00e8mes.\u003C\/p\u003E",
            "tags": "Evolution, PluXml, Th\u00e8mes, Plugins",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/pexels\/pexels-photo-265667.jpeg",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0109",
            "author": "002",
            "categorie": "001,004",
            "url": "pluxml-5813-et-la-version-590-en-dev",
            "date": "202404271613",
            "nb_com": 3,
            "date_creation": "202403271630",
            "date_update": "202507061807"
        },
        {
            "filename": ".\/data\/articles\/0110.003.002.202404122236.hebergement-gratuit-de-sites.xml",
            "title": "h\u00e9bergement gratuit de site(s)",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Ch3\u003EUn h\u00e9bergeur fran\u00e7ais et gratuit.\u003C\/h3\u003E\r\n\u003Cp\u003EC'est un h\u00e9bergement qui r\u00e9pond largement aux besoins de PluXml, ou \u00e0 d'autre gros CMS. Il ne va pas vous engagez \u00e0 quoi que ce soit en contre-partie pour b\u00e9n\u00e9ficier de son offre gratuite.\u003C\/p\u003E\r\n\u003Cp\u003EParticulier ou professionnel, si  vous avez besoin d'un h\u00e9bergement efficace et gratuit sans que l'on vous impose des publicit\u00e9s et \u003Cstrong style=\"color:orange;font-weight:bold\"\u003Eo\u00f9 vous pouvez librement:\u003C\/strong\u003E\u003C\/p\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003E Utiliser les scripts et versions de de votre choix(Node.js, Python, PHP, Ruby, etc. avec configuration sp\u00e9cifique par instance)\u003C\/li\u003E\r\n\u003Cli\u003E Utiliser les scripts ou CMS de votre choix. \u003C\/li\u003E\r\n\u003Cli\u003EUtiliser des  Bases de donn\u00e9es infog\u00e9r\u00e9es : MariaDB (MySQL) et PostgreSQL (pgBouncer et multiples extensions disponibles)\u003C\/li\u003E\r\n\u003Cli\u003E Utiliser vos noms de domaines ( Domaines et emails illimit\u00e9s, Administration compl\u00e8te des zones DNS, antispam, listes de diffusion, ...)\u003C\/li\u003E\r\n\u003Cli\u003E Des sauvegardes automatiques journali\u00e8res\u003C\/li\u003E\r\n\u003Cli\u003E Utiliser le protocol SSL , c'est \u00e0 dire avoir votre adresse en https\u003C\/li\u003E\r\n\u003Cli\u003E Cr\u00e9er et g\u00e9rer les courriels de vos noms de domaine\u003C\/li\u003E\r\n\u003Cli\u003E etc.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Cp\u003EOu, \u003Cstrong style=\"color:orange;font-weight:bold\"\u003Eo\u00f9 vous voulez tout simplement installer la derni\u00e8re version de PluXml et mettre en ligne votre premier ou un xi\u00e9me site.\u003C\/strong\u003E, il y a de grande chance que ce soit la perle rare que vous recherchiez, de plus , un pack ne limite pas le nombre de site h\u00e9berg\u00e9 , nombre de noms de domaine. C'est l'espace allou\u00e9 au pack choisi qui d\u00e9termine les limites.  \u003C\/p\u003E\r\n\u003Ch3\u003EQuel est cet h\u00e9bergeur ?\u003C\/h3\u003E\r\n\u003Cp\u003EC'est l'h\u00e9bergement que PluXopolis \u00e0 choisi, c'est aussi un h\u00e9bergeur qui \u00e0 tout compris en ne bridant que l'espace de stockage dans sa version gratuite et qui n'imposera pas de publicit\u00e9 \u00e0 vos visiteurs ni ne limitera votre bande passante. L\u2019h\u00e9bergement vous donne un nom de sous domaine du type :\u003Cu\u003E\u003Cb style=\"color:blue\"\u003Epseudo\u003C\/b\u003E.alwaysdata.net\/\u003C\/u\u003E par d\u00e9faut que vous choisissez et la possibilit\u00e9 d'utiliser autant de NDD que vous avez.\u003C\/p\u003E\r\n\u003Cp\u003ECet h\u00e9bergeur, avec son si\u00e8ge social \u00e0 PARIS (France),  vous permet donc en fait de tester ses services et son s\u00e9rieux sans m\u00eame vous imposer une limite dans le temps, le pack gratuit de 100 MO est \u00e0 vie. Quand aux versions payantes, le premier pack a 10GO de stockage et \u00e0 7\u20ac HT\/mois vous laissera la possibilit\u00e9 d\u2019h\u00e9berger plusieurs sites sans probl\u00e8mes. \u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article110\/hebergement-gratuit-de-sites\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"hebergement-gratuit-de-sites\"\n\t\t\t},\n\t\t\t\"headline\": \"h\u00e9bergement gratuit de site(s)\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/cloud-g777b22610_1280.jpg\",\n\t\t\t\t\"datePublished\": \"2024-04-12T22:36:00Z\",\n\t\t\t\"dateModified\": \"2024-12-07T18:56:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"H\u00e9bergement, Apache, Cr\u00e9ation, PluXml\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003ECela parait beaucoup et inesp\u00e9r\u00e9 et on peut se demander si cela ne cache pas une arnaque, en fait non, pas du tout. La limite de stockage \u00e0 100 MO permet \u00e0 tout le monde de mettre un site en ligne et de tester r\u00e9ellement l\u2019h\u00e9bergement.\u003C\/p\u003E\r\n\u003Cp\u003ELe jour ou vous aurez besoin de plus d'espace car votre site grandi ou que le nombre de site que vous avez se multiplie, vous serez d\u00e9j\u00e0 convaincu du s\u00e9rieux et de la qualit\u00e9 de l\u2019h\u00e9bergement et le choix de passer \u00e0 une option payante sera en toutes connaissances et sans mauvaises surprises.Par exemple, vos noms de domaines sont \u00e0 vous et n'ont pas lieu d'\u00eatre acheter via alwaysData ni inclus dans un pack.Un hebergement ne se limite pas non plus \u00e0 un seul NDD, vous h\u00e9bergez autant de sites que vous voulez, enfin tant qu'il y a de la place.\u003C\/p\u003E\r\n\u003Cp class=\"alert green\"\u003E\u003Ca href=\"https:\/\/www.alwaysdata.com\/fr\/\" title=\"h\u00e9bergeur AlwaysData\" target=\"_blank\"\u003EAlwaysData\u003C\/a\u003E est cet h\u00e9bergeur que l'on m'a conseill\u00e9 et que je conseille maintenant \u00e0 mon tour apr\u00e8s quelques ann\u00e9es d'utilisation o\u00f9 j\u2019h\u00e9berge plusieurs petits sites comme pluxopolis.net et pluxthemes.com.\u003C\/p\u003E\r\n\u003Cp\u003ESi vous \u00eates d\u00e9j\u00e0 convaincu et souhaitez souscrire \u00e0 un h\u00e9bergement payant sur Alwaysdata, pluxopolis peut vous parrainer et vous faire b\u00e9n\u00e9ficier d'une r\u00e9duction de 10% pour les 6 premier mois. M\u00eame si vous n'\u00eates pas fan de PluXml ;)\r\n\u003C\/p\u003E\r\n\u003Cp class=\"alert blue\"\u003E Voici le lien de parrainage de Pluxopolis:\u003Cbr\u003E \u003Ca href=\"https:\/\/www.alwaysdata.com\/en\/register\/?from=18532532\" target=\"_blank\" title=\"lien de parrainage promotionnel\"\u003Ehttps:\/\/www.alwaysdata.com\/en\/register\/?from=18532532\u003C\/a\u003E.\u003Cbr\u003E\u003Csmall\u003E Noter que chaque h\u00e9bergement payant permet d'\u00eatre parrain.\u003C\/small\u003E \u003C\/p\u003E",
            "tags": "H\u00e9bergement, Apache, Cr\u00e9ation, PluXml",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/cloud-g777b22610_1280.jpg",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0110",
            "author": "002",
            "categorie": "003",
            "url": "hebergement-gratuit-de-sites",
            "date": "202404122236",
            "nb_com": 0,
            "date_creation": "202404122236",
            "date_update": "202412071856"
        },
        {
            "filename": ".\/data\/articles\/0108.006,013.002.202401262327.faire-dun-script-un-plugin.xml",
            "title": "faire d'un script un plugin",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\u003Cb style=\"font-weight:bolder;color:#BF824F\"\u003ELa plupart des plugins n'ajoutent qu'une fonctionnalit\u00e9 ponctuellement utile.\u003C\/b\u003E\u003C\/p\u003E\r\n\u003Cp\u003E\u003Cb style=\"font-weight:bolder;color:#BF824F\"\u003E D'autres, int\u00e8grent de v\u00e9ritables applications. \u003C\/b\u003E\u003C\/p\u003E\r\n\u003Ch3\u003ELeur point communs?\u003C\/h3\u003E \r\n\u003Cp\u003EPour qu'ils soient pleinement fonctionnels ils doivent \u00eatre greff\u00e9s aux fonctions natives, ou ajout\u00e9s \u00e0 PluXml. \u003Cp\u003E\r\n\u003Cp\u003ELa cr\u00e9ations d'un plugin est souvent chronophage et particuli\u00e8rement lorsqu'il s'agit d\u2019impl\u00e9menter un simple script .\u003C\/p\u003E\r\n\u003Cp\u003EChacun est tenter de modifier \u00e0 un ou quelques endroits le code de PluXml pour y glisser rapidement cette nouvelle fonctionnalit\u00e9.\u003C\/\u003Cp\u003EMais il s\u2019av\u00e8re que c'est une mauvaise id\u00e9e. Les versions de PHP qui \u00e9voluent en permanence, n\u00e9cessiteront parfois une remise \u00e0 niveau du script. \u003C\/p\u003E\r\n\u003Cp\u003ELes mises \u00e0 jour de PluXml \u00e9limineront toutes les modifications effectu\u00e9es au sein du code contrairement \u00e0 un plugin, qui n'aura pas forc\u00e9ment besoin d'une mise \u00e0 niveau.\u003Cp\u003E\r\n\u003Ch3\u003Ele pourquoi d'un plugin\u003C\/h3\u003E\r\n\u003Cp\u003E\u003Cb style=\"font-weight:bolder;color:#BF824F\"\u003EL'installation d'un plugin est de beaucoup, plus perenne, que l'inclusion manuel d'un script., il n' y a pas \u00e0 en douter\u003C\/b\u003E\u003C\/p\u003E\r\n\u003Cp\u003ELe plugin ne demande pas \u00e0 l'utilisateur d'avoir des comp\u00e9tences de d\u00e9veloppeur ni une expertise sur le code de PluXml. Tout au plus si c'est la premi\u00e8re fois, la capacit\u00e9 d'activer un plugin pour ceux g\u00e9rant leur CMS en autonomie compl\u00e8te... \u003C\/p\u003E\r\n\u003Cp\u003ESi vous avez installer vous m\u00eame PluXml, l'installation et l'activation d'un plugin est tout aussi simple !.\u003C\/p\u003E\r\n\u003Ch3\u003EReprenons un script en  exemple: \u003C\/h3\u003E\r\n\u003Cp\u003EVoyons comment integrer le script \u003Ca href=\"https:\/\/pluxopolis.net\/commentaires-dans-une-page-statique.html\" alt=script pour inserer des  commentaires dans une page statique\"\u003Ecommentaires dans une page statique\u003C\/a\u003E en un plugin \u003Cdel title=\"ce sera pour un prochain tutoriel\"\u003E avec le confort d'une page de configuration\u003C\/del\u003E.\u003C\/p\u003E\r\n\u003Cp\u003E \u003Cb style=\"font-weight:bolder;color:#BF824F\"\u003ECette article est pour d\u00e9montrer !\u003C\/b\u003E, qu\u2019une fois le plugin r\u00e9alis\u00e9,  l'utilisateur n'aura pas \u00e0 savoir coder pour ajouter cette fonction \u00e0 \u003Cins\u003Etoute les pages statiques\u003C\/ins\u003E\u003Cdel title=\"un prochain tutoriel reprendra ces aspects\"\u003Etelle ou telle page statique ni pour r\u00e9gler les options d'affichages\u003C\/del\u003E.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article108\/faire-dun-script-un-plugin\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"faire-dun-script-un-plugin\"\n\t\t\t},\n\t\t\t\"headline\": \"faire d'un script un plugin\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/pexels-photo-270348.jpeg\",\n\t\t\t\t\"datePublished\": \"2024-01-26T23:27:00Z\",\n\t\t\t\"dateModified\": \"2024-08-27T21:50:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Programmation, Plugins, Tutoriels\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch3\u003EPr\u00e9parons le dossier de notre projet de plugin.\u003C\/h3\u003E\r\n\u003Cp\u003EPour cela , ils nous faut un nouveau dossier dans le r\u00e9pertoire \u003Ccode\u003Eplugins\u003C\/code\u003E de PluXml. Nommons ce dossier : \u003Ci\u003EMonPlugin\u003C\/i\u003E.\u003C\/p\u003E\r\n\u003Cp\u003EDans ce dossier ajoutons deux fichiers vides, l'un nomm\u00e9 \u003Ci\u003EMonPlugin.php\u003C\/i\u003E (m\u00eame nom que le dossier, c'est obligatoire.) et \u003Ci\u003Einfos.xml\u003C\/i\u003E.\u003C\/p\u003E\r\n\u003Cp\u003ERemplissons tout de suite le fichier infos.xml qui d\u00e9crit votre plugin et l'identifie dans l'administration avec le code suivant:\u003C\/p\u003E\r\n\u003Cpre  class=\"language-html\"\u003E\u003Ccode\u003E&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?\u003E\r\n\t&lt;document\u003E\r\n\t&lt;title\u003E&lt;![CDATA[mon plugin]]&gt;&lt;\/title\u003E\r\n\t&lt;author\u003E&lt;![CDATA[G.Cyrille]]&gt;&lt;\/author\u003E\r\n\t&lt;version\u003E1&lt;\/version\u003E\r\n\t&lt;date\u003E01\/01\/1980&lt;\/date\u003E\r\n\t&lt;site\u003Ehttps:\/\/pluxopolis.net&lt;\/site\u003E\r\n\t&lt;description\u003E&lt;![CDATA[Ajoute aux pages statiques le module commentaires de PluXml.]]&gt;&lt;\/description\u003E\r\n\t&lt;scope\u003E&lt;\/scope\u003E\r\n\t&lt;\/document\u003E\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Cp\u003EEnregistrons et passons \u00e0 la suite.\u003C\/p\u003E\r\n\u003Ch3\u003Ele Hook central\u003C\/h3\u003E\r\n\u003Cp\u003EIl n'y a qu'un seul script \u00e0 int\u00e9grer et nous pouvons facilement identifier le Hook qui va injecter ce script au bon endroit.\u003C\/p\u003E\r\n\u003Cp\u003E Cet endroit est juste apr\u00e8s le contenu de la page, recherchons la fonction qui extrait ce contenu .Nous la trouvons dans le fichier du theme static.php et c'est : \u003Ccode class=\" language-php\" \u003E$plxShow-\u003EstaticContent();\u003C\/code\u003E.\u003C\/p\u003E\r\n\u003Cp\u003ERegardons maintenant cette fonction dans le fichier core\/lib\/class.plx.show.php si elle dispose d'un Hook :\u003C\/p\u003E\r\n\u003Cpre\u003E\u003Ccode class=\" language-php\" \u003E   \/**\r\n     * M\u00e9thode qui inclut le code source de la page statique\r\n     *\r\n     * @scope    static\r\n     * @author    Florent MONTHEL, Stephane F\r\n     **\/\r\n    public function staticContent()\r\n    {\r\n\r\n        if (eval($this-\u003EplxMotor-\u003EplxPlugins-\u003EcallHook(\"plxShowStaticContentBegin\"))) return;\r\n\r\n        # On va verifier que la page a inclure est lisible\r\n        if ($this-\u003EplxMotor-\u003EaStats[$this-\u003EplxMotor-\u003Ecible]['readable'] == 1) {\r\n            # On genere le nom du fichier a inclure\r\n            $file = PLX_ROOT . $this-\u003EplxMotor-\u003EaConf['racine_statiques'] . $this-\u003EplxMotor-\u003Ecible;\r\n            $file .= '.' . $this-\u003EplxMotor-\u003EaStats[$this-\u003EplxMotor-\u003Ecible]['url'] . '.php';\r\n            # Inclusion du fichier\r\n            ob_start();\r\n            require $file;\r\n            $output = ob_get_clean();\r\n            eval($this-\u003EplxMotor-\u003EplxPlugins-\u003EcallHook('plxShowStaticContent'));\r\n            echo $output;\r\n        } else {\r\n            echo '\u003Cp\u003E' . L_STATICCONTENT_INPROCESS . '\u003C\/p\u003E';\r\n        }\r\n\r\n    }\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Cp\u003ECette fonction dispose de deux entr\u00e9es ou appels identifiable apr cet syntaxe:  \u003Ccode class=\" language-php\"\u003Eeval(\/* appel du hook par son nom*\/)\u003C\/code\u003E.\u003C\/p\u003E\r\n\u003Cp\u003E Ici, c'est le deuxi\u00e8me qui nous int\u00e9resse \u003Ccode class=\"language-php\"\u003Eeval($this-\u003EplxMotor-\u003EplxPlugins-\u003EcallHook('plxShowStaticContent'));\u003C\/code\u003E. C'est \u00e0 partir du hook \u003Cstrong style=\"font-weight:bolder;color:#E2ACA3\"\u003EplxShowStaticContent\u003C\/strong\u003E  que l'on pourra injecter le script  dans la page statique.\u003C\/p\u003E\r\n\u003Cp\u003ENote, un listing de tous les hooks disponibles est ici :\u003Ca href=\"https:\/\/wiki.pluxml.org\/docs\/develop\/plugins\/hooks.html#liste-des-hooks\" target=\"_blank\"\u003E liste des hooks\u003C\/a\u003E.\u003C\/p\u003E\r\n\u003Ch3\u003El'assemblage\u003C\/h3\u003E\r\n\u003Cp\u003Echaque plugin se construit sur une structure de base identique \u00e0 laquelle on ajoute les hooks et autres fonctionnalit\u00e9s optionnelles.\u003C\/p\u003E \r\n\u003Cp\u003EVoici le code minimal d'un plugin :\u003C\/p\u003E\r\n\u003Cpre class=\"language-php\"\u003E\u003Ccode\u003E&lt;?php  if(!defined('PLX_ROOT')) exit;\r\nclass monPlugin extends plxPlugin {\r\n \r\n    public function __construct($default_lang){\r\n    # Appel du constructeur de la classe plxPlugin (obligatoire)\r\n    parent::__construct($default_lang);\r\n\r\n    # D\u00e9claration des hooks\r\n}\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Cp\u003ENous avons le script et le hook d'entr\u00e9e, il ne reste qu'a assembler les deux et les ajouter \u00e0 la base , et toutes nos pages statiques pourront b\u00e9n\u00e9ficier d'un module de commentaires.\u003C\/p\u003E\r\n\u003Cp\u003EDeclarons le hook et ajoutons la fonction du hook\u003C\/p\u003E\r\n\u003Cpre class=\"language-php\"\u003E\u003Ccode\u003E&lt;?php  if(!defined('PLX_ROOT')) exit;\r\nclass monPlugin extends plxPlugin {\r\n \r\n    public function __construct($default_lang){\r\n    # Appel du constructeur de la classe plxPlugin (obligatoire)\r\n    parent::__construct($default_lang);\r\n\r\n    # D\u00e9claration des hooks\r\n    $this-\u003EaddHook('plxShowStaticContent', 'plxShowStaticContent');\r\n    } \r\n    \r\n\t# methode qui modifie la fonction $plxShow-\u003EstaticContent())\r\n    public function plxShowStaticContent() { \t\t\r\n\t\t# insertion des commentaires et formulaire\t\t\t\r\n\t\techo '&lt;?php';\r\n\t\t?\u003E \r\n               \/\/ ici le code \u00e0 injecter et \u00e0 interpr\u00e9ter dans la fonction staticContent()\r\n\t\t&lt;?php\r\n\t\techo'?\u003E';\r\n    }\r\n}\u003C\/code\u003E\u003C\/pre\u003E\r\nPour injecter et ajouter ce code dans la page statique, nous allons suivre la m\u00e9thode utiliser dans la fonction qui fait d\u00e9j\u00e0 quelque chose de similaire en injectant le contenu de la page statique, il suffit de reproduire cette m\u00e9thode \u003C\/p\u003E\r\n\u003Cpre class=\"language-php\"\u003E\u003Ccode\u003E            # Inclusion du fichier\r\n            ob_start();\r\n            require $file;\r\n            $output = ob_get_clean();\r\n            eval($this-\u003EplxMotor-\u003EplxPlugins-\u003EcallHook('plxShowStaticContent'));\r\n            echo $output;\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Cp\u003EL'injection de notre script va se produire juste avant \u003Ccode class=\"language-php\"\u003E echo $output;\u003C\/code\u003E, nous devons donc inclure le script dans \u003Ccode class=\"language-php\"\u003E echo $output;\u003C\/code\u003E.\u003C\/p\u003E\r\n\u003Cp  class=\"alert blue\"\u003EPour simplifier la lecture du code et facilement mettre \u00e0 jour notre script, nous sauvegardons le script dans un fichier externe, c'est lui que nous allons inclure.\u003C\/p\u003E\r\n\u003Cp\u003ECe qui donne en copiant le fonctionnement de la fonction staticContent().\u003C\/p\u003E\r\n\u003Cpre class=\"language-php\"\u003E\u003Ccode\u003E&lt;?php  if(!defined('PLX_ROOT')) exit;\r\nclass MonPlugin extends plxPlugin {\r\n \r\n    public function __construct($default_lang){\r\n    # Appel du constructeur de la classe plxPlugin (obligatoire)\r\n    parent::__construct($default_lang);\r\n\r\n    # D\u00e9claration des hooks\r\n    $this-\u003EaddHook('plxShowStaticContent', 'plxShowStaticContent');\r\n    } \r\n    \r\n\t# methode qui modifie la fonction $plxShow-\u003EstaticContent())\r\n    public function plxShowStaticContent() { \t\t\r\n\t\t# insertion des commentaires et formulaire\t\t\t\r\n\t\techo '&lt;?php';\r\n\t\t?\u003E   \r\n\t\tob_start();\r\n\t\tinclude( PLX_PLUGINS.'MonPlugin\/include.commentaire.php');\r\n\t\t$output .= ob_get_clean();\r\n\t\t&lt;?php\r\n\t\techo'?\u003E';\r\n     \r\n    }\r\n}\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Cp class=\"alert green\"\u003EIl suffit maintenant de cr\u00e9er un troisi\u00e8me fichier vide , appeler \u003Ccode\u003Einclude.commentaire.php\u003C\/code\u003E et de coller \u00e0 l'int\u00e9rieur le script \u003Ca href=\"https:\/\/pluxopolis.net\/commentaires-dans-une-page-statique.html#script\" target=\"_blank\" \u003E commentaires dans une page statique\u003C\/a\u003E. enregistrer ce fichier dans le r\u00e9pertoire de votre nouveau plugin.\u003C\/p\u003E\r\n\u003Cp\u003EIl ne reste plus qu'a activ\u00e9 le plugin pour voir toutes vos pages statiques dot\u00e9es d'un module de commentaires.\u003C\/p\u003E\r\n\u003Ch3\u003EC'est pas si compliqu\u00e9!\u003C\/h3\u003E\r\n\u003Cp\u003EPluXml \u00e0 tout pr\u00e9vu pour laisser \u00e0 chacun la possibilit\u00e9 de modifier son fonctionnement en l\u2019agr\u00e9mentant de diverses fonctionnalit\u00e9s sans avoir \u00e0 toucher au c\u0153ur m\u00eame de PluXml.\u003C\/p\u003E\r\n\u003Cp\u003ENous venons juste de voir l'injection d'un seul script, mais l'on peut faire beaucoup plus. \u003C\/p\u003E\r\n\u003Chr\u003E\r\n\u003Cp\u003ECode disponible sur github @ \u003Ca href=\"https:\/\/github.com\/gcyrillus\/MonPlugin\" target=\"_blank\"\u003Ehttps:\/\/github.com\/gcyrillus\/MonPlugin\u003C\/a\u003E.\u003C\/p\u003E\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\u003Chr\u003E",
            "tags": "Programmation, Plugins, Tutoriels",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/pexels-photo-270348.jpeg",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0108",
            "author": "002",
            "categorie": "006,013",
            "url": "faire-dun-script-un-plugin",
            "date": "202401262327",
            "nb_com": 2,
            "date_creation": "202401262327",
            "date_update": "202408272150"
        },
        {
            "filename": ".\/data\/articles\/0107.001,013.002.202312151616.developpement-dun-plugin.xml",
            "title": "d\u00e9veloppement d'un plugin",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Ch3\u003EPr\u00e9requis\u003C\/h3\u003E\n\u003Cp\u003ELe d\u00e9veloppement d'un plugin n'est pas chose ais\u00e9e lorsque l'on ne connait pas  bien le fonctionnement de PluXml. Cela peut-\u00eatre mission impossible si, PHP et vous, \u00eates de parfais inconnus pour l'un et l'autre.\u003C\/p\u003E\n\n\u003Cp\u003EUn minimum de connaissance en PHP est un pr\u00e9requis , mais aussi  la capacit\u00e9 de d\u00e9boguer sont propre code. L''id\u00e9al est aussi d'avoir quelques comp\u00e9tences en JavaScript , HTML et CSS pour g\u00e9rer l'ensemble des fonctionnalit\u00e9s du plugin pour son int\u00e9gration dans votre PluXml et votre th\u00e8me.\u003C\/p\u003E\n\n\u003Cp\u003EAvec ces pr\u00e9requis, vous pouvez prendre connaissance de la documentation et de ses quelques exemples fournis. En d\u00e9cortiquant l'un des \u003Ca href=\"https:\/\/pluxopolis.net\/plugins.html\" target=\"_blank\"\u003Enombreux plugins disponibles\u003C\/a\u003E la documentation n'en sera que plus facile \u00e0 lire et \u00e0 comprendre.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article107\/developpement-dun-plugin\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"developpement-dun-plugin\"\n\t\t\t},\n\t\t\t\"headline\": \"d\u00e9veloppement d'un plugin\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/plugins\/theCrock\/icon.png\",\n\t\t\t\t\"datePublished\": \"2023-12-15T16:16:00Z\",\n\t\t\t\"dateModified\": \"2023-12-17T10:54:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"plugin, generateur, outils\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch3\u003EJe suis pr\u00eat, action!\u003C\/h3\u003E\n\u003Cp\u003ELa construction d'un plugin commence par choisir un nom, nom qui servira de r\u00e9pertoire, de nom au fichier php de class et au nom de class de ce Plugin .\u003Cbr\u003E Le fichier \u003Cb\u003Einfos.xml\u003C\/b\u003E, carte d'identit\u00e9 de votre plugin, est aussi obligatoire .\u003C\/p\u003E\n\u003Cp\u003ECe qui donne comme premier dossier et fichiers de votre projet :\u003C\/p\u003E\n\u003Cdiv id=\"wiz\" style=\"margin:2em auto;width:max-content;padding:1.5em;border-radius:3px;border:solid 2px lightgray\"\u003E\n\u003Cdl\u003E\n\u003Cdt\u003EmonPlugin\u003C\/dt\u003E\n\u003Cdd\u003EmonPlugin.php\u003C\/dd\u003E\n\u003Cdd\u003Einfos.xml\u003C\/dd\u003E\n\u003C\/dl\u003E\n\u003C\/div\u003E\n\u003Cp\u003EC'est bien, c'est le minimum requis pour un plugin.\u003C\/p\u003E\n\u003Ch4\u003EEnsuite?\u003C\/h4\u003E\n\u003Cp\u003E en parcourant la documentation , vous allez au fur et \u00e0 mesure ajouter les codes de base n\u00e9cessaires \u00e0 ces deux fichiers et rapidement obtenir le squelette d'un plugin reconnu par PluXml et qui sera installable, mais qui ne fera pas grand chose \u00e0 ce stade.\u003C\/p\u003E\n\u003Cp\u003E Cette partie n'est pas la plus joyeuse et lorsque vous aurez d\u00e9velopp\u00e9 quelques plugins, vous reprendrez surement l'un deux pour en garder toutes les bases dont vous avez besoin au lieu de les recoder en gagnant du temps pour aller \u00e0 l'essentiel.\u003C\/p\u003E\n\u003Ch3\u003EPeut-on faire plus facile, rapide?\u003C\/h3\u003E\n\u003Cdiv class=\"alert green\" style=\"max-width:max-content;margin:1em auto;font-weight:bolder\"\u003E-- Oui, certainement.\u003C\/div\u003E\n\u003Cp\u003EPluxopolis vous propose un g\u00e9n\u00e9rateur de plugin en ligne  avec plusieurs options param\u00e9trables pour passer cette premi\u00e8re \u00e9tape, essentielle mais chronophage, avec seulement les fonctionnalit\u00e9s et hooks dont vous aurez besoin. \u003Cb\u003EPlus besoin de cloner et de nettoyer un autre projet de plugin pour en d\u00e9marrer un nouveau\u003C\/b\u003E.\u003C\/p\u003E\n\u003Cdiv class=\"alert green\" style=\"max-width:max-content;margin:1em auto;font-weight:bolder\"\u003E C'est ici : \u003Ca href=\"https:\/\/pluxopolis.net\/thecrock\" target=\"_blank\"\u003ELe Chaudron \u00e0 plugin\u003C\/a\u003E. \u003C\/div\u003E\n\u003Cp\u003E Cette marmite \u00e0 plugin est elle m\u00eame un plugin que vous pouvez installer chez vous si vous pr\u00e9f\u00e9rez, son archive se trouve sur  : \u003Ca href=\"https:\/\/github.com\/gcyrillus\/theCrock\"\u003EGithub plugin - theCrok -\u003C\/a\u003E de son nom.\u003C\/p\u003E\n\u003Cp class=\"alert blue\" style= \"margin:1em 1em 2em\"\u003E\u003Cb\u003ECela n\u2019\u00e9limine pas les pr\u00e9requis, il vous restera \u00e0 coder vos nouvelles fonctionnalit\u00e9s et de l'aide pourra vous \u00eatre donn\u00e9e dans le \u003Ca href=\"https:\/\/forum.pluxml.org\/\" target=\"_blank\"\u003E forum de PluXml \u003C\/a\u003E pour finaliser votre p\u00e9pite.  \u003C\/p\u003E\n\u003Cp\u003EBon dev \u00e0 tous.\u003C\/p\u003E\n\n\u003Cdiv style =\"margin:1em 1em 3em;border-radius:.5em;background:rgba(0,0,0,0.05);font-size:.8rem;color:#444;padding:1em\"\u003E\n\u003Cp\u003ECe plugin n'est pas le premier outil qui veut vous aider dans les premiers pas du developpement d'un plugin.\u003Cbr\u003E\nIl existe:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E ce script en ligne : \u003Ca href=\"http:\/\/outils.warriordudimanche.net\/outils\/pluxml_plugin_starter.php\" target=\"_blank\"\u003EPlugin Starter\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003ECette base de plugin :\u003Ca href=\" https:\/\/ressources.pluxopolis.net\/banque-plugins\/plugins\/Plugin.zip\"\u003EPlugin.zip\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E et celle-ci  \u003Ca href=\"https:\/\/ressources.pluxopolis.net\/banque-plugins\/plugins\/test.zip\"\u003Etest.zip\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\u003Cp\u003EEntre autre outils , vous avez aussi, \u003Ca href=\"https:\/\/ressources.pluxopolis.net\/banque-plugins\/plugins\/kzTranslate-1_1_0.zip\"\u003EkzTranslate.zip\u003C\/a\u003E pour traduire votre fichier de langue en une ou plusieurs autre langues. Attention, ce plugin ne traduit que du texte brut. Si vous ins\u00e9rer des balises HTML , comme je le fais moi-m\u00eame fr\u00e9quemment, le plugin ne finalisera pas la traduction.  \u003C\/p\u003E\n\n\n\n\u003C\/div\u003E",
            "tags": "plugin, generateur, outils",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "plugins\/theCrock\/icon.png",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0107",
            "author": "002",
            "categorie": "001,013",
            "url": "developpement-dun-plugin",
            "date": "202312151616",
            "nb_com": 0,
            "date_creation": "202312151616",
            "date_update": "202312171054"
        },
        {
            "filename": ".\/data\/articles\/0106.001,013.002.202308012126.essais-seo.xml",
            "title": "essais SEO",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003EDes questions sur le SEO, ou comment optimiser son site pour les \"moteurs de recherches\" reviennent r\u00e9guli\u00e8rement sur le forum de PluXml\u003C\/p\u003E\r\n\u003Cp\u003E Malgr\u00e9 les qualit\u00e9s ind\u00e9niables de PluXml, le peut de contributeur et d'expert en diff\u00e9rent domaine ne permette pas \u00e0 PluXml d'\u00e9voluer aussi rapidement qu'on le souhaite dans les diff\u00e9rents domaines d'expertises afin d'en tirer les meilleur partis, m\u00eame si l'essentiel existe et est en place dans PluXml\u003C\/p\u003E\r\n\u003Cp\u003EAu del\u00e0 des bonnes pratiques et des quelques m\u00e9tadonn\u00e9es que PluXml permet de renseigner , des plugins et scripts existent pour ajouter et am\u00e9liorer le r\u00e9f\u00e9rencement de votre site. \u003C\/p\u003E\r\n\u003Cp\u003EOn peut retrouver des plugins sur le \u003Ca href=\"https:\/\/ressources.pluxopolis.net\/banque-plugins\/index.php?all_versions&grille\" title=\"centre de ressources plugins\" target=\"_blank\"\u003Ecentre de ressources\u003C\/a\u003E et  des scripts et astuces sur le \u003Ca href=\"https:\/\/forum.pluxml.org\" target=\"_blank\" title=\"forum de pluxml\"\u003Eforum de PluXml\u003C\/a\u003E. Certains sont trop sp\u00e9cifiques pour se suffirent, d'autres sont en parti devenus obsol\u00e8te avec le changement des bonnes pratiques ou la disparition de certains r\u00e9seaux sociaux.\u003C\/p\u003E\r\n\u003Cp\u003EEn creusant un peu l'on d\u00e9couvre que le sujet est tr\u00e8s complexe et qu'il n'est pas n\u00e9cessaire ou possible de mettre en place toutes les recommandations. Cela d\u00e9pendra du contenu(sujet de votre Site mais aussi de chaque pages individuellement), de votre public, de vos comp\u00e9tences mais aussi de votre budget si vous souhaitez confier cette tache \u00e0 un professionnel.\u003C\/p\u003E\r\n\u003Cp\u003ELe plugin, tente de regrouper quelques moyens qui faciliteront le r\u00e9f\u00e9rencement et le partage de votre site. Ce plugin est compatible avec les plugin plxMyMultiLingue, plxMyBetterUrls et plxMySearch .\u003C\/p\u003E\r\n\u003Cp class=\"alert green\"\u003Eplugin mis \u00e0 jour, conserve les options d'url canonique et gestion des pages d'erreur jusqu'\u00e0 la version 5.8.14 de PluXml\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article106\/essais-seo\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"essais-seo\"\n\t\t\t},\n\t\t\t\"headline\": \"essais SEO\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/news\/icon.png\",\n\t\t\t\t\"datePublished\": \"2023-08-01T21:26:00Z\",\n\t\t\t\"dateModified\": \"2024-08-05T19:36:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, R\u00e9f\u00e9rencement, Plugins\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003EL'installation du plugin est standard et sa configuration ne pr\u00e9sente pas de difficult\u00e9 particuli\u00e8res. Il s'agit d'activ\u00e9 ou non la g\u00e9n\u00e9ration des m\u00e9tadonn\u00e9es et des URL canoniques. toutes ind\u00e9pendamment.\u003C\/p\u003E\r\n\u003Cp\u003EIl est aussi possible de voir et d'\u00e9diter les fichiers \u003Ccode class=\"language-html\"\u003Erobots.txt\u003C\/code\u003E et \u003Ccode class=\"language-html\"\u003Ehumans.txt\u003C\/code\u003E. Les fichiers \u003Ccode class=\"language-html\"\u003Eads.txt\u003C\/code\u003E et \u003Ccode class=\"language-html\"\u003E.htaccess\u003C\/code\u003E ne sont pas concern\u00e9 dans cette premi\u00e8re version.\u003C\/p\u003E\r\n\u003Cp\u003ELes options de configurations sont:\u003C\/p\u003E\r\n\u003Col dir=\"auto\"\u003E\r\n\u003Cli\u003EAjout de  l'URL canonique de la page\u003C\/li\u003E\r\n\u003Cli\u003Eoption d'exclusion de certaines cat\u00e9gories ou page statiques du \u003Ccode class=\"language-html\"\u003Esitemp\u003C\/code\u003E de PluXml.\u003C\/li\u003E\r\n\u003Cli\u003EAjout des donn\u00e9es structur\u00e9es pour des r\u00e9sultats enrichis\u003C\/li\u003E\r\n\u003Cli\u003EAjout des balises META OpenGraph\u003C\/li\u003E\r\n\u003Cli\u003EAjout des balises META 'Twitter Card'\u003C\/li\u003E\r\n\u003Cli\u003El'edition des fichiers robots.txt et humans.txt\u003C\/li\u003E\r\n\u003Cli\u003ED\u00e9clarer le plugin plxMySearch comme un moteur de recherche pour le navigateur (cr\u00e9ation du fichier opensearch.xml)\u003C\/li\u003E\r\n\u003C\/ol\u003E\r\n\u003Cp\u003ELe plugin  est t\u00e9l\u00e9chargeable depuis github : \u003Ca href=\"https:\/\/github.com\/gcyrillus\/extra_SEO\" target=\"_blank\" title=\"repository sur github\"\u003Eextra_SEO\u003C\/a\u003E.et \u003Ca href=\"https:\/\/ressources.pluxopolis.net\/banque-plugins\/plugins\/extra_SEO-v-2.0.8.zip\"\u003Eextra_SEO-v-2.0.8.zip\u003C\/a\u003E\u003C\/p\u003E",
            "tags": "PluXml, R\u00e9f\u00e9rencement, Plugins",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/news\/icon.png",
            "thumbnail_title": "icone vu dans l'administration",
            "thumbnail_alt": "icone du plugin: extra_SEO",
            "numero": "0106",
            "author": "002",
            "categorie": "001,013",
            "url": "essais-seo",
            "date": "202308012126",
            "nb_com": 0,
            "date_creation": "202307272126",
            "date_update": "202408051936"
        },
        {
            "filename": ".\/data\/articles\/0105.001,007.002.202307181309.commentaires-dans-une-page-statique.xml",
            "title": "Commentaires dans une page statique",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003ESur le forum de \u003Ca href=\"https:\/\/forum.pluxml.org\" target=\"_blank\"\u003EPluXml\u003C\/a\u003E, Il revient r\u00e9guli\u00e8rement la question de \u003Cem\u003EComment ins\u00e9rer les commentaires dans une page statiques?\u003C\/em\u003E.\u003C\/p\u003E\n\u003Cp\u003ELes astuces propos\u00e9es se basent toutes sur l'utilisation d'un article, soit en l'affichant dans la page statique avec la fonction \u003Ccode\u003ElastArtList()\u003C\/code\u003E soit avec une redirection 301 vers cet article d\u00e9tourn\u00e9\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003EAvantage\u003C\/strong\u003E:\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E toutes les fonctions sont d\u00e9j\u00e0 pr\u00e9sentes dans PluXml, il n'y a rien \u00e0 d\u00e9velopper\u003C\/li\u003E\n\u003Cli\u003E les derniers commentaires peuvent s'afficher dans la barre de navigation via la fonction \u003Ccode\u003ElastComList()\u003C\/code\u003E.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\u003Cstrong\u003ED\u00e9savantage\u003C\/strong\u003E: \u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003EOn veux une page, pas un article\u003C\/p\u003E\n\u003Cli\u003ECela n\u00e9cessite de cr\u00e9er un article et \u00e9ventuellement une cat\u00e9gorie d\u00e9di\u00e9e \u003C\/li\u003E\n\u003Cli\u003ECela n\u00e9cessite de cacher cette article et sa cat\u00e9gorie  de la navigation.\u003C\/li\u003E\n\u003Cli\u003Eaccessoirement les extraire du sitemap aussi\u003C\/li\u003E\n\u003Cli\u003E pas de pagination , sauf \u00e0 trouver un plugin pour le faire et pour l'ensemble des articles.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003EProposons alors, une autre approche avec un script \"maison\"! et qui inclus une pagination sur les commentaires.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article105\/commentaires-dans-une-page-statique\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"commentaires-dans-une-page-statique\"\n\t\t\t},\n\t\t\t\"headline\": \"Commentaires dans une page statique\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/images\/comments.png\",\n\t\t\t\t\"datePublished\": \"2023-07-18T13:09:00Z\",\n\t\t\t\"dateModified\": \"2024-01-30T18:52:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Commentaires, Page statique, pagination, PluXml\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch3\u003EAlternative: Un script de commentaire d\u00e9di\u00e9 \u00e0 une page.\u003C\/h3\u003E\n\u003Cp\u003ECe script est developp\u00e9 \u00e0 partir de l'exemple de l'article \u003Ca href=\"https:\/\/pluxopolis.net\/paginer-le-contenu-d-une-page-statique.html\" target=\"_blank\"\u003EPaginer le contenu d'une page statique\u003C\/a\u003E pour la pagination et son visuel ainsi que du fichier \u003Ccode\u003Ecommentaires.php\u003C\/code\u003E du th\u00e8me par d\u00e9faut de Pluxml en respectant sa structure HTML et les styles appliqu\u00e9s aux commentaires et au formulaire.\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003ED\u00e9savantage\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E Le script est en partie d\u00e9velopp\u00e9\u003C\/li\u003E\n\u003Cli\u003E Les derniers commentaires n'apparaissent pas dans la barre de navigation si vous utilis\u00e9 la fonction \u003Ccode\u003ElastComList()\u003C\/code\u003E\u003C\/li\u003E\n\u003Cli\u003E Pas de mod\u00e9ration, sauf \u00e0 le faire manuellement. \u003C\/li\u003E\n\u003Cli\u003E Le script est \u00e0 inclure dans la page statique concern\u00e9e\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Cp\u003E\u003Cstrong\u003EAvantages\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cul\u003E\n\u003Cli\u003E Le script est en partie d\u00e9velopp\u00e9, on fait ce que l'on veut sans impact\u00e9 la gestion des commentaires dans les articles.\u003C\/li\u003E\n\u003Cli\u003E Le script est configurable et seulement pour la page dans laquelle il se trouve\u003C\/li\u003E\n\u003Cli\u003E Le capcha natif de PluXml est disponible.\u003C\/li\u003E\n\u003Cli\u003E Ce n'est pas un plugin, le script n'est charg\u00e9 que dans cette page.\u003C\/li\u003E\n\u003Cli\u003ELe script est insensible aux mises \u00e0 jour, sauf si la fonction de l'appel au capcha de PluXml n'existe plus.\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003Ch3\u003ELe script\u003C\/h3\u003E\n\u003Ch4\u003EOption de configuration\u003C\/h4\u003E\n\u003Cp\u003E Il y a quelques variables qui peuvent \u00eatre ajust\u00e9 pour d\u00e9termin\u00e9 le visuel et la pagination dans le bloc :\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E\t#########################################\n\t#configuration\n\t#########################################\n\t# nombre de Commentaire \u00e0 afficher par page\n\t$bypage = 4;\n\t\n        # mettre true au lieu de false pour afficher les liens de chaque page\n\t$intermediaire = false; \n\n\t# mettre a true pour afficher la derni\u00e8re page des commentaires par d\u00e9faut\n\t$showLast = true;\n\t#########################################\n\t# FIN configuration\n\t#########################################\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003ENe toucher \u00e0 rien d'autre sauf \u00e0 savoir ce que vous faites et \u00e0 vos risques.\u003C\/p\u003E\n\u003Ch3 id=\"script\"\u003ELe code \u00e0 copier\/coller dans la page statique\u003C\/h3\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E&lt;?php\n\t# Ajout commentaires dans une page statique\n\t# Pagination des commentaires\n\t# reponses aux commentaires\n\t# inclusion du capcha natif de PluXml\n\t# @Author Gcyrillus\n\t\n\t# $this is $plxShow\n\t#########################################\n\t#configuration\n\t#########################################\n\t\n\t# nombre de Commentaire \u00e0 afficher par page\n\t$bypage = 4;\n\t\n    # mettre true au lieu de false pour afficher les liens de chaque page\n\t$intermediaire = false; \n\n\t# mettre a true pour afficher la derni\u00e8re page des commentaires par d\u00e9faut\n\t$showLast = true;\n\t\n\t#########################################\n\t# FIN configuration\n\t#########################################\n\t\n\t# fichier de stockage des commentaires\n\t$commentsFile = PLX_ROOT.'\/data\/statiques\/comment-'.$this-\u003EstaticId().'.json';\n\tif(!file_exists($commentsFile)) { \n\t\ttouch($commentsFile);\n\t\tfile_put_contents($commentsFile,'[]');\n\t}\n\t\n\t# extraction des commentaires dans un tableau\n\t$comments =  json_decode(file_get_contents($commentsFile), true);\n\t$num = count($comments);\n\t# format du message apr\u00e9s soumission du formulaire \n\t$row ='&lt;p id=\"com_message\" class=\"#com_class\"\u003E&lt;strong\u003E#com_message&lt;\/strong\u003E&lt;\/p\u003E';\t\n\t\n\t# As t-on de nouveaux commentaires ?\n\tif(isset($_POST)){\n\t\t# color boite message par d\u00e9faut\n\t\t$color = 'orange';\n\t\t$level='level-0';\n\t\tif(isset($_POST['name']) AND isset($_POST['content'])) {\n\t\t\t\n\t\t\tif( $_POST['name'] =='' OR $_POST['content'] =='') {\n\t\t\t\t$_SESSION['msgcom'] =  L_NEWCOMMENT_FIELDS_REQUIRED;\n\t\t\t}\t\t\t\n\t\t\tif(!empty($this-\u003EaConf['capcha']) AND (empty($_SESSION['capcha_token']) OR\tempty($_POST['capcha_token']) or ($_SESSION['capcha_token'] != $_POST['capcha_token']))) {\n\t\t\t\t$_SESSION['msgcom'] .= ' '. L_NEWCOMMENT_ERR_ANTISPAM;\n\t\t\t}\t\t\n\t\t\telse {\t\t\n\t\t\t\t# On v\u00e9rifie que le capcha est correct\n\t\t\t\tif($this-\u003EplxMotor-\u003EaConf['capcha'] == 0 OR $_SESSION['capcha'] == sha1($_POST['rep'])) {\n\t\t\t\t\tif(isset($_POST['level'])) \n\t\t\t\t\t{\n\t\t\t\t\t\t$level = trim($_POST['level']) ;\n\t\t\t\t\t\tif($level == 'level-5' || $level =='level-max' ) {$level ='level-max';}\n\t\t\t\t\t\telse {$level++;}\n\t\t\t\t\t}\n\t\t\t\t\t$newcomment[] = array(\n\t\t\t\t\t'num'\t\t=\u003E trim(strip_tags($_POST['num'])),\n\t\t\t\t\t'date'\t\t=\u003E date('d-m-Y') ,\n\t\t\t\t\t'name'\t\t=\u003E trim(strip_tags($_POST['name'])) , \n\t\t\t\t\t'mail'\t\t=\u003E trim(strip_tags($_POST['mail']))  , \n\t\t\t\t\t'site'\t\t=\u003E trim(strip_tags($_POST['site'])), \n\t\t\t\t\t'content' \t=\u003E trim(strip_tags($_POST['content'])),\n\t\t\t\t\t'level'\t\t=\u003E trim(strip_tags($level))\n\t\t\t\t\t);\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t$color = 'green';\n\t\t\t\t\t$_SESSION['msgcom'] = L_COM_PUBLISHED;\n\t\t\t\t\t\n\t\t\t\t\t# est ce une reponse \u00e0 un commentaire particulier?\n\t\t\t\t\tif(isset($_POST['index']))\n\t\t\t\t\t{\n\t\t\t\t\t\tarray_splice($comments, trim($_POST['index'])+1, 0, $newcomment);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\t\n\t\t\t\t\t\tarray_push($comments,$newcomment[0]);\n\t\t\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t\t\n\t\t\t\t\tfile_put_contents($commentsFile, json_encode($comments,true|JSON_PRETTY_PRINT) );\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$_SESSION['msgcom'] =  L_NEWCOMMENT_ERR_ANTISPAM;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t\n\tif(count($comments)\u003E0) {\n\t\t$tittleComment =\"&lt;h3\u003E\".count($comments).' '. L_COMMENT .\"&lt;\/h3\u003E\";\t\t\n\t\tif(count($comments)\u003E1) {\n\t\t\t$tittleComment =\"&lt;h3\u003E\".count($comments).' '.  L_COMMENTS .\"&lt;\/h3\u003E\";\t\t\t\n\t\t}\n\t\techo $tittleComment ;\n\t\t\n\t\t# Style barre pagination commentaires\n\t\techo '&lt;style\u003E:where(.page-item.page-link.active) { text-decoration:underline;font-weight:bold; padding:0.3em 2em;}.pagination.text-center.center.bordered {border-radius: 5px;width:max-content;  margin:auto;  border:solid 1px}#com_message:has(strong:empty){display: none;}.content_com {  white-space: pre-wrap;}&lt;\/style\u003E';\n\t\t\n\t\t\n\t\t#############################\n\t\t# extraction et maj variables\n\t\t#############################\n\t\t\n\t\t# extraction de l'url\n\t\t$url = $this-\u003EplxMotor-\u003EurlRewrite('?static' . $this-\u003EstaticId() . '\/' . $this-\u003EplxMotor-\u003EaStats[str_pad($this-\u003EstaticId(), 3, '0', STR_PAD_LEFT)]['url'] );\n\t\t\n\t\t# generation du lien\n\t\t$link = $this-\u003EplxMotor-\u003EurlRewrite($url.\"\/page\");\n\t\t\n\t\t\/\/ On calcule le nombre de pages total\n\t\t$nbr = count($comments);\n\t\t$pages = ceil( $nbr \/ $bypage);\n\t\t$position = 1;\n\t\tif($showLast==true) $position = $pages;\n\t\t\n\t\t# extraction du num\u00e9ro de page dans l'URL \n\t\t$currentPage = preg_match('#\\bpage(\\d*)#',$_SERVER['REQUEST_URI'], $capture) ? intval($capture[1]) : $position;\n\t\t\n\t\t# indice de d\u00e9but, premier article \u00e0 afficher\n\t\t$start = ($currentPage - 1) * $bypage;\t\n\t\t\n\t\t\/\/ Calcul du 1er commentaire de la page\n\t\t$premier = ($currentPage * $bypage) - $bypage;\n\t\t;\t\t\n\t\t\n\t\t$pagecomments = array_slice($comments, $premier, $bypage);\n\t\t\n\t\tforeach($pagecomments as $com =\u003E$val) { # On boucle sur les commentaires \t\n\t\t\t$index=array_search( $val['num'], array_column( $comments, 'num' ) );\n\t\t\techo '&lt;div id=\"id-'.$val['num'].'\" class=\"comment '.$val['level'].'\"\u003E\n\t\t\t&lt;div id=\"com-'.$val['num'].'\" data-index=\"'.$index.'\" data-level=\"'.$val['level'].'\"\u003E\n\t\t\t&lt;small\u003E\n\t\t\t&lt;a class=\"nbcom\" href=\"'.$_SERVER['REQUEST_URI'].'#com-'.$val['num'].'\" title=\"#commentaire '.$val['num'].'\"\u003E#'.$val['num'].'&lt;\/a\u003E&nbsp;\n\t\t\t&lt;time datetime=\"'.$val['date'].'\"\u003E'.$val['date'].'&lt;\/time\u003E - '.$val['name'].' '. $this-\u003EgetLang('SAID').':\n\t\t\t&lt;\/small\u003E\n\t\t\t&lt;blockquote\u003E\n\t\t\t&lt;p class=\"content_com\"\u003E'.$val['content'].'&lt;\/p\u003E\n\t\t\t&lt;\/blockquote\u003E';\n\t\t\tif($this-\u003EplxMotor-\u003EaConf['allow_com']){\n\t\t\t\techo '&lt;a rel=\"nofollow\" href=\"#form\" onclick=\"replyCom(\\''.trim($val['num']).'\\');\"\u003E'.$this-\u003EgetLang('REPLY').'&lt;\/a\u003E';\n\t\t\t}\n\t\t\techo '&lt;\/div\u003E\n\t\t\t&lt;\/div\u003E';\t\t\t\t\n\t\t}\n\t?\u003E\t\t\n\t&lt;!-- Affichage de la pagination --\u003E\n\t\n\t&lt;?php\n\t\t############################\n\t\t# Affichage de la pagination\n\t\t############################\n\t\tif($pages\u003E1){\n\t\t?\u003E\n\t\t&lt;nav\u003E\n\t\t\t&lt;ul class=\"pagination text-center center bordered\"\u003E\n\t\t\t\t&lt;!-- Lien vers la page pr\u00e9c\u00e9dente (si on ne se trouve pas sur la 1\u00e8re page) --\u003E\n\t\t\t\t&lt;?= ($currentPage \u003E 1)  ? \"&lt;li class=\\\"page-item\\\" \u003E&lt;a href=\\\"\".$link . ($currentPage - 1) .\"\\\" class=\\\"page-link\\\"\u003E\".L_PAGINATION_PREVIOUS.\"&lt;\/a\u003E&lt;\/li\u003E\" : \"\" ?\u003E\n\t\t\t\t\n\t\t\t\t&lt;?php if($intermediaire == true)  {\n\t\t\t\t\tfor($page = 1; $page &lt;= $pages; $page++) {\n\t\t\t\t\t\t# Lien vers chacune des pages (activ\u00e9 si on se trouve sur la page correspondante\n\t\t\t\t\t\techo '&lt;li class=\"page-item ';\n\t\t\t\t\t\tif($currentPage == $page)  echo 'active';\n\t\t\t\t\t\techo \"\\\"\u003E&lt;a href=\\\"\".$link.$page .\"\\\" class=\\\"page-link\\\"\u003E\".$page.\"&lt;\/a\u003E&lt;\/li\u003E\";\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\techo \"&lt;li class=\\\"page-item page-link  active \\\"\u003E\n\t\t\t\t\t\".$currentPage.\" \/ \". $pages.\"\n\t\t\t\t\t&lt;\/li\u003E\";\t\n\t\t\t\t\t\n\t\t\t\t}\t?\u003E\n\t\t\t\t&lt;!-- Lien vers la page suivante (si on ne se trouve pas sur la derni\u00e8re page) --\u003E\n\t\t\t\t&lt;?= ($currentPage &lt; $pages) ? \" &lt;li class=\\\"page-item\\\"\u003E&lt;a href=\\\"\".$link.($currentPage + 1 ).\"\\\" class=\\\"page-link\\\"\u003E\".L_PAGINATION_NEXT.\"&lt;\/a\u003E&lt;\/li\u003E\" : \"\" ?\u003E\n\t\t\t\t\n\t\t\t&lt;\/ul\u003E\n\t\t&lt;\/nav\u003E\n\t\t&lt;?php\t}\n\t}\n\telse {\n\t\techo L_NO_COMMENT;\n\t}\n\t\n\t\n\tif (!empty($_SESSION['msgcom'])) {\n\t\t$message=$_SESSION['msgcom'];\n\t\t$row = str_replace('#com_class', 'alert ' . $color, $row);\n\t\tunset($_SESSION['msgcom']);\n\t}\n\telse {\n\t\t$message='';\n\t\t\n\t}\n\t$row = str_replace('#com_message',$message , $row);\n?\u003E\n&lt;h3\u003E\n\t&lt;?php $this-\u003Elang('WRITE_A_COMMENT') ?\u003E\n&lt;\/h3\u003E\n&lt;form id=\"form\" action=\"&lt;?php echo $_SERVER['REQUEST_URI']; ?\u003E#form\" method=\"post\"\u003E\n\t\n\t&lt;fieldset\u003E\n\t\t\n\t\t&lt;div class=\"grid\"\u003E\n\t\t\t&lt;div class=\"col sml-12\"\u003E\n\t\t\t\t&lt;label for=\"id_name\"\u003E&lt;?php $this-\u003Elang('NAME') ?\u003E* :&lt;\/label\u003E\n\t\t\t\t&lt;input id=\"id_name\" name=\"name\" type=\"text\" size=\"20\" value=\"\" maxlength=\"30\" required=\"required\" \/\u003E\n\t\t\t&lt;\/div\u003E\n\t\t&lt;\/div\u003E\n\t\t&lt;div class=\"grid\"\u003E\n\t\t\t&lt;div class=\"col sml-12 lrg-6\"\u003E\n\t\t\t\t&lt;label for=\"id_mail\"\u003E&lt;?php $this-\u003Elang('EMAIL') ?\u003E :&lt;\/label\u003E\n\t\t\t\t&lt;input id=\"id_mail\" name=\"mail\" type=\"text\" size=\"20\" value=\"\" \/\u003E\n\t\t\t&lt;\/div\u003E\n\t\t\t&lt;div class=\"col sml-12 lrg-6\"\u003E\n\t\t\t\t&lt;label for=\"id_site\"\u003E&lt;?php $this-\u003Elang('WEBSITE') ?\u003E :&lt;\/label\u003E\n\t\t\t\t&lt;input id=\"id_site\" name=\"site\" type=\"text\" size=\"20\" value=\"\" \/\u003E\n\t\t\t&lt;\/div\u003E\n\t\t&lt;\/div\u003E\n\t\t&lt;div class=\"grid\"\u003E\n\t\t\t&lt;div class=\"col sml-12\"\u003E\n\t\t\t\t&lt;div id=\"id_answer\"\u003E&lt;\/div\u003E\n\t\t\t\t&lt;label for=\"id_content\" class=\"lab_com\"\u003E&lt;?php $this-\u003Elang('COMMENT') ?\u003E* :&lt;\/label\u003E\n\t\t\t\t&lt;textarea id=\"id_content\" name=\"content\" cols=\"35\" rows=\"6\" required=\"required\"\u003E&lt;\/textarea\u003E\n\t\t\t&lt;\/div\u003E\n\t\t&lt;\/div\u003E\n\t\t\n\t\t&lt;?php echo $row;\t\t\n\t\tif($this-\u003EplxMotor-\u003EaConf['capcha']): ?\u003E\n\t\t\n\t\t&lt;div class=\"grid\"\u003E\n\t\t\t&lt;div class=\"col sml-12\"\u003E\n\t\t\t\t&lt;label for=\"id_rep\"\u003E&lt;strong\u003E&lt;?php echo $this-\u003Elang('ANTISPAM_WARNING') ?\u003E&lt;\/strong\u003E*&lt;\/label\u003E\n\t\t\t\t&lt;?php\n\t\t\t\t\t$this-\u003EplxMotor-\u003EplxCapcha = new plxCapcha(); # Cr\u00e9ation objet captcha\n\t\t\t\t\t$this-\u003EcapchaQ(); \n\t\t\t\t?\u003E\n\t\t\t\t&lt;input id=\"id_rep\" name=\"rep\" type=\"text\" size=\"2\" maxlength=\"1\" style=\"width: auto; display: inline;\" required=\"required\" \/\u003E\n\t\t\t&lt;\/div\u003E\n\t\t&lt;\/div\u003E\n\t\t\n\t\t&lt;?php endif; ?\u003E\t\t\n\t\t\n\t\t&lt;div class=\"grid\"\u003E\n\t\t\t&lt;div class=\"col sml-12\"\u003E\n\t\t\t\t&lt;input type=\"hidden\" id=\"num\" name=\"num\" value=\"&lt;?php echo $num + 1 ?\u003E\"\/\u003E\n\t\t\t\t&lt;input type=\"hidden\" id=\"id_parent\" name=\"parent\" value=\"\" \/\u003E\n\t\t\t\t&lt;input class=\"blue\" type=\"submit\" value=\"&lt;?php $this-\u003Elang('SEND') ?\u003E\" \/\u003E\n\t\t\t&lt;\/div\u003E\n\t\t&lt;\/div\u003E\n\t\t\n\t&lt;\/fieldset\u003E\n\t\n&lt;\/form\u003E\n\n&lt;script\u003E\n\tfunction replyCom(idCom) {\n\t\tdocument.getElementById('id_answer').innerHTML='&lt;?php $this-\u003Elang('REPLY_TO'); ?\u003E :';\n\t\tdocument.getElementById('id_answer').innerHTML+=document.getElementById('com-'+idCom).innerHTML;\n\t\tdocument.getElementById('id_answer').innerHTML+='&lt;input type=\"hidden\" name=\"index\" value=\"'+document.getElementById('com-'+idCom).getAttribute('data-index') +'\"\u003E';\n\t\tdocument.getElementById('id_answer').innerHTML+='&lt;input type=\"hidden\" name=\"level\" value=\"'+document.getElementById('com-'+idCom).getAttribute('data-level') +'\"\u003E';\n\t\tdocument.getElementById('id_answer').innerHTML+='&lt;a rel=\"nofollow\" href=\"#form\" onclick=\"cancelCom()\"\u003E&lt;?php $this-\u003Elang('CANCEL'); ?\u003E&lt;\/a\u003E';\n\t\tdocument.getElementById('id_answer').style.display='inline-block';\n\t\tdocument.getElementById('id_parent').value=idCom;\n\t\tdocument.getElementById('id_content').focus();\n\t}\n\tfunction cancelCom() {\n\t\tdocument.getElementById('id_answer').style.display='none';\n\t\tdocument.getElementById('id_parent').value='';\n\t\tdocument.getElementById('com_message').innerHTML='';\n\t}\n\tvar parent = document.getElementById('id_parent').value;\n\tif(parent!='') { replyCom(parent) }\n&lt;\/script\u003E\u003C\/code\u003E\u003C\/pre\u003E",
            "tags": "Commentaires, Page statique, pagination, PluXml",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/images\/comments.png",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0105",
            "author": "002",
            "categorie": "001,007",
            "url": "commentaires-dans-une-page-statique",
            "date": "202307181309",
            "nb_com": 0,
            "date_creation": "202307181309",
            "date_update": "202401301852"
        },
        {
            "filename": ".\/data\/articles\/0104.004,013.002.202307071512.pluxopolis-se-dote-dune-newsletter.xml",
            "title": "Pluxopolis se dote d'une NewsLetter",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "\u003Cp\u003EUn tout nouveau plugin fonctionnel vient de rejoindre les fonctionnalit\u00e9s que l'on peut ajouter \u00e0 notre CMS favoris.C'est lui qui vient d'\u00eatre activ\u00e9 sur pluxopolis.\u003C\/p\u003E\r\n\u003Ch3\u003ELe plugin myNewsLetter\u003C\/h3\u003E\r\n\u003Cp\u003ECe plugin \u00e0 encore besoin de murir au travers de tests \"utilisateurs\", tant en tant qu'abonn\u00e9 qu'en tant qu''administrateur de fa\u00e7on \u00e0 am\u00e9liorer son interface de configuration et l'aspect des news envoy\u00e9es.\u003C\/p\u003E\r\n\u003Ch3\u003EQu'a t-il de particulier?\u003C\/h3\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EIl ne d\u00e9pend pas d'un service tiers mais requiert que la fonction \u003Ccode class=\"language-php\"\u003Email()\u003C\/code\u003E soit fonctionnelle sur votre h\u00e9bergement\u003C\/li\u003E\r\n\u003Cli\u003ELes adresses mails sont stock\u00e9es crypt\u00e9es et ne sont compatibles qu'avec le plugin et le site sur lequel il a \u00e9t\u00e9 activ\u00e9.\u003C\/li\u003E\r\n\u003Cli\u003ELes envois peuvent \u00eatre automatis\u00e9s sans que le webmestre s'en souci. Dans ce cas , configurez bien votre newsletter avant de prendre cette option, car les news partiront sans pr\u00e9avis.\u003C\/li\u003E\r\n\u003Cli\u003ELes news sont g\u00e9n\u00e9r\u00e9es automatiquement \u00e0 l'aide d'un syst\u00e8me de template pour construire \"les nouvelles\". Configurables elles sont aussi \u00e9ditables. Construites sur des tableaux HTML pour une compatibilit\u00e9 maximale avec les messageries. C'est l'\u00e9diteur TinyMce6 (version CDN gratuite) qui a \u00e9t\u00e9 choisi pour l\u2019\u00e9dition apr\u00e8s en avoir test\u00e9 plusieurs.\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Ch3\u003ECritiques et retours de bogues\u003C\/h3\u003E\r\n\u003Cp\u003E&Agrave; priori d\u00e9di\u00e9 aux surbook\u00e9s, il n'est surement pas d\u00e9nu\u00e9 de d\u00e9fauts, c'est au utilisateurs de les d\u00e9busqu\u00e9s, si il y en a.\u003C\/p\u003E\r\n\u003Cp\u003EDites nous tout! - Les commentaires seront ferm\u00e9s d'ici quelques mois. Mais il y a d\u00e9j\u00e0 un sujet qui est ouvert sur le forum o\u00f9 vous pourrez partager vos critiques et demandes d'aides :  \u003Ca href=\"https:\/\/forum.pluxml.org\/discussion\/7475\/plugin-mynewsletter-systeme-de-newsletter-automatise-ou-non-adresses-mails-cryptees#latest\"\u003EMyNewsLetter, sujet sur le forum officiel de PluXml\u003C\/a\u003E.\u003C\/p\u003E\r\n\u003Cp\u003E\u003C\/p\u003E\r\n\u003Cp\u003EVous le retrouverez sur \u003Ca href=\"https:\/\/github.com\/gcyrillus\/MyNewsLetter\/tree\/main\"\u003Egithub\u003C\/a\u003E pour voir sa description compl\u00e8te, son code source et  t\u00e9l\u00e9charger sa derni\u00e8re version. ou dans les ressources pour pluxml sur le \u003Ca href=\"https:\/\/ressources.pluxopolis.net\/banque-plugins\/index.php?all_versions&grille\" target=\"_blank\"\u003ED\u00e9p\u00f4t de plugins multi-versions pour Pluxml\u003C\/a\u003E.\u003C\/p\u003E\r\n\u003Cp\u003EBon \u00e9t\u00e9 2023 \u00e0 tous\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article104\/pluxopolis-se-dote-dune-newsletter\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"pluxopolis-se-dote-dune-newsletter\"\n\t\t\t},\n\t\t\t\"headline\": \"Pluxopolis se dote d'une NewsLetter\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/images\/news.png\",\n\t\t\t\t\"datePublished\": \"2023-07-07T15:12:00Z\",\n\t\t\t\"dateModified\": \"2023-07-07T20:53:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Plugins, Audience, Email, PluXml\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Plugins, Audience, Email, PluXml",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/images\/news.png",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0104",
            "author": "002",
            "categorie": "004,013",
            "url": "pluxopolis-se-dote-dune-newsletter",
            "date": "202307071512",
            "nb_com": 1,
            "date_creation": "202307071512",
            "date_update": "202307072053"
        },
        {
            "filename": ".\/data\/articles\/0103.007.002.202306141404.exclure-les-liens-de-larticle-affiche.xml",
            "title": "exclure les liens de l'article affich\u00e9",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003ELorsque vous consultez un article, si celui ci est l'un des derniers parus, vous retrouvez son lien dans la liste des \"derniers articles\". et \u00e9ventuellement d'autres liens vers l'article dans \"les derniers commentaires\".\u003C\/p\u003E\n\u003Cp\u003EPour \u00e9viter ce qui peut-\u00eatre vu comme un \u003Ca href=\"https:\/\/forum.pluxml.org\/discussion\/7470\/utiliser-plxshow-lastartlist-avec-exclusion-de-larticle-affiche\" title=\"sujet sur le Forum de PluXml\" target=\"_blank\"\u003Ed\u00e9faut\u003C\/a\u003E. Il est possible d'exclure les liens de l'article en cours ainsi que les liens vers ses commentaires.\u003C\/p\u003E\n\u003Cp\u003ELes donn\u00e9es qui permettent d'extraire le lien vers un article sont stock\u00e9es dans \u003Ccode  class=\"language-php\"\u003E$plxShow-\u003EplxMotor-\u003EplxGlob_arts-\u003EaFiles\u003C\/code\u003E et les commentaires sont stock\u00e9s dans \u003Ccode  class=\"language-php\"\u003E$plxShow-\u003EplxMotor-\u003EplxGlob_coms-\u003EaFiles\u003C\/code\u003E sous forme de tableaux ( \u003Ccode class=\"language-php\"\u003Earray()\u003C\/code\u003E ). Il faut alors exclure les cl\u00e9s correspondantes de ces deux tableaux.\u003C\/p\u003E\n\u003Cp\u003E\u003Cb style=\"font-weight:bold;\"\u003ECela peut-\u00eatre fait \u00e0 l'aide d'un petit script \u00e0 inclure dans vos th\u00e8mes.\u003C\/b\u003E\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article103\/exclure-les-liens-de-larticle-affiche\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"exclure-les-liens-de-larticle-affiche\"\n\t\t\t},\n\t\t\t\"headline\": \"exclure les liens de l'article affich\u00e9\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/images\/remove.png\",\n\t\t\t\t\"datePublished\": \"2023-06-14T14:04:00Z\",\n\t\t\t\"dateModified\": \"2023-08-06T21:07:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Article, Commentaires, PHP, Scripts, Templates\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch3\u003EExclure l'article du tableau.\u003C\/h3\u003E\n\u003Cp\u003EAvant d'exclure cette article du tableau, il faut traiter son affichage :) , et exclure l'article juste apr\u00e8s.\u003C\/p\u003E\n\u003Cp\u003EDans le th\u00e8me par d\u00e9faut , il est possible d\u2019ins\u00e9rer  cette commande dans les fichier templates des articles (article.php et article-full-width.php ) juste avant l'inclusion de la sidebar  \u003Ccode  class=\"language-php\"\u003E&lt;?php include __DIR__.'\/sidebar.php'; ?&gt;\u003C\/code\u003E ou \u00e0 la deuxieme ligne du fichier sidebar.php .\u003C\/p\u003E\n\u003Cp\u003ELe code \u00e0 inserer pour retire la cl\u00e9 de l'article est \u003Cpre\u003E\u003Ccode  class=\"language-php\"\u003E&lt;?php unset($plxShow-\u003EplxMotor-\u003EplxGlob_arts-\u003EaFiles[str_pad($plxShow-\u003EartId(), 4, \"0\", STR_PAD_LEFT)]); ?&gt;\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003E\u003C\/p\u003E\n\u003Ch3\u003EExclure les commentaires\u003C\/h3\u003E\n\u003Cp\u003ESi vous avez des commentaires r\u00e9cents sur cet article, il seront affich\u00e9s dans la sidebar avec un message d'erreur car l'article auquel ils sont rattach\u00e9s n'existe plus.\u003C\/p\u003E\n\u003Cp\u003EIl faut aussi exclure tous ces commentaires reli\u00e9s \u00e0 cette article et compl\u00e9ter la ligne de code excluant l'article.\u003C\/p\u003E\n\u003Cp\u003EIl est possible de boucler sur tous les commentaires et de les retirer un a un \u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003Eforeach ($plxShow-\u003EplxMotor-\u003EplxGlob_coms-\u003EaFiles as $key =\u003E $value) {\n\tif (substr($value, 0, 4) == str_pad($plxShow-\u003EartId(), 4, \"0\", STR_PAD_LEFT) )  {\n\t\tunset($plxShow-\u003EplxMotor-\u003EplxGlob_coms-\u003EaFiles[$key]);\n\t}\n}\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003E\u003C\/p\u003E\nou d'utiliser la fonction array_diff_key() pour les exclure.\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E$plxShow-\u003EplxMotor-\u003EplxGlob_coms-\u003EaFiles = array_diff_key($plxShow-\u003EplxMotor-\u003EplxGlob_coms-\u003EaFiles, array_filter($plxShow-\u003EplxMotor-\u003EplxGlob_coms-\u003EaFiles, function ($value, $key) use ($plxShow) {\n\treturn substr($value, 0, 4) === str_pad($plxShow-\u003EartId(), 4, \"0\", STR_PAD_LEFT);\n}, ARRAY_FILTER_USE_BOTH))\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003E\u003C\/p\u003E\n\u003Ch3\u003EFinaliser l'exclusion des liens de l'article affich\u00e9\u003C\/h3\u003E\n\u003Cp\u003ESi vous d\u00e9cidez de modifier les fichier template \u003Cb\u003Earticle\u003C\/b\u003E de votre th\u00e8me, l'insertion du script suivant, avant l'inclusion de  \u003Ccode\u003Esidebar.php\u003C\/code\u003E, suffit. \u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003Eunset($plxShow-\u003EplxMotor-\u003EplxGlob_arts-\u003EaFiles[str_pad($plxShow-\u003EartId(), 4, \"0\", STR_PAD_LEFT)]); \n$plxShow-\u003EplxMotor-\u003EplxGlob_coms-\u003EaFiles = array_diff_key($plxShow-\u003EplxMotor-\u003EplxGlob_coms-\u003EaFiles, array_filter($plxShow-\u003EplxMotor-\u003EplxGlob_coms-\u003EaFiles, function ($value, $key) use ($plxShow) {\n\treturn substr($value, 0, 4) === str_pad($plxShow-\u003EartId(), 4, \"0\", STR_PAD_LEFT);\n}, ARRAY_FILTER_USE_BOTH));\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003E\u003C\/p\u003E\n\u003Cp\u003E\u003Cb\u003ESi pour ne modifier qu'un fichier vous optez pour inclure ce script dans \u003Ccode\u003Esidebar.php\u003C\/code\u003E\u003C\/b\u003E, il faudra tester le mode d'affichage de PluXml pour pour n'exclure l'article et ses commentaire uniquement lorsque vous \u00eates sur la page de cet article.\u003C\/p\u003E\n\u003Cp\u003E\u003Csmall\u003Epour le test du mode d'affichage , voir :\u003Ca href=\"https:\/\/pluxopolis.net\/connaitre-le-mode-daffichage-de-pluxml.html\" target=_blank\"\u003EConna\u00eetre le mode d'affichage de PluXml\u003C\/a\u003E\u003C\/small\u003E\u003C\/p\u003E\n\u003Cp\u003Etestons donc si \u003Cb\u003E\u003Ccode\u003E$plxShow-\u003Emode() =='article'\u003C\/code\u003E\u003C\/b\u003E\u003C\/p\u003E\n\u003Cp\u003ELe script \u00e0 inserer \u00e0 la deuxieme ligne de \u003Cb\u003Esidebar.php\u003C\/b\u003E est :\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003Eif($plxShow-\u003Emode() =='article') {\n\tunset($plxShow-\u003EplxMotor-\u003EplxGlob_arts-\u003EaFiles[str_pad($plxShow-\u003EartId(), 4, \"0\", STR_PAD_LEFT)]); \n\t$plxShow-\u003EplxMotor-\u003EplxGlob_coms-\u003EaFiles = array_diff_key($plxShow-\u003EplxMotor-\u003EplxGlob_coms-\u003EaFiles, array_filter($plxShow-\u003EplxMotor-\u003EplxGlob_coms-\u003EaFiles, function ($value, $key) use ($plxShow) {\n\t\treturn substr($value, 0, 4) === str_pad($plxShow-\u003EartId(), 4, \"0\", STR_PAD_LEFT);\n\t}, ARRAY_FILTER_USE_BOTH));\n}\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003E\u003C\/p\u003E\n\u003Cp\u003EC'est ce dernier script qui est utilis\u00e9 dans les fichiers du th\u00e8me du site.\u003C\/p\u003E",
            "tags": "Article, Commentaires, PHP, Scripts, Templates",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/images\/remove.png",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0103",
            "author": "002",
            "categorie": "007",
            "url": "exclure-les-liens-de-larticle-affiche",
            "date": "202306141404",
            "nb_com": 0,
            "date_creation": "202306141404",
            "date_update": "202308062107"
        },
        {
            "filename": ".\/data\/articles\/0102.007.002.202305231422.url-canonical-et-pluxml.xml",
            "title": "URL canonical et PluXml",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "\u003Cbr\u003E\u003Cbr\u003E\u003Cp\u003ELe site pluxthemes.com propose de donner \u00e0 vos th\u00e8mes la capacit\u00e9 de g\u00e9n\u00e9rer vos \u003Ca href=\"https:\/\/pluxthemes.com\/urls-canoniques-dans-vos-themes\" target=\"_blank\" \u003EURL canoniques\u003C\/a\u003E avec quelques lignes de codes \u00e0 ins\u00e9rer dans le fichier template 'header.php' de votre th\u00e8me.\u003C\/p\u003E\u003Cbr\u003E\r\n\u003Cp\u003E\u003Cins date-time=\"2023-07\"\u003EUn plugin est aussi disponible pour ne pas avoir \u00e0 modifier vos th\u00e8mes : \u003Ca href=\"https:\/\/github.com\/gcyrillus\/myCannonical\/archive\/refs\/heads\/main.zip\" title=\"t\u00e9l\u00e9charger le plugin sur github\"\u003EmyCannonical plugin\u003C\/a\u003E\u003C\/ins\u003E\u003C\/p\u003E\u003Cbr\u003E\r\n\u003Cp\u003EVoici les quelques lignes \u00e0 ajouter pour en b\u00e9n\u00e9ficier:\u003C\/p\u003E\r\n\u003Cpre style=\"clear:both\"\u003E\u003Ccode class=\"language-php\"\u003E\t\t# URL canonique\r\n\t\t# Author Gcyrillus @ re7net.com\r\n\t\t# genere l'url canonique de votre page , d'acceuil, categorie, statique ou article  sous la forme &lt;link rel=\"canonical\" h\u003Cspan\u003Eref\u003C\/span\u003E=\"URL\" \/\u003E\r\n\t\t# conform\u00e9m\u00e9nt \u00e0 votre configuration urlrewriting, compatible avec le plugin MyBetterUrl\r\n\t\t# indique le numero de page : page1\r\n\t\t# identifie les plugins generant une page\r\n\t\t$pagination='';\r\n\t\t$reqUri=   $plxShow-\u003EplxMotor-\u003Eget;\r\n\t\tpreg_match('\/(\\\/?page[0-9]+)$\/', $reqUri, $matches);\r\n\t\tif( $matches) $pagination =$reqUri;\r\n\t\tif($plxShow-\u003EcatId(true) AND intval($plxShow-\u003EcatId()) =='0') echo '\t&lt;link rel=\"canonical\" h\u003Cspan\u003Eref\u003C\/span\u003E=\"'.$plxShow-\u003EplxMotor-\u003EurlRewrite().$pagination.'\" \/\u003E'.PHP_EOL  ;\r\n\t\tif($plxShow-\u003EcatId(true) AND intval($plxShow-\u003EcatId()) !='0') echo '\t&lt;link rel=\"canonical\" h\u003Cspan\u003Eref\u003C\/span\u003E=\"'.$plxShow-\u003EplxMotor-\u003EurlRewrite('?categorie'. intval($plxShow-\u003EcatId()).'\/'.$plxShow-\u003EplxMotor-\u003EaCats[$plxShow-\u003EcatId()]['url']).$pagination.'\" \/\u003E'.PHP_EOL  ;\r\n\t\tif($plxShow-\u003EplxMotor-\u003Emode=='article'  AND $plxShow-\u003EplxMotor-\u003EplxRecord_arts-\u003Ef('numero')) echo '\t&lt;link rel=\"canonical\" h\u003Cspan\u003Eref\u003C\/span\u003E=\"'.$plxShow-\u003EplxMotor-\u003EurlRewrite('?article' . intval($plxShow-\u003EplxMotor-\u003EplxRecord_arts-\u003Ef('numero')) . '\/' . $plxShow-\u003EplxMotor-\u003EplxRecord_arts-\u003Ef('url')).'\" \/\u003E'.PHP_EOL  ;\r\n\t\tif( $plxShow-\u003EplxMotor-\u003Emode=='static'  ) { \r\n\t\t\techo '\t&lt;link rel=\"canonical\" h\u003Cspan\u003Eref\u003C\/span\u003E=\"'.$plxShow-\u003EplxMotor-\u003EurlRewrite('?static'. intval($plxShow-\u003EstaticId()).'\/'.$plxShow-\u003EplxMotor-\u003EaStats[str_pad($plxShow-\u003EstaticId(),3,0,STR_PAD_LEFT)]['url']).'\" \/\u003E'.PHP_EOL ;\r\n\t\t}\r\n\t\telse{\r\n\t# enfin on regarde si il s'agit de la page d'un plugin\t\r\n\tforeach($plxShow-\u003EplxMotor-\u003EplxPlugins-\u003EaPlugins as $plug){\t\t\t\t\r\n\t\tif($plug-\u003EgetParam('url') == $plxShow-\u003EplxMotor-\u003Emode)  echo '\t&lt;link rel=\"canonical\"  hr\u003Cspan\u003Eef\u003C\/span\u003E=\"'.$plxShow-\u003EplxMotor-\u003EurlRewrite('?'.$_SERVER['QUERY_STRING']).'\"\/\u003E'.PHP_EOL;\r\n\t\t\t}\r\n\t\t}\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Cp\u003ELe script teste si il s'agit de la page d'accueil, puis si c'est une cat\u00e9gorie, un article ou une page statique.avant de servir cette balise \u003Cspan lang=\"en\"\u003E\"canonical\"\u003C\/span\u003E. Il inclus aussi les pages des plugins ainsi que la pagination.\u003C\/p\u003E\r\n\u003Cp\u003EEn echo au pr\u00e9c\u00e9dent article, connaitre \u003Ca href=\"https:\/\/pluxopolis.net\/connaitre-le-mode-daffichage-de-pluxml.html\"\u003Ele mode d'affichage\u003C\/a\u003E de PluXml est au coeur de ce \u003Cem style=\"font-style:italic;color:#FF69B4\"\u003Ebout de codes\u003C\/em\u003E.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article102\/url-canonical-et-pluxml\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"url-canonical-et-pluxml\"\n\t\t\t},\n\t\t\t\"headline\": \"URL canonical et PluXml\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/pexels\/chain-g622aebf17_1280.jpg\",\n\t\t\t\t\"datePublished\": \"2023-05-23T14:22:00Z\",\n\t\t\t\"dateModified\": \"2023-08-27T21:19:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PHP, R\u00e9f\u00e9rencement, Scripts, Url Rewrite\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "PHP, R\u00e9f\u00e9rencement, Scripts, Url Rewrite",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/pexels\/chain-g622aebf17_1280.jpg",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0102",
            "author": "002",
            "categorie": "007",
            "url": "url-canonical-et-pluxml",
            "date": "202305231422",
            "nb_com": 0,
            "date_creation": "202305212215",
            "date_update": "202308272119"
        },
        {
            "filename": ".\/data\/articles\/0100.007,010.002.202304031740.connaitre-le-mode-daffichage-de-pluxml.xml",
            "title": "Conna\u00eetre le mode d'affichage de PluXml",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003EPour conna\u00eetre le mode d'affichage de PluXml:\u003C\/p\u003E\r\n\u003Cpre\u003E\u003Ccode class=\"language-markup\"\u003E\r\n&lt;?php echo $plxShow-\u003Emode(); ?\u003E\u003C\/code\u003E\u003C\/pre\u003E\r\n\r\n\u003Cp\u003ECela n'a d\u2019int\u00e9r\u00eat que lorsque vous souhaitez  afficher ou appeler un script seulement sur un certain type de pages et, ou a des fin de d\u00e9bogages.\u003C\/p\u003E\r\n\u003Ch2\u003EQuels sont ces modes?\u003C\/h3\u003E\r\n\u003Col\u003E\r\n  \u003Cli\u003Ehome\u003C\/li\u003E\r\n  \u003Cli\u003Earticle\u003C\/li\u003E\r\n  \u003Cli\u003Estatic\u003C\/li\u003E\r\n  \u003Cli\u003Ecategorie\u003C\/li\u003E\r\n  \u003Cli\u003Etags\u003C\/li\u003E\r\n  \u003Cli\u003Earchives\u003C\/li\u003E\r\n  \u003Cli\u003Eerreur\u003C\/li\u003E\r\n\u003C\/ol\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article100\/connaitre-le-mode-daffichage-de-pluxml\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"connaitre-le-mode-daffichage-de-pluxml\"\n\t\t\t},\n\t\t\t\"headline\": \"Conna\u00eetre le mode d'affichage de PluXml\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/images-site\/png-coding-1.png\",\n\t\t\t\t\"datePublished\": \"2023-04-03T17:40:00Z\",\n\t\t\t\"dateModified\": \"2025-10-15T11:31:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Astuce, PHP\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003EVous pouvez filtr\u00e9 ces modes, types de pages pour y afficher ou non un contenu suppl\u00e9mentaire\u003C\/p\u003E\r\n\u003Cp\u003EPar exemple, affich\u00e9 une boite uniquement sur la page d'accueil:\u003C\/p\u003E\r\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E\r\n&lt;?php \r\n if ($plxShow-\u003Emode() =='home') { ?\u003E\r\n      &lt;div class=\"boiteHome\"\u003E\r\n           &lt;p\u003EBienvenue sur mon site PluXml!&lt;\/p\u003E\r\n      &lt;\/div\u003E \r\n&lt;?php }?\u003E\u003C\/code\u003E\u003C\/pre\u003E\r\n\r\n\u003Cp\u003ECela peut-\u00eatre aussi pour embarquer un plugin seulement sur une page sp\u00e9cifique\u003C\/p\u003E\r\n\u003Cp\u003EExemple: Affichons le formulaire de recherche dans la sidebar uniquement pour la page d\u2019erreur.\u003C\/p\u003E\r\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E\r\n&lt;?php \r\n if ($plxShow-\u003Emode() =='erreur') { ?\u003E\r\n&lt;div class=\"sidebox\"\u003E\r\n        &lt;h3\u003E Rechercher &lt;\/h3\u003E\r\n        &lt;?php eval($plxShow-\u003EcallHook('MySearchForm')) ?\u003E\r\n&lt;\/div\u003E \r\n&lt;?php }?\u003E\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Cp\u003EIns\u00e9rer ce code dans le fichier sidebar.php . le formulaire s'affichera seulement si c'est une page d'erreur\u003C\/p\u003E\r\n\r\n\u003Cp\u003EVous pouvez donc selon le type de page ajouter automatiquement des contenus sp\u00e9cifiques, ins\u00e9rer un plugin, charg\u00e9 un script, une feuille de style... \u00e0 partir de l'un des fichiers communs de votre th\u00e8me sans toucher au c\u0153ur de PluXml ou cr\u00e9er un plugin.\u003C\/p\u003E",
            "tags": "Astuce, PHP",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/images-site\/png-coding-1.png",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0100",
            "author": "002",
            "categorie": "007,010",
            "url": "connaitre-le-mode-daffichage-de-pluxml",
            "date": "202304031740",
            "nb_com": 0,
            "date_creation": "202304031740",
            "date_update": "202510151131"
        },
        {
            "filename": ".\/data\/articles\/0099.001,007,010.002.202304011654.les-donnees-structurees.xml",
            "title": "Les donn\u00e9es structur\u00e9es",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Ch3\u003EQu'est ce que c'est?\u003C\/h3\u003E\n\u003Cp\u003ELes donn\u00e9es structur\u00e9es sont des donn\u00e9es organis\u00e9es et stock\u00e9es dans un format sp\u00e9cifique qui leur permet d'\u00eatre facilement consult\u00e9es, modifi\u00e9es et analys\u00e9es \u00e0 l'aide d'outils informatiques. \u003C\/p\u003E\n\n\u003Cp\u003ELes donn\u00e9es structur\u00e9es sont organis\u00e9es de mani\u00e8re \u00e0 ce que les machines, y compris les moteurs de recherche, puissent facilement comprendre et extraire les informations qu'elles contiennent. Elles sont souvent pr\u00e9sent\u00e9es sous la forme de balises et de m\u00e9tadonn\u00e9es qui d\u00e9crivent le contenu d'une page Web. Les moteurs de recherche utilisent ces balises et ces m\u00e9tadonn\u00e9es pour mieux comprendre le contenu des pages et les afficher plus efficacement dans les r\u00e9sultats de recherche.\u003C\/p\u003E\n\n\u003Ch3\u003EPeut-on les int\u00e9gr\u00e9es a PluXml ?\u003C\/h3\u003E\n\u003Cp\u003EElles le sont d\u00e9j\u00e0 en parties  si vous remplissez touts les champs d\u2019\u00e9dition de vos cat\u00e9gories, pages statiques et articles\u003C\/p\u003E\n\u003Cp\u003ECe sont les champs meta (description et keywords) , title et alt pour vos images, entre autres.\u003C\/p\u003E\n\u003Cp\u003ELe format JSON-LD (JavaScript Object Notation for Linked Data) est l'un des formats de donn\u00e9es structur\u00e9es les plus populaires et les plus largement utilis\u00e9s pour les pages Web. De simple script dans vos th\u00e8mes peuvent les g\u00e9n\u00e9r\u00e9es pour vous\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article99\/les-donnees-structurees\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"les-donnees-structurees\"\n\t\t\t},\n\t\t\t\"headline\": \"Les donn\u00e9es structur\u00e9es\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/icon.png\",\n\t\t\t\t\"datePublished\": \"2023-04-01T16:54:00Z\",\n\t\t\t\"dateModified\": \"2023-04-14T17:02:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"JSON-LD, R\u00e9f\u00e9rencement, Scripts, Tuto\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch3\u003ELe format JSON-LD\u003C\/h3\u003E\n\u003Cp\u003ECe format JSON-LD permet de d\u00e9crire le contenu d'une page Web de mani\u00e8re claire et pr\u00e9cise en utilisant des balises sp\u00e9ciales appel\u00e9es \"contextes\" pour indiquer la signification des donn\u00e9es. Les donn\u00e9es structur\u00e9es JSON-LD sont \u00e9galement compatibles avec les directives de Google pour les donn\u00e9es structur\u00e9es, ce qui en fait un choix judicieux pour les propri\u00e9taires de sites Web souhaitant optimiser leur r\u00e9f\u00e9rencement.\u003C\/p\u003E\n\n\u003Ch3\u003EComment les int\u00e9gr\u00e9es \u00e0 PluXml\u003C\/h3\u003E\n\u003Cp\u003EElles peuvent \u00eatre inject\u00e9 dans vos pages par le biais des fichiers de votre th\u00e8me de la m\u00eame mani\u00e9re que les titres et contenus de vos pages sont affich\u00e9s.\u003C\/p\u003E\n\u003Cp\u003EDe simples scripts se permettront alors d'extraire ces donn\u00e9es de PluXml et de les format\u00e9es dans le format JSON-LD.\u003C\/p\u003E\n\n\u003Ch3\u003EQuelles types de donn\u00e9es structur\u00e9es puis-je injecter dans mon th\u00e8me?\u003C\/h3\u003E\n\u003Cp\u003ELe nom de la page, l'image d'accroche, le nom de l'auteur, la hi\u00e9rarchie de la page avec le fil d\u2019Ariane, un moteur de recherche interne, etc.\u003C\/p\u003E\n\u003Ch3\u003ELes scripts d\u00e9j\u00e0 disponibles\u003C\/h3\u003E \n\u003Cdiv\u003E\n  \u003Cdiv class=\"new-page\"\u003E\n    \u003Ch4\u003Evotre site\u003C\/h4\u003E\n    \u003Cp\u003ECes donn\u00e9es servent \u00e0 presenter votre site, son type de contenu et et eventuellement l'associ\u00e9 \u00e0 vos outils de r\u00e9seaux sociaux\u003C\/p\u003E\n\u003Cp\u003EVoici le script \u00e0 mettre dans le fichier \u003Cstrong\u003Eheader.php\u003C\/strong\u003E de votre th\u00e8me.\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E&lt;script type=\"application\/ld+json\"&gt;{\n\t\"@context\": \"http:\/\/schema.org\",\n\t\"@type\": \"WebSite\",\n\t\"name\": \"&lt;?php $plxShow-&gt;mainTitle(); ?&gt;\",\n\t\"url\": \"&lt;?php echo $plxShow-&gt;plxMotor-&gt;racine; ?&gt;\",\n\t\/*\"sameAs\": [\"https:\/\/facebook.com\/page\", \"https:\/\/plus.google.com\/site\", \"https:\/\/twitter.com\/name\"],*\/\n\t&lt;?php if(isset($plxShow-&gt;plxMotor-&gt;plxPlugins-&gt;aPlugins['plxMySearch']) && $plxShow-&gt;plxMotor-&gt;plxPlugins-&gt;aPlugins['plxMySearch']-&gt;getParam('method') == 'get' && $plxShow-&gt;plxMotor-&gt;aConf['urlrewriting'])  {\t?&gt;\n\"potentialAction\": {\n\t\t\t\"@type\": \"SearchAction\",\n\t\t\t\"target\": \"&lt;?php echo $plxShow-&gt;plxMotor-&gt;racine .$plxShow-&gt;plxMotor-&gt;plxPlugins-&gt;aPlugins['plxMySearch']-&gt;getParam('url').'?searchfield={searchfield}' ; ?&gt;\",\n\t\t\t\"query-input\": \"required name=searchfield\"\n\t}\n&lt;?php } ?&gt;\n}&lt;\/script&gt;\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003EL'association \u00e0 vos r\u00e9seaux sociaux ou autres site se trouve sur la ligne \u003Ccode\u003EsameAs\u003C\/code\u003E. Pour en faire usage, il faut la d\u00e9-commenter (retirer les \u003Ccode\u003E\/*\u003C\/code\u003E et \u003Ccode\u003E*\/\u003C\/code\u003E entourant cette ligne et y inserer vos liens en place de ceux en exemple.\u003C\/p\u003E\n\u003Cp\u003ESi vous avez installer le plugin de moteur de recherche et que celui-ci est configur\u00e9 avec la m\u00e9thode \u003Ccode\u003Eget\u003C\/code\u003E, il sera alors aussi affich\u00e9 dans vos m\u00e9tadonn\u00e9es.\u003C\/p\u003E\n\u003C\/div\u003E\n  \u003Cdiv class=\"new-page\"\u003E\n    \u003Ch4\u003Edonn\u00e9es articles\u003C\/h4\u003E\n\u003Cp\u003EVoici le code qui va extraire les donn\u00e9es principales de vos articles.\u003C\/p\u003E\n    \u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E&lt;script type=\"application\/ld+json\"&gt;\n{\n    \"@context\": \"https:\/\/schema.org\",\n    \"@type\": \"Article\",\n    \"mainEntityOfPage\": {\n        \"@type\": \"WebPage\",\n        \"@id\": \"&lt;?php echo $plxShow-&gt;plxMotor-&gt;plxRecord_arts-&gt;f('url'); ?&gt;\"\n    },\n    \"headline\": \"&lt;?php $plxShow-&gt;artTitle(); ?&gt;\",\n    &lt;?php if (trim($plxShow-&gt;plxMotor-&gt;plxRecord_arts-&gt;f('thumbnail'))): ?&gt;\n    \"image\": \"&lt;?php echo $plxShow-&gt;plxMotor-&gt;urlRewrite(trim($plxShow-&gt;plxMotor-&gt;plxRecord_arts-&gt;f('thumbnail'))); ?&gt;\",\n    &lt;?php endif; ?&gt;\n    \"datePublished\": \"&lt;?php $plxShow-&gt;artDate('#num_year(4)-#num_month-#num_dayT#hour:#minute:00+#time'); ?&gt;\",\n    \"dateModified\": \"&lt;?php  echo plxDate::formatDate($plxShow-&gt;plxMotor-&gt;plxRecord_arts-&gt;f('date_update'), '#num_year(4)-#num_month-#num_dayT#hour:#minute:00+#time') ?&gt;\",\n    \"author\": {\n        \"@type\": \"Person\",\n        \"name\": \"&lt;?php $plxShow-&gt;artAuthor() ?&gt;\"\n    }\n    &lt;?php if (trim($plxShow-&gt;plxMotor-&gt;plxRecord_arts-&gt;f('tags'))): ?&gt;\n    ,\"keywords\":\"&lt;?php $plxShow-&gt;artTags('#tag_name ') ?&gt;\"\n    &lt;?php endif; ?&gt;\n}\n&lt;\/script&gt;\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003E Il est \u00e0 ins\u00e9rer dans les fichiers suivant de votre th\u00e8me \u003Cem\u003E\u003Csmall\u003E(et tout ceux ceux dont le nom commence avec le m\u00eame mot)\u003C\/small\u003E\u003Cem\u003E:\u003C\/p\u003E \n\u003Col\u003E\u003Cli\u003E\u003Cstrong\u003Earticle.php\u003C\/strong\u003E\u003C\/li\u003E\u003Cli\u003E\u003Cstrong\u003Ehome.php\u003C\/strong\u003E\u003C\/li\u003E\u003Cli\u003E\u003Cstrong\u003Ecategorie.php\u003C\/strong\u003E\u003C\/li\u003E\u003Cli\u003E\u003Cstrong\u003Etags.php\u003C\/strong\u003E\u003C\/li\u003E\u003Cli\u003E\u003Cstrong\u003Earchives.php\u003C\/strong\u003E\u003C\/li\u003E\u003C\/ol\u003E\n\u003Cp\u003ECe script est \u00e0 ins\u00e9rer dans la boucle listant vos articles .\u003C\/p\u003E\n  \u003C\/div\u003E\n  \u003Cdiv class=\"new-page\"\u003E\n    \u003Ch4\u003EAriane : cat\u00e9gorie\u003C\/h4\u003E\n    \u003Cp\u003ELe fil d'ariane sera sp\u00e9cifique \u00e0 chaque type de page, celui des cat\u00e9gories dans le fichier \u003Cstrong\u003Ecategorie.php\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E&lt;script type=\"application\/ld+json\"&gt;\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"BreadcrumbList\",\n\t\t\"itemListElement\": [{\n\t\t\"@type\": \"ListItem\",\n\t\t\"position\": 1,\n\t\t\"name\": \"&lt;?php $plxShow-&gt;lang('HOME'); ?&gt;\",\n\t\t\"item\": \"&lt;?php $plxShow-&gt;racine() ?&gt;\"\n\t\t},{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\"@type\": \"ListItem\",\n\t\t\"position\": 2 ,\n\t\t\"name\": \"&lt;?php $plxShow-&gt;catName(); ?&gt;\",\n\t\t\"item\": \"&lt;?php $plxShow-&gt;racine() ?&gt;&lt;?php echo $_SERVER['REQUEST_URI']; ?&gt;\"\n\t\t}\n\t\t]\n\t}\n&lt;\/script&gt;\u003C\/code\u003E\u003C\/pre\u003E\n  \u003C\/div\u003E\n\n  \u003Cdiv class=\"new-page\"\u003E\n    \u003Ch4\u003EAriane : mots cl\u00e9s\u003C\/h4\u003E\n    \u003Cp\u003Epour les pages des mots cl\u00e9s, voici le script \u00e0 ins\u00e9rer dans le fichier \u003Cstrong\u003Etags.php\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E&lt;script type=\"application\/ld+json\"&gt;\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"BreadcrumbList\",\n\t\t\"itemListElement\": [{\n\t\t\"@type\": \"ListItem\",\n\t\t\"position\": 1,\n\t\t\"name\": \"&lt;?php $plxShow-&gt;lang('HOME'); ?&gt;\",\n\t\t\"item\": \"&lt;?php $plxShow-&gt;racine() ?&gt;\"\n\t\t},{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\"@type\": \"ListItem\",\n\t\t\"position\": 2 ,\n\t\t\"name\": \"&lt;?php $plxShow-&gt;tagName(); ?&gt;\",\n\t\t\"item\": \"&lt;?php $plxShow-&gt;racine() ?&gt;&lt;?php echo $_SERVER['REQUEST_URI']; ?&gt;\"\n\t\t}\n\t\t]\n\t}\n&lt;\/script&gt;\u003C\/code\u003E\u003C\/pre\u003E\n  \u003C\/div\u003E\n\n  \u003Cdiv class=\"new-page\"\u003E\n    \u003Ch4\u003EAriane :archives\u003C\/h4\u003E\n    \u003Cp\u003Epour les pages des archives, voici le script \u00e0 ins\u00e9rer  dans le fichier \u003Cstrong\u003Earchives.php\u003C\/strong\u003E\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E&lt;script type=\"application\/ld+json\"&gt;\n\t{\n\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\"@type\": \"BreadcrumbList\",\n\t\t\"itemListElement\": [{\n\t\t\"@type\": \"ListItem\",\n\t\t\"position\": 1,\n\t\t\"name\": \"&lt;?php $plxShow-&gt;lang('HOME'); ?&gt;\",\n\t\t\"item\": \"&lt;?php $plxShow-&gt;racine() ?&gt;\"\n\t\t},{\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\n\t\t\"@type\": \"ListItem\",\n\t\t\"position\": 2 ,\n\t\t\"name\": \"&lt;?php echo plxDate::formatDate($plxShow-&gt;plxMotor-&gt;cible, $plxShow-&gt;lang('ARCHIVES').' #month #num_year(4)') ?&gt;\",\n\t\t\"item\": \"&lt;?php $plxShow-&gt;racine() ?&gt;&lt;?php echo $_SERVER['REQUEST_URI']; ?&gt;\"\n\t\t}\n\t\t]\n\t}\n&lt;\/script&gt;\u003C\/code\u003E\u003C\/pre\u003E\n  \u003C\/div\u003E\n\u003Cstyle\u003E.center {\n  width: max-content;\n  max-width: 100%;\n  margin: 1rem auto\n}\n.art-nav {\n  background: #bee;\n  padding: 3px;\n  border: solid 1px;\n  border-radius: 3px;\nclear:both;\n}\n.art-nav \u003E *:not(:first-of-type) {\n  margin-left: 0.5rem;\n}\n.art-nav .active {\n  color: red;\n}\n.new-page {\n  padding: 1em;\n  border: 1px solid blue;\n  margin: 1em;\n}\n\n.new-page:not(.active) {\n  display: none;\n}\ncode:not([class]), strong, article a, b{\n  font-weight:bold;\n  color:darkgoldenrod\n}}\u003C\/style\u003E\n\u003Cscript\u003E(function() {\n  'use strict';\n  \n  const list = [...document.body.querySelectorAll('.new-page \u003E h4')];\n  if(list.length == 0) { return; }\n  \n  if(list.length \u003E 1) {\n    \/\/ On cr\u00e9e une barre de navigation s'il y a plus de 1 chapitre\n    var innerHTML = '';\n    list.forEach((item, i) =\u003E {\n      const caption = item.textContent;\n      innerHTML += `\u003C`+`button data-page=\"${i}\"`+`\u003E${caption}\u003C`+`\/button`+`\u003E`;\n    });\n    \n    \/\/ On cr\u00e9e la barre de navigation\n    const pagination_numbers_container = document.createElement('NAV');\n    pagination_numbers_container.className = 'art-nav center';\n    pagination_numbers_container.innerHTML = innerHTML;\n    \n    const page0 = list[0].parentElement;\n    page0.parentElement.insertBefore(pagination_numbers_container, page0);\n\n    \/\/ On g\u00e9re le click sur la barre de navigation\n    pagination_numbers_container.addEventListener('click', (evt) =\u003E {\n      if(evt.target.hasAttribute('data-page')) {\n        evt.preventDefault();\n        \/\/ On affiche uniquement le chapitre demand\u00e9\n        [...document.body.querySelectorAll('.new-page.active')].forEach((item) =\u003E {\n          item.classList.remove('active');\n        });\n        const i = parseInt(evt.target.dataset.page);\n        list[i].parentElement.classList.add('active');\n        \/\/ On met en \u00e9vidence uniquement le bouton du chapitre affich\u00e9\n        [...pagination_numbers_container.querySelectorAll('.active')].forEach((item) =\u003E {\n          item.classList.remove('active');\n        });\n        event.target.classList.add('active');\n      }\n    });\n  }\n  \n  \/\/ On allume sur le premier .new-page ( Fire up )\n  list[0].parentElement.classList.add('active');\n  const btn = document.body.querySelector('.art-nav button');\n  if(btn != null) {\n    btn.classList.add('active');\n  }\n})();\u003C\/script\u003E\n\u003Cp\u003E\u003Cb\u003ECes scripts sont des bases et peuvent-\u00eatre compl\u00e9t\u00e9s et am\u00e9lior\u00e9s pour correspondre au mieux aux specifit\u00e9s et contenus de votre site: un blog, un site de recette, un site sur l'immobilier, un site proposant du son ou de la vid\u00e9o, les avis d'internaute, les evenements \u00e0 venir, des lieux, etc.\u003C\/b\u003E\u003C\/p\u003E\n\u003Cp\u003EVous trouverez des exemples  \u00e0 \u003Cb\u003E\u003Ca href=\"https:\/\/jsonld.com\/\" target=\"_blank\"\u003Ejsonld.com\/\u003C\/a\u003E\u003C\/b\u003E pour diff\u00e9rents types de contenus . \u003C\/p\u003E\n\u003C\/div\u003E\n\u003Cp\u003ECependant, il est important de noter que le format JSON-LD n'est pas le seul format de donn\u00e9es structur\u00e9es disponible. D'autres formats tels que Microdata et RDFa peuvent \u00e9galement \u00eatre utilis\u00e9s pour structurer les donn\u00e9es d'une page Web.\u003C\/p\u003E\n\n\u003Cp\u003ELe choix du format de donn\u00e9es structur\u00e9es d\u00e9pend des besoins sp\u00e9cifiques du site Web et des pr\u00e9f\u00e9rences du propri\u00e9taire du site. Il est \u00e9galement important de noter que l'utilisation de donn\u00e9es structur\u00e9es ne garantit pas une meilleure visibilit\u00e9 dans les r\u00e9sultats de recherche, mais peut aider les moteurs de recherche \u00e0 mieux comprendre le contenu de la page et \u00e0 l'afficher de mani\u00e8re plus pertinente dans les r\u00e9sultats de recherche.\u003C\/p\u003E",
            "tags": "JSON-LD, R\u00e9f\u00e9rencement, Scripts, Tuto",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/icon.png",
            "thumbnail_title": "json-ld icon",
            "thumbnail_alt": "icone json-ld",
            "numero": "0099",
            "author": "002",
            "categorie": "001,007,010",
            "url": "les-donnees-structurees",
            "date": "202304011654",
            "nb_com": 0,
            "date_creation": "202304011654",
            "date_update": "202304141702"
        },
        {
            "filename": ".\/data\/articles\/0098.001,007.002.202303271529.pagination-via-javascript.xml",
            "title": "Pagination via JavaScript",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003EDans deux pr\u00e9c\u00e9dents articles nous avons vu comment faire usage de la fonction \u003Ccode class=\"language-php\"\u003Epagination()\u003C\/code\u003E de Pluxml ou en cr\u00e9er une de toutes pieces. \u003C\/p\u003E\n\u003Cp\u003ECet article vous propose de voir ou revoir une version Javascript de pagination, que vous pourrez utiliser au sein de vos articles ou pages statiques.\u003C\/p\u003E\n\u003Cp\u003ECette fonction a \u00e9t\u00e9  propos\u00e9 par Bazooka07 qui l'a int\u00e9gr\u00e9 \u00e0 quelques un de ses th\u00e8mes en libre services.\u003C\/p\u003E\n\u003Cp\u003EVoyons cette fonction et regardons comment en faire usage.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article98\/pagination-via-javascript\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"pagination-via-javascript\"\n\t\t\t},\n\t\t\t\"headline\": \"Pagination via JavaScript\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/images\/divers\/mypager.png\",\n\t\t\t\t\"datePublished\": \"2023-03-27T15:29:00Z\",\n\t\t\t\"dateModified\": \"2023-04-14T17:01:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Scripts, pagination, Tuto\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cdiv class=\"new-page\"\u003E\n\u003Ch2\u003ELa fonction\u003C\/h2\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-javascript\"\u003E(function() {\n  'use strict';\n  \n  const list = [...document.body.querySelectorAll('.new-page \u003E h2')];\n  if(list.length == 0) { return; }\n  \n  if(list.length \u003E 1) {\n    \/\/ On cr\u00e9e une barre de navigation s'il y a plus de 1 chapitre\n    var innerHTML = '';\n    list.forEach((item, i) =\u003E {\n      const caption = item.textContent;\n      innerHTML += `&lt;button data-page=\"${i}\"\u003E${caption}&lt;\/button\u003E`;\n    });\n    \n    \/\/ On cr\u00e9e la barre de navigation\n    const pagination_numbers_container = document.createElement('NAV');\n    pagination_numbers_container.className = 'art-nav center';\n    pagination_numbers_container.innerHTML = innerHTML;\n    \n    const page0 = list[0].parentElement;\n    page0.parentElement.insertBefore(pagination_numbers_container, page0);\n\n    \/\/ On g\u00e9re le click sur la barre de navigation\n    pagination_numbers_container.addEventListener('click', (evt) =\u003E {\n      if(evt.target.hasAttribute('data-page')) {\n        evt.preventDefault();\n        \/\/ On affiche uniquement le chapitre demand\u00e9\n        [...document.body.querySelectorAll('.new-page.active')].forEach((item) =\u003E {\n          item.classList.remove('active');\n        });\n        const i = parseInt(evt.target.dataset.page);\n        list[i].parentElement.classList.add('active');\n        \/\/ On met en \u00e9vidence uniquement le bouton du chapitre affich\u00e9\n        [...pagination_numbers_container.querySelectorAll('.active')].forEach((item) =\u003E {\n          item.classList.remove('active');\n        });\n        event.target.classList.add('active');\n      }\n    });\n  }\n  \n  \/\/ On allume sur le premier .new-page ( Fire up )\n  list[0].parentElement.classList.add('active');\n  const btn = document.body.querySelector('.art-nav button');\n  if(btn != null) {\n    btn.classList.add('active');\n  }\n})();\u003C\/code\u003E\u003C\/pre\u003E\nC'elle ci peut-\u00eatre int\u00e9gr\u00e9e dans l'article ou charg\u00e9 depuis une balise \u003Ccode class=\"language-html\"\u003E&lt;script&gt;\u003C\/code\u003E \u00e0 partir du th\u00e8me avant la fermeture de la balise \u003Ccode class=\"language-html\"\u003E&lt;body&gt;\u003C\/code\u003E si vous avez de nombreux articles et pages en faisant usages.\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003ETip\u003C\/strong\u003E : integrer cette fonction en fin de document ou sur l'evenement onload(). L'article doit-\u00eatre d\u00e9j\u00e0 charg\u00e9 pour que le script puissent y extraire les donn\u00e9es necessaire \u00e0 la cr\u00e9ation de la pagination.\u003C\/p\u003E\n\u003C\/div\u003E\n\u003Cdiv class=\"new-page\"\u003E\n\u003Ch2\u003EComment fonctionne le script?\u003C\/h2\u003E\n\u003Cp\u003ELe script va rechercher les conteneur avec la class \u003Ccode class=\"language-css\"\u003E.new-page\u003C\/code\u003E  et si ceux-ci ont un \u003Ccode class=\"language-html\"\u003Eh2\u003C\/code\u003E en enfant direct.\u003C\/p\u003E\n\u003Cp\u003ESi il y plus d'un conteneur correspondant \u00e0 cette condition, alors une barre de navigation est cr\u00e9\u00e9e et tous les conteneurs \u003Ccode class=\"language-cssl\"\u003E.new-page\u003C\/code\u003E sont cach\u00e9s, except\u00e9 le premier.\u003C\/p\u003E\n\u003Cp\u003EChaque lien de pagination, prendra le texte contenu par premier titre h2 de chaque conteneur. Au click, il affichera alors le conteneur auquel il correspond en cachant les autres. C'est le cas dans cet article que vous lisez.\u003C\/p\u003E\n\u003C\/div\u003E\n\u003Cdiv class=\"new-page\"\u003E\n\u003Ch2\u003EConditions requises\u003C\/h2\u003E\n\u003Cp\u003EChaque portion de page devra obligatoirement \u00eatre incluse dans un conteneur avec la class \u003Ccode class=\"language-css\"\u003E.new-page\u003C\/code\u003E ayant un titre \u003Ccode class=\"language-html\"\u003E&lt;h2&gt;\u003C\/code\u003E. \u003C\/p\u003E\n\u003Cp\u003ELe squellette HTML de base \u00e0 reproduire pour chaque section de votre page est:\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-html\"\u003E  &lt;div class=\"new-page\"&gt;\n    &lt;h2&gt;Chapitre X&lt;\/h2&gt;\n    &lt;!-- Contenus ici --&gt;\n  &lt;\/div&gt;\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003EDans votre feuille de style, Pour qu'une seule de ces portion s'affiche, il faudra un minimum de style pour n'affich\u00e9 qu'un seul de ses \u00e9l\u00e9ments:\u003C\/p\u003E\n\u003Cpre\u003E\u003Ccode class=\"language-css\"\u003E.new-page:not(.active) {\n  display: none;\n}\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003EVous trouverez un exemple modifiable en ligne ici : \u003Ca href=\"https:\/\/codepen.io\/bazooka07\/pen\/dyOepxq\"\u003EExemple en ligne du script.\u003C\/p\u003E\n\u003Cp\u003E\u003Ca href=\"https:\/\/codepen.io\/gc-nomade\/pen\/oNYqvgm\"\u003EUne autre version de ce script\u003C\/a\u003E, l\u00e9g\u00e8rement diff\u00e9rente, permet de paginer les \u003Ci\u003Eportions\u003C\/i\u003E en les regroupant par groupe de 1 \u00e0 X. configuration  \u00e0 partir de la variable constante (ligne 6) \u003Ccode class=\"language-javascript\"\u003Econst items_per_page = 1;\/\/indiquez ici le nombre \u00e0 regrouper\u003C\/code\u003E.\u003C\/p\u003E\n\u003C\/div\u003E\n\u003Cscript\u003E(function() {\n  'use strict';\n  \n  const list = [...document.body.querySelectorAll('.new-page \u003E h2')];\n  if(list.length == 0) { return; }\n  \n  if(list.length \u003E 1) {\n    \/\/ On cr\u00e9e une barre de navigation s'il y a plus de 1 chapitre\n    var innerHTML = '';\n    list.forEach((item, i) =\u003E {\n      const caption = item.textContent;\n      innerHTML += `\u003C`+`button data-page=\"${i}\"`+`\u003E${caption}\u003C`+`\/button`+`\u003E`;\n    });\n    \n    \/\/ On cr\u00e9e la barre de navigation\n    const pagination_numbers_container = document.createElement('NAV');\n    pagination_numbers_container.className = 'art-nav center';\n    pagination_numbers_container.innerHTML = innerHTML;\n    \n    const page0 = list[0].parentElement;\n    page0.parentElement.insertBefore(pagination_numbers_container, page0);\n\n    \/\/ On g\u00e9re le click sur la barre de navigation\n    pagination_numbers_container.addEventListener('click', (evt) =\u003E {\n      if(evt.target.hasAttribute('data-page')) {\n        evt.preventDefault();\n        \/\/ On affiche uniquement le chapitre demand\u00e9\n        [...document.body.querySelectorAll('.new-page.active')].forEach((item) =\u003E {\n          item.classList.remove('active');\n        });\n        const i = parseInt(evt.target.dataset.page);\n        list[i].parentElement.classList.add('active');\n        \/\/ On met en \u00e9vidence uniquement le bouton du chapitre affich\u00e9\n        [...pagination_numbers_container.querySelectorAll('.active')].forEach((item) =\u003E {\n          item.classList.remove('active');\n        });\n        event.target.classList.add('active');\n      }\n    });\n  }\n  \n  \/\/ On allume sur le premier .new-page ( Fire up )\n  list[0].parentElement.classList.add('active');\n  const btn = document.body.querySelector('.art-nav button');\n  if(btn != null) {\n    btn.classList.add('active');\n  }\n})();\u003C\/script\u003E\n\u003Cstyle\u003E.center {\n  width: max-content;\n  max-width: 100%;\n  margin: 1rem auto\n}\n.art-nav {\n  background: #bee;\n  padding: 3px;\n  border: solid 1px;\n  border-radius: 3px;\nclear:both;\n}\n.art-nav \u003E *:not(:first-of-type) {\n  margin-left: 0.5rem;\n}\n.art-nav .active {\n  color: red;\n}\n.new-page {\n  padding: 1em;\n  border: 1px solid blue;\n  margin: 1em;\n}\n\n.new-page:not(.active) {\n  display: none;\n}\n\n\u003C\/style\u003E\n\u003Chr\u003E\n\u003Cp\u003ENotez que ce script , cette fonction JavaScript n'est pas d\u00e9pendante de Pluxml et peut-\u00eatre utiliser dans n'importe quel autre contexte. Javascript est interpr\u00e9t\u00e9 par le navigateur du visiteur en fonction du contenu de la page affich\u00e9e. Que ce soit un autre CMS qui \u00e0 g\u00e9n\u00e9r\u00e9 cette page ou un seulement un fichier HTML statique, si la structure qui s'affiche \u00e0 l'\u00e9cran correspond \u00e0 ce que ce script attend, pagination du contenu il y aura.\u003C\/p\u003E\n\u003Cbr\u003E\u003Chr\u003E\u003Cbr\u003E\u003Cbr\u003E",
            "tags": "Scripts, pagination, Tuto",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/images\/divers\/mypager.png",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0098",
            "author": "002",
            "categorie": "001,007",
            "url": "pagination-via-javascript",
            "date": "202303271529",
            "nb_com": 0,
            "date_creation": "202303271529",
            "date_update": "202304141701"
        },
        {
            "filename": ".\/data\/articles\/0097.004.002.202303251522.pluxopolis-reste-en-ligne.xml",
            "title": "Pluxopolis reste en ligne.",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003ECe site initialement cr\u00e9er et mise en ligne par St\u00e9phane Ferrari en 2013, a \u00e9t\u00e9 durant quelques ann\u00e9es, aliment\u00e9, devellop\u00e9 et enfin pr\u00e9serv\u00e9 et gard\u00e8 en ligne par Jack31 (de son pseudo sur le forum de PluXml)\u003C\/p\u003E\n\n\u003Cp\u003ELe contenu du site, montre bien la r\u00e9silience et la coh\u00e9rence de PluXml dans son \u00e9volution, c'est pourquoi je reprend le flambeau pour un temps afin de gard\u00e9 ce site en ligne ainsi que son contenu gratuit, sans aucune autre pr\u00e9tention.\u003C\/p\u003E\n\n\u003Cp\u003EEt sans promesses que je ne saurais tenir, j'ose dire que je tenterai, n\u00e9anmoins, de ne pas modifier l'id\u00e9e originale et d'ajouter au fil du temps quelques astuces utiles aux utilisateurs de PluXml, autant \u00e0 l'attention des nouveaux que des plus anciens et aguerris.\u003C\/p\u003E\n\n\u003Cp\u003E&nbsp;\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article97\/pluxopolis-reste-en-ligne\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"pluxopolis-reste-en-ligne\"\n\t\t\t},\n\t\t\t\"headline\": \"Pluxopolis reste en ligne.\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/images-site\/nouvelle-equipe.png\",\n\t\t\t\t\"datePublished\": \"2023-03-25T15:22:00Z\",\n\t\t\t\"dateModified\": \"2023-04-14T17:15:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Collaboration, Evolution, Evenement\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003EPluxopolis n'est pas le seul site proposant des ressources pour mon CMS favoris, d'autres le font et l'ont fait. Certaines de ses ressources peuvent \u00eatre retrouv\u00e9es dans les archives du WEB malgr\u00e9 le fait que le site est disparu ou que son nom de domaine \u00e0 \u00e9tait repris par quelqu'un d'autre, c'est la vie d'un site, finir aux oubliettes ou changer de propri\u00e9taire ou pire , \u00eatre parquer et mis aux ench\u00e9res. Je tenterais donc aussi de remettre en ligne quelques un de ces articles (dans ce cas , un lien vers l'archive de la page du site disparu sera ajout\u00e9 \u00e0 l'article).\u003C\/p\u003E\n\n\u003Cp\u003E&nbsp;\u003C\/p\u003E\n\n\u003Cp\u003ESi le forum de PluXml est actif ainsi que les \u00e9volutions de versions de PluXml, il y est souvent difficile d'y retrouver un sujet pr\u00e9cis, m\u00eame sur des bugs ou probl\u00e9matiques redondantes.\u003C\/p\u003E\n\n\u003Cp\u003EPluXopolis propose d\u00e9j\u00e0 une petite base de connaissances que vous pouvez interroger via son formulaire de \u003Ca href=\"https:\/\/www.pluxopolis.net\/recherche\" title=\"page de recherche sur le site\"\u003Erecherche\u003C\/a\u003E.\u003C\/p\u003E\n\n\u003Cp\u003ESi vous trouvez des pages aux contenus obsol\u00e8tes, n'h\u00e9sitez pas \u00e0 le faire savoir via le formulaire de contact ou les commentaires si ceux ci sont activ\u00e9s\u003C\/p\u003E",
            "tags": "Collaboration, Evolution, Evenement",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/images-site\/nouvelle-equipe.png",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0097",
            "author": "002",
            "categorie": "004",
            "url": "pluxopolis-reste-en-ligne",
            "date": "202303251522",
            "nb_com": 6,
            "date_creation": "202303211615",
            "date_update": "202304141715"
        },
        {
            "filename": ".\/data\/articles\/0096.001,007,006.002.202303042221.paginer-le-contenu-d-une-page-statique.xml",
            "title": "Paginer le contenu d'une page statique",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003EParfois nos pages statiques peuvent n\u00e9cessiter de voir leur contenu d\u00e9couper en plusieurs pages pour en faciliter la lecture.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EPour ce faire, il faut distribuer dans un tableau, chacun de ces morceaux&nbsp; afin de les trier et g\u00e9n\u00e9rer la pagination ad\u00e9quate .\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u003Cstrong\u003EPr\u00e9requis:\u003C\/strong\u003E un minimum de familiarit\u00e9 avec la syntaxe PHP\u003Ccode\u003E \u003C\/code\u003Epour ins\u00e9rer les contenus dans le code.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article96\/paginer-le-contenu-d-une-page-statique\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"paginer-le-contenu-d-une-page-statique\"\n\t\t\t},\n\t\t\t\"headline\": \"Paginer le contenu d'une page statique\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/pexels\/pexels-photo-7063747.jpeg\",\n\t\t\t\t\"datePublished\": \"2023-03-04T22:21:00Z\",\n\t\t\t\"dateModified\": \"2024-08-27T21:12:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, gcyrillus-nomade, Scripts, Page statique\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003ELe code \u00e0 mettre en \u0153uvre est relativement simple et court.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EIci, la difficult\u00e9 pour \u003Cstrong\u003Eles plus grand d\u00e9butants\u003C\/strong\u003E, sera d'ins\u00e9rer les contenus sans casser ce script. Rassurez-vous, le code est comment\u00e9 pour vous indiquer l'\u00e9cueil \u00e0 \u00e9viter et comment l'\u00e9viter ... si vous lisez les commentaires.\u003C\/p\u003E\r\n\r\n\u003Cp\u003ELa pagination s'affiche dans la langue configur\u00e9e, l'affichage des liens&nbsp; \"pr\u00e9c\u00e9dent\/suivant\" peuvent-\u00eatre ponctu\u00e9s par un lien vers chaque page individuellement en passant la valeur \u003Ccode\u003Efalse\u003C\/code\u003E \u00e0 \u003Ccode\u003Etrue\u003C\/code\u003E de \u003Ccode\u003E$intermediaire\u003C\/code\u003E .\u003C\/p\u003E\r\n\r\n\u003Cp\u003Ece qui vous donne ce type d'affichage selon la valeur de \u003Ccode\u003E$intermediaire\u003C\/code\u003E&nbsp; : \u003Cimg alt=\"visuel barre de pagination\" src=\"data\/medias\/pagination.jpg\" \/\u003E\u003C\/p\u003E\r\n\r\n\u003Cp\u003E&nbsp;\u003C\/p\u003E\r\n\r\n\u003Cp\u003EVoici ce code \u00e0 copier\/coller depuis l'administration de PluXml dans votre page statique. , avec un exemple de contenu (9 morceaux).\u003C\/p\u003E\r\n\r\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E&lt;style\u003E:where(.page-item.page-link.active) { text-decoration:underline;font-weight:bold; padding:0.3em 2em;}.pagination.text-center.center.bordered{border-radius: 5px;width:max-content;  margin:auto;  border:solid 1px;display:flex;align-items: center;list-style:none;gap:0.5em}&lt;\/style\u003E&lt;?php\r\n# $this is $plxShow\r\n\t#########################################\r\n\t#configuration \r\n\t#########################################\r\n\t# nombre de bloc \u00e0 afficher par page\r\n\t$bypage = 1;\r\n\t\r\n\t$intermediaire = false; \/\/mettre true au lieu de false pour afficher les liens de chaque page\r\n\t#########################################\r\n\t# FIN configuration\r\n\t#########################################\r\n\r\n\t############################# \r\n\t# extraction et maj variables\r\n\t############################# \r\n\r\n\t# extraction de l'url\r\n\t$url = 'static'.$this-\u003EstaticId().'\/'.$this-\u003EplxMotor-\u003EaStats[$this-\u003EplxMotor-\u003Ecible]['url'];\r\n\r\n\t# generation du lien\r\n\t$link = $this-\u003EplxMotor-\u003EurlRewrite($url.\"\/?page\");\r\n\t\r\n\t# extraction du num\u00e9ro de page dans l'URL \r\n\t$currentPage = preg_match('#\\bpage(\\d*)#',$_SERVER['REQUEST_URI'], $capture) ? intval($capture[1]) : 1;\r\n\t\r\n\t# indice de d\u00e9but, premier article \u00e0 afficher\r\n\t$start = ($currentPage - 1) * $bypage;\r\n\t\r\n\t\r\n\t#################################################\r\n\t# stockage des blocs de contenus dans un tableau\r\n\t# tableau defini dans array(). chaque bloc stock\u00e9\r\n\t# entre deux apostrophe ' \r\n\t# separ\u00e9 par une virgule ,\r\n\t# si un bloc contient une apostrophe '\r\n\t# celle-ci doit-\u00eatre pr\u00e9ceder d'un \\\r\n\t# depuis l'administration de PluXml, \r\n\t# Il faut doubler ce signe en \\\r\n\t# exemple: l\\'exemple. C\\'est obligatoire.\r\n\t#################################################\r\n\r\n$blocks = array(\r\n'&lt;div\u003E A - un div dans la boucle&lt;\/div\u003E',\r\n'&lt;div\u003E B - un div dans la boucle&lt;\/div\u003E',\r\n'&lt;div\u003E C - un div dans la boucle&lt;\/div\u003E',\r\n'&lt;div\u003E D - un div dans la boucle&lt;\/div\u003E',\r\n'&lt;div\u003E E - un div dans la boucle&lt;\/div\u003E',\r\n'&lt;div\u003E F - un div dans la boucle&lt;\/div\u003E',\r\n'&lt;div\u003E G - un div dans la boucle&lt;\/div\u003E',\r\n'&lt;div\u003E H - un div dans la boucle&lt;\/div\u003E',\r\n'&lt;div\u003E I - un div dans la boucle, c\\'est le dernier&lt;\/div\u003E'\r\n)\r\n;\r\n\r\n\/\/ Calcul du 1er article de la page\r\n$premier = ($currentPage * $bypage) - $bypage;\r\n\r\n\/\/ On calcule le nombre de pages total\r\n$nbr = count($blocks);\r\n$pages = ceil( $nbr \/ $bypage);\r\n\r\n\r\n$blocks = array_slice($blocks, $premier, $bypage);\r\n?\u003E\r\n&lt;!-- affichage des blocs selon le nombre \u00e0 afficher par pages dans la variable $bypage --\u003E\r\n&lt;div class=\"my_articles\"\u003E\r\n&lt;?php\r\n\t# boucle pour l'affichage\r\n\tforeach ($blocks as $key) {\r\n\r\n echo $key;\r\n\t}\r\n?\u003E\r\n&lt;\/div\u003E\r\n&lt;!-- fin affichage des blocs --\u003E\r\n\r\n&lt;!-- Affichage de la pagination --\u003E\r\n&lt;?php\r\n\t############################\r\n\t# Affichage de la pagination\r\n\t############################\r\n?\u003E\r\n&lt;nav\u003E\r\n\t&lt;ul class=\"pagination text-center center bordered\"\u003E\r\n\t\t&lt;!-- Lien vers la page pr\u00e9c\u00e9dente (si on ne se trouve pas sur la 1\u00e8re page) --\u003E\r\n\t\t&lt;?= ($currentPage \u003E 1)  ? \"&lt;li class=\\\"page-item\\\" \u003E&lt;a href=\\\"\".$link . ($currentPage - 1) .\"\\\" class=\\\"page-link\\\"\u003E\".L_PAGINATION_PREVIOUS.\"&lt;\/a\u003E&lt;\/li\u003E\" : \"\" ?\u003E\r\n\t\t\r\n\t\t&lt;?php if($intermediaire == true)  {\r\n\t\tfor($page = 1; $page &lt;= $pages; $page++) {\r\n\t\t  # Lien vers chacune des pages (activ\u00e9 si on se trouve sur la page correspondante\r\n\t\t  echo '&lt;li class=\"page-item ';\r\n\t\t  if($currentPage == $page)  echo 'active';\r\n\t\t  echo \"\\\"\u003E&lt;a href=\\\"\".$link.$page .\"\\\" class=\\\"page-link\\\"\u003E\".$page.\"&lt;\/a\u003E&lt;\/li\u003E\";\r\n\t\t\t}\r\n\t\t}\r\n\t\telse {\r\n\t\t echo \"&lt;li class=\\\"page-item page-link  active \\\"\u003E\r\n\t\t\t\t\".$currentPage.\" \/ \". $nbr.\"\r\n\t\t\t&lt;\/li\u003E\";\t\r\n\t\t\t\r\n\t\t}\t?\u003E\r\n\t\t  &lt;!-- Lien vers la page suivante (si on ne se trouve pas sur la derni\u00e8re page) --\u003E\r\n\t\t &lt;?= ($currentPage &lt; $pages) ? \" &lt;li class=\\\"page-item\\\"\u003E&lt;a href=\\\"\".$link.($currentPage + 1 ).\"\\\" class=\\\"page-link\\\"\u003E\".L_PAGINATION_NEXT.\"&lt;\/a\u003E&lt;\/li\u003E\" : \"\" ?\u003E\r\n\t\t\t\r\n\t&lt;\/ul\u003E\r\n&lt;\/nav\u003E\u003C\/code\u003E\u003C\/pre\u003E",
            "tags": "PluXml, gcyrillus-nomade, Scripts, Page statique",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/pexels\/pexels-photo-7063747.jpeg",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0096",
            "author": "002",
            "categorie": "001,007,006",
            "url": "paginer-le-contenu-d-une-page-statique",
            "date": "202303042221",
            "nb_com": 0,
            "date_creation": "202303042221",
            "date_update": "202408272112"
        },
        {
            "filename": ".\/data\/articles\/0095.001,007,006,008,010.002.202303011901.utiliser-la-fonction-pagination-dans-une-page-statique.xml",
            "title": "Utiliser la fonction pagination() dans une page statique.",
            "allow_com": "0",
            "template": "article.php",
            "chapo": "\u003Cp\u003EDans nos pages:&nbsp; d'accueil, cat\u00e9gorie, mots cl\u00e9s, archives, ... il y a&nbsp; \u003Cstrong\u003Eune fonction de pagination\u003C\/strong\u003E qui permet de dispatcher l'ensemble des articles correspondant sur une ou plusieurs pages aux besoins.\u003C\/p\u003E\r\n\r\n\u003Cp\u003ECet&nbsp;article vous propose de voir comment \u003Cstrong\u003Eint\u00e9grer cette fonction dans une page statique\u003C\/strong\u003E en extrayant les articles d'une cat\u00e9gorie et en choisissant le nombre \u00e0 afficher par pages.\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u003Cem\u003E\u003Cq\u003EMais pour quel usage, car PluXml le fait d\u00e9j\u00e0 , non ?\u003C\/q\u003E\u003C\/em\u003E\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u003Cq\u003EPluxml permet de masquer \u00e0 l'affichage les liens vers une ou plusieurs cat\u00e9gories, vous pouvez donc&nbsp;cacher une cat\u00e9gorie des menus et \u003Cstrong\u003Ela pr\u00e9senter au travers d'une page statique\u003C\/strong\u003E en reconfigurant l'affichage \u00e0 votre guise.\u003C\/q\u003E\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article95\/utiliser-la-fonction-pagination-dans-une-page-statique\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"utiliser-la-fonction-pagination-dans-une-page-statique\"\n\t\t\t},\n\t\t\t\"headline\": \"Utiliser la fonction pagination() dans une page statique.\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/pexels\/pexels-photo-1522182.jpeg\",\n\t\t\t\t\"datePublished\": \"2023-03-01T19:01:00Z\",\n\t\t\t\"dateModified\": \"2024-08-27T21:13:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"gccyrillus\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"pagination, PluXml, Page statique\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003EPour cela il nous faut d\u00e9clarer quelques variables pour ensuite filtrer&nbsp;et boucler sur les articles \u00e0 afficher.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EPour faire concis, voici \u003Cstrong\u003Ele code de base \u00e0 utiliser\u003C\/strong\u003E avec quelques commentaires pour vous aider \u00e0 suivre la logique du script.\u003C\/p\u003E\r\n\r\n\u003Cpre class=\"language-php\"\u003E\r\n\u003Ccode class=\"language-php\"\u003E\u003Cspan class=\"token deliminator\"\u003E&lt;?php\u003C\/span\u003E\r\n# \u003Cspan class=\"token variable\"\u003E$this\u003C\/span\u003E is \u003Cspan class=\"token variable\"\u003E$plxShow\u003C\/span\u003E\r\n\t#########################################\r\n\t#configuration \u003Cspan class=\"token punctuation\"\u003E:\u003C\/span\u003E categorie\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003Es\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E et nb\u003Cspan class=\"token operator\"\u003E\/\u003C\/span\u003Epage\r\n\t#########################################\r\n\t# nombre d'article \u00e0 afficher par page\r\n\t\u003Cspan class=\"token variable\"\u003E$bypage\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E \u003Cspan class=\"token number\"\u003E6\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\t# choix de la categorie\r\n\t\u003Cspan class=\"token variable\"\u003E$catId\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E \u003Cspan class=\"token string\"\u003E'001'\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E \r\n\t#########################################\r\n\t# FIN configuration\r\n\t#########################################\r\n\r\n\t############################# \r\n\t# extraction et maj variables\r\n\t############################# \r\n\t\r\n\t#mode de tri \r\n\t\u003Cspan class=\"token variable\"\u003E$tri\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$this\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;plxMotor\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;aCats\u003Cspan class=\"token punctuation\"\u003E[\u003C\/span\u003E\u003Cspan class=\"token variable\"\u003E$catId\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E]\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E[\u003C\/span\u003E\u003Cspan class=\"token string\"\u003E'tri'\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E]\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\t\r\n\t# filtrage article par cat\u00e9gorie\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003Es\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E\r\n\t\u003Cspan class=\"token variable\"\u003E$motif\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E \u003Cspan class=\"token string\"\u003E'\/^[0-9]{4}.((?:[0-9]|home|,)*(?:'\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E.\u003C\/span\u003E\u003Cspan class=\"token variable\"\u003E$catId\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E.\u003C\/span\u003E\u003Cspan class=\"token string\"\u003E')(?:[0-9]|home|,)*).[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$\/'\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\t\r\n\t# extraction du num\u00e9ro de page dans l'URL \r\n\t\u003Cspan class=\"token variable\"\u003E$page\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E preg_match\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003E\u003Cspan class=\"token string\"\u003E'#\\bpage(\\d*)#'\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E,\u003C\/span\u003E\u003Cspan class=\"token variable\"\u003E$_SERVER\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E[\u003C\/span\u003E\u003Cspan class=\"token string\"\u003E'REQUEST_URI'\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E]\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E,\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$capture\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E?\u003C\/span\u003E \u003Cspan class=\"token function\"\u003Eintval\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003E\u003Cspan class=\"token variable\"\u003E$capture\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E[\u003C\/span\u003E\u003Cspan class=\"token number\"\u003E1\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E]\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E \u003Cspan class=\"token punctuation\"\u003E:\u003C\/span\u003E \u003Cspan class=\"token number\"\u003E1\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\t\r\n\t# indice de d\u00e9but\u003Cspan class=\"token punctuation\"\u003E,\u003C\/span\u003E premier article \u00e0 afficher\r\n\t\u003Cspan class=\"token variable\"\u003E$start\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E \u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003E\u003Cspan class=\"token variable\"\u003E$page\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E \u003Cspan class=\"token number\"\u003E1\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E*\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$bypage\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\t\r\n\t# \u003Cspan class=\"token keyword\"\u003Evar\u003C\/span\u003E publi\r\n\t\u003Cspan class=\"token variable\"\u003E$publi\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E \u003Cspan class=\"token string\"\u003E'before'\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\t\r\n\t#clone du tableau des articles \r\n\t\u003Cspan class=\"token variable\"\u003E$plxGlob_arts\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E clone \u003Cspan class=\"token variable\"\u003E$this\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;plxMotor\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;plxGlob_arts\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\t\r\n\t# filtrage du tableau clon\u00e9\r\n\t\u003Cspan class=\"token variable\"\u003E$aFiles\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E  \u003Cspan class=\"token variable\"\u003E$plxGlob_arts\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;query\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003E\u003Cspan class=\"token variable\"\u003E$motif\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E,\u003C\/span\u003E \u003Cspan class=\"token string\"\u003E'art'\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E,\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$tri\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E,\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$start\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E,\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$bypage\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E,\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$publi\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\t\r\n\t# extraction\u003Cspan class=\"token operator\"\u003E\/\u003C\/span\u003Emaj variables\r\n\t\u003Cspan class=\"token variable\"\u003E$this\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;plxMotor\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;motif \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$motif\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\t\u003Cspan class=\"token variable\"\u003E$this\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;plxMotor\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;bypage \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$bypage\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\t\u003Cspan class=\"token variable\"\u003E$this\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;plxMotor\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;page \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$page\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\r\n\t# On boucle sur les articles filtr\u00e9s\r\n\t\u003Cspan class=\"token variable\"\u003E$artsList\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E \u003Cspan class=\"token punctuation\"\u003E[\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E]\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\t\u003Cspan class=\"token keyword\"\u003Eforeach\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003E\u003Cspan class=\"token variable\"\u003E$aFiles\u003C\/span\u003E \u003Cspan class=\"token keyword\"\u003Eas\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$v\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E{\u003C\/span\u003E\r\n\t\t\t\u003Cspan class=\"token variable\"\u003E$art\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$this\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;plxMotor\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;parseArticle\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003EPLX_ROOT \u003Cspan class=\"token punctuation\"\u003E.\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$this\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;plxMotor\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;aConf\u003Cspan class=\"token punctuation\"\u003E[\u003C\/span\u003E\u003Cspan class=\"token string\"\u003E'racine_articles'\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E]\u003C\/span\u003E \u003Cspan class=\"token punctuation\"\u003E.\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$v\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\t\t\t\u003Cspan class=\"token keyword\"\u003Eif\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E!\u003C\/span\u003E\u003Cspan class=\"token function\"\u003Eempty\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003E\u003Cspan class=\"token variable\"\u003E$art\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E \u003Cspan class=\"token punctuation\"\u003E{\u003C\/span\u003E\r\n\t\t\t\t\t\u003Cspan class=\"token variable\"\u003E$artsList\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E[\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E]\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$art\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\t\t\t\u003Cspan class=\"token punctuation\"\u003E}\u003C\/span\u003E\r\n\t\u003Cspan class=\"token punctuation\"\u003E}\u003C\/span\u003E\r\n\t\r\n\t#maj du tableau des donn\u00e9es des articles filtr\u00e9s\r\n\t\u003Cspan class=\"token variable\"\u003E$this\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;plxMotor\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;plxRecord_arts \u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E \u003Cspan class=\"token keyword\"\u003Enew\u003C\/span\u003E plxRecord\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003E\u003Cspan class=\"token variable\"\u003E$artsList\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E\r\n\u003Cspan class=\"token deliminator\"\u003E?&gt;\u003C\/span\u003E\r\n\u003Cspan class=\"token operator\"\u003E&lt;\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E!\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E--\u003C\/span\u003E affichage du ou des articles selon le nombre \u00e0 afficher par pages dans la variable \u003Cspan class=\"token variable\"\u003E$bypage\u003C\/span\u003E \u003Cspan class=\"token operator\"\u003E--\u003C\/span\u003E&gt;\r\n\u003Cspan class=\"token operator\"\u003E&lt;\u003C\/span\u003Ediv \u003Cspan class=\"token keyword\"\u003Eclass\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E\u003Cspan class=\"token string\"\u003E\"my_articles\"\u003C\/span\u003E&gt;\r\n\u003Cspan class=\"token deliminator\"\u003E&lt;?php\u003C\/span\u003E\r\n\t# boucle pour l'affichage\r\n\t\u003Cspan class=\"token keyword\"\u003Ewhile\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003E\u003Cspan class=\"token variable\"\u003E$this\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;plxMotor\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;plxRecord_arts\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;loop\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E \u003Cspan class=\"token punctuation\"\u003E{\u003C\/span\u003E\r\n\u003Cspan class=\"token deliminator\"\u003E?&gt;\u003C\/span\u003E\r\n\t\u003Cspan class=\"token operator\"\u003E&lt;\u003C\/span\u003Earticle&gt;\r\n\t\t\u003Cspan class=\"token operator\"\u003E&lt;\u003C\/span\u003Eh2&gt;\r\n\t\t\t\t\u003Cspan class=\"token deliminator\"\u003E&lt;?php\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$this\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;artTitle\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E \u003Cspan class=\"token deliminator\"\u003E?&gt;\u003C\/span\u003E\r\n\t\t\u003Cspan class=\"token operator\"\u003E&lt;\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E\/\u003C\/span\u003Eh2&gt;\r\n\t\t\t\t\u003Cspan class=\"token deliminator\"\u003E&lt;?php\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$this\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;artThumbnail\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E \u003Cspan class=\"token deliminator\"\u003E?&gt;\u003C\/span\u003E\r\n\t\t\u003Cspan class=\"token operator\"\u003E&lt;\u003C\/span\u003Ediv&gt;\r\n\t\t\t\t\u003Cspan class=\"token deliminator\"\u003E&lt;?php\u003C\/span\u003E \u003Cspan class=\"token variable\"\u003E$this\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;artChapo\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E \u003Cspan class=\"token deliminator\"\u003E?&gt;\u003C\/span\u003E\r\n\t\t\u003Cspan class=\"token operator\"\u003E&lt;\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E\/\u003C\/span\u003Ediv&gt;\r\n\t\u003Cspan class=\"token operator\"\u003E&lt;\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E\/\u003C\/span\u003Earticle&gt;\r\n\u003Cspan class=\"token deliminator\"\u003E&lt;?php\u003C\/span\u003E\r\n\t\u003Cspan class=\"token punctuation\"\u003E}\u003C\/span\u003E\r\n\u003Cspan class=\"token deliminator\"\u003E?&gt;\u003C\/span\u003E\r\n\u003Cspan class=\"token operator\"\u003E&lt;\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E\/\u003C\/span\u003Ediv&gt;\r\n\u003Cspan class=\"token operator\"\u003E&lt;\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E!\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E--\u003C\/span\u003E fin block affichage article\r\n\r\n\r\n\u003Cspan class=\"token operator\"\u003E&lt;\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E!\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E--\u003C\/span\u003E Affichage de la pagination \u003Cspan class=\"token operator\"\u003E--\u003C\/span\u003E&gt;\r\n    \u003Cspan class=\"token operator\"\u003E&lt;\u003C\/span\u003Enav  \u003Cspan class=\"token keyword\"\u003Eclass\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E=\u003C\/span\u003E\u003Cspan class=\"token string\"\u003E\"pagination text-center\"\u003C\/span\u003E&gt;\r\n\u003Cspan class=\"token deliminator\"\u003E&lt;?php\u003C\/span\u003E\r\n\t############################\r\n\t# Affichage de la pagination\r\n\t############################\r\n\t\u003Cspan class=\"token variable\"\u003E$this\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E-\u003C\/span\u003E&gt;pagination\u003Cspan class=\"token punctuation\"\u003E(\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E)\u003C\/span\u003E\u003Cspan class=\"token punctuation\"\u003E;\u003C\/span\u003E \r\n\u003Cspan class=\"token deliminator\"\u003E?&gt;\u003C\/span\u003E\r\n    \u003Cspan class=\"token operator\"\u003E&lt;\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E\/\u003C\/span\u003Enav&gt;\u003Cspan class=\"token operator\"\u003E&lt;\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E!\u003C\/span\u003E\u003Cspan class=\"token operator\"\u003E--\u003C\/span\u003E fin block affichage pagination\u003Cspan class=\"token operator\"\u003E--\u003C\/span\u003E&gt;\u003C\/code\u003E\u003C\/pre\u003E\r\n\r\n\u003Cp\u003EVous pouvez donc configurer&nbsp;la cat\u00e9gorie \u00e0 filtrer&nbsp;et le nombre d'article par page\u003C\/p\u003E\r\n\r\n\u003Cp\u003EL'affichage des articles se fait dans la boucle, vous pouvez aussi choisir les donn\u00e9es des articles \u00e0 afficher ainsi que la structure HTML de fa\u00e7on \u00e0 ce qu'elle refl\u00e8te celle de votre th\u00e8me.\u003C\/p\u003E",
            "tags": "pagination, PluXml, Page statique",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/pexels\/pexels-photo-1522182.jpeg",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0095",
            "author": "002",
            "categorie": "001,007,006,008,010",
            "url": "utiliser-la-fonction-pagination-dans-une-page-statique",
            "date": "202303011901",
            "nb_com": 0,
            "date_creation": "202303011901",
            "date_update": "202408272113"
        },
        {
            "filename": ".\/data\/articles\/0094.001,004,008,010,012.001.202301281421.choisir-des-themes-ou-apprendre-a-les-mettre-a-jour.xml",
            "title": "Choisir des th\u00e8mes ou apprendre \u00e0 les mettre \u00e0 jour",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003ETous les amis de Pluxml savent que les versions de ce CMS montent plus vite que les mises \u00e0 jours des plugins et des th\u00e8mes existants ce qui peut \u00eatre gal\u00e8re pour les d\u00e9butants qui d\u00e9couvrent notre sympathique gestionnaire de sites.\u003C\/p\u003E\n\n\u003Cp\u003EMais l'un d'entre-nous a enfin eu l'id\u00e9e de mettre en ligne une s\u00e9lection de th\u00e8mes (templates) \u003Cstrong\u003Emis \u00e0 jour pour la derni\u00e8re version\u003C\/strong\u003E&nbsp;\u003Ca href=\"https:\/\/forum.pluxml.org\/discussion\/7232\/pluxml-5-8-8-and-5-8-9-releases\" target=\"_blank\"\u003EPluXml 5.8.9\u003C\/a\u003E&nbsp;mais surtout d'\u00e9crire des tutoriels pour apprendre \u00e0 ses visiteurs de le faire eux-m\u00eame. :)\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article94\/choisir-des-themes-ou-apprendre-a-les-mettre-a-jour\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"choisir-des-themes-ou-apprendre-a-les-mettre-a-jour\"\n\t\t\t},\n\t\t\t\"headline\": \"Choisir des th\u00e8mes ou apprendre \u00e0 les mettre \u00e0 jour\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/pluxthemes.png\",\n\t\t\t\t\"datePublished\": \"2023-01-28T14:21:00Z\",\n\t\t\t\"dateModified\": \"2023-03-22T21:11:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Pluxml, gcyrillus-nomade, Th\u00e8mes, Plugins, Templates, B\u00e9n\u00e9vole, Mise \u00e0 jour, Tutoriels, Cr\u00e9ation\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003ESon site,&nbsp;\u003Ca href=\"https:\/\/pluxthemes.com\" target=\"_blank\"\u003Ehttps:\/\/pluxthemes.com \u003C\/a\u003Eest \u00e0 visiter absolument et comme \u00e7a, si vous voulez mettre rapidement en ligne un site propuls\u00e9 par Pluxml, il ne vous faudra que quelques minutes pour choisir le template qui vous va bien et\/ou \u003Cstrong\u003Eapprendre les bases de la cr\u00e9ation et mise \u00e0 jour des th\u00e8mes\u003C\/strong\u003E. Ce n'est pas si difficile que cela. ;)\u003C\/p\u003E\n\n\u003Cp\u003EDe plus, le gars est plein d'humour et ses textes se lisent avec d\u00e9lectation.\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Ca href=\"https:\/\/forum.pluxml.org\/profile\/gcyrillus-nomade\" target=\"_blank\"\u003Egcyrillus-nomade\u003C\/a\u003E, c'est le nom avec lequel&nbsp;il signe sur les forums, bien qu'il fasse en priv\u00e9 le modeste, est dou\u00e9 pour pas mal de choses et, sur cet espace depuis si longtemps, est b\u00e9n\u00e9volement \u00e0&nbsp; l'origine que beaucoup de mat\u00e9riels que nous utilisons tous les jours pour la cr\u00e9ation et construction de nos sites.&nbsp;&nbsp;\u003C\/p\u003E\n\n\u003Cp\u003EIl conna\u00eet tout de Pluxml.&nbsp;\u003C\/p\u003E\n\n\u003Cp\u003EQuand vous aurez l'occasion de communiquer avec lui, dites-lui \"Bonjour\" de ma part. ;)\u003C\/p\u003E\n\n\u003Cp\u003E\u003Ca href=\"https:\/\/pluxthemes.com\/\" target=\"_blank\"\u003Ehttps:\/\/pluxthemes.com\u003C\/a\u003E\u003C\/p\u003E",
            "tags": "Pluxml, gcyrillus-nomade, Th\u00e8mes, Plugins, Templates, B\u00e9n\u00e9vole, Mise \u00e0 jour, Tutoriels, Cr\u00e9ation",
            "meta_description": "Pluxml : Choisir des th\u00e8mes ou apprendre \u00e0 les mettre \u00e0 jour",
            "meta_keywords": "Pluxml, gcyrillus-nomade, Th\u00e8mes, Plugins, Templates, B\u00e9n\u00e9vole, Mise \u00e0 jour, Tutoriels, Cr\u00e9ation",
            "title_htmltag": "Choisir des th\u00e8mes ou apprendre \u00e0 les mettre \u00e0 jour",
            "thumbnail": "data\/medias\/pluxthemes.png",
            "thumbnail_title": "https:\/\/pluxthemes.com\/",
            "thumbnail_alt": "https:\/\/pluxthemes.com\/",
            "numero": "0094",
            "author": "001",
            "categorie": "001,004,008,010,012",
            "url": "choisir-des-themes-ou-apprendre-a-les-mettre-a-jour",
            "date": "202301281421",
            "nb_com": 0,
            "date_creation": "202301281421",
            "date_update": "202303222111"
        },
        {
            "filename": ".\/data\/articles\/0090.004.001.201812311623.changement-de-proprietaire.xml",
            "title": "Changement de propri\u00e9taire",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cdiv\u003E\r\n\u003Cp\u003EC'est ce qu'on lit d'habitude sur la banderole sur les vitrine de magasins qui changent d'\u00e9quipe de gestion et notre site a le devoir de vous signaler cet \u00e9v\u00e9nement.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EPas que le blog soit une boutique ou que \u003Cstrong\u003ESt\u00e9phane Ferrari\u003C\/strong\u003E ancien chef de projet PluXml soit fatigu\u00e9 de notre CMS pr\u00e9f\u00e9r\u00e9 ou en ait marre, mais notre ami, de part ses engagements professionnels et un d\u00e9m\u00e9nagement dans le sud de la France, a pass\u00e9 la main \u00e0 justement \u003Cstrong\u003Eune nouvelle \u00e9quipe\u003C\/strong\u003E et c'est votre serviteur, Jack Paloque-Berges (Jack31 sur les forums), qui prend la rel\u00e8ve en ce qui concerne Pluxopolis.\u003C\/p\u003E\r\n\r\n\u003Cp\u003ELe contenu et la vocation ne changeront pas.\u003C\/p\u003E\r\n\r\n\u003Cp\u003ELe titre \"\u003Cem\u003EDevenir un pro de PluXml, mais pas seulement...\u003C\/em\u003E\" reste d'actualit\u00e9 et le \"pas seulement\" prends la forme d'une nouvelle section sobrement nomm\u00e9e \"\u003Ca href=\"https:\/\/ressources.pluxopolis.net\/\" target=\"_blank\"\u003ECentre de ressources et de t\u00e9l\u00e9chargements pour PluXml\u003C\/a\u003E\" et, si il n'y a pour le moment pas d'autres projet de d\u00e9veloppement de l'ensemble, je compte sur des d\u00e9sirs et envies des visiteurs pour me faire des propositions. De la collaboration quoi ! ;)\u003C\/p\u003E\r\n\r\n\u003Cp\u003EEn attendant, habitu\u00e9s ou pas de ce site, je vous souhaite encore et toujours beaucoup de bonheur avec PluXml et Pluxopolis.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EJack Paloque-Berges\u003C\/p\u003E\r\n\u003C\/div\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article90\/changement-de-proprietaire\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"changement-de-proprietaire\"\n\t\t\t},\n\t\t\t\"headline\": \"Changement de propri\u00e9taire\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/images-site\/nouvelle-equipe.png\",\n\t\t\t\t\"datePublished\": \"2018-12-31T16:23:00Z\",\n\t\t\t\"dateModified\": \"2024-03-06T21:01:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, St\u00e9phane, Jack31, CMS, Ressources, T\u00e9l\u00e9chargements, Collaboration, Pluxopolis, Equipe, Evenement,\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "",
            "tags": "PluXml, St\u00e9phane, Jack31, CMS, Ressources, T\u00e9l\u00e9chargements, Collaboration, Pluxopolis, Equipe, Evenement,",
            "meta_description": "Changement de propri\u00e9taire pluXml, Pluxopolis",
            "meta_keywords": "PluXml, St\u00e9phane, Jack31, CMS, Ressources, T\u00e9l\u00e9chargements, Collaboration,Pluxopolis, Equipe, Evenement,",
            "title_htmltag": "Changement de propri\u00e9taire",
            "thumbnail": "data\/medias\/images-site\/nouvelle-equipe.png",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0090",
            "author": "001",
            "categorie": "004",
            "url": "changement-de-proprietaire",
            "date": "201812311623",
            "nb_com": 0,
            "date_creation": "201812311623",
            "date_update": "202403062101"
        },
        {
            "filename": ".\/data\/articles\/0088.008.001.201812161902.un-centre-de-ressources-pour-pluxml.xml",
            "title": "Un centre de ressources pour PluXml",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003EPluxopolis vient de mettre en ligne un \u003Cstrong\u003Ecentre de ressources et de t\u00e9l\u00e9chargements\u003C\/strong\u003E pour PluXml.\n\u003C\/p\u003E\n\u003Cp\u003EPlugins, th\u00e8mes, scripts utiles et inutiles utilisables \u003Cstrong\u003Epour n'importe quel site internet\u003C\/strong\u003E, lien vers la documentation officielle, adresses vers des d\u00e9p\u00f4ts de plugins\/th\u00e8mes des utilisateurs les plus investis dans le d\u00e9velopement de notre CMS pr\u00e9f\u00e9r\u00e9, vous trouverez votre bonheur.\n  \u003Cbr \/\u003E\n  \u003Cbr \/\u003E\n  \u003Ca href=\"https:\/\/ressources.pluxopolis.net\" target=\"_blank\"\u003Ehttps:\/\/ressources.pluxopolis.net\u003C\/a\u003E\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article88\/un-centre-de-ressources-pour-pluxml\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"un-centre-de-ressources-pour-pluxml\"\n\t\t\t},\n\t\t\t\"headline\": \"Un centre de ressources pour PluXml\",\n\t\t\t\"datePublished\": \"2018-12-16T19:02:00Z\",\n\t\t\t\"dateModified\": \"2018-12-31T15:23:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Documentation, Ressources, T\u00e9l\u00e9chargements, Th\u00e8mes, Plugins, Scripts\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "",
            "tags": "PluXml, Documentation, Ressources, T\u00e9l\u00e9chargements, Th\u00e8mes, Plugins, Scripts",
            "meta_description": "Un centre de ressources et t\u00e9l\u00e9chargements pour PluXml",
            "meta_keywords": "PluXml, Documentation, Ressources, T\u00e9l\u00e9chargements, Th\u00e8mes, Plugins, Scripts",
            "title_htmltag": "Un centre de ressources pour PluXml",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0088",
            "author": "001",
            "categorie": "008",
            "url": "un-centre-de-ressources-pour-pluxml",
            "date": "201812161902",
            "nb_com": 0,
            "date_creation": "201812161902",
            "date_update": "201812311523"
        },
        {
            "filename": ".\/data\/articles\/0087.004.001.201812120655.sortie-ce-jour-de-pluxml-5-7.xml",
            "title": "Sortie ce jour de PluXml 5-7",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003ELa version 5.7 apporte \u00e9galement son lot de correctifs. Je vous invite \u00e0 parcourir le&nbsp;\u003Ca href=\"https:\/\/www.pluxml.org\/download\/changelog.txt\" target=\"_blank\"\u003Echangelog\u003C\/a\u003E&nbsp;pour prendre connaissance de l'ensemble des modifications.\u003C\/p\u003E\r\n\r\n\u003Cp\u003ELe \u003Ca href=\"https:\/\/demo.pluxml.org\/\" target=\"_blank\"\u003Esite de d\u00e9monstration\u003C\/a\u003E a \u00e9t\u00e9 mis \u00e0 jour, pour ceux qui veulent d\u00e9couvrir le nouveau th\u00e8me ou tester le drag and drop, par exemple.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article87\/sortie-ce-jour-de-pluxml-5-7\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"sortie-ce-jour-de-pluxml-5-7\"\n\t\t\t},\n\t\t\t\"headline\": \"Sortie ce jour de PluXml 5-7\",\n\t\t\t\"datePublished\": \"2018-12-12T06:55:00Z\",\n\t\t\t\"dateModified\": \"2024-03-06T21:30:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t}\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003EAgr\u00e9ment\u00e9e d'un nouveau th\u00e8me utilisant PluCSS 1.3, la version 5.7 de \u003Cstrong\u003EPluXml\u003C\/strong\u003E apporte quelques nouveaut\u00e9s, tel que la possibilit\u00e9 de \u003Cstrong\u003Eg\u00e9rer l'ordre des cat\u00e9gories\u003C\/strong\u003E et des pages statiques par&nbsp;\u003Cem\u003Edrag and drop\u003C\/em\u003E. L'ordre de chargement des plugins est \u00e9galement concern\u00e9 par cette fonctionnalit\u00e9.\u003C\/p\u003E\r\n\r\n\u003Cp\u003EPar ailleurs, PluXml est d\u00e9sormais capable de charger des plugins en fonction d'un contexte pr\u00e9d\u00e9fini : uniquement sur la partie publique&nbsp;du site, uniquement dans l'administration, ou dans les deux cas. Cela n\u00e9cessite n\u00e9anmoins&nbsp;\u003Ca href=\"https:\/\/wiki.pluxml.org\/developper\/developpement\/#fichier-infosxml\" target=\"_blank\"\u003Eune action\u003C\/a\u003E&nbsp;des d\u00e9veloppeurs de plugins pour profiter de cette am\u00e9lioration.\u003C\/p\u003E\r\n\r\n\u003Cp\u003ELa&nbsp;\u003Ca href=\"https:\/\/wiki.pluxml.org\/\" target=\"_blank\"\u003Edocumentation\u003C\/a\u003E&nbsp;a \u00e9t\u00e9 compl\u00e9t\u00e9e pour apporter plus d'informations sur ces nouveaut\u00e9s.\u003C\/p\u003E\r\n\r\n\r\n\u003Cp\u003EL'\u00e9quipe de PluXml adresse un remerciement tout particulier aux contributeurs de cette version 5.7 (bazooka07,&nbsp;WorldBot,&nbsp;sudwebdesign) et \u00e0 l'ensemble de la communaut\u00e9 qui anime le forum.\u003C\/p\u003E\r\n\r\n\u003Cp\u003ENous vous souhaitons une bonne installation et d'excellentes f\u00eates de fin d'ann\u00e9e.\u003Cbr \/\u003E\r\n\u003Cbr \/\u003E\r\nP3ter\u003Cbr \/\u003E\r\n&nbsp;\u003C\/p\u003E\r\n\r\n\u003Chr \/\u003E\r\n\u003Cp\u003E\u003Cimg alt=\"\" src=\"https:\/\/pluxopolis.net\/data\/medias\/images-site\/attention-mec.jpg\" style=\"margin-left: 5px; margin-right: 5px; float: left; width: 30px; height: 30px;\" \/\u003EPluxopolis est toujours&nbsp;&nbsp;en cours de migration.\u003Cbr \/\u003E\r\nIl pourrait encore avoir \u003Cstrong\u003Edes dysfonctionnements\u003C\/strong\u003E pendant quelques jours.\u003Cbr \/\u003E\r\n\u003Cbr \/\u003E\r\nMerci pour votre patience. :)\u003C\/p\u003E",
            "tags": "",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0087",
            "author": "001",
            "categorie": "004",
            "url": "sortie-ce-jour-de-pluxml-5-7",
            "date": "201812120655",
            "nb_com": 4,
            "date_creation": "201812120655",
            "date_update": "202403062130"
        },
        {
            "filename": ".\/data\/articles\/0086.001,010.001.201706121000.theme-par-defaut-installer-une-banniere-sous-le-logo-de-pluxml.xml",
            "title": "Th\u00e8me par d\u00e9faut: installer une banni\u00e8re sous le logo de PluXml",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Nous allons voir comment installer une image en guise de banni\u00e8re dans le th\u00e8me par d\u00e9faut de PluXml 5.6, de mani\u00e8re \u00e0 remplacer :\r\n\u003Cp style=\"text-align:center\"\u003E\r\n\u003Cimg src=\"https:\/\/pluxopolis.net\/data\/images\/0086\/bg_old.png\" alt=\"\" title=\"\" \/\u003E\r\n\u003C\/p\u003E\r\npar :\r\n\u003Cp style=\"text-align:center\"\u003E\r\n\u003Cimg src=\"https:\/\/pluxopolis.net\/data\/images\/0086\/bg_new.png\" alt=\"\" title=\"\" \/\u003E\r\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article86\/theme-par-defaut-installer-une-banniere-sous-le-logo-de-pluxml\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"theme-par-defaut-installer-une-banniere-sous-le-logo-de-pluxml\"\n\t\t\t},\n\t\t\t\"headline\": \"Th\u00e8me par d\u00e9faut: installer une banni\u00e8re sous le logo de PluXml\",\n\t\t\t\"datePublished\": \"2017-06-12T10:00:00Z\",\n\t\t\t\"dateModified\": \"2024-03-06T20:58:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Th\u00e8me, Template, Css\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\r\nPour rappel, le th\u00e8me par d\u00e9faut est dans le dossier: \/themes\/defaut\/\r\n\u003C\/p\u003E\r\n\u003Cp\u003E\r\nCommen\u00e7ons par copier notre bani\u00e8re \u003Cstrong\u003Ebanner.jpg\u003C\/strong\u003E, dans le dossier \/themes\/defaut\/img\/\r\n\u003Cbr \/\u003E\u003Cbr \/\u003E\r\nJ'ai pris une image au format jpg de 640x240. Veillez tout de m\u00eame \u00e0 ne pas prendre une image trop lourde. N'h\u00e9sitez pas \u00e0 utiliser des services comme \u003Ca href=\"https:\/\/tinyjpg.com\/\"\u003Ehttps:\/\/tinyjpg.com\/\u003C\/a\u003E pour optimiser le poids de vos images que vous mettez en ligne sur votre site, ceci pour gagner en vitesse d'affichage et en bande passante: pensez \u00e0 vos visiteurs !\r\n\u003Cbr \/\u003E\u003Cbr \/\u003E\r\n\u00c9ditez le fichier \/themes\/defaut\/css\/theme.css\r\n\u003Cbr \/\u003E\u003Cbr \/\u003E\r\nLocaliser le code suivant:\r\n\u003Cbr \/\u003E\r\n\u003Cpre\u003E\u003Ccode class=\"language-css\"\u003E\r\n.header {\r\n\tbackground-color: #1a6699;\r\n\tcolor: #fff;\r\n\tpadding-bottom: 6rem;\r\n\tpadding-top: 6rem;\r\n\ttext-align: center;\r\n}\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Cbr \/\u003E\r\net remplacer la ligne\r\n\u003Cbr \/\u003E\r\n\u003Cpre\u003E\u003Ccode class=\"language-css\"\u003E\r\nbackground-color: #1a6699;\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Cbr \/\u003E\r\npar\r\n\u003Cbr \/\u003E\r\n\u003Cpre\u003E\u003Ccode class=\"language-css\"\u003E\r\nbackground: url(..\/img\/banner.jpg) top left repeat-x;\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Cbr \/\u003E\r\nPour afficher une banni\u00e8re centr\u00e9e sans qu'elle se r\u00e9p\u00e8te horizontalement, utilisez \u00e0 la place le code suivant:\r\n\u003Cpre\u003E\u003Ccode class=\"language-css\"\u003E\r\nbackground: url(..\/img\/banner.jpg) top center no-repeat;\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Cbr \/\u003E\r\n\r\nNous rempla\u00e7ons tout simplement la couleur de fond de l'ent\u00eate du site par notre image\r\n\r\n\u003Cul\u003E\r\n\u003Cli\u003Eurl : correspond au lien relatif de l'image par rapport au fichier css \u00e9dit\u00e9\u003C\/li\u003E\r\n\u003Cli\u003Etop left : permet de positionner l'image en haut \u00e0 gauche de la balise &lt;div\u003E identifi\u00e9e par la classe css .header\u003C\/li\u003E\r\n\u003Cli\u003Erepeat-x : permet de r\u00e9p\u00e9ter l'image sur toute la largeur pour qu'elle occupe horizontalement tout l'\u00e9cran\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\u003Cbr \/\u003E\r\nSi vous souhaitez masquer le titre du site et sa description, rajoutez \u00e0 la fin du fichier theme.css\r\n\u003Cbr \/\u003E\r\n\u003Cpre\u003E\u003Ccode class=\"language-css\"\u003E\r\n.header h1,\r\n.header h2 {\r\n\tdisplay: none;\r\n}\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Cbr \/\u003E\r\nIl est pr\u00e9f\u00e9rable de masquer plut\u00f4t que de supprimer le titre du site, pour laisser l'information disponible et accessible aux moteurs de recherche. Dans ce cas l\u00e0 vous pouvez toujours rajouter le titre du site directement sur la banni\u00e8re en utilisant un logiciel de retouche d'image.\r\n\u003Cbr \/\u003E\r\n\u003Cbr \/\u003E\r\n\u003Cp\u003E\r\ncr\u00e9dit photo: \u003Ca href=\"https:\/\/pixabay.com\/fr\/banni%C3%A8re-en-t%C3%AAte-ciel-paysage-1557842\/\"  title=\"pixabay\"\u003Epixabay\u003C\/a\u003E CC0 Public Domain\r\n\u003C\/p\u003E",
            "tags": "PluXml, Th\u00e8me, Template, Css",
            "meta_description": "Tutoriel pour afficher une banni\u00e8re dans le th\u00e8me par d\u00e9faut de PluXml 5.6",
            "meta_keywords": "PluXml, Th\u00e8me, Template, Css",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0086",
            "author": "001",
            "categorie": "001,010",
            "url": "theme-par-defaut-installer-une-banniere-sous-le-logo-de-pluxml",
            "date": "201706121000",
            "nb_com": 10,
            "date_creation": "201706121000",
            "date_update": "202403062058"
        },
        {
            "filename": ".\/data\/articles\/0085.001,010.001.201705311500.une-barre-des-menus-fixe.xml",
            "title": "Une barre des menus fixe",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0085\/fixed_header.gif\" alt=\"\"  title=\"Fixed header\" \/\u003E\n\u003C\/p\u003E\n\nPour remplacer la barre actuelle des menus dans le th\u00e8me par d\u00e9faut de PluXml 5.6 et la rendre fixe, \u00e9ditez le fichier \u003Cem\u003Ethemes\/defaut\/css\/theme.css\u003C\/em\u003E et remplacer les lignes suivantes:\n\n\u003Cpre\u003E\u003Ccode class=\"language-css\"\u003E\n.nav {\n\tbackground-color: #fff;\n\theight: 4rem;\n\ttext-align: left;\n\tmargin-top: 1rem;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\npar\n\n\u003Cpre\u003E\u003Ccode class=\"language-css\"\u003E\n.nav {\n\tbackground-color: #fbfbfb;\n\theight: 4rem;\n\ttext-align: center;\n\tpadding-top: 0.5rem;\n\tposition: fixed;\n\twidth: 100%;\n\tz-index: 1;\n\tborder-bottom: 1px #eee solid;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLa barre sera ainsi fixe en haut de l'\u00e9cran lors de l'utilistion du scroll vertical \u00e0 la souris et les menus seront centr\u00e9s.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article85\/une-barre-des-menus-fixe\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"une-barre-des-menus-fixe\"\n\t\t\t},\n\t\t\t\"headline\": \"Une barre des menus fixe\",\n\t\t\t\"datePublished\": \"2017-05-31T15:00:00Z\",\n\t\t\t\"dateModified\": \"2017-05-31T15:00:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Astuce, Css, Menu, Navigation, PluCSS, PluXml, Th\u00e8me, Template\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Astuce, Css, Menu, Navigation, PluCSS, PluXml, Th\u00e8me, Template",
            "meta_description": "Modifier la barre des menus de PluXml pour la rendre fixe",
            "meta_keywords": "PluXml, PluCSS, Th\u00e8me, Css, Navigation",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0085",
            "author": "001",
            "categorie": "001,010",
            "url": "une-barre-des-menus-fixe",
            "date": "201705311500",
            "nb_com": 7,
            "date_creation": "201705311500",
            "date_update": "201705311500"
        },
        {
            "filename": ".\/data\/articles\/0084.001.001.201704051330.renommer-une-image-dans-pluxml.xml",
            "title": "Renommer un fichier dans PluXml \u00e0 partir du gestionnaire de m\u00e9dias",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "\u003Cp\u003EAvec la sortie de PluXml 5.6, une nouvelle fonctionnalit\u00e9, certes basique mais qui peut \u00eatre tr\u00e8s utile, est apparue dans le gestionnaire de m\u00e9dias, celle permettant de renommer facilement un fichier.\u003C\/p\u003E\n\u003Cp\u003E\nComme le montre l'animation ci-dessous, en cliquant sur la petite ic\u00f4ne \"Renommer fichier\" vous pourrez saisir le nouveau nom du fichier \u00e0 partir d'une fen\u00eatre de dialogue.\u003Cp\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0084\/rename2.gif\" alt=\"\"  title=\"Renommer une image\" \/\u003E\n\u003C\/p\u003E\n\u003Cp\u003ENotez qu'il n'est pas n\u00e9cessaire de saisir l'extension du fichier. Si aucune extension est saisie, PluXml ajoutera automatiquement l'extension existante du fichier \u00e0 la fin du nouveau nom.\u003C\/p\u003E\n\u003Cp\u003EPetite remarque, pensez qui si l'image que vous renommez est utilis\u00e9e dans un article, le fait de changer son nom provoquera une erreur d'affichage au niveau de l'article car l'ancien fichier ne sera plus trouv\u00e9: changer le nom physique d'un fichier, ne change pas son lien dans les articles.\u003Cp\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article84\/renommer-une-image-dans-pluxml\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"renommer-une-image-dans-pluxml\"\n\t\t\t},\n\t\t\t\"headline\": \"Renommer un fichier dans PluXml \u00e0 partir du gestionnaire de m\u00e9dias\",\n\t\t\t\"datePublished\": \"2017-04-05T13:30:00Z\",\n\t\t\t\"dateModified\": \"2017-04-05T14:00:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Gestionnaire de m\u00e9dias, Tuto\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Gestionnaire de m\u00e9dias, Tuto",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0084",
            "author": "001",
            "categorie": "001",
            "url": "renommer-une-image-dans-pluxml",
            "date": "201704051330",
            "nb_com": 3,
            "date_creation": "201704051330",
            "date_update": "201704051400"
        },
        {
            "filename": ".\/data\/articles\/0083.001.001.201701191130.afficher-les-categories-sous-forme-de-menus-deroulants.xml",
            "title": "Afficher les cat\u00e9gories sous forme de menus d\u00e9roulants",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "\u003Cp\u003E\nNous allons voir en 2 \u00e9tapes comment afficher la liste des cat\u00e9gories dans un menu d\u00e9roulants, dans la barre des menus des page statiques\n\u003C\/p\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0083\/pluxopolis_categories_menus_deroulants.gif\" alt=\"\"  title=\"\" \/\u003E\n\u003C\/p\u003E\n\n\u003Ch2\u003E1\u00e8re \u00e9tape: modification du fichier th\u00e8me\u003C\/h2\u003E\n\n\u003Cp\u003E\n\u00c9diter le fichier \u003Cstrong\u003Eheader.php\u003C\/strong\u003E de votre th\u00e8me (exemple \/themes\/defaut\/header.php)\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nLocalisez les lignes suivantes\n\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EstaticList($plxShow-\u003EgetLang('HOME'),'&lt;li class=\"#static_status\" id=\"#static_id\"\u003E&lt;a &#104;ref=\"#static_url\" title=\"#static_name\"\u003E#static_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n&lt;?php $plxShow-\u003EpageBlog('&lt;li id=\"#page_id\"\u003E&lt;a class=\"#page_status\" &#104;ref=\"#page_url\" title=\"#page_name\"\u003E#page_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nRemplacez les par le code suivant\n\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EstaticList($plxShow-\u003EgetLang('HOME'),'&lt;li class=\"#static_status\" id=\"#static_id\"\u003E&lt;a &#104;ref=\"#static_url\" title=\"#static_name\"\u003E#static_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n&lt;li class=\"submenus\"\u003E\n\t&lt;a &#104;ref=\"#\"\u003E&lt;?php $plxShow-\u003Elang('CATEGORIES') ?\u003E &#9660;&lt;\/a\u003E\n\t&lt;ul\u003E\n\t\t&lt;?php $plxShow-\u003EcatList('','&lt;li id=\"#cat_id\"\u003E&lt;a class=\"#cat_status\" &#104;ref=\"#cat_url\" title=\"#cat_name\"\u003E#cat_name&lt;\/a\u003E (#art_nb)&lt;\/li\u003E'); ?\u003E\n\t&lt;\/ul\u003E\n&lt;\/li\u003E\n&lt;?php $plxShow-\u003EpageBlog('&lt;li id=\"#page_id\"\u003E&lt;a class=\"#page_status\" &#104;ref=\"#page_url\" title=\"#page_name\"\u003E#page_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003C\/p\u003E\n\n\u003Ch2\u003E2i\u00e8me \u00e9tape: modification de la feuille de style\u003C\/h2\u003E\n\n\u003Cp\u003E\n\u00c9diter le fichier \u003Cstrong\u003Etheme.css\u003C\/strong\u003E de votre th\u00e8me (exemple \/themes\/defaut\/css\/theme.css)\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nRajoutez \u00e0 la fin du fichier les lignes suivantes\n\n\u003Cpre\u003E\u003Ccode class=\"language-css\"\u003E\n.submenus ul {\n    position: relative;\n    left: -9999px;\n    float: left;\n\tmargin: 0;\n\tpadding: 0;\n    list-style: none;\n\tz-index: 999;\n}\n.submenus:hover ul {\n\tleft: 0;\n\tcolor: #fff;\n\tbackground-color:#000;\n}\n.submenus:hover ul li {\n\tfont-size: 0.9rem;\n\tclear: both;\n\tfloat: left;\n\tpadding: 2px 10px 2px 10px;\n\twidth: 100%;\n}\n.submenus:hover ul li a {\n    display: inline-block;\n\tmargin: 0;\n\tpadding: 3px 0 3px 0;\n}\n.submenus:hover ul li a:hover {\n\ttext-decoration: none;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003C\/p\u003E\n\u003Cp\u003E\nEt voil\u00e0, \u00e0 vous d'adapter en fonction de vos besoins et de votre th\u00e8me.\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article83\/afficher-les-categories-sous-forme-de-menus-deroulants\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"afficher-les-categories-sous-forme-de-menus-deroulants\"\n\t\t\t},\n\t\t\t\"headline\": \"Afficher les cat\u00e9gories sous forme de menus d\u00e9roulants\",\n\t\t\t\"datePublished\": \"2017-01-19T11:30:00Z\",\n\t\t\t\"dateModified\": \"2017-05-09T10:03:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Css, Menu, Cat\u00e9gories, PluXml, Tuto, Template\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Css, Menu, Cat\u00e9gories, PluXml, Tuto, Template",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "Tutoriel pour afficher les cat\u00e9gories sous forme de menus d\u00e9roulants",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0083",
            "author": "001",
            "categorie": "001",
            "url": "afficher-les-categories-sous-forme-de-menus-deroulants",
            "date": "201701191130",
            "nb_com": 5,
            "date_creation": "201701191130",
            "date_update": "201705091003"
        },
        {
            "filename": ".\/data\/articles\/0082.001,007.001.201701170830.afficher-un-commentaire-au-hasard-dans-un-article.xml",
            "title": "Afficher un commentaire au hasard dans un article",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "\u003Cp\u003E\nAu lieu d'afficher tous les commentaires d'un article, voici un bout de code \u00e0 utiliser pour n'afficher qu'un seul article pris au hasard. \n\u003C\/p\u003E\n\u003Cp\u003E\n\u00c9ditez le fichier \u003Cstrong\u003Ecommentaires.php\u003C\/strong\u003E pr\u00e9sent dans le dossier de votre th\u00e8me (exemple: \/themes\/defaut\/commentaires.php)\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nen dessous de la ligne\n\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php if($plxShow-\u003EplxMotor-\u003EplxRecord_coms): ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\ncopiez le code suivant\n\n\u003Cpre\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php\n\t$comments = $plxShow-\u003EplxMotor-\u003EplxRecord_coms;\n\t$comment[0] = $comments-\u003Eresult[rand(0, $comments-\u003Esize -1)];\n\t$plxShow-\u003EplxMotor-\u003EplxRecord_coms = new plxRecord($comment);\n?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article82\/afficher-un-commentaire-au-hasard-dans-un-article\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"afficher-un-commentaire-au-hasard-dans-un-article\"\n\t\t\t},\n\t\t\t\"headline\": \"Afficher un commentaire au hasard dans un article\",\n\t\t\t\"datePublished\": \"2017-01-17T08:30:00Z\",\n\t\t\t\"dateModified\": \"2017-01-17T08:30:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t}\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0082",
            "author": "001",
            "categorie": "001,007",
            "url": "afficher-un-commentaire-au-hasard-dans-un-article",
            "date": "201701170830",
            "nb_com": 2,
            "date_creation": "201701170830",
            "date_update": "201701170830"
        },
        {
            "filename": ".\/data\/articles\/0081.001,007.001.201607201500.connaitre-le-statut-d-un-plugin-cote-visiteur.xml",
            "title": "Conna\u00eetre le statut d'un plugin cot\u00e9 visiteur",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "\u003Cp\u003E\nBout de code donn\u00e9 r\u00e9cemment sur le forum de \u003Ca href=\"http:\/\/forum.pluxml.org\/\" title=\"Accueil du forum de PluXml\"\u003Ehttp:\/\/pluxml.org\u003C\/a\u003E pour tester l'activation d'un plugin cot\u00e9 visiteur.\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php\nif(isset($plxMotor-\u003EplxPlugins-\u003EaPlugins['nom_du_plugin']))\n\techo \"plugin actif\";\nelse\n\techo \"plugin inexistant ou inactif\";\n?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\t\n\n\nRemplacer \"nom_du_plugin\" par le nom du plugin \u00e0 tester (ex: plxMyContact)\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nQuand un plugin est activ\u00e9, il appara\u00eet dans le tableau $plxMotor-\u003EplxPlugins-\u003EaPlugins\u003Cbr \/\u003E\nIl suffit alors de tester si l'index de tableau existe.\n\u003C\/p\u003E\n\u003Cp\u003E\nPS: Pour le m\u00eame test cot\u00e9 administration, remplacer $plxMotor par $plxAdmin\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article81\/connaitre-le-statut-d-un-plugin-cote-visiteur\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"connaitre-le-statut-d-un-plugin-cote-visiteur\"\n\t\t\t},\n\t\t\t\"headline\": \"Conna\u00eetre le statut d'un plugin cot\u00e9 visiteur\",\n\t\t\t\"datePublished\": \"2016-07-20T15:00:00Z\",\n\t\t\t\"dateModified\": \"2016-07-20T15:00:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Snippet, PluXml\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Snippet, PluXml",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0081",
            "author": "001",
            "categorie": "001,007",
            "url": "connaitre-le-statut-d-un-plugin-cote-visiteur",
            "date": "201607201500",
            "nb_com": 3,
            "date_creation": "201607201500",
            "date_update": "201607201500"
        },
        {
            "filename": ".\/data\/articles\/0080.001.001.201607121413.remplacer-le-lien-lire-la-suite-par-une-image.xml",
            "title": "Remplacer le lien \"Lire la suite\" par une image",
            "allow_com": "0",
            "template": "article.php",
            "chapo": "\u003Cp\u003ESeules quelques lignes de code css sont \u00e0 rajouter dans la feuille de style de son th\u00e8me pour remplacer le lien \"Lire la suite\" par une image. Voyons en d\u00e9tail comment faire...\u003C\/p\u003E\r\n\r\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg alt=\"\" src=\"https:\/\/pluxopolis.net\/data\/images\/0080\/link_more.png\" title=\"Lire la suite\" \/\u003E\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article80\/remplacer-le-lien-lire-la-suite-par-une-image\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"remplacer-le-lien-lire-la-suite-par-une-image\"\n\t\t\t},\n\t\t\t\"headline\": \"Remplacer le lien \"Lire la suite\" par une image\",\n\t\t\t\"datePublished\": \"2016-07-12T14:13:00Z\",\n\t\t\t\"dateModified\": \"2024-03-06T20:55:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Css, PluXml, Snippet, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003ECe tuto se base sur le th\u00e8me par d\u00e9faut de PluXml.\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u003Cstrong\u003E\u00c9tape 1:\u003C\/strong\u003E copiez votre image dans le dossier themes\/defaut\/img\u003Cbr \/\u003E\r\n\u003Cbr \/\u003E\r\nPour moi ce sera le fichier more.png\u003C\/p\u003E\r\n\r\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg alt=\"\" src=\"https:\/\/pluxopolis.net\/data\/images\/0080\/more.png\" title=\"Image Lire la suite\" \/\u003E\u003C\/p\u003E\r\n\r\n\u003Cp\u003E&nbsp;\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\u003Cstrong\u003E\u00c9tape 2:\u003C\/strong\u003E \u00e9ditez le fichier themes\/defaut\/css\/theme.css\u003Cbr \/\u003E\r\n\u003Cbr \/\u003E\r\n\u00c0 la fin du fichier, rajoutez les lignes suivantes:\u003C\/p\u003E\r\n\r\n\u003Cpre class=\"line-numbers\"\u003E\r\n\u003Ccode class=\"language-css\"\u003E\r\n.more a {\r\n\tbackground:url(..\/img\/more.png) no-repeat;\r\n\tdisplay: block;\r\n\theight: 32px;\r\n\twidth: 32px;\r\n\ttext-indent: -999px;\r\n}\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\r\n\u003Cp\u003E&nbsp;\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EExplications\u003C\/h2\u003E\r\n\r\n\u003Cp\u003ECe que vous devez modifier en fonction de votre image:\u003C\/p\u003E\r\n\r\n\u003Cp\u003E1. Emplacement et nom de l'image\u003Cbr \/\u003E\r\n\u003Cbr \/\u003E\r\nLa ligne suivante permet de d\u00e9finir l'emplacement et le nom du fichier \u00e0 utiliser\u003C\/p\u003E\r\n\r\n\u003Cpre class=\"line-numbers\"\u003E\r\n\u003Ccode class=\"language-css\"\u003E\r\n\tbackground:url(..\/img\/more.png) no-repeat;\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\r\n\u003Cp\u003E\u003Cbr \/\u003E\r\nadapter si besoin: ..\/img\/more.png\u003C\/p\u003E\r\n\r\n\u003Cp\u003E&nbsp;\u003C\/p\u003E\r\n\r\n\u003Cp\u003E2. Dimension de l'image\u003Cbr \/\u003E\r\n\u003Cbr \/\u003E\r\nSp\u00e9cifiez les dimensions de l'image. Ici j'ai utilis\u00e9 une image de 32x32 pixels. Modifier donc les valeurs de la hauteur et de la largeur en fonction de la taille de votre image.\u003C\/p\u003E\r\n\r\n\u003Cpre class=\"line-numbers\"\u003E\r\n\u003Ccode class=\"language-css\"\u003E\r\n\theight: 32px;\r\n\twidth: 32px;\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\r\n\u003Cp\u003E\u003Cbr \/\u003E\r\nLa ligne suivante permet d'afficher correctement l'image sur la hauteur avec la valeur sp\u00e9cifi\u00e9e pr\u00e9c\u00e9demment.\u003C\/p\u003E\r\n\r\n\u003Cp\u003E&nbsp;\u003C\/p\u003E\r\n\r\n\u003Cpre class=\"line-numbers\"\u003E\r\n\u003Ccode class=\"language-css\"\u003E\r\n\tdisplay: block;\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\r\n\u003Cp\u003E&nbsp;\u003C\/p\u003E\r\n\r\n\u003Cp\u003E&nbsp;\u003C\/p\u003E\r\n\r\n\u003Cp\u003E3. Masquer le lien \"Lire la suite\"\u003Cbr \/\u003E\r\n\u003Cbr \/\u003E\r\nIci il n'y a rien \u00e0 changer. Cette ligne sert juste \u00e0 d\u00e9placer le texte \"Lire la suite\" \u00e0 un endroit de l'\u00e9cran o\u00f9 le texte ne sera pas visible.\u003C\/p\u003E\r\n\r\n\u003Cpre class=\"line-numbers\"\u003E\r\n\u003Ccode class=\"language-css\"\u003E\r\n\ttext-indent: -999px;\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\r\n\u003Cp\u003E&nbsp;\u003C\/p\u003E\r\n\r\n\u003Cp\u003EEt voil\u00e0... rien de plus !\u003C\/p\u003E",
            "tags": "Css, PluXml, Snippet, Th\u00e8me",
            "meta_description": "Tutorial pour remplacer le titre du Lien Lire la suite par une image",
            "meta_keywords": "PluXml, Css, Snippet, Th\u00e8me, Lire la suite",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0080",
            "author": "001",
            "categorie": "001",
            "url": "remplacer-le-lien-lire-la-suite-par-une-image",
            "date": "201607121413",
            "nb_com": 0,
            "date_creation": "201607121413",
            "date_update": "202403062055"
        },
        {
            "filename": ".\/data\/articles\/0079.001.001.201605301015.pages-statiques-sous-forme-de-menus-deroulant-en-pur-css.xml",
            "title": "Pages statiques sous forme de menus d\u00e9roulant en pur css",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\r\nEnvie d'afficher la liste des menus des pages statiques sous forme de menus d\u00e9roulants ?\u003Cbr \/\u003E\u003Cbr \/\u003E\r\nComme on essaye toujours de faire les choses simples avec PluXml avec un minimun de modification, voici comment r\u00e9aliser des listes d\u00e9roulantes \u00e0 partir des groupes des menus des pages statiques avec uniquement du code css.\r\n\u003C\/p\u003E\r\n\r\n\u003Cp style=\"text-align:center\"\u003E\r\n\u003Cimg src=\"https:\/\/pluxopolis.net\/data\/images\/0079\/menus.statiques.png\" alt=\"\"  title=\"Menus pages statiques\" \/\u003E\r\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article79\/pages-statiques-sous-forme-de-menus-deroulant-en-pur-css\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"pages-statiques-sous-forme-de-menus-deroulant-en-pur-css\"\n\t\t\t},\n\t\t\t\"headline\": \"Pages statiques sous forme de menus d\u00e9roulant en pur css\",\n\t\t\t\"datePublished\": \"2016-05-30T10:15:00Z\",\n\t\t\t\"dateModified\": \"2024-03-06T20:58:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Css, Menu, Page statique, PluXml, Tuto, Template\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\r\nCommen\u00e7ons par un petit rappel, en voyant comment utiliser la notion des groupes des pages statiques. \u003Cbr \/\u003E\u003Cbr \/\u003E\r\nPour pouvoir afficher des listes d\u00e9roulantes, il faut regrouper les pages par groupe.\u003Cbr \/\u003E\r\nDans la gestion des pages statiques, sur l'\u00e9cran d'administration, utiliser la colonne \u003Cem\u003EGroupe\u003C\/em\u003E pour regrouper les pages qui seront visibles dans le m\u00eame menu d\u00e9roulant. Le nom du groupe sera le nom du menu d\u00e9roulant\r\n\u003C\/p\u003E\r\n\r\n\u003Cp style=\"text-align:center\"\u003E\r\n\u003Cimg src=\"https:\/\/pluxopolis.net\/data\/images\/0079\/admin.statiques.png\" alt=\"\"  title=\"Admin des pages statiques\" \/\u003E\r\n\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\r\nUne fois que vos pages sont cr\u00e9\u00e9es et tri\u00e9es (colonne Ordre), reportez les modifications suivantes:\r\n\u003C\/p\u003E\r\n\u003Cp\u003E\r\n\u003Cstrong\u003EAttention:\u003C\/strong\u003E \u003Ca href=\"http:\/\/plucss.pluxml.org\/\"\u003EPluCSS\u003C\/a\u003E requis.\r\n\u003C\/p\u003E\r\n\u003Cp\u003E\r\n\u00c9diter le fichier header.php du th\u00e8me par d\u00e9faut de PluXml (dossier: themes\/defaut\/)\r\n\u003Cbr \/\u003E\u003Cbr \/\u003E\r\nRemplacez la ligne\r\n\r\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\r\n&lt;div class=\"responsive-menu\"\u003E\r\n\u003C\/code\u003E\u003C\/pre\u003E\t\t\r\n\r\npar\r\n\r\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\t\r\n&lt;div id=\"dropdown-nav\" class=\"responsive-menu\"\u003E\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\r\nRemplacez la ligne \r\n\r\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\r\n&lt;?php $plxShow-\u003EstaticList($plxShow-\u003EgetLang('HOME'),'&lt;li class=\"#static_status\" id=\"#static_id\"\u003E&lt;a &#104;ref=\"#static_url\" title=\"#static_name\"\u003E#static_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\r\npar\r\n\r\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\t\r\n&lt;?php $plxShow-\u003EstaticList($plxShow-\u003EgetLang('HOME'), '&lt;li class=\"#static_status\" id=\"#static_id\"\u003E&lt;a &#104;ref=\"#static_url\" title=\"#static_name\"\u003E#static_name&lt;\/a\u003E&lt;\/li\u003E', '&lt;div\u003E#group_name&lt;\/div\u003E'); ?\u003E\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Cbr \/\u003E\r\n\u00c9ditez la feuille de style de votre th\u00e8me. Pour le th\u00e8me par d\u00e9faut, ouvrez le fichier theme.css (dossier: themes\/defaut\/css\/)\r\n\u003Cbr \/\u003E\r\nA la fin du fichier ajoutez les lignes suivantes\r\n\r\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-css\"\u003E\t\r\n#dropdown-nav ul li div {\r\n\tcolor: #eee;\r\n\tpadding: .425rem .7rem;\r\n}\r\n#dropdown-nav ul li {\r\n\tposition:relative;\r\n}\r\n#dropdown-nav ul ul {\r\n\tdisplay:none;\r\n\tposition:absolute;\r\n\ttop:100%;\r\n\tleft:0;\r\n\tbackground:#f6f6f6;\r\n\tborder: 1px solid #efefef;\r\n\tpadding:0;\r\n\tz-index: 9999;\r\n}\r\n#dropdown-nav ul ul a {\r\n\tcolor: #444;\r\n}\r\n#dropdown-nav ul ul li {\r\n\tfloat:none;\r\n\twidth:200px;\r\n}\r\n#dropdown-nav ul ul li.active a {\r\n\tbackground:transparent;\r\n}\r\n#dropdown-nav ul ul li:hover {\r\n\tbackground:#ccc;\r\n}\r\n#dropdown-nav ul li:hover \u003E ul {\r\n\tdisplay:block;\r\n}\r\n\r\n@media (max-width: 768px) {\r\n\t#dropdown-nav ul {\r\n\t\tbackground:#f6f6f6;\r\n\t}\r\n\t#dropdown-nav ul li.active {\r\n\t\tbackground-color: #258fd6;\r\n\t\twidth: 100%;\r\n\t}\r\n\t#dropdown-nav ul li.active a {\r\n\t\tcolor: #fff;\r\n\t}\r\n\t#dropdown-nav ul li:hover  {\t\r\n\t\tbackground:#ccc !important;\r\n\t\twidth: 100%;\r\n\t}\r\n\t#dropdown-nav ul li li:hover a {\r\n\t\tcolor: #fff;\r\n\t}\r\n\t#dropdown-nav ul ul {\r\n\t\twidth: 100%;\r\n\t\tborder: none;\r\n\t}\r\n\t#dropdown-nav ul li div {\r\n\t\tcolor: #444;\r\n\t}\r\n\t#dropdown-nav ul li a {\r\n\t\tcolor: #444;\r\n\t}\r\n}\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\r\nVoil\u00e0, c'est fini. Enjoy !\r\n\u003C\/p\u003E\r\n\r\n\u003Cp\u003E\r\n\u003Cstrong\u003EEDIT: 05\/07\/2016:\u003C\/strong\u003E ajout du code css pour la partie responsive: \u003Cbr \/\u003E\r\n@media (max-width: 768px) { ... }\r\n\u003C\/p\u003E\r\n\r\n\r\n\u003Cp\u003E\r\n\u003Cstrong\u003EEDIT: 03\/05\/2017:\u003C\/strong\u003E mise en surbrillance du menu parent des groups de pages statiques: \u003Cbr \/\u003E\r\nLa structure html des menus d\u00e9roulant g\u00e9n\u00e9r\u00e9e par PluXml 5.5 ne permet pas de mettre en subrillance le menu parent des groupes de pages statiques en utilisant que du code css. L'alternative est d'utiliser quelques lignes de javascript.\u003Cbr \/\u003E\r\nL'ensemble de ces modifications sont list\u00e9es ici : \u003Ca style=\"color:red\" href=\"https:\/\/pluxopolis.net\/data\/images\/0079\/css_dropdown_menus.txt\"\u003Efichier texte\u003C\/a\u003E\r\n\u003C\/p\u003E",
            "tags": "Css, Menu, Page statique, PluXml, Tuto, Template",
            "meta_description": "Tutoriel pour afficher les groupes de pages statiques sous forme de menus d\u00e9roulants",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0079",
            "author": "001",
            "categorie": "001",
            "url": "pages-statiques-sous-forme-de-menus-deroulant-en-pur-css",
            "date": "201605301015",
            "nb_com": 14,
            "date_creation": "201605301015",
            "date_update": "202403062058"
        },
        {
            "filename": ".\/data\/articles\/0078.001.001.201605091247.ajouter-une-aide-aux-themes-de-pluxml-5-5.xml",
            "title": "Ajouter une aide aux th\u00e8mes de PluXml 5.5+",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\r\nAvec le gestionnaire de th\u00e8me apparu depuis la version 5.5 de PluXml, il est possible d'ajouter une aide aux th\u00e8mes, visible sous forme d'un lien \u003Cstrong\u003EAide\u003C\/strong\u003E au niveau du descriptif du th\u00e8me. Cet aide peut servir par exemple \u00e0 indiquer \u00e0 l'utilisateur des pr\u00e9-requis, comme les plugins \u00e0 installer pour le bon fonctionnement du th\u00e8me.\r\n\u003C\/p\u003E\r\n\u003Cp style=\"text-align:center\"\u003E\r\n\u003Cimg src=\"https:\/\/pluxopolis.net\/data\/images\/0078\/themes_manager.png\" alt=\"\"  title=\"Gestionnaire de th\u00e8mes\" \/\u003E\r\n\u003C\/p\u003E\r\n\u003Cp\u003ENous allons voir quel fichier utiliser et comment le renseigner pour afficher l'aide d'un th\u00e8me.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article78\/ajouter-une-aide-aux-themes-de-pluxml-5-5\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"ajouter-une-aide-aux-themes-de-pluxml-5-5\"\n\t\t\t},\n\t\t\t\"headline\": \"Ajouter une aide aux th\u00e8mes de PluXml 5.5+\",\n\t\t\t\"datePublished\": \"2016-05-09T12:47:00Z\",\n\t\t\t\"dateModified\": \"2024-03-06T21:04:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Administration, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\r\nLe fichier d'aide est d\u00e9pendant de la langue s\u00e9lectionn\u00e9ee dans PluXml, soit par le param\u00e8tre g\u00e9n\u00e9ral que l'on trouve dans \"Param\u00e8tres \u003E Configuration de base \u003E Langue par d\u00e9faut du site\", soit en fonction des pr\u00e9f\u00e9rences de l'utilisateur connect\u00e9 par rapport \u00e0 la langue choisie dans son profil \u00e0 partir du menu \"Profil \u003E Langue utilis\u00e9e dans l'administration\".\r\n\u003C\/p\u003E\r\n\u003Cp\u003E\r\nLe fichier d'aide est un fichier .php stock\u00e9 dans le dossier \u003Cstrong\u003Ethemes\/defaut\/lang\u003C\/strong\u003E, si on parle ici du th\u00e8me par d\u00e9faut.\u003Cbr \/\u003E\r\n\u003Cbr \/\u003E\r\nSon nom est normalis\u00e9 de la fa\u00e7on suivante:\r\n\u003Cul\u003E\r\n\u003Cli\u003Efr-help.php : pour le fichier d'aide en fran\u00e7ais\u003C\/li\u003E\r\n\u003Cli\u003Een-help.php : pour le fichier d'aide en anglais\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\nLe nom du fichier est donc pr\u00e9fix\u00e9 par les 2 caract\u00e8res identifiant la langue (fr, en, de, ru, etc...)\r\n\u003Cbr \/\u003E\u003Cbr \/\u003E\r\n\u003Cstrong\u003Efr\u003C\/strong\u003E-help.php\r\n\u003C\/p\u003E\r\n\u003Cp\u003E\r\nConcernant le contenu de ce fichier, voici un exemple:\r\n\u003Cbr \/\u003E\r\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\r\n&lt;?php if (!defined('PLX_ROOT')) exit; ?\u003E\r\n&lt;p\u003EAucune aide disponible&lt;\/p\u003E\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003C\/p\u003E\r\n\u003Cp\u003E\r\nVous pouvez y \u00e9crire dedans toute l'aide n\u00e9cessaire \u003Cstrong\u003Eau format html\u003C\/strong\u003E pour l'installation et la configuration de votre th\u00e8me.\u003Cbr \/\u003E\u003Cbr \/\u003E\r\nSeule la premi\u00e8re ligne est fortement recommand\u00e9e pour des raisons de s\u00e9curit\u00e9.\r\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\r\n&lt;?php if (!defined('PLX_ROOT')) exit; ?\u003E\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\nCette ligne interdit de visualiser le contenu du fichier si on tape directement dans son navigateur l'url compl\u00e8te pour acc\u00e9der au fichier d'aide. Avec cette ligne, le contenu ne pourra \u00eatre lu qu'en passant par le \u003Cem\u003Egestionnaire de th\u00e8mes\u003C\/em\u003E en cliquant sur le lien \u003Cem\u003EAide\u003C\/em\u003E.\r\n\u003C\/p\u003E",
            "tags": "Administration, Th\u00e8me",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0078",
            "author": "001",
            "categorie": "001",
            "url": "ajouter-une-aide-aux-themes-de-pluxml-5-5",
            "date": "201605091247",
            "nb_com": 1,
            "date_creation": "201605091247",
            "date_update": "202403062104"
        },
        {
            "filename": ".\/data\/articles\/0077.001,007.001.201605040844.positionner-l-image-d-accroche-a-gauche-ou-a-droite-du-chapo.xml",
            "title": "Positionner l'image d'accroche \u00e0 gauche ou \u00e0 droite du chap\u00f4",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nL'image d'accroche est une nouvelle fonctionnalit\u00e9 de PluXml 5.5 qui permet d'illustrer un article avec une image. L'ajout de l'image se fait facilement gr\u00e2ce aux champs pr\u00e9vus au niveau de l'\u00e9cran de r\u00e9daction d'un article. \n\u003C\/p\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0077\/accroche.png\" alt=\"\"  title=\"Image d'accroche\" \/\u003E\n\u003C\/p\u003E\n\u003C\/p\u003E\nUne fois la mise en forme de l'affichage mise en place au niveau du th\u00e8me, la pr\u00e9sentation sera identique pour chaque article. Ce qui facilite la publication pour avoir une pr\u00e9sentation homog\u00e8ne \u00e0 chaque article.\n\u003C\/p\u003E\n\u003Cp\u003ENous allons voir comment positionner cette image d'accroche \u00e0 droite ou \u00e0 gauche du chap\u00f4, simplement \u00e0 partir de quelques lignes de code css \u00e0 rajouter dans le fichier theme.css de son th\u00e8me\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article77\/positionner-l-image-d-accroche-a-gauche-ou-a-droite-du-chapo\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"positionner-l-image-d-accroche-a-gauche-ou-a-droite-du-chapo\"\n\t\t\t},\n\t\t\t\"headline\": \"Positionner l'image d'accroche \u00e0 gauche ou \u00e0 droite du chap\u00f4\",\n\t\t\t\"datePublished\": \"2016-05-04T08:44:00Z\",\n\t\t\t\"dateModified\": \"2016-05-04T08:51:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Astuce, Css, PluXml, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nLe code css donn\u00e9 ci-dessous est \u00e0 rajouter \u00e0 la fin du fichier \u003Cem\u003Etheme.css\u003C\/em\u003E qui se trouve pour le th\u00e8me par d\u00e9faut dans le dossier: themes\/defaut\/css\n\u003C\/p\u003E\n\u003Ch2\u003EImage d'accroche \u00e0 gauche du chap\u00f4\u003C\/h2\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-css\"\u003E\n\/* image d'accroche \u00e0 gauche du chapo *\/\n.article img.art_thumbnail {\n    display: inline-block;\n    float: left;\n    padding: 5px 10px 10px 0;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0077\/image_accroche_gauche.png\" alt=\"\"  title=\"Image d'accroche \u00e0 gauche\" \/\u003E\n\u003C\/p\u003E\n\n\u003Ch2\u003EImage d'accroche \u00e0 droite du chap\u00f4\u003C\/h2\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-css\"\u003E\n\/* image d'accroche \u00e0 droite du chapo *\/\n.article img.art_thumbnail {\n    display: inline-block;\n    float: right;\n    padding: 5px 0 10px 10px;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0077\/image_accroche_droite.png\" alt=\"\"  title=\"Image d'accroche \u00e0 droite\" \/\u003E\n\u003C\/p\u003E",
            "tags": "Astuce, Css, PluXml, Th\u00e8me",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0077",
            "author": "001",
            "categorie": "001,007",
            "url": "positionner-l-image-d-accroche-a-gauche-ou-a-droite-du-chapo",
            "date": "201605040844",
            "nb_com": 1,
            "date_creation": "201605040844",
            "date_update": "201605040851"
        },
        {
            "filename": ".\/data\/articles\/0076.001,008.001.201605030951.gestionnaire-de-theme-de-pluxml.xml",
            "title": "Gestionnaire de th\u00e8me de PluXml",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nDepuis la version 5.5, un gestionnaire de th\u00e8me est disponible dans PluXml \u00e0 partir du menu \u003Cem\u003EParam\u00e8tres \u003E Th\u00e8mes\u003C\/em\u003E\n\u003C\/p\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0076\/themes_manager.png\" alt=\"\"  title=\"Gestionnaire de th\u00e8mes\" \/\u003E\n\u003C\/p\u003E\n\u003Cp\u003E\nLes th\u00e8mes disponibles sont visibles sous forme de liste avec une image de pr\u00e9visualisation et diff\u00e9rentes informations (auteur, n\u00b0 de version, etc...). On peut donc choisir et activer le th\u00e8me \u00e0 utiliser cot\u00e9 visiteur. Le th\u00e8me activ\u00e9 est toujours le premier de la liste.\n\u003C\/p\u003E\n\u003Cp\u003E\nPour les d\u00e9veloppeurs, voici les consignes \u00e0 respecter pour l'image de pr\u00e9visualisation et comment renseigner le fichier infos.xml qui contient les informations sur le th\u00e8me.\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article76\/gestionnaire-de-theme-de-pluxml\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"gestionnaire-de-theme-de-pluxml\"\n\t\t\t},\n\t\t\t\"headline\": \"Gestionnaire de th\u00e8me de PluXml\",\n\t\t\t\"datePublished\": \"2016-05-03T09:51:00Z\",\n\t\t\t\"dateModified\": \"2016-05-03T10:01:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Th\u00e8me, Xml\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nTout d'abord l'image de pr\u00e9visualisation est une image jpg, png ou gif, de pr\u00e9f\u00e9rence de taille 200x200 pixels. Elle est \u00e0 copier  \u00e0 la racine du dossier du th\u00e8me sous le nom \u003Cem\u003Epreview.png\u003C\/em\u003E, \u003Cem\u003Epreview.jpg\u003C\/em\u003E ou \u003Cem\u003Epreview.gif\u003C\/em\u003E en fonction de son format et de l'extension du fichier.\n\u003C\/p\u003E\n\n\u003Cp\u003E\nConcernant les informations, elles sont \u00e0 mettre dans un fichier infos.xml, lui aussi \u00e0 copier \u00e0 la racine du dossier du th\u00e8me. \u003Cbr \/\u003EVoil\u00e0 la structure du fichier \u00e0 respecter:\n\u003C\/p\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?\u003E\n&lt;document\u003E\n\t&lt;title\u003E&lt;![CDATA[defaut]]&gt;&lt;\/title\u003E\n\t&lt;author\u003E&lt;![CDATA[PluXml]]&gt;&lt;\/author\u003E\n\t&lt;version\u003E5.5&lt;\/version\u003E\n\t&lt;date\u003E09\/11\/2015&lt;\/date\u003E\n\t&lt;site\u003Ehttp:\/\/www.pluxml.org&lt;\/site\u003E\n\t&lt;description\u003E&lt;![CDATA[Th\u00e8me par d\u00e9faut de PluXml 5.5]]&gt;&lt;\/description\u003E\n&lt;\/document\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLes balises suivantes sont \u00e0 renseigner:\n\u003Cul\u003E\n\u003Cli\u003Etitle: titre du th\u00e8me\u003C\/li\u003E\n\u003Cli\u003Eauthor: nom de l'auteur du th\u00e8me\u003C\/li\u003E\n\u003Cli\u003Eversion: num\u00e9ro de version du th\u00e8me\u003C\/li\u003E\n\u003Cli\u003Edate: date de sortie du th\u00e8me\u003C\/li\u003E\n\u003Cli\u003Esite: site de l'auteur du th\u00e8me\u003C\/li\u003E\n\u003Cli\u003Edescription: texte descriptif sur le th\u00e8me\u003C\/li\u003E\n\u003C\/ul\u003E\n\nExemple de fichier vi\u00e8rge \u00e0 compl\u00e9ter:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?\u003E\n&lt;document\u003E\n\t&lt;title\u003E&lt;![CDATA[]]&gt;&lt;\/title\u003E\n\t&lt;author\u003E&lt;![CDATA[]]&gt;&lt;\/author\u003E\n\t&lt;version\u003E&lt;\/version\u003E\n\t&lt;date\u003E&lt;\/date\u003E\n\t&lt;site\u003E&lt;\/site\u003E\n\t&lt;description\u003E&lt;![CDATA[]]&gt;&lt;\/description\u003E\n&lt;\/document\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003E\nEn respectant ces consignes, le th\u00e8me d\u00e9velopp\u00e9 sera correctement list\u00e9 dans le gestionnaire\n\u003C\/p\u003E",
            "tags": "PluXml, Th\u00e8me, Xml",
            "meta_description": "",
            "meta_keywords": "PluXml, Th\u00e8me, Xml",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0076",
            "author": "001",
            "categorie": "001,008",
            "url": "gestionnaire-de-theme-de-pluxml",
            "date": "201605030951",
            "nb_com": 2,
            "date_creation": "201605030951",
            "date_update": "201605031001"
        },
        {
            "filename": ".\/data\/articles\/0075.001.001.201604150915.mise-en-place-de-l-indentation-des-commentaires-dans-un-ancien-theme.xml",
            "title": "Mise en place de l'indentation des commentaires dans un ancien th\u00e8me",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nVous venez de mettre \u00e0 jour votre PluXml en version 5.5, et l'indentation des commentaires n'est pas visible.\u003Cbr \/\u003E\nNormal, votre th\u00e8me doit \u00eatre modifi\u00e9 pour ajouter l'affichage des commentaires imbriqu\u00e9s.\u003Cbr \/\u003E\nJe vous donne les 3 \u00e9tapes de base pour faire la migration de l'affichage des commentaires et profiter de cette nouvelle fonctionnalit\u00e9 propre \u00e0 PluXml 5.5\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article75\/mise-en-place-de-l-indentation-des-commentaires-dans-un-ancien-theme\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"mise-en-place-de-l-indentation-des-commentaires-dans-un-ancien-theme\"\n\t\t\t},\n\t\t\t\"headline\": \"Mise en place de l'indentation des commentaires dans un ancien th\u00e8me\",\n\t\t\t\"datePublished\": \"2016-04-15T09:15:00Z\",\n\t\t\t\"dateModified\": \"2016-04-15T09:15:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Commentaires, Css, Th\u00e8me, PluXml\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\n\n\u003Cstrong\u003E1.\u003C\/strong\u003E Copiez le fichier \u003Cstrong\u003E\u003Cem\u003Ecommentaires.php\u003C\/em\u003E\u003C\/strong\u003E du th\u00e8me par d\u00e9faut de PluXml 5.5 dans le dossier de votre th\u00e8me pour remplacer et \u00e9craser celui existant\n\u003C\/p\u003E\n\u003Cp\u003E\n\u003Cspan style=\"text-decoration:underline\"\u003EAttention\u003C\/span\u003E, si vous avez personnalis\u00e9 le fichier \u003Cem\u003Ecommentaires.php\u003C\/em\u003E vous allez perdre les modifications en \u00e9crasant votre version par celle de PluXml 5.5. Apr\u00e8s avoir remplac\u00e9 ce fichier il faudra reporter dedans vos propres modifications pour retrouver votre visuel, tout en gardant l'imbrication des commentaires.\n\u003C\/p\u003E\n\u003Cp\u003E\n\u003Cstrong\u003E2.\u003C\/strong\u003E Copiez le \u003Cstrong\u003E\u003Cem\u003Edossier lang\u003C\/em\u003E\u003C\/strong\u003E du th\u00e8me par de PluXml 5.5 dans le dossier de votre th\u00e8me pour remplacer et \u00e9craser celui existant.\n\u003C\/p\u003E\n\u003Cp\u003E\n\u003Cstrong\u003E3.\u003C\/strong\u003E \u00c9ditez le fichier \/themes\/&lt;mon-theme\u003E\/css\/theme.css et ajoutez \u00e0 la fin du fichier le code suivant (remplacez &lt;mon-theme\u003E par le nom de votre th\u00e8me):\n\u003C\/p\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-css\"\u003E\n.level-0 {\n\tmargin-left: 0;\n}\n.level-1 {\n\tmargin-left: 50px;\n}\n.level-2 {\n\tmargin-left: 100px;\n}\n.level-3 {\n\tmargin-left: 150px;\n}\n.level-4 {\n\tmargin-left: 200px;\n}\n.level-5,\n.level-max {\n\tmargin-left: 250px;\n}\n#id_answer {\n\tmargin-bottom: 10px;\n\tpadding:15px;\n\tborder:1px solid #eee;\n\twidth:100%;\n\tbackground:#fafafa;\n\tdisplay:none;\n}\n@media (max-width: 767px) {\n\t.level-1,\n\t.level-2,\n\t.level-3,\n\t.level-4,\n\t.level-5,\n\t.level-max {\n\t\tmargin-left: 5px;\n\t}\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003E\nIl se pourra que ces simples 3 \u00e9tapes ne suffisent pas pour voir l'indentation des commentaires. Tout d\u00e9pendra de votre th\u00e8me et de son niveau de personnalisation par rapport au th\u00e8me par d\u00e9faut.\u003Cbr \/\u003E\nLes manipulations donn\u00e9es ici permettent de passer facilement un th\u00e8me \u00e0 partir de PluXml 5.4.\u003Cbr \/\u003EEn fonction de la complexit\u00e9 de votre th\u00e8me d'autres r\u00e8gles css seront \u00e0 \u00e9crire ou \u00e0 modifier.\u003Cbr \/\u003EEn cas de probl\u00e8me n'h\u00e9sitez pas \u00e0 venir sur le forum de \u003Ca href=\"http:\/\/www.pluxml.org\" title=\"Forum de PluXml\"\u003EPluXml\u003C\/a\u003E pour trouver de l'aide.\n\u003C\/p\u003E",
            "tags": "Commentaires, Css, Th\u00e8me, PluXml",
            "meta_description": "Tutorial pour ajouter l'indentation des commentaires \u00e0 un ancien th\u00e8me de PluXml",
            "meta_keywords": "PluXml, Th\u00e8me, Commentaires, Indentation, Css",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0075",
            "author": "001",
            "categorie": "001",
            "url": "mise-en-place-de-l-indentation-des-commentaires-dans-un-ancien-theme",
            "date": "201604150915",
            "nb_com": 4,
            "date_creation": "201604150915",
            "date_update": "201604150915"
        },
        {
            "filename": ".\/data\/articles\/0072.001,013.001.201511181030.plugin-ckeditor-pour-pluxml-ajoutez-un-compteur-de-mot.xml",
            "title": "Plugin CKEditor pour PluXml: ajoutez un compteur de mot",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003EPour rappel CKEditor est un \u00e9diteur de texte disponible sous forme de plugin pour PluXml facilitant la r\u00e9daction des articles. Le plugin est disponible sur la page d\u00e9di\u00e9e des \u003Ca href=\"http:\/\/pluxopolis.net\/myplugins\"\u003EPlugins\u003C\/a\u003E de pluxopolis.net.\u003C\/p\u003E\n\n\u003Cp\u003ECKEditor dispose lui aussi d'un syst\u00e8me de plugin interne permettant de rajouter des nouvelles fonctionnalit\u00e9s. Nous allons voir comment rajouter un compteur de mot pour la version 4.5.3 du plugin CKEditor pour PluXml.\u003C\/p\u003E\n\n\u003Cp\u003E&nbsp;\u003C\/p\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg alt=\"\" src=\"data\/images\/0072\/ckeditor_wordcount.png\" title=\"CKEditor + plugin wordcount\" \/\u003E\u003C\/p\u003E\n\n\u003Cp\u003ELe nombre de mots est affich\u00e9 en bas \u00e0 droite de l'\u00e9diteur\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article72\/plugin-ckeditor-pour-pluxml-ajoutez-un-compteur-de-mot\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"plugin-ckeditor-pour-pluxml-ajoutez-un-compteur-de-mot\"\n\t\t\t},\n\t\t\t\"headline\": \"Plugin CKEditor pour PluXml: ajoutez un compteur de mot\",\n\t\t\t\"datePublished\": \"2015-11-18T10:30:00Z\",\n\t\t\t\"dateModified\": \"2018-12-18T05:02:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Astuce, CKEditor, Plugins\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\u003Cstrong\u003ED'autres plugins dans le centre de \u003Ca href=\"https:\/\/ressources.pluxopolis.net\" target=\"_blank\"\u003Eressources et t\u00e9l\u00e9chargements Pluxopolis\u003C\/a\u003E\u003C\/strong\u003E\u003C\/p\u003E",
            "tags": "Astuce, CKEditor, Plugins",
            "meta_description": "Comment ajouter un compteur de mot au plugin CKEditor pour PluXml",
            "meta_keywords": "Astuce, CKEditor, Plugins, wordcount",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0072",
            "author": "001",
            "categorie": "001,013",
            "url": "plugin-ckeditor-pour-pluxml-ajoutez-un-compteur-de-mot",
            "date": "201511181030",
            "nb_com": 2,
            "date_creation": "201511181030",
            "date_update": "201812180502"
        },
        {
            "filename": ".\/data\/articles\/0071.001.001.201511050900.afficher-une-icone-devant-les-liens-des-flux-rss.xml",
            "title": "Afficher une ic\u00f4ne devant les liens des flux rss",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Si vous utiliser le th\u00e8me par d\u00e9faut de PluXml, deux liens pour acc\u00e9der aux flux rss des articles et des commentaires sont visibles dans la sidebar.\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0071\/rss_1.png\" alt=\"\"  title=\"\" \/\u003E\n\u003C\/p\u003E\n\nNous allons voir comment ajouter rapidement une ic\u00f4ne devant ces liens afin d'obtenir l'affichage suivant:\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0071\/rss_2.png\" alt=\"\"  title=\"\" \/\u003E\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article71\/afficher-une-icone-devant-les-liens-des-flux-rss\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"afficher-une-icone-devant-les-liens-des-flux-rss\"\n\t\t\t},\n\t\t\t\"headline\": \"Afficher une ic\u00f4ne devant les liens des flux rss\",\n\t\t\t\"datePublished\": \"2015-11-05T09:00:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Css, Menu, Rss, Sidebar, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "Le code utilis\u00e9 pour afficher les liens rss dans la sidebar se trouve dans le fichier \u003Cem\u003Ethemes\/defaut\/sidebar.php\u003C\/em\u003E:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;h3\u003E\n\tRSS\n&lt;\/h3\u003E\n&lt;ul class=\"rss-list unstyled-list\"\u003E\n\t&lt;li\u003E&lt;a href=\"&lt;?php $plxShow-\u003EurlRewrite('feed.php?rss') ?\u003E\" title=\"&lt;?php $plxShow-\u003Elang('ARTICLES_RSS_FEEDS'); ?\u003E\"\u003E&lt;?php $plxShow-\u003Elang('ARTICLES'); ?\u003E&lt;\/a\u003E&lt;\/li\u003E\n\t&lt;li\u003E&lt;a href=\"&lt;?php $plxShow-\u003EurlRewrite('feed.php?rss\/commentaires'); ?\u003E\" title=\"&lt;?php $plxShow-\u003Elang('COMMENTS_RSS_FEEDS') ?\u003E\"\u003E&lt;?php $plxShow-\u003Elang('COMMENTS'); ?\u003E&lt;\/a\u003E&lt;\/li\u003E\n&lt;\/ul\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\t\t\n\nNous allons utiliser la classe css \u003Cem\u003Erss-list\u003C\/em\u003E de la balise &lt;ul\u003E pour rajouter aux balises &lt;a\u003E qui composent la liste html une image.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\n\u00c9ditez le fichier themes\/defaut\/css\/theme.css et ajouter \u00e0 la fin du fichier le code suivant:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-css\"\u003E\n.rss-list a::before{\n\tmargin: 0 5px 0 0;\n\tcontent: url('..\/img\/rss.png');\n\tvertical-align: -10%;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\t\n\nR\u00e9cup\u00e9rez l'ic\u00f4ne ci-dessous et copiez la dans le dossier themes\/defaut\/img (faire bouton droit de la souris sur l'image et s\u00e9lectionner le menu \"Enregistrer l'image sous\").\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0071\/rss.png\" alt=\"\"  title=\"\" \/\u003E\n\u003C\/p\u003E\n\nVoil\u00e0, c'est fini !",
            "tags": "Css, Menu, Rss, Sidebar, Th\u00e8me",
            "meta_description": "Tutorial pour PluXml pour afficher une icone devant les liens des flux rss",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0071",
            "author": "001",
            "categorie": "001",
            "url": "afficher-une-icone-devant-les-liens-des-flux-rss",
            "date": "201511050900",
            "nb_com": 7,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0070.001,007.001.201510291343.afficher-une-mention-pendant-7-jours-pour-les-nouveaux-commentaires.xml",
            "title": "Afficher une mention pendant 7 jours pour les nouveaux commentaires",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nDans un pr\u00e9c\u00e9dent article, je vous avais montr\u00e9 comment \u003Ca href=\"article62\/afficher-une-mention-pendant-7-jours-pour-les-nouveaux-articles\"\u003Eafficher une mention pendant 7 jours pour les nouveaux articles\u003C\/a\u003E.\nSur le m\u00eame principe je vous propose de voir maintenant comment afficher une mention pendant 7 jours pour les nouveaux commentaires.\n\u003C\/p\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0070\/commentaire.png\" alt=\"\"  title=\"\" \/\u003E\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article70\/afficher-une-mention-pendant-7-jours-pour-les-nouveaux-commentaires\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"afficher-une-mention-pendant-7-jours-pour-les-nouveaux-commentaires\"\n\t\t\t},\n\t\t\t\"headline\": \"Afficher une mention pendant 7 jours pour les nouveaux commentaires\",\n\t\t\t\"datePublished\": \"2015-10-29T13:43:00Z\",\n\t\t\t\"dateModified\": \"2023-03-22T20:58:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Astuce, PluXml, Commentaires\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nL'id\u00e9e est donc identique: afficher une icone \"NEW\" \u00e0 cot\u00e9 des commentaires dat\u00e9s de moins de 7 jours. Pour mettre en place la modification, \u00e9ditez le fichier \u003Cstrong\u003Ecommentaires.php\u003C\/strong\u003E de votre th\u00e8me, et en dessous de la ligne:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\t\t&lt;div id=\"&lt;?php $plxShow-\u003EcomId(); ?\u003E\" class=\"comment\"\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\t\t\n\najoutez le code suivant:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\t\t\t&lt;?php \n\t\t\t$ndays = 7;\n\t\t\tif(floor((strtotime(date('YmdHi')) - strtotime($plxShow-\u003EplxMotor-\u003EplxRecord_coms-\u003Ef('date'))) \/ (60*60*24)) &lt; $ndays) : ?\u003E\n\t\t\t\t&lt;p\u003E&lt;img src=\"&lt;?php $plxShow-\u003Etemplate() ?\u003E\/img\/new.png\" alt=\"\" title=\"\" \/\u003E&lt;\/p\u003E \n\t\t\t&lt;?php endif; ?\u003E\t\n\u003C\/code\u003E\u003C\/pre\u003E\t\t\n\n\u003C\/p\u003E\n\n\u003Cp\u003E\nSi vous souhaitez augmenter ou r\u00e9duire la p\u00e9riode de 7 jours, changez la valeur 7 dans la ligne suivante:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\t$ndays = 7;\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003C\/p\u003E\n\n\u003Cp\u003E\nVous pouvez r\u00e9cup\u00e9rer l'icone \"NEW\" ci-dessous et la copier dans le dossier img de votre th\u00e8me. Par exemple dans: \/theme\/defaut\/img\/\n\u003C\/p\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0062\/new.png\" alt=\"\"  title=\"Ic\u00f4ne NEW\" \/\u003E\n\u003C\/p\u003E",
            "tags": "Astuce, PluXml, Commentaires",
            "meta_description": "Astuce pour affiche une ic\u00f4ne NEW devant les nouveaux commentaires de PluXml",
            "meta_keywords": "Astuce, PluXml, Article, Commentaire, Ic\u00f4ne",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0070",
            "author": "001",
            "categorie": "001,007",
            "url": "afficher-une-mention-pendant-7-jours-pour-les-nouveaux-commentaires",
            "date": "201510291343",
            "nb_com": 2,
            "date_creation": "201510291343",
            "date_update": "202303222058"
        },
        {
            "filename": ".\/data\/articles\/0069.001.001.201509041030.gestionnaire-de-medias-afficher-par-defaut-pas-de-miniature.xml",
            "title": "Gestionnaire de m\u00e9dias: afficher par d\u00e9faut \"Pas de miniature\"",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Dans le gestionnaire de m\u00e9dias, sur l'\u00e9cran pour envoyer des fichiers sur le serveur, une taille pour les miniatures est coch\u00e9e par d\u00e9faut. Par exemple comme ceci:\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0069\/medias01.png\" alt=\"\"  title=\"\" \/\u003E\n\u003C\/p\u003E\n\nPour changer la s\u00e9lection et avoir par d\u00e9faut \"Pas de miniature\", aller dans les \u003Cstrong\u003EParam\u00e8tres\u003C\/strong\u003E \u003E \u003Cstrong\u003EOptions d'affichage\u003C\/strong\u003E et pour la ligne \u003Cstrong\u003ECr\u00e9er miniatures\u003C\/strong\u003E passer la valeur \u00e0 \u003Cstrong\u003ENon\u003C\/strong\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0069\/medias02.png\" alt=\"\"  title=\"\" \/\u003E\n\u003C\/p\u003E\n\nDe retour dans le gestionnaire de m\u00e9dias c'est la ligne Pas de miniature qui sera maintenant coch\u00e9e par d\u00e9faut\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0069\/medias03.png\" alt=\"\"  title=\"\" \/\u003E\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article69\/gestionnaire-de-medias-afficher-par-defaut-pas-de-miniature\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"gestionnaire-de-medias-afficher-par-defaut-pas-de-miniature\"\n\t\t\t},\n\t\t\t\"headline\": \"Gestionnaire de m\u00e9dias: afficher par d\u00e9faut \"Pas de miniature\"\",\n\t\t\t\"datePublished\": \"2015-09-04T10:30:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Astuce\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "PluXml, Astuce",
            "meta_description": "Astuce pour PluXml pour cocher par d\u00e9faut Pas de miniature dans le gestionnaire de m\u00e9dias",
            "meta_keywords": "PluXml, Astuce, Medias",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0069",
            "author": "001",
            "categorie": "001",
            "url": "gestionnaire-de-medias-afficher-par-defaut-pas-de-miniature",
            "date": "201509041030",
            "nb_com": 2,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0068.001,009,010.001.201507241158.theme-navan-pour-pluxml-5-4.xml",
            "title": "Th\u00e8me Navan pour PluXml 5.4+",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Th\u00e8me Navan r\u00e9alis\u00e9 avec \u003Ca href=\"http:\/\/plucss.pluxml.org\/\" title=\"PluCSS\"\u003EPluCSS\u003C\/a\u003E\n\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Cimg src=\"http:\/\/download.pluxopolis.net\/themes\/navan_600.png\" title=\"Th\u00e8me Navan\" \/\u003E\n\u003Cbr \/\u003E\n\u003Ca href=\"http:\/\/demo.pluxopolis.net\/index.php?style=navan\" title=\"D\u00e9monstration\"\u003ED\u00e9monstration\u003C\/a\u003E\n\u003Cbr \/\u003E\n\u003Ca href=\"http:\/\/pluxopolis.net\/static1\/themes\" title=\"T\u00e9l\u00e9chargement\"\u003ET\u00e9l\u00e9chargement\u003C\/a\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article68\/theme-navan-pour-pluxml-5-4\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"theme-navan-pour-pluxml-5-4\"\n\t\t\t},\n\t\t\t\"headline\": \"Th\u00e8me Navan pour PluXml 5.4+\",\n\t\t\t\"datePublished\": \"2015-07-24T11:58:00Z\",\n\t\t\t\"dateModified\": \"2015-07-24T11:58:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Css, PluCSS, PluXml, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Css, PluCSS, PluXml, Th\u00e8me",
            "meta_description": "",
            "meta_keywords": "Css, PluCSS, PluXml, Th\u00e8me",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0068",
            "author": "001",
            "categorie": "001,009,010",
            "url": "theme-navan-pour-pluxml-5-4",
            "date": "201507241158",
            "nb_com": 4,
            "date_creation": "201507241158",
            "date_update": "201507241158"
        },
        {
            "filename": ".\/data\/articles\/0067.001,007.001.201507200856.plugins-afficher-les-boutons-dans-la-barre-d-action.xml",
            "title": "Plugins: afficher les boutons dans la barre d'action",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Si vous d\u00e9veloppez des plugins pour PluXml, voici comment afficher les boutons dans la barre d'action sur les \u00e9crans d'administration ou de configuration des plugins.\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0067\/capture.png\" alt=\"\"  title=\"Bouton dans la barre d'action\" \/\u003E\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article67\/plugins-afficher-les-boutons-dans-la-barre-d-action\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"plugins-afficher-les-boutons-dans-la-barre-d-action\"\n\t\t\t},\n\t\t\t\"headline\": \"Plugins: afficher les boutons dans la barre d'action\",\n\t\t\t\"datePublished\": \"2015-07-20T08:56:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Astuce, Css, Administration, Plugins\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nLa m\u00e9thode est tr\u00e8s simple. Il suffit d'englober les boutons dans une balise &lt;p\u003E qui a comme classe css \u003Cem\u003Ein-action-bar\u003C\/em\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;p class=\"in-action-bar\"\u003E\n\t&lt;?php echo plxToken::getTokenPostMethod() ?\u003E\n\t&lt;input type=\"submit\" name=\"submit\" value=\"Enregistrer\" \/\u003E\n&lt;\/p\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003C\/p\u003E\n\u003Cp\u003E\nLa classe css \u003Cem\u003Ein-action-bar\u003C\/em\u003E est automatiquement reconnue par PluXml car elle fait partie int\u00e9grante des feuilles de style utilis\u00e9es par PluXml.\n\u003C\/p\u003E\n\u003Cp\u003E\nExemple complet d'une page de configuration d'un plugin pour bien situer le contexte\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php if(!defined('PLX_ROOT')) exit; ?\u003E\n&lt;?php\n\n# Control du token du formulaire\nplxToken::validateFormToken($_POST);\n\nif(!empty($_POST)) {\n\t$plxPlugin-\u003EsetParam('param1', $_POST['param1'], 'string');\n\t$plxPlugin-\u003EsetParam('param2', $_POST['param2'], 'cdata');\n\t$plxPlugin-\u003EsaveParams();\n\theader('Location: parametres_plugin.php?p=plxMyTest');\n\texit;\n}\n?\u003E\n\n&lt;form class=\"inline-form\" action=\"parametres_plugin.php?p=plxMyTest\" method=\"post\" id=\"form_plxMyTest\"\u003E\n\t&lt;fieldset\u003E\n\t\t&lt;p\u003E\n\t\t\t&lt;label for=\"id_param1\"\u003EParam\u00e8tre 1 :&lt;\/label\u003E\n\t\t\t&lt;?php plxUtils::printInput('param1',$plxPlugin-\u003EgetParam('param1'),'text','20-20') ?\u003E\n\t\t&lt;\/p\u003E\n\t\t&lt;p\u003E\n\t\t\t&lt;label for=\"id_param2\"\u003EParam\u00e8tre 2 :&lt;\/label\u003E\n\t\t\t&lt;?php plxUtils::printInput('param2',$plxPlugin-\u003EgetParam('param2'),'text','20-20') ?\u003E\n\t\t&lt;\/p\u003E\n\t\n\t\t&lt;p class=\"in-action-bar\"\u003E\n\t\t\t&lt;?php echo plxToken::getTokenPostMethod() ?\u003E\n\t\t\t&lt;input type=\"submit\" name=\"submit\" value=\"Enregistrer\" \/\u003E\n\t\t&lt;\/p\u003E\n\t&lt;\/fieldset\u003E\n&lt;\/form\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003C\/p\u003E",
            "tags": "Astuce, Css, Administration, Plugins",
            "meta_description": "Tutorial pour les plugins de PluXml pour afficher les boutons dans la barre d'action",
            "meta_keywords": "Astuce, Css, Administration, Plugins",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0067",
            "author": "001",
            "categorie": "001,007",
            "url": "plugins-afficher-les-boutons-dans-la-barre-d-action",
            "date": "201507200856",
            "nb_com": 2,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0066.001,007,008.001.201507161348.inclure-une-page-statique-a-partir-de-son-titre-ou-de-son-url.xml",
            "title": "Inclure une page statique \u00e0 partir de son titre ou de son url",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nDepuis la version 5.4 de PluXml, il est possible d'afficher le contenu d'une page statique \u00e0 partir de son titre ou de son url.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nRappel de l'utilisation de la fonction staticInclude() permettant d'afficher une page statique \u00e0 partir de son identifiant mais aussi maintenant comment l'utiliser \u00e0 partir de son titre ou de son url.\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article66\/inclure-une-page-statique-a-partir-de-son-titre-ou-de-son-url\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"inclure-une-page-statique-a-partir-de-son-titre-ou-de-son-url\"\n\t\t\t},\n\t\t\t\"headline\": \"Inclure une page statique \u00e0 partir de son titre ou de son url\",\n\t\t\t\"datePublished\": \"2015-07-16T13:48:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Page statique, Snippet, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nPour ceux qui connaisse la fonction staticInclude(), vous savez d\u00e9j\u00e0 qu'il est possible d'afficher le contenu d'une page statique un peu n'importe o\u00f9 sur son site. Il suffit de passer en param\u00e8tre de cette fonction le num\u00e9ro d'identification de la page, num\u00e9ro \u00e0 r\u00e9cup\u00e9rer dans la colonne \u003Cem\u003EIdentifiant page\u003C\/em\u003E dans la gestion des pages statiques de l'administration. \n\u003C\/p\u003E\n\n\u003Cp\u003E\nExemple 1: \u00e0 partir du num\u00e9ro d'identification sur 3 chiffres \n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EstaticInclude('001') ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003C\/p\u003E\n\n\u003Cp\u003E\nExemple 2: sans les z\u00e9ros significatifs (en tapant la valeur '1', PluXml sait qu'il s'agit de la page '001')\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EstaticInclude('1') ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003C\/p\u003E\n\n\u003Cp\u003E\nDepuis la version 5.4 de PluXml, il est \u00e9galement possible d'afficher le contenu d'une page statique, toujours avec la fonction staticInclude(), mais \u00e0 partir de son titre ou de son url.\n\u003C\/p\u003E\n\n\u003Cp\u003E\nExemple 3: \u00e0 partir du titre de la page\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EstaticInclude('Titre de la page') ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003C\/p\u003E\n\n\u003Cp\u003E\nLe titre de la page est bien sur ce que vous avez saisi dans la colonne \u003Cem\u003ETitre\u003C\/em\u003E lors de la cr\u00e9ation de la page. \n\u003C\/p\u003E\n\n\u003Cp\u003E\nExemple 4 : \u00e0 partir de l'url de la page\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EstaticInclude('titre-de-la-page') ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003C\/p\u003E\n\n\u003Cp\u003E\nL'url est d\u00e9duite \u00e0 partir du titre de la page, mais il est possible d'avoir un titre qui ne correspond \u00e0 l'url, ou inversement, car ces deux informations sont \u00e9ditables dans la gestion des pages statiques. Les champs \u003Cem\u003ETitre\u003C\/em\u003E et \u003Cem\u003EUrl\u003C\/em\u003E sont des zones de saisie libre.\n\u003C\/p\u003E\n\n\u003Cp\u003E\nLes lignes de codes donn\u00e9es ci-dessus peuvent \u00eatre utilis\u00e9es dans les fichiers .php de votre th\u00e8me, \u00e0 l'endroit o\u00f9 vous souhaitez inclure et afficher le contenu d'une page statique.\n\u003C\/p\u003E",
            "tags": "Page statique, Snippet, Th\u00e8me",
            "meta_description": "Utilisation de la fonction staticInclude()  pour PluXml",
            "meta_keywords": "Page statique, Snippet, Th\u00e8me, staticInclude()",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0066",
            "author": "001",
            "categorie": "001,007,008",
            "url": "inclure-une-page-statique-a-partir-de-son-titre-ou-de-son-url",
            "date": "201507161348",
            "nb_com": 3,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0065.001.001.201507151128.des-themes-pour-personnaliser-la-zone-d-administration.xml",
            "title": "Des th\u00e8mes pour personnaliser la zone d'administration",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nAvec la sortie de la version 5.4 de PluXml, une nouvelle fonctionnalit\u00e9 est apparue, celle de pouvoir cr\u00e9er des th\u00e8mes pour la zone d'administration et de les d\u00e9clarer facilement dans les param\u00e8tres.\n\u003C\/p\u003E\n\u003Cp\u003E\nJe vous propose donc les 4 th\u00e8mes suivant et de voir comment les installer:\n\n\u003Cul class=\"navigation\"\u003E\n\u003Cli class=\"text-center\"\u003E\n    \u003Cstrong\u003EStyle 1\u003C\/strong\u003E\n    \u003Cbr \/\u003E\n    \u003Ca href=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/style1-1.png\" title=\"\" rel=\"lightbox\"\u003E\u003Cimg src=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/tb\/style1-1.png\" title=\"\" alt=\"\" \/\u003E\u003C\/a\u003E\n    &nbsp;&nbsp;&nbsp;&nbsp;\n    \u003Ca href=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/style1-2.png\" title=\"\" rel=\"lightbox\"\u003E\u003Cimg src=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/tb\/style1-2.png\" title=\"\" alt=\"\" \/\u003E\u003C\/a\u003E\n\u003C\/li\u003E\n\u003Cli class=\"text-center\"\u003E\n    \u003Cstrong\u003EStyle 2\u003C\/strong\u003E\n    \u003Cbr \/\u003E\n    \u003Ca href=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/style2-1.png\" title=\"\" rel=\"lightbox\"\u003E\u003Cimg src=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/tb\/style2-1.png\" title=\"\" alt=\"\" \/\u003E\u003C\/a\u003E\n    &nbsp;&nbsp;&nbsp;&nbsp;\n    \u003Ca href=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/style2-2.png\" title=\"\" rel=\"lightbox\"\u003E\u003Cimg src=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/tb\/style2-2.png\" title=\"\" alt=\"\" \/\u003E\u003C\/a\u003E\n\u003C\/li\u003E\n\u003Cli class=\"text-center\"\u003E\n    \u003Cstrong\u003EStyle 3\u003C\/strong\u003E\n    \u003Cbr \/\u003E\n    \u003Ca href=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/style3-1.png\" title=\"\" rel=\"lightbox\"\u003E\u003Cimg src=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/tb\/style3-1.png\" title=\"\" alt=\"\" \/\u003E\u003C\/a\u003E\n    &nbsp;&nbsp;&nbsp;&nbsp;\n    \u003Ca href=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/style3-2.png\" title=\"\" rel=\"lightbox\"\u003E\u003Cimg src=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/tb\/style3-2.png\" title=\"\" alt=\"\" \/\u003E\u003C\/a\u003E\n\u003C\/li\u003E\n\u003Cli class=\"text-center\"\u003E\n    \u003Cstrong\u003EStyle 4\u003C\/strong\u003E\n    \u003Cbr \/\u003E\n    \u003Ca href=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/style4-1.png\" title=\"\" rel=\"lightbox\"\u003E\u003Cimg src=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/tb\/style4-1.png\" title=\"\" alt=\"\" \/\u003E\u003C\/a\u003E\n    &nbsp;&nbsp;&nbsp;&nbsp;\n    \u003Ca href=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/style4-2.png\" title=\"\" rel=\"lightbox\"\u003E\u003Cimg src=\"http:\/\/download.pluxopolis.net\/themes\/pluxopolis2\/tb\/style4-2.png\" title=\"\" alt=\"\" \/\u003E\u003C\/a\u003E\n\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article65\/des-themes-pour-personnaliser-la-zone-d-administration\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"des-themes-pour-personnaliser-la-zone-d-administration\"\n\t\t\t},\n\t\t\t\"headline\": \"Des th\u00e8mes pour personnaliser la zone d'administration\",\n\t\t\t\"datePublished\": \"2015-07-15T11:28:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Th\u00e8me, Administration, PluCSS, Css\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nPour commencer t\u00e9l\u00e9charger le kit complet contenant l'ensemble des 4 th\u00e8mes \u00e0 partir de ce lien:\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Ca href=\"http:\/\/download.pluxopolis.net\/download.php?theme=admthemes-pack1\" title=\"Th\u00e8mes admin pack 1 Pluxopolis\"\u003ET\u00e9l\u00e9charger le pack 1 complet\u003C\/a\u003E\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nD\u00e9compresser le fichier .zip et copier le dossier \u003Cem\u003Eadminthemes\u003C\/em\u003E dans le dossier \u003Cem\u003Edata\u003C\/em\u003E de votre PluXml.\n\u003Cbr \/\u003E\nJe pr\u00e9conise l'utilisation du dossier data (dossier contenant toutes les donn\u00e9es de PluXml)\n\u003C\/p\u003E\n\n\u003Cp\u003E\nPour utiliser un des 4 th\u00e8mes, allez dans les param\u00e8tres de la zone d'administration dans:\u003Cbr \/\u003E\u003Cbr \/\u003E\nAdministration \u003E Param\u00e8tres \u003E Configuration avanc\u00e9e\u003Cbr \/\u003E\u003Cbr \/\u003E\net renseignez le champ \"Emplacement et nom du fichier css personnel pour la personnalisation de l'interface d'administration\" avec l'une des valeurs suivantes:\n\n\u003Cul\u003E\n\u003Cli\u003Edata\/adminthemes\/pluxopolis\/style1.css\u003C\/li\u003E\n\u003Cli\u003Edata\/adminthemes\/pluxopolis\/style2.css\u003C\/li\u003E\n\u003Cli\u003Edata\/adminthemes\/pluxopolis\/style3.css\u003C\/li\u003E\n\u003Cli\u003Edata\/adminthemes\/pluxopolis\/style4.css\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/p\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0065\/admin-config.png\" alt=\"\"  title=\"Configuration th\u00e8me admin\" \/\u003E\n\u003C\/p\u003E\n\n\u003Cp\u003E\nChaque th\u00e8me est caract\u00e9ris\u00e9 par son fichier style.css et index\u00e9 par un num\u00e9ro 1, 2, 3 ou 4. Ils utilisent une fonte qui ne contient que les ic\u00f4nes utilis\u00e9es devant les menus de la sidebar. De cette fa\u00e7on avec seulement une dizaine de Ko par th\u00e8me, on reste dans l'esprit de PluXml avec le minimum de l\u00e9g\u00e8ret\u00e9.\u003Cbr \/\u003E\nLes fichiers css contiennent les d\u00e9clarations et la surcharge des classes css utilis\u00e9es dans le visuel qui repose sur le framework css \u003Ca href=\"http:\/\/plucss.pluxml.org\/\" title=\"PluCSS, framework CSS pour pluXml\"\u003EPluCSS\u003C\/a\u003E. Ils vous serviront de bases pour comprendre le fonctionnement et cr\u00e9er pourquoi pas votre propre th\u00e8me.\n\u003C\/p\u003E\n\u003Cp\u003E\nA vous de choisir le th\u00e8me que vous appr\u00e9ciez le plus.\n\u003C\/p\u003E\n\n\u003Cp\u003E\nRetrouvez l'ensemble des th\u00e8mes de Pluxopolis sur la page \u003Ca href=\"http:\/\/pluxopolis.net\/static1\/themes\" title=\"Th\u00e8mes de Pluxopolis\"\u003ETh\u00e8mes\u003C\/a\u003E.\n\u003C\/p\u003E\n\n\u003Cp style=\"color:#ff0000\"\u003E\nEDIT 23\/07\/2015: Nouveau - Pack n\u00b02: 4 th\u00e8mes suppl\u00e9mentaires\n\u003C\/p\u003E",
            "tags": "Th\u00e8me, Administration, PluCSS, Css",
            "meta_description": "Comment installer un th\u00e8me pour la zone d'administration de PluXml",
            "meta_keywords": "Th\u00e8me, Administration, PluCSS, Css",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0065",
            "author": "001",
            "categorie": "001",
            "url": "des-themes-pour-personnaliser-la-zone-d-administration",
            "date": "201507151128",
            "nb_com": 8,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0064.001,007.001.201506241300.ajoutez-une-lettrine-aux-articles-en-css.xml",
            "title": "Ajoutez une lettrine aux articles en css",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nGr\u00e2ce \u00e0 la magie du css, nous allons modifier la taille de la premi\u00e8re lettre du texte des articles pour cr\u00e9er une lettrine. \n\u003C\/p\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0064\/capture.png\" alt=\"\"  title=\"Lettrine\" \/\u003E\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article64\/ajoutez-une-lettrine-aux-articles-en-css\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"ajoutez-une-lettrine-aux-articles-en-css\"\n\t\t\t},\n\t\t\t\"headline\": \"Ajoutez une lettrine aux articles en css\",\n\t\t\t\"datePublished\": \"2015-06-24T13:00:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Article, Css, Snippet, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nPour se faire, \u00e9ditez le fichier css de votre th\u00e8me et ajoutez \u00e0 la fin du fichier le code suivant:\n\u003C\/p\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-css\"\u003E\narticle section:first-letter {\n\tfloat: left;\n\tmargin: 10px 5px 0 0;\n\tpadding: 0 10px 0 0;\n\tline-height: 52px;\t\n\tfont-size: 78px;\t\n\tcolor: #00BBFF;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Cp\u003E\nCe code est valable pour le th\u00e8me par d\u00e9faut de PluXml 5.3.1.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nIl est donc facilement adaptable en fonction de votre th\u00e8me. Vous pourrez notamment jouer sur les valeurs des param\u00e8tres \u003Cstrong\u003E\u003Cem\u003Eline-height\u003C\/em\u003E\u003C\/strong\u003E et \u003Cstrong\u003E\u003Cem\u003Efont-size\u003C\/em\u003E\u003C\/strong\u003E pour changer la taille de la lettrine, et du param\u00e8tre \u003Cstrong\u003E\u003Cem\u003Ecolor\u003C\/em\u003E\u003C\/strong\u003E pour modifier la couleur du caract\u00e8re mis en \u00e9vidence.\n\u003C\/p\u003E",
            "tags": "Article, Css, Snippet, Th\u00e8me",
            "meta_description": "Tutorial pour PluXml pour ajouter une lettrine aux articles",
            "meta_keywords": "Article, Css, Snippet, Th\u00e8me",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0064",
            "author": "001",
            "categorie": "001,007",
            "url": "ajoutez-une-lettrine-aux-articles-en-css",
            "date": "201506241300",
            "nb_com": 8,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0063.001.001.201506120904.afficher-les-commentaires-en-ordre-decroissant.xml",
            "title": "Afficher les commentaires en ordre d\u00e9croissant",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nPar d\u00e9faut les commentaires dans PluXml sont affich\u00e9s par date croissante et num\u00e9rot\u00e9s chronologiquement de 1 en 1, du plus petit au plus grand.\n\u003C\/p\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0063\/default.png\" alt=\"\"  title=\"Affichage par d\u00e9faut des commentaires\" \/\u003E\n\u003C\/p\u003E\n\u003Cp\u003E\nVoici les modifications \u00e0 faire pour afficher les commentaires de fa\u00e7on d\u00e9croissante, avec la date et le compteur du plus grand au plus petit.\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article63\/afficher-les-commentaires-en-ordre-decroissant\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"afficher-les-commentaires-en-ordre-decroissant\"\n\t\t\t},\n\t\t\t\"headline\": \"Afficher les commentaires en ordre d\u00e9croissant\",\n\t\t\t\"datePublished\": \"2015-06-12T09:04:00Z\",\n\t\t\t\"dateModified\": \"2015-06-12T09:44:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Article, Commentaires, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nPremi\u00e8re \u00e9tape, allez dans les param\u00e8tres de PluXml, sur l'\u00e9cran \u003Cem\u003EOptions d'affichage\u003C\/em\u003E au niveau de la ligne \u003Cem\u003ETri des commentaires\u003C\/em\u003E, s\u00e9lectionnez la valeur \u003Cem\u003Edate d\u00e9croissante\u003C\/em\u003E.\n\u003C\/p\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0063\/order.png\" alt=\"\"  title=\"Param\u00e9trage de l'ordre d'affichage des commentaires\" \/\u003E\n\u003C\/p\u003E\n\n\u003Cp\u003EDeuxi\u00e8me \u00e9tape, \u00e9ditez le fichier \u003Cem\u003Ecommentaires.php\u003C\/em\u003E situ\u00e9 dans le dossier de votre th\u00e8me. \u003Cbr \/\u003E\nAfin de changer le sens du compteur des commentaires pour que l'affichage soit du plus grand au plus petit, remplacer la ligne suivante:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;a class=\"num-com\" href=\"&lt;?php $plxShow-\u003EComUrl(); ?\u003E\" title=\"#&lt;?php echo $plxShow-\u003EplxMotor-\u003EplxRecord_coms-\u003Ei+1 ?\u003E\"\u003E#&lt;?php echo $plxShow-\u003EplxMotor-\u003EplxRecord_coms-\u003Ei+1 ?\u003E&lt;\/a\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\npar\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;a class=\"num-com\" href=\"&lt;?php $plxShow-\u003EComUrl(); ?\u003E\" title=\"#&lt;?php echo $plxShow-\u003EplxMotor-\u003EplxRecord_coms-\u003Esize - $plxShow-\u003EplxMotor-\u003EplxRecord_coms-\u003Ei ?\u003E\"\u003E#&lt;?php echo $plxShow-\u003EplxMotor-\u003EplxRecord_coms-\u003Esize - $plxShow-\u003EplxMotor-\u003EplxRecord_coms-\u003Ei ?\u003E&lt;\/a\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nNous sommes donc pass\u00e9 de cet affichage\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0063\/sort.png\" alt=\"\"  title=\"Affichage croissant des commentaires\" \/\u003E\n\u003C\/p\u003E\n\n\u00e0 l'affichage suivant, c'est \u00e0 dire avec un compteur du plus grand au plus petit et avec une date d\u00e9croissante.\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0063\/rsort.png\" alt=\"\"  title=\"Affichage d\u00e9croissant des commentaires\" \/\u003E\n\u003C\/p\u003E\n\nMerci \u00e0 mathieu pour avoir donn\u00e9 la solution sur le forum de \u003Ca href=\"http:\/\/www.pluxml.org\" title=\"Forum de PluXml\"\u003EPluXml\u003C\/a\u003E.",
            "tags": "Article, Commentaires, Th\u00e8me",
            "meta_description": "Modifications pour afficher les commentaires de PluXml en sens inverse",
            "meta_keywords": "Article, Commentaires, Th\u00e8me, Tri",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0063",
            "author": "001",
            "categorie": "001",
            "url": "afficher-les-commentaires-en-ordre-decroissant",
            "date": "201506120904",
            "nb_com": 0,
            "date_creation": "201506120944",
            "date_update": "201506120944"
        },
        {
            "filename": ".\/data\/articles\/0062.001,007.001.201505290800.afficher-une-mention-pendant-7-jours-pour-les-nouveaux-articles.xml",
            "title": "Afficher une mention pendant 7 jours pour les nouveaux articles",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nVoici quelques lignes de code \u00e0 ajouter dans votre th\u00e8me pour afficher \u00e0 cot\u00e9 du titre des articles une ic\u00f4ne \u003Cstrong\u003ENEW\u003C\/strong\u003E informant qu'il s'agit d'un nouvel article r\u00e9cemment publi\u00e9.\n\u003C\/p\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0062\/capture.png\" alt=\"\"  title=\"\" \/\u003E\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article62\/afficher-une-mention-pendant-7-jours-pour-les-nouveaux-articles\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"afficher-une-mention-pendant-7-jours-pour-les-nouveaux-articles\"\n\t\t\t},\n\t\t\t\"headline\": \"Afficher une mention pendant 7 jours pour les nouveaux articles\",\n\t\t\t\"datePublished\": \"2015-05-29T08:00:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Astuce, PluXml, Article\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nL'id\u00e9e est de comparer la date de publication des articles avec la date du jour. Si le nombre de jours trouv\u00e9 est inf\u00e9rieur \u00e0 7, nous d\u00e9cidons qu'il s'agit d'un nouvel article et dans ce cas, on affiche devant le titre de l'article une petite ic\u00f4ne \"NEW\". Dans mon exemple j'utilise une ic\u00f4ne de 32 x 32 pixels comme celle-ci.\n\u003C\/p\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0062\/new.png\" alt=\"\"  title=\"Ic\u00f4ne NEW\" \/\u003E\n\u003C\/p\u003E\n\u003Cp\u003E\nCopiez cette image dans le dossier \u003Cem\u003Eimg\u003C\/em\u003E de votre th\u00e8me. Par exemple dans: \/theme\/defaut\/img\/\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u00c9ditez le fichier \u003Cem\u003Ehome.php\u003C\/em\u003E de votre th\u00e8me (j'utilise ici le th\u00e8me par d\u00e9faut de PluXml 5.3.1)\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nRemplacez les lignes suivantes:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;h1\u003E\n\t&lt;?php $plxShow-\u003EartTitle('link'); ?\u003E\n&lt;\/h1\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\npar\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;h1\u003E\n\t&lt;?php \n\t$ndays = 7;\n\tif(floor((strtotime(date('YmdHi')) - strtotime($plxShow-\u003EplxMotor-\u003EplxRecord_arts-\u003Ef('date'))) \/ (60*60*24)) &lt; $ndays) : ?\u003E\n\t\t&lt;img src=\"&lt;?php $plxShow-\u003Etemplate() ?\u003E\/img\/new.png\" alt=\"\" title=\"\" \/\u003E \n\t&lt;?php endif; ?\u003E\t\t\t\t\t\n\n\t&lt;?php $plxShow-\u003EartTitle('link'); ?\u003E\n&lt;\/h1\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nSi vous souhaitez augmenter ou r\u00e9duire la p\u00e9riode de 7 jours, changez la valeur 7 dans la ligne suivante:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\t$ndays = 7;\n\u003C\/code\u003E\u003C\/pre\u003E\n\nL'ic\u00f4ne NEW n'est affich\u00e9e ici que sur la page d'accueil du site. Vous aurez \u00e9galement \u00e0 modifier si vous le souhaitez les autres fichiers du th\u00e8me qui affiche les titres des articles.\n\u003C\/p\u003E",
            "tags": "Astuce, PluXml, Article",
            "meta_description": "Astuce pour affiche une ic\u00f4ne NEW devant le titre des articles de PluXml",
            "meta_keywords": "Astuce, PluXml, Article, Ic\u00f4ne, Titre",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0062",
            "author": "001",
            "categorie": "001,007",
            "url": "afficher-une-mention-pendant-7-jours-pour-les-nouveaux-articles",
            "date": "201505290800",
            "nb_com": 9,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0061.001,009.001.201505121011.astuce-plucss-connaitre-le-mode-d-affichage-sml-med-lrg.xml",
            "title": "Astuce PluCSS: connaitre le mode d'affichage (sml, med, lrg)",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nCette astuce a \u00e9t\u00e9 publi\u00e9e sur le forum de \u003Ca href=\"http:\/\/forum.pluxml.org\/index.php\" title=\"Forum PluXml\"\u003EPluXml\u003C\/a\u003E par David Revoy. Parce qu'elle est tr\u00e8s facile \u00e0 mettre en place et peut \u00eatre tr\u00e8s utile pour les concepteurs de th\u00e8me, j'ai trouv\u00e9 dommage qu'elle reste noy\u00e9e dans tous les sujets du forum.\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article61\/astuce-plucss-connaitre-le-mode-d-affichage-sml-med-lrg\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"astuce-plucss-connaitre-le-mode-d-affichage-sml-med-lrg\"\n\t\t\t},\n\t\t\t\"headline\": \"Astuce PluCSS: connaitre le mode d'affichage (sml, med, lrg)\",\n\t\t\t\"datePublished\": \"2015-05-12T10:11:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Astuce, Css, PluXml, Snippet, Template, Th\u00e8me, PluCSS\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nPour rappel, PluCSS est un framework css d\u00e9velopp\u00e9 par l'\u00e9quipe de PluXml qui g\u00e8re le responsive design, c'est \u00e0 dire que l'affichage s'adapte en fonction de la taille de l'\u00e9cran (ordinateur, tablette, smartphone). Suivant donc la taille de l'\u00e9cran, PluCSS utilise diff\u00e9rentes balises reconnaissables par des pr\u00e9fixes \u003Cstrong\u003Esml\u003C\/strong\u003E (small),\u003Cstrong\u003Emed\u003C\/strong\u003E (medium), \u003Cstrong\u003Elrg\u003C\/strong\u003E (large) afin d'adapter l'affichage en fonction de la r\u00e9solution.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nExemple: \n\u003Cbr \/\u003E\u003Cbr \/\u003E\nD\u00e9clarations dans le fichier plucss.css\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-css\"\u003E\n.sml-text-center {\n\ttext-align: center;\n}\n\n@media (min-width: 768px) {\n\t.med-text-left {\n\t\ttext-align: left;\n\t}\n}\t\n\u003C\/code\u003E\u003C\/pre\u003E\n\nD\u00e9clarations dans le fichier header.php\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;header class=\"header sml-text-center med-text-left\" role=\"banner\"\u003E\n\t&lt;h1 class=\"no-margin\"\u003E\u003C?php $plxShow-\u003EmainTitle('link'); ?\u003E&lt;\/h1\u003E\n\t&lt;h2 class=\"h5 no-margin\"\u003E\u003C?php $plxShow-\u003EsubTitle(); ?\u003E&lt;\/h2\u003E\n&lt;\/header\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nDe cette fa\u00e7on simplement en utilisant \u003Cstrong\u003Esml-text-center\u003C\/strong\u003E et \u003Cstrong\u003Emed-text-left\u003C\/strong\u003E comme ci-dessus, l'affichage sera centr\u00e9 sur un petit \u00e9cran, mais justifi\u00e9 \u00e0 gauche sur un affichage moyen (et large par d\u00e9faut).\n\u003C\/p\u003E\n\n\u003Cp\u003E\nL'astuce propos\u00e9e consiste \u00e0 afficher en bas \u00e0 droite du navigateur le mode d'affichage courant avec le texte SML, MED ou LRG. Pour sa mise en place, \u00e9ditez par exemple le fichier sidebar.php de votre th\u00e8me et copier-coller le code suivant, de pr\u00e9f\u00e9rence en bas du fichier.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nNB: si vous utilisez le th\u00e8me par d\u00e9faut collez le code avant la balise &lt;\/aside\u003E\n\u003Cbr \/\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;div style=\"position: fixed; right: 0px; bottom: 0px; background: #FFF8BB; color: #B27951; z-index: 500 !important;\"\u003E\n\t&lt;div class=\"sml-show med-hide lrg-hide\"\u003E SML &lt;\/div\u003E\n\t&lt;div class=\"sml-hide med-show lrg-hide\"\u003E MED &lt;\/div\u003E\n\t&lt;div class=\"sml-hide med-hide lrg-show\"\u003E LRG &lt;\/div\u003E\n&lt;\/div\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Cbr \/\u003E\n\nAcc\u00e9dez \u00e0 la page d'accueil de votre site. En redimensionnant la fen\u00eatre de votre navigateur, le mode d'affichage utilis\u00e9 sera affich\u00e9 sur fond jaune en bas \u00e0 droite.\n\u003C\/p\u003E\n\nMode LRG:\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0061\/capture-1.png\" alt=\"\" title=\"Affichage LRG\" \/\u003E\n\u003C\/p\u003E\n\nMode MED:\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0061\/capture-2.png\" alt=\"\"  title=\"Affichage MED\" \/\u003E\n\u003C\/p\u003E\n\nMode SML:\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0061\/capture-3.png\" alt=\"\"  title=\"Affichage SML\" \/\u003E\n\u003C\/p\u003E\n\n\u003Cp\u003E\nToute la documentation de PluCSS est disponible \u00e0 cette adresse: \u003Ca href=\"http:\/\/plucss.pluxml.org\/\" title=\"Documentation PluCSS\"\u003Ehttp:\/\/plucss.pluxml.org\/\u003C\/a\u003E\n\u003C\/p\u003E\n\n\u003Cp\u003E\nMerci \u00e0 David pour cette astuce. Je vous invite \u00e0 visiter son site pour admirer son travail de dessinateur et d'illustrateur.\u003Cbr \/\u003E\n\u003Ca href=\"http:\/\/www.davidrevoy.com\/\" title=\"Site web de David Revoy\"\u003Ehttp:\/\/www.davidrevoy.com\/\u003C\/a\u003E\n\u003C\/p\u003E",
            "tags": "Astuce, Css, PluXml, Snippet, Template, Th\u00e8me, PluCSS",
            "meta_description": "Astuce pour afficher le mode d'affichage de PluCSS",
            "meta_keywords": "PluCSS, Astuce, Th\u00e8me, css",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0061",
            "author": "001",
            "categorie": "001,009",
            "url": "astuce-plucss-connaitre-le-mode-d-affichage-sml-med-lrg",
            "date": "201505121011",
            "nb_com": 0,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0060.001.001.201504231357.afficher-les-articles-sur-2-colonnes.xml",
            "title": "Afficher les articles sur 2 colonnes",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nGr\u00e2ce au CSS3 il est simple et rapide d'afficher les articles sur plusieurs colonnes.\u003Cbr \/\u003E\nJuste quelques lignes de code dans la feuille de style de son th\u00e8me sont n\u00e9cessaires pour changer la disposition du contenu des articles.\n\u003C\/p\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0060\/capture.jpg\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article60\/afficher-les-articles-sur-2-colonnes\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"afficher-les-articles-sur-2-colonnes\"\n\t\t\t},\n\t\t\t\"headline\": \"Afficher les articles sur 2 colonnes\",\n\t\t\t\"datePublished\": \"2015-04-23T13:57:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Article, Css, PluXml, Tuto, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nPrenons en exemple le th\u00e8me par d\u00e9faut de PluXml.\u003Cbr \/\u003E\n\u00c9ditez le fichier \/themes\/defaut\/css\/style.css et ajoutez \u00e0 la fin du fichier le code suivant:\n\u003C\/p\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\narticle section  {\n\t\/* nombre de colonnes = 2 *\/\n\t-webkit-column-count: 2;\n    -moz-column-count: 2;\n    column-count: 2;\n\n\t\/* espace entre les colonnes: 30px *\/\n\t-webkit-column-gap: 30px;\n    -moz-column-gap: 30px;\n    column-gap: 30px;\n\t\n\t\/* barre de s\u00e9paration entre les colonnes *\/\n\t-moz-column-rule-color: #ccc;\n\t-moz-column-rule-style: solid;\n\t-moz-column-rule-width: 1px;\n\t-webkit-column-rule-color: #ccc;\n\t-webkit-column-rule-style: solid ;\n\t-webkit-column-rule-width: 1px;\n\t\n\t\/* espace en haut et en bas de l'article *\/\n\tmargin-top: 15px;\n\tmargin-bottom: 15px;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003E\nLes quelques commentaires dans le code vous permettront de faire les changements n\u00e9cessaires en fonction de vos besoins, genre remplacer la valeur 2 par 3 par exemple pour avoir un affichage sur 3 colonnes au lieu de 2.\n\u003C\/p\u003E\n\u003Cp\u003E\nL'exemple est compatible:\n\u003Cul\u003E\n\u003Cli\u003EChrome 4.0+ (-webkit-)\u003C\/li\u003E\n\u003Cli\u003EIE 10.0+\u003C\/li\u003E\n\u003Cli\u003EFirefox 2.0+ (-moz-)\u003C\/li\u003E\n\u003Cli\u003ESafari 3.1+ (-webkit-)\u003C\/li\u003E\n\u003Cli\u003EOpera 15.0+ (-webkit-)\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/p\u003E",
            "tags": "Article, Css, PluXml, Tuto, Th\u00e8me",
            "meta_description": "Tutorial pour PluXml pour afficher les articles sur 2 colonnes",
            "meta_keywords": "PluXml, Th\u00e8mes, Colonnes, CSS",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0060",
            "author": "001",
            "categorie": "001",
            "url": "afficher-les-articles-sur-2-colonnes",
            "date": "201504231357",
            "nb_com": 0,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0059.001.001.201502121401.liste-des-constantes-dans-pluxml.xml",
            "title": "Liste des constantes dans PluXml",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "\u003Cp\u003E\r\nPluXml utilise dans son code php plusieurs constantes d\u00e9finies dans diff\u00e9rents fichiers.\u003Cbr \/\u003E\r\nVoici par ordre alphab\u00e9tique la liste exhaustive avec la signification et la valeur par d\u00e9faut de ces constantes\r\n\u003C\/p\u003E\r\n\r\n\u003Cstrong\u003EPLX_ADMIN\u003C\/strong\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EPermet de savoir si on est dans la zone d'administration\u003C\/li\u003E\r\n\u003Cli\u003EValeur \u00e0 \u003Cem\u003Etrue\u003C\/em\u003E si pr\u00e9sence dans l'administration\u003C\/li\u003E\r\n\u003Cli\u003EFichier: core\/lib\/class.plx.admin.php\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\t\r\n\u003Cstrong\u003EPLX_AUTHPAGE\u003C\/strong\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EPermet de savoir si on est sur la page d'identification de la zone d'administration\u003C\/li\u003E\r\n\u003Cli\u003EValeur \u00e0 \u003Cem\u003Etrue\u003C\/em\u003E si pr\u00e9sence sur la mire de connexion\u003C\/li\u003E\r\n\u003Cli\u003EFichier: core\/admin\/auth.php\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\t\r\n\u003Cstrong\u003EPLX_CHARSET\u003C\/strong\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EJeux de caract\u00e8res utilis\u00e9 pour l'affichage du site\u003C\/li\u003E\r\n\u003Cli\u003EValeur par d\u00e9faut: 'UTF-8' \u003C\/li\u003E\r\n\u003Cli\u003EFichier: core\/lib\/config.php\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\r\n\u003Cstrong\u003EPLX_CONFIG_PATH\u003C\/strong\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EChemin vers le dossier content les fichiers de configuration\u003C\/li\u003E\r\n\u003Cli\u003EValeur par d\u00e9faut: data\/configuration\/ \u003C\/li\u003E\r\n\u003Cli\u003EFichier: config.php\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\t\r\n\u003Cstrong\u003EPLX_CORE\u003C\/strong\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EChemin vers le dossier core\u003C\/li\u003E\r\n\u003Cli\u003EValeur par d\u00e9faut: PLX_ROOT.'core\/'\u003C\/li\u003E\r\n\u003Cli\u003EFichiers: index.php, core\/admin\/prepend.php, feed.php, install.php, sitemap.php, update\/index.php\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\t\r\n\u003Cstrong\u003EPLX_MICROTIME\u003C\/strong\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003ETimestamp UNIX initialis\u00e9 avec l'appel de la fonction getMicrotime()\u003C\/li\u003E\r\n\u003Cli\u003EFichier: core\/lib\/config.php\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\t\r\n\u003Cstrong\u003EPLX_PLUGINS\u003C\/strong\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EChemin vers le dossier des plugins param\u00e9tr\u00e9s dans l'administration (Param\u00e8tres \u003E Configuration avanc\u00e9e)\u003C\/li\u003E\r\n\u003Cli\u003EFichier: core\/lib\/class.plx.motor.php\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\t\r\n\u003Cstrong\u003EPLX_ROOT\u003C\/strong\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EChemin relatif vers la racine du site\u003C\/li\u003E\r\n\u003Cli\u003EValeur par d\u00e9faut: '.\/' si cot\u00e9 visiteur ou '..\/..\/' si cot\u00e9 zone administration\u003C\/li\u003E\r\n\u003Cli\u003EFichiers: index.php, core\/admin\/prepend.php, feed.php, install.php, sitemap.php, update\/index.php\u003C\/li\u003E\r\n\u003C\/ul\u003E\r\n\t\r\n\u003Cstrong\u003EPLX_UPDATE\u003C\/strong\u003E\r\n\u003Cul\u003E\r\n\u003Cli\u003EChemin vers le dossier contenant les scripts de mise \u00e0 jour\u003C\/li\u003E\r\n\u003Cli\u003EValeur par d\u00e9faut: PLX_ROOT.'update\/'\u003C\/li\u003E\r\n\u003Cli\u003EFichier update\/class.plx.update.php\u003C\/li\u003E\r\n\u003C\/ul\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article59\/liste-des-constantes-dans-pluxml\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"liste-des-constantes-dans-pluxml\"\n\t\t\t},\n\t\t\t\"headline\": \"Liste des constantes dans PluXml\",\n\t\t\t\"datePublished\": \"2015-02-12T14:01:00Z\",\n\t\t\t\"dateModified\": \"2015-02-12T14:01:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Documentation, , PluXml, Programmation\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Documentation, , PluXml, Programmation",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0059",
            "author": "001",
            "categorie": "001",
            "url": "liste-des-constantes-dans-pluxml",
            "date": "201502121401",
            "nb_com": 1,
            "date_creation": "201502121401",
            "date_update": "201502121401"
        },
        {
            "filename": ".\/data\/articles\/0058.001,004.001.201412191009.faut-il-fusionner-les-dossiers-images-et-documents-dans-pluxml.xml",
            "title": "Faut-il fusionner les dossiers images et documents dans PluXml?",
            "allow_com": "0",
            "template": "article.php",
            "chapo": "",
            "content": "\u003Cp\u003E\nCette r\u00e9flexion revient souvent dans mes recherches d\u2019am\u00e9lioration de PluXml. Elle traine depuis longtemps dans ma t\u00eate, car pourquoi utiliser deux dossiers diff\u00e9rents pour stocker les fichiers \u00e0 diffuser sur un site, que ce soient des images, des vid\u00e9os ou de la musique. Le syst\u00e8me de sous-dossiers permet de hi\u00e9rarchiser une arborescence et de classer correctement les fichiers en n\u2019ayant qu\u2019un seul premier niveau pour acc\u00e9der \u00e0 l\u2019ensemble des fichiers.\n\u003C\/p\u003E\n\u003Cp\u003E\nLes habitu\u00e9s savent que je d\u00e9fends l\u2019id\u00e9e de la simplicit\u00e9 que ce soit au niveau de l\u2019ergonomie des \u00e9crans pour faciliter l\u2019utilisation de PluXml mais aussi au niveau technique pour avoir un code de programmation propre et facilement compr\u00e9hensible.\n\u003C\/p\u003E\n\u003Cp\u003E\nFusionner les dossiers \u003Cem\u003EImages\u003C\/em\u003E et \u003Cem\u003EDocuments\u003C\/em\u003E serait donc dans un premier temps une am\u00e9lioration technique qui simplifierait la programmation du gestionnaire de m\u00e9dias de PluXml : plus besoin de g\u00e9rer deux boutons \u003Cem\u003EImages\u003C\/em\u003E et \u003Cem\u003EDocuments\u003C\/em\u003E pour basculer d\u2019un dossier \u00e0 un autre. Le code serait all\u00e9g\u00e9, le contenu de l\u2019\u00e9cran \u00e9galement.\n\u003C\/p\u003E\n\u003Cp\u003E\nD\u2019un point de vue utilisateur, on peut se demander si l\u2019utilisation de ces deux boutons est suffisamment intuitive pour un novice ou pratique voir utile pour un habitu\u00e9. Combien d\u2019entre vous utilisez le dossier Documents ? Si je n\u2019ai aucun doute pour le dossier Images, l\u2019utilisation du dossier Documents est moins \u00e9vidente, voir surement inexistante.\n\u003C\/p\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0058\/gestionnaire_medias.jpg\" alt=\"\" title=\"Gestionnaire de m\u00e9dias\" \/\u003E\u003C\/p\u003E\n\n\u003Cp\u003E\nAlors fusionner les dossiers images et documents, peut-\u00eatre, mais quel nom donner au nouveau r\u00e9pertoire ? Quelques id\u00e9es pour le nom du dossier de stockage des fichiers :\n\u003Cul\u003E\n\u003Cli\u003EDocuments\u003C\/li\u003E\n\u003Cli\u003EMedias\u003C\/li\u003E\n\u003Cli\u003EFichiers (ou Files)\u003C\/li\u003E\n\u003C\/ul\u003E\nAvez-vous d\u2019autres suggestions ?\n\u003C\/p\u003E\n\u003Cp\u003E\nJe ferme volontairement les commentaires de cet article pour vous inviter \u00e0 me faire part de vos remarques et de vos avis sur le forum de PluXml, afin de regrouper les discussions dans un seul endroit. Rendez-vous donc \u003Ca href=\"http:\/\/forum.pluxml.org\/viewtopic.php?pid=41061#p41061\" title=\"\"\u003Eici\u003C\/a\u003E pour continuer \u00e0 parler de ce sujet.\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article58\/faut-il-fusionner-les-dossiers-images-et-documents-dans-pluxml\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"faut-il-fusionner-les-dossiers-images-et-documents-dans-pluxml\"\n\t\t\t},\n\t\t\t\"headline\": \"Faut-il fusionner les dossiers images et documents dans PluXml?\",\n\t\t\t\"datePublished\": \"2014-12-19T10:09:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t}\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0058",
            "author": "001",
            "categorie": "001,004",
            "url": "faut-il-fusionner-les-dossiers-images-et-documents-dans-pluxml",
            "date": "201412191009",
            "nb_com": 0,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0057.001,008.001.201412180912.ckeditor-comment-changer-la-langue-du-correcteur-orthographique.xml",
            "title": "CKEditor: comment changer la langue du correcteur orthographique",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "La manipulation pour changer la langue \u00e0 utiliser dans le correcteur d'orthographe int\u00e9gr\u00e9 de CKEditor est simple et rapide:\n\u003Cbr \/\u003E\nCliquez sur l'icone \u003Cstrong\u003EABC\u003C\/strong\u003E puis s\u00e9lectionner le menu \u003Cstrong\u003ELangues\u003C\/strong\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0057\/ckeditor1.jpg\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\nDans l'onglet \u003Cem\u003E\u003Cstrong\u003ELangues\u003C\/strong\u003E\u003C\/em\u003E, s\u00e9lectionner la langue \u00e0 utiliser\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0057\/ckeditor2.jpg\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article57\/ckeditor-comment-changer-la-langue-du-correcteur-orthographique\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"ckeditor-comment-changer-la-langue-du-correcteur-orthographique\"\n\t\t\t},\n\t\t\t\"headline\": \"CKEditor: comment changer la langue du correcteur orthographique\",\n\t\t\t\"datePublished\": \"2014-12-18T09:12:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"CKEditor, Tuto, PluXml\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "CKEditor, Tuto, PluXml",
            "meta_description": "Astuce pour s\u00e9lectionner la langue du correcteur orthographique de CKEditor",
            "meta_keywords": "CKEditor, Tuto, PluXml, Correcteur orthographique, scayt",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0057",
            "author": "001",
            "categorie": "001,008",
            "url": "ckeditor-comment-changer-la-langue-du-correcteur-orthographique",
            "date": "201412180912",
            "nb_com": 1,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0053.001,007.001.201412180907.afficher-la-description-des-categories-que-sur-la-premiere-page.xml",
            "title": "Afficher la description des cat\u00e9gories que sur la premi\u00e8re page",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "La description d'une cat\u00e9gories est affich\u00e9e dans le th\u00e8me par d\u00e9faut gr\u00e2ce \u00e0 l'instruction suivante: \n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EcatDescription(' : #cat_description'); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nCette description est visible lorsque l'on consulte les articles par cat\u00e9gorie, quelque soit le num\u00e9ro de page en cours.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPour restreindre l'affichage de la description uniquement \u00e0 la premi\u00e8re page de la cat\u00e9gorie, \u00e9ditez le fichier \u003Cem\u003Ecategorie.php\u003C\/em\u003E stock\u00e9 dans le dossier de votre th\u00e8me et utilisez \u00e0 la place le code suivant.\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php \n\tif($plxShow-\u003EplxMotor-\u003Epage==1) {\n\t\t$plxShow-\u003EcatDescription(' : #cat_description'); \n\t}\n?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nAinsi lorsque vous paginez vers la page 2 et les pages suivantes, la description de la cat\u00e9gorie visit\u00e9e ne sera pas affich\u00e9e.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article53\/afficher-la-description-des-categories-que-sur-la-premiere-page\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"afficher-la-description-des-categories-que-sur-la-premiere-page\"\n\t\t\t},\n\t\t\t\"headline\": \"Afficher la description des cat\u00e9gories que sur la premi\u00e8re page\",\n\t\t\t\"datePublished\": \"2014-12-18T09:07:00Z\",\n\t\t\t\"dateModified\": \"2023-03-22T21:00:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Cat\u00e9gorie, PluXml, Snippet, Tuto\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Cat\u00e9gorie, PluXml, Snippet, Tuto",
            "meta_description": "Tutorial pour restreindre l'affichage de la description d'une cat\u00e9gorie uniquement \u00e0 la premi\u00e8re page",
            "meta_keywords": "Cat\u00e9gorie, PluXml, Snippet, Tuto",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0053",
            "author": "001",
            "categorie": "001,007",
            "url": "afficher-la-description-des-categories-que-sur-la-premiere-page",
            "date": "201412180907",
            "nb_com": 1,
            "date_creation": "201412180907",
            "date_update": "202303222100"
        },
        {
            "filename": ".\/data\/articles\/0056.001,008.001.201412171024.comment-rajouter-des-addons-a-l-editeur-ckeditor-pour-pluxml.xml",
            "title": "Comment rajouter des addons \u00e0 l'\u00e9diteur CKEditor pour PluXml",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nL'\u00e9diteur de texte \u003Ca href=\"http:\/\/ckeditor.com\/\" title=\"Page officielle de ckeditor\"\u003ECKEditor\u003C\/a\u003E poss\u00e8de de nombreux addons qui peuvent \u00eatre t\u00e9l\u00e9charg\u00e9s \u00e0 partir de cette page: \u003Ca href=\"http:\/\/ckeditor.com\/addons\/plugins\/all\" title=\"Addons pour CKEditor\"\u003EAddons pour CKEditor\u003C\/a\u003E\n\u003C\/p\u003E\n\u003Cp\u003E\nVoici comment installer un addon dans le plugin pour PluXml.\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article56\/comment-rajouter-des-addons-a-l-editeur-ckeditor-pour-pluxml\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"comment-rajouter-des-addons-a-l-editeur-ckeditor-pour-pluxml\"\n\t\t\t},\n\t\t\t\"headline\": \"Comment rajouter des addons \u00e0 l'\u00e9diteur CKEditor pour PluXml\",\n\t\t\t\"datePublished\": \"2014-12-17T10:24:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Plugins, Documentation, CKEditor\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Col\u003E\n\u003Cli\u003Et\u00e9l\u00e9chargez l'addon \u00e0 installer\u003C\/li\u003E\n\u003Cli\u003Ed\u00e9compressez et copier les fichiers dans le dossier de PluXml: \u003Cstrong\u003E\/plugins\/ckeditor\/ckeditor\/plugins\u003C\/strong\u003E\u003C\/li\u003E\n\u003Cli\u003E\u00e0 partir de la zone d'administration de PluXml, allez dans \u003Cstrong\u003EParam\u00e8tres\u003C\/strong\u003E \u003E \u003Cstrong\u003EPlugins\u003C\/strong\u003E \u003E \u003Cstrong\u003EPlugins actifs\u003C\/strong\u003E\u003C\/li\u003E\n\u003Cli\u003Esur la ligne du plugin CKEditor, cliquez sur le lien \u003Cstrong\u003EConfiguration\u003C\/strong\u003E\u003C\/li\u003E\n\u003Cli\u003Erajoutez dans la zone \u003Cstrong\u003EextraPlugins\u003C\/strong\u003E, la valeur du param\u00e8tre extraPlugins servant \u00e0 activer l'utilisation de l'addon. Cette valeur est d\u00e9finie par le concepteur et peut g\u00e9n\u00e9ralement \u00eatre connue sur la page de t\u00e9l\u00e9chargement de l'addon.\u003Cbr \/\u003E\u003Cbr \/\u003EVous pouvez ajouter plusieurs valeurs en les s\u00e9parant par des virgules.\u003Cbr \/\u003E\nExemple:\n\u003Cp style=\"center\"\u003E\n\u003Cimg src=\"data\/images\/0056\/ckeditor.jpg\" title=\"ajout d'addons dans ckeditor\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\u003C\/li\u003E\n\u003C\/ol\u003E",
            "tags": "Plugins, Documentation, CKEditor",
            "meta_description": "M\u00e9thode pour rajouter des addons au plugin CKEditor pour PluXml",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0056",
            "author": "001",
            "categorie": "001,008",
            "url": "comment-rajouter-des-addons-a-l-editeur-ckeditor-pour-pluxml",
            "date": "201412171024",
            "nb_com": 8,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0055.004.001.201412170949.plugin-ckeditor-4-4-6-ce-que-vous-devez-savoir-avant-de-mettre-a-jour.xml",
            "title": "Plugin CKEditor 4.4.6: ce que vous devez savoir avant de mettre \u00e0 jour",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nCet article s'adresse surtout aux personnes qui utilisent d\u00e9j\u00e0 le plugin ckeditor pour PluXml mais dans une version ant\u00e9rieure et qui souhaitent le mettre \u00e0 jour.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nCette nouvelle version du plugin utilise la derni\u00e8re version de ckeditor (branche 4.x) disponible en t\u00e9l\u00e9chargement sur le \u003Ca href=\"http:\/\/ckeditor.com\/\" title=\"site officiel de ckeditor\"\u003Esite officiel\u003C\/a\u003E.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nAvant de mettre \u00e0 jour le plugin, voici ce que vous devez savoir...\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article55\/plugin-ckeditor-4-4-6-ce-que-vous-devez-savoir-avant-de-mettre-a-jour\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"plugin-ckeditor-4-4-6-ce-que-vous-devez-savoir-avant-de-mettre-a-jour\"\n\t\t\t},\n\t\t\t\"headline\": \"Plugin CKEditor 4.4.6: ce que vous devez savoir avant de mettre \u00e0 jour\",\n\t\t\t\"datePublished\": \"2014-12-17T09:49:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Plugins, PluXml, CKEditor\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nContrairement \u00e0 la version pr\u00e9c\u00e9dente du plugin, j'ai choisi de ne faire aucune personnalisation technique dans les sources de ckeditor ou dans ses propres plugins, afin de faciliter les futures mises \u00e0 jour. \n\u003Cbr \/\u003E\u003Cbr \/\u003E\nSi vous faites la mise \u00e0 jour du plugin ckeditor pour PluXml, voici ce que vous allez perdre:\n\n\u003Cul\u003E\n\u003Cli\u003Ela protection des adresses emails dans les articles et les pages statiques\u003C\/li\u003E\n\u003Cli\u003Ela coloration syntaxique\u003C\/li\u003E\n\u003Cli\u003El'effet de zoom sur les images gr\u00e2ce \u00e0 lightbox plus\u003C\/li\u003E\n\u003Cli\u003Ele choix d'un th\u00e8me pour l'apparence de l'\u00e9diteur\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/p\u003E\n\n\u003Ch2\u003EProtection des adresses emails\u003C\/h2\u003E\n\n\u003Cp\u003E\nJ'ai choisi de supprimer cette fonctionnalit\u00e9 car si vous d\u00e9cidez de changer ou d'utiliser un autre \u00e9diteur que ckeditor, vos adresses emails ne seront plus prot\u00e9g\u00e9es. \n\u003C\/p\u003E\n\n\u003Cp\u003E\nC'est pourquoi en remplacement j'ai cr\u00e9\u00e9 sp\u00e9cifiquement le plugin \u003Ca href=\"http:\/\/pluxopolis.net\/article54\/plugin-plxmyprotectemails\" title =\"Plugin MyProtectEmails\"\u003EMyProtectEmails\u003C\/a\u003E qui fonctionne de fa\u00e7on autonome.\n\u003C\/p\u003E\n\n\u003Ch2\u003ELa coloration syntaxique\u003C\/h2\u003E\n\n\u003Cp\u003E\nSi vous avez besoin d'une coloration syntaxique parce que vous publiez du code dans vos articles, faites un tour sur le \u003Ca href=\"http:\/\/forum.pluxml.org\/viewforum.php?id=21\" title=\"Forum de PluXml\"\u003Eforum de PluXml\u003C\/a\u003E. Vous trouverez des plugins d\u00e9di\u00e9s. De la m\u00eame fa\u00e7on, si vous changer d'\u00e9diteur, cette fonctionnalit\u00e9 sera toujours disponible sur votre site.\n\u003C\/p\u003E\n\n\u003Ch2\u003EL'effet de zoom sur les images gr\u00e2ce \u00e0 lightbox plus\u003C\/h2\u003E\n\n\u003Cp\u003E\nLes raisons de la suppression de lightbox sont identiques. Il existe des plugins d\u00e9di\u00e9s pour cet effet sur les images: utilisez les pour ne plus \u00eatre d\u00e9pendant de ckeditor.\n\u003C\/p\u003E\n\n\u003Ch2\u003ELe choix d'un th\u00e8me pour l'apparence de l'\u00e9diteur\u003C\/h2\u003E\n\n\u003Cp\u003E\nParce que peu d'int\u00e9r\u00eat et pour faciliter les mises \u00e0 jour du plugin, cette option est simplement supprim\u00e9e.\n\u003C\/p\u003E\n\n\u003Ch2\u003EConclusion\u003C\/h2\u003E\n\n\u003Cp\u003E\nSi vous \u00eates un nouvel utilisateur et que vous envisagez d'installer pour la premi\u00e8re fois ckeditor, aucun souci. Rendez-vous sur la page des \u003Ca href=\"http:\/\/pluxopolis.net\/myplugins\" title=\"Plugins de Pluxopolis\"\u003Eplugins de Pluxopolis\u003C\/a\u003E pour t\u00e9l\u00e9charger le plugin.\n\u003C\/p\u003E\n\n\u003Cp\u003E\nSi vous utilisez une version pr\u00e9c\u00e9dente et que vous d\u00e9cidez malgr\u00e9 les changements dans le plugin de l'utiliser, voici comment faire:\n\u003Col\u003E\n\u003Cli\u003E\u00e0 partir de la zone d'administration de votre site, allez dans Param\u00e8tres \u003E Plugins \u003E Plugins actifs\u003C\/li\u003E\n\u003Cli\u003Ecochez la ligne du plugin ckeditor\u003C\/li\u003E\n\u003Cli\u003Edans la liste d\u00e9roulante \"Pour la s\u00e9lection...\", cliquez sur \"Supprimer\" et valider par le bouton \"Ok\"\u003C\/li\u003E\n\u003C\/ol\u003E\n\nNB: En cas de probl\u00e8me vous pouvez supprimer manuellement le plugin en supprimant de votre site le dossier: \/plugins\/ckeditor\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nAllez ensuite sur la page des \u003Ca href=\"http:\/\/pluxopolis.net\/myplugins\" title=\"Plugins de Pluxopolis\"\u003Eplugins de Pluxopolis\u003C\/a\u003E pour t\u00e9l\u00e9charger et faire une installation manuelle du plugin (voir \u003Ca href=\"http:\/\/pluxopolis.net\/myplugins#installation\" title=\"Comment installer un plugin cr\u00e9\u00e9 par Pluxopolis\"\u003EComment installer un plugin cr\u00e9\u00e9 par Pluxopolis\u003C\/a\u003E). Vous pouvez \u00e9galement passer par le plugin MyPluginDownloader si ce plugin est install\u00e9 sur votre site.\n\u003C\/p\u003E\n\n\u003Ch2\u003EConfiguration du plugin ckeditor\u003C\/h2\u003E\n\u003Cp\u003E\nDerni\u00e8re \u00e9tape importante apr\u00e8s avoir install\u00e9 le plugin ckeditor: allez sur la page d'administration du plugin pour r\u00e9gler ses param\u00e8tres de fonctionnement, nottament le chemin de stockage des fichiers que vous enverrez sur votre site en passant par le gestionnaire de fichier int\u00e9gr\u00e9 \u00e0 ckeditor.\n\u003C\/p\u003E\n\n\u003Cp\u003E\nCette nouvelle version embarque:\u003Cbr \/\u003E\n\u003Cul\u003E\n\u003Cli\u003ECKEditor 4.4.6 \u003Ca href=\"http:\/\/ckeditor.com\/\"\u003Ehttp:\/\/ckeditor.com\/\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003ERoxyfileman 1.4.0 \u003Ca href=\"http:\/\/www.roxyfileman.com\/\"\u003Ehttp:\/\/www.roxyfileman.com\/\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003EJustify Plugin 4.4.6 \u003Ca href=\"http:\/\/ckeditor.com\/addon\/justify\"\u003Ehttp:\/\/ckeditor.com\/addon\/justify\u003C\/a\u003E (justify)\u003C\/li\u003E\n\u003Cli\u003EShow Blocks 4.4.6 \u003Ca href=\"http:\/\/ckeditor.com\/addon\/showblocks\"\u003Ehttp:\/\/ckeditor.com\/addon\/showblocks\u003C\/a\u003E (showblocks)\u003C\/li\u003E\n\u003Cli\u003EoEmbed Plugin 1.1.7 \u003Ca href=\"http:\/\/ckeditor.com\/addon\/oembed\"\u003Ehttp:\/\/ckeditor.com\/addon\/oembed\u003C\/a\u003E (oembed)\u003C\/li\u003E\n\u003Cli\u003EWidget Plugin 4.4.6 \u003Ca href=\"http:\/\/ckeditor.com\/addon\/widget\"\u003Ehttp:\/\/ckeditor.com\/addon\/widget\u003C\/a\u003E (widget)\u003C\/li\u003E\n\u003Cli\u003ELine Utilities 4.4.6 \u003Ca href=\"http:\/\/ckeditor.com\/addon\/lineutils\"\u003Ehttp:\/\/ckeditor.com\/addon\/lineutils\u003C\/a\u003E (lineutils)\u003C\/li\u003E\n\u003C\/ul\u003E\n\u003C\/p\u003E",
            "tags": "Plugins, PluXml, CKEditor",
            "meta_description": "Ce que vous devez savoir avant de mettre \u00e0 jour le plugin CKEditor pour PluXml",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0055",
            "author": "001",
            "categorie": "004",
            "url": "plugin-ckeditor-4-4-6-ce-que-vous-devez-savoir-avant-de-mettre-a-jour",
            "date": "201412170949",
            "nb_com": 7,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0054.013.001.201412161524.plugin-plxmyprotectemails.xml",
            "title": "Plugin plxMyProtectEmails",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "\u003Cp\u003EplxMyProtectEmails permet de prot\u00e9ger l'affichage des adresses emails dans les articles et les pages statiques de PluXml en utilisant un syst\u00e8me d'encodage javascript.\u003C\/p\u003E\n\n\u003Cp\u003EAinsi une simple adresse email du genre\u003C\/p\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\n\u003Ccode class=\"language-php\"\u003E\nwebmaster@monsite.com\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Cp\u003Esera remplac\u00e9e par\u003C\/p\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\n\u003Ccode class=\"language-php\"\u003E\n&lt;script&gt;eval(unescape('%64%6f%63%75%6d%65%6e%74%2e%77%72%69%74%65%28%27%3c%61%20%68%72%65%66%3d%22%6d%61%69%6c%74%6f%3a%77%65%62%6d%61%73%74%65%72%40%6d%6f%6e%73%69%74%65%2e%63%6f%6d%22%3e%77%65%62%6d%61%73%74%65%72%40%6d%6f%6e%73%69%74%65%2e%63%6f%6d%3c%2f%61%3e%27%29'))&lt;\/script&gt;\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Cp\u003E&nbsp;\u003C\/p\u003E\n\n\u003Cp\u003EVisuellement rien ne changera pour vos visiteurs (ils verront toujours l'adresse email en clair), mais en revanche si vous \u00e9ditez le contenu de la page, vous constaterez que c'est bien la partie encod\u00e9e qui est utilis\u00e9e dans le code source.\u003C\/p\u003E\n\n\u003Cp\u003ECet encodage \u00e9vitera que les robots spammeurs viennent r\u00e9cup\u00e9rer les adresses emails. M\u00eame si on peut penser que cette solution n'est pas fiable \u00e0 100%, cela restera un bon premier niveau de protection.\u003C\/p\u003E\n\n\u003Cp\u003ELe plugin est disponible dans la partie \u003Ca href=\"http:\/\/pluxopolis.net\/myplugins\" title=\"Plugins Pluxopolis\"\u003EPlugins\u003C\/a\u003E du site ou il peut \u00eatre t\u00e9l\u00e9charg\u00e9 directement \u00e0 partir du plugin MyPluginDownloader s'il est install\u00e9 sur votre site.\u003C\/p\u003E\n\n\u003Cp\u003EInstallez et activez le plugin.\u003Cbr \/\u003E\nAucune configuration n'est requise.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article54\/plugin-plxmyprotectemails\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"plugin-plxmyprotectemails\"\n\t\t\t},\n\t\t\t\"headline\": \"Plugin plxMyProtectEmails\",\n\t\t\t\"datePublished\": \"2014-12-16T15:24:00Z\",\n\t\t\t\"dateModified\": \"2018-12-18T05:01:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Plugins, Documentation, S\u00e9curit\u00e9, Email\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Plugins, Documentation, S\u00e9curit\u00e9, Email",
            "meta_description": "Protection des adresses emails des articles et des pages statiques par encodage javascript",
            "meta_keywords": "",
            "title_htmltag": "MyProtectEmail: plugin pour PluXml",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0054",
            "author": "001",
            "categorie": "013",
            "url": "plugin-plxmyprotectemails",
            "date": "201412161524",
            "nb_com": 0,
            "date_creation": "201412161524",
            "date_update": "201812180501"
        },
        {
            "filename": ".\/data\/articles\/0052.001.001.201412081356.faire-une-redirection-http-www-vers-http-avec-pluxml.xml",
            "title": "Faire une redirection http:\/\/www vers http:\/\/ avec PluXml",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Afin d'\u00e9viter les ph\u00e9nom\u00e8nes de duplication de contenu (duplicate content) qui p\u00e9nalisent le bon r\u00e9f\u00e9rencement des sites, nous allons voir comment rediriger toutes les pages de type \"http:\/\/www.monsite.fr\" vers \"http:\/\/monsite.fr\"\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article52\/faire-une-redirection-http-www-vers-http-avec-pluxml\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"faire-une-redirection-http-www-vers-http-avec-pluxml\"\n\t\t\t},\n\t\t\t\"headline\": \"Faire une redirection http:\/\/www vers http:\/\/ avec PluXml\",\n\t\t\t\"datePublished\": \"2014-12-08T13:56:00Z\",\n\t\t\t\"dateModified\": \"2014-12-08T13:56:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Apache, htaccess, Navigation, Url Rewrite, R\u00e9f\u00e9rencement\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nEn effet, le fait de pouvoir acc\u00e9der \u00e0 partir de deux urls diff\u00e9rentes d'une m\u00eame page d'un site, et donc d'un m\u00eame contenu, est mal vu par les moteurs de recherche. Pour pallier \u00e0 ce souci, il est pr\u00e9f\u00e9rable de mettre en place une redirection automatique.\n\u003C\/p\u003E\n\u003Cp\u003E\nDans un premier temps, il faut que le module de r\u00e9\u00e9criture d'url d'apache (mod_rewrite) soit disponible et activ\u00e9 sur votre h\u00e9bergeur. \n\u003Cbr \/\u003E\u003Cbr \/\u003E\nActivez la r\u00e9\u00e9criture d'url dans PluXml en passant par la zone d'administration et en allant dans le menu: \n\u003Cem\u003EParam\u00e8tres\u003C\/em\u003E \u003E \u003Cem\u003EConfiguration avanc\u00e9es\u003C\/em\u003E et passer sur \u003Cem\u003EOui\u003C\/em\u003E la ligne \u003Cem\u003EActiver la r\u00e9\u00e9criture d'urls\u003C\/em\u003E. \n\u003Cbr \/\u003E\u003Cbr \/\u003E\nL'activation de cette option cr\u00e9era \u00e0 la racine de votre site un fichier \u003Cem\u003E.htaccess\u003C\/em\u003E\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u00c9ditez ce fichier et rajoutez les 2 lignes suivantes:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nRewriteCond %{HTTP_HOST} ^www\\.(.*)$ [NC]\nRewriteRule (.*) http:\/\/%1\/$1 [R=301,L]\n\u003C\/code\u003E\u003C\/pre\u003E\n\nde mani\u00e8re \u00e0 obtenir un fichier ressemblant \u00e0\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n# BEGIN -- Pluxml\nOptions -Multiviews\n&lt;IfModule mod_rewrite.c\u003E\nRewriteEngine on\nRewriteBase \/\nRewriteCond %{HTTP_HOST} ^www\\.(.*)$ [NC]\nRewriteRule (.*) http:\/\/%1\/$1 [R=301,L]\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteCond %{REQUEST_FILENAME} !-l\n# R\u00e9\u00e9criture des urls\nRewriteRule ^(?!feed)(.*)$ index.php?$1 [L]\nRewriteRule ^feed\\\/(.*)$ feed.php?$1 [L]\n&lt;\/IfModule\u003E\n&lt;Files \"version\"\u003E\n\tOrder allow,deny\n\tDeny from all\n&lt;\/Files\u003E\n# END -- Pluxml\n\u003C\/code\u003E\u003C\/pre\u003E\n\nEssayez maintenant d\u2019acc\u00e9der \u00e0 votre site en tapant dans votre navigateur le lien http:\/\/www.monsite.fr, vous verrez que vous serez automatiquement redirig\u00e9 vers le lien http:\/\/monsite.fr.",
            "tags": "Apache, htaccess, Navigation, Url Rewrite, R\u00e9f\u00e9rencement",
            "meta_description": "Comment modifier le fichier .htaccess de PluXml pour rediriger les liens http:\/\/www en http:\/\/",
            "meta_keywords": "Apache, htaccess, Navigation, Url Rewrite, R\u00e9f\u00e9rencement, Redirection, mod_rewrite",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0052",
            "author": "001",
            "categorie": "001",
            "url": "faire-une-redirection-http-www-vers-http-avec-pluxml",
            "date": "201412081356",
            "nb_com": 0,
            "date_creation": "201412081356",
            "date_update": "201412081356"
        },
        {
            "filename": ".\/data\/articles\/0051.001,007.001.201411270844.recuperer-les-adresses-emails-des-commentateurs.xml",
            "title": "R\u00e9cup\u00e9rer les adresses emails des commentateurs",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Voici un exemple tr\u00e8s simple de code pour r\u00e9cup\u00e9rer le nom et l'adresse email des personnes qui laissent des commentaires sur votre site.\n\u003Cbr \/\u003E\nPour tester cet exemple, faites un simple copier-coller du code suivant dans le contenu d'une page statique, en passant par votre administration, menu \u003Cem\u003EPages statiques\u003C\/em\u003E puis lien \u003Cem\u003E\u00c9diter\u003C\/em\u003E. Cliquez ensuite sur le lien \u003Cem\u003EVoir\u003C\/em\u003E pour afficher les r\u00e9sultats.\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php\n$plxMotor = plxMotor::getInstance();\n$root = PLX_ROOT.$plxMotor-\u003EaConf['racine_commentaires'];\n$plxGlob = plxGlob::getInstance($root, false);\nif($files = $plxGlob-\u003Equery(\"\/(.*)\\.xml$\/\")) {\n\t$array = array();\n    foreach($files as $idx =\u003E $file) {\n        $com = $plxMotor-\u003EparseCommentaire($root.$file);\n\t\tif(!in_array($com['mail'], $array)) {\n\t\t\t$array[$com['mail']] = $com['author'].' - '.$com['mail'];\n\t\t}\n    }\n}\necho \"&lt;ul\u003E&lt;li\u003E\".implode(\"&lt;\/li\u003E&lt;li\u003E\", $array).\"&lt;\/li\u003E&lt;\/ul\u003E\";\n?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article51\/recuperer-les-adresses-emails-des-commentateurs\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"recuperer-les-adresses-emails-des-commentateurs\"\n\t\t\t},\n\t\t\t\"headline\": \"R\u00e9cup\u00e9rer les adresses emails des commentateurs\",\n\t\t\t\"datePublished\": \"2014-11-27T08:44:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Snippet, Commentaires, Email\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "PluXml, Snippet, Commentaires, Email",
            "meta_description": "Code \u00e0 utiliser dans PluXml pour afficher la liste des adresses emails de commentateurs",
            "meta_keywords": "PluXml, Snippet, Commentaires, Email",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0051",
            "author": "001",
            "categorie": "001,007",
            "url": "recuperer-les-adresses-emails-des-commentateurs",
            "date": "201411270844",
            "nb_com": 0,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0050.001.001.201411210955.edition-en-ligne-des-fichiers-du-theme-de-votre-pluxml.xml",
            "title": "\u00c9dition en ligne des fichiers du th\u00e8me de votre PluXml",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nSavez-vous que vous pouvez \u00e9diter chaque fichier de votre th\u00e8me en ligne, directement \u00e0 partir de PluXml ?\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nCertes vous n'aurez pas un \u00e9diteur avanc\u00e9, juste le strict minimum pour faire des modifications ponctuelles ou des ajustements de derni\u00e8re minute sans avoir \u00e0 r\u00e9cup\u00e9rer vos fichiers par ftp pour les modifier. Cela peut s'av\u00e9rer pratique et faire gagner du temps si les modifications \u00e0 faire ne sont pas trop importantes: un petit copier-coller de code, le changement de nom d'une balise ou la valeur d\u2019un couleur dans la feuille de style.\n\u003C\/p\u003E\n\u003Cp\u003E\u003Ci\u003E\u003Cins\u003EMAJ le 28\/04\/2023\u003C\/i\u003E\u003C\/ins\u003E\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article50\/edition-en-ligne-des-fichiers-du-theme-de-votre-pluxml\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"edition-en-ligne-des-fichiers-du-theme-de-votre-pluxml\"\n\t\t\t},\n\t\t\t\"headline\": \"\u00c9dition en ligne des fichiers du th\u00e8me de votre PluXml\",\n\t\t\t\"image\": \"https:\/\/pluxopolis.net\/data\/medias\/images-site\/images-page-plugins\/MyLoremIpsum.png\",\n\t\t\t\t\"datePublished\": \"2014-11-21T09:55:00Z\",\n\t\t\t\"dateModified\": \"2023-04-28T13:59:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Th\u00e8me, Tuto\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nPour pouvoir \u00e9diter les fichiers de votre th\u00e8me, \u00e0 partir de votre zone d\u2019administration, rendez-vous dans \u003Cstrong\u003E\u003Cem\u003EParam\u00e8tres\u003C\/em\u003E\u003C\/strong\u003E \u003E \u003Cstrong\u003E\u003Cem\u003Eth\u00e8mes\u003C\/em\u003E\u003C\/strong\u003E. Les th\u00e8mes disponibles sont affich\u00e9s et le premier de la liste est celui qui est actif et que vous pouvez modifi\u00e9.\u003C\/p\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"\/data\/images\/edittheme.jpg\" alt=\"options\" title=\"Page 'Th\u00e8mes'.\" \/\u003E\u003C\/p\u003E\n\u003Cp\u003Ecliquez sur le lien \u003Cstrong\u003E\u003Cem\u003E\u00c9diter les fichiers du th\u00e8me\u003C\/em\u003E\u003C\/strong\u003E.\n\u003C\/p\u003EA partir du d\u00e9roulant \u003Cstrong\u003E\u003Cem\u003E\u00c9diter les fichiers du th\u00e8me\u003C\/em\u003E\u003C\/strong\u003E vous pourrez s\u00e9lectionner le fichier \u00e0 \u00e9diter.\u003C\/p\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/editthemefiles.jpg\" alt=\"\u00e9dition\" title=\"\u00c9diter les fichiers du th\u00e8me\" \/\u003E\u003C\/p\u003E\n\u003Ch3\u003EMise en gardes\u003C\/h3\u003E\n\u003Cp\u003EAvant toutes modifications de fichiers, il est toujours conseill\u00e9 de garder une copie des fichiers avant modifications, que ce soit vos fichiers de th\u00e8mes ou tout autre fichier important que vous manipulez.\u003C\/p\u003E\n\u003Cp\u003E\u003Cstrong\u003E&Agrave; enregistrement de vos fichier,\u003C\/strong\u003E PluXml nettoie tout les \u003Cb style=\"font-size:2rem;vertical-align:middle;color:blue\"\u003E\\\u003C\/b\u003E, il faut donc penser \u00e0 les doubler avant d'enregistrer votre fichier en les r\u00e9ecrivant comme ceci  :\u003Cb style=\"font-size:2rem;vertical-align:middle;color:blue\"\u003E\\\\\u003C\/b\u003E.\u003C\/p\u003E\n\u003Cp\u003E\u003C\/p\u003E\n\u003Cp\u003E\u003C\/p\u003E\n\u003Cp\u003EIl existe un plugin qui vous aidera \u00e0 cette t\u00e2che en doublant pour vous ceux d\u00e9j\u00e0 existant . Ce plugin se trouve sur Git-hub \u00e0 \u003Ca href=\"https:\/\/github.com\/gcyrillus\/PLX-cssBackSlash\" title =\"Plugin pour PluXml, pr\u00e9serve vos backslash \u00e0 l'\u00e9dition\"\u003EPLX-cssBackSlash\u003C\/a\u003E.\u003C\/p\u003E",
            "tags": "Th\u00e8me, Tuto",
            "meta_description": "Tutoriel pour PluXml pour \u00e9diteur en ligne les fichiers de son th\u00e8me",
            "meta_keywords": "Th\u00e8me, Tuto, \u00c9diteur",
            "title_htmltag": "",
            "thumbnail": "data\/medias\/images-site\/images-page-plugins\/MyLoremIpsum.png",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0050",
            "author": "001",
            "categorie": "001",
            "url": "edition-en-ligne-des-fichiers-du-theme-de-votre-pluxml",
            "date": "201411210955",
            "nb_com": 3,
            "date_creation": "201411210955",
            "date_update": "202304281359"
        },
        {
            "filename": ".\/data\/articles\/0049.001.001.201410010900.modifier-le-titre-du-menu-blog.xml",
            "title": "Modifier le titre du menu \"Blog\"",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Si on choisit comme page d'accueil une page statique, Pluxml cr\u00e9e automatiquement un menu \"Blog\" au niveau de la liste des pages statiques.\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0049\/capture.jpg\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\nVoil\u00e0 la modification \u00e0 effectuer pour changer le titre du menu \"Blog\". \n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article49\/modifier-le-titre-du-menu-blog\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"modifier-le-titre-du-menu-blog\"\n\t\t\t},\n\t\t\t\"headline\": \"Modifier le titre du menu \"Blog\"\",\n\t\t\t\"datePublished\": \"2014-10-01T09:00:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Menu, Navigation, Page statique, Th\u00e8me, Tuto\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u00c9ditez le fichier \u003Cem\u003Eheader.php\u003C\/em\u003E stock\u00e9 dans le dossier de votre th\u00e8me et localisez la ligne suivante:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EpageBlog('&lt;li id=\"#page_id\"\u003E&lt;a class=\"#page_status\" href=\"#page_url\" title=\"#page_name\"\u003E#page_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nRemplacer \u003Cstrong\u003E\u003Cem\u003E#page_name\u003C\/em\u003E\u003C\/strong\u003E par le nouveau titre.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nExemple: remplacement du titre Blog par Journal\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EpageBlog('&lt;li id=\"#page_id\"\u003E&lt;a class=\"#page_status\" href=\"#page_url\" title=\"Journal\"\u003EJournal&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E",
            "tags": "Menu, Navigation, Page statique, Th\u00e8me, Tuto",
            "meta_description": "Tutoriel pour PluXml pour modifier le titre du menu Blog",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0049",
            "author": "001",
            "categorie": "001",
            "url": "modifier-le-titre-du-menu-blog",
            "date": "201410010900",
            "nb_com": 0,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0046.001.001.201409240759.a-quoi-sert-l-instruction-templatecss.xml",
            "title": "\u00c0 quoi sert l'instruction templateCss",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nL'instruction templaceCss est utilis\u00e9e dans la partie &lt;head\u003E du fichier \u003Cem\u003Eheader.php\u003C\/em\u003E stock\u00e9 dans le dossier du th\u00e8me.\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EtemplateCss() ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003C\/p\u003E\n\nQuestion: \u00e0 quoi sert cette instruction ?\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article46\/a-quoi-sert-l-instruction-templatecss\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"a-quoi-sert-l-instruction-templatecss\"\n\t\t\t},\n\t\t\t\"headline\": \"\u00c0 quoi sert l'instruction templateCss\",\n\t\t\t\"datePublished\": \"2014-09-24T07:59:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Css, PluXml, Th\u00e8me, Template\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\n\u003Cstrong\u003EL'instruction templaceCss permet de charger automatiquement le fichier .css qui porte le m\u00eame nom qu'un fichier template.\u003C\/strong\u003E\n\u003C\/p\u003E\n\n\u003Cp\u003E\nPar exemple, si dans le dossier du th\u00e8me nous avons des fichiers template avec des noms comme:\n\u003Cul\u003E\n\u003Cli\u003Estatic-home.php\u003C\/li\u003E\n\u003Cli\u003Ecategorie-association.php\u003C\/li\u003E\n\u003Cli\u003Earticle-presentation.php\u003C\/li\u003E\n\u003C\/ul\u003E\nil suffit alors de cr\u00e9er des fichiers css dans le dossier du th\u00e8me avec les noms correspondants suivant:\n\u003Cul\u003E\n\u003Cli\u003Estatic-home.css\u003C\/li\u003E\n\u003Cli\u003Ecategorie-association.css\u003C\/li\u003E\n\u003Cli\u003Earticle-presentation.css\u003C\/li\u003E\n\u003C\/ul\u003E\n\nDe cette fa\u00e7on lors de la cr\u00e9ation d'un article, si on lui associe le fichier template \u003Cstrong\u003E\u003Cem\u003Earticle-presentation.php\u003C\/em\u003E\u003C\/strong\u003E, en visualisant l'article cot\u00e9 visiteur, le fichier css \u003Cstrong\u003E\u003Cem\u003Earticle-presentation.css\u003C\/em\u003E\u003C\/strong\u003E sera automatiquement d\u00e9clar\u00e9 et charg\u00e9 dans la partie head du site.\n\u003C\/p\u003E\n\nUtilisation d'un fichier template pour un article:\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0046\/image00.jpg\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\n\u003Cp\u003E\nCela a l'avantage d'all\u00e9ger le fichier css principal style.css du site et de ne pas le surcharger avec du code css qui ne serait utilis\u00e9 que dans certain cas.\u003Cbr \/\u003E\n\u003Cbr \/\u003E\nPar exemple si on visualise les pages des archives, il n'est peut-\u00eatre pas n\u00e9cessaire de charger le code css utilis\u00e9 pour l'affichage des articles.\n\u003C\/p\u003E\n\n\u003Cp\u003E\nSi l'on regarde le code source html g\u00e9n\u00e9r\u00e9 cot\u00e9 visiteur lors de la visualisation d'un article utilisant un template, on peut voir que l'ajout du fichier css est automatiquement d\u00e9clar\u00e9 et trait\u00e9 par PluXml, sans rien avoir \u00e0 coder manuellement. \n\u003C\/p\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0046\/image01.jpg\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\n\u003Cp\u003E\nOn gagne ainsi sur la taille du fichier css principal (g\u00e9n\u00e9ralement style.css) et on augmente donc les performance du site par des temps de chargement acc\u00e9l\u00e9r\u00e9s.\n\u003C\/p\u003E",
            "tags": "Css, PluXml, Th\u00e8me, Template",
            "meta_description": "Explication de l'instruction templateCss utilis\u00e9e dans les th\u00e8mes pour PluXml",
            "meta_keywords": "PluXml, Css, Th\u00e8me, Template",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0046",
            "author": "001",
            "categorie": "001",
            "url": "a-quoi-sert-l-instruction-templatecss",
            "date": "201409240759",
            "nb_com": 1,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0048.001.001.201409161528.ajouter-une-icone-aux-menus-des-pages-statiques.xml",
            "title": "Ajouter une ic\u00f4ne aux menus des pages statiques",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Pour ce nouveau tutoriel, je vous propose de voir comment afficher des ic\u00f4nes \u00e0 gauche des menus des pages statiques, afin d'obtenir ce genre de pr\u00e9sentation:\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0048\/capture01.jpg\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article48\/ajouter-une-icone-aux-menus-des-pages-statiques\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"ajouter-une-icone-aux-menus-des-pages-statiques\"\n\t\t\t},\n\t\t\t\"headline\": \"Ajouter une ic\u00f4ne aux menus des pages statiques\",\n\t\t\t\"datePublished\": \"2014-09-16T15:28:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Css, Page statique, Navigation, PluXml, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "Chaque page statique est identifi\u00e9e par un num\u00e9ro unique. Pour connaitre ces identifiants, rendez-vous dans la partie d'administration de votre site et allez dans la gestion des pages statiques:\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Ca href=\"data\/images\/0048\/capture02.jpg\" title=\"\"\u003E\u003Cimg src=\"data\/images\/0048\/capture02_th.jpg\" alt=\"\" \/\u003E\u003C\/a\u003E\n\u003C\/p\u003E\n\nRelevez les num\u00e9ros de vos pages statiques dans la colonne \u003Cem\u003EIdentifiant\u003C\/em\u003E. Nous en aurons besoin pour la suite.\n\u003Cp\u003E\nPour rappel, l'affichage des menus des pages statiques se fait gr\u00e2ce \u00e0 l'instruction suivante, pr\u00e9sente dans le fichier \u003Cem\u003Eheader.php\u003C\/em\u003E stock\u00e9 dans le dossier de votre th\u00e8me:\n\u003C\/p\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EstaticList($plxShow-\u003EgetLang('HOME'),'&lt;li id=\"#static_id\"\u003E&lt;a href=\"#static_url\" class=\"#static_status\" title=\"#static_name\"\u003E#static_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLe code html g\u00e9n\u00e9r\u00e9 ressemble alors \u00e0 ceci\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Ca href=\"data\/images\/0048\/capture02.jpg\" title=\"\"\u003E\u003Cimg src=\"data\/images\/0048\/capture03_th.jpg\" alt=\"\" \/\u003E\u003C\/a\u003E\n\u003C\/p\u003E\n\nNous allons utiliser l'attribut id des balises &lt;li\u003E pour d\u00e9finir les propri\u00e9t\u00e9s css et ajouter nos ic\u00f4nes.\n\u003Cbr \/\u003E\nPour les ic\u00f4nes je vous conseille de prendre des images de 32x32 pixels et de le copier dans le dossier:\n\n\u003Cpre\u003E\nthemes\/defaut\/img\/\n\u003C\/pre\u003E\n\n\u00c9ditez maintenant le fichier \u003Cem\u003Estyle.css\u003C\/em\u003E de votre th\u00e8me et rajoutez \u00e0 la fin du fichier les lignes suivantes:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-css\"\u003E\n#static-1 {\n\tbackground: url(..\/img\/mac_logo.png) no-repeat center left; \n\tpadding: 10px 0 10px 40px;\n}\n\n#static-2 {\n\tbackground: url(..\/img\/windows_logo.png) no-repeat center left; \n\tpadding: 10px 0 10px 40px;\n}\n\n#static-3 {\n\tbackground: url(..\/img\/ubuntu_logo.png) no-repeat center left; \n\tpadding: 10px 0 10px 40px;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\n#static-1 permet de d\u00e9finir le comportement visuel de la balise &lt;li\u003E d\u00e9finie par id=\"static-1\" correspondant \u00e0 la page statique \"Statique 1\".\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nDe la m\u00eame fa\u00e7on #static-2 permet d'ajouter l'ic\u00f4ne \u00e0 la page \"Statique 2\", et ainsi de suite...\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nNB: les valeurs \u003Cem\u003Epadding: 10px 0 10px 40px;\u003C\/em\u003E sont adapt\u00e9es pour le th\u00e8me par d\u00e9faut de PluXml que j'ai pris comme mod\u00e8le pour ce tutoriel. Il est donc fort probable que vous ayez \u00e0 les adapter pour votre propre th\u00e8me.",
            "tags": "Css, Page statique, Navigation, PluXml, Th\u00e8me",
            "meta_description": "Tutorial pour PluXml pour ajouter une ic\u00f4ne aux meus des pages statiques",
            "meta_keywords": "Css, Page statique, Navigation, PluXml, Th\u00e8me",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0048",
            "author": "001",
            "categorie": "001",
            "url": "ajouter-une-icone-aux-menus-des-pages-statiques",
            "date": "201409161528",
            "nb_com": 2,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0045.001.001.201409081000.creer-un-page-d-erreur-404-personalisee.xml",
            "title": "Cr\u00e9er un page d'erreur 404 personalis\u00e9e",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0045\/capture01.png\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article45\/creer-un-page-d-erreur-404-personalisee\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"creer-un-page-d-erreur-404-personalisee\"\n\t\t\t},\n\t\t\t\"headline\": \"Cr\u00e9er un page d'erreur 404 personalis\u00e9e\",\n\t\t\t\"datePublished\": \"2014-09-08T10:00:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Css, PluXml, Th\u00e8me, Erreur\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nLa page d'erreur par d\u00e9faut lorsqu'une erreur se produit est affich\u00e9e gr\u00e2ce au fichier \u003Cem\u003Eerreur.php\u003C\/em\u003E stock\u00e9 dans le dossier du th\u00e8me. \n\u003C\/p\u003E\n\n\u003Cp\u003E\nAvec le th\u00e8me par d\u00e9faut la page affich\u00e9e ressemble \u00e0 \u00e7a:\n\u003C\/p\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0045\/capture00.jpg\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\n\u003Cp\u003E\nAvec les outils d'analyses disponibles avec les navigateurs, on peut voir dans l'ent\u00eate du fichier l'erreur 404 Not Found g\u00e9n\u00e9r\u00e9e.\n\u003C\/p\u003E\n\n\u003Cp\u003E\nPour afficher notre nouvelle page d'erreur avec un gros 404 au milieu, \u00e9ditez le fichier \u003Cstrong\u003E\u003Cem\u003Eerreur.php\u003C\/em\u003E\u003C\/strong\u003E de votre th\u00e8me et remplacer tout son contenu par le code suivant:\n\u003C\/p\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php if (!defined('PLX_ROOT')) exit; ?\u003E\n&lt;!DOCTYPE html\u003E\n&lt;html lang=\"&lt;?php $plxShow-\u003EdefaultLang() ?\u003E\"\u003E\n&lt;head\u003E\n&lt;meta charset=\"&lt;?php $plxShow-\u003Echarset('min'); ?\u003E\"\u003E\n&lt;meta name=\"viewport\" content=\"width=device-width, user-scalable=yes, initial-scale=1.0\"\u003E\n&lt;title\u003E&lt;?php $plxShow-\u003EpageTitle(); ?\u003E&lt;\/title\u003E\n&lt;?php $plxShow-\u003Emeta('description') ?\u003E\n&lt;?php $plxShow-\u003Emeta('keywords') ?\u003E\n&lt;?php $plxShow-\u003Emeta('author') ?\u003E\n&lt;link rel=\"icon\" href=\"&lt;?php $plxShow-\u003Etemplate(); ?\u003E\/img\/favicon.png\" \/\u003E\n&lt;style\u003E\nbody {\n\tfont: normal 13px\/20px Arial, Helvetica, sans-serif;\n\tcolor: #969696;\n\tmargin: 0;\n\tbackground-color: #fff;\n}\n.error-center {\n\twidth: 800px;\n\tmargin-left: -400px;\n\tposition: absolute;\n\ttop: 30%;\n\tleft: 50%;\n\ttext-align: center;\n}\n.error-404 {\n\tmargin: 0;\n\tfont-size: 200px;\n\tline-height: 200px;\n\tfont-weight: bold;\n}\n.error-404 span {\n\ttext-shadow: 1px 5px 7px rgba(150, 150, 150, 1);\n}\nh1, h2 {\n\tcolor: #616161;\n}\nh2 {\n\tfont-size: 24px;\n\tline-height: 24px;\n}\n&lt;\/style\u003E\n\n&lt;\/head\u003E\n\n&lt;body id=\"top\"\u003E\n\n&lt;div class=\"error-center\"\u003E\n\n\t&lt;h1 class=\"error-404\"\u003E\n\t\t&lt;span\u003E404&lt;\/span\u003E\n\t&lt;\/h1\u003E\n\t\n\t&lt;h2 class=\"title\"\u003EPage non trouv\u00e9e&lt;\/h2\u003E\n\t&lt;p class=\"message\"\u003E\n\t\tLa page que vous avez demand\u00e9e n'existe pas.\n\t\t&lt;br \/\u003E\n\t\t&lt;a href=\"javascript:history.go(-1)\"\u003ERetour&lt;\/a\u003E ou accueil &lt;?php $plxShow-\u003EmainTitle('link'); ?\u003E\n\t&lt;\/p\u003E\n&lt;\/div\u003E\n\n&lt;\/body\u003E\n\n&lt;\/html\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Cp\u003E\nNous avons ici \u00e9pur\u00e9 le contenu de la page par d\u00e9faut pour ne garder que le strict minimum.\u003Cbr \/\u003E\u003Cbr \/\u003E\nLe chargement des feuilles de style du th\u00e8me a \u00e9t\u00e9 supprim\u00e9 pour utiliser \u00e0 la place le code css n\u00e9cessaire \u00e9crit entre les balises &lt;style\u003E et &lt;\/style\u003E.\n\u003C\/p\u003E\n\nIl ne vous reste plus qu'\u00e0 imaginer vos propres pages d'erreur 404 et adapter le code en rempla\u00e7ant votre code css et le contenu de la page entre les balises &lt;body\u003E et &lt;\/body\u003E.",
            "tags": "Css, PluXml, Th\u00e8me, Erreur",
            "meta_description": "Tutorial pour PluXml pour modifier la page d'erreur 404 par d\u00e9faut",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0045",
            "author": "001",
            "categorie": "001",
            "url": "creer-un-page-d-erreur-404-personalisee",
            "date": "201409081000",
            "nb_com": 3,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0047.001,007.001.201409041418.tester-l-existence-d-un-plugin-a-partir-d-un-plugin.xml",
            "title": "Tester l'existence d'un plugin \u00e0 partir d'un plugin",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Pour tester l'existence d'un plugin, ajoutez le code suivant dans la classe de votre plugin:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\npublic static function isPluginExists($plugname) {\n\n\tif(defined('PLX_ADMIN'))\n\t\t$plxObj = plxAdmin::getInstance();\n\telse\n\t\t$plxObj = plxMotor::getInstance();\n\t\t\t\n\treturn isset($plxObj-\u003EplxPlugins-\u003EaPlugins[$plugname]);\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\t\nA partir de votre plugin vous pouvez maintenant tester l'existence d'un autre plugin en utilisant ce type de code:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nif(plxMyPlugin::isPluginExists('plxPlugin_a_Tester') {\n\t\/\/ si le plugin existe\n} else {\n\t\/\/ si le plugin n'existe pas\n}\n\u003C\/code\u003E\u003C\/pre\u003E\t\n\nIci \u003Cem\u003EplxMyPlugin\u003C\/em\u003E est le nom de la classe de votre plugin et \u003Cem\u003EplxPlugin_a_Tester\u003C\/em\u003E \nest le nom de la classe du plugin \u00e0 tester.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article47\/tester-l-existence-d-un-plugin-a-partir-d-un-plugin\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"tester-l-existence-d-un-plugin-a-partir-d-un-plugin\"\n\t\t\t},\n\t\t\t\"headline\": \"Tester l'existence d'un plugin \u00e0 partir d'un plugin\",\n\t\t\t\"datePublished\": \"2014-09-04T14:18:00Z\",\n\t\t\t\"dateModified\": \"2023-03-22T20:59:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Plugins, Snippet\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Plugins, Snippet",
            "meta_description": "Snippet pour tester l'existence d'un plugin dans PluXml",
            "meta_keywords": "PluXml, Snippet, Plugin",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0047",
            "author": "001",
            "categorie": "001,007",
            "url": "tester-l-existence-d-un-plugin-a-partir-d-un-plugin",
            "date": "201409041418",
            "nb_com": 0,
            "date_creation": "201409041418",
            "date_update": "202303222059"
        },
        {
            "filename": ".\/data\/articles\/0044.001.001.201409041006.donner-du-style-a-la-liste-des-categories-des-articles.xml",
            "title": "Donner du style \u00e0 la liste des cat\u00e9gories des articles",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nNous allons voir comment changer l'affichage par d\u00e9faut de la liste des cat\u00e9gories des articles sur la page de lecture du contenu des articles.\u003Cbr \/\u003E\nL'objectif est d'afficher \u00e0 partir de la description des cat\u00e9gories un texte et une image d'illustration des cat\u00e9gories afin d'obtenir une pr\u00e9sentation semblable \u00e0 celle-ci:\u003Cbr \/\u003E\n\u003C\/p\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0044\/capture00.png\" alt=\"\" \/\u003E\u003C\/a\u003E\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article44\/donner-du-style-a-la-liste-des-categories-des-articles\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"donner-du-style-a-la-liste-des-categories-des-articles\"\n\t\t\t},\n\t\t\t\"headline\": \"Donner du style \u00e0 la liste des cat\u00e9gories des articles\",\n\t\t\t\"datePublished\": \"2014-09-04T10:06:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Article, Cat\u00e9gorie, Css, PluXml, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "Actuellement, la liste des cat\u00e9gories d'un article est affich\u00e9e dans le fichier \u003Cem\u003Earticle.php\u003C\/em\u003E du th\u00e8me gr\u00e2ce aux instructions suivantes:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003Elang('CLASSIFIED_IN') ?\u003E : &lt;?php $plxShow-\u003EartCat(); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLe r\u00e9sultat obtenu est:\u003Cbr \/\u003E\npour un article class\u00e9 dans les cat\u00e9gories Rubrique 1, Rubrique 2 et Rubrique 3\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0044\/capture01a.png\" alt=\"\" \/\u003E\u003C\/a\u003E\n\u003C\/p\u003E\n\nVoyons \u00e9tape par \u00e9tape pour changer cet affichage et obtenir cette pr\u00e9sentation...\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Ca href=\"data\/images\/0044\/capture02.png\" title=\"nouvelle liste des cat\u00e9gories d'un article\"\u003E\u003Cimg src=\"data\/images\/0044\/capture02.jpg\" alt=\"\" \/\u003E\u003C\/a\u003E\n\u003C\/p\u003E\n\n\u003Ch2\u003EParam\u00e9trage des cat\u00e9gories\u003C\/h2\u003E\n\u003Cp\u003E\nAvant de nous attaquer \u00e0 la modification du th\u00e8me, commen\u00e7ons par renseigner la partie \u003Cem\u003Edescription\u003C\/em\u003E de nos cat\u00e9gories. L'objectif est d'y ajouter un texte descriptif et une image d'illustration.\n\u003C\/p\u003E\n\u003C\/p\u003E\n\u00c0 partir de la zone d'administration, aller dans le menu \u003Cstrong\u003E\u003Cem\u003ECat\u00e9gories\u003C\/em\u003E\u003C\/strong\u003E et cliquez sur le lien \u003Cem\u003E\u003Cstrong\u003EOptions\u003C\/em\u003E\u003C\/strong\u003E.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nRenseignez la description de la cat\u00e9gorie et ajoutez le code html pour afficher l'image d'illustration de la cat\u00e9gorie.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nExemple:\u003Cbr \/\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Ca href=\"data\/images\/0044\/capture03.png\" title=\"options cat\u00e9gorie\"\u003E\u003Cimg src=\"data\/images\/0044\/capture03.jpg\" alt=\"\" \/\u003E\u003C\/a\u003E\n\u003C\/p\u003E\n\nIci, l'image correspondant au fichier \u003Cstrong\u003E\u003Cem\u003Efindingnemo1.png\u003C\/em\u003E\u003C\/strong\u003E utilis\u00e9 est stock\u00e9e dans le dossier \u003Cstrong\u003E\u003Cem\u003Edata\/images\/\u003C\/em\u003E\u003C\/strong\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;img src=\"data\/images\/findingnemo1.png\" alt=\"\" \/\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Cp\u003E\nFaites de m\u00eame pour toutes vos autres cat\u00e9gories.\n\u003C\/p\u003E\n\n\u003Ch2\u003EModification du th\u00e8me\u003C\/h2\u003E\n\n\nNous allons modifier le fichier article.php stock\u00e9 dans le dossier de notre th\u00e8me.\u003Cbr \/\u003E\nComme toujours, je prends en exemple le th\u00e8me par d\u00e9faut livr\u00e9 avec PluXml.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\n\u00c9ditez le fichier \u003Cem\u003Earticle.php\u003C\/em\u003E de votre th\u00e8me.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nSupprimez la ligne suivante pour ne plus afficher l'ancienne pr\u00e9sentation de la liste des cat\u00e9gories de l'article.\u003Cbr \/\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003Elang('CLASSIFIED_IN') ?\u003E : &lt;?php $plxShow-\u003EartCat(); ?\u003E -\n\u003C\/code\u003E\u003C\/pre\u003E\n\nEn dessous des lignes suivantes:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;section\u003E\n\t&lt;?php $plxShow-\u003EartContent(); ?\u003E\n&lt;\/section\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nAjoutez le code suivant:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;section\u003E\n&lt;?php\n$catIds = $plxShow-\u003EartActiveCatIds();\nif($catIds) {\n\t$output = array();\n\tforeach($catIds as $catId) {\n\t\t$desc = isset($plxMotor-\u003EaCats[$catId]) ? $plxMotor-\u003EaCats[$catId]['description'] : '';\n\t\tif($desc!='')\n\t\t\t$output[] = '&lt;li\u003E&lt;a title=\"\" href=\"'.$plxShow-\u003EcatUrl($catId).'\"\u003E&lt;div\u003E'.$plxMotor-\u003EaCats[$catId]['name'].'&lt;\/div\u003E'.$desc.'&lt;\/a\u003E&lt;\/li\u003E';\n\t}\n\tif($output)\n\t\techo '&lt;ul class=\"catDesc\"\u003E'.implode(' ', $output).'&lt;\/ul\u003E';\n\t}\n?\u003E\n&lt;\/section\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nCe code permet d'afficher la liste des cat\u00e9gories sous forme d'encadr\u00e9 avec:\n\u003Cul\u003E\n\u003Cli\u003Ele titre de la cat\u00e9gorie\u003C\/li\u003E\n\u003Cli\u003Ela description de la cat\u00e9gorie contenant un texte descriptif + une image d'illustration\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\u003Cp\u003E\nIl ne reste plus qu'\u00e0 ajouter le code css dans le fichier \u003Cem\u003Estyle.css\u003C\/em\u003E du th\u00e8me afin de mettre en forme l'affichage pour avoir l'encradr\u00e9, le titre de la cat\u00e9gorie en gras et le bon positionnement des blocs avec les images.\n\u003C\/p\u003E\n\n\u00c9ditez le fichier \u003Cstrong\u003E\u003Cem\u003Estyle.css\u003C\/em\u003E\u003C\/strong\u003E de votre th\u00e8me et \u00e0 la fin du fichier ajoutez les lignes suivantes:\u003Cbr \/\u003E\u003Cbr \/\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-css\"\u003E\nul.catDesc {\n\ttext-align: center;\n}\n\nul.catDesc li div { \n\tfont-weight: bold;\n\twidth: 100%;\n}\n\nul.catDesc li {\n\tlist-style-type: none;\n\tborder: 1px solid #dedede;\n    width: 200px;\n    display: inline-block;\n    vertical-align: top;\n    *display: inline;\n    *zoom: 1;\n\tfont-size: 0.9em;\n\tmargin: 5px;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003E\nN'oubliez pas de cocher les cat\u00e9gories lors de la r\u00e9daction de votre article afin de le classer dans une ou plusieurs cat\u00e9gories. \n\u003C\/p\u003E\n\u003Cp\u003E\nNous sommes \u00e0 la fin de ce tutoriel. N'h\u00e9sitez pas \u00e0 me laisser vos remarques en commentaires ou sur le forum de \u003Ca href=\"http:\/\/www.pluxml.org\" title=\"Forum de PluXml\"\u003EPluXml\u003C\/a\u003E.\n\u003C\/p\u003E",
            "tags": "Article, Cat\u00e9gorie, Css, PluXml, Th\u00e8me",
            "meta_description": "Tutorial pour PluXml pour modifier l'affichage par d\u00e9faut de la liste des cat\u00e9gories d'un article",
            "meta_keywords": "PluXml, Tuto, Cat\u00e9gorie, Th\u00e8me",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0044",
            "author": "001",
            "categorie": "001",
            "url": "donner-du-style-a-la-liste-des-categories-des-articles",
            "date": "201409041006",
            "nb_com": 1,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0043.004.001.201406271057.page-de-plugins-sur-pluxopolis.xml",
            "title": "Page de plugins sur Pluxopolis",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "\u003Cp\u003EDepuis que Google a d\u00e9cid\u00e9 d\u00e9but 2014 de ne plus permettre de mettre \u00e0 jour la zone de t\u00e9l\u00e9chargement sur nos sites Google Code, j'ai compl\u00e8tement basculer tous les codes source de mes plugins pour \u003Ca href=\"http:\/\/www.pluxml.org\" title=\"PluXml\"\u003EPluXml\u003C\/a\u003E sur \u003Ca href=\"http:\/\/githug.com\" title=\"github\"\u003Egithub\u003C\/a\u003E. Un mal pour un bien on peut dire car github offre de nombreuses fonctionnalit\u00e9s et beaucoup plus de souplesse dans la gestion des d\u00e9p\u00f4ts git que Google Code, devenu compl\u00e8tement d\u00e9pass\u00e9 et obsol\u00e8te face \u00e0 la concurrence.\u003C\/p\u003E\n\u003Cp\u003E\nJ'en ai donc profiter pour cr\u00e9er une nouvelle page sur \u003Ca href=\"http:\/\/pluxopolis.net\" title=\"Pluxopolis\"\u003EPluxopolis\u003C\/a\u003E pour lister la totalit\u00e9 de mes plugins et vous faciliter ainsi leur t\u00e9l\u00e9chargement.\n\u003C\/p\u003E\n\u003Cp\u003E\u00c7a se passe donc ici, sur la nouvelle page des \u003Ca href=\"http:\/\/pluxopolis.net\/myplugins\" title=\"Page des plugins de Pluxopolis\"\u003EPlugins\u003C\/a\u003E.\n\u003C\/p\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0043\/plugins.jpg\" title=\"Plugins\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article43\/page-de-plugins-sur-pluxopolis\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"page-de-plugins-sur-pluxopolis\"\n\t\t\t},\n\t\t\t\"headline\": \"Page de plugins sur Pluxopolis\",\n\t\t\t\"datePublished\": \"2014-06-27T10:57:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Plugins, github, git\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Plugins, github, git",
            "meta_description": "Pr\u00e9sentation de la nouvelle page des plugins disponible sur Pluxopolis",
            "meta_keywords": "",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0043",
            "author": "001",
            "categorie": "004",
            "url": "page-de-plugins-sur-pluxopolis",
            "date": "201406271057",
            "nb_com": 4,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0042.001.001.201406041105.resoudre-le-probleme-de-reecriture-d-url-de-pluxml-sous-apache-1-3-x.xml",
            "title": "R\u00e9soudre le probl\u00e8me de r\u00e9\u00e9criture d'url de PluXml sous Apache 1.3.x",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nSi vous avez activ\u00e9 la r\u00e9\u00e9criture d'url de PluXml et que votre serveur ou h\u00e9bergeur tourne sous \u003Cstrong\u003EApache 1.3.x\u003C\/strong\u003E, vous avez certainement rencontr\u00e9 le code erreur \u003Cstrong\u003E500 Internal Serveur Erreur\u003C\/strong\u003E avec comme message:\n\u003C\/p\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0042\/internal_server_error.png\" title=\"500 Internal Server Error\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\nEn cause une r\u00e8gle d'\u00e9criture dans le fichier .htaccess non compatible avec Apache 1.3.x.\u003Cbr \/\u003E\nPour contourner ce probl\u00e8me, je vous propose une solution.\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article42\/resoudre-le-probleme-de-reecriture-d-url-de-pluxml-sous-apache-1-3-x\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"resoudre-le-probleme-de-reecriture-d-url-de-pluxml-sous-apache-1-3-x\"\n\t\t\t},\n\t\t\t\"headline\": \"R\u00e9soudre le probl\u00e8me de r\u00e9\u00e9criture d'url de PluXml sous Apache 1.3.x\",\n\t\t\t\"datePublished\": \"2014-06-04T11:05:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Url Rewrite, Apache, htaccess\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nLorsque vous activez la r\u00e9\u00e9criture d'url dans PluXml (\u003Cem\u003EAdministration\u003C\/em\u003E \u003E \u003Cem\u003EParam\u00e8tres\u003C\/em\u003E \u003E \u003Cem\u003EConfiguration avanc\u00e9e\u003C\/em\u003E, puis d\u00e9roulant \u003Cem\u003EActiver la r\u00e9\u00e9criture d'urls\u003C\/em\u003E sur \u003Cem\u003EOui\u003C\/em\u003E), un fichier .htaccess est cr\u00e9\u00e9 \u00e0 la racine de votre site avec le contenu suivant:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n# BEGIN -- Pluxml\nOptions -Multiviews\n&lt;IfModule mod_rewrite.c\u003E\nRewriteEngine on\nRewriteBase \/\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteCond %{REQUEST_FILENAME} !-l\n# R\u00e9\u00e9criture des urls\nRewriteRule ^(?!feed)(.*)$ index.php?$1 [L]\nRewriteRule ^feed\\\/(.*)$ feed.php?$1 [L]\n&lt;\/IfModule\u003E\n&lt;Files \"version\"\u003E\n\tOrder allow,deny\n\tDeny from all\n&lt;\/Files\u003E\n# END -- Pluxml\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLa ligne qui pose probl\u00e8me et qui g\u00e9n\u00e8re le code erreur 500 est: \n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nRewriteRule ^(?!feed)(.*)$ index.php?$1 [L]\n\u003C\/code\u003E\u003C\/pre\u003E\n\nPlus pr\u00e9cis\u00e9ment c'est l'utilisation des deux caract\u00e8res ?! (qu'on appelle negative lookahead ou assertion n\u00e9gative) qui n'est pas reconnue par Apache 1.3.x\n\u003C\/p\u003E\n\n\u003Cblockquote\u003E\nApache 1.3 n'utilise pas les expressions r\u00e9guli\u00e8res compatibles Perl (PCRE). Il utilise les regexes POSIX. Or les expressions r\u00e9guli\u00e8res POSIX ne supportent pas les assertions n\u00e9gatives (negative lookahead). Le support de PCRE est une fonctionnalit\u00e9 support\u00e9e qu'\u00e0 partir de Apache 2.\n\u003C\/blockquote\u003E\n\n\u003Cp\u003E\nLa solution est donc de changer cette ligne en utilisant une syntaxe n'utilisant pas de negative lookahead.\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nRemplacer la ligne:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nRewriteRule ^(?!feed)(.*)$ index.php?$1 [L]\n\u003C\/code\u003E\u003C\/pre\u003E\n\npar\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nRewriteCond $1 !^(feed)\nRewriteRule ^(.*)$ index.php?$1 [L]\n\u003C\/code\u003E\u003C\/pre\u003E\n\nVotre fichier .htaccess devrait donc maintenant ressembler \u00e0 ceci:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n# BEGIN -- Pluxml\nOptions -Multiviews\n&lt;IfModule mod_rewrite.c\u003E\nRewriteEngine on\nRewriteBase \/\nRewriteCond %{REQUEST_FILENAME} !-f\nRewriteCond %{REQUEST_FILENAME} !-d\nRewriteCond %{REQUEST_FILENAME} !-l\n# R\u00e9\u00e9criture des urls\nRewriteCond $1 !^(feed)\nRewriteRule ^(.*)$ index.php?$1 [L]\nRewriteRule ^feed\\\/(.*)$ feed.php?$1 [L]\n&lt;\/IfModule\u003E\n&lt;Files \"version\"\u003E\n\tOrder allow,deny\n\tDeny from all\n&lt;\/Files\u003E\n# END -- Pluxml\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003C\/p\u003E\n\n\u003Cp\u003E\nSi vous \u00eates sous Apache 1.3 et concern\u00e9 par cette erreur, n'h\u00e9sitez pas \u00e0 me laisser un petit message pour me confirmer la r\u00e9solution du probl\u00e8me.\n\u003C\/p\u003E\n\n\u003Cp\u003E\nPS: l'autre solution est de passer sous Apache 2.x\n\u003C\/p\u003E",
            "tags": "PluXml, Url Rewrite, Apache, htaccess",
            "meta_description": "Solution au probl\u00e8me d'erreur 500 avec la r\u00e9\u00e9criture d'urls de PluXml sous apache 1.3x",
            "meta_keywords": "PluXml, Url Rewrite, Apache, htaccess",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0042",
            "author": "001",
            "categorie": "001",
            "url": "resoudre-le-probleme-de-reecriture-d-url-de-pluxml-sous-apache-1-3-x",
            "date": "201406041105",
            "nb_com": 0,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0041.001,007.001.201405281432.inclure-un-fichier-php-stocke-dans-le-dossier-de-son-theme.xml",
            "title": "Inclure un fichier php stock\u00e9 dans le dossier de son th\u00e8me",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003E\nAvez-vous besoin pour votre th\u00e8me d'utiliser une fonction ou des bouts de code php que vous avez programm\u00e9 ?\nVous vous demander peut-\u00eatre alors comment appeler un fichier php personnel \u00e0 partir de mon th\u00e8me et quelle syntaxe utiliser.\nLa r\u00e9ponse est simple et tient en une ligne de code...\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article41\/inclure-un-fichier-php-stocke-dans-le-dossier-de-son-theme\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"inclure-un-fichier-php-stocke-dans-le-dossier-de-son-theme\"\n\t\t\t},\n\t\t\t\"headline\": \"Inclure un fichier php stock\u00e9 dans le dossier de son th\u00e8me\",\n\t\t\t\"datePublished\": \"2014-05-28T14:32:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Astuce, PluXml, Snippet, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003E\nAfin de bien structur\u00e9 le dossier de votre th\u00e8me, je vous propose de cr\u00e9er dedans un dossier appel\u00e9 par exemple \u003Cem\u003Ephp\u003C\/em\u003E, dans lequel vous enregistrerez le fichier contenant vos lignes de code php.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\n\u00c9ditez le fichier \u003Cem\u003Eheader.php\u003C\/em\u003E et apr\u00e8s la premi\u00e8re ligne, collez le code suivant:\n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php include(PLX_ROOT.$plxMotor-\u003EaConf['racine_themes'].$plxMotor-\u003Estyle.'\/php\/monfichier.php') ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003C\/p\u003E\n\n\u003Ch2\u003EQuelques explications\u003C\/h2\u003E\n\n\u003Cp\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003EPLX_ROOT\u003C\/strong\u003E fait r\u00e9f\u00e9rence \u00e0 la racine du site\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003E$plxMotor-\u003EaConf['racine_themes']\u003C\/strong\u003E fait r\u00e9f\u00e9rence au dossier \u003Cem\u003Ethemes\u003C\/em\u003E param\u00e8tr\u00e9 dans les options avanc\u00e9es de l'administration\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003E$plxMotor-\u003Estyle\u003C\/strong\u003E fait r\u00e9f\u00e9rence au nom du dossier de votre th\u00e8me\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Ephp\u003C\/strong\u003E est le nom du dossier dans lequel est stock\u00e9 le fichier avec nos lignes de code\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Emonfichier.php\u003C\/strong\u003E est le nom du fichier php contenant notre code php personnel (\u00e0 changer en fonction de votre choix)\u003C\/li\u003E\n\u003C\/ul\u003E\n\nGr\u00e2ce \u00e0 cette ligne de code, quelque soit le nom du dossier th\u00e8me, le chemin vers le fichier \u003Cem\u003Emonfichier.php\u003C\/em\u003E restera valide.\n\u003C\/p\u003E",
            "tags": "Astuce, PluXml, Snippet, Th\u00e8me",
            "meta_description": "Astuce pour ajouter un fichier php stock\u00e9 dans le dossier de son th\u00e8me PluXml",
            "meta_keywords": "PluXml, Snippet, Th\u00e8me",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0041",
            "author": "001",
            "categorie": "001,007",
            "url": "inclure-un-fichier-php-stocke-dans-le-dossier-de-son-theme",
            "date": "201405281432",
            "nb_com": 0,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0040.001,007.001.201405221317.ajouter-un-lien-dans-son-theme-vers-un-page-statique-a-partir-de-son-numero.xml",
            "title": "Ajouter un lien dans son th\u00e8me vers une page statique \u00e0 partir de son num\u00e9ro",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Voici le bout de code php pour ajouter et coder en dur dans son th\u00e8me pour \u003Cstrong\u003EPluXml\u003C\/strong\u003E, un lien vers une \u003Cstrong\u003Epage statique\u003C\/strong\u003E \u00e0 partir de son \u003Cstrong\u003Enum\u00e9ro d'identifiant\u003C\/strong\u003E. Le num\u00e9ro d\u2019une page statique est sur 3 caract\u00e8res et est par exemple de la forme 001.\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php\n$staticId = '001';\nif(isset($plxMotor-\u003EaStats[$staticId])) {\n\t$url = $plxMotor-\u003EurlRewrite('?static'.$staticId.'\/'.$plxMotor-\u003EaStats[$staticId]['url']);\n\t$title = plxUtils::strCheck($plxMotor-\u003EaStats[$staticId]['name']);\n\techo '&lt;a href=\"'.$url.'\" title=\"'.$title.'\"\u003E'.$title.'&lt;\/a\u003E';\n}\n?\u003E \n\u003C\/code\u003E\u003C\/pre\u003E\n\t\t\nModifier la valeur de la variable $staticId avec le num\u00e9ro de la page statique souhait\u00e9e (ici \u003Cem\u003E001\u003C\/em\u003E)\n\u003Cp\u003E\nPour rappel le num\u00e9ro d'une page statique est \u00e0 r\u00e9cup\u00e9rer \u00e0 partir de l'administration dans la gestion des pages statiques, colonne \u003Cem\u003EIdentifiant\u003C\/em\u003E\n\u003C\/p\u003E\n\u003Cp\u003E\nVous pouvez faire un copier-coller de ce code et l'ajouter dans votre th\u00e8me, par exemple dans le fichier sidebar.php\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article40\/ajouter-un-lien-dans-son-theme-vers-un-page-statique-a-partir-de-son-numero\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"ajouter-un-lien-dans-son-theme-vers-un-page-statique-a-partir-de-son-numero\"\n\t\t\t},\n\t\t\t\"headline\": \"Ajouter un lien dans son th\u00e8me vers une page statique \u00e0 partir de son num\u00e9ro\",\n\t\t\t\"datePublished\": \"2014-05-22T13:17:00Z\",\n\t\t\t\"dateModified\": \"2014-05-22T13:17:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Astuce, Page statique, Menu, PluXml, Sidebar, Th\u00e8me, Snippet\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Astuce, Page statique, Menu, PluXml, Sidebar, Th\u00e8me, Snippet",
            "meta_description": "Snippets pour PluXml pour ajouter en dur un lien vers une page statique \u00e0 partir de sin num\u00e9ro",
            "meta_keywords": "PluXml, Page statique, Th\u00e8me, Lien",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0040",
            "author": "001",
            "categorie": "001,007",
            "url": "ajouter-un-lien-dans-son-theme-vers-un-page-statique-a-partir-de-son-numero",
            "date": "201405221317",
            "nb_com": 6,
            "date_creation": "201405221317",
            "date_update": "201405221317"
        },
        {
            "filename": ".\/data\/articles\/0039.001.001.201404281456.mettre-en-avant-les-commentaires-rediges-a-partir-de-l-administration.xml",
            "title": "Mettre en avant les commentaires r\u00e9dig\u00e9s \u00e0 partir de l'administration",
            "allow_com": "0",
            "template": "article.php",
            "chapo": "Les commentaires r\u00e9dig\u00e9s par un visiteur ou \u00e0 partir de la zone d'administration du site peuvent \u00eatre diff\u00e9renci\u00e9s en utilisant la fonction \u003Cem\u003EcomType()\u003C\/em\u003E de la classe \u003Cem\u003EplxShow\u003C\/em\u003E.\u003Cbr \/\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EcomType(); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nNous allons voir comment utiliser cette fonction pour changer le comportement visuel des commentaires et ainsi mettre en avant ceux r\u00e9dig\u00e9s par exemple par l'administreur du site.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article39\/mettre-en-avant-les-commentaires-rediges-a-partir-de-l-administration\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"mettre-en-avant-les-commentaires-rediges-a-partir-de-l-administration\"\n\t\t\t},\n\t\t\t\"headline\": \"Mettre en avant les commentaires r\u00e9dig\u00e9s \u00e0 partir de l'administration\",\n\t\t\t\"datePublished\": \"2014-04-28T14:56:00Z\",\n\t\t\t\"dateModified\": \"2023-04-05T18:18:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Article, Commentaires, Th\u00e8me, Css\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "La fonction \u003Cem\u003EcomType()\u003C\/em\u003E renvoie une des deux valeurs suivantes:\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003Eadmin\u003C\/strong\u003E : si le commentaire est r\u00e9dig\u00e9 \u00e0 partir de l'administration (en r\u00e9ponse \u00e0 un commentaire par exemple)\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Enormal\u003C\/strong\u003E : si le commentaire est r\u00e9dig\u00e9 par un visiteur \u00e0 partir du formulaire des commentaires d'un article\u003C\/li\u003E\n\u003C\/ul\u003E\n\nIl est donc possible de caract\u00e9riser l'affichage d'un paragraphe (ou de toute autre balise html) \u00e0 partir d'une classe css de cette fa\u00e7on:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;p class=\"type-\u003C?php $plxShow-\u003EcomType(); ?\u003E\"\u003E\n\t&lt;?php $plxShow-\u003EcomContent(); ?\u003E\n&lt;\/p\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLe code html g\u00e9n\u00e9r\u00e9 pour un commentaire \u00e9crit par un visiteur sera :\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;p class=\"type-normal\"\u003E\n\tContenu du commentaire\n&lt;\/p\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLe code html g\u00e9n\u00e9r\u00e9 pour un commentaire \u00e9crit par un administrateur sera :\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;p class=\"type-admin\"\u003E\n\tContenu du commentaire\n&lt;\/p\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nIl ne reste plus qu'\u00e0 d\u00e9finir le comportement de la classe \u003Cstrong\u003E.type-normal\u003C\/strong\u003E ou \u003Cstrong\u003E.type-admin\u003C\/strong\u003E dans la feuille de style du th\u00e8me (g\u00e9n\u00e9ralement le fichier style.css)\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n.type-normal {\n\tbackground-color: white;\n\tcolor: black;\n}\n.type-admin {\n\tbackground-color: black;\n\tcolor: white\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\nToutes les r\u00e8gles css sont conserv\u00e9es. \nPour d\u00e9finir le comportement visuel des liens dans un commentaire de type \u003Cem\u003Eadmin\u003C\/em\u003E, on pourra \u00e9crire:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n.type-admin a {\n\ttext-decoration: underline;\n\tcolor: red;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\nPour rappel, l'affichage des commentaires se fait dans le fichier \u003Cem\u003Ecommentaires.php\u003C\/em\u003E stock\u00e9 dans le dossier du theme par d\u00e9faut \/themes\/defaut\/",
            "tags": "Article, Commentaires, Th\u00e8me, Css",
            "meta_description": "Tutorial pour PluXml pour modifier l'affichage des commentaires r\u00e9dig\u00e9s \u00e0 partir de la zone d'administration",
            "meta_keywords": "PluXml, Article, Commentaires, Th\u00e8me, Css",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0039",
            "author": "001",
            "categorie": "001",
            "url": "mettre-en-avant-les-commentaires-rediges-a-partir-de-l-administration",
            "date": "201404281456",
            "nb_com": 4,
            "date_creation": "201404281456",
            "date_update": "202304051818"
        },
        {
            "filename": ".\/data\/articles\/0038.001.001.201404231609.comment-afficher-la-date-d-un-article-au-format-j-mois-aaaa.xml",
            "title": "Comment afficher la date d'un article au format J mois AAAA",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "La fonction \u003Cem\u003EartDate()\u003C\/em\u003E de la classe plxShow permet d'afficher la date de publication d'un article.\n\nExemple:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n$plxShow-\u003EartDate('#num_day #month #num_year(4)');\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLa variable \u003Cstrong\u003E#num_day\u003C\/strong\u003E permet d'afficher le jour de publication au format JJ. Il n'est pas possible de masquer le 0 significatif \u00e0 gauche lorsque le jour de publication est inf\u00e9rieur \u00e0 10.\u003Cbr \/\u003EImpossible donc d'avoir 6 avril 2014 au lieu de 06 avril 2014.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nVoici donc une astuce \u00e0 base de css pour contourner ce probl\u00e8me.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article38\/comment-afficher-la-date-d-un-article-au-format-j-mois-aaaa\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"comment-afficher-la-date-d-un-article-au-format-j-mois-aaaa\"\n\t\t\t},\n\t\t\t\"headline\": \"Comment afficher la date d'un article au format J mois AAAA\",\n\t\t\t\"datePublished\": \"2014-04-23T16:09:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Astuce, Css, Dates, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "Tout d'abord commen\u00e7ons par revoir le code permettant d'afficher la date de publication des articles. \u003Cbr \/\u003E\nUtilisez cette syntaxe:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;time datetime=\"&lt;?php $plxShow-\u003EartDate('#num_year(4)-#num_month-#num_day'); ?\u003E\"\u003E\n\t&lt;?php $plxShow-\u003EartDate('\u003Cspan data-content=\"#num_day#num_month#num_year(4)\"\u003E#num_day #month #num_year(4)\u003C\/span\u003E'); ?\u003E\n&lt;\/time\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nL'astuce ici est d'entourer la date affich\u00e9e par une balise &lt;span\u003E, pour laquelle on y ajoute un attribut \u003Cstrong\u003Edata-content\u003C\/strong\u003E.\u003Cbr \/\u003E\nL'attribut data-content est renseign\u00e9 avec la date de publication de l'article au format JJMMAAAA.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nL'id\u00e9e maintenant est, gr\u00e2ce au css, d'aller tester le contenu de data-content.\u003Cbr \/\u003E\nSi le premier caract\u00e8re est un z\u00e9ro, on va masquer le premier caract\u00e8re de la balise &lt;span\u003E.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPour cela, \u00e9ditez le fichier css de votre th\u00e8me et rajoutez les lignes suivantes:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\ntime span[data-content^=\"0\"]:first-letter  {\n\tcolor: transparent;\n\tfont-size: 0;\n}\ntime span { \n\tdisplay: inline-block; \n}\n\u003C\/code\u003E\u003C\/pre\u003E\n \nVoil\u00e0, maintenant les 0 ne seront plus affich\u00e9s. Rien de plus \u00e0 utiliser.\n\n\u003Ch2\u003EExplications\u003C\/h2\u003E\n\nJ'ai utilis\u00e9 ici 2 notions css: le selecteur d'attribut de la forme\u003Cstrong\u003E E[foo~=\"bar\"]\u003C\/strong\u003E et \u003Cstrong\u003E:first-letter\u003C\/strong\u003E \n\u003Cbr \/\u003E\u003Cbr \/\u003E \nE[foo^=\"bar\"] signifie tout \u00e9l\u00e9ment E dont la valeur de l'attribut \"foo\" commence exactement par la cha\u00eene \"bar\".\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nDans notre cas:\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nspan[data-content^=\"0\"] signifie tout \u00e9l\u00e9ment de la balise span dont la valeur de l'attribut \"data-content\" commence par \"0\" (0 est la valeur significative du jour de publication de l'article que l'on souhaite ne pas afficher)\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n:first-letter permet d'acc\u00e8der \u00e0 la premi\u00e8re lettre format\u00e9e d'un \u00e9l\u00e9ment, ici la date affich\u00e9e entre &lt;span\u003E et &lt;\/span\u003E.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPour masquer le 0 il ne reste plus qu'\u00e0 changer la couleur et r\u00e9duire la taille du caract\u00e8re pour qu'il ne soit plus visible.\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\tcolor: transparent;\n\tfont-size: 0;\n\u003C\/code\u003E\u003C\/pre\u003E\n\nNB: :first-letter ne peut \u00eatre utiliser qu'avec un conteneur de type block. En d'autres termes :first-letter ne fonctionne pas avec une balise span qui est de type inline. C'est pour cela qu'il est n\u00e9cessaire d'utiliser les lignes suivantes \n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\ntime span { \n\tdisplay: inline-block; \n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\nPour plus d'information sur les balises css utilis\u00e9es, voil\u00e0 de la lecture sur les \u003Ca href=\"http:\/\/www.w3.org\/Style\/css3-selectors-updates\/WD-css3-selectors-20010126.fr.html#selectors\" title=\"S\u00e9lecteurs d'attribut\"\u003Es\u00e9lecteurs d'attribut\u003C\/a\u003E.",
            "tags": "Astuce, Css, Dates, Th\u00e8me",
            "meta_description": "Astuce pour PluXml pour afficher la date de publication des articles",
            "meta_keywords": "PluXml, Astuce, Css, Dates, Th\u00e8me",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0038",
            "author": "001",
            "categorie": "001",
            "url": "comment-afficher-la-date-d-un-article-au-format-j-mois-aaaa",
            "date": "201404231609",
            "nb_com": 2,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0037.001.001.201403190932.afficher-la-liste-des-pages-statiques-dans-la-sidebar.xml",
            "title": "Afficher la liste des pages statiques dans la sidebar",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Dans la plupart des th\u00e8mes disponibles pour PluXml, la liste des pages statiques est affich\u00e9e horizontalement dans la partie header du site. C'est le cas pour le th\u00e8me par d\u00e9faut de PluXml.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0037\/img01.jpg\" title=\"Header, Liste des pages statiques\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\nIl est tout a fait possible d'afficher cette liste dans la sibebar de fa\u00e7on verticale, en donnant une hi\u00e9rarchie \u00e0 deux niveaux si l'on utilise les groupes de pages statiques.\n\u003Cbr \/\u003E\nNous allons donc voir comment obtenir la m\u00eame pr\u00e9sentation que ci-dessous.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0037\/img02.jpg\" title=\"Sidebar, Liste des pages statiques\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article37\/afficher-la-liste-des-pages-statiques-dans-la-sidebar\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"afficher-la-liste-des-pages-statiques-dans-la-sidebar\"\n\t\t\t},\n\t\t\t\"headline\": \"Afficher la liste des pages statiques dans la sidebar\",\n\t\t\t\"datePublished\": \"2014-03-19T09:32:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Page statique, Menu, PluXml, Sidebar, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "Le th\u00e8me utilis\u00e9 est celui de PluXml 5.3.1\u003Cbr \/\u003E\nLes fichiers \u00e0 modifier sont stock\u00e9s dans le dossier \u003Cem\u003Ethemes\/defaut\/\u003C\/em\u003E de votre PluXml.\n\n\u003Ch2\u003ECr\u00e9ation des pages statiques\u003C\/h2\u003E\n\nJe vais reprendre la m\u00eame liste de pages statiques, comme expliqu\u00e9 dans mon article \u003Ca href=\"http:\/\/pluxopolis.net\/article32\/pluxml-realiser-des-menus-deroulants-a-partir-des-menus-des-pages-statiques\" title=\"R\u00e9aliser des menus d\u00e9roulants \u00e0 partir des menus des pages statiques\"\u003ER\u00e9aliser des menus d\u00e9roulants \u00e0 partir des menus des pages statiques\u003C\/a\u003E\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nNous allons donc r\u00e9utilis\u00e9 la liste de pages suivantes:\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nMenu Animaux:\u003Cbr \/\u003E\n\u003Cul\u003E\n\t\u003Cli\u003ELion\u003C\/li\u003E\n\t\u003Cli\u003ETigre\u003C\/li\u003E\n\t\u003Cli\u003EL\u00e9opard\u003C\/li\u003E\n\u003C\/ul\u003E\nMenu Plan\u00e8tes:\u003Cbr \/\u003E\n\u003Cul\u003E\n\t\u003Cli\u003EMercure\u003C\/li\u003E\n\t\u003Cli\u003EV\u00e9nus\u003C\/li\u003E\n\t\u003Cli\u003ETerre\u003C\/li\u003E\n\t\u003Cli\u003EMars\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\n\u003Ca href=\"data\/images\/0037\/pluxml.pages_statiques_et_menus_deroulants_config.jpg\"\u003E\n\u003Cimg src=\"data\/images\/0037\/pluxml.pages_statiques_et_menus_deroulants_config_th.jpg\" title=\"Cr\u00e9ation des pages statiques\" alt=\"\" \/\u003E\n\u003C\/a\u003E\n\u003C\/p\u003E\n\n\u003Ch2\u003EModification du th\u00e8me\u003C\/h2\u003E\n\nLa premi\u00e8re chose \u00e0 faire et d'\u00e9diter le fichier \u003Cem\u003Esidebar.php\u003C\/em\u003E dans le dossier de son th\u00e8me et en dessous de la ligne:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;aside role=\"complementary\"\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\najoutez le code suivant:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;nav role=\"navigation\"\u003E\n&lt;h3\u003EMenus&lt;\/h3\u003E\n&lt;ul id=\"static-nav\"\u003E\n\t&lt;?php $plxShow-\u003EstaticList($plxShow-\u003EgetLang('HOME'),'&lt;li id=\"#static_id\"\u003E&lt;a href=\"#static_url\" class=\"#static_status\" title=\"#static_name\"\u003E#static_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n\t&lt;?php $plxShow-\u003EpageBlog('&lt;li id=\"#page_id\"\u003E&lt;a class=\"#page_status\" href=\"#page_url\" title=\"#page_name\"\u003E#page_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n&lt;\/ul\u003E\n&lt;\/nav\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nAu passage vous pouvez supprimer ce m\u00eame code du fichier header.php. Nous n'en avons plus besoin \u00e0 cet endroit.\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nPour le moment notre liste ne ressemble \u00e0 pas grand chose, tout simplement car il faut supprimer du fichier \u003Cem\u003Estyle.css\u003C\/em\u003E (stock\u00e9 dans le dossier css du th\u00e8me), l'ancien code css utilis\u00e9 pour mettre en forme la liste des pages statiques.\n\n&Eacute;ditez le fichier \u003Cem\u003Ethemes\/defaut\/css\/style.css\u003C\/em\u003E et supprimez toutes les lignes entre\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\/* ---------- NAV ---------- *\/\n\u003C\/code\u003E\u003C\/pre\u003E\net \n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\/* ---------- HEADER ---------- *\/\n\u003C\/code\u003E\u003C\/pre\u003E\n\nNotre liste maitentant est un peu plus pr\u00e9sentable:\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0037\/img03.jpg\" title=\"Sidebar, Mise en forme de la liste des pages statiques\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\nNous pouvons n\u00e9anmoins y faire quelques am\u00e9liorations.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nEn dessous de la ligne\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\/* ---------- NAV ---------- *\/\n\u003C\/code\u003E\u003C\/pre\u003E\n\najoutez le code suivante:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\naside nav ul  {\n\tmargin-bottom: 0;\n}\naside nav {\n\tmargin-bottom: 50px;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\nEt voil\u00e0 le r\u00e9sultat final, qui s'int\u00e9gre pleinement avec le reste de la sidebar\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Cimg src=\"data\/images\/0037\/img04.jpg\" title=\"Sidebar, Mise en forme finale de la liste des pages statiques\" alt=\"\" \/\u003E\n\u003C\/p\u003E\n\nPetite remarque: si vous ne voulez pas afficher un groupe de pages statiques ou simplement masquer le menu d'une seule page, s\u00e9lectionnez la valeur \u003Cem\u003EMasquer\u003C\/em\u003E dans la colonne \u003Cem\u003EMenu\u003C\/em\u003E des pages concern\u00e9es.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\n\u003Ca href=\"data\/images\/0037\/img05.jpg\"\u003E\n\u003Cimg src=\"data\/images\/0037\/img05_th.jpg\" title=\"Masquer un groupe de pages statiques\" alt=\"\" \/\u003E\n\u003C\/a\u003E\n\u003C\/p\u003E",
            "tags": "Page statique, Menu, PluXml, Sidebar, Th\u00e8me",
            "meta_description": "Tutorial pour PluXml pour afficher la liste des pages statiques dans la sidebar",
            "meta_keywords": "PluXml, Th\u00e8me, Page Statique, Menus",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0037",
            "author": "001",
            "categorie": "001",
            "url": "afficher-la-liste-des-pages-statiques-dans-la-sidebar",
            "date": "201403190932",
            "nb_com": 1,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0036.001.001.201402061159.afficher-votre-profil-a-la-fin-des-articles.xml",
            "title": "Afficher votre profil \u00e0 la fin des articles",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Je vous propose d'afficher dans un encart \u00e0 la fin des articles votre profil avec une photo et quelques lignes pour vous pr\u00e9senter. \nSi vous \u00eates plusieurs r\u00e9dacteurs vous avez peut-\u00eatre envie de mettre en valeur les personnes qui contribuent au contenu sur votre site.\nVoyons donc comment mettre tout \u00e7a en place et obtenir quelque chose qui ressemblera \u00e0 cet affichage:\n\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0036\/profile.jpg\" title=\"PluXml: Afficher votre profil \u00e0 la fin des articles\" alt=\"\" \/\u003E\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article36\/afficher-votre-profil-a-la-fin-des-articles\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"afficher-votre-profil-a-la-fin-des-articles\"\n\t\t\t},\n\t\t\t\"headline\": \"Afficher votre profil \u00e0 la fin des articles\",\n\t\t\t\"datePublished\": \"2014-02-06T11:59:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Th\u00e8me, Profil\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch2\u003ERenseigner ses informations de profil\u003C\/h2\u003E\n\nAvant toute chose il faut renseigner son profil utilisateur dans l'administration de PluXml.\u003Cbr \/\u003EAller dans le menu \u003Cem\u003EProfil\u003C\/em\u003E et renseignez vos informations dans le champ \u003Cem\u003EInformations\u003C\/em\u003E. Si vous n'utilisez pas d'\u00e9diteurs de texte, le texte \u00e0 saisir est au format html, vous autorisant ainsi la mise en forme \u00e0 partir du code html.\u003Cbr \/\u003E\nJ'ai choisi d'afficher:\n\u003Cul\u003E\n\u003Cli\u003Eune photo\u003C\/li\u003E\n\u003Cli\u003Emon pr\u00e9nom en gras dans une police de caract\u00e8re un peu plus grande\u003C\/li\u003E\n\u003Cli\u003Eun texte pour me d\u00e9crire\u003C\/li\u003E\n\u003C\/ul\u003E\n\nEn html cela donne ceci: vous pouvez vous en servir comme mod\u00e8le\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;div class=\"author-infos\"\u003E\n\t&lt;div style=\"float:left\"\u003E&lt;img src=\"data\/images\/profile.jpg\" title=\"St\u00e9phane\" alt=\"\" \/\u003E&lt;\/a\u003E&lt;\/div\u003E\n\t&lt;span\u003ESt\u00e9phane&lt;\/span\u003E&lt;br \/\u003E\n\tPluXml - Responsable Projet et D\u00e9veloppement&lt;br \/\u003E\n\tWebmasteur et r\u00e9dacteur du site &lt;a href=\"http:\/\/pluxopolis.net\" title=\"Pluxopolis\"\u003EPluxopolis&lt;\/a\u003E d\u00e9di\u00e9 \u00e0 PluXml&lt;br \/\u003E\n\tVous pouvez me suivre sur Twitter: &lt;a href=\"https:\/\/twitter.com\/pluxopolis\" title=\"@pluxopolis\"\u003E@pluxopolis&lt;\/a\u003E\n&lt;\/div\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nNotez que le fichier de la photo \u003Cem\u003Eprofile.jpg\u003C\/em\u003E est stock\u00e9e dans le dossier \u003Cem\u003Edata\/images\/\u003C\/em\u003E.\u003Cbr \/\u003E Sa taille est de 75x75 pixels.\n\n\u003Ch2\u003EAjouter l'affichage du profil dans son th\u00e8me\u003C\/h2\u003E\n\nMaintenant que nos informations de profil sont renseign\u00e9es, pour les afficher \u00e0 la fin des articles, \u00e9ditez le fichier \u003Cem\u003Earticle.php\u003C\/em\u003E stock\u00e9 dans le dossier de votre th\u00e8me.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nAvant la ligne:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php include(dirname(__FILE__).'\/commentaires.php'); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nAjoutez la ligne suivante:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EartAuthorInfos('#art_authorinfos'); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Ch2\u003EMettre en forme l'affichage\u003C\/h2\u003E\n\nPour mettre en forme l'affichage, nous allons utiliser les propri\u00e9t\u00e9s css des balises html utilis\u00e9es dans le contenu des informations du profil.\u003Cbr \/\u003E\n&Eacute;ditez le fichier css de votre th\u00e8me (g\u00e9n\u00e9ralement le fichier s'appelle \u003Cem\u003Estyle.css\u003C\/em\u003E) et ajoutez \u00e0 la fin du fichier les lignes suivantes:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n.author-infos {\n\tpadding: 10px;\n\tfont-size: 12px;\n\tbackground-color: #f9f9f9;\n\tborder: 2px solid #ccc;\n}\n.author-infos img {\n\tborder: 1px solid #dedede;\n\tpadding: 3px;\n\tmargin-right: 10px;\n}\n\n.author-infos span {\n\tfont-size: 16px;\n\tfont-weight: bold;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\nA vous maintenant de personnaliser l'affichage en fonction de vos pr\u00e9f\u00e9rences.",
            "tags": "PluXml, Th\u00e8me, Profil",
            "meta_description": "Tutorial pour PluXml pour afficher les informations de son profil \u00e0 la fin des articles",
            "meta_keywords": "PluXml, Th\u00e8me, Profil",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0036",
            "author": "001",
            "categorie": "001",
            "url": "afficher-votre-profil-a-la-fin-des-articles",
            "date": "201402061159",
            "nb_com": 5,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0035.001.001.201401281117.recommander-des-articles.xml",
            "title": "Recommander des articles",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "PluXml ne dispose pas de fonction permettant de recommander la lecture d'articles en fonction d'un article particulier.\nJe vous propose de mettre en place sur la page de lecture d'un article, une liste al\u00e9atoire d'articles publi\u00e9s dans les m\u00eames cat\u00e9gories que l'article en cours de visualisation (mode article).\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article35\/recommander-des-articles\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"recommander-des-articles\"\n\t\t\t},\n\t\t\t\"headline\": \"Recommander des articles\",\n\t\t\t\"datePublished\": \"2014-01-28T11:17:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Article, PluXml, Programmation, Tuto, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch2\u003EMise en place\u003C\/h2\u003E\n\nLe code que nous allons utiliser pour afficher la liste des articles \u00e0 recommander est pr\u00e9vu pour fonctionner uniquement \u00e0 partir de la page \u003Cem\u003Earticle.php\u003C\/em\u003E du th\u00e8me.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n&Eacute;diter le fichier \u003Cem\u003Earticle.php\u003C\/em\u003E stock\u00e9 dans le dossier de votre th\u00e8me. Pour la d\u00e9monstration j'utiliserai le th\u00e8me par d\u00e9faut de PluXml stock\u00e9 dans le dossier \/themes\/defaut\/\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nAvant la ligne:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php include(dirname(__FILE__).'\/commentaires.php'); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nAjoutez les lignes suivantes:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php\n# param\u00e9trage\n$nb_arts = 7; \n$format='&lt;li\u003E#art_date : &lt;a href=\"#art_url\" title=\"#art_title\"\u003E#art_title&lt;\/a\u003E&lt;\/li\u003E';\n# recherche des cat\u00e9gories actives de l'article en cours de lecture\n$cat_ids = $plxShow-\u003EartActiveCatIds();\n$cat_ids = ($cat_ids ? implode('|', $cat_ids) : '');\n# recherche de tous les articles publi\u00e9s dans les cat\u00e9gories actives de l'article en cours de lecture\n$plxGlob_arts = clone $plxMotor-\u003EplxGlob_arts;\n$motif = '\/^[0-9]{4}.((?:[0-9]|home|,)*(?:'.str_pad($cat_ids,3,'0',STR_PAD_LEFT).')(?:[0-9]|home|,)*).[0-9]{3}.[0-9]{12}.[a-z0-9-]+.xml$\/';\n$aFiles = $plxGlob_arts-\u003Equery($motif,'art','rsort',0,9999,'before');\nif($aFiles and sizeof($aFiles)\u003E1) {\n\t$arts = array();\n\t# recherche al\u00e9atoire des articles \u00e0 recommander\n\t$random = array_rand($aFiles, ($nb_arts \u003E sizeof($aFiles) ? sizeof($aFiles) : $nb_arts) );\n\tforeach($random as $numart) {\n\t\t# on ne liste pas l'article en cours de lecture \n\t\tif($aFiles[$numart] &lt;\u003E basename($plxMotor-\u003EplxRecord_arts-\u003Ef('filename'))) {\n\t\t\t$art = $plxMotor-\u003EparseArticle(PLX_ROOT.$plxMotor-\u003EaConf['racine_articles'].$aFiles[$numart]);\n\t\t\t$row = str_replace('#art_url',$plxMotor-\u003EurlRewrite('?article'.intval($art['numero']).'\/'.$art['url']),$format);\t\n\t\t\t$row = str_replace('#art_title',plxUtils::strCheck($art['title']),$row);\t\n\t\t\t$row = str_replace('#art_date',plxDate::formatDate($art['date'],'#num_day\/#num_month\/#num_year(4)'),$row);\t\n\t\t\t$author = plxUtils::getValue($plxMotor-\u003EaUsers[$art['author']]['name']);\n\t\t\t$row = str_replace('#art_author',plxUtils::strCheck($author),$row);\n\t\t\t$arts[] = $row;\t\t\n\t\t}\n\t}\n\t# affichage des r\u00e9sultats\n\tif($arts) {\n\t\techo '&lt;h2\u003E&Agrave; lire \u00e9galement&lt;\/h2\u003E';\n\t\techo '&lt;ul\u003E'.implode('', $arts).'&lt;\/ul\u003E';\n\t}\n}\n?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Ch2\u003EExplications et param\u00e9trage\u003C\/h2\u003E\n\nLe nombre d'articles affich\u00e9s est param\u00e9trable gr\u00e2ce \u00e0 la ligne suivante \n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php \n# param\u00e9trage\n$nb_arts = 7; \n\u003C\/code\u003E\u003C\/pre\u003E\n\nDans cet exemple, 7 articles sont choisis al\u00e9atoirement parmi les articles publi\u00e9s dans les cat\u00e9gories de l'article en cours de visualisation. Si l'article en cours de visualisation appartient \u00e0 la liste al\u00e9atoire, il ne sera pas pris en compte et retir\u00e9 de l'affichage. Ne vous \u00e9tonnez pas donc si vous ne voyez que 6 articles list\u00e9s au lieu de 7. \n\u003Cbr \/\u003E\u003Cbr \/\u003E\nL'affichage des articles se fait sous forme de liste html gr\u00e2ce aux lignes suivantes:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n$format='&lt;li\u003E#art_date : &lt;a href=\"#art_url\" title=\"#art_title\"\u003E#art_title&lt;\/a\u003E&lt;\/li\u003E';\n\u003C\/code\u003E\u003C\/pre\u003E\n\net\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\necho '&lt;ul\u003E'.implode('', $arts).'&lt;\/ul\u003E';\n\u003C\/code\u003E\u003C\/pre\u003E\n\nDans le format d'affichage vous disposez des variables suivantes:\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003E#art_date\u003C\/strong\u003E: date de publication de l'article\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003E#art_url\u003C\/strong\u003E: url de l'article tenant compte de la r\u00e9\u00e9criture d'url\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003E#art_title\u003C\/strong\u003E: titre de l'article\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003E#art_author\u003C\/strong\u003E: auteur de l'article\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\nSi vous souhaitez changer le titre \u003Cem\u003E&Agrave; lire \u00e9galement\u003C\/em\u003E, localiser la ligne suivante et faite la modification que vous souhaitez:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\necho '&lt;h2\u003E&Agrave; lire \u00e9galement&lt;\/h2\u003E';\n\u003C\/code\u003E\u003C\/pre\u003E\n\nVoici donc un bon point de d\u00e9part pour mettre en place facilement une liste d'articles \u00e0 recommander. Les plus t\u00e9m\u00e9raires verront certainement un avantage a en faire un plugin. N'h\u00e9sitez pas \u00e0 venir partager vos r\u00e9alisations sur le forum de \u003Ca href=\"http:\/\/forum.pluxml.org\/\" title=\"Forum de PluXml\"\u003EPluXml\u003C\/a\u003E\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nVous pouvez voir le r\u00e9sultat plus bas sur cette page sous la ligne: &Agrave; lire \u00e9galement",
            "tags": "Article, PluXml, Programmation, Tuto, Th\u00e8me",
            "meta_description": "Tutorial pour PluXml pour mettre en place une liste d'articles \u00e0 recommander",
            "meta_keywords": "Article, PluXml, Programmation, Tuto, Th\u00e8me",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0035",
            "author": "001",
            "categorie": "001",
            "url": "recommander-des-articles",
            "date": "201401281117",
            "nb_com": 8,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0034.001.001.201401210952.formater-l-affichage-des-dates.xml",
            "title": "Formater l'affichage des dates",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "La date de publication d'un article est affich\u00e9e en utilisant la fonction \u003Cem\u003EartDate()\u003C\/em\u003E\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nExemple pour le fichier home.php ou article.php du th\u00e8me par d\u00e9faut\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EartDate('#num_day #month #num_year(4)'); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLa date de publication d'un commentaire d'un article est affich\u00e9e en utilisant la fonction \u003Cem\u003EcomDate()\u003C\/em\u003E\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nExemple pour le fichier commentaires.php du th\u00e8me par d\u00e9faut\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EcomDate('#day #num_day #month #num_year(4) &#64; #hour:#minute'); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cbr \/\u003E\nLe formatage de la date est obtenu gr\u00e2ce \u00e0 des variables commen\u00e7ant par le caract\u00e8re #\u003Cbr \/\u003E\u003Cbr \/\u003E\nD\u00e9taillons la liste des variables disponibles...\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article34\/formater-l-affichage-des-dates\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"formater-l-affichage-des-dates\"\n\t\t\t},\n\t\t\t\"headline\": \"Formater l'affichage des dates\",\n\t\t\t\"datePublished\": \"2014-01-21T09:52:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Th\u00e8me, Dates\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch2\u003EAffichage de l'ann\u00e9e\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E#num_year(2): ann\u00e9e sur 2 caract\u00e8res (exemple: 14)\u003C\/li\u003E\n\u003Cli\u003E#num_year(4): ann\u00e9e sur 4 caract\u00e8res (exemple: 2014)\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\u003Ch2\u003EAffichage du mois\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E#num_month: num\u00e9ro du mois sur 2 caract\u00e8res\u003C\/li\u003E\n\u003Cli\u003E#month: nom long du mois (exemple: janvier)\u003C\/li\u003E\n\u003Cli\u003E#short_month: nom court du mois (exemple: jan)\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\u003Ch2\u003EAffichage du jour\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E#num_day: num\u00e9ro du jour sur 2 caract\u00e8res\u003C\/li\u003E\n\u003Cli\u003E#day: nom long du jour (exemple: lundi)\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\u003Ch2\u003EAffichage de l'heure\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E#hour: heure sur 2 caract\u00e8res\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\u003Ch2\u003EAffichage des minutes\u003C\/h2\u003E\n\u003Cul\u003E\n\u003Cli\u003E#minute: minutes sur 2 caract\u00e8res\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\u003Ch2\u003EFormatage compl\u00e9mentaire\u003C\/h2\u003E\n\nIl est \u00e9galement possible de rajouter des balises html pour formater l'affichage \u00e0 partir de classes css qui seront d\u00e9finies dans la feuille de style du th\u00e8me (fichier style.css)\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nExemple :\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EartDate('&lt;span class=\"j\"\u003E#num_day&lt;\/span\u003E&lt;span class=\"m\"\u003E#short_month&lt;\/span\u003E&lt;span class=\"a\"\u003E#num_year(4)&lt;\/span\u003E') ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E",
            "tags": "PluXml, Th\u00e8me, Dates",
            "meta_description": "Tutorial pour PluXml pour personnaliser l'affichage des dates de publication des articles et des commentaires",
            "meta_keywords": "PluXml, Th\u00e8me, Dates",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0034",
            "author": "001",
            "categorie": "001",
            "url": "formater-l-affichage-des-dates",
            "date": "201401210952",
            "nb_com": 0,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0033.001.001.201401161457.afficher-la-liste-de-tous-les-tags-dans-une-page-statique.xml",
            "title": "Afficher la liste de tous les tags dans une page statique",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Pour afficher la liste de tous les tags dans une page statique, copiez le code suivant dans le contenu d'une page statique:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;ul\u003E\n&lt;?php \n$plxShow = plxShow::getInstance(); \n$plxShow-\u003EtagList('&lt;li class=\"tag #tag_size\"\u003E&lt;a class=\"#tag_status\" href=\"#tag_url\" title=\"#tag_name\"\u003E#tag_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n&lt;\/ul\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLa fonction \u003Cem\u003EtagList()\u003C\/em\u003E permet d'afficher la liste des tags associ\u00e9s aux articles. Ici seul le premier param\u00e8tre de la fonction est utilis\u00e9 pour formater l'affichage de la liste html. Pour limiter le nombre de tags \u00e0 afficher, utilisez le deuxi\u00e8me param\u00e8tre de la fonction \u003Cem\u003EtagList()\u003C\/em\u003E en sp\u00e9cifiant le nombre de tags \u00e0 afficher.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nExemple extrait du fichier sidebar.php du th\u00e8me par d\u00e9faut de PluXml\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;ul\u003E\n\t&lt;?php $plxShow-\u003EtagList('&lt;li class=\"tag #tag_size\"\u003E&lt;a class=\"#tag_status\" href=\"#tag_url\" title=\"#tag_name\"\u003E#tag_name&lt;\/a\u003E&lt;\/li\u003E', 20); ?\u003E\n&lt;\/ul\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nIci seuls les vingt premiers tags sont affich\u00e9s.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPour d'autres articles sur la gestion des tags, je vous renvoie \u00e0 ces pr\u00e9c\u00e9dents articles:\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\"http:\/\/pluxopolis.net\/article7\/pluxml-rajouter-des-couleurs-dans-son-nuage-de-tags\" title=\"Rajouter des couleurs dans son nuage de tags\"\u003ERajouter des couleurs dans son nuage de tags\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\"http:\/\/pluxopolis.net\/article30\/pluxml-comment-trier-le-nuage-de-tags\" title=\"Comment trier le nuage de tags\"\u003EComment trier le nuage de tags\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article33\/afficher-la-liste-de-tous-les-tags-dans-une-page-statique\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"afficher-la-liste-de-tous-les-tags-dans-une-page-statique\"\n\t\t\t},\n\t\t\t\"headline\": \"Afficher la liste de tous les tags dans une page statique\",\n\t\t\t\"datePublished\": \"2014-01-16T14:57:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Astuce, Tags, PluXml, Page statique\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Astuce, Tags, PluXml, Page statique",
            "meta_description": "Tutorial pour PluXml pour lister tous les tags dans une page statique",
            "meta_keywords": "Astuce, Tags, PluXml, Page statique",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0033",
            "author": "001",
            "categorie": "001",
            "url": "afficher-la-liste-de-tous-les-tags-dans-une-page-statique",
            "date": "201401161457",
            "nb_com": 6,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0032.001.001.201401141315.realiser-des-menus-deroulants-a-partir-des-menus-des-pages-statiques.xml",
            "title": "R\u00e9aliser des menus d\u00e9roulants \u00e0 partir des menus des pages statiques",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Dans ce tutorial nous allons voir comment r\u00e9aliser avec jQuery des menus d\u00e9roulants \u00e0 partir des menus et des groupes de pages statiques.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0032\/pluxml.pages_statiques_et_menus_deroulants.jpg\" alt=\"\" title=\"Pages statiques et menus d\u00e9roulants\" \/\u003E\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article32\/realiser-des-menus-deroulants-a-partir-des-menus-des-pages-statiques\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"realiser-des-menus-deroulants-a-partir-des-menus-des-pages-statiques\"\n\t\t\t},\n\t\t\t\"headline\": \"R\u00e9aliser des menus d\u00e9roulants \u00e0 partir des menus des pages statiques\",\n\t\t\t\"datePublished\": \"2014-01-14T13:15:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Page statique, Navigation, PluXml, Th\u00e8me, jQuery\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "Le th\u00e8me utilis\u00e9 est celui de PluXml 5.3.\u003Cbr \/\u003E\nLes fichiers \u00e0 modifier sont stock\u00e9s dans le dossier \u003Cem\u003Ethemes\/defaut\/\u003C\/em\u003E de votre PluXml.\n\n\u003Ch2\u003ECr\u00e9ation des pages statiques\u003C\/h2\u003E\n\nNous allons dans un premier temps cr\u00e9er des pages statiques pour mettre en place les diff\u00e9rents menus.\u003Cbr \/\u003E\nA partir de la zone d'administration, allez dans la gestion des pages statiques (menu \u003Cem\u003EPages statiques\u003C\/em\u003E).\u003Cbr \/\u003E\nPour la d\u00e9monstration nous allons cr\u00e9er deux menus \u003Cem\u003EAnimaux\u003C\/em\u003E et \u003Cem\u003EPlan\u00e8tes\u003C\/em\u003E de mani\u00e8re \u00e0 avoir cette arborescence avec les sous-menus suivants:\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nMenu Animaux:\u003Cbr \/\u003E\n\u003Cul\u003E\n\t\u003Cli\u003ELion\u003C\/li\u003E\n\t\u003Cli\u003ETigre\u003C\/li\u003E\n\t\u003Cli\u003EL\u00e9opard\u003C\/li\u003E\n\u003C\/ul\u003E\nMenu Plan\u00e8tes:\u003Cbr \/\u003E\n\u003Cul\u003E\n\t\u003Cli\u003EMercure\u003C\/li\u003E\n\t\u003Cli\u003EV\u00e9nus\u003C\/li\u003E\n\t\u003Cli\u003ETerre\u003C\/li\u003E\n\t\u003Cli\u003EMars\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\u003Ca href=\"data\/images\/0032\/pluxml.pages_statiques_et_menus_deroulants_config.jpg\"\u003E\n\u003Cimg src=\"data\/images\/0032\/pluxml.pages_statiques_et_menus_deroulants_config_th.jpg\" title=\"Cr\u00e9ation des pages statiques\" alt=\"\" \/\u003E\n\u003C\/a\u003E\u003C\/p\u003E\n\nPour cr\u00e9er les menus nous utilisons la notion de \u003Cem\u003EGroupe\u003C\/em\u003E (voir colonne \u003Cem\u003EGroupe\u003C\/em\u003E).\u003Cbr \/\u003E\nAinsi pour regrouper les pages \u003Cem\u003ELion\u003C\/em\u003E, \u003Cem\u003ETigre\u003C\/em\u003E et \u003Cem\u003EL\u00e9opard\u003C\/em\u003E sous le menu \u003Cem\u003EAnimaux\u003C\/em\u003E, renseignez les zones de la colonne \"Groupe\" pour chacune des pages avec la valeur \"Animaux\".\n\n\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\u003Ca href=\"data\/images\/0032\/pluxml.pages_statiques_et_menus_deroulants_config_groupe.jpg\"\u003E\n\u003Cimg src=\"data\/images\/0032\/pluxml.pages_statiques_et_menus_deroulants_config_groupe_th.jpg\" alt=\"\"  title=\"Cr\u00e9ation des groupes de pages statiques\" \/\u003E\n\u003C\/a\u003E\u003C\/p\u003E\n\nFaites de m\u00eame avec le groupe \u003Cem\u003EPlan\u00e8tes\u003C\/em\u003E pour regrouper les pages statiques \u003Cem\u003EMercure\u003C\/em\u003E, \u003Cem\u003EV\u00e9nus\u003C\/em\u003E, \u003Cem\u003ETerre\u003C\/em\u003E, \u003Cem\u003EMars\u003C\/em\u003E.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nAssurez-vous que la valeur des champs de la colonne \u003Cem\u003EActive\u003C\/em\u003E soit sur \u003Cem\u003EOui\u003C\/em\u003E et que \u003Cem\u003EAfficher\u003C\/em\u003E soit s\u00e9lectionn\u00e9 dans la colonne \u003Cem\u003EMenu\u003C\/em\u003E.\n\n\u003Ch2\u003EModification du th\u00e8me\u003C\/h2\u003E\n\nNous allons maintenant modifier le fichier header.php du th\u00e8me pour mettre en place les portions de code qui vont cr\u00e9er les menus d\u00e9roulants.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\n&Eacute;ditez donc le fichier header.php\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nAu dessus de la ligne &lt;\/head\u003E, ajoutez les lignes suivantes pour d\u00e9clarer la librairie jQuery et le code pour cr\u00e9er les menus d\u00e9roulants:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;script src=\"http:\/\/code.jquery.com\/jquery-latest.js\"\u003E&lt;\/script\u003E\n&lt;script\u003E\n$(document).ready(function() {\n\t$('#static-nav \u003E li').bind('mouseover', openSubMenu);\n\t$('#static-nav \u003E li').bind('mouseout', closeSubMenu);\n\tfunction openSubMenu() {\n\t\t$(this).find('ul').css('visibility', 'visible');\t\n\t};\n\tfunction closeSubMenu() {\n\t\t$(this).find('ul').css('visibility', 'hidden');\t\n\t};\n});\n&lt;\/script\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nAttention: si vous avez des plugins qui utilisent d\u00e9j\u00e0 jquery, la ligne qui ajoute la librairie jQuery pourrait ne pas \u00eatre n\u00e9cessaire, voir \u00eatre source de probl\u00e8me si jquery est d\u00e9j\u00e0 d\u00e9clar\u00e9 d'une autre fa\u00e7on ou \u00e0 un autre endroit de votre site.\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nEnsuite, localisez la ligne suivante:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EstaticList($plxShow-\u003EgetLang('HOME'),'&lt;li id=\"#static_id\"\u003E&lt;a href=\"#static_url\" class=\"#static_status\" title=\"#static_name\"\u003E#static_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\net remplacez la par:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php \n\t$plxShow-\u003EstaticList(\n\t\t$plxShow-\u003EgetLang('HOME'),\n\t\t'&lt;li id=\"#static_id\"\u003E&lt;a href=\"#static_url\" class=\"#static_status\" title=\"#static_name\"\u003E#static_name&lt;\/a\u003E&lt;\/li\u003E', \n\t\t'&lt;a href=\"javascript:void(0)\" class=\"#group_class\"\u003E#group_name&lt;\/a\u003E'\n\t); \n?\u003E\t\n\u003C\/code\u003E\u003C\/pre\u003E\n\nNous avons ici utilis\u00e9 le troisi\u00e8me param\u00e8tre de la fonction \u003Cem\u003EstaticList()\u003C\/em\u003E afin d'afficher les groupes des pages statiques, de mani\u00e8re \u00e0 g\u00e9n\u00e9rer le code html suivant:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;ul id=\"static-nav\"\u003E\n\t&lt;li id=\"static-home\"\u003E&lt;a href=\"http:\/\/localhost\/PluXml\/\" class=\"active\" title=\"Accueil\"\u003EAccueil&lt;\/a\u003E&lt;\/li\u003E\n\t&lt;li\u003E\n\t\t&lt;a href=\"javascript:void(0)\" class=\"static group\"\u003EAnimaux&lt;\/a\u003E\n\t\t&lt;ul id=\"static-animaux\"\u003E\t\t\n\t\t\t&lt;li id=\"static-1\"\u003E&lt;a href=\"http:\/\/localhost\/PluXml\/index.php?static1\/lion\" class=\"noactive\" title=\"Lion\"\u003ELion&lt;\/a\u003E&lt;\/li\u003E\n\t\t\t&lt;li id=\"static-2\"\u003E&lt;a href=\"http:\/\/localhost\/PluXml\/index.php?static2\/tigre\" class=\"noactive\" title=\"Tigre\"\u003ETigre&lt;\/a\u003E&lt;\/li\u003E\n\t\t\t&lt;li id=\"static-3\"\u003E&lt;a href=\"http:\/\/localhost\/PluXml\/index.php?static3\/leopard\" class=\"noactive\" title=\"L\u00e9opard\"\u003EL\u00e9opard&lt;\/a\u003E&lt;\/li\u003E\n\t\t&lt;\/ul\u003E\n\t&lt;\/li\u003E\n\t&lt;li\u003E\n\t\t&lt;a href=\"javascript:void(0)\" class=\"static group\"\u003EPlan\u00e8tes&lt;\/a\u003E\n\t\t&lt;ul id=\"static-planetes\"\u003E\t\t\n\t\t\t&lt;li id=\"static-4\"\u003E&lt;a href=\"http:\/\/localhost\/PluXml\/index.php?static4\/mercure\" class=\"noactive\" title=\"Mercure\"\u003EMercure&lt;\/a\u003E&lt;\/li\u003E\n\t\t\t&lt;li id=\"static-5\"\u003E&lt;a href=\"http:\/\/localhost\/PluXml\/index.php?static5\/venus\" class=\"noactive\" title=\"V\u00e9nus\"\u003EV\u00e9nus&lt;\/a\u003E&lt;\/li\u003E\n\t\t\t&lt;li id=\"static-6\"\u003E&lt;a href=\"http:\/\/localhost\/PluXml\/index.php?static6\/terre\" class=\"noactive\" title=\"Terre\"\u003ETerre&lt;\/a\u003E&lt;\/li\u003E\n\t\t\t&lt;li id=\"static-7\"\u003E&lt;a href=\"http:\/\/localhost\/PluXml\/index.php?static7\/mars\" class=\"noactive\" title=\"Mars\"\u003EMars&lt;\/a\u003E&lt;\/li\u003E\n\t\t&lt;\/ul\u003E\n\t&lt;\/li\u003E\n&lt;\/ul\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nRemarque: cette structure html est une nouveaut\u00e9 de la version 5.3 de PluXml afin de faciliter l'affichage de la hi\u00e9rarchie des menus, dans l'objectif des cr\u00e9er facilement des menus d\u00e9roulants avec jQuery.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nIl nous reste \u00e0 ajouter le code css pour mettre en forme les menus d\u00e9roulants.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\n&Eacute;ditez le fichier themes\/defaut\/css\/style.css\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nA la fin du fichier ajoutez le code suivant:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\/* -------------------------- *\/\n\/* style des menus d\u00e9roulants *\/\n\/* -------------------- *\/\n#static-nav {\n\tmargin:0;\n\tpadding:0;\n\theight: 25px; \/* hauteur de la barre de navigation *\/\n}\n#static-nav li {\n\tlist-style:none;\n\tfloat:left;\n}\n#static-nav li a:link, \n#static-nav li a:visited {\n\tdisplay:block;\n\tmargin:0;\n}\n#static-nav li a:hover {\n}\n\n\/* -------------------- *\/\n\/* style des sous menus *\/\n\/* -------------------- *\/\n#static-nav li ul {\n\tposition:absolute;\n\tvisibility:hidden;\n\tmargin:0;\n\tpadding:0;\n}\n\n#static-nav li ul li {\n\tdisplay:inline;\n\tfloat:none;\n\tmargin: 0;\n\tpadding: 0;\n}\n\n#static-nav li ul li a:link, \n#static-nav li ul li a:visited {\n\twidth:auto;\n\tpadding: 2px 30px 2px 5px;\n\tbackground-color: #666; \/* couleur de fond des sous menus *\/\n}\n\n#static-navli ul li a:hover {\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLes pages statiques sont maintenant accessibles sous forme de menus d\u00e9roulants.\u003Cbr \/\u003E \nLibre \u00e0 vous de personnaliser l'affichage des menus en changeant la couleur de fonds ou du texte par exemple en jouant avec les propri\u00e9t\u00e9s css des menus\n\n\u003Cp\u003E\n\u003Cstrong\u003EEdit: solution en cas de probl\u00e8me si le menu d\u00e9roulant s'ouvre bien mais impossible d'aller cliquer un sous menu.\u003C\/strong\u003E\u003Cbr \/\u003E\u003Cbr \/\u003E\nDans le code css ajout\u00e9 dans le th\u00e8me de votre site rajouter la ligne \u003Cstrong\u003Ez-index: 9999;\u003C\/strong\u003E au niveau du code suivant:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\/* -------------------- *\/\n\/* style des sous menus *\/\n\/* -------------------- *\/\n#static-nav li ul {\n\tposition:absolute;\n\tvisibility:hidden;\n\tmargin:0;\n\tpadding:0;\n\tz-index: 9999;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003C\/p\u003E\n\n\u003Cp\u003E\nPour faire fonctionner les menus d\u00e9roulants assurez-vous \u00e9galement d'avoir dans le fichier header.php du th\u00e8me \n\u003Cstrong\u003Eid=\"static-nav\"\u003C\/strong\u003E au niveau de la ligne \u003Cstrong\u003E&lt;ul id=\"static-nav\" class=\"menu expanded\"\u003E\u003C\/strong\u003E.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nAvec le th\u00e8me par d\u00e9faut de PluXml 5.4, vous devrez avoir:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;ul id=\"static-nav\" class=\"menu expanded\"\u003E\n\t&lt;?php \n\t\t$plxShow-\u003EstaticList(\n\t\t\t$plxShow-\u003EgetLang('HOME'),\n\t\t\t'&lt;li id=\"#static_id\"\u003E&lt;a href=\"#static_url\" class=\"#static_status\" title=\"#static_name\"\u003E#static_name&lt;\/a\u003E&lt;\/li\u003E', \n\t\t\t'&lt;a href=\"javascript:void(0)\" class=\"#group_class\"\u003E#group_name&lt;\/a\u003E'\n\t\t); \n\t?\u003E\t\t\t\t\t\n\t&lt;?php $plxShow-\u003EpageBlog('&lt;li id=\"#page_id\"\u003E&lt;a class=\"#page_status\" href=\"#page_url\" title=\"#page_name\"\u003E#page_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n&lt;\/ul\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003C\/p\u003E",
            "tags": "Page statique, Navigation, PluXml, Th\u00e8me, jQuery",
            "meta_description": "Tutorial pour PluXml pour r\u00e9aliser des menus d\u00e9roulants \u00e0 partir des pages statiques",
            "meta_keywords": "PluXml, Page statique, Navigation, Th\u00e8me, Css, jQuery",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0032",
            "author": "001",
            "categorie": "001",
            "url": "realiser-des-menus-deroulants-a-partir-des-menus-des-pages-statiques",
            "date": "201401141315",
            "nb_com": 32,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0031.001.001.201401100803.deplacer-le-menu-blog.xml",
            "title": "D\u00e9placer le menu Blog",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Par d\u00e9faut le menu \"Blog\" est affich\u00e9 \u00e0 la fin de la liste des menus des pages statiques. Ce menu Blog n'apparait que lorsqu'une page statique est configur\u00e9e comme \u003Cem\u003EPage d'accueil\u003C\/em\u003E. Depuis la version 5.3 de PluXml il est possible de d\u00e9placer ce menu pour le positionner n'importe o\u00f9 dans la liste des pages statiques.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/\/images\/0031\/pluxml_menu_blog_1.jpg\" alt=\"PluXml position du menu blog\" \/\u003E\u003C\/p\u003E\n\nVoyons comment d\u00e9placer le menu blog en exemple.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article31\/deplacer-le-menu-blog\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"deplacer-le-menu-blog\"\n\t\t\t},\n\t\t\t\"headline\": \"D\u00e9placer le menu Blog\",\n\t\t\t\"datePublished\": \"2014-01-10T08:03:00Z\",\n\t\t\t\"dateModified\": \"2023-10-09T14:40:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Page statique, Navigation, PluXml, Tuto, Sidebar, Menu\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "Petit rappel pour commencer: pour configurer une page statique comme \"Page d'accueil\", allez dans la gestion des pages statiques et pour la page statique d\u00e9sir\u00e9e cochez la case correspondante dans la colonne \u003Cem\u003EPage d'accueil\u003C\/em\u003E, puis cliquez sur le bouton \u003Cem\u003EModifier la liste des pages statiques\u003C\/em\u003E. Le menu Blog apparaitra sur votre site alors automatiquement \u00e0 la suite des menus des pages statiques.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/\/images\/0031\/pluxml_pages_statiques.jpg\" alt=\"PluXml D\u00e9finir une page statique comme page d'accueil\" \/\u003E\u003C\/p\u003E\n\nLa liste des pages statiques, et donc aussi du menu blog, est affich\u00e9e gr\u00e2ce au code suivant que l'on trouve dans le fichier header.php stock\u00e9 dans le dossier du th\u00e8me de son site.\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;ul id=\"static-nav\"\u003E\n\t&lt;?php $plxShow-\u003EstaticList($plxShow-\u003EgetLang('HOME'),'&lt;li id=\"#static_id\"\u003E&lt;a href=\"#static_url\" class=\"#static_status\" title=\"#static_name\"\u003E#static_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n\t&lt;?php $plxShow-\u003EpageBlog('&lt;li id=\"#page_id\"\u003E&lt;a class=\"#page_status\" href=\"#page_url\" title=\"#page_name\"\u003E#page_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n&lt;\/ul\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLa fonction \u003Cem\u003EstaticList()\u003C\/em\u003E permet d'afficher la liste des pages statiques, tandis que la fonction \u003Cem\u003EpageBlog()\u003C\/em\u003E affiche le menu \"Blog\" lorsqu'une page statique est d\u00e9finie comme page d'accueil.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPour d\u00e9placer le menu Blog en premi\u00e8re position, vous pouvez tout simplement d\u00e9placer la ligne avec l'instruction pageBlog() de cette fa\u00e7on:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;ul id=\"static-nav\"\u003E\n\t&lt;?php $plxShow-\u003EpageBlog('&lt;li id=\"#page_id\"\u003E&lt;a class=\"#page_status\" href=\"#page_url\" title=\"#page_name\"\u003E#page_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n\t&lt;?php $plxShow-\u003EstaticList($plxShow-\u003EgetLang('HOME'),'&lt;li id=\"#static_id\"\u003E&lt;a href=\"#static_url\" class=\"#static_status\" title=\"#static_name\"\u003E#static_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n&lt;\/ul\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLe menu \"Blog\" sera affich\u00e9 en premi\u00e8re position.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/\/images\/0031\/pluxml_menu_blog_2.jpg\" alt=\"PluXml Position 1 du menu Blog\" \/\u003E\u003C\/p\u003E\n\nAutre cas de figure qui ne peut \u00eatre r\u00e9alis\u00e9 qu'\u00e0 partir de la version 5.3 de PluXml: positionner le menu \"Blog\" entre les menus \"Statique 1\" et \"Statique 2\".\u003Cbr \/\u003E\nPour cela, utilisez le code suivante:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;ul id=\"static-nav\"\u003E\n\t&lt;?php $plxShow-\u003EstaticList($plxShow-\u003EgetLang('HOME'),'&lt;li id=\"#static_id\"\u003E&lt;a href=\"#static_url\" class=\"#static_status\" title=\"#static_name\"\u003E#static_name&lt;\/a\u003E&lt;\/li\u003E', '', 3); ?\u003E\n&lt;\/ul\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nPour d\u00e9placer le menu Blog, nous n'avons plus besoin de l'instruction \u003Cem\u003EpageBlog()\u003C\/em\u003E: la ligne avec cette instruction a \u00e9t\u00e9 supprim\u00e9e.\u003Cbr \/\u003E\nEn revanche nous avons rajout\u00e9 deux param\u00e8tres \u00e0 la fonction staticList(). \n\u003Cbr \/\u003E\u003Cbr \/\u003E\nLes param\u00e8tres utilis\u00e9s sont les suivants;\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cul\u003E\n\u003Cli\u003EParam\u00e8tre 1: titre du menu Acceuil\u003C\/li\u003E\n\u003Cli\u003EParam\u00e8tre 2: format d'affichage des diff\u00e9rents menus\u003C\/li\u003E\n\u003Cli\u003EParam\u00e8tre 3: (optionnel) format du texte pour chaque groupe de pages\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003EParam\u00e8tre 4\u003C\/strong\u003E: position du menu Blog. Ici la valeur 3 permet de positionner le menu Blog entre \"Statique 1\" et \"Statique 2\"\u003C\/li\u003E\n\u003C\/ul\u003E\n\nC'est donc en renseignant le quatri\u00e8me param\u00e8tre de la fonction staticList() que le menu Blog peut \u00eatre d\u00e9plac\u00e9.\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/\/images\/0031\/pluxml_menu_blog_3.jpg\" alt=\"PluXml Position 3 du menu Blog\" \/\u003E\u003C\/p\u003E",
            "tags": "Page statique, Navigation, PluXml, Tuto, Sidebar, Menu",
            "meta_description": "Tutorial pour PluXml pour d\u00e9placer et positionner le menu Blog dans la liste des menus des pages statiques",
            "meta_keywords": "Page statique, Navigation, PluXml, Tuto, Sidebar, Menu",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0031",
            "author": "001",
            "categorie": "001",
            "url": "deplacer-le-menu-blog",
            "date": "201401100803",
            "nb_com": 9,
            "date_creation": "201401100803",
            "date_update": "202310091440"
        },
        {
            "filename": ".\/data\/articles\/0030.001.001.201401090927.comment-trier-le-nuage-de-tags.xml",
            "title": "Comment trier le nuage de tags",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Le nuage de tags est affich\u00e9 principalement dans la sidebar du site gr\u00e2ce aux lignes de code suivantes que l'on trouve dans le fichier sidebar.php stock\u00e9 dans le dossier de son th\u00e8me\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;ul\u003E\n\t&lt;?php $plxShow-\u003EtagList('&lt;li class=\"tag #tag_size\"\u003E&lt;a class=\"#tag_status\" href=\"#tag_url\" title=\"#tag_name\"\u003E#tag_name&lt;\/a\u003E&lt;\/li\u003E', 20); ?\u003E\n&lt;\/ul\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLa fonction utilis\u00e9e \u003Cem\u003EtagList()\u003C\/em\u003E de la classe plxShow accepte depuis la version 5.3 de PluXml un troisi\u00e8me param\u00e8tre permettant de trier l'affichage des mots cl\u00e9s du nuage de tags. Mais commen\u00e7ons par un petit rappel sur l'utilisation de cette fonction et des diff\u00e9rents param\u00e8tres qu'elle utilise.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article30\/comment-trier-le-nuage-de-tags\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"comment-trier-le-nuage-de-tags\"\n\t\t\t},\n\t\t\t\"headline\": \"Comment trier le nuage de tags\",\n\t\t\t\"datePublished\": \"2014-01-09T09:27:00Z\",\n\t\t\t\"dateModified\": \"2014-01-09T09:27:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Tuto, Tags, PluXml, Sidebar\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch2\u003EParam\u00e8tre 1: format d'affichage des tags\u003C\/h2\u003E\n\nLe premier param\u00e8tre de la fonction tagList() permet de formater l'affichage de chaque mot cl\u00e9 dans la liste html &lt;ul\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n'&lt;li class=\"tag #tag_size\"\u003E&lt;a class=\"#tag_status\" href=\"#tag_url\" title=\"#tag_name\"\u003E#tag_name&lt;\/a\u003E&lt;\/li\u003E'\n\u003C\/code\u003E\u003C\/pre\u003E\n\nSignification des variables utilis\u00e9es:\n\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003E#tag_size\u003C\/strong\u003E: renvoie la taille de 1 \u00e0 10: plus la taille est grande, plus le mot cl\u00e9 est utilis\u00e9 dans des articles. permet  de personnaliser l'affichage en utilisant une classe css. L'article suivant vous expliquera comment utiliser la taille des tags pour leur donner une couleur diff\u00e9rente en fonction du nombre d'utilisation \u003Ca href=\"http:\/\/pluxopolis.net\/article7\/pluxml-rajouter-des-couleurs-dans-son-nuage-de-tags\" title=\"PluXml: Rajouter des couleurs dans son nuage de tags\"\u003EPluXml: Rajouter des couleurs dans son nuage de tags\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003E#tag_status\u003C\/strong\u003E: renvoie la valeur \"active\" si le mot cl\u00e9 est s\u00e9lectionn\u00e9 et permet de mettre en \u00e9vidence la s\u00e9lection par une classe css\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003E#tag_url\u003C\/strong\u003E: url du tag permettant d'afficher tous les articles r\u00e9f\u00e9renc\u00e9s avec le mot cl\u00e9 lorsqu'on clique dessus\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003E#tag_name\u003C\/strong\u003E: nom du tag\u003C\/li\u003E\n\u003C\/ul\u003E\n\nD'autres variables sont \u00e9galement disponibles\n\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003E#tag_id\u003C\/strong\u003E: renvoie un identifiant unique compos\u00e9 \u00e0 partir du nom du tag (exemple: tag-pluxml)\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003E#nb_art\u003C\/strong\u003E: renvoie le nombre d'articles associ\u00e9 au tag\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\u003Ch2\u003EParam\u00e8tre 2: nombre de tags \u00e0 afficher\u003C\/h2\u003E\n\nLe deuxi\u00e8me param\u00e8tre permet de limiter le nombre des tags \u00e0 afficher. En sp\u00e9cifiant par exemple la valeur 20, seuls les vingt premiers tags trouv\u00e9s sont affich\u00e9s dans le nuage de tags.\n\n\u003Ch2\u003EParam\u00e8tre 3: tri des tags\u003C\/h2\u003E\n\nLe troisi\u00e8me param\u00e8tre permet de trier les tags soit par ordre alphab\u00e9tique, soit par ordre al\u00e9atoire.\n\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003Ealpha\u003C\/strong\u003E: trie les tags par ordre alphab\u00e9tique\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Erandom\u003C\/strong\u003E: trie les tags par ordre al\u00e9atoire\u003C\/li\u003E\n\u003C\/ul\u003E\n\nExemple:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;ul\u003E\n\t&lt;?php $plxShow-\u003EtagList('&lt;li class=\"tag #tag_size\"\u003E&lt;a class=\"#tag_status\" href=\"#tag_url\" title=\"#tag_name\"\u003E#tag_name&lt;\/a\u003E&lt;\/li\u003E', 20, 'alpha'); ?\u003E\n&lt;\/ul\u003E\n\u003C\/code\u003E\u003C\/pre\u003E",
            "tags": "Tuto, Tags, PluXml, Sidebar",
            "meta_description": "Tutorial pour PluXml pour trier le nuage de tags affich\u00e9 dans la sidebar",
            "meta_keywords": "Tuto, Tags, PluXml, sidebar",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0030",
            "author": "001",
            "categorie": "001",
            "url": "comment-trier-le-nuage-de-tags",
            "date": "201401090927",
            "nb_com": 0,
            "date_creation": "201401090927",
            "date_update": "201401090927"
        },
        {
            "filename": ".\/data\/articles\/0028.001.001.201312101010.afficher-le-menu-d-une-categorie-dans-la-barre-des-menus-des-pages-statiques.xml",
            "title": "Afficher le menu d'une cat\u00e9gorie dans la barre des menus des pages statiques",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "La barre des menus horizontaux g\u00e9n\u00e9ralement affich\u00e9e dans la plupart des th\u00e8mes de PluXml, correspond \u00e0 la liste des pages statiques visibles et actives.\u003Cbr \/\u003E\nToujours dans un esprit de personnlisation de son th\u00e8me, il est peut \u00eatre utile voir int\u00e9ressant de rajouter dans cette liste de menus, un menu donnant acc\u00e8s au contenu d'une cat\u00e9gorie d'articles. Voyons comment rajouter ce menu et quel code php utiliser.\n\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0028\/capture.png\" alt=\"\" \/\u003E\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article28\/afficher-le-menu-d-une-categorie-dans-la-barre-des-menus-des-pages-statiques\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"afficher-le-menu-d-une-categorie-dans-la-barre-des-menus-des-pages-statiques\"\n\t\t\t},\n\t\t\t\"headline\": \"Afficher le menu d'une cat\u00e9gorie dans la barre des menus des pages statiques\",\n\t\t\t\"datePublished\": \"2013-12-10T10:10:00Z\",\n\t\t\t\"dateModified\": \"2013-12-10T10:10:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Astuce, Page statique, Cat\u00e9gorie\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "Le code utilis\u00e9 pour afficher la liste des pages statiques sous forme de menus est dans le fichier \u003Cem\u003Eheader.php\u003C\/em\u003E du th\u00e8me et est identifiable par les lignes suivantes:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;ul\u003E\n\t&lt;?php $plxShow-\u003EstaticList($plxShow-\u003EgetLang('HOME'),'&lt;li id=\"#static_id\"\u003E&lt;a href=\"#static_url\" class=\"#static_status\" title=\"#static_name\"\u003E#static_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n\t&lt;?php $plxShow-\u003EpageBlog('&lt;li id=\"#page_id\"\u003E&lt;a class=\"#page_status\" href=\"#page_url\" title=\"#page_name\"\u003E#page_name\u003C\/a\u003E&lt;\/li\u003E'); ?\u003E\n&lt;\/ul\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLa ligne avec la fonction \u003Cem\u003EstaticList\u003C\/em\u003E permet d'afficher le menu Accueil et la liste des pages statiques, tandis que la fonction \u003Cem\u003EpageBlog\u003C\/em\u003E affiche le lien \"Blog\" si une page statique a \u00e9t\u00e9 d\u00e9finie comme page d'accueil du site.\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nLe bout de code suivant permet d'afficher le menu d'une cat\u00e9gorie en formatant le lien pour l'int\u00e9grer dans la liste des pages statiques en tenant compte de la r\u00e9\u00e9criture d'url et de la mise en surbrillance du lien lorsque celui est s\u00e9lectionn\u00e9 (les classes css \u003Cem\u003E.active\u003C\/em\u003E et \u003Cem\u003E.noactive\u003C\/em\u003E sont utilis\u00e9es \u00e0 cet effet).\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php\n$idCat = '001';\nif(isset($plxMotor-\u003EaCats[$idCat])) {\n\tif($plxMotor-\u003EaCats[$idCat]['menu']=='oui' AND $plxMotor-\u003EaCats[$idCat]['active']) {\n\t\t$id = 'cat-'.intval($idCat);\n\t\t$url = $plxMotor-\u003EurlRewrite('?categorie'.intval($idCat).'\/'.$plxMotor-\u003EaCats[$idCat]['url']);\n\t\t$name = plxUtils::strCheck($plxMotor-\u003EaCats[$idCat]['name']);\n\t\t$active = ($plxShow-\u003EcatId()==intval($idCat)?'active':'noactive');\n\t\techo '&lt;li id=\"'.$id.'\"\u003E&lt;a class=\"'.$active.'\" title=\"'.$name.'\" href=\"'.$url.'\"\u003E'.$name.'&lt;\/a\u003E&lt;\/li\u003E';\n\t}\n}\n?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nPour rappel, chaque cat\u00e9gorie est identifiable par un num\u00e9ro unique sur trois caract\u00e8res: par exemple 001. Pour connaitre l'identifiant d'une cat\u00e9gorie il suffit d'aller dans la gestion des cat\u00e9gories (menu \u003Cem\u003ECat\u00e9gories\u003C\/em\u003E) de la zone d'administration. Les num\u00e9ros sont affich\u00e9s dans la colonne \"Identifiant\" du tableau listant toutes les cat\u00e9gories. Pour afficher votre cat\u00e9gorie, modifiez donc la ligne suivante en rempla\u00e7ant 001 par le num\u00e9ro de cat\u00e9gorie souhait\u00e9e.\u003Cbr \/\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n$idCat = '001';\n\u003C\/code\u003E\u003C\/pre\u003E\n\nNotez que le menu ne sera affich\u00e9 que si la cat\u00e9gorie est active et que le param\u00e8tre de la colonne \"Menu\" dans la gestion des cat\u00e9gories est r\u00e9gl\u00e9 sur \"Afficher\".\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nLe code est \u00e0 ajouter dans le fichier \u003Cem\u003Eheader.php\u003C\/em\u003E stock\u00e9 dans le dossier de votre th\u00e8me, de mani\u00e8re \u00e0 obtenir par exemple les lignes suivantes:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;ul\u003E\n\t&lt;?php $plxShow-\u003EstaticList($plxShow-\u003EgetLang('HOME'),'&lt;li id=\"#static_id\"\u003E&lt;a href=\"#static_url\" class=\"#static_status\" title=\"#static_name\"\u003E#static_name&lt;\/a\u003E&lt;\/li\u003E'); ?\u003E\n\t&lt;?php\n\t$idCat = '001';\n\tif(isset($plxMotor-\u003EaCats[$idCat])) {\n\t\tif($plxMotor-\u003EaCats[$idCat]['menu']=='oui' AND $plxMotor-\u003EaCats[$idCat]['active']) {\n\t\t\t$id = 'cat-'.intval($idCat);\n\t\t\t$url = $plxMotor-\u003EurlRewrite('?categorie'.intval($idCat).'\/'.$plxMotor-\u003EaCats[$idCat]['url']);\n\t\t\t$name = plxUtils::strCheck($plxMotor-\u003EaCats[$idCat]['name']);\n\t\t\t$active = ($plxShow-\u003EcatId()==intval($idCat)?'active':'noactive');\n\t\t\techo '&lt;li id=\"'.$id.'\"\u003E&lt;a class=\"'.$active.'\" title=\"'.$name.'\" href=\"'.$url.'\"\u003E'.$name.'&lt;\/a\u003E&lt;\/li\u003E';\n\t\t}\n\t}\n\t?\u003E\n\t&lt;?php $plxShow-\u003EpageBlog('&lt;li id=\"#page_id\"\u003E&lt;a class=\"#page_status\" href=\"#page_url\" title=\"#page_name\"\u003E#page_name\u003C\/a\u003E&lt;\/li\u003E'); ?\u003E\n&lt;\/ul\u003E\n\u003C\/code\u003E\u003C\/pre\u003E",
            "tags": "Astuce, Page statique, Cat\u00e9gorie",
            "meta_description": "Tutorial pour afficher le menu d'une cat\u00e9gorie dans la barre des menus des pages statiques",
            "meta_keywords": "PluXml, cat\u00e9gorie, page statique, th\u00e8me",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0028",
            "author": "001",
            "categorie": "001",
            "url": "afficher-le-menu-d-une-categorie-dans-la-barre-des-menus-des-pages-statiques",
            "date": "201312101010",
            "nb_com": 8,
            "date_creation": "201312101010",
            "date_update": "201312101010"
        },
        {
            "filename": ".\/data\/articles\/0027.001.001.201310301421.donnez-du-style-a-vos-titres.xml",
            "title": "Donnez du style \u00e0 vos titres",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Envie de changer la police de caract\u00e8re utilis\u00e9e pour votre titre en rempla\u00e7ant les classiques Arial, Helvetica ou autre Serif par une fonte plus attrayante ?\nJe vous propose de mettre en place des webfonts dans le th\u00e8me de votre PluXml pour personnaliser l'apparence des  titres.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article27\/donnez-du-style-a-vos-titres\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"donnez-du-style-a-vos-titres\"\n\t\t\t},\n\t\t\t\"headline\": \"Donnez du style \u00e0 vos titres\",\n\t\t\t\"datePublished\": \"2013-10-30T14:21:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Th\u00e8me, Webfont, Tuto, Css\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch2\u003E\u00c9tape 1: Trouver la fonte de son choix\u003C\/h2\u003E\n\nLes sites pour trouver des fontes, g\u00e9n\u00e9ralement au format ttf, sont nombreux. Voici deux liens qui proposent de nombreuses polices \u00e0 t\u00e9l\u00e9charger. \n\n\u003Cul\u003E\n\u003Cli\u003E\u003Ca href=\"http:\/\/www.fontsquirrel.com\/\" title=\"http:\/\/www.fontsquirrel.com\/\"\u003Ehttp:\/\/www.fontsquirrel.com\/\u003C\/a\u003E\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\"http:\/\/www.dafont.com\/fr\/\" title=\"http:\/\/www.dafont.com\/fr\/\"\u003Ehttp:\/\/www.dafont.com\/fr\/\u003C\/a\u003E\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\u003Ch2\u003E\u00c9tape 2: Convertir la police ttf aux formats pour le web\u003C\/h2\u003E\n\nLe format ttf ne suffit pas pour \u00eatre utilis\u00e9 sur un site web car tous les navigateurs ne reconnaissent pas ce format. Il faut donc passer par un outil de convertion qui cr\u00e9era les fichiers et formats manquants.\n\nApr\u00e8s avoir r\u00e9cup\u00e9r\u00e9 la fonte de votre choix au format .ttf, je vous propose d'utiliser l'outil de conversion disponible sur le site fontsquirrel: \u003Ca href=\"http:\/\/www.fontsquirrel.com\/tools\/webfont-generator\" title=\"Webfont Generator\"\u003EWebfont Generator\u003C\/a\u003E.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0027\/01.000.jpg\" title=\"\" \/\u003E\u003C\/p\u003E\n\nSon utilisation est tr\u00e8s simple:\n\n\u003Col\u003E\n\u003Cli\u003ECliquez sur le bouton \"Add Fonts\" et s\u00e9lectionnez votre fichier .ttf\u003C\/li\u003E\n\u003Cli\u003ELaissez l'option par d\u00e9faut \"Optimal\" s\u00e9lectionn\u00e9e\u003C\/li\u003E\n\u003Cli\u003ECochez \"Yes, the fonts I'm uploading are legally eligible for web embedding\"\u003C\/li\u003E\n\u003Cli\u003ECliquez sur le bouton \"DOWNLOAD YOU KIT\"\u003C\/li\u003E\n\u003C\/ol\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0027\/02.000.jpg\" title=\"\" \/\u003E\u003C\/p\u003E\n\n\u003Ch2\u003E\u00c9tape 3: Copier les fichiers dans votre PluXml\u003C\/h2\u003E\n\nCr\u00e9ez un dossier fonts dans le dossier de votre th\u00e8me, pour obtenir par exemple:\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Ccode\u003E\n\/themes\/defaut\/fonts\n\u003C\/code\u003E\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nNote: \u003Cstrong\u003Edefaut\u003C\/strong\u003E correspond au nom du th\u00e8me par d\u00e9faut de PluXml.\n\nApr\u00e8s avoir t\u00e9l\u00e9charg\u00e9 et d\u00e9compress\u00e9 le fichier g\u00e9n\u00e9r\u00e9 par l'outil de conversion (voir \u00e9tape 2), r\u00e9cup\u00e9rez tous les fichiers avec les extensions .eot, .svg, .tff et .woff et copiez les dans le dossier \u003Cem\u003Efonts\u003C\/em\u003E cr\u00e9\u00e9 pr\u00e9cedemment.\n\n\u003Ch2\u003E\u00c9tape 4: D\u00e9claration des fontes dans la feuille de style de PluXml\u003C\/h2\u003E\n\nDans le dossier qui contient les fichiers des polices apr\u00e8s la d\u00e9compression de l'archive t\u00e9l\u00e9charg\u00e9e, il y a aussi un fichier \u003Cstrong\u003Estylesheet.css\u003C\/strong\u003E.\n\u00c9ditez ce fichier et r\u00e9cup\u00e9rez les lignes de code pr\u00e9sentes. Faites un copier-coller de ces lignes au d\u00e9but du fichier \u003Cstrong\u003Estyle.css\u003C\/strong\u003E de votre th\u00e8me dans \u003C\/em\u003E\/themes\/defaut\/style.css\u003C\/em\u003E. Elles correspondent aux instructions \u00e0 ajouter dans le feuille de style du th\u00e8me de PluXml pour utiliser les nouvelles fontes.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nExemple de code \u00e0 copier:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n@font-face {\n    font-family: 'desyrelregular';\n    src: url('fonts\/desyrel-webfont.eot');\n    src: url('fonts\/desyrel-webfont.eot?#iefix') format('embedded-opentype'),\n         url('fonts\/desyrel-webfont.woff') format('woff'),\n         url('fonts\/desyrel-webfont.ttf') format('truetype'),\n         url('fonts\/desyrel-webfont.svg#desyrelregular') format('svg');\n    font-weight: normal;\n    font-style: normal;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\nNotez ici le nom de la police \u00e0 identifier sur la ligne suivante\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n    font-family: 'desyrelregular';\n\u003C\/code\u003E\u003C\/pre\u003E\n\nNotez \u00e9galement l'emplacement des fichiers .eot, .woff, .ttf et .svg dans le dossier \u003Cem\u003Efonts\u003C\/em\u003E\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nExemple: le fichier desyrel-webfont.eot est stock\u00e9 dans le dossier fonts (chemin relatif par rapport au fichier style.css du th\u00e8me de PluXml) \n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n    src: url('fonts\/desyrel-webfont.eot');\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Cem\u003E'desyrelregular'\u003C\/em\u003E apr\u00e8s l'instruction \u003Cem\u003Efont-family\u003C\/em\u003E est le nom de la nouvelle police de caract\u00e8re.\n\n\u003Ch2\u003E\u00c9tape 5: Personnalisation des titres de PluXml avec la nouvelle police de caract\u00e8re\u003C\/h2\u003E\n\nIl ne reste plus maintenant qu'\u00e0 changer la police de caract\u00e8re utilis\u00e9e pour les titres de PluXml que vous voulez changer. Ici les cas de figure peuvent \u00eatre diff\u00e9rents en fonction de votre th\u00e8me actuel car le fichier de style \u003Cem\u003Estyle.css\u003C\/em\u003E ne sera pas le m\u00eame en fonction des th\u00e8mes.\nA titre d'exemple je vais prendre le th\u00e8me par d\u00e9faut de PluXml (version 5.2 au moment de la r\u00e9daction de cet article). \nCela vous donnera des indications pour modifier votre propre th\u00e8me.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPour modifier la police du titre du site, \u00e9ditez le fichier \u003Cem\u003Ethemes\/defaut\/style.css\u003C\/em\u003E et remplacez le code suivant\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nbody \u003E header h1 {\n\tfont-size: 2.2em;\n\tmargin: 0;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\npar\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nbody \u003E header h1 {\n\tfont-family: 'desyrelregular';\n\tfont-size: 2.2em;\n\tmargin: 0;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\nIci la d\u00e9claration de la police 'desyrelregular' est ajout\u00e9e gr\u00e2ce \u00e0 l'instruction font-family.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPour modifier la police du titre des articles, \u00e9ditez le fichier \u003Cem\u003Ethemes\/defaut\/style.css\u003C\/em\u003E et remplacez le code suivant\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\narticle h1,\narticle h1 a {\n\tcolor: #444;\n\tfont-weight: bold;\n\tline-height: 1.1;\n\tmargin: 0;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\npar\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\narticle h1,\narticle h1 a {\n\tfont-family: 'desyrelregular';\n\tcolor: #444;\n\tfont-weight: bold;\n\tline-height: 1.1;\n\tmargin: 0;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\nIci aussi la ligne \u003Cem\u003Efont-family: 'desyrelregular';\u003C\/em\u003E permet de sp\u00e9cifier la fonte \u00e0 utiliser.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nR\u00e9sultat obtenu apr\u00e8s utilisation d'une webfont\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0027\/03.000.jpg\" title=\"\" \/\u003E\u003C\/p\u003E\n\nDe la m\u00eame fa\u00e7on, maintenant vous pouvez d\u00e9finir le style des titres de niveau &lt;h2\u003E, &lt;h3\u003E, voir m\u00eame du texte utilis\u00e9 pour le chapo ou le contenu des articles.",
            "tags": "PluXml, Th\u00e8me, Webfont, Tuto, Css",
            "meta_description": "Tutorial pour personnaliser l'affichage des titres de PluXml avec des webfonts",
            "meta_keywords": "PluXml, Th\u00e8me, Webfont, Css",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0027",
            "author": "001",
            "categorie": "001",
            "url": "donnez-du-style-a-vos-titres",
            "date": "201310301421",
            "nb_com": 17,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0026.001.001.201309240829.afficher-une-sidebar-differente-pour-chaque-page-statique.xml",
            "title": "Afficher une sidebar diff\u00e9rente pour chaque page statique",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Voici une petite astuce pour afficher une sidebar diff\u00e9rente pour chaque page statique.\u003Cbr \/\u003E\nL'id\u00e9e est d'avoir plusieurs fichiers sidebar avec un contenu et une mise en forme diff\u00e9rente adapt\u00e9s \u00e0 chaque page statique. Voyons comment mettre en place ces fichiers et les utiliser.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article26\/afficher-une-sidebar-differente-pour-chaque-page-statique\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"afficher-une-sidebar-differente-pour-chaque-page-statique\"\n\t\t\t},\n\t\t\t\"headline\": \"Afficher une sidebar diff\u00e9rente pour chaque page statique\",\n\t\t\t\"datePublished\": \"2013-09-24T08:29:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Page statique, PluXml, Sidebar, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "Imaginons que nous voulons trois sidebars diff\u00e9rentes: il nous faut donc trois fichiers\u003Cbr \/\u003E\n\n\u003Cul\u003E\n\u003Cli\u003Esidebar-1.php : sidebar correspondant \u00e0 la page statique avec l'identifiant 001\u003C\/li\u003E\n\u003Cli\u003Esidebar-2.php : sidebar correspondant \u00e0 la page statique avec l'identifiant 002\u003C\/li\u003E\n\u003Cli\u003Esidebar-3.php : sidebar correspondant \u00e0 la page statique avec l'identifiant 003\u003C\/li\u003E\n\u003C\/ul\u003E\n\nDans le dossier de notre th\u00e8me, prenons par exemple le th\u00e8me par d\u00e9faut stock\u00e9 dans le dossier themes\/defaut\/, cr\u00e9ez ces trois fichiers. Il suffit de dupliquer le fichier sidebar.php et de donner aux fichiers le nom sidebar-1.php, sidebar-2.php et sidebar-3.php.\u003Cbr \/\u003EModifiez et adaptez ces fichiers en fonction de vos besoins.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nPour rappel, les pages statiques sont affich\u00e9es gr\u00e2ce au fichier static.php, dans lequel l'instruction suivante permet d'afficher la sidebar (fichier sidebar.php)\u003Cbr \/\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\tinclude(dirname(__FILE__).'\/sidebar.php');\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\nRemplacez donc cette ligne par le code ci-dessous:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php \n\t$sidebar = dirname(__FILE__).'\/sidebar-'.$plxShow-\u003EstaticId().'.php';\n\tif(file_exists($sidebar))\n\t\tinclude($sidebar); \n\telse\n\t\tinclude(dirname(__FILE__).'\/sidebar.php');\n?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nNous utilisons ici la fonction \u003Cem\u003EstaticId()\u003C\/em\u003E de la classe \u003Cem\u003EplxShow\u003C\/em\u003E (fichier core\/lib\/class.plx.show.php) qui renvoie la valeur num\u00e9rique de l'identifiant de la page statique en cours de visualisation.\u003Cbr \/\u003E\n\nAinsi, lorsqu'on visualise la page statique avec l'identifiant 001, la fonction staticId() renvoie la valeur 1.\u003Cbr \/\u003E\u003Cbr \/\u003E\nCe que fait le nouveau code est de regarder si le fichier sidebar-1.php existe.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\n\u003Cem\u003ESi\u003C\/em\u003E le fichier sidebar-1.php est pr\u00e9sent \u003C\/em\u003Ealors\u003C\/em\u003E on affiche le contenu du fichier sidebar-1.php\u003Cbr \/\u003E\n\u003Cem\u003ESinon\u003C\/em\u003E on affiche la sidebar par d\u00e9faut, c'est \u00e0 dire le fichier sidebar.php\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nLe principe est le m\u00eame si on est sur la page 002 (sidebar-2.php) ou sur la page statique 003 (fichier sidebar-3.php).\nS'il n'y a pas de fichier sidebar d\u00e9di\u00e9, c'est le fichier sidebar.php qui est utilis\u00e9.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nVoil\u00e0 vous pouvez donc pr\u00e9parer autant de fichier sidebar que n\u00e9cessaire pour vos pages statiques.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nUne autre m\u00e9thode aurait \u00e9t\u00e9 d'utiliser un template diff\u00e9rent pour chaque page statique en y adaptant le contenu de la sidebar.\u003Cbr \/\u003E",
            "tags": "Page statique, PluXml, Sidebar, Th\u00e8me",
            "meta_description": "Tutorial pour PluXml pour afficher une sidebar diff\u00e9rente pour chaque page statique",
            "meta_keywords": "PluXml, sidebar, page statique, th\u00e8me",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0026",
            "author": "001",
            "categorie": "001",
            "url": "afficher-une-sidebar-differente-pour-chaque-page-statique",
            "date": "201309240829",
            "nb_com": 5,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0025.004,006.001.201309061037.mes-plugins-pour-pluxml-sur-github.xml",
            "title": "Mes plugins pour PluXml sur github",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "J'ai r\u00e9cemment pass\u00e9 tous les sources des plugins pour PluXml que je d\u00e9veloppe et maintiens sur la plateforme github. C'est certainement la meilleure solution pour partager et permettre \u00e0 chacun de participer ou suivre leur d\u00e9veloppement.\u003Cbr \/\u003E\u003Cbr \/\u003E\nVous pouvez utiliser le bug tracker de github pour signaler les probl\u00e8mes rencontr\u00e9s ou faire des demandes d'\u00e9volutions. Cela vous permettra d'avoir un meilleur retour, et de mon cot\u00e9 je pourrais mieux suivre les diff\u00e9rentes t\u00e2ches \u00e0 r\u00e9aliser pour r\u00e9pondre \u00e0 vos besoins.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nRetrouvez donc tous les d\u00e9pots \u003Cstrong\u003Egit\u003C\/strong\u003E de mes \u003Cstrong\u003Eplugins\u003C\/strong\u003E pour \u003Cstrong\u003EPluXml\u003C\/strong\u003E \u00e0 l'adresse suivante:\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Ca href=\"https:\/\/github.com\/Pluxopolis\" title=\"D\u00e9pots git des plugins pour PluXml sur github\"\u003Ehttps:\/\/github.com\/Pluxopolis\u003C\/a\u003E\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nN'h\u00e9sitez pas \u00e9galement \u00e0 vous rendre sur le \u003Ca href=\"http:\/\/forum.pluxml.org\/\" title=\"forum de PluXml.org\"\u003Eforum de PluXml\u003C\/a\u003E.\u003Cbr \/\u003E\nLa communaut\u00e9 est tr\u00e8s pr\u00e9sente et active et r\u00e9pondra \u00e0 toutes vos questions.\u003Cbr \/\u003E C'est aussi une mine d'informations sur PluXml.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article25\/mes-plugins-pour-pluxml-sur-github\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"mes-plugins-pour-pluxml-sur-github\"\n\t\t\t},\n\t\t\t\"headline\": \"Mes plugins pour PluXml sur github\",\n\t\t\t\"datePublished\": \"2013-09-06T10:37:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Programmation, git, github, PluXml\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Programmation, git, github, PluXml",
            "meta_description": "Adresse github pour les d\u00e9pots git des plugins pour PluXml",
            "meta_keywords": "PluXml, git, github, plugins",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0025",
            "author": "001",
            "categorie": "004,006",
            "url": "mes-plugins-pour-pluxml-sur-github",
            "date": "201309061037",
            "nb_com": 5,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0024.001.001.201309031505.modifier-l-affichage-du-chapo-en-mode-article.xml",
            "title": "Modifier l'affichage du chapo en mode article",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "\u003Cp\u003E\nVoici une astuce pour avoir un affichage diff\u00e9rent du chapo et du contenu d'un article en mode \u003Cem\u003Earticle\u003C\/em\u003E, c'est \u00e0 dire lors de la visualisation du d\u00e9tail d'un article.\n\u003C\/p\u003E\n\u003Cp\u003E\nComme toujours, je prends comme r\u00e9f\u00e9rence le th\u00e8me par d\u00e9faut de PluXml (5.2), stock\u00e9 dans le dossier \u003Cem\u003Ethemes\/defaut\u003C\/em\u003E.\n\u003C\/p\u003E\n\u003Ch2\u003EModifications\u003C\/h2\u003E\n\nEditez le fichier \u003Cem\u003Earticle.php\u003C\/em\u003E et remplacez les lignes suivantes:\n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;section\u003E\n\t&lt;?php $plxShow-\u003EartContent(); ?\u003E\n&lt;\/section\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\npar\n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;section\u003E\n\t&lt;div class=\"chapo\"\u003E\n\t\t&lt;?php $plxShow-\u003EartChapo('', false); ?\u003E\n\t&lt;\/div\u003E\n\t&lt;?php $plxShow-\u003EartContent(false); ?\u003E\n&lt;\/section\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nEditez le fichier style.css du th\u00e8me et ajoutez \u00e0 la fin du fichier les lignes suivantes:\n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n.chapo {\n\tmargin-top: 15px;\n\tfont-size: 12px;\n\tfont-style:italic;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Ch2\u003EExplications\u003C\/h2\u003E\n\n\u003Ch3\u003EAffichage du chapo\u003C\/h3\u003E\n\nPour afficher uniquement le chapo en mode article nous utilisons la fonction suivante:\n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n$plxShow-\u003EartChapo('', false); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nLe premier param\u00e8tre sert \u00e0 formater le lien \"Lire la suite\". Comme nous sommes en mode article, nous n'avons pas besoin de cet affichage, c'est pourquoi le param\u00e8tre est \u00e0 blanc.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nLe deuxi\u00e8me param\u00e8tre est un bool\u00e9en qui permet d'afficher le contenu de l'article.\u003Cbr \/\u003E\nSi le param\u00e8tre est \u003Cem\u003Etrue\u003C\/em\u003E, le contenu de l'article est affich\u00e9.\u003Cbr \/\u003E\nSi le param\u00e8tre est \u003Cem\u003Efalse\u003C\/em\u003E, le contenu de l'article n'est pas affich\u00e9.\u003Cbr \/\u003E\n\u003Cbr \/\u003E\nIci nous ne voulons pas afficher le contenu de l'article car nous allons utiliser pour cela l'instruction \u003Cem\u003E$plxShow-\u003EartContent()\u003C\/em\u003E.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nRemarquez que nous avons utilis\u00e9 une balise &lt;div\u003E pour englober l'affichage du chapo. C'est cette balise &lt;div\u003E qui nous permet de personnaliser l'affichage gr\u00e2ce \u00e0 la feuille de style en d\u00e9finissant les proprit\u00e9s de la classe \u003Cem\u003E.chapo\u003C\/em\u003E (voir plus bas le paragraphe: Mise en forme du chapo).\n\n\u003Ch3\u003EAffichage du contenu\u003C\/h3\u003E\n\nPour afficher le contenu de l'article nous utilisons l'instruction:\n\u003Cbr \/\u003E \n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n$plxShow-\u003EartContent(false); \n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Cem\u003E$plxShow-\u003EartContent()\u003C\/em\u003E permet \u00e0 la fois d'afficher le chapo et le contenu de l'article.\u003Cbr \/\u003E\nIci nous ne voulons pas afficher le chapo car nous l'avons fait pr\u00e9cedemment avec l'instruction \u003Cem\u003E$plxShow-\u003EartChapo()\u003C\/em\u003E.\u003Cbr \/\u003E\nPour ne pas afficher le chapo, il suffit de passer la valeur \u003Cem\u003Efalse\u003C\/em\u003E comme param\u00e8tre \u00e0 \u003Cem\u003E$plxShow-\u003EartContent()\u003C\/em\u003E.\n\n\u003Ch3\u003EMise en forme du chapo\u003C\/h3\u003E\n\nLe chapo \u00e9tant englober dans une balise &lt;div\u003E identifi\u00e9e par la classe \u003Cem\u003Echapo\u003C\/em\u003E, il ne reste plus qu'\u00e0 d\u00e9finir ses propri\u00e9t\u00e9s dans la feuille de style (fichier \u003Cem\u003Estyle.css\u003C\/em\u003E) du th\u00e8me.\n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n.chapo {\n\tmargin-top: 15px;\n\tfont-size: 12px;\n\tfont-style:italic;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\nIl est donc possible ici de changer la taille de la police de caract\u00e8re utilis\u00e9e, la couleur, les marges ou padding du bloc &lt;div\u003E pour personnaliser le chapo.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nA vous maintenant d'imaginer votre style de pr\u00e9sentation.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article24\/modifier-l-affichage-du-chapo-en-mode-article\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"modifier-l-affichage-du-chapo-en-mode-article\"\n\t\t\t},\n\t\t\t\"headline\": \"Modifier l'affichage du chapo en mode article\",\n\t\t\t\"datePublished\": \"2013-09-03T15:05:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Tuto, Th\u00e8me, Article\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "PluXml, Tuto, Th\u00e8me, Article",
            "meta_description": "",
            "meta_keywords": "",
            "title_htmltag": "Tutorial pour PluXml pour d\u00e9finir un affichage diff\u00e9rent du chapo et du contenu d'un article en mode article",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0024",
            "author": "001",
            "categorie": "001",
            "url": "modifier-l-affichage-du-chapo-en-mode-article",
            "date": "201309031505",
            "nb_com": 4,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0023.001.001.201308281415.changer-le-titre-du-menu-accueil.xml",
            "title": "Changer le titre du menu Accueil",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Il y a deux solutions pour changer le titre du menu \u003Cem\u003EAccueil\u003C\/em\u003E.\n\n\u003Ch2\u003ESolution 1\u003C\/h2\u003E\n\nLe th\u00e8me par d\u00e9faut est un th\u00e8me multi-langues. La langue utilis\u00e9e peut \u00eatre chang\u00e9e \u00e0 partir de la zone d'administration en allant dans le menu \u003Cem\u003EParam\u00e8tres\u003C\/em\u003E \u003E \u003Cem\u003EConfiguration de base\u003C\/em\u003E et en modifiant la valeur de la liste d\u00e9roulante \u003Cem\u003ELangue par d\u00e9faut du site\u003C\/em\u003E.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nLes cl\u00e9s de traduction sont stock\u00e9es dans les fichiers du dossier \u003Cem\u003Ethemes\/defaut\/lang\u003C\/em\u003E.\u003Cbr \/\u003EAinsi dans le fichier \u003Cem\u003Efr.php\u003C\/em\u003E de ce dossier on trouve la ligne:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n'HOME'\t\t\t\t\t=\u003E 'Accueil',\n\u003C\/code\u003E\u003C\/pre\u003E\n\nEn changeant \u003Cem\u003EAccueil\u003C\/em\u003E par le titre de remplacement souhait\u00e9, le titre du menu sera chang\u00e9.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nLa m\u00eame modification est \u00e0 faire dans tous les fichiers de langue du dossier \u003Cem\u003Ethemes\/defaut\/lang\u003C\/em\u003E si vous utilisez d'autres langues que le fran\u00e7ais.\n\n\u003Ch2\u003ESolution 2\u003C\/h2\u003E\n\nLa deuxi\u00e8me solution est plus simple et rapide. Elle consiste \u00e0 modifer directement le fichier \u003Cem\u003Eheader.php\u003C\/em\u003E.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u00c9ditez le fichier \u003Cem\u003Ethemes\/defaut\/lang\/header.php\u003C\/em\u003E.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nLocalisez la ligne suivante:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EstaticList($plxShow-\u003EgetLang('HOME'),'\u003Cli id=\"#static_id\"\u003E\u003Ca href=\"#static_url\" class=\"#static_status\" title=\"#static_name\"\u003E#static_name\u003C\/a\u003E\u003C\/li\u003E'); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nRemplacez le texte suivant par le titre que vous souhaitez afficher\n \n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n$plxShow-\u003EgetLang('HOME')\n\u003C\/code\u003E\u003C\/pre\u003E\n\nExemple:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EstaticList('Page d\\'accueil','\u003Cli id=\"#static_id\"\u003E\u003Ca href=\"#static_url\" class=\"#static_status\" title=\"#static_name\"\u003E#static_name\u003C\/a\u003E\u003C\/li\u003E'); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article23\/changer-le-titre-du-menu-accueil\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"changer-le-titre-du-menu-accueil\"\n\t\t\t},\n\t\t\t\"headline\": \"Changer le titre du menu Accueil\",\n\t\t\t\"datePublished\": \"2013-08-28T14:15:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Navigation, PluXml, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Navigation, PluXml, Th\u00e8me",
            "meta_description": "Tutorial pour PluXml pour changer le titre du menu Accueil",
            "meta_keywords": "PluXml, Tuto, Menu, Accueil",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0023",
            "author": "001",
            "categorie": "001",
            "url": "changer-le-titre-du-menu-accueil",
            "date": "201308281415",
            "nb_com": 2,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0022.006.001.201308201743.probleme-de-formulaires-avec-max-input-vars-php-5-3-9.xml",
            "title": "Probl\u00e8me de formulaires avec max_input_vars (PHP 5.3.9+)",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Depuis la version de \u003Cstrong\u003EPHP 5.3.9\u003C\/strong\u003E une nouvelle directive dans le fichier \u003Cstrong\u003Ephp.ini\u003C\/strong\u003E limite le nombre de champs de saisie trait\u00e9 apr\u00e8s la soumission d'un formulaire. Cette directive s'appelle \u003Cstrong\u003Emax_input_vars\u003C\/strong\u003E. Par d\u00e9faut seuls les 1000 champs sont trait\u00e9s, les suivants sont tout simplement ignor\u00e9s. Elle affecte les variables $_GET, $_POST et $_COOKIE.\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nConcr\u00e8tement cela veut dire que si vous avez un grand formulaire qui contient plus de 1000 champs (champ texte, checkbox, hidden, etc...), lorsque vous allez traiter les variables $_POST apr\u00e8s la soumission du formulaire, seuls les 1000 premi\u00e8res variables $_POST seront accessibles, les autres ne seront pas pr\u00e9sentes dans le tableau $_POST.\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nVoil\u00e0 donc une restriction, qui pour des raisons de s\u00e9curit\u00e9 est justif\u00e9e afin d'\u00e9viter des attaques par d\u00e9ni de service, mais qui sera vite un gros probl\u00e8me si vous avez \u00e0 traiter des gros formulaires.\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nIl y a trois solutions pour passer outre cette restriction.\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\n\u003Cstrong\u003ESolution 1\u003C\/strong\u003E\u003Cbr \/\u003E\nSi vous avez acc\u00e8s au fichier \u003Cstrong\u003Ephp.ini\u003C\/strong\u003E sur votre serveur, \u00e9ditez le et recherchez le param\u00e8tre \u003Cstrong\u003Emax_input_vars\u003C\/strong\u003E. Changez sa valeur 1000 par une plus grande en fonction de vos besoins, pour avoir par exemple:\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Ccode\u003E\nmax_input_vars = 3000\n\u003C\/code\u003E\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cstrong\u003ESolution 2\u003C\/strong\u003E\u003Cbr \/\u003E\nSi vous n'avez pas acc\u00e8s au php.ini, il reste la solution du fichier \u003Cstrong\u003E.htaccess.\u003C\/strong\u003E\u003Cbr \/\u003E\nA la racine de votre site \u00e9ditez ou cr\u00e9ez un fichier .htaccess dans lequel vous mettrez sur la 1\u00e8re ligne l'instruction suivante:\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Ccode\u003E\nphp_value max_input_vars 3000\n\u003C\/code\u003E\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cstrong\u003ESolution 3\u003C\/strong\u003E\u003Cbr \/\u003E\nDerni\u00e8re solution: utiliser l'instruction \u003Ca href=\"http:\/\/php.net\/manual\/fr\/function.ini-set.php\" title=\"init_set\"\u003Einit_set\u003C\/a\u003E dans un fichier php pour modifier la valeur du param\u00e8tre max_input_vars de cette fa\u00e7on:\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Ccode\u003E\nini_set('max_input_vars', 3000);\n\u003C\/code\u003E\u003Cbr \/\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article22\/probleme-de-formulaires-avec-max-input-vars-php-5-3-9\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"probleme-de-formulaires-avec-max-input-vars-php-5-3-9\"\n\t\t\t},\n\t\t\t\"headline\": \"Probl\u00e8me de formulaires avec max_input_vars (PHP 5.3.9+)\",\n\t\t\t\"datePublished\": \"2013-08-20T17:43:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PHP\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "PHP",
            "meta_description": "Solution pour r\u00e9soudre le probl\u00e8me des formulaires avec max_input_vars",
            "meta_keywords": "php, max_input_vars",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0022",
            "author": "001",
            "categorie": "006",
            "url": "probleme-de-formulaires-avec-max-input-vars-php-5-3-9",
            "date": "201308201743",
            "nb_com": 8,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0020.001.001.201307240957.validation-des-commentaires-en-jquery.xml",
            "title": "Validation des commentaires en jQuery",
            "allow_com": "0",
            "template": "article.php",
            "chapo": "\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0020\/comments.png\" alt=\"\" \/\u003E\u003C\/p\u003E\n\u003Cbr \/\u003E\nAvec ce tutoriel nous allons voir comment valider en jQuery les champs de saisie du formulaire des commentaires. L'objectif est d'afficher des messages \"Champ obligatoire\", \"Adresse email invalide\", \"Url invalide\" lorsque les crit\u00e8res de saisie ne seront pas corrects.\u003Cbr \/\u003E\u003Cbr \/\u003E\nPour la d\u00e9mo, j'utilise:\n\u003Cul\u003E\n\u003Cli\u003ELe th\u00e8me par d\u00e9faut de \u003Ca href=\"http:\/\/www.pluxml.org\" title=\"PluXml\"\u003EPluXml\u003C\/a\u003E 5.1.7,\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\"http:\/\/jquery.com\" title=\"jQuery\"\u003EjQuery 1.10.2\u003C\/a\u003E,\u003C\/li\u003E\n\u003Cli\u003Ele plugin jQuery de validation des formulaires \u003Ca href=\"http:\/\/validation.bassistance.de\/\" title=\"jQuery Validation Plugin\"\u003EjQuery Validation Plugin\u003C\/a\u003E.\u003C\/li\u003E\n\u003C\/ul\u003E\nMode d'emploi...\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article20\/validation-des-commentaires-en-jquery\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"validation-des-commentaires-en-jquery\"\n\t\t\t},\n\t\t\t\"headline\": \"Validation des commentaires en jQuery\",\n\t\t\t\"datePublished\": \"2013-07-24T09:57:00Z\",\n\t\t\t\"dateModified\": \"2013-07-24T09:57:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Commentaires, jQuery, Programmation, Tuto, Validation\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch2\u003EPr\u00e9-requis\u003C\/h2\u003E\nCommencez par t\u00e9l\u00e9chargez les fichiers \u003Ca href=\"http:\/\/jquery.com\/download\/\" title=\"jQuery\"\u003Ejquery.min.js\u003C\/a\u003E et \u003Ca href=\"http:\/\/validation.bassistance.de\/\" title=\"jQuery Validation Plugin\"\u003Ejquery.validate.min.js\u003C\/a\u003E\u003Cbr \/\u003E\nD\u00e9posez ces fichiers dans le dossier de votre th\u00e8me: \u003Cem\u003Ethemes\/defaut\/js\/\u003C\/em\u003E\n\u003Ch2\u003EInstallation\u003C\/h2\u003E\nEditez le fichier \u003Cem\u003Eheader.php\u003C\/em\u003E de votre th\u00e8me.\u003Cbr \/\u003E\nAvant la ligne &lt;\/head\u003E, ajoutez le code suivant:\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php if($plxShow-\u003Emode()=='article') : ?\u003E\n&lt;!-- &lt;comments validation\u003E --\u003E\n&lt;script src=\"&lt;?php $plxShow-\u003Etemplate(); ?\u003E\/js\/jquery-1.10.2.min.js\"\u003E&lt;\/script\u003E\n&lt;script src=\"&lt;?php $plxShow-\u003Etemplate(); ?\u003E\/js\/jquery.validate.min.js\"\u003E&lt;\/script\u003E\n\n&lt;script type=\"text\/javascript\"\u003E\n$(document).ready(function(){\n\t$(\"#commentform\").validate({\n\t\tmessages: {\n\t\t\tname: \"Champ obligatoire\",\n\t\t\tsite: \"Url invalide\",\n\t\t\tmail: {\n\t\t\t\trequired: \"Champ obligatoire\",\n\t\t\t\temail: \"Adresse email invalide\"\n\t\t\t},\n\t\t\tcontent: \"Champ obligatoire\"\n\t\t}\n\t});\n});\n&lt;\/script\u003E\n&lt;style type=\"text\/css\"\u003E\n#commentform label.error {\n\twidth: auto;\n\tdisplay: block;\n\tcolor: #ff0000;\n\tmargin:5px 0;\n\tpadding:0;\n\tfont-size: 11px;\n}\n#commentform p {\n\tmargin-top: 15px;\n}\ninput, textarea {\n\tmargin: 0 !important;\n}\n&lt;\/style\u003E\n&lt;!-- &lt;\/comments validation\u003E --\u003E\n&lt;?php endif; ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cbr \/\u003E\nEditez le fichier \u003Cem\u003Ecommentaires.php\u003C\/em\u003E de votre th\u00e8me.\u003Cbr \/\u003E\nSupprimer les lignes suivantes,\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\t\t&lt;form action=\"&lt;?php $plxShow-\u003EartUrl(); ?\u003E#form\" method=\"post\"\u003E\n\t\t\t&lt;fieldset\u003E\n\t\t\t\t&lt;p\u003E&lt;label for=\"id_name\"\u003E&lt;?php $plxShow-\u003Elang('NAME') ?\u003E&nbsp;:&lt;\/label\u003E&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E&lt;input id=\"id_name\" name=\"name\" type=\"text\" size=\"20\" value=\"&lt;?php $plxShow-\u003EcomGet('name',''); ?\u003E\" maxlength=\"30\" \/\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;label for=\"id_site\"\u003E&lt;?php $plxShow-\u003Elang('WEBSITE') ?\u003E&nbsp;:&lt;\/label\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;input id=\"id_site\" name=\"site\" type=\"text\" size=\"20\" value=\"&lt;?php $plxShow-\u003EcomGet('site',''); ?\u003E\" \/\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;label for=\"id_mail\"\u003E&lt;?php $plxShow-\u003Elang('EMAIL') ?\u003E&nbsp;:&lt;\/label\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;input id=\"id_mail\" name=\"mail\" type=\"text\" size=\"20\" value=\"&lt;?php $plxShow-\u003EcomGet('mail',''); ?\u003E\" \/\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;label for=\"id_content\" class=\"lab_com\"\u003E&lt;?php $plxShow-\u003Elang('COMMENT') ?\u003E&nbsp;:&lt;\/label\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;textarea id=\"id_content\" name=\"content\" cols=\"35\" rows=\"6\"\u003E&lt;?php $plxShow-\u003EcomGet('content',''); ?\u003E&lt;\/textarea\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p class=\"com-alert\"\u003E\n\t\t\t\t\t&lt;?php $plxShow-\u003EcomMessage(); ?\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;?php if($plxShow-\u003EplxMotor-\u003EaConf['capcha']): ?\u003E\n\t\t\t\t\t&lt;label for=\"id_rep\"\u003E&lt;strong\u003E&lt;?php echo $plxShow-\u003Elang('ANTISPAM_WARNING') ?\u003E&lt;\/strong\u003E&nbsp;:&lt;\/label\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;?php $plxShow-\u003EcapchaQ(); ?\u003E&nbsp;:&nbsp;&lt;input id=\"id_rep\" name=\"rep\" type=\"text\" size=\"10\" \/\u003E\n\t\t\t\t\t&lt;?php endif; ?\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;input type=\"submit\" value=\"&lt;?php $plxShow-\u003Elang('SEND') ?\u003E\" \/\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t&lt;\/fieldset\u003E\n\t\t&lt;\/form\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\net remplacez les par le code suivant:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\t\t&lt;form action=\"&lt;?php $plxShow-\u003EartUrl(); ?\u003E#form\" method=\"post\" id=\"commentform\"\u003E\n\t\t\t&lt;fieldset\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;label for=\"id_name\"\u003E&lt;?php $plxShow-\u003Elang('NAME') ?\u003E&nbsp;:&lt;\/label\u003E&lt;\/p\u003E\n\t\t\t\t\t&lt;input class=\"required\" id=\"id_name\" name=\"name\" type=\"text\" size=\"20\" value=\"&lt;?php $plxShow-\u003EcomGet('name',''); ?\u003E\" maxlength=\"30\" \/\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;label for=\"id_site\"\u003E&lt;?php $plxShow-\u003Elang('WEBSITE') ?\u003E&nbsp;:&lt;\/label\u003E\n\t\t\t\t\t&lt;input class=\"url\" id=\"id_site\" name=\"site\" type=\"text\" size=\"20\" value=\"&lt;?php $plxShow-\u003EcomGet('site',''); ?\u003E\" \/\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;label for=\"id_mail\"\u003E&lt;?php $plxShow-\u003Elang('EMAIL') ?\u003E&nbsp;:&lt;\/label\u003E\n\t\t\t\t\t&lt;input class=\"required email\" id=\"id_mail\" name=\"mail\" type=\"text\" size=\"20\" value=\"&lt;?php $plxShow-\u003EcomGet('mail',''); ?\u003E\" \/\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;label for=\"id_content\" class=\"lab_com\"\u003E&lt;?php $plxShow-\u003Elang('COMMENT') ?\u003E&nbsp;:&lt;\/label\u003E\n\t\t\t\t\t&lt;textarea class=\"required\" id=\"id_content\" name=\"content\" cols=\"35\" rows=\"6\"\u003E&lt;?php $plxShow-\u003EcomGet('content',''); ?\u003E&lt;\/textarea\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p class=\"com-alert\"\u003E\n\t\t\t\t\t&lt;?php $plxShow-\u003EcomMessage(); ?\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;?php if($plxShow-\u003EplxMotor-\u003EaConf['capcha']): ?\u003E\n\t\t\t\t\t&lt;label for=\"id_rep\"\u003E&lt;strong\u003E&lt;?php echo $plxShow-\u003Elang('ANTISPAM_WARNING') ?\u003E&lt;\/strong\u003E&nbsp;:&lt;\/label\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;?php $plxShow-\u003EcapchaQ(); ?\u003E&nbsp;:&nbsp;&lt;input id=\"id_rep\" name=\"rep\" type=\"text\" size=\"10\" \/\u003E\n\t\t\t\t\t&lt;?php endif; ?\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t\t&lt;p\u003E\n\t\t\t\t\t&lt;input type=\"submit\" value=\"&lt;?php $plxShow-\u003Elang('SEND') ?\u003E\" \/\u003E\n\t\t\t\t&lt;\/p\u003E\n\t\t\t&lt;\/fieldset\u003E\n\t\t&lt;\/form\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cbr \/\u003E\nSauvegardez les fichiers. Voil\u00e0 notre syst\u00e8me de validation est en place.\n\u003Ch2\u003EExplications\u003C\/h2\u003E\nAu niveau du formulaire des commentaires, nous avons mis en place poour la balise &lt;form\u003E un id\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nid=\"commentform\"\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cbr \/\u003E\nNous avons rajout\u00e9 pour les champs \u00e0 controler une classe avec les mots cl\u00e9s g\u00e9r\u00e9s par le script de validation.\u003Cbr \/\u003E\u003Cbr \/\u003E\nExemple: pour le champ \u003Cem\u003EVote nom ou votre pseudo\u003C\/em\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nclass=\"required\"\n\u003C\/code\u003E\u003C\/pre\u003E\nLe mot cl\u00e9 \u003Cem\u003Erequired\u003C\/em\u003E impose la saisie obligatoire.\u003Cbr \/\u003E\u003Cbr \/\u003E\nExemple: pour le champ \u003Cem\u003EVotre site Internet\u003C\/em\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nclass=\"url\"\n\u003C\/code\u003E\u003C\/pre\u003E\nLe mot cl\u00e9 \u003Cem\u003Eurl\u003C\/em\u003E impose la saisie d'une url valide.\u003Cbr \/\u003E\u003Cbr \/\u003E\nExemple: pour le champ \u003Cem\u003EVotre adresse e-mail\u003C\/em\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nclass=\"required email\"\n\u003C\/code\u003E\u003C\/pre\u003E\nLe mot cl\u00e9 \u003Cem\u003Erequired\u003C\/em\u003E impose la saisie obligatoire, et le mot cl\u00e9 \u003Cem\u003Eemail\u003C\/em\u003E impose une adresse email valide.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nToutes la liste des mots cl\u00e9s sont disponibles sur la page de documentation du plugin: \u003Ca href=\"http:\/\/validation.bassistance.de\/documentation\/\" title=\"jQuery Validation Plugin Documentation\"\u003EDocumentation\u003C\/a\u003E\u003Cbr \/\u003E\u003Cbr \/\u003E\nLes messages \u00e0 afficher en cas d'erreurs sont sp\u00e9cifi\u00e9s avec le bout de code suivante\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;script type=\"text\/javascript\"\u003E\n$(document).ready(function(){\n\t$(\"#commentform\").validate({\n\t\tmessages: {\n\t\t\tname: \"Champ obligatoire\",\n\t\t\tsite: \"Url invalide\",\n\t\t\tmail: {\n\t\t\t\trequired: \"Champ obligatoire\",\n\t\t\t\temail: \"Adresse email invalide\"\n\t\t\t},\n\t\t\tcontent: \"Champ obligatoire\"\n\t\t}\n\t});\n});\n&lt;\/script\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cbr \/\u003E\nLe comportement visuel des messages (couleur rouge, positionnement en dessous des champs) est fait avec ce code:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;style type=\"text\/css\"\u003E\n#commentform label.error {\n\twidth: auto;\n\tdisplay: block;\n\tcolor: #ff0000;\n\tmargin:5px 0;\n\tpadding:0;\n\tfont-size: 11px;\n}\n#commentform p {\n\tmargin-top: 15px;\n}\ninput, textarea {\n\tmargin: 0 !important;\n}\n&lt;\/style\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nLe code css peut \u00eatre d\u00e9port\u00e9 dans le fichier \u003Cem\u003Estyle.css\u003C\/em\u003E de votre th\u00e8me.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPetite remarque: afin de ne prendre en compte la validation que lors de la visualisation d'un article, je fais un test sur le mode d'affichage en cours pour ne charger les scripts et le code n\u00e9cessaire qu'en mode \u003Cem\u003Earticle\u003C\/em\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php if($plxShow-\u003Emode()=='article') : ?\u003E\n...\n&lt;?php endif; ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Ch2\u003EEn cas de probl\u00e8mes\u003C\/h2\u003E\nQuelques pistes \u00e0 v\u00e9rifier si le syst\u00e8me de validation des commentaires ne fonctionne pas:\u003Cbr \/\u003E\n\u003Cul\u003E\n\u003Cli\u003EEst-ce que les fichiers \u003Cem\u003Ejquery.min.js\u003C\/em\u003E et \u003Cem\u003Ejquery.validate.min.js\u003C\/em\u003E sont bien pr\u00e9sents dans le dossier \u003Cem\u003Ethemes\/defaut\/js\u003C\/em\u003E ?\u003C\/li\u003E\n\u003Cli\u003EEst-ce que jquery est utilis\u00e9 plusieurs fois sur votre site, o\u00f9 plusieurs versions diff\u00e9rentes viendraient en conflit ? Veuillez \u00e0 n'avoir jquery de charger qu'une seule fois.\u003C\/li\u003E\n\u003Cli\u003EUtilisez-vous le plugin jquery qui viendrait en conflit avec jQquery 1.10.2 charg\u00e9 au d\u00e9but de la page \u003Cem\u003Eheader.php\u003C\/em\u003E\u003C\/li\u003E\n\u003Cli\u003EAvez-vous bien respecter la proc\u00e9dure d'installation et le copier-coller\u003C\/li\u003E\n\u003Cli\u003ESi les messages d'erreurs s'affichent mal, les propri\u00e9t\u00e9s css rentrent peut-\u00eatre en conflit avec celles de votre feuille de style (fichier \u003Cem\u003Estyle.css\u003C\/em\u003E)\u003C\/li\u003E\n\u003C\/ul\u003E\nN'h\u00e9sitez pas \u00e0 tester le syst\u00e8me de validation des commentaires avec le th\u00e8me par d\u00e9faut de PluXml pour vous assurez qu'il est op\u00e9rationnel et comprendre son fonctionnement. Cela vous sera plus facile pour l'adapter et l'int\u00e9grer \u00e0 votre site. Les probl\u00e8mes sont souvent li\u00e9s \u00e0 l'organisation de votre th\u00e8me.",
            "tags": "Commentaires, jQuery, Programmation, Tuto, Validation",
            "meta_description": "Tutorial pour PluXml pour valider les commentaires avec jQuery",
            "meta_keywords": "PluXml, Commentaires, jQuery, Programmation, Tuto",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0020",
            "author": "001",
            "categorie": "001",
            "url": "validation-des-commentaires-en-jquery",
            "date": "201307240957",
            "nb_com": 2,
            "date_creation": "201307240957",
            "date_update": "201307240957"
        },
        {
            "filename": ".\/data\/articles\/0019.001.001.201307161016.creer-une-pagination-pour-les-commentaires.xml",
            "title": "Cr\u00e9er une pagination pour les commentaires",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0019\/paginate.png\" alt=\"\" \/\u003E\u003C\/p\u003E\n\u003Cbr \/\u003E\nJe vous propose de mettre en place un syst\u00e8me de pagination pour les commentaires \u00e0 base de jQuery.\u003Cbr \/\u003E\nPour ce tutoriel je me base sur:\n\u003Cul\u003E\n\u003Cli\u003ELe th\u00e8me par d\u00e9faut de \u003Ca href=\"http:\/\/www.pluxml.org\" title=\"PluXml\"\u003EPluXml\u003C\/a\u003E 5.1.7,\u003C\/li\u003E\n\u003Cli\u003E\u003Ca href=\"http:\/\/jquery.com\" title=\"jQuery\"\u003EjQuery 1.10.2\u003C\/a\u003E,\u003C\/li\u003E\n\u003Cli\u003Ele script de pagination \u003Ca href=\"http:\/\/th3silverlining.com\/2010\/04\/15\/pajination-a-jquery-pagination-plugin\/\" title=\"Paginate\"\u003EPaginate\u003C\/a\u003E.\u003C\/li\u003E\n\u003C\/ul\u003E\nMode d'emploi...\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article19\/creer-une-pagination-pour-les-commentaires\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"creer-une-pagination-pour-les-commentaires\"\n\t\t\t},\n\t\t\t\"headline\": \"Cr\u00e9er une pagination pour les commentaires\",\n\t\t\t\"datePublished\": \"2013-07-16T10:16:00Z\",\n\t\t\t\"dateModified\": \"2013-07-16T10:16:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, jQuery, Programmation, Tuto, Commentaires, Navigation\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Ch2\u003EInstallation\u003C\/h2\u003E\nCommencez par t\u00e9l\u00e9charger cette \u003Ca href=\"data\/documents\/0019\/paginate.zip\" title=\"Pagination des commentaires pour PluXml\"\u003Earchive\u003C\/a\u003E et d\u00e9compressez le fichier .zip dans le dossier de votre th\u00e8me. Pour la d\u00e9mo j'utilise le th\u00e8me par d\u00e9faut de PluXml stock\u00e9 dans le dossier \u003Cem\u003Ethemes\/defaut\u003C\/em\u003E. Ce fichier .zip contient les scripts javascript pour faire fonctionner le syst\u00e8me de pagination des commentaires.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nEditez le fichier header.php de votre th\u00e8me.\u003Cbr \/\u003E\nAvant la ligne &lt;\/head\u003E, ajoutez le code suivant:\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php if($plxShow-\u003Emode()=='article') : ?\u003E\n&lt;!-- &lt;comments pagination\u003E --\u003E\n&lt;script sr\u003C!-- --\u003Ec=\"&lt;?php $plxShow-\u003Etemplate(); ?\u003E\/paginate\/jquery-1.10.2.min.js\"\u003E&lt;\/script\u003E\n&lt;script sr\u003C!-- --\u003Ec=\"&lt;?php $plxShow-\u003Etemplate(); ?\u003E\/paginate\/paginate.min.js\"\u003E&lt;\/script\u003E\n&lt;script\u003E\n$(document).ready(function(){\n\t$('#paginate_container').pajinate({\n\t\titem_container_id:'.paginate_content',\n\t\tnav_panel_id:'.paginate_navigation',\t\t\n\t\titems_per_page:5,\n\t\tnav_label_first:'&laquo;', \/\/ premier\n\t\tnav_label_prev:'&lsaquo;', \/\/ pr\u00e9c\u00e9dent \n\t\tnav_label_next:'&rsaquo;', \/\/ suivant\n\t\tnav_label_last:'&raquo;', \/\/ dernier\n\t\tabort_on_small_lists:true\n\t});  \n\t\n\t$('.page_navigation a').click(function(){\n\t\tvar new_position = $('#comments').offset();\n\t\twindow.scrollTo(new_position.left,new_position.top);\n\t\treturn false;\n\t});\n\n});\n&lt;\/script\u003E\n&lt;style\u003E\n#paginate_container li{\n\tlist-style: none;\t\n\tpadding:0;\n\tmargin:0;\n}\n.paginate_navigation {\n\tmargin: 0 0 15px 60px;\n}\n.paginate_navigation a, .alt_paginate_navigation a{\n\tmargin:0 7px 0 0;\n\ttext-decoration:none;\n\tfont-family: Tahoma;\n\tfont-size: 12px;\n\tcolor:#666;\n}\n.active_page{\n\tcolor:#ff0000 !important;\n}\n&lt;\/style\u003E\n&lt;!-- &lt;\/comments pagination\u003E --\u003E\n&lt;?php endif; ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cbr \/\u003E\nEditez le fichier commentaires.php de votre th\u00e8me.\u003Cbr \/\u003E\nSupprimer les lignes suivantes,\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\t&lt;div id=\"comments\"\u003E\n\n\t&lt;h2\u003E\n\t\t&lt;?php echo $plxShow-\u003EartNbCom() ?\u003E\n\t&lt;\/h2\u003E\n\n\t\t&lt;?php while($plxShow-\u003EplxMotor-\u003EplxRecord_coms-\u003Eloop()): # On boucle sur les commentaires ?\u003E\n\n\t\t&lt;div id=\"&lt;?php $plxShow-\u003EcomId(); ?\u003E\" class=\"comment\"\u003E\n\t\t\t&lt;blockquote\u003E\n\t\t\t\t&lt;p class=\"info_comment\"\u003E&lt;a class=\"num-com\" href=\"&lt;?php $plxShow-\u003EComUrl() ?\u003E\" title=\"#&lt;?php echo $plxShow-\u003EplxMotor-\u003EplxRecord_coms-\u003Ei+1 ?\u003E\"\u003E#&lt;?php echo $plxShow-\u003EplxMotor-\u003EplxRecord_coms-\u003Ei+1 ?\u003E&lt;\/a\u003E &lt;?php $plxShow-\u003EcomDate('#day #num_day #month #num_year(4) &#64; #hour:#minute'); ?\u003E &lt;?php $plxShow-\u003EcomAuthor('link'); ?\u003E &lt;?php $plxShow-\u003Elang('SAID') ?\u003E : &lt;\/p\u003E\n\t\t\t\t&lt;p class=\"content_com type-&lt;?php $plxShow-\u003EcomType(); ?\u003E\"\u003E&lt;?php $plxShow-\u003EcomContent() ?\u003E&lt;\/p\u003E\n\t\t\t&lt;\/blockquote\u003E\n\t\t&lt;\/div\u003E\n\n\t\t&lt;?php endwhile; # Fin de la boucle sur les commentaires ?\u003E\n\n\t\t&lt;div class=\"rss\"\u003E\n\t\t\t&lt;?php $plxShow-\u003EcomFeed('rss',$plxShow-\u003EartId()); ?\u003E\n\t\t&lt;\/div\u003E\n\n\t&lt;\/div\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cbr \/\u003E\net remplacez les par le code suivant:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\t&lt;div id=\"comments\"\u003E\n\n\t&lt;h2\u003E\n\t\t&lt;?php echo $plxShow-\u003EartNbCom() ?\u003E\n\t&lt;\/h2\u003E\n\n\t&lt;div id=\"paginate_container\"\u003E\n\t\t&lt;ul class=\"paginate_content\"\u003E\n\t\t&lt;?php while($plxShow-\u003EplxMotor-\u003EplxRecord_coms-\u003Eloop()): # On boucle sur les commentaires ?\u003E\n\t\t&lt;li\u003E\n\t\t&lt;div id=\"&lt;?php $plxShow-\u003EcomId(); ?\u003E\" class=\"comment\"\u003E\n\t\t\t&lt;p class=\"info_comment\"\u003E&lt;a class=\"num-com\" href=\"&lt;?php $plxShow-\u003EComUrl() ?\u003E\" title=\"#&lt;?php echo $plxShow-\u003EplxMotor-\u003EplxRecord_coms-\u003Ei+1 ?\u003E\"\u003E#&lt;?php echo $plxShow-\u003EplxMotor-\u003EplxRecord_coms-\u003Ei+1 ?\u003E&lt;\/a\u003E &lt;?php $plxShow-\u003EcomDate('#day #num_day #month #num_year(4) &#64; #hour:#minute'); ?\u003E &lt;?php $plxShow-\u003EcomAuthor('link'); ?\u003E &lt;?php $plxShow-\u003Elang('SAID') ?\u003E : &lt;\/p\u003E\n\t\t\t&lt;p class=\"content_com type-&lt;?php $plxShow-\u003EcomType(); ?\u003E\"\u003E&lt;?php $plxShow-\u003EcomContent() ?\u003E&lt;\/p\u003E\n\t\t&lt;\/div\u003E\n\t\t&lt;\/li\u003E\n\t\t&lt;?php endwhile; # Fin de la boucle sur les commentaires ?\u003E\n\t\t&lt;\/ul\u003E\n\t\t&lt;div class=\"paginate_navigation\"\u003E&lt;\/div\u003E\t\t\n\t&lt;\/div\u003E\n\t\n\t&lt;div class=\"rss\"\u003E\n\t\t&lt;?php $plxShow-\u003EcomFeed('rss',$plxShow-\u003EartId()); ?\u003E\n\t&lt;\/div\u003E\n\n\t&lt;\/div\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cbr \/\u003E\nSauvegardez les fichiers. Voil\u00e0 le syst\u00e8me de pagination est en place.\n\u003Ch2\u003EExplications\u003C\/h2\u003E\nPaginate est un script javascript qui utilise jQuery pour cr\u00e9er un syst\u00e8me de pagination \u00e0 partir d'une liste html.\u003Cbr \/\u003E\nPour fonctionner il faut:\n\u003Col\u003E\n\u003Cli\u003Eun bloc containeur appel\u00e9 \u003Cem\u003Epaginate_container\u003C\/em\u003E\u003C\/li\u003E\n\u003Cli\u003Eune liste d'\u00e9l\u00e9ments appel\u00e9e \u003Cem\u003Epaginate_content\u003C\/em\u003E\u003C\/li\u003E\n\u003Cli\u003Eun bloc \u003Cem\u003Epaginate_navigation\u003C\/em\u003E qui recevra le syt\u00e8me de pagination\u003C\/li\u003E\n\u003C\/ol\u003E\nExemple:\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;div id=\"paginate_container\"\u003E\n\t&lt;ul class=\"paginate_content\"\u003E\n\t\t&lt;li\u003E\n\t\t\t&lt;p\u003EOne&lt;\/p\u003E\n\t\t&lt;\/li\u003E\n\t\t&lt;li\u003E\n\t\t\t&lt;p\u003ETwo&lt;\/p\u003E\n\t\t&lt;\/li\u003E\n\t\t&lt;li\u003E\n\t\t\t&lt;p\u003EThree&lt;\/p\u003E\n\t\t&lt;\/li\u003E\n\t\t&lt;li\u003E\n\t\t\t&lt;p\u003EFour&lt;\/p\u003E\n\t\t&lt;\/li\u003E\n\t\t&lt;li\u003E\n\t\t\t&lt;p\u003EFive&lt;\/p\u003E\n\t\t&lt;\/li\u003E\n\t\t&lt;li\u003E\n\t\t\t&lt;p\u003ESix&lt;\/p\u003E\n\t\t&lt;\/li\u003E\n\t\t&lt;li\u003E\n\t\t\t&lt;p\u003ESeven&lt;\/p\u003E\n\t\t&lt;\/li\u003E\n\t\t&lt;li\u003E\n\t\t\t&lt;p\u003EEight&lt;\/p\u003E\n\t\t&lt;\/li\u003E\n\t&lt;\/ul\u003E\n\t&lt;div class=\"paginate_navigation\"\u003E&lt;\/div\u003E\n&lt;\/div\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nLes param\u00e8tres du syst\u00e8me de pagination sont les suivants:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\titem_container_id:'.paginate_content',\n\tnav_panel_id:'.paginate_navigation',\t\t\n\titems_per_page:5,\n\tnav_label_first:'&laquo;', \/\/ premier\n\tnav_label_prev:'&lsaquo;', \/\/ pr\u00e9c\u00e9dent \n\tnav_label_next:'&rsaquo;', \/\/ suivant\n\tnav_label_last:'&raquo;', \/\/ dernier\n\tabort_on_small_lists:true\n\u003C\/code\u003E\u003C\/pre\u003E\t\t\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003Eitem_container_id\u003C\/strong\u003E: nom du container principal\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Enav_panel_id\u003C\/strong\u003E: nom de bloc de pagination\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Eitems_per_page\u003C\/strong\u003E: nombre de commentaires par page\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Enav_label_first\u003C\/strong\u003E: libell\u00e9 du lien permettant d'aller \u00e0 la premi\u00e8re page\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Enav_label_prev\u003C\/strong\u003E: libell\u00e9 du lien permettant d'aller \u00e0 la page pr\u00e9c\u00e9dente\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Enav_label_next\u003C\/strong\u003E: libell\u00e9 du lien permettant d'aller \u00e0 la page suivante\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Enav_label_last\u003C\/strong\u003E: libell\u00e9 du lien permettant d'aller \u00e0 la derni\u00e8re page\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Eabort_on_small_lists\u003C\/strong\u003E: si \u003Cem\u003Etrue\u003C\/em\u003E pas d'affichage du syst\u00e8me de commentaires quand peu de commentaires (autre valeur possible: false)\u003C\/li\u003E\n\u003C\/ul\u003E\nD'autres param\u00e8tres sont disponibles sur cette \u003Ca href=\"https:\/\/github.com\/wesnolte\/Pajinate\/wiki\" title=\"\"\u003Epage\u003C\/a\u003E.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nUn probl\u00e8me du script \u003Cem\u003Epaginate\u003C\/em\u003E que j'ai trouv\u00e9 est que lorsque l'on clique sur un num\u00e9ro de page, l'affichage reste en bas de page, ce qui nous oblige \u00e0 scroller vers le haut pour lire le premier commentaire de la liste affich\u00e9e. J'ai donc \u00e9crit ce petit \"hack\" avec quelques lignes de jquery pour faire un scroll automatique de la page vers le haut d\u00e8s que l'on clique sur un lien &lt;a\u003E dans la barre de navigation identifi\u00e9e par la \u003Cem\u003E&lt;div class=\"page_navigation\"\u003E\u003C\/em\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\t$('.page_navigation a').click(function(){\n\t\tvar new_position = $('#comments').offset();\n\t\twindow.scrollTo(new_position.left,new_position.top);\n\t\treturn false;\n\t});\n\u003C\/code\u003E\u003C\/pre\u003E\nCelui-ci ne fonctionnera que si dans la page \u003Cem\u003Ecommentaires.php\u003C\/em\u003E la ligne suivante est pr\u00e9sente.\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;div id=\"comments\"\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nSi besoin, changez dans le code \u003Cem\u003E#comments\u003C\/em\u003E par l'id de la balise o\u00f9 il faut remonter.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPetite remarque: afin de ne prendre en compte le syst\u00e8me de pagination que lors de la visualisation d'un article, je fais un test sur le mode d'affichage en cours pour ne charger les scripts et le code n\u00e9cessaire qu'en mode \u003Cem\u003Earticle\u003C\/em\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php if($plxShow-\u003Emode()=='article') : ?\u003E\n...\n&lt;?php endif; ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nPour personnaliser l'affichage de la barre de navigation, c'est au niveau du code css ajout\u00e9 dans la balise \u003Cem\u003E&lt;style\u003E\u003C\/em\u003E dans le fichier \u003Cem\u003Eheader.php\u003C\/em\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;style\u003E\n#paginate_container li{\n\tlist-style: none;\t\n\tpadding:0;\n\tmargin:0;\n}\n.paginate_navigation {\n\tmargin: 0 0 15px 60px;\n}\n.paginate_navigation a, .alt_paginate_navigation a{\n\tmargin:0 7px 0 0;\n\ttext-decoration:none;\n\tfont-family: Tahoma;\n\tfont-size: 12px;\n\tcolor:#666;\n}\n.active_page{\n\tcolor:#ff0000 !important;\n}\n&lt;\/style\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nEn jouant sur les diff\u00e9rents propri\u00e9t\u00e9s css vous pourrez par exemple modifier la couleur des textes des pages et la couleur de fond.\n\n\u003Ch2\u003EEn cas de probl\u00e8mes\u003C\/h2\u003E\nQuelques pistes \u00e0 v\u00e9rifier si le syst\u00e8me de pagination des commentaires ne fonctionne pas:\u003Cbr \/\u003E\n\u003Cul\u003E\n\u003Cli\u003EEst-ce que le dossier \u003Cem\u003Epaginate\u003C\/em\u003E est bien pr\u00e9sent dans votre th\u00e8me de mani\u00e8re \u00e0 avoir le r\u00e9pertoire \u003Cem\u003Ethemes\/defaut\/paginate\u003C\/em\u003E ?\u003C\/li\u003E\n\u003Cli\u003EEst-ce que jquery est utilis\u00e9 plusieurs fois sur votre site, o\u00f9 plusieurs versions diff\u00e9rentes viendraient en conflit ?\u003C\/li\u003E\n\u003Cli\u003EUtilisez-vous le plugin jquery qui viendrait en conflit avec jQquery 1.10.2 charg\u00e9 au d\u00e9but de la page \u003Cem\u003Eheader.php\u003C\/em\u003E\u003C\/li\u003E\n\u003Cli\u003EAvez-vous bien respecter la proc\u00e9dure d'installation et le copier-coller\u003C\/li\u003E\n\u003Cli\u003ESi la barre de navigation s'affiche mal, les propri\u00e9t\u00e9s css rentrent peut-\u00eatre en conflit avec celles de votre feuille de style (fichier \u003Cem\u003Estyle.css\u003C\/em\u003E)\u003C\/li\u003E\n\u003C\/ul\u003E\nN'h\u00e9sitez pas \u00e0 tester le syst\u00e8me de pagination des commentaires avec le th\u00e8me par d\u00e9faut de PluXml pour vous assurez qu'il est op\u00e9rationnel et comprendre son fonctionnement. Cela vous sera plus facile pour l'adapter et l'int\u00e9grer \u00e0 votre site. Les probl\u00e8mes sont souvent li\u00e9s \u00e0 l'organisation de votre th\u00e8me.",
            "tags": "PluXml, jQuery, Programmation, Tuto, Commentaires, Navigation",
            "meta_description": "Tutoriel pour PluXlm pour cr\u00e9er un syst\u00e8me de pagination des commentaires \u00e0 base de jQuery",
            "meta_keywords": "PluXml, jQuery, Commentaires, Navigation",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0019",
            "author": "001",
            "categorie": "001",
            "url": "creer-une-pagination-pour-les-commentaires",
            "date": "201307161016",
            "nb_com": 0,
            "date_creation": "201307161016",
            "date_update": "201307161016"
        },
        {
            "filename": ".\/data\/articles\/0018.001.001.201307091404.bonne-pratique-pour-declarer-jquery-dans-un-plugin.xml",
            "title": "Bonne pratique pour d\u00e9clarer jQuery dans un plugin",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Pour tester si jQuery est d\u00e9j\u00e0 pr\u00e9sent en m\u00e9moire et \u00e9viter de le charger inutilement plusieurs fois, voici la d\u00e9claration \u00e0 utiliser dans un plugin de \u003Ca href=\"http:\/\/www.pluxml.org\" title=\"PluXml\"\u003EPluXml\u003C\/a\u003E.\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;script type=\"text\/javascript\"\u003E\n\/* &lt;![CDATA[ *\/\n   if(typeof(jQuery) === \"undefined\") document.write(\\'&lt;script  type=\"text\/javascript\" src=\"&lt;?php echo PLX_PLUGINS; ?\u003EmonPlugin\/jquery-x.xx.x.min.js\"\u003E&lt;\\\/script\u003E\\');\n\/* !]]&gt; *\/\n&lt;\/script\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\nSi vous le pouvez, n'h\u00e9siter pas \u00e0 d\u00e9clarer jQuery en fin de page en utilisant le hook \u003Cem\u003EThemeEndBody\u003C\/em\u003E pour la partie visiteur ou le hook \u003Cem\u003EAdminFootEndBody\u003C\/em\u003E pour la partie administration.\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nExemple avec le hook ThemeEndBody:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php\n\nclass monPlugin extends plxPlugin {\n\n\tpublic function __construct($default_lang) {\n\n        # appel du constructeur de la classe plxPlugin (obligatoire)\n        parent::__construct($default_lang);\n\n\t\t$this-\u003EaddHook('ThemeEndBody', 'ThemeEndBody');\n\n    }\n\t\n\tpublic function ThemeEndBody() {?\u003E\n\n&lt;script type=\"text\/javascript\"\u003E\n\/* &lt;![CDATA[ *\/\n   if(typeof(jQuery) === \"undefined\") document.write(\\'&lt;script  type=\"text\/javascript\" src=\"&lt;?php echo PLX_PLUGINS; ?\u003EmonPlugin\/jquery-x.xx.x.min.js\"\u003E&lt;\\\/script\u003E\\');\n\/* !]]&gt; *\/\n&lt;\/script\u003E\t\n\t\n\t&lt;?php\n\t}\n}\n?\u003E\n\n\u003C\/code\u003E\u003C\/pre\u003E\n\nAdaptez avec le nom de votre plugin (\u003Cem\u003EmonPlugin\u003C\/em\u003E) et compl\u00e9ter le num\u00e9ro de version utilis\u00e9 de jQuery dans le nom du fichier (\u003Cem\u003Ejquery-x.xx.x.min.js\u003C\/em\u003E).\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nsrc=\"\u003C?php echo PLX_PLUGINS; ?\u003EmonPlugin\/jquery-x.xx.x.min.js\"\n\u003C\/code\u003E\u003C\/pre\u003E\n\n\u003Cbr \/\u003E\nMerci \u00e0 Jerry Wham pour avoir partag\u00e9 cette bonne pratique sur le \u003Ca href=\"http:\/\/forum.pluxml.org\/\" title=\"Forum de PluXml\"\u003Eforum\u003C\/a\u003E de PluXml.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article18\/bonne-pratique-pour-declarer-jquery-dans-un-plugin\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"bonne-pratique-pour-declarer-jquery-dans-un-plugin\"\n\t\t\t},\n\t\t\t\"headline\": \"Bonne pratique pour d\u00e9clarer jQuery dans un plugin\",\n\t\t\t\"datePublished\": \"2013-07-09T14:04:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Programmation, Plugins, jQuery\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "PluXml, Programmation, Plugins, jQuery",
            "meta_description": "Bonne pratique pour d\u00e9clarer correctement jQuery dans un plugin de PluXml",
            "meta_keywords": "PluXml, jQuery, plugin, bonne pratique, astuce",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0018",
            "author": "001",
            "categorie": "001",
            "url": "bonne-pratique-pour-declarer-jquery-dans-un-plugin",
            "date": "201307091404",
            "nb_com": 2,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0017.001.001.201306260952.ajouter-un-contenu-dans-la-sidebar-en-fonction-d-une-page-statique.xml",
            "title": "Ajouter un contenu dans la sidebar en fonction d'une page statique",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Voici une petite astuce tr\u00e8s simple pour ajouter du contenu dans la sidebar en fonction de la page statique en cours de visualisation. Sa mise en place est tr\u00e8s rapide et ne n\u00e9cessite que quelques lignes de code \u00e0 rajouter dans le fichier \u003Cem\u003Esidebar.php\u003C\/em\u003E de son th\u00e8me.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u00c9diter donc le fichier \u003Cem\u003Esidebar.php\u003C\/em\u003E et coller les lignes suivantes \u00e0 l'endroit o\u00f9 vous souhaitez afficher votre texte.\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php\n\tif($plxMotor-\u003Emode=='static' AND $plxMotor-\u003Ecible=='002') {\n\t\techo \"Texte \u00e0 afficher lors de la visualisation de la page statique 002\";\n\t}\n?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nRemplacer la valeur 002, par l'identifiant de la page statique qui conditionne l'affichage du texte.\u003Cbr \/\u003E\nL'identifiant de la page concern\u00e9e est \u00e0 r\u00e9cup\u00e9rer dans l'administration des pages statiques. Il est de la forme 001, 002,... (voir colonne \u003Cem\u003EIdentifiant\u003C\/em\u003E).\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPour afficher une image vous pouvez remplacer la ligne:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\necho \"Texte \u00e0 afficher lors de la visualisation de la page statique 002\";\n\u003C\/code\u003E\u003C\/pre\u003E\n\npar\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\necho '&lt;img src=\"data\/images\/monimage.jpg\" alt=\"\" title=\"Mon image\" \/\u003E';\n\u003C\/code\u003E\u003C\/pre\u003E\nAdapter le bon chemin de l'image en modifiant \u003Cem\u003Edata\/images\/monimage.jpg\u003C\/em\u003E\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0017\/image01.jpg\" alt=\"\" \/\u003E\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article17\/ajouter-un-contenu-dans-la-sidebar-en-fonction-d-une-page-statique\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"ajouter-un-contenu-dans-la-sidebar-en-fonction-d-une-page-statique\"\n\t\t\t},\n\t\t\t\"headline\": \"Ajouter un contenu dans la sidebar en fonction d'une page statique\",\n\t\t\t\"datePublished\": \"2013-06-26T09:52:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Tuto, Th\u00e8me, Page statique, Sidebar\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "PluXml, Tuto, Th\u00e8me, Page statique, Sidebar",
            "meta_description": "Tutorial pour conditionner l'affichage d'un contenu dans la sidebar en fonction de la page statique en cours de visualisation",
            "meta_keywords": "PluXml, Sidebar, Th\u00e8me, Page statique",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0017",
            "author": "001",
            "categorie": "001",
            "url": "ajouter-un-contenu-dans-la-sidebar-en-fonction-d-une-page-statique",
            "date": "201306260952",
            "nb_com": 4,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0016.001.001.201306251012.afficher-le-contenu-d-une-page-statique-dans-la-sidebar.xml",
            "title": "Afficher le contenu d'une page statique dans la sidebar",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Pour afficher le contenu d'une page statique dans la sidebar, nous allons proc\u00e9der en deux \u00e9tapes.\n\n\u003Ch2\u003EEtape 1: cr\u00e9ation d'une page statique\u003C\/h2\u003E\n\n\u003Cul\u003E\n\u003Cli\u003Ecr\u00e9er une page nouvelle page statique dans l'administration des pages statiques,\u003C\/li\u003E\n\u003Cli\u003Edonnez lui comme titre par exemple Sidebar,\u003C\/li\u003E\n\u003Cli\u003Es\u00e9lectionner la valeur \u003Cem\u003EOui\u003C\/em\u003E dans la colonne \u003Cem\u003EActive\u003C\/em\u003E,\u003C\/li\u003E\n\u003Cli\u003Es\u00e9lectionner la valeur \u003Cem\u003EMasquer\u003C\/em\u003E dans la colonne \u003Cem\u003EMenu\u003C\/em\u003E,\u003C\/li\u003E\n\u003Cli\u003Ecliquez sur le bouton \u003Cem\u003EModifier la liste des pages statiques\u003C\/em\u003E pour cr\u00e9er la nouvelle page.\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0016\/image01.jpg\"\" alt=\"\" \/\u003E\u003C\/p\u003E\n\n\u00c9diter votre page en cliquant sur son lien \u003Cem\u003E\u00c9diter \u003C\/em\u003E pour y ajouter le contenu que vous voulez afficher dans la sidebar en remplissant le champ \u003Cem\u003EContenu\u003C\/em\u003E. Il n'est pas n\u00e9cessaire de remplir les autres champs: vous pouvez les laisser vides.\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0016\/image02.jpg\"\" alt=\"\" \/\u003E\u003C\/p\u003E\nSauvegardez en cliquant sur le bouton \u003Cem\u003EEnregistrer cette page statique\u003C\/em\u003E.\n\u003Ch2\u003EEtape 2: modification du fichier sidebar.php\u003C\/h2\u003E\n\n\u00c9diter le fichier \u003Cem\u003Esidebar.php\u003C\/em\u003E de votre th\u00e8me et ajoutez les lignes suivantes \u00e0 l'endroit o\u00f9 vous souhaitez afficher le contenu de la page statique 002.\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EstaticInclude('002') ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nRemplacer la valeur '002' par l'identifiant de votre page statique Sidebar \u00e0 r\u00e9cup\u00e9rer dans l'administration des pages statiques (colonne \u003Cem\u003EIdentifiant\u003C\/em\u003E).\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0016\/image03.jpg\"\" alt=\"\" \/\u003E\u003C\/p\u003E\n\nCette m\u00e9thode \u00e0 l'avantage qu'une fois mise en place, il est tr\u00e8s facile de changer les donn\u00e9es affich\u00e9es dans la sidebar en \u00e9ditant simplement le contenu de la page statique.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article16\/afficher-le-contenu-d-une-page-statique-dans-la-sidebar\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"afficher-le-contenu-d-une-page-statique-dans-la-sidebar\"\n\t\t\t},\n\t\t\t\"headline\": \"Afficher le contenu d'une page statique dans la sidebar\",\n\t\t\t\"datePublished\": \"2013-06-25T10:12:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Tuto, Page statique, Th\u00e8me, Sidebar\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "PluXml, Tuto, Page statique, Th\u00e8me, Sidebar",
            "meta_description": "Tutorial pour afficher le contenu d'une page statique dans la sidebar de PluXml",
            "meta_keywords": "PluXml,Th\u00e8me, Sidebar, Page statique",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0016",
            "author": "001",
            "categorie": "001",
            "url": "afficher-le-contenu-d-une-page-statique-dans-la-sidebar",
            "date": "201306251012",
            "nb_com": 8,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0015.001.001.201306071052.ajoutez-une-signature-dans-vos-flux-rss.xml",
            "title": "Ajoutez une signature dans vos flux rss",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Savez-vous qu'il est possible de rajouter une signature (texte ou image) ou une publicit\u00e9 dans les \u003Ca href=\"http:\/\/fr.wikipedia.org\/wiki\/RSS\" title=\"Flux Rss\"\u003Eflux rss\u003C\/a\u003E de vos articles r\u00e9dig\u00e9s avec PluXml ?\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nRendez-vous dans la partie d'administration de votre site. Cliquez sur les menus \u003Cem\u003EParam\u00e8tres\u003C\/em\u003E, puis \u003Cem\u003EConfiguration avanc\u00e9e\u003C\/em\u003E. Dans la zone \u003Cem\u003ETexte \u00e0 ajouter comme signature au bas de chaque flux Rss des articles\u003C\/em\u003E, saisissez au format html le texte \u00e0 afficher \u00e0 la fin de vos flux rss.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0015\/capture.jpg\" alt=\"\" \/\u003E\u003C\/p\u003E\n\u003Cbr \/\u003E\nCliquez sur le bouton \"Modifier les options d'affichage\" pour enregister les modifications.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article15\/ajoutez-une-signature-dans-vos-flux-rss\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"ajoutez-une-signature-dans-vos-flux-rss\"\n\t\t\t},\n\t\t\t\"headline\": \"Ajoutez une signature dans vos flux rss\",\n\t\t\t\"datePublished\": \"2013-06-07T10:52:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Tuto, Rss\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "PluXml, Tuto, Rss",
            "meta_description": "Tutorial pour ajouter une signature dans les flux rss des articles r\u00e9dig\u00e9s avec PluXml",
            "meta_keywords": "PluXml, Flux Rss, Signature",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0015",
            "author": "001",
            "categorie": "001",
            "url": "ajoutez-une-signature-dans-vos-flux-rss",
            "date": "201306071052",
            "nb_com": 3,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0014.001.001.201305221527.un-nouvel-ecran-de-gestion-des-plugins.xml",
            "title": "un nouvel \u00e9cran de gestion des plugins ?",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Pour la prochaine version de PluXml (la version actuelle est la 5.1.7), des petits changements seront visibles sur l'\u00e9cran de gestion des plugins.\u003Cbr \/\u003E\u003Cbr \/\u003E\r\nVous \u00e9tiez plusieurs \u00e0 signaler sur le \u003Ca href=\"http:\/\/forum.pluxml.org\" title=\"Forum de PluXml\"\u003Eforum\u003C\/a\u003E de PluXml qu'il \u00e9tait difficile de distinguer visuellement les plugins actifs de ceux inactifs. Voil\u00e0 qui va \u00eatre r\u00e9solu avec deux menus distincts: un menu \"Plugins actifs\" et \"Plugins inactifs\". Une case \u00e0 cocher est \u00e9galement pr\u00e9vue pour s\u00e9lectionner en une fois tous les plugins de la page, ce qui permettra de tout activer ou d\u00e9sactiver rapidement.\u003Cbr \/\u003E\r\nComme vous pouvez le voir ces modifications ne sont pas une r\u00e9volution en soi, mais cela fait partie de ces petits d\u00e9tails qui am\u00e9liorent l'ergonomie et rend l'outil plus compr\u00e9hensible et accessible.\r\n\u003Cbr \/\u003E\u003Cbr \/\u003E\r\n\u003Cimg src=\"data\/images\/0014\/plugins.jpg\" alt=\"\" \/\u003E\r\n\u003Cbr \/\u003E\u003Cbr \/\u003E\r\nA noter \u00e9galement qu'une partie du moteur des plugins a \u00e9t\u00e9 r\u00e9\u00e9crite pour optimiser le temps de chargement et l'occupation m\u00e9moire. En contrepartie il pourra y avoir un impact sur le fonctionnement de certains plugins qu'il faudra corriger pour qu'ils (re)deviennent compatibles. Rien de bien m\u00e9chant mais si vous avez utilisez le type d'instruction comme ci-dessous, attendez-vous \u00e0 d\u00e9ployer un correctif pour vos plugins.\r\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\r\n$this-\u003EplxMotor-\u003EplxPlugins-\u003EaPlugins['monPlugin']['instance']\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\nsera \u00e0 remplacer tout simplement par:\r\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\r\n$this-\u003EplxMotor-\u003EplxPlugins-\u003EaPlugins['monPlugin']\r\n\u003C\/code\u003E\u003C\/pre\u003E\r\nBien entendu tout sera pr\u00e9cis\u00e9 plus en d\u00e9tails quand il le faudra...\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article14\/un-nouvel-ecran-de-gestion-des-plugins\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"un-nouvel-ecran-de-gestion-des-plugins\"\n\t\t\t},\n\t\t\t\"headline\": \"un nouvel \u00e9cran de gestion des plugins ?\",\n\t\t\t\"datePublished\": \"2013-05-22T15:27:00Z\",\n\t\t\t\"dateModified\": \"2013-05-22T15:27:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Plugins\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "PluXml, Plugins",
            "meta_description": "Pr\u00e9sentation du nouvel \u00e9cran de gestion des plugins de PluXml",
            "meta_keywords": "PluXml, Plugins",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0014",
            "author": "001",
            "categorie": "001",
            "url": "un-nouvel-ecran-de-gestion-des-plugins",
            "date": "201305221527",
            "nb_com": 5,
            "date_creation": "201305221527",
            "date_update": "201305221527"
        },
        {
            "filename": ".\/data\/articles\/0012.001.001.201305161013.structure-des-fichiers-xml-des-articles.xml",
            "title": "Structure des fichiers xml des articles",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Apr\u00e8s avoir vu dans cet \u003Ca href=\"http:\/\/pluxopolis.net\/article10\/pluxml-comprendre-le-nom-des-fichiers-xml-des-articles\" title=\"Comprendre le nom des fichiers xml des articles\"\u003Earticle\u003C\/a\u003E la composition du nom des fichiers xml des articles de \u003Ca href=\"http:\/\/www.pluxml.org\" title=\"PluXml.org\"\u003EPluXml\u003C\/a\u003E, d\u00e9taillons maintenant les diff\u00e9rentes balises xml qui composent un fichier article.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article12\/structure-des-fichiers-xml-des-articles\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"structure-des-fichiers-xml-des-articles\"\n\t\t\t},\n\t\t\t\"headline\": \"Structure des fichiers xml des articles\",\n\t\t\t\"datePublished\": \"2013-05-16T10:13:00Z\",\n\t\t\t\"dateModified\": \"2013-05-16T10:13:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Tuto, Xml\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "Les donn\u00e9es d'un articles sont enregistr\u00e9es dans un fichier xml. Sa structure est tr\u00e8s simple et se r\u00e9sume ainsi:\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?xml version='1.0' encoding='UTF-8'?\u003E\n&lt;document\u003E\n\t&lt;title\u003E&lt;![CDATA[]]&gt;&lt;\/title\u003E\n\t&lt;allow_com\u003E&lt;\/allow_com\u003E\n\t&lt;template\u003E&lt;![]]&gt;&lt;\/template\u003E\n\t&lt;chapo\u003E&lt;![CDATA[]]&gt;&lt;\/chapo\u003E\n\t&lt;content\u003E&lt;![CDATA[]]&gt;&lt;\/content\u003E\n\t&lt;tags\u003E&lt;![CDATA[]]&gt;\u003C\/tags\u003E\n\t&lt;meta_description\u003E&lt;![CDATA[]]&gt;&lt;\/meta_description\u003E\n\t&lt;meta_keywords\u003E&lt;![CDATA[]]&gt;&lt;\/meta_keywords\u003E\n\t&lt;title_htmltag\u003E&lt;![CDATA[]]&gt;&lt;\/title_htmltag\u003E\n&lt;\/document\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cbr \/\u003E\nD\u00e9taillons les balises xml\u003Cbr \/\u003E\n\u003Cul\u003E\n\u003Cli\u003E\u003Cstrong\u003Etitle\u003C\/strong\u003E: titre de l'article (format texte)\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Eallow_com\u003C\/strong\u003E: autorise ou pas l'ajout de commentaires (format num\u00e9rique). Les valeurs autoris\u00e9es sont: 0 (commentaires interdits), 1 (commentaire autoris\u00e9s)\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Etemplate\u003C\/strong\u003E: nom du fichier template utilis\u00e9 pour afficher le d\u00e9tail de l'article (format texte). Le fichier est stock\u00e9 dans le dossier du th\u00e8me courant. Son nom doit \u00eatre de la forme: article-xxxx.php (o\u00f9 xxxx est un texte permettant d'identifier le template, par exemple: article-evenement.php). Par d\u00e9faut c'est le fichier article.php du th\u00e8me courant qui est utilis\u00e9\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Echapo\u003C\/strong\u003E: contient le texte du chapo de l'article (format texte)\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Econtent\u003C\/strong\u003E: contenu de l'article (format texte)\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Etags\u003C\/strong\u003E: contient la liste des mots cl\u00e9s s\u00e9par\u00e9s par des virgules (format texte)\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Emeta_description\u003C\/strong\u003E: contient le contenu de la balise meta description dans l'ent\u00eate de la page partie &lt;head\u003E (format texte)\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Emeta_keyword\u003C\/strong\u003E: contient le contenu de la balise meta keywords dans l'ent\u00eate de la page partie &lt;head\u003E (format texte)\u003C\/li\u003E\n\u003Cli\u003E\u003Cstrong\u003Etitle_htmltag\u003C\/strong\u003E: contient le contenu de la balise &lt;title\u003E de la page (format texte). Par d\u00e9faut la balise &lt;title\u003E est renseign\u00e9e automatiquement \u00e0 partir du titre de l'article. Pour am\u00e9liorer le r\u00e9f\u00e9rencement de l'article, le contenu de la balise &lt;title\u003E peut \u00eatre personnalis\u00e9 gr\u00e2ce \u00e0 title_htmltag\u003C\/li\u003E\n\u003C\/ul\u003E\n\nExemple de fichier xml d'un article:\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\n&lt;?xml version=\"1.0\" encoding=\"UTF-8\"?&gt;\n&lt;document\u003E\n\t&lt;title\u003E&lt;![CDATA[Premier article]]&gt;&lt;\/title\u003E\n\t&lt;allow_com\u003E1&lt;\/allow_com\u003E\n\t&lt;template\u003E&lt;![CDATA[article.php]]&gt;&lt;\/template\u003E\n\t&lt;chapo\u003E\n\t\t&lt;![CDATA[Voici le premier article r\u00e9dig\u00e9 sur ce blog]]&gt;\n\t&lt;\/chapo\u003E\n\t&lt;content\u003E\n\t\t&lt;![CDATA[\u003Cp\u003ECeci est un article cr\u00e9\u00e9 lors de l'installation de PluXml. Editez-le depuis la zone d'administration.\u003C\/p\u003E]]&gt;\n\t&lt;\/content\u003E\n\t&lt;tags\u003E\n\t\t&lt;![CDATA[PluXml, Blog]]&gt;\n\t&lt;\/tags\u003E\n\t&lt;meta_description\u003E\n\t\t&lt;![CDATA[Premier article publi\u00e9 sur monsite.com]]&gt;\n\t&lt;\/meta_description\u003E\n\t&lt;meta_keywords\u003E\n\t\t&lt;![CDATA[PluXml, Web, Blog, Xml, Article]]&gt;\n\t&lt;\/meta_keywords\u003E\n\t&lt;title_htmltag\u003E\n\t\t&lt;![CDATA[]]&gt;\n\t&lt;\/title_htmltag\u003E\n&lt;\/document\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nToutes ces informations sont enregistr\u00e9es dans le fichier xml lorsque l'article est sauvegard\u00e9 \u00e0 partir de la page de r\u00e9daction dans la zone d'administration de son site.",
            "tags": "PluXml, Tuto, Xml",
            "meta_description": "Description des balises xml qui composent les fichiers articles de PluXml",
            "meta_keywords": "PluXml, Article, Xml, Description",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0012",
            "author": "001",
            "categorie": "001",
            "url": "structure-des-fichiers-xml-des-articles",
            "date": "201305161013",
            "nb_com": 1,
            "date_creation": "201305161013",
            "date_update": "201305161013"
        },
        {
            "filename": ".\/data\/articles\/0010.001.001.201305131817.comprendre-le-nom-des-fichiers-xml-des-articles.xml",
            "title": "Comprendre le nom des fichiers xml des articles",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "PluXml n\u2019utilise pas de base de donn\u00e9es. Le contenu des articles est stock\u00e9 dans des fichiers xml.\nSi vous utilisez la configuration par d\u00e9faut, ces fichiers sont enregistr\u00e9s dans le dossier \u003Cem\u003Edata\/articles\u003C\/em\u003E. Chaque nom de fichier est compos\u00e9 de certaines informations propre \u00e0 l\u2019article. Voyons quelles sont ces informations.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article10\/comprendre-le-nom-des-fichiers-xml-des-articles\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"comprendre-le-nom-des-fichiers-xml-des-articles\"\n\t\t\t},\n\t\t\t\"headline\": \"Comprendre le nom des fichiers xml des articles\",\n\t\t\t\"datePublished\": \"2013-05-13T18:17:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Tuto\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "Le nom du fichier d\u2019un article est compos\u00e9 de plusieurs donn\u00e9es.\u003Cbr \/\u003E\nExemple:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n_0001.002.001.201304251142.premier-article.xml\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cbr \/\u003E\nSi nous d\u00e9taillons le nom du fichier avec des couleurs, nous avons:\u003Cbr \/\u003E\n\u003Cspan style=\"color:grey\"\u003E_\u003C\/span\u003E\n\u003Cspan style=\"color:red\"\u003E0001\u003C\/span\u003E .\n\u003Cspan style=\"color:blue\"\u003E002\u003C\/span\u003E .\n\u003Cspan style=\"color:#ff0099\"\u003E001\u003C\/span\u003E .\n\u003Cspan style=\"color:#9900ff\"\u003E201304251142\u003C\/span\u003E .\n\u003Cspan style=\"color:green\"\u003Epremier-article\u003C\/span\u003E .\n\u003Cspan style=\"color:orange\"\u003Exml\u003C\/span\u003E\n\u003Cbr \/\u003E\n\u003Cbr \/\u003E\n\n\u003Cul\u003E\n\u003Cli\u003E\u003Cspan style=\"color:grey\"\u003E_\u003C\/span\u003E est un caract\u00e8re optionnel. Il indique que l'article est en attente de validation.\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"color:red\"\u003E0001\u003C\/span\u003E est \u003Cstrong\u003El'identifiant\u003C\/strong\u003E de l'article. Il peut aller jusqu'\u00e0 9999, donc 9999 articles.\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"color:blue\"\u003E002\u003C\/span\u003E contient l'identifiant de la \u003Cstrong\u003Ecat\u00e9gorie\u003C\/strong\u003E dans laquelle l'article est class\u00e9. Il peut avoir plusieurs identifiants s\u00e9par\u00e9s par des virgules (exemple 001,002). Ici l'article est donc class\u00e9 dans la cat\u00e9gorie 002. Il n'y a pas de limite dans le nombre de cat\u00e9gories possibles, du moment qu'elles sont bien s\u00e9par\u00e9es par des virgules. Il est possible d'avoir \u00e9galement la valeur \u003Cstrong\u003Edraft\u003C\/strong\u003E qui indique que l'article est un \u003Cem\u003Ebrouillon\u003C\/em\u003E, ou la valeur \u003Cstrong\u003Ehome\u003C\/strong\u003E qui indique que l'article est publi\u00e9 dans la cat\u00e9gorie \u003Cem\u003EPage d'accueil\u003C\/em\u003E. Il est donc tout a fait possible d'avoir 0001.001,002,draft.001.201304251142.premier-article.xml\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"color:#ff0099\"\u003E001\u003C\/span\u003E est l'identifiant de \u003Cstrong\u003El'utilisateur\u003C\/strong\u003E qui a r\u00e9dig\u00e9 l'article.\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"color:#9900ff\"\u003E201304251142\u003C\/span\u003E est la \u003Cstrong\u003Edate de publication\u003C\/strong\u003E de l'article. Cela peut \u00eatre une date future. Cette date est de la forme AAAAMMJJHHMM o\u00f9:\u003Cbr \/\u003E\nAAAA = ann\u00e9e\u003Cbr \/\u003E\nMM = mois\u003Cbr \/\u003E\nJJ = jour\u003Cbr \/\u003E\nHH = heure\u003Cbr \/\u003E\nMM = minute\u003Cbr \/\u003E\n\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"color:green\"\u003Epremier-article\u003C\/span\u003E est \u003Cstrong\u003El'url\u003C\/strong\u003E de l'article. On la retrouve dans:\u003Cbr \/\u003Ehttp:\/\/mondomaine.com\/index.php?article1\/premier-article\u003C\/li\u003E\n\u003Cli\u003E\u003Cspan style=\"color:orange\"\u003Exml\u003C\/span\u003E est \u003Cstrong\u003El'extension\u003C\/strong\u003E du fichier.\u003C\/li\u003E",
            "tags": "PluXml, Tuto",
            "meta_description": "Tutorial qui d\u00e9taille la composition du nom des fichiers xml des articles",
            "meta_keywords": "PluXml, Tuto, Xml, Articles, Nom, Fichier",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0010",
            "author": "001",
            "categorie": "001",
            "url": "comprendre-le-nom-des-fichiers-xml-des-articles",
            "date": "201305131817",
            "nb_com": 1,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0009.003.001.201305081644.ajouter-un-compteur-de-visite.xml",
            "title": "Ajouter un compteur de visite",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cdiv style=\"float:left\"\u003E\u003Cimg src=\"data\/images\/0009\/whosamungus.jpg\" alt=\"\" \/\u003E\u003C\/div\u003E\nLe site \u003Ca href=\"http:\/\/whos.amung.us\/\" title=\"\"\u003Ewhos.amung.us\u003C\/a\u003E propose un service gratuit qui permet de savoir combien de visiteurs sont pr\u00e9sents sur votre site, o\u00f9 ils sont localis\u00e9s et quand vous avez eu le plus de personnes en ligne. Il n\u2019y a pas besoin d\u2019inscription, juste quelques lignes de code \u00e0 copier sur votre site: l\u2019int\u00e9gration dans PluXml se fait tr\u00e8s rapidement: mode d\u2019emploi...\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article9\/ajouter-un-compteur-de-visite\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"ajouter-un-compteur-de-visite\"\n\t\t\t},\n\t\t\t\"headline\": \"Ajouter un compteur de visite\",\n\t\t\t\"datePublished\": \"2013-05-08T16:44:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Astuce, Audience\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cdiv style=\"clear:both\"\u003E\u003Cbr \/\u003E\u003C\/div\u003E\nLa premi\u00e8re chose \u00e0 faire est d\u2019aller sur \u003Ca href=\"http:\/\/whos.amung.us\/showcase\/\" title=\"\"\u003Ecette page\u003C\/a\u003E pour r\u00e9cup\u00e9rer le code du widget qui vous int\u00e9resse. Plusieurs mod\u00e8les de compteur sont disponibles: un mod\u00e8le classique, un en couleur, un petit, un sous forme d\u2019onglet et un dernier sous forme de carte. Choisissez le votre, cliquez sur le code fourni pour le copier automatiquement dans le presse-papier.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPour ajouter rapidement le code dans PluXml, acc\u00e9dez \u00e0 la zone d\u2019administration de votre site. Allez dans le menu \u003Cstrong\u003EParam\u00e8tres \u003E Options d\u2019affichage\u003C\/strong\u003E et cliquez sur le lien \u003Cstrong\u003E\u00c9diter les fichiers du th\u00e8me defaut\u003C\/strong\u003E. (\u00e0 la place de d\u00e9faut c\u2019est le nom de votre th\u00e8me actuel qui doit \u00eatre afficher)\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nDans le d\u00e9roulant \u003Cstrong\u003EChoix du fichier \u00e0 \u00e9diter\u003C\/strong\u003E, s\u00e9lectionner le fichier \u003Cstrong\u003E\/footer.php\u003C\/strong\u003E et cliquez sur le bouton \u003Cstrong\u003ECharger\u003C\/strong\u003E. Le contenu du fichier est affich\u00e9. Faites un coller \u00e0 l\u2019endroit o\u00f9 vous souhaitez afficher le compteur. Je vous propose le fichier du footer mais rien ne vous emp\u00eache de le coller dans le fichier de la sidebar (\/sidebar.php). Cliquez sur le bouton \u003Cstrong\u003ESauvegarder le fichier\u003C\/strong\u003E. C\u2019est termin\u00e9. \n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPour consulter les statistiques, cliquez simplement sur votre compteur: vous serez redirig\u00e9 vers la page de stats sur le site de whos.amung.us.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0009\/whosamungus.stats.jpg\" alt=\"\" \/\u003E\u003C\/p\u003E\n\u003Cbr \/\u003E\nPetite cerise sur le g\u00e2teau, deux extensions sont disponibles, une pour Chrome et une autre pour Firefox, pour afficher dans la barre du navigateur le nombre de visiteurs pr\u00e9sents sur votre site.",
            "tags": "Astuce, Audience",
            "meta_description": "Tutorial pour ajouter un compteur de visite gr\u00e2ce au widget du site whos.amung.us",
            "meta_keywords": "Compteur, Visite, PluXml",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0009",
            "author": "001",
            "categorie": "003",
            "url": "ajouter-un-compteur-de-visite",
            "date": "201305081644",
            "nb_com": 2,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0007.001.001.201305060845.rajouter-des-couleurs-dans-son-nuage-de-tags.xml",
            "title": "Rajouter des couleurs dans son nuage de tags",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "PluXml g\u00e8re les tags et permet d\u2019afficher un nuage tag. \n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPour rappel un tag est un mot cl\u00e9 que l\u2019on associe \u00e0 un ou plusieurs articles. L\u2019objectif de l\u2019utilisation des tags est de regrouper les articles de m\u00eame th\u00e9matique. Cela permet de conna\u00eetre facilement la liste de tous les articles identifi\u00e9s par un m\u00eame mot cl\u00e9.\u003Cbr \/\u003E \nLe nuage de tags permet d\u2019afficher tous les tags avec une taille de police de caract\u00e8re diff\u00e9rente, plus ou moins grande, en fonction du nombre d\u2019utilisation des mots cl\u00e9s. Plus un tag est grand, plus il y a d\u2019articles r\u00e9dig\u00e9s associ\u00e9s \u00e0 ce tag. Ce syst\u00e8me donne une information aux visiteurs pour orienter ses lectures. Il est donc important de bien les choisir.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0007\/tagcloud.png\" alt=\"\" \/\u003E\u003C\/p\u003E\nVoyons comment dans ce nuage mettre des couleurs diff\u00e9rentes en fonction de la taille de chaque tag.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article7\/rajouter-des-couleurs-dans-son-nuage-de-tags\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"rajouter-des-couleurs-dans-son-nuage-de-tags\"\n\t\t\t},\n\t\t\t\"headline\": \"Rajouter des couleurs dans son nuage de tags\",\n\t\t\t\"datePublished\": \"2013-05-06T08:45:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Tuto, Css, Th\u00e8me, Sidebar\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "Le nuage de tags de PluXml est affich\u00e9 gr\u00e2ce \u00e0 fonction \u003Cstrong\u003E\u003Cem\u003EtagList\u003C\/em\u003E\u003C\/strong\u003E de la class \u003Cem\u003EplxShow\u003C\/em\u003E.\nElle est g\u00e9n\u00e9ralement utilis\u00e9e dans la sidebar (fichier \u003Cem\u003Esidebar.php\u003C\/em\u003E de son th\u00e8me).\n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EtagList('&lt;span class=\"tag #tag_size\"\u003E&lt;a class=\"#tag_status\" href=\"#tag_url\" title=\"#tag_name\"\u003E#tag_name&lt;\/a\u003E&lt;\/span\u003E', 20); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nNb: le deuxi\u00e8me param\u00e8tre de la fonction tagList permet de limiter le nombre de tags affich\u00e9s (ici \u00e0 20).\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nLa taille de chaque tag est d\u00e9finie dans la feuille de style (fichier \u003Cem\u003Estyle.css\u003C\/em\u003E dans le dossier du th\u00e8me). Pour le th\u00e8me par d\u00e9faut de PluXml nous avons:\n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n.tag-size-1 \t{ font-size: 1em; }\n.tag-size-2 \t{ font-size: 1.1em; }\n.tag-size-3 \t{ font-size: 1.2em; }\n.tag-size-4 \t{ font-size: 1.3em; }\n.tag-size-5 \t{ font-size: 1.4em; }\n.tag-size-6 \t{ font-size: 1.5em; }\n.tag-size-7 \t{ font-size: 1.6em; }\n.tag-size-8 \t{ font-size: 1.7em; }\n.tag-size-9 \t{ font-size: 1.8em }\n.tag-size-10 \t{ font-size: 1.9em; }\n.tag-size-max \t{ font-size: 2em; }\n\u003C\/code\u003E\u003C\/pre\u003E\nSi un tag n\u2019est utilis\u00e9 qu\u2019une fois, c\u2019est la classe css \u003Cem\u003E.tag-size-1\u003C\/em\u003E qui est utilis\u00e9e et le tag sera afiich\u00e9 avec une taille de 1em.\u003Cbr \/\u003E\nSi un tag n\u2019est utilis\u00e9 que 5 fois, c\u2019est la class css \u003Cem\u003E.tag-size-5\u003C\/em\u003E qui est utilis\u00e9e avec donc une taille de 1.4em.\u003Cbr \/\u003E\nSi un tag est utilis\u00e9 plus de 10 fois c\u2019est la class \u003Cem\u003E.tag-size-max\u003C\/em\u003E qui est utilis\u00e9e avec la taille correspondante.\u003Cbr \/\u003E\n\u003Cbr \/\u003E\nLes tags sont des liens cliquables d\u00e9finit par la balise html &lt;a\u003E.\u003Cbr \/\u003E\nPour changer la couleur de leur balise &lt;a\u003E il faut donc intervenir sur tous les arguments:\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n .tag-size-x a\n\u003C\/code\u003E\u003C\/pre\u003E\u003Cbr \/\u003E\nPour d\u00e9finir une couleur diff\u00e9rente de chaque tag en fonction de sa taille, rajoutez le code suivant \u00e0 la fin du fichier \u003Cstrong\u003E\u003Cem\u003Estyle.css\u003C\/em\u003E\u003C\/strong\u003E\n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n.tag-size-1 a\t{ color: #999999; }\n.tag-size-2 a\t{ color: #000000; }\n.tag-size-3 a\t{ color: #cc0000; }\n.tag-size-4 a\t{ color: #3366ff; }\n.tag-size-5 a\t{ color: #cc66cc; }\n.tag-size-6 a\t{ color: #996633; }\n.tag-size-7 a\t{ color: #6666cc; }\n.tag-size-8 a\t{ color: #339999; }\n.tag-size-9 a\t{ color: #009900; }\n.tag-size-10 a\t{ color: #ff99ff; }\n.tag-size-max a\t{ color: #ff6600; }\n\u003C\/code\u003E\u003C\/pre\u003E\nSi vous voulez un comportement diff\u00e9rent au passage de la souris sur les liens, jouez sur \u003Cstrong\u003Ea:hover\u003C\/strong\u003E de chaque tag.\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n.tag-size-1 a:hover\t{ color: #999999; }\n\u003C\/code\u003E\u003C\/pre\u003E\nVoil\u00e0, \u00e0 vous maitenant de choisir les couleurs qui vous plaisent en modifiant les valeurs #999999, etc...",
            "tags": "PluXml, Tuto, Css, Th\u00e8me, Sidebar",
            "meta_description": "Tutorial pour PluXml pour d\u00e9finir des couleurs diff\u00e9rentes pour chaque tag du nuage de tag en fonction de son importance",
            "meta_keywords": "PluXml, Tuto, Tag, Nuage de tags, Couleurs",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0007",
            "author": "001",
            "categorie": "001",
            "url": "rajouter-des-couleurs-dans-son-nuage-de-tags",
            "date": "201305060845",
            "nb_com": 3,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0008.003.001.201305050832.ou-placer-le-code-de-suivi-de-google-analytics-sur-son-site.xml",
            "title": "O\u00f9 placer le code de suivi de Google Analytics sur son site ?",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Il est souvent recommand\u00e9 de plac\u00e9 le chargement de code javascript \u00e0 la fin d\u2019une page html avant la balise &lt;\/body\u003E, ceci pour ne pas p\u00e9naliser le temps de charge du site.\nC\u2019est en partie vrai. En revanche Google recommande de placer son code de suivi d'un site web de Google Analytics avant la balise &lt;\/head\u003E, comme expliqu\u00e9 sur cette \u003Ca href=\u201dhttps:\/\/support.google.com\/analytics\/answer\/1008080?hl=fr\u201d title=\"Comment configurer le code de suivi d'un site Web\"\u003Epage\u003C\/a\u003E, parce que le code est ex\u00e9cut\u00e9 de mani\u00e8re asynchrone, c'est \u00e0 dire en arri\u00e8re plan. De cette fa\u00e7on le temps de chargement de la page n'est pas impact\u00e9.\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;script type=\"text\/javascript\"\u003E\n\n  var _gaq = _gaq || [];\n  _gaq.push(['_setAccount', 'UA-XXXXX-Y']);\n  _gaq.push(['_trackPageview']);\n\n  (function() {\n    var ga = document.createElement('script'); ga.type = 'text\/javascript'; ga.async = true;\n    ga.src = ('https:' == document.location.protocol ? 'https:\/\/ssl' : 'http:\/\/www') + '.google-analytics.com\/ga.js';\n    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);\n  })();\n\n&lt;\/script\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nRemplacer UA-XXXXX-Y par votre code personnel.\u003Cbr \/\u003E\u003Cbr \/\u003E\nLe placement de ce code au bon endroit est d'autant plus n\u00e9cessaire si vous souhaitez utiliser les \u003Ca title=\"Google Webmasters Tools\" href=\"http:\/\/www.google.com\/webmasters\/\"\u003Eoutils pour webmasters\u003C\/a\u003E de google (car sinon impossible).\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPs: \u003Cem\u003EUne mise \u00e0 jour en version 1.2 de mon plugin MyGoogleAnalytics pour \u003Ca href=\"http:\/\/www.pluxml.org\" title=\"PluXml\"\u003EPluXml\u003C\/a\u003E est disponible d\u00e8s \u00e0 pr\u00e9sent pour prendre en compte cette r\u00e8gle \u003Ca href=\"https:\/\/code.google.com\/p\/my-pluxml\/downloads\/list\" title=\"Plugins pour PluXml\"\u003Eici\u003C\/a\u003E\u003C\/em\u003E.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article8\/ou-placer-le-code-de-suivi-de-google-analytics-sur-son-site\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"ou-placer-le-code-de-suivi-de-google-analytics-sur-son-site\"\n\t\t\t},\n\t\t\t\"headline\": \"O\u00f9 placer le code de suivi de Google Analytics sur son site ?\",\n\t\t\t\"datePublished\": \"2013-05-05T08:32:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"Google Analytics, Audience, PluXml\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "Google Analytics, Audience, PluXml",
            "meta_description": "Pourquoi il faut placer le code de suivi de Google Analytics avant la balise \u003C\/head\u003E",
            "meta_keywords": "Google Analytics, Audience, plxMyGoogleAnalytics",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0008",
            "author": "001",
            "categorie": "003",
            "url": "ou-placer-le-code-de-suivi-de-google-analytics-sur-son-site",
            "date": "201305050832",
            "nb_com": 0,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0006.001.001.201305010830.mettre-en-place-un-edito.xml",
            "title": "Mettre en place un \u00e9dito",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Je vous propose mettre en place sur votre site un \u003Ca href=\"http:\/\/fr.wikipedia.org\/wiki\/%C3%89ditorial\" title=\"Edito\"\u003E\u00e9dito\u003C\/a\u003E, c'est \u00e0 dire un article qui va rester en haut de la page d'accueil jusqu'\u00e0 la publication d'un nouvel \u00e9dito (ou le temps que vous choisirez). \n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cimg src=\"data\/images\/0006\/img1.jpg\" alt=\"\" title=\"PluXml: Mettre en place un \u00e9dito\" \/\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article6\/mettre-en-place-un-edito\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"mettre-en-place-un-edito\"\n\t\t\t},\n\t\t\t\"headline\": \"Mettre en place un \u00e9dito\",\n\t\t\t\"datePublished\": \"2013-05-01T08:30:00Z\",\n\t\t\t\"dateModified\": \"--T::00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Tuto\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "Pour ce tutorial je me base sur le th\u00e8me par d\u00e9faut de PluXml 5.1.7\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nLes deux points cl\u00e9s qui vont \u00eatre utilis\u00e9s sont :\u003Cbr \/\u003E\n\u003Cul\u003E\n\u003Cli\u003ECr\u00e9ation d\u2019une cat\u00e9gorie Edito qui sera r\u00e9serv\u00e9e aux \u00e9ditos.\u003C\/li\u003E\n\u003Cli\u003EUtilisation de la fonction \u003Cem\u003ElastArtList\u003C\/em\u003E de la classe plxShow pour afficher le dernier \u00e9dito publi\u00e9 sur le site.\u003C\/li\u003E\n\u003C\/ul\u003E\n\n\u003Ch2\u003ECr\u00e9ation et param\u00e9trage de la cat\u00e9gorie Edito\u003C\/h2\u003E\n\nCommen\u00e7ons par cr\u00e9er une \u003Cstrong\u003Enouvelle cat\u00e9gorie\u003C\/strong\u003E que nous appellerons \u003Cstrong\u003EEdito\u003C\/strong\u003E.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nA partir de l\u2019administration de votre PluXml, allez dans le menu \u003Cem\u003ECat\u00e9gories\u003C\/em\u003E et cr\u00e9ez une nouvelle cat\u00e9gorie de mani\u00e8re \u00e0 obtenir la ligne Edito.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\n\u003Cimg src=\"data\/images\/0006\/img2.jpg\" alt=\"\" title=\"PluXml: Cr\u00e9ation de la cat\u00e9gorie Edito\" \/\u003E\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nReportez bien dans les colonnes les valeurs :\n\u003Cul\u003E\n\u003Cli\u003ENb art\/page : 1\u003C\/li\u003E\n\u003Cli\u003EMenu : Masquer\u003C\/li\u003E\n\u003C\/ul\u003E\n \nRelevez l\u2019identifiant de la cat\u00e9gorie (colonne Identifiant): ici nous avons la valeur 002. Nous utiliserons cette valeur plus tard.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nCliquez sur le lien \u003Cem\u003EOptions\u003C\/em\u003E de la cat\u00e9gorie Edito.\u003Cbr \/\u003E\u003Cbr \/\u003E\nR\u00e9glez le d\u00e9roulant \u003Cem\u003EAfficher les articles de cette cat\u00e9gorie sur la page d'accueil\u003C\/em\u003E sur la valeur \u003Cem\u003ENon\u003C\/em\u003E et cliquez sur le bouton \u003Cem\u003EMettre \u00e0 jour cette cat\u00e9gorie\u003C\/em\u003E pour enregistrer la modification.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cimg src=\"data\/images\/0006\/img3.jpg\" alt=\"\" title=\"PluXml: Options de la cat\u00e9gorie Edito\" \/\u003E\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Ch2\u003EModification du th\u00e8me pour afficher les \u00e9ditos\u003C\/h2\u003E\n\nEditez le fichier \u003Cem\u003Ehome.php\u003C\/em\u003E stock\u00e9 dans le dossier \u003Cem\u003Etheme\/defaut\/\u003C\/em\u003E\u003Cbr \/\u003E\u003Cbr \/\u003E\nAu dessus de la ligne\n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php while($plxShow-\u003EplxMotor-\u003EplxRecord_arts-\u003Eloop()): ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nRajoutez le code suivant :\n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;article role=\"article\" class=\"edito\"\u003E\n&lt;?php $plxShow-\u003ElastArtList('&lt;header\u003E&lt;h1\u003E&lt;a &#104;ref&#61;&#34;#art_url&#34;&nbsp;title=\"#art_title\"\u003E#art_title&lt;\/a\u003E&lt;\/h1\u003E&lt;p\u003EPar #art_author&lt;\/p\u003E&lt;\/header\u003E&lt;section\u003E#art_content(9999)&lt;\/section\u003E', 1, '002') ?\u003E\n&lt;\/article\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\nIci nous utilisons la fonction \u003Cem\u003ElastArtList\u003C\/em\u003E de la classe plxShow car elle permet d\u2019afficher les derniers articles publi\u00e9s sur le site.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nLes 3 premiers param\u00e8tres utilis\u00e9s de \u003Cem\u003ElastArtList\u003C\/em\u003E sont :\u003Cbr \/\u003E\u003Cbr \/\u003E\nParam\u00e8tre 1 : contient le code html affich\u00e9 o\u00f9 chaque variable suivante sera remplac\u00e9e par la donn\u00e9e correspondante de l\u2019article\u003Cbr \/\u003E\n\u003Cul\u003E\n\u003Cli\u003E#art_url : url de l\u2019article\u003C\/li\u003E\n\u003Cli\u003E#art_title : titre de l\u2019article\u003C\/li\u003E\n\u003Cli\u003E#art_author : non du r\u00e9dacteur de l\u2019article\u003C\/li\u003E\n\u003Cli\u003E#art_content(nb caract\u00e8res) : contenu de l\u2019article\u003C\/li\u003E\n\u003C\/ul\u003E\n\nCe code html peut bien s\u00fbr \u00eatre adapt\u00e9 selon vos besoins. D\u2019autres variables sont disponibles :\u003Cbr \/\u003E\n\u003Cul\u003E \n\u003Cli\u003E#art_id: identifiant de l\u2019article\u003C\/li\u003E\n\u003Cli\u003E#art_chapo : chapo de l\u2019article\u003C\/li\u003E\n\u003Cli\u003E#art_date : date de publication de l\u2019article\u003C\/li\u003E\n\u003Cli\u003E#art_hour : heure de publication de l\u2019article\u003C\/li\u003E\n\u003Cli\u003E#cat_list : nom de la cat\u00e9gorie\u003C\/li\u003E\n\u003Cli\u003E#art_nbcoms : nombre de commentaires\u003C\/li\u003E\n\u003C\/ul\u003E\n\nParam\u00e8tre 2 : nombre maximum d\u2019articles affich\u00e9s. Ici nous avons 1 car nous ne souhaitons afficher que le dernier article de la cat\u00e9gorie Edito.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nParam\u00e8tre 3 : Reportez ici l\u2019identifiant de votre cat\u00e9gorie Edito cr\u00e9\u00e9e pr\u00e9c\u00e9demment. Le num\u00e9ro est affich\u00e9 sur l\u2019\u00e9cran de gestion des cat\u00e9gories dans la colonne Identifiant.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nIl ne reste plus qu\u2019\u00e0 mettre en forme l\u2019affichage de l\u2019\u00e9dito avec un peu de code css que nous allons copier \u00e0 la fin du fichier style.css du th\u00e8me, stock\u00e9 dans le dossier themes\/defaut\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n.edito {\n\tbackground-color: #efefef;\n\tborder: 1px solid #ccc;\n\tpadding: 10px 15px 20px 15px;\n\tfont-size: 0.9em;\n\tmargin-bottom: 20px;\n}\n.edito header,\n.edito section {\n\tbackground-color: #efefef;\n}\n.edito h1 {\n\tfont-size: 1.5em;\n\tmargin: 0;\n\tpadding: 0;\n\ttext-align: left;\n}\n.edito p {\n\ttext-align: left;\n}\n.edito section {\n\tmargin: 0;\n\tpadding: 0;\n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cbr \/\u003E\nLa classe css utilis\u00e9e est \u003Cem\u003E.edito\u003C\/em\u003E\u003Cbr \/\u003E\nElle permet de d\u00e9finir le comportement visuel de chaque \u00e9l\u00e9ment html\n\n\u003Ch2\u003ER\u00e9daction du premier \u00e9dito\u003C\/h2\u003E\n\nIl ne reste maintenant plus qu\u2019\u00e0 r\u00e9diger notre premier \u00e9dito.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\nCr\u00e9ez un nouvel article et surtout publi\u00e9 le dans la cat\u00e9gorie Edito.\u003Cbr \/\u003E\nAvec le param\u00e8trage que nous avons fait pour la cat\u00e9gorie Edito, l\u2019article cr\u00e9\u00e9 restera visible sur la page d\u2019accueil tant qu\u2019un nouvel article ne sera pas publi\u00e9 dans cette cat\u00e9gorie. Donc n\u2019oubliez pas de cocher la cat\u00e9gorie Edito.\u003Cbr \/\u003E\u003Cbr \/\u003E\n\n\u003Ch2\u003EAfficher\/Masquer l'article \u00e9dito\u003C\/h2\u003E\n\n(Mise \u00e0 jour le 31\/03\/2014)\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nComme demand\u00e9 dans les commentaires, voici une modification qui permet de ne pas afficher la partie Edito si on le souhaite. \n\u003Cbr \/\u003E\u003Cbr \/\u003E\nTout d'abord, \u00e0 la place du code propos\u00e9 au d\u00e9but de l'article, au dessus de la ligne \n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php while($plxShow-\u003EplxMotor-\u003EplxRecord_arts-\u003Eloop()): ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nRajoutez le code suivant :\n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php \n$catEdito = '002';\nif($plxShow-\u003EplxMotor-\u003EaCats[$catEdito]['active']) {\n\t$plxShow-\u003ElastArtList('&lt;article role=\"article\" class=\"edito\"\u003E&lt;header\u003E&lt;h1\u003E&lt;a href=\"#art_url\" title=\"#art_title\"\u003E#art_title&lt;\/a\u003E&lt;\/h1\u003E&lt;p\u003EPar #art_author&lt;\/p\u003E&lt;\/header\u003E&lt;section\u003E#art_content(9999)&lt;\/section\u003E&lt;\/article\u003E', 1, $catEdito); \n}\n?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cbr \/\u003E\nRemplacez la valeur 002 par l'identifiant de votre cat\u00e9gorie Edito au niveau de la ligne\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n$catEdito = '002';\n\u003C\/code\u003E\u003C\/pre\u003E\nCe code a l'avantage de ne pas laisser de balises html &lt;article\u003E&lt;\/article\u003E vide si aucun \u00e9dito n'est r\u00e9dig\u00e9.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nMaintenant si un article est publi\u00e9 dans la cat\u00e9gorie Edito et que vous souhaitez ne plus l'afficher, il vous suffit de d\u00e9sactiver la cat\u00e9gorie en allant dans la gestion des cat\u00e9gories, de s\u00e9lectionner la valeur \u003Cem\u003ENon\u003C\/em\u003E dans la colonne \u003Cem\u003EActive\u003C\/em\u003E et de sauvegarder la modification en cliquant sur le bouton \u003Cem\u003EModifier la liste des cat\u00e9gories\u003C\/em\u003E.\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cimg src=\"data\/images\/0006\/img4.jpg\" alt=\"\" title=\"Afficher\/Masquer l'article \u00e9dito\" \/\u003E\n\n\u003Cbr \/\u003E\u003Cbr \/\u003E\n\u003Cp\u003E\n\u003Cstrong\u003EEdit: 07\/03\/2016: Afficher le chapo avec un lien \"Lire la suite de l'\u00e9dito\"\u003C\/strong\u003E\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nSi votre \u00e9dito est long, vous pouvez utiliser le chapo pour r\u00e9diger la partie qui sera visible sur la page d'accueil, et mettre le reste du texte dans la partie contenu de l'article. Dans ce cas au niveau du code \u00e0 rajouter dans le fichier home.php du th\u00e8me, utiliser le code suivant pour afficher le chapo avec en dessous un lien \"Lire la suite de l'\u00e9dito\".\n\u003C\/p\u003E\n\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;article role=\"article\" class=\"edito\"\u003E\n&lt;?php $plxShow-\u003ElastArtList('&lt;header\u003E&lt;h1\u003E&lt;a href=\"#art_url\" title=\"#art_title\"\u003E#art_title&lt;\/a\u003E&lt;\/h1\u003E&lt;p\u003EPar #art_author&lt;\/p\u003E&lt;\/header\u003E&lt;section\u003E#art_chapo&lt;\/section\u003E&lt;footer\u003E&lt;a href=\"#art_url\" title=\"#art_title\"\u003ELire la suite de #art_title&lt;\/a\u003E&lt;\/footer\u003E', 1, '002') ?\u003E\n&lt;\/article\u003E\n\u003C\/code\u003E\u003C\/pre\u003E",
            "tags": "PluXml, Tuto",
            "meta_description": "Tutorial pour PluXml sur comment mettre en place sur son site un \u00e9dito",
            "meta_keywords": "PluXml, Tuto, Edito",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0006",
            "author": "001",
            "categorie": "001",
            "url": "mettre-en-place-un-edito",
            "date": "201305010830",
            "nb_com": 23,
            "date_creation": "",
            "date_update": ""
        },
        {
            "filename": ".\/data\/articles\/0005.001.001.201304290800.des-bannieres-pour-promouvoir-le-projet.xml",
            "title": "Des banni\u00e8res pour promouvoir le projet",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "\u003Cp\u003E\r\nLe site \u003Ca href=\"https:\/\/pluxml.org\"\u003EPluXml.org\u003C\/a\u003E mets \u00e0 votre disposition plusieurs banni\u00e8res de couleurs diff\u00e9rentes pour promouvoir et marquer votre soutien au projet.\r\n\u003C\/p\u003E\r\n\r\n\r\n\u003Ch2\u003ELogos au format 104x82px\u003C\/h2\u003E\r\n\r\n\u003Cp\u003E\u003Cimg alt=\"pluxml\" src=\"https:\/\/medias.pluxml.org\/logos\/PluXml-LogoBleu_104x82.png\"\u003E \u003Cimg alt=\"pluxml\" src=\"https:\/\/medias.pluxml.org\/logos\/PluXml-LogoJaune_104x82.png\" style=\"width: 104px; height: 82px;\"\u003E \u003Cimg alt=\"pluxml\" src=\"https:\/\/medias.pluxml.org\/logos\/PluXml-LogoNoir_104x82.png\" style=\"width: 104px; height: 82px;\"\u003E \u003Cimg alt=\"pluxml\" src=\"https:\/\/medias.pluxml.org\/logos\/PluXml-LogoVert_104x82.png\" style=\"width: 104px; height: 82px;\"\u003E \u003Cimg alt=\"pluxml\" src=\"https:\/\/medias.pluxml.org\/logos\/PluXml-LogoViolet_104x82.png\" style=\"width: 104px; height: 82px;\"\u003E\r\n\u003Ch2\u003EBanni\u00e8res taille 400x100 pixels\u003C\/h2\u003E\r\n\u003Cp\u003E\r\n\u003Ca title=\"Banni\u00e8re PluXml: bleu 400x100\" href=\"https:\/\/medias.pluxml.org\/logos\/ban_bleu_400x100.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/ban_bleu_400x100.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E\u003Cbr \/\u003E\r\n\u003Ca title=\"Banni\u00e8re PluXml: jaune 400x100\" href=\"https:\/\/medias.pluxml.org\/logos\/ban_jaune_400x100.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/ban_jaune_400x100.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E\u003Cbr \/\u003E\r\n\u003Ca title=\"Banni\u00e8re PluXml: mauve 400x100\" href=\"https:\/\/medias.pluxml.org\/logos\/ban_mauve_400x100.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/ban_mauve_400x100.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E\u003Cbr \/\u003E\r\n\u003Ca title=\"Banni\u00e8re PluXml: vert 400x100\" href=\"https:\/\/medias.pluxml.org\/logos\/ban_vert_400x100.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/ban_vert_400x100.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E\u003Cbr \/\u003E\r\n\u003C\/p\u003E\r\n\r\n\u003Ch2\u003EBanni\u00e8res taille 80x15 pixels\u003C\/h2\u003E\r\n\u003Cp\u003E\r\n\u003Ca title=\"Banni\u00e8re PluXml: xml vert 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/xml_vert_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/xml_vert_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: xml bleu 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/xml_bleu_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/xml_bleu_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: xml blanc 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/xml_blanc_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/xml_blanc_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E  \r\n\u003Ca title=\"Banni\u00e8re PluXml: xml jaune 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/xml_jaune_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/xml_jaune_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: xml orange 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/xml_orange_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/xml_orange_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: xml rouge 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/xml_rouge_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/xml_rouge_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: xml noir 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/xml_noir_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/xml_noir_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: blog vert 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/blog_vert_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/blog_vert_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: blog bleu 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/blog_bleu_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/blog_bleu_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: blog blanc 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/blog_blanc_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/blog_blanc_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E  \r\n\u003Ca title=\"Banni\u00e8re PluXml: blog jaune 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/blog_jaune_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/blog_jaune_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: blog orange 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/blog_orange_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/blog_orange_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: blog rouge 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/blog_rouge_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/blog_rouge_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: blog noir 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/blog_noir_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/blog_noir_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: cms vert 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/cms_vert_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/cms_vert_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: cms bleu 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/cms_bleu_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/cms_bleu_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: cms blanc 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/cms_blanc_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/cms_blanc_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E  \r\n\u003Ca title=\"Banni\u00e8re PluXml: cms jaune 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/cms_jaune_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/cms_jaune_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: cms orange 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/cms_orange_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/cms_orange_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: cms rouge 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/cms_rouge_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/cms_rouge_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E \r\n\u003Ca title=\"Banni\u00e8re PluXml: cms noir 80x15\" href=\"https:\/\/medias.pluxml.org\/logos\/cms_noir_80x15.png\"\u003E\u003Cimg src=\"https:\/\/medias.pluxml.org\/logos\/cms_noir_80x15.png\" alt=\"pluxml\"\/\u003E\u003C\/a\u003E\r\n\u003C\/p\u003E\r\n\r\nN'h\u00e9sitez pas donc \u00e0 utiliser ces images sur vos sites ou sur les forums pour am\u00e9liorer la visibilit\u00e9 de \u003Cstrong\u003EPluXml\u003C\/strong\u003E sur internet.\u003Cbr \/\u003E\r\n\u003Cbr \/\u003E\r\nUtilisez cette syntaxe dans la signature de votre profil sur les forums o\u00f9 vous \u00eates inscrits (syntaxe au format bbcode)\r\n\u003Cbr \/\u003E\u003Cbr \/\u003E\r\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E[url=https:\/\/pluxml.org][img]https:\/\/medias.pluxml.org\/logos\/ban_bleu_400x100.png[\/img][\/url]\u003C\/code\u003E\u003C\/pre\u003E\r\n\u003Cbr \/\u003E\r\nToutes ces banni\u00e8res sont disponibles \u00e0 cette adresse : \u003Ca title=\"PluXml\" href=\"https:\/\/pluxml.org\/?article22\/bannieres-pluxml\"\u003Ehttps:\/\/pluxml.org\/?article22\/bannieres-pluxml\u003C\/a\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article5\/des-bannieres-pour-promouvoir-le-projet\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"des-bannieres-pour-promouvoir-le-projet\"\n\t\t\t},\n\t\t\t\"headline\": \"Des banni\u00e8res pour promouvoir le projet\",\n\t\t\t\"datePublished\": \"2013-04-29T08:00:00Z\",\n\t\t\t\"dateModified\": \"2024-08-10T15:04:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Banni\u00e8res\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "PluXml, Banni\u00e8res",
            "meta_description": "Liste des banni\u00e8res pour promouvoir et soutenir le projet PluXml, moteur de Blog ou CMS \u00e0 l'Xml",
            "meta_keywords": "PluXml, Banni\u00e8res, Blog, Cms, Xml, Framework",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0005",
            "author": "001",
            "categorie": "001",
            "url": "des-bannieres-pour-promouvoir-le-projet",
            "date": "201304290800",
            "nb_com": 2,
            "date_creation": "201304290800",
            "date_update": "202408101504"
        },
        {
            "filename": ".\/data\/articles\/0004.001.001.201304240700.controler-l-affichage-du-chapo-et-du-contenu-des-articles.xml",
            "title": "Contr\u00f4ler l'affichage du chapo et du contenu des articles",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "Lors de la consultation d'un article, il se peut que l'affichage du chapo et du contenu ne corresponde pas \u00e0 ce que l'on veut: manque d'espace entre les deux, envie d'encadrer le chapo ou de le mettre sur un fond de couleur diff\u00e9rent. Voyons comment donner un visuel diff\u00e9rent pour le chapo et le contenu d'un article.\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article4\/controler-l-affichage-du-chapo-et-du-contenu-des-articles\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"controler-l-affichage-du-chapo-et-du-contenu-des-articles\"\n\t\t\t},\n\t\t\t\"headline\": \"Contr\u00f4ler l'affichage du chapo et du contenu des articles\",\n\t\t\t\"datePublished\": \"2013-04-24T07:00:00Z\",\n\t\t\t\"dateModified\": \"2013-04-24T07:00:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Tuto, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "Dans le fichier article.php du th\u00e8me c'est la fonction \u003Cem\u003EartContent\u003C\/em\u003E (de la classe plxShow) qui est utilis\u00e9e pour afficher \u00e0 la fois le chapo et le contenu de l'article.\n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EartContent(); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nPour donner un visuel diff\u00e9rent au chapo et au contenu de l'article, nous allons utiliser les deux fonctions suivantes:\n\u003Cul\u003E\n\u003Cli\u003EartChapo()\u003C\/li\u003E\n\u003Cli\u003EartContent()\u003C\/li\u003E\n\u003C\/ul\u003E\nLe fichier du th\u00e8me \u00e0 modifier est article.php\n\u003Ch3\u003EAffichage du chapo\u003C\/h3\u003E\nNous avons d\u00e9j\u00e0 vu dans l'article \u003Ca href=\"http:\/\/pluxopolis.net\/article1\/pluxml-personnaliser-l-affichage-du-lien-lire-la-suite\"\u003EPersonnaliser l'affichage du lien \"Lire la suite\"\u003C\/a\u003E que le premier param\u00e8tre de la fonction \u003Cem\u003EartChapo\u003C\/em\u003E permettait de modifier le lien \"Lire la suite\" affich\u00e9 sur la page d'accueil.\u003Cbr \/\u003E\n\u003Cem\u003EartChapo\u003C\/em\u003E poss\u00e8de un deuxi\u00e8me param\u00e8tre qui permet de supprimer l'affichage du contenu de l'article en sp\u00e9cifiant la valeur false. \n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EartChapo('', false); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nAvec cette syntaxe, seul le chapo est affich\u00e9.\n\u003Ch3\u003EAffichage du contenu\u003C\/h3\u003E\nNous avons pr\u00e9c\u00e9demment affich\u00e9 le chapo, il ne reste plus qu'\u00e0 afficher le contenu de l'article.\u003Cbr \/\u003ESi nous utilisons la fonction \u003Cem\u003EartContent\u003C\/em\u003E sans param\u00e8tre, le chapo (s'il existe) va \u00eatre affich\u00e9 (et donc faire doublon avec celui affich\u00e9 par l'appel de la fonction \u003Cem\u003EartChapo\u003C\/em\u003E). Pour ne pas afficher le chapo, il suffit de sp\u00e9cifier la valeur false dans l'appel de \u003Cem\u003EartContent\u003C\/em\u003E.\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EartContent(false); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nCe qui nous donne avec les deux fonctions appel\u00e9es ensemble: \n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php\n\t$plxShow-\u003EartChapo('', false);\n\t$plxShow-\u003EartContent(false);\n?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nNous pouvons maintenant rajouter du code pour avoir un affichage diff\u00e9rent du chapo et du contenu.\u003Cbr \/\u003E\u003Cbr \/\u003E\nExemple 1: ajout d'un ligne vide entre le chapo et le contenu\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n\t&lt;?php $plxShow-\u003EartChapo('', false); ?\u003E\n\t&lt;br \/\u003E\n\t&lt;?php $plxShow-\u003EartContent(false); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nExemple 2: ajout d'un encadr\u00e9 sur un fond de couleur pour le chapo\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;div class=\"art-chapo\" style=\"background-color;#efefef: border:1px solid #ddd\"\u003E\n\t&lt;?php $plxShow-\u003EartChapo('', false); ?\u003E\n&lt;\/div\u003E\n&lt;div class=\"art-content\"\u003E\n\t&lt;?php $plxShow-\u003EartContent(false); ?\u003E\n&lt;\/div\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nIl sera bien sur pr\u00e9f\u00e9rable d'utilis\u00e9 les class css art-chapo et art-content dans la feuille de style (fichier style.css du th\u00e8me) \u00e0 la place de la balise style\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n.art-chapo {\n    background-color:#efefef;\n    border:1px solid #ddd;\n    margin-bottom: 15px\n }\n\u003C\/code\u003E\u003C\/pre\u003E",
            "tags": "PluXml, Tuto, Th\u00e8me",
            "meta_description": "Tutorial pour PluXml pour modifier l'affichage du chapo et du contenu des articles",
            "meta_keywords": "PluXml, Tuto, Chapo, Contenu article",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0004",
            "author": "001",
            "categorie": "001",
            "url": "controler-l-affichage-du-chapo-et-du-contenu-des-articles",
            "date": "201304240700",
            "nb_com": 3,
            "date_creation": "201304240700",
            "date_update": "201304240700"
        },
        {
            "filename": ".\/data\/articles\/0003.001.001.201304220715.personnaliser-le-menu-d-administration-d-un-plugin.xml",
            "title": "Personnaliser le menu d'administration d'un plugin",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "\u003Cp\u003ELorsqu'un fichier admin.php est pr\u00e9sent dans le dossier d'un plugin, un menu dans la sidebar d'administration est automatiquement ajout\u00e9, \u00e0 condition que les droits d'acc\u00e8s \u00e0 ce menu aient \u00e9t\u00e9 d\u00e9finis pour le profil de l'utilisateur connect\u00e9. Ce menu permet de visualiser le contenu de la page admin.php\n\u003C\/p\u003E\n\u003Cp\u003EPar d\u00e9faut le menu porte le nom du plugin et est positionn\u00e9 \u00e0 la fin de la liste des tous les menus de la sidebar.\u003C\/p\u003E\n\u003Cp\u003ENous allons voir comment changer son nom et comment le positionner dans la liste des menus.\u003C\/p\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article3\/personnaliser-le-menu-d-administration-d-un-plugin\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"personnaliser-le-menu-d-administration-d-un-plugin\"\n\t\t\t},\n\t\t\t\"headline\": \"Personnaliser le menu d'administration d'un plugin\",\n\t\t\t\"datePublished\": \"2013-04-22T07:15:00Z\",\n\t\t\t\"dateModified\": \"2013-04-22T07:15:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Tuto\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "content": "\u003Cp\u003ERappelons tout d'abord comment autoriser l'acc\u00e8s au fichier admin.php\u003C\/p\u003E\n\u003Ch2\u003ED\u00e9finir les droits d'acc\u00e8s au fichier admin.php\u003C\/h2\u003E\n\u003Cp\u003E\nM\u00eame si le fichier admin.php est pr\u00e9sent dans le dossier de notre plugin et que les droits pour y acc\u00e9der n'ont pas \u00e9t\u00e9 d\u00e9finis, PluXml fait un contr\u00f4le et interdit de visualiser le contenu de admin.php\n\u003C\/p\u003E\n\u003Cp\u003E\nLorsqu'un utilisateur se connecte \u00e0 l'administration de PluXml, il poss\u00e8de un profil qui lui a \u00e9t\u00e9 d\u00e9finit par l'administrateur du site. Ces droits sont identifi\u00e9s dans le code de PluXml par des constantes:\n\u003Cul\u003E\n\u003Cli\u003EPROFIL_ADMIN\u003C\/li\u003E\n\u003Cli\u003EPROFIL_MANAGER\u003C\/li\u003E\n\u003Cli\u003EPROFIL_MODERATOR\u003C\/li\u003E\n\u003Cli\u003EPROFIL_EDITOR\u003C\/li\u003E\n\u003Cli\u003EPROFIL_WRITER\u003C\/li\u003E\n\u003C\/ul\u003E\nChaque profil permet des actions diff\u00e9rents dans l'administration\n\u003Cbr \/\u003E\n\u003Cdiv class=\"table-container\"\u003E\n\u003Ctable\u003E \n\u003Cthead\u003E\n\u003Ctr\u003E\n\t\u003Cth\u003E&nbsp;\u003C\/th\u003E\n\t\u003Cth\u003EArticles\u003C\/th\u003E\n\t\u003Cth\u003ECat\u00e9gories\u003C\/th\u003E\n\t\u003Cth\u003ECommentaires\u003C\/th\u003E\n\t\u003Cth\u003EPages Statiques\u003C\/th\u003E\n\t\u003Cth\u003EParam\u00e8tres\u003C\/th\u003E\n\u003C\/tr\u003E\n\u003C\/thead\u003E\n\u003Ctbody\u003E\n\u003Ctr\u003E\n\t\u003Ctd\u003EAdministrateur\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\u003C\/tr\u003E\n\u003Ctr\u003E\n\t\u003Ctd\u003EManager\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\t\u003Ctd\u003E&nbsp;\u003C\/td\u003E\n\u003C\/tr\u003E\n\u003Ctr\u003E\n\t\u003Ctd\u003EMod\u00e9rateur\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\t\u003Ctd\u003E&nbsp;\u003C\/td\u003E\n\t\u003Ctd\u003E&nbsp;\u003C\/td\u003E\n\u003C\/tr\u003E\n\u003Ctr\u003E\n\t\u003Ctd\u003EEditeur\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\t\u003Ctd\u003E&nbsp;\u003C\/td\u003E\n\t\u003Ctd\u003E&nbsp;\u003C\/td\u003E\n\t\u003Ctd\u003E&nbsp;\u003C\/td\u003E\n\u003C\/tr\u003E\n\u003Ctr\u003E\n\t\u003Ctd\u003ER\u00e9dacteur\u003C\/td\u003E\n\t\u003Ctd\u003EX\u003C\/td\u003E\n\t\u003Ctd\u003E&nbsp;\u003C\/td\u003E\n\t\u003Ctd\u003E&nbsp;\u003C\/td\u003E\n\t\u003Ctd\u003E&nbsp;\u003C\/td\u003E\n\t\u003Ctd\u003E&nbsp;\u003C\/td\u003E\n\u003C\/tr\u003E\n\u003C\/tbody\u003E\n\u003C\/table\u003E\n\u003C\/div\u003E\n\n\u003Cp\u003E\nPour limiter donc l'acc\u00e8s au fichier admin.php en fonction du profil de l'utilisateur, il faut dans le code de notre plugin utiliser la fonction setAdminProfil et sp\u00e9cifiant comme param\u00e8ters le ou les profils autoris\u00e9s.\n\u003C\/p\u003E\n\u003Cp\u003E\nExemple: pour n'autoriser que le profil PROFIL_ADMIN\n\u003C\/p\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E$this-\u003EsetAdminProfil(PROFIL_ADMIN);\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003E\nExemple: pour n'autoriser que les profils PROFIL_ADMIN et PROFIL_MANAGER\n\u003C\/p\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n$this-\u003EsetAdminProfil(PROFIL_ADMIN, PROFIL_MANAGER);\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003E\nNous voyons donc qu'il faut sp\u00e9cifier les profils que l'on veut autoriser en les s\u00e9parant par une virgule.\n\u003C\/p\u003E\nLa fonction setAdminProfil est \u00e0 utiliser dans le constructeur du plugin.\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nclass plxMonPlugin extends plxPlugin {\n \n  public function __construct($default_lang) {\n    # appel du constructeur de la classe plxPlugin (obligatoire)\n    parent::__construct($default_lang);\n    # droits pour acc\u00e8der \u00e0 la page admin.php du plugin\n    $this-\u003EsetAdminProfil(PROFIL_ADMIN);\n  }\n \n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Ch2\u003EChanger le titre et positionner le menu dans la sidebar\u003C\/h2\u003E\nUne seule fonction permet \u00e0 la fois de changer le titre et de positionner le menu pour acc\u00e8der au fichier admin.php\u003Cbr \/\u003E\nCette fonction s'appelle: setAdminMenu et poss\u00e8de 3 param\u00e8tres:\u003Cbr \/\u003E\n\u003Cbr \/\u003E\nparam\u00e8tre 1&nbsp;&nbsp;&nbsp;&nbsp;titre du menu\u003Cbr \/\u003E\nparam\u00e8tre 2&nbsp;&nbsp;&nbsp;&nbsp;position du menu dans la sidebar\u003Cbr \/\u003E\nparam\u00e8tre 3&nbsp;&nbsp;&nbsp;&nbsp;l\u00e9gende du menu (balise title du lien)\u003Cbr \/\u003E\n\u003Cbr \/\u003E\nOn peut donc l'appeler de cette fa\u00e7on\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n$this-\u003EsetAdminMenu('Mon plugin', 2, 'Acc\u00e8s administration de mon plugin');\n\u003C\/code\u003E\u003C\/pre\u003E\nCette instruction est \u00e0 utiliser dans le constructeur de notre plugin\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nclass plxMonPlugin extends plxPlugin {\n \n  public function __construct($default_lang) {\n    # appel du constructeur de la classe plxPlugin (obligatoire)\n    parent::__construct($default_lang);\n    # droits pour acc\u00e8der \u00e0 la page admin.php du plugin\n    $this-\u003EsetAdminProfil(PROFIL_ADMIN);\n    # d\u00e9finition des propri\u00e9t\u00e9s du menu pour acc\u00e8der \u00e0 la page admin.php du plugin\n    $this-\u003EsetAdminMenu('Mon plugin', 2, 'Acc\u00e8s administration de mon plugin');\n  }\n \n}\n\u003C\/code\u003E\u003C\/pre\u003E\n\u003Cp\u003ELe r\u00e9sultat en image:\u003C\/p\u003E\n\u003Cp style=\"text-align:center\"\u003E\u003Cimg src=\"data\/images\/0003\/monplugin.jpg\" alt=\"\" \/\u003E\u003C\/p\u003E",
            "tags": "PluXml, Tuto",
            "meta_description": "Tutorial pour PluXml pour personnaliser le menu d'administration d'un plugin",
            "meta_keywords": "PluXml, Tuto, Plugin",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0003",
            "author": "001",
            "categorie": "001",
            "url": "personnaliser-le-menu-d-administration-d-un-plugin",
            "date": "201304220715",
            "nb_com": 2,
            "date_creation": "201304220715",
            "date_update": "201304220715"
        },
        {
            "filename": ".\/data\/articles\/0001.001.001.201304150730.personnaliser-l-affichage-du-lien-lire-la-suite.xml",
            "title": "Personnaliser l'affichage du lien \"Lire la suite\"",
            "allow_com": 0,
            "template": "article.php",
            "chapo": "",
            "content": "Par d\u00e9faut dans PluXml, le lien \"Lire la suite\" est de la forme:\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nLire la suite de + titre de l'article\n\u003C\/code\u003E\u003C\/pre\u003E\nExemple:\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nLire la suite de Personnaliser l'affichage du lien \"Lire la suite\"\n\u003C\/code\u003E\u003C\/pre\u003E\u003Cbr \/\u003E\nLe lien \"Lire la suite\" est obtenu par le code\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EartChapo(); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nque l'on trouve dans les fichiers du th\u00e8me (\/themes\/&lt;mon theme\u003E\/').\n\u003Cul\u003E\n\u003Cli\u003Earchives.php\u003C\/li\u003E\n\u003Cli\u003Ecategories.php\u003C\/li\u003E\n\u003Cli\u003Ehome.php\u003C\/li\u003E\n\u003Cli\u003Etags.php\u003C\/li\u003E\n\u003C\/ul\u003E\nLa fonction artChapo affiche donc le chapo de l'article s'il existe + le lien \"Lire la suite\", sinon seul le contenu de l'article est affich\u00e9 (et donc pas de lien \"Lire la suite\").\n\u003Cbr \/\u003E\u003Cbr \/\u003E\nPour personnaliser le lien, il est possible de changer le param\u00e8tre dans l'appel de la fonction artChapo.\u003Cbr \/\u003E\u003Cbr \/\u003E\nVoici quelques exemples:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EartChapo(\"Lire la suite...\"); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\naffichera tout simplement:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nLire la suite...\n\u003C\/code\u003E\u003C\/pre\u003E\nEn utilisant la variable #art_title d'autres fantaisies sont possibles. Par exemple:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php $plxShow-\u003EartChapo('Je veux lire la suite de : #art_title'); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\naffichera:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nJe veux lire la suite de : Personnaliser l'affichage du lien \"Lire la suite\"\n\u003C\/code\u003E\u003C\/pre\u003E\n#art_title est remplac\u00e9 par le titre de l'article.\u003Cbr \/\u003E\u003Cbr \/\u003E\nA vous de jouer. N'oubliez pas de faire la modification dans les 4 fichiers du th\u00e8me o\u00f9 est utilis\u00e9 artChapo (voir la liste des fichiers plus haut).\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article1\/personnaliser-l-affichage-du-lien-lire-la-suite\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"personnaliser-l-affichage-du-lien-lire-la-suite\"\n\t\t\t},\n\t\t\t\"headline\": \"Personnaliser l'affichage du lien \"Lire la suite\"\",\n\t\t\t\"datePublished\": \"2013-04-15T07:30:00Z\",\n\t\t\t\"dateModified\": \"2013-04-15T07:30:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Tuto, Th\u00e8me\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "PluXml, Tuto, Th\u00e8me",
            "meta_description": "Tutorial pour PluXml sur la personnailsation du lien Lire la suite",
            "meta_keywords": "PluXml, Tuto, Lire la suite",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0001",
            "author": "001",
            "categorie": "001",
            "url": "personnaliser-l-affichage-du-lien-lire-la-suite",
            "date": "201304150730",
            "nb_com": 0,
            "date_creation": "201304150730",
            "date_update": "201304150730"
        },
        {
            "filename": ".\/data\/articles\/0002.001,007.001.201304080700.compter-le-nombre-de-pages-statiques.xml",
            "title": "Compter le nombre de pages statiques",
            "allow_com": "0",
            "template": "article.php",
            "chapo": "",
            "content": "Voici un petit bout de code que l'on m'a demand\u00e9 r\u00e9cemment pour compter le nombre de pages statiques dans son PluXml.\u003Cbr \/\u003E\u003Cbr \/\u003E\nDans le fichier header.php de son th\u00e8me apr\u00e8s la ligne:\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php if (!defined('PLX_ROOT')) exit; ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\najoutez le code suivant:\n\u003Cbr \/\u003E\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\n&lt;?php\nfunction nbStatics() {\n    global $plxMotor;\n    $count=0;\n    if($plxMotor-\u003EaStats) {\n        foreach($plxMotor-\u003EaStats as $k=\u003E$v) {\n            if($v['active']) $count++;\n        }\n    }\n    return $count;\n}\n?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\nLa fonction nbStatics() compte et renvoie le nombre de pages statiques qui sont actives.\u003Cbr \/\u003E\nPour afficher ce nombre, ajoutez simplement la ligne suivante dans un des fichiers du th\u00e8me \u00e0 l'endroit o\u00f9 vous voulez:\n\u003Cpre class=\"line-numbers\"\u003E\u003Ccode class=\"language-php\"\u003E\nNombre de pages statiques: &lt;?php echo nbStatics(); ?\u003E\n\u003C\/code\u003E\u003C\/pre\u003E\n\t\t\t\u003Cscript type=\"application\/ld+json\"\u003E\n\t\t\t{\n\t\t\t\"@context\": \"https:\/\/schema.org\",\n\t\t\t\"@type\": \"Article\",\n\t\t\t\"url\" : \"https:\/\/pluxopolis.net\/article2\/compter-le-nombre-de-pages-statiques\",\n\t\t\t\"mainEntityOfPage\": {\n\t\t\t\"@type\": \"WebPage\",\n\t\t\t\"@id\": \"compter-le-nombre-de-pages-statiques\"\n\t\t\t},\n\t\t\t\"headline\": \"Compter le nombre de pages statiques\",\n\t\t\t\"datePublished\": \"2013-04-08T07:00:00Z\",\n\t\t\t\"dateModified\": \"2013-04-08T07:00:00Z\",\n\t\t\t\"author\": {\n\t\t\t\"@type\": \"Person\",\n\t\t\t\"name\": \"jack\"\n\t\t\t},\n\t\t\t\t\"keywords\":\"PluXml, Astuce, Programmation, Page statique, Snippet\"\n\t\t\t}\n\t\t\t\u003C\/script\u003E\n",
            "tags": "PluXml, Astuce, Programmation, Page statique, Snippet",
            "meta_description": "Bout de code php pour afficher les nombre de pages statiques dans PluXml",
            "meta_keywords": "PluXml, Astuce, Programmation",
            "title_htmltag": "",
            "thumbnail": "",
            "thumbnail_title": "",
            "thumbnail_alt": "",
            "numero": "0002",
            "author": "001",
            "categorie": "001,007",
            "url": "compter-le-nombre-de-pages-statiques",
            "date": "201304080700",
            "nb_com": 0,
            "date_creation": "201304080700",
            "date_update": "201304080700"
        }
    ]
}