{"id":456,"date":"2020-10-07T14:49:45","date_gmt":"2020-10-07T14:49:45","guid":{"rendered":"https:\/\/cinnk.com\/index.php\/2020\/10\/07\/joomla-et-l-inclusion-de-javascript-aout-2015\/"},"modified":"2020-10-07T14:49:45","modified_gmt":"2020-10-07T14:49:45","slug":"joomla-et-l-inclusion-de-javascript-aout-2015","status":"publish","type":"post","link":"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/","title":{"rendered":"Joomla et l\u2019inclusion de JavaScript &#8211; Ao\u00fbt 2015"},"content":{"rendered":"<p>How do you comfort a JavaScript bug ? You console it.<\/p>\n<p>Comment r\u00e9conforter un bug JavaScript ? On le console.<br \/>\n<!--more--><br \/>\nHow do you comfort a JavaScript bug ? You console it.<br \/>\nComment r\u00e9conforter un bug JavaScript ? On le console.<br \/>\nEnvironnement de travail<br \/>\nAvant de parler de JavaScript, il est n\u00e9cessaire d&rsquo;adapter son environnement de d\u00e9veloppement \u00e0 ce langage.<br \/>\nSur Firefox, l&rsquo;outil de debug de base est Firebug. La console (d&rsquo;o\u00f9 la vanne) permet de d\u00e9tecter imm\u00e9diatement les erreurs JS.<br \/>\nIl existe de nombreux tutos sur Firebug. Notamment celui d&rsquo;Alsacr\u00e9ations, qui aborde les 3 fonctions principales de l&rsquo;outil, inspection HTML, d\u00e9boggage CSS et d\u00e9boggage JavaScript.<br \/>\nIl existe aussi une version pour Chrome.<br \/>\nL&rsquo;autre extension indispensable sur Firefox est Phoenix. A l&rsquo;aide de cet outil, on peut voir d&rsquo;un seul coup d&rsquo;oeil tous les fichiers JS et CSS charg\u00e9s sur une page.<br \/>\nIntroduction<br \/>\nLe CMS Joomla utilise une vari\u00e9t\u00e9 de scripts JS, pour l&rsquo;essentiel bas\u00e9s sur la librairie jQuery.<br \/>\nCette derni\u00e8re a progressivement remplac\u00e9 la librairie Mootools, qui a compl\u00e8tement disparu du Frontend, mais qui est maintenue pour certaines fonctionnalit\u00e9s en Backend.<br \/>\nLe \u00ab\u00a0framework\u00a0\u00bb Bootstrap a \u00e9t\u00e9 rajout\u00e9 r\u00e9cemment pour faciliter la mise en place d&rsquo;\u00e9l\u00e9ments de design \u00ab\u00a0ready-made\u00a0\u00bb comme les grids, les boutons, les images, les formulaires, etc &#8230; Bootstrap comporte une partis JS (li\u00e9e \u00e0 jQuery) et une partie CSS.<br \/>\nMon but dans cet article est de pr\u00e9senter les diff\u00e9rentes mani\u00e8res d&rsquo;inclure les fichiers JS dans Joomla en commen\u00e7ant par les m\u00e9thodes existantes.<br \/>\nJavaScript et CSS marchant de pair, j&rsquo;aborderai aussi l&rsquo;inclusion des fichiers CSS dans Joomla.<br \/>\nVous pouvez aussi vous r\u00e9f\u00e9rer \u00e0 ces articles de la documentation Joomla (en fran\u00e7ais) :<\/p>\n<p> Ajouter du JavaScript &#8211; Joomla! Documentation<br \/>\n Frameworks JavaScript &#8211; Joomla! Documentation<br \/>\n Ajouter du JavaScript et des CSS \u00e0 une page &#8211; Joomla! Documentation <\/p>\n<p>Les bases<br \/>\nEn g\u00e9n\u00e9ral, l&rsquo;utilisateur de Joomla! commence \u00e0 se pr\u00e9occuper de JS quand :<\/p>\n<p>il y a un bug. Mon [enregistrement, slideshow, menu, etc, barrez les mentions inutiles] ne fonctionne pas<br \/>\nil veut int\u00e9grer son propre script super sympa qu&rsquo;il a trouv\u00e9 sur le web<\/p>\n<p>D\u00e9bogguer et adapter des scripts JS peut \u00eatre compliqu\u00e9 si l&rsquo;on ne comprend pas bien les bases de l&rsquo;inclusion du JS dans Joomla.<br \/>\nLe JavaScript dans les templates<br \/>\nLe premier contact d&rsquo;un utilisateur Joomla avec le JS et les CSS passe par les templates. Le template Protostar, qui est compris dans le package par d\u00e9faut d&rsquo;une installation Joomal native, est une excellente d\u00e9mo pour faire les premiers pas.<br \/>\nJS<br \/>\nDans l&rsquo;index.php, localis\u00e9 ici \/templates\/protostar\/index.php, ligne \u00b1 39<br \/>\n JHtml::_(&lsquo;bootstrap.framework&rsquo;);<br \/>\nCette ligne int\u00e8gre toutes les d\u00e9pendances dont on a besoin en chargeant Jquery + Bootstrap. Elle assure aussi que jQuery n&rsquo;est charg\u00e9 qu&rsquo;une seule fois<br \/>\nLigne \u00b1 13<br \/>\n $doc  = JFactory::getDocument();<br \/>\nCette ligne est n\u00e9cessaire pour charger les fichiers JS et CSS additionnels.<br \/>\nLigne \u00b1 40<br \/>\n $doc-&gt;addScript($this-&gt;baseurl . &lsquo;\/templates\/&rsquo; . $this-&gt;template . &lsquo;\/js\/template.js&rsquo;);<br \/>\nCette ligne utilise l&rsquo;API Joomla pour charger un fichier JS localis\u00e9 dans \/templates\/protostar\/js\/<br \/>\nCSS<br \/>\nLigne \u00b1 43<br \/>\n $doc-&gt;addStyleSheet($this-&gt;baseurl . &lsquo;\/templates\/&rsquo; . $this-&gt;template . &lsquo;\/css\/template.css&rsquo;);<br \/>\n $doc-&gt;addStyleSheet($this-&gt;baseurl . &lsquo;\/templates\/&rsquo; . $this-&gt;template . &lsquo;\/css\/custom.css&rsquo;);<br \/>\nCes lignes utilisent l&rsquo;API Joomla pour charger un fichier template.css et un fichier custom.css localis\u00e9s dans \/templates\/protostar\/css\/.<br \/>\nJ&rsquo;ai rajout\u00e9 un fichier custom.css qui n&rsquo;existe pas par d\u00e9faut dans l&rsquo;index.php du template Protostar pour montrer \u00e0 quel endroit on peut inclure des fichiers CSS personnalis\u00e9s.<br \/>\nEn r\u00e9sum\u00e9, la bonne m\u00e9thode pour l&rsquo;inclusion de fichiers JS et CSS :<br \/>\n $doc = JFactory::getDocument();<br \/>\n $doc-&gt;addScript($this-&gt;baseurl . &lsquo;\/templates\/&rsquo; . $this-&gt;template . &lsquo;\/js\/template.js&rsquo;);<br \/>\n $doc-&gt;addStyleSheet($this-&gt;baseurl . &lsquo;\/templates\/&rsquo; . $this-&gt;template . &lsquo;\/css\/template.css&rsquo;);<br \/>\nImportant<br \/>\nOn peut toujours rajouter un fichier JS ou CSS via les m\u00e9thodes classiques, dans la balise \u00ab\u00a0head\u00a0\u00bb :<br \/>\nMais l&rsquo;ordre dans lequel se chargent ces fichiers, JS ou CSS, est tr\u00e8s important.<br \/>\n Joomla doit ex\u00e9cuter les fichiers jQuery AVANT tout script d\u00e9pendant.<br \/>\nLes lois de l&rsquo;HTML et donc des CSS, veulent que le dernier fichier CSS charg\u00e9 prend la pr\u00e9c\u00e9dente sur tous les autres.<br \/>\nLes d\u00e9veloppeurs de Joomla ont pris en compte ces principes et con\u00e7u l&rsquo;inclusion des fichiers JS et CSS en cons\u00e9quence.<br \/>\nIl est donc fortement recommand\u00e9 d&rsquo;adopter ces m\u00e9thodes.<br \/>\nNB : les templates des d\u00e9veloppeurs de templates r\u00e9put\u00e9s (RocketTheme, Joomlart, Yootheme, JoomlaShine, Gavick, etc &#8230;) prennent souvent des libert\u00e9s avec cette m\u00e9thode et chacun a sa mani\u00e8re de traiter le chargement des fichiers JS et CSS. On en parlera aussi dans un autre article.<br \/>\nPar ailleurs, ajouter un fichier JS ou CSS dans l&rsquo;index.php du template alors qui lui ne ciblera qu&rsquo;un module ou un composant est tr\u00e8s contre-productif car le-dit fichier sera charg\u00e9 sur toutes les pages, par d\u00e9finition. On va donc voir des alternatives \u00e0 cette m\u00e9thode.<br \/>\nLe JavaScript dans les extensions<br \/>\nNous savons qu&rsquo;il faut \u00e9viter de modifier les fichiers natifs, et ceux des extensions tierces, \u00e0 cause des mises \u00e0 jour r\u00e9guli\u00e8res de Joomla, des templates et des extensions. Nous avons donc \u00e0 notre disposition les surcharges de templates, composants, modules.<br \/>\nJe pars du principes que les m\u00e9thodes de surcharges sont acquises (sinon voir cet article).<br \/>\n1 &#8211; La m\u00e9thode classique<br \/>\nOn peut toujours ajouter les fichiers JS ou CSS de la mani\u00e8re suivante, en respectant les chemins\/paths vers ces fichiers, que je placerai dans les dossiers \u00ab\u00a0css\u00a0\u00bb et \u00ab\u00a0js\u00a0\u00bb pour des raisons de coh\u00e9rence.<br \/>\nPrenons la surcharge d&rsquo;un module \u00ab\u00a0custom\u00a0\u00bb, dans default.php, localis\u00e9 ici :<br \/>\n \/templates\/protostar\/html\/mod_custom\/default.php<br \/>\nInsertion des fichiers :<br \/>\n defined(&lsquo;_JEXEC&rsquo;) or die;<br \/>\n\/\/insertion<br \/>\n$doc = JFactory::getDocument();<br \/>\n$doc-&gt;addStyleSheet(JURI::root().&rsquo;templates\/protostar\/css\/mod_custom.css&rsquo;);<br \/>\n$doc-&gt;addScript(JURI::root().&rsquo;templates\/protostar\/js\/mod_custom.js&rsquo;);<br \/>\nM\u00eame m\u00e9thode pour les composants, dont le com_content, qui g\u00e8re l&rsquo;affichage des articles, cat\u00e9gories, page d&rsquo;accueil.<br \/>\nIdem pour les plugins.<br \/>\nDans cette configuration, on \u00e9vite le chargement superflu et g\u00e9n\u00e9rateur de requ\u00eates inutiles en ciblant l&rsquo;extension et seulement elle.<br \/>\nJe mettrai un b\u00e9mol sur les plugins, surchargeables, mais qui la plupart du temps, propagent tous les fichiers JS et CSS partout, sans possibilit\u00e9 de contr\u00f4le.<br \/>\n2 &#8211; La m\u00e9thode qui tue<br \/>\nDepuis la version 3.xx de Joomla, j&rsquo;avais \u00e9t\u00e9 tr\u00e8s int\u00e9ress\u00e9e par cet article de Michael Babker, \u00ab\u00a0Use the media Folder, Allow Overridable Media\u00a0\u00bb, qui pr\u00e9sentait une nouvelle approche de l&rsquo;insertion de fichiers JS et CSS, et des images li\u00e9es, cette fois-ci, dans le dossier \u00ab\u00a0media\u00a0\u00bb.<br \/>\nOn cr\u00e9e un dossier \u00ab\u00a0mes_styles\u00a0\u00bb dans le dossier \u00ab\u00a0media\u00a0\u00bb.<br \/>\nDans le dossier \u00ab\u00a0mes_styles\u00a0\u00bb, on cr\u00e9e un dossier \u00ab\u00a0css\u00a0\u00bb, un dossier \u00ab\u00a0images\u00a0\u00bb, un dossier \u00ab\u00a0js\u00a0\u00bb.<br \/>\nNB : le respect des minuscules est important pour le nommage de ces fichiers.<br \/>\nOn place les fichiers JS, CSS, et les images dans leurs dossiers respectifs. Et l\u00e0, bingo, plus besoin de se pr\u00e9occuper des chemins\/paths des fichiers, il suffit de rajouter dans notre surcharge du fichier default.php, dans mod_custom, localis\u00e9 ici : \/templates\/protostar\/html\/mod_custom\/default.php,<br \/>\n defined(&lsquo;_JEXEC&rsquo;) or die;<br \/>\nJHtml::_(&lsquo;stylesheet&rsquo;, &lsquo;mes_styles\/macss1.css&rsquo;, false, true);<br \/>\nJHtml::_(&lsquo;script&rsquo;, &lsquo;mes_styles\/monjs1.js&rsquo;, false, true);<br \/>\nL&rsquo;API Joomla ira alors chercher les fichiers \u00e0 cet endroit, cad le dossier \u00ab\u00a0media\/mes_styles\u00a0\u00bb. Cette m\u00e9thode fonctionne pour les surcharges de composants \u00e9galement. Elle fonctionne aussi dans les modules et les composants eux-m\u00eames. C&rsquo;est celle utilis\u00e9e aujourd&rsquo;hui par la plupart des d\u00e9veloppeurs d&rsquo;extensions.<br \/>\nIMPORTANT<br \/>\nIl est toujours n\u00e9cessaire de v\u00e9rifier l&rsquo;ordre de chargement des fichiers via le code source visible lors de l&rsquo;affichage de la page.<br \/>\nUn exemple classique : le fichier JS est charg\u00e9 (et ex\u00e9cut\u00e9) avant les fichiers jQuery. C&rsquo;est un probl\u00e8me si ce fichier est d\u00e9pendant de jQuery.<br \/>\nOn force alors le chargement de jQuery avec :<br \/>\n JHtml::_(&lsquo;jquery.framework&rsquo;);<br \/>\nQui charge tous les fichiers jQuery n\u00e9cessaires. On aura donc :<br \/>\n defined(&lsquo;_JEXEC&rsquo;) or die;<br \/>\nJHtml::_(&lsquo;jquery.framework&rsquo;);<br \/>\nJHtml::_(&lsquo;stylesheet&rsquo;, &lsquo;mes_styles\/macss1.css&rsquo;, false, true);<br \/>\nJHtml::_(&lsquo;script&rsquo;, &lsquo;mes_styles\/monjs1.js&rsquo;, false, true);<br \/>\nL&rsquo;objectif de cet article est de montrer que l&rsquo;on peut rajouter des fichiers JS et CSS facilement et en \u00e9vitant au maximum les probl\u00e8mes de conflits, de fichiers mal plac\u00e9s, et ceux li\u00e9s aux mises \u00e0 jour de Joomla, des templates et des extensions.<br \/>\nJ&rsquo;aborderai dans un autre article les cas sp\u00e9cifiques des templates \u00ab\u00a0framework\u00e9s\u00a0\u00bb comme ceux de Warp-Yootheme, Gantry-RocketTheme, Helix-Joomshaper ou PurityIII-Joomlart.<br \/>\nEnjoy !<\/p>\n","protected":false},"excerpt":{"rendered":"<p>How do you comfort a JavaScript bug ? You console it. Comment r\u00e9conforter un bug JavaScript ? On le console.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"inline_featured_image":false,"footnotes":""},"categories":[13],"tags":[],"class_list":["post-456","post","type-post","status-publish","format-standard","hentry","category-archives"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.5 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Joomla et l\u2019inclusion de JavaScript - Ao\u00fbt 2015 | Cinnk<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Joomla et l\u2019inclusion de JavaScript - Ao\u00fbt 2015 | Cinnk\" \/>\n<meta property=\"og:description\" content=\"How do you comfort a JavaScript bug ? You console it. Comment r\u00e9conforter un bug JavaScript ? On le console.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/\" \/>\n<meta property=\"og:site_name\" content=\"Cinnk\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/Cinnk.formation\" \/>\n<meta property=\"article:published_time\" content=\"2020-10-07T14:49:45+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/cinnk.com\/wp-content\/uploads\/2024\/10\/Logo-font.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"500\" \/>\n\t<meta property=\"og:image:height\" content=\"500\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Cinnk\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@CinnkCom\" \/>\n<meta name=\"twitter:site\" content=\"@CinnkCom\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Cinnk\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/\"},\"author\":{\"name\":\"Cinnk\",\"@id\":\"https:\/\/cinnk.com\/fr\/#\/schema\/person\/eacaed860bb77e88b654cab0718cdc3d\"},\"headline\":\"Joomla et l\u2019inclusion de JavaScript &#8211; Ao\u00fbt 2015\",\"datePublished\":\"2020-10-07T14:49:45+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/\"},\"wordCount\":1508,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/cinnk.com\/fr\/#organization\"},\"articleSection\":[\"Archives\"],\"inLanguage\":\"fr-FR\"},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/\",\"url\":\"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/\",\"name\":\"Joomla et l\u2019inclusion de JavaScript - Ao\u00fbt 2015 | Cinnk\",\"isPartOf\":{\"@id\":\"https:\/\/cinnk.com\/fr\/#website\"},\"datePublished\":\"2020-10-07T14:49:45+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Accueil\",\"item\":\"https:\/\/cinnk.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Joomla et l\u2019inclusion de JavaScript &#8211; Ao\u00fbt 2015\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/cinnk.com\/fr\/#website\",\"url\":\"https:\/\/cinnk.com\/fr\/\",\"name\":\"Cinnk\",\"description\":\"\",\"publisher\":{\"@id\":\"https:\/\/cinnk.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/cinnk.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/cinnk.com\/fr\/#organization\",\"name\":\"Cinnk\",\"url\":\"https:\/\/cinnk.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/cinnk.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/cinnk.com\/wp-content\/uploads\/2023\/10\/logo-svg-orange_new.svg\",\"contentUrl\":\"https:\/\/cinnk.com\/wp-content\/uploads\/2023\/10\/logo-svg-orange_new.svg\",\"width\":125,\"height\":32,\"caption\":\"Cinnk\"},\"image\":{\"@id\":\"https:\/\/cinnk.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/Cinnk.formation\",\"https:\/\/x.com\/CinnkCom\",\"https:\/\/www.instagram.com\/cinnk\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/cinnk.com\/fr\/#\/schema\/person\/eacaed860bb77e88b654cab0718cdc3d\",\"name\":\"Cinnk\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/cinnk.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/2110805a2e278c633c677ec50fd5a9944d8f66b4fac05f86ebb21a2f87be8e0b?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/2110805a2e278c633c677ec50fd5a9944d8f66b4fac05f86ebb21a2f87be8e0b?s=96&d=mm&r=g\",\"caption\":\"Cinnk\"},\"sameAs\":[\"https:\/\/cinnk.com\"],\"url\":\"https:\/\/cinnk.com\/fr\/author\/cinnkdev\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Joomla et l\u2019inclusion de JavaScript - Ao\u00fbt 2015 | Cinnk","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/","og_locale":"fr_FR","og_type":"article","og_title":"Joomla et l\u2019inclusion de JavaScript - Ao\u00fbt 2015 | Cinnk","og_description":"How do you comfort a JavaScript bug ? You console it. Comment r\u00e9conforter un bug JavaScript ? On le console.","og_url":"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/","og_site_name":"Cinnk","article_publisher":"https:\/\/www.facebook.com\/Cinnk.formation","article_published_time":"2020-10-07T14:49:45+00:00","og_image":[{"width":500,"height":500,"url":"https:\/\/cinnk.com\/wp-content\/uploads\/2024\/10\/Logo-font.jpg","type":"image\/jpeg"}],"author":"Cinnk","twitter_card":"summary_large_image","twitter_creator":"@CinnkCom","twitter_site":"@CinnkCom","twitter_misc":{"\u00c9crit par":"Cinnk","Dur\u00e9e de lecture estim\u00e9e":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/#article","isPartOf":{"@id":"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/"},"author":{"name":"Cinnk","@id":"https:\/\/cinnk.com\/fr\/#\/schema\/person\/eacaed860bb77e88b654cab0718cdc3d"},"headline":"Joomla et l\u2019inclusion de JavaScript &#8211; Ao\u00fbt 2015","datePublished":"2020-10-07T14:49:45+00:00","mainEntityOfPage":{"@id":"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/"},"wordCount":1508,"commentCount":0,"publisher":{"@id":"https:\/\/cinnk.com\/fr\/#organization"},"articleSection":["Archives"],"inLanguage":"fr-FR"},{"@type":"WebPage","@id":"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/","url":"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/","name":"Joomla et l\u2019inclusion de JavaScript - Ao\u00fbt 2015 | Cinnk","isPartOf":{"@id":"https:\/\/cinnk.com\/fr\/#website"},"datePublished":"2020-10-07T14:49:45+00:00","breadcrumb":{"@id":"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/cinnk.com\/fr\/joomla-et-l-inclusion-de-javascript-aout-2015\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Accueil","item":"https:\/\/cinnk.com\/fr\/"},{"@type":"ListItem","position":2,"name":"Joomla et l\u2019inclusion de JavaScript &#8211; Ao\u00fbt 2015"}]},{"@type":"WebSite","@id":"https:\/\/cinnk.com\/fr\/#website","url":"https:\/\/cinnk.com\/fr\/","name":"Cinnk","description":"","publisher":{"@id":"https:\/\/cinnk.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/cinnk.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/cinnk.com\/fr\/#organization","name":"Cinnk","url":"https:\/\/cinnk.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/cinnk.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/cinnk.com\/wp-content\/uploads\/2023\/10\/logo-svg-orange_new.svg","contentUrl":"https:\/\/cinnk.com\/wp-content\/uploads\/2023\/10\/logo-svg-orange_new.svg","width":125,"height":32,"caption":"Cinnk"},"image":{"@id":"https:\/\/cinnk.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/Cinnk.formation","https:\/\/x.com\/CinnkCom","https:\/\/www.instagram.com\/cinnk"]},{"@type":"Person","@id":"https:\/\/cinnk.com\/fr\/#\/schema\/person\/eacaed860bb77e88b654cab0718cdc3d","name":"Cinnk","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/cinnk.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/2110805a2e278c633c677ec50fd5a9944d8f66b4fac05f86ebb21a2f87be8e0b?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/2110805a2e278c633c677ec50fd5a9944d8f66b4fac05f86ebb21a2f87be8e0b?s=96&d=mm&r=g","caption":"Cinnk"},"sameAs":["https:\/\/cinnk.com"],"url":"https:\/\/cinnk.com\/fr\/author\/cinnkdev\/"}]}},"_links":{"self":[{"href":"https:\/\/cinnk.com\/fr\/wp-json\/wp\/v2\/posts\/456","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/cinnk.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/cinnk.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/cinnk.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/cinnk.com\/fr\/wp-json\/wp\/v2\/comments?post=456"}],"version-history":[{"count":0,"href":"https:\/\/cinnk.com\/fr\/wp-json\/wp\/v2\/posts\/456\/revisions"}],"wp:attachment":[{"href":"https:\/\/cinnk.com\/fr\/wp-json\/wp\/v2\/media?parent=456"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/cinnk.com\/fr\/wp-json\/wp\/v2\/categories?post=456"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/cinnk.com\/fr\/wp-json\/wp\/v2\/tags?post=456"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}