<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lorangerart</id>
	<title>Joomla! Documentation - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://docs.sandbox.joomla.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Lorangerart"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Lorangerart"/>
	<updated>2026-07-09T14:19:44Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Using_the_JToolbar_class_in_the_frontend&amp;diff=997402</id>
		<title>J3.x:Using the JToolbar class in the frontend</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Using_the_JToolbar_class_in_the_frontend&amp;diff=997402"/>
		<updated>2022-12-21T12:54:57Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Missing &amp;quot;;&amp;quot; in code.&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{RightTOC}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
In the Joomla Administrator panel a toolbar system is provided to present common action items to the user, such as deleting records, publishing items, etc. This toolbar can also be used in the Frontend, for presenting lists to the user, but some code will need to be manually brought into the Frontend context that is not automatically provided there.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
There are several advantages to doing this:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
* Much of the code for creating and rendering the toolbar will still be provided by the Joomla framework, reducing the amount of code you have to write.&lt;br /&gt;
* From a UI coding and theming perspective, code rendered by the Joomla framework is guaranteed to be compatible and theme-capable.&lt;br /&gt;
* From a user perspective, you are providing a consistent experience that they recognise and can utilise immediately.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== How are Toolbars Rendered in the Backend? ==&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
Two classes are used primarily to render a toolbar into the UI:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;[https://github.com/joomla/joomla-cms/blob/staging/libraries/src/Toolbar/Toolbar.php Joomla\CMS\Toolbar\Toolbar]&amp;lt;/syntaxhighlight&amp;gt;, which configures and renders the toolbar&lt;br /&gt;
* &amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;[https://github.com/joomla/joomla-cms/blob/staging/libraries/src/Toolbar/ToolbarHelper.php Joomla\CMS\Toolbar\ToolbarHelper]&amp;lt;/syntaxhighlight&amp;gt;, which greatly simplifies the configuration of a Toolbar object, and will be the entity you generally interact with when creating toolbars.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
In the Backend layout, there is a module called &#039;&#039;mod_toolbar&#039;&#039;, and an associated page location called &#039;&#039;toolbar&#039;&#039; into which a page&#039;s toolbar module is rendered:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;$toolbar = JToolbar::getInstance(&#039;toolbar&#039;)-&amp;gt;render(&#039;toolbar&#039;);&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== What Work is Needed in the Frontend to Support Toolbars? ==&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
In the Frontend we &#039;&#039;&#039;don&#039;t have&#039;&#039;&#039;:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
* A module that renders the toolbar&lt;br /&gt;
* A module position &amp;quot;toolbar&amp;quot; in the template&lt;br /&gt;
* Styling for the Toolbar and its components&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
In order to use a Toolbar object in the Frontend, we will need to replicate these pieces of functionality, mostly by stealing them wholesale from the Backend!&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Step 1: Defining a Toolbar in Your View ===&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
In your view file, use the &#039;&#039;ToolbarHelper&#039;&#039; class to create a function that generates and renders your toolbar. You&#039;ll call this method from the view to put your toolbar in place.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Language\Text;&lt;br /&gt;
use Joomla\CMS\MVC\View\HtmlView;&lt;br /&gt;
use Joomla\CMS\Toolbar\ToolbarHelper;&lt;br /&gt;
use Joomla\CMS\Toolbar\Toolbar;&lt;br /&gt;
&lt;br /&gt;
class MyExtensionViewMyView extends HtmlView {&lt;br /&gt;
    // ...&lt;br /&gt;
    protected function renderToolbar(): string {&lt;br /&gt;
        $title = Text::_(&#039;COM_MYEXTENSION_SOME_TITLE&#039;);&lt;br /&gt;
&lt;br /&gt;
        ToolbarHelper::title($title);&lt;br /&gt;
        ToolbarHelper::addNew(&#039;youritem.add&#039;, &#039;COM_MYEXTENSION_BUTTON_CODE_NEW&#039;);&lt;br /&gt;
        ToolbarHelper::back();&lt;br /&gt;
&lt;br /&gt;
        return Toolbar::getInstance()-&amp;gt;render();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
As you can see, we are using the &#039;&#039;ToolbarHelper&#039;&#039; class to add a title to the bar, a &amp;quot;new item&amp;quot; button that will call the &#039;&#039;youritem.add&#039;&#039; action when clicked, and a back button. The &#039;&#039;ToolbarHelper&#039;&#039; has many assistance methods for different actions, such as handling list items, rendering a preferences link, and so on. To see the full list of available methods, see [https://github.com/joomla/joomla-cms/blob/staging/libraries/src/Toolbar/ToolbarHelper.php ToolbarHelper&#039;s source code].&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
Then, at the location in your view template that you wish the toolbar to appear:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?= $this-&amp;gt;renderToolbar(); ?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
This will render your toolbar out to the page. However, it will look pretty awful, because we have not yet brought in the necessary CSS to style it.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Step 2: Including Styling for the Toolbar ===&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
The styles required for the toolbar are part of the standard Isis control panel theme, and can be generated easily via Less. Below is an extract of that CSS code, corrected for use in the Frontend. Create a file called &#039;&#039;toolbar.css&#039;&#039; in an appropriate place within your extension and add this code into it.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-highlight mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;div style=&amp;quot;font-weight:bold;padding:1rem;&amp;quot;&amp;gt;Styling code for the Toolbar, taken from the Isis template. Click to expand.&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;css&amp;quot;&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 * Generated by LESS from the standard Isis administrator theme&lt;br /&gt;
 * Some styles related to colour have been removed, to prevent&lt;br /&gt;
 * issues with the user&#039;s Frontend theme&lt;br /&gt;
 */&lt;br /&gt;
&lt;br /&gt;
/* Subhead */&lt;br /&gt;
.subhead {&lt;br /&gt;
  color: #0C192E;&lt;br /&gt;
  text-shadow: 0 1px 0 #FFF;&lt;br /&gt;
  margin-bottom: 10px;&lt;br /&gt;
  min-height: 51px;&lt;br /&gt;
}&lt;br /&gt;
.subhead-collapse {&lt;br /&gt;
  margin-bottom: 19px;&lt;br /&gt;
}&lt;br /&gt;
.subhead-collapse.collapse {&lt;br /&gt;
  height: auto;&lt;br /&gt;
  overflow: visible;&lt;br /&gt;
}&lt;br /&gt;
.btn-toolbar {&lt;br /&gt;
  margin-bottom: 5px;&lt;br /&gt;
}&lt;br /&gt;
.btn-toolbar .btn-wrapper {&lt;br /&gt;
  display: inline-block;&lt;br /&gt;
  margin: 0 0 8px 5px;&lt;br /&gt;
}&lt;br /&gt;
.subhead-fixed {&lt;br /&gt;
  position: fixed;&lt;br /&gt;
  width: 100%;&lt;br /&gt;
  top: 30px;&lt;br /&gt;
  z-index: 100;&lt;br /&gt;
}&lt;br /&gt;
@media (max-width: 767px) {&lt;br /&gt;
  /* Fix ios scrolling inside bootstrap modals */&lt;br /&gt;
  body {&lt;br /&gt;
    -webkit-overflow-scrolling: touch;&lt;br /&gt;
  }&lt;br /&gt;
  .subhead {&lt;br /&gt;
    margin-left: -20px;&lt;br /&gt;
    margin-right: -20px;&lt;br /&gt;
    padding-left: 10px;&lt;br /&gt;
    padding-right: 10px;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
.subhead h1 {&lt;br /&gt;
  font-size: 17px;&lt;br /&gt;
  font-weight: normal;&lt;br /&gt;
  margin-left: 10px;&lt;br /&gt;
  margin-top: 6px;&lt;br /&gt;
}&lt;br /&gt;
/* Toolbar */&lt;br /&gt;
#toolbar {&lt;br /&gt;
  margin-bottom: 2px;&lt;br /&gt;
  margin-top: 12px;&lt;br /&gt;
}&lt;br /&gt;
#toolbar .btn {&lt;br /&gt;
  line-height: 24px;&lt;br /&gt;
  margin-right: 4px;&lt;br /&gt;
  padding: 0 10px;&lt;br /&gt;
}&lt;br /&gt;
#toolbar .btn-success {&lt;br /&gt;
  min-width: 148px;&lt;br /&gt;
}&lt;br /&gt;
#toolbar .btn-primary [class^=&amp;quot;icon-&amp;quot;],&lt;br /&gt;
#toolbar .btn-warning [class^=&amp;quot;icon-&amp;quot;],&lt;br /&gt;
#toolbar .btn-danger [class^=&amp;quot;icon-&amp;quot;],&lt;br /&gt;
#toolbar .btn-success [class^=&amp;quot;icon-&amp;quot;],&lt;br /&gt;
#toolbar .btn-info [class^=&amp;quot;icon-&amp;quot;],&lt;br /&gt;
#toolbar .btn-inverse [class^=&amp;quot;icon-&amp;quot;],&lt;br /&gt;
#toolbar .btn-primary [class*=&amp;quot; icon-&amp;quot;],&lt;br /&gt;
#toolbar .btn-warning [class*=&amp;quot; icon-&amp;quot;],&lt;br /&gt;
#toolbar .btn-danger [class*=&amp;quot; icon-&amp;quot;],&lt;br /&gt;
#toolbar .btn-success [class*=&amp;quot; icon-&amp;quot;],&lt;br /&gt;
#toolbar .btn-info [class*=&amp;quot; icon-&amp;quot;],&lt;br /&gt;
#toolbar .btn-inverse [class*=&amp;quot; icon-&amp;quot;] {&lt;br /&gt;
  background-color: transparent;&lt;br /&gt;
  border-right: 0;&lt;br /&gt;
  border-left: 0;&lt;br /&gt;
  width: 16px;&lt;br /&gt;
  margin-left: 0;&lt;br /&gt;
  margin-right: 0;&lt;br /&gt;
}&lt;br /&gt;
#toolbar #toolbar-options,&lt;br /&gt;
#toolbar #toolbar-help {&lt;br /&gt;
  float: right;&lt;br /&gt;
}&lt;br /&gt;
#toolbar [class^=&amp;quot;icon-&amp;quot;],&lt;br /&gt;
#toolbar [class*=&amp;quot; icon-&amp;quot;] {&lt;br /&gt;
  background-color: #e6e6e6;&lt;br /&gt;
  border-radius: 3px 0 0 3px;&lt;br /&gt;
  border-right: 1px solid #b3b3b3;&lt;br /&gt;
  height: auto;&lt;br /&gt;
  line-height: inherit;&lt;br /&gt;
  margin: 0 6px 0 -10px;&lt;br /&gt;
  opacity: 1;&lt;br /&gt;
  text-shadow: none;&lt;br /&gt;
  width: 28px;&lt;br /&gt;
  z-index: -1;&lt;br /&gt;
}&lt;br /&gt;
#toolbar iframe .btn-group .btn {&lt;br /&gt;
  margin-left: -1px !important;&lt;br /&gt;
}&lt;br /&gt;
html[dir=rtl] #toolbar #toolbar-options,&lt;br /&gt;
html[dir=rtl] #toolbar #toolbar-help {&lt;br /&gt;
  float: left;&lt;br /&gt;
}&lt;br /&gt;
@media (max-width: 767px) {&lt;br /&gt;
  .subhead-fixed {&lt;br /&gt;
    position: static;&lt;br /&gt;
    width: auto;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
/* Subhead (toolbar) Collapse Button */&lt;br /&gt;
.btn-subhead {&lt;br /&gt;
  display: none;&lt;br /&gt;
}&lt;br /&gt;
@media (min-width: 480px) {&lt;br /&gt;
  #filter-bar {&lt;br /&gt;
    height: 29px;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
@media (max-width: 479px) {&lt;br /&gt;
  .navbar .btn {&lt;br /&gt;
    margin: 0;&lt;br /&gt;
  }&lt;br /&gt;
  .btn-subhead {&lt;br /&gt;
    display: block;&lt;br /&gt;
    margin: 10px 0;&lt;br /&gt;
  }&lt;br /&gt;
  .subhead-collapse.collapse {&lt;br /&gt;
    height: 0;&lt;br /&gt;
    overflow: hidden;&lt;br /&gt;
  }&lt;br /&gt;
  .btn-toolbar .btn-wrapper {&lt;br /&gt;
    display: block;&lt;br /&gt;
    margin: 0px 10px 5px 10px;&lt;br /&gt;
  }&lt;br /&gt;
  .btn-toolbar .btn-wrapper .btn {&lt;br /&gt;
    width: 100% !important;&lt;br /&gt;
  }&lt;br /&gt;
  .subhead {&lt;br /&gt;
    background: none repeat scroll 0 0 transparent;&lt;br /&gt;
    border-bottom: 0 solid #dedede;&lt;br /&gt;
  }&lt;br /&gt;
  #toolbar [class^=&amp;quot;icon-&amp;quot;],&lt;br /&gt;
  #toolbar [class*=&amp;quot; icon-&amp;quot;] {&lt;br /&gt;
    background-color: transparent;&lt;br /&gt;
    border-right: medium none;&lt;br /&gt;
    width: 10px;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
@media (max-width: 319px) {&lt;br /&gt;
  .view-login .navbar-fixed-bottom {&lt;br /&gt;
    display: none;&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
With this code saved in the file, register the style sheet inside your view file&#039;s &#039;&#039;display()&#039;&#039; method, during document setup:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
use Joomla\CMS\Uri\Uri;&lt;br /&gt;
&lt;br /&gt;
class MyExtensionViewMyView extends HtmlView {&lt;br /&gt;
    // ...&lt;br /&gt;
    function display($tpl = null) {&lt;br /&gt;
        // ...&lt;br /&gt;
        $document = Factory::getDocument();&lt;br /&gt;
        $document-&amp;gt;addStyleSheet(Uri::root() . &#039;/components/com_myextension/path/to/your/toolbar.css&#039;);&lt;br /&gt;
&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
Your toolbar should now be styled appropriately.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Restricting Actions by Permission ==&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
It&#039;s usually a good idea to have your toolbar buttons restricted according to the active user&#039;s permissions. This can be easily done using the &#039;&#039;ContentHelper&#039;&#039; class:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Helper\ContentHelper;&lt;br /&gt;
use Joomla\CMS\Language\Text;&lt;br /&gt;
use Joomla\CMS\MVC\View\HtmlView;&lt;br /&gt;
use Joomla\CMS\Toolbar\ToolbarHelper;&lt;br /&gt;
use Joomla\CMS\Toolbar\Toolbar;&lt;br /&gt;
&lt;br /&gt;
class MyExtensionViewMyView extends HtmlView {&lt;br /&gt;
    // ...&lt;br /&gt;
    protected function renderToolbar(): string {&lt;br /&gt;
        $this-&amp;gt;canDo = ContentHelper::getActions(&#039;com_myextension&#039;);&lt;br /&gt;
        $title = Text::_(&#039;COM_MYEXTENSION_SOME_TITLE&#039;);&lt;br /&gt;
        ToolbarHelper::title($title);&lt;br /&gt;
        if ($this-&amp;gt;canDo-&amp;gt;get(&#039;core.create&#039;)) {&lt;br /&gt;
            ToolbarHelper::addNew(&#039;youritem.add&#039;, &#039;COM_MYEXTENSION_BUTTON_CODE_NEW&#039;);&lt;br /&gt;
        }&lt;br /&gt;
        ToolbarHelper::back();&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Handling List Actions ==&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
Depending on the methods and actions you enable in your Toolbar, you may need to emulate a few other elements of the Backend form handling code. As list-handling is such a common use case, this section will show how to integrate those tasks into your Frontend view.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
This section will not describe general list handling - using the &#039;&#039;ListModel&#039;&#039; class, generating a list query, pagination, etc - as those are documented elsewhere.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Step 1: Enabling the List Functionality ===&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
In the &#039;&#039;display()&#039;&#039; method of your view file, use Joomla&#039;s &#039;&#039;HtmlHelper&#039;&#039; class to load the appropriate JavaScript to handle lists.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\HTML\HTMLHelper;&lt;br /&gt;
&lt;br /&gt;
class MyExtensionViewMyView extends HtmlView {&lt;br /&gt;
    // ...&lt;br /&gt;
    function display($tpl = null) {&lt;br /&gt;
        // ...&lt;br /&gt;
        HTMLHelper::_(&#039;formbehavior.chosen&#039;, &#039;select&#039;);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
This will enable the JavaScript and other Frontend assets that are needed for list functionality in the toolbar.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Step 2: Defining the Toolbar ===&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
You&#039;ll need to define the buttons that you wish to appear, and the actions they trigger. The most common options to use with a list are obviously &#039;&#039;add&#039;&#039;, &#039;&#039;edit&#039;&#039; and &#039;&#039;delete&#039;&#039;:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Helper\ContentHelper;&lt;br /&gt;
use Joomla\CMS\Language\Text;&lt;br /&gt;
use Joomla\CMS\MVC\View\HtmlView;&lt;br /&gt;
use Joomla\CMS\Toolbar\ToolbarHelper;&lt;br /&gt;
use Joomla\CMS\Toolbar\Toolbar;&lt;br /&gt;
&lt;br /&gt;
class MyExtensionViewMyView extends HtmlView {&lt;br /&gt;
    // ...&lt;br /&gt;
    protected function renderToolbar(): string {&lt;br /&gt;
        $this-&amp;gt;canDo = ContentHelper::getActions(&#039;com_myextension&#039;);&lt;br /&gt;
        $title = Text::_(&#039;COM_MYEXTENSION_SOME_TITLE&#039;);&lt;br /&gt;
        ToolbarHelper::title($title);&lt;br /&gt;
        if ($this-&amp;gt;canDo-&amp;gt;get(&#039;core.create&#039;)) {&lt;br /&gt;
            ToolbarHelper::addNew(&#039;youritem.add&#039;, &#039;COM_MYEXTENSION_BUTTON_CODE_NEW&#039;);&lt;br /&gt;
        }&lt;br /&gt;
        if ($this-&amp;gt;canDo-&amp;gt;get(&#039;core.edit&#039;) || $this-&amp;gt;canDo-&amp;gt;get(&#039;core.edit.own&#039;)) {&lt;br /&gt;
            ToolbarHelper::editList(&#039;youritem.edit&#039;, &#039;COM_MYEXTENSION_BUTTON_CODE_EDIT&#039;);&lt;br /&gt;
        }&lt;br /&gt;
        if ($this-&amp;gt;canDo-&amp;gt;get(&#039;core.delete&#039;)) {&lt;br /&gt;
            ToolbarHelper::deleteList(&#039;COM_MYEXTENSION_DELETE_CONFIRM&#039;, &#039;youritem.delete&#039;, &#039;COM_MYEXTENSION_BUTTON_CODE_DELETE&#039;);&lt;br /&gt;
        }&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
The implementation of these actions - &#039;&#039;youritem.edit&#039;&#039; and so on - is left as an exercise for the reader, as the code for those is dependent on your extension&#039;s implementation and not really relevant to the toolbar. However, if you&#039;re unsure how to proceed, here are a few tips:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
* To check for an item being edited and retrieve it on your create/edit page, use &#039;&#039;$this-&amp;gt;get(&#039;Item&#039;);&#039;&#039; in your view&#039;s &#039;&#039;display()&#039;&#039; method&lt;br /&gt;
* To retrieve the list of items being selected when processing an action such as &amp;quot;delete&amp;quot;, use &#039;&#039;$this-&amp;gt;input-&amp;gt;get(&#039;cid&#039;, array(), &#039;array&#039;);&#039;&#039; in your controller&lt;br /&gt;
* For working examples of how to handle group deletes, see the control panel&#039;s [https://github.com/joomla/joomla-cms/blob/staging/libraries/src/MVC/Controller/AdminController.php AdminController] and [https://github.com/joomla/joomla-cms/blob/staging/libraries/src/MVC/Model/AdminModel.php AdminModel] classes&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Step 3: Rendering the List ===&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
At the top of your list in your view template, you will need to wrap the list in a form, and add a few hidden fields as shown below. These hidden fields will be set by the Toolbar&#039;s JavaScript as actions and items are selected.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;form action=&amp;quot;&amp;lt;?= Route::_(&#039;index.php?option=com_myextension&amp;amp;view=thisview&#039;) ?&amp;gt;&amp;quot; method=&amp;quot;post&amp;quot; id=&amp;quot;adminForm&amp;quot; name=&amp;quot;adminForm&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;?= HTMLHelper::_(&#039;form.token&#039;); ?&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;option&amp;quot; value=&amp;quot;com_myextension&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;task&amp;quot; value=&amp;quot;&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;input type=&amp;quot;hidden&amp;quot; name=&amp;quot;boxchecked&amp;quot; value=&amp;quot;0&amp;quot; /&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Rest of list --&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
Naturally, you will want to add a checkbox to each row of your item list, so that they can be selected and acted on by the toolbar. This checkbox can be easily rendered using the &#039;&#039;HtmlHelper&#039;&#039; class:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;?php foreach ($this-&amp;gt;items as $i =&amp;gt; $row) : ?&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;td&amp;gt;&lt;br /&gt;
                &amp;lt;?= HTMLHelper::_(&#039;grid.id&#039;, $i, $row-&amp;gt;id); ?&amp;gt;&lt;br /&gt;
            &amp;lt;/td&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Other columns in the list --&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;?php endforeach; ?&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
If you wish to add a &amp;quot;check all&amp;quot; checkbox to the column header, this can also be provided by &#039;&#039;HtmlHelper&#039;&#039;:&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;html&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;thead&amp;gt;&lt;br /&gt;
        &amp;lt;tr&amp;gt;&lt;br /&gt;
            &amp;lt;th width=&amp;quot;2%&amp;quot;&amp;gt;&lt;br /&gt;
                &amp;lt;?= HTMLHelper::_(&#039;grid.checkall&#039;); ?&amp;gt;&lt;br /&gt;
            &amp;lt;/th&amp;gt;&lt;br /&gt;
            &amp;lt;!-- Other columns in the list --&amp;gt;&lt;br /&gt;
        &amp;lt;/tr&amp;gt;&lt;br /&gt;
    &amp;lt;/thead&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Routing and SEF URLs ==&lt;br /&gt;
{{underconstruction}}&lt;br /&gt;
== Custom Frontend Buttons ==&lt;br /&gt;
{{underconstruction}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
[[Category:Joomla!_3.x]]&lt;br /&gt;
[[Category:Component_Development]]&lt;br /&gt;
[[Category:Extension_development]]&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Adding_changelog_to_your_manifest_file/fr&amp;diff=996154</id>
		<title>Adding changelog to your manifest file/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Adding_changelog_to_your_manifest_file/fr&amp;diff=996154"/>
		<updated>2022-12-02T16:01:41Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x|comment=&amp;gt;Didacticiel}}&lt;br /&gt;
&lt;br /&gt;
Depuis Joomla 4.0, les développeurs d’extensions peuvent exploiter la capacité de Joomla à lire un fichier de journal des modifications et à donner une représentation visuelle de celui-ci. Si une version donnée n&#039;est pas trouvée dans le journal des modifications, le bouton du journal des modifications ne sera pas affiché.&lt;br /&gt;
&lt;br /&gt;
Les modifications dans une version seront présentées de cette manière&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
[[File:Changelog modal-fr.png|700px|Changelog modal]]&lt;br /&gt;
&lt;br /&gt;
Le journal des modifications est utilisé à deux endroits différents.&lt;br /&gt;
&lt;br /&gt;
=== Vue de Mise à jour ===&lt;br /&gt;
Le programme d&#039;installation affichera le journal des modifications de la version pouvant être installée, le cas échéant.&lt;br /&gt;
&lt;br /&gt;
[[File:Update view changelog button-fr.png|700px|Changelog button on the Update View]]&lt;br /&gt;
&lt;br /&gt;
Cliquez sur le bouton &#039;&#039;&#039;Changelog&#039;&#039;&#039; pour afficher le changelog de la nouvelle version disponible.&lt;br /&gt;
&lt;br /&gt;
=== Gérer la Vue ===&lt;br /&gt;
Le gestionnaire d&#039;extensions affiche le journal des modifications de l&#039;extension actuellement installée, s&#039;il est disponible.&lt;br /&gt;
&lt;br /&gt;
[[File:Manage view changelog link-fr.png|700px|Version number is a link to the changelog modal]]&lt;br /&gt;
&lt;br /&gt;
Cliquez sur le numéro de version ici affichera le journal des modifications de la version actuellement installée.&lt;br /&gt;
&lt;br /&gt;
== Ajouter la balise changelogurl aux fichiers manifest ==&lt;br /&gt;
La première étape consiste à mettre à jour vos fichiers manifest indiquant à Joomla où trouver les détails du journal des modifications. Ajoutez le noeud suivant à vos fichiers manifest XML:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;changelogurl&amp;gt;https://example.com/updates/changelog.xml&amp;lt;/changelogurl&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
A noter ː L&#039;URL dans le tag &amp;lt;code&amp;gt;changelogurl&amp;lt;/code&amp;gt; ne doit contenir aucun espace ou passage à la ligne avant ou après. Voir les exemples de code.&lt;br /&gt;
=== Mettre à jour du manifest du serveur === &lt;br /&gt;
Voir cet exemple pour un fichier manifeste de serveur de mise à jour informant Joomla de la mise à jour d&#039;un composant nommé &amp;quot;com_lists&amp;quot;. Ainsi, vous verrez le bouton Changelog dans la vue de la mise à jour.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;updates&amp;gt;&lt;br /&gt;
 &amp;lt;update&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;Student List&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;List of students&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
  &amp;lt;version&amp;gt;4.0.0&amp;lt;/version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;changelogurl&amp;gt;https://example.com/updates/changelog.xml&amp;lt;/changelogurl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tags&amp;gt;&lt;br /&gt;
   &amp;lt;tag&amp;gt;stable&amp;lt;/tag&amp;gt;&lt;br /&gt;
  &amp;lt;/tags&amp;gt;&lt;br /&gt;
  &amp;lt;maintainer&amp;gt;Example Miller&amp;lt;/maintainer&amp;gt;&lt;br /&gt;
  &amp;lt;maintainerurl&amp;gt;https://example.com/&amp;lt;/maintainerurl&amp;gt;&lt;br /&gt;
  &amp;lt;section&amp;gt;Updates&amp;lt;/section&amp;gt;&lt;br /&gt;
  &amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;4.?&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;client&amp;gt;1&amp;lt;/client&amp;gt;&lt;br /&gt;
  &amp;lt;folder&amp;gt;&amp;lt;/folder&amp;gt;&lt;br /&gt;
 &amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/updates&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Extension manifest === &lt;br /&gt;
Ajoutez également la balise changelogurl au fichier manifest XML d’extension. Ainsi, la version de l&#039;extension sera liée aux journaux des modifications dans la vue de gestion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;component&amp;quot; method=&amp;quot;upgrade&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;COM_LISTS&amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... Other stuff ...&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;changelogurl&amp;gt;https://example.com/updates/changelog.xml&amp;lt;/changelogurl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; name=&amp;quot;My Extension&#039;s Updates&amp;quot;&amp;gt;https://example.com/lists-updates.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
	&amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Créer un fichier changelog ==&lt;br /&gt;
Le fichier changelog doit comporter les 3 nœuds suivants:&lt;br /&gt;
* element&lt;br /&gt;
* type&lt;br /&gt;
* version&lt;br /&gt;
&lt;br /&gt;
Ces informations sont utilisées pour correctement identifier le journal des modifications pour une extension donnée.&lt;br /&gt;
&lt;br /&gt;
Un noeud &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; est obligatoire à l&#039;intérieur de tout noeud &amp;lt;code&amp;gt;changelog &amp;lt;/code&amp;gt;. Sinon, vous verrez un message d&#039;erreur du type &amp;quot;SyntaxError: JSON.parse: caractère inattendu à la ligne 1, colonne 1 des données JSON&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
&amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;4.0.0&amp;lt;/version&amp;gt;   &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De plus, le journal des modifications est rempli avec un ou plusieurs types de modifications. Les types de modification suivants sont pris en charge:&lt;br /&gt;
* &#039;&#039;&#039;security&#039;&#039;&#039;: Tous les problèmes de sécurité qui ont été résolus&lt;br /&gt;
* &#039;&#039;&#039;fix&#039;&#039;&#039;: Tous les bugs corrigés&lt;br /&gt;
* &#039;&#039;&#039;language&#039;&#039;&#039;: Ceci est pour les changements de langage&lt;br /&gt;
* &#039;&#039;&#039;addition&#039;&#039;&#039;: Toutes les nouvelles fonctionnalités ajoutées&lt;br /&gt;
* &#039;&#039;&#039;change&#039;&#039;&#039;: Tout changement&lt;br /&gt;
* &#039;&#039;&#039;remove&#039;&#039;&#039;: Toutes les fonctionnalités supprimées&lt;br /&gt;
* &#039;&#039;&#039;note&#039;&#039;&#039;: Toute information supplémentaire pour informer l&#039;utilisateur&lt;br /&gt;
&lt;br /&gt;
Chaque nœud peut être répété autant de fois que nécessaire.&lt;br /&gt;
&lt;br /&gt;
Le format du texte peut être du texte brut ou HTML, mais dans le cas du HTML, il doit être placé entre balises CDATA, comme indiqué dans l&#039;exemple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;changelogs&amp;gt;&lt;br /&gt;
    &amp;lt;changelog&amp;gt;&lt;br /&gt;
        &amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;version&amp;gt;4.0.0&amp;lt;/version&amp;gt;&lt;br /&gt;
        &amp;lt;security&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;&amp;lt;![CDATA[&amp;lt;h2&amp;gt;You MUST replace this file&amp;lt;/h2&amp;gt;]]&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/security&amp;gt;&lt;br /&gt;
        &amp;lt;fix&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/fix&amp;gt;&lt;br /&gt;
        &amp;lt;language&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/language&amp;gt;&lt;br /&gt;
        &amp;lt;addition&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/addition&amp;gt;&lt;br /&gt;
        &amp;lt;change&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/change&amp;gt;&lt;br /&gt;
        &amp;lt;remove&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/remove&amp;gt;&lt;br /&gt;
        &amp;lt;note&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/note&amp;gt;&lt;br /&gt;
&amp;lt;/changelog&amp;gt;&lt;br /&gt;
&amp;lt;changelog&amp;gt;&lt;br /&gt;
	&amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
	&amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;0.0.2&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;security&amp;gt;&lt;br /&gt;
		&amp;lt;item&amp;gt;Big issue&amp;lt;/item&amp;gt;&lt;br /&gt;
	&amp;lt;/security&amp;gt;&lt;br /&gt;
&amp;lt;/changelog&amp;gt;&lt;br /&gt;
&amp;lt;/changelogs&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce fichier contient 2 changelogs:&lt;br /&gt;
* Version 0.0.2 (pour tester la vue de gestion)&lt;br /&gt;
* Version 4.0.0 (pour tester la vue de mise à jour)&lt;br /&gt;
&lt;br /&gt;
Un changelog peut avoir autant de versions que nécessaire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Beginner Development{{#translation:}}]]&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.0{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Adding_changelog_to_your_manifest_file/38/fr&amp;diff=996153</id>
		<title>Translations:Adding changelog to your manifest file/38/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Adding_changelog_to_your_manifest_file/38/fr&amp;diff=996153"/>
		<updated>2022-12-02T16:01:37Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Un noeud &amp;lt;code&amp;gt;version&amp;lt;/code&amp;gt; est obligatoire à l&#039;intérieur de tout noeud &amp;lt;code&amp;gt;changelog &amp;lt;/code&amp;gt;. Sinon, vous verrez un message d&#039;erreur du type &amp;quot;SyntaxError: JSON.parse: caractère inattendu à la ligne 1, colonne 1 des données JSON&amp;quot;.&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Changelog_modal-fr.png&amp;diff=996152</id>
		<title>File:Changelog modal-fr.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Changelog_modal-fr.png&amp;diff=996152"/>
		<updated>2022-12-02T16:00:49Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{JEDL}}&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Manage_view_changelog_link-fr.png&amp;diff=996151</id>
		<title>File:Manage view changelog link-fr.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Manage_view_changelog_link-fr.png&amp;diff=996151"/>
		<updated>2022-12-02T15:59:08Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{JEDL}}&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=File:Update_view_changelog_button-fr.png&amp;diff=996150</id>
		<title>File:Update view changelog button-fr.png</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=File:Update_view_changelog_button-fr.png&amp;diff=996150"/>
		<updated>2022-12-02T15:55:05Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
== Licensing ==&lt;br /&gt;
{{JEDL}}&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Adding_changelog_to_your_manifest_file/fr&amp;diff=996149</id>
		<title>Adding changelog to your manifest file/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Adding_changelog_to_your_manifest_file/fr&amp;diff=996149"/>
		<updated>2022-12-02T13:20:58Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x|comment=&amp;gt;Didacticiel}}&lt;br /&gt;
&lt;br /&gt;
Depuis Joomla 4.0, les développeurs d’extensions peuvent exploiter la capacité de Joomla à lire un fichier de journal des modifications et à donner une représentation visuelle de celui-ci. Si une version donnée n&#039;est pas trouvée dans le journal des modifications, le bouton du journal des modifications ne sera pas affiché.&lt;br /&gt;
&lt;br /&gt;
Les modifications dans une version seront présentées de cette manière&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
[[File:Changelog modal-fr.png|700px|Changelog modal]]&lt;br /&gt;
&lt;br /&gt;
Le journal des modifications est utilisé à deux endroits différents.&lt;br /&gt;
&lt;br /&gt;
=== Vue de Mise à jour ===&lt;br /&gt;
Le programme d&#039;installation affichera le journal des modifications de la version pouvant être installée, le cas échéant.&lt;br /&gt;
&lt;br /&gt;
[[File:Update view changelog button-fr.png|700px|Changelog button on the Update View]]&lt;br /&gt;
&lt;br /&gt;
Cliquez sur le bouton &#039;&#039;&#039;Changelog&#039;&#039;&#039; pour afficher le changelog de la nouvelle version disponible.&lt;br /&gt;
&lt;br /&gt;
=== Gérer la Vue ===&lt;br /&gt;
Le gestionnaire d&#039;extensions affiche le journal des modifications de l&#039;extension actuellement installée, s&#039;il est disponible.&lt;br /&gt;
&lt;br /&gt;
[[File:Manage view changelog link-fr.png|700px|Version number is a link to the changelog modal]]&lt;br /&gt;
&lt;br /&gt;
Cliquez sur le numéro de version ici affichera le journal des modifications de la version actuellement installée.&lt;br /&gt;
&lt;br /&gt;
== Ajouter la balise changelogurl aux fichiers manifest ==&lt;br /&gt;
La première étape consiste à mettre à jour vos fichiers manifest indiquant à Joomla où trouver les détails du journal des modifications. Ajoutez le noeud suivant à vos fichiers manifest XML:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;changelogurl&amp;gt;https://example.com/updates/changelog.xml&amp;lt;/changelogurl&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
A noter ː L&#039;URL dans le tag &amp;lt;code&amp;gt;changelogurl&amp;lt;/code&amp;gt; ne doit contenir aucun espace ou passage à la ligne avant ou après. Voir les exemples de code.&lt;br /&gt;
=== Mettre à jour du manifest du serveur === &lt;br /&gt;
Voir cet exemple pour un fichier manifeste de serveur de mise à jour informant Joomla de la mise à jour d&#039;un composant nommé &amp;quot;com_lists&amp;quot;. Ainsi, vous verrez le bouton Changelog dans la vue de la mise à jour.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;updates&amp;gt;&lt;br /&gt;
 &amp;lt;update&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;Student List&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;List of students&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
  &amp;lt;version&amp;gt;4.0.0&amp;lt;/version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;changelogurl&amp;gt;https://example.com/updates/changelog.xml&amp;lt;/changelogurl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tags&amp;gt;&lt;br /&gt;
   &amp;lt;tag&amp;gt;stable&amp;lt;/tag&amp;gt;&lt;br /&gt;
  &amp;lt;/tags&amp;gt;&lt;br /&gt;
  &amp;lt;maintainer&amp;gt;Example Miller&amp;lt;/maintainer&amp;gt;&lt;br /&gt;
  &amp;lt;maintainerurl&amp;gt;https://example.com/&amp;lt;/maintainerurl&amp;gt;&lt;br /&gt;
  &amp;lt;section&amp;gt;Updates&amp;lt;/section&amp;gt;&lt;br /&gt;
  &amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;4.?&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;client&amp;gt;1&amp;lt;/client&amp;gt;&lt;br /&gt;
  &amp;lt;folder&amp;gt;&amp;lt;/folder&amp;gt;&lt;br /&gt;
 &amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/updates&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Extension manifest === &lt;br /&gt;
Ajoutez également la balise changelogurl au fichier manifest XML d’extension. Ainsi, la version de l&#039;extension sera liée aux journaux des modifications dans la vue de gestion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;component&amp;quot; method=&amp;quot;upgrade&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;COM_LISTS&amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... Other stuff ...&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;changelogurl&amp;gt;https://example.com/updates/changelog.xml&amp;lt;/changelogurl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; name=&amp;quot;My Extension&#039;s Updates&amp;quot;&amp;gt;https://example.com/lists-updates.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
	&amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Créer un fichier changelog ==&lt;br /&gt;
Le fichier changelog doit comporter les 3 nœuds suivants:&lt;br /&gt;
* element&lt;br /&gt;
* type&lt;br /&gt;
* version&lt;br /&gt;
&lt;br /&gt;
Ces informations sont utilisées pour correctement identifier le journal des modifications pour une extension donnée.&lt;br /&gt;
&lt;br /&gt;
Un noeud &amp;lt;code&amp;gt;version&amp;lt;/ code&amp;gt; est obligatoire à l&#039;intérieur de tout noeud &amp;lt;code&amp;gt;changelog &amp;lt;/code&amp;gt;. Sinon, vous verrez un message d&#039;erreur du type &amp;quot;SyntaxError: JSON.parse: caractère inattendu à la ligne 1, colonne 1 des données JSON&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
&amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;4.0.0&amp;lt;/version&amp;gt;   &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De plus, le journal des modifications est rempli avec un ou plusieurs types de modifications. Les types de modification suivants sont pris en charge:&lt;br /&gt;
* &#039;&#039;&#039;security&#039;&#039;&#039;: Tous les problèmes de sécurité qui ont été résolus&lt;br /&gt;
* &#039;&#039;&#039;fix&#039;&#039;&#039;: Tous les bugs corrigés&lt;br /&gt;
* &#039;&#039;&#039;language&#039;&#039;&#039;: Ceci est pour les changements de langage&lt;br /&gt;
* &#039;&#039;&#039;addition&#039;&#039;&#039;: Toutes les nouvelles fonctionnalités ajoutées&lt;br /&gt;
* &#039;&#039;&#039;change&#039;&#039;&#039;: Tout changement&lt;br /&gt;
* &#039;&#039;&#039;remove&#039;&#039;&#039;: Toutes les fonctionnalités supprimées&lt;br /&gt;
* &#039;&#039;&#039;note&#039;&#039;&#039;: Toute information supplémentaire pour informer l&#039;utilisateur&lt;br /&gt;
&lt;br /&gt;
Chaque nœud peut être répété autant de fois que nécessaire.&lt;br /&gt;
&lt;br /&gt;
Le format du texte peut être du texte brut ou HTML, mais dans le cas du HTML, il doit être placé entre balises CDATA, comme indiqué dans l&#039;exemple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;changelogs&amp;gt;&lt;br /&gt;
    &amp;lt;changelog&amp;gt;&lt;br /&gt;
        &amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;version&amp;gt;4.0.0&amp;lt;/version&amp;gt;&lt;br /&gt;
        &amp;lt;security&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;&amp;lt;![CDATA[&amp;lt;h2&amp;gt;You MUST replace this file&amp;lt;/h2&amp;gt;]]&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/security&amp;gt;&lt;br /&gt;
        &amp;lt;fix&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/fix&amp;gt;&lt;br /&gt;
        &amp;lt;language&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/language&amp;gt;&lt;br /&gt;
        &amp;lt;addition&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/addition&amp;gt;&lt;br /&gt;
        &amp;lt;change&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/change&amp;gt;&lt;br /&gt;
        &amp;lt;remove&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/remove&amp;gt;&lt;br /&gt;
        &amp;lt;note&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/note&amp;gt;&lt;br /&gt;
&amp;lt;/changelog&amp;gt;&lt;br /&gt;
&amp;lt;changelog&amp;gt;&lt;br /&gt;
	&amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
	&amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;0.0.2&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;security&amp;gt;&lt;br /&gt;
		&amp;lt;item&amp;gt;Big issue&amp;lt;/item&amp;gt;&lt;br /&gt;
	&amp;lt;/security&amp;gt;&lt;br /&gt;
&amp;lt;/changelog&amp;gt;&lt;br /&gt;
&amp;lt;/changelogs&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce fichier contient 2 changelogs:&lt;br /&gt;
* Version 0.0.2 (pour tester la vue de gestion)&lt;br /&gt;
* Version 4.0.0 (pour tester la vue de mise à jour)&lt;br /&gt;
&lt;br /&gt;
Un changelog peut avoir autant de versions que nécessaire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Beginner Development{{#translation:}}]]&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.0{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Adding_changelog_to_your_manifest_file/5/fr&amp;diff=996148</id>
		<title>Translations:Adding changelog to your manifest file/5/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Adding_changelog_to_your_manifest_file/5/fr&amp;diff=996148"/>
		<updated>2022-12-02T13:20:57Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le journal des modifications est utilisé à deux endroits différents.&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Adding_changelog_to_your_manifest_file/fr&amp;diff=996147</id>
		<title>Adding changelog to your manifest file/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Adding_changelog_to_your_manifest_file/fr&amp;diff=996147"/>
		<updated>2022-12-02T13:20:34Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x|comment=&amp;gt;Didacticiel}}&lt;br /&gt;
&lt;br /&gt;
Depuis Joomla 4.0, les développeurs d’extensions peuvent exploiter la capacité de Joomla à lire un fichier de journal des modifications et à donner une représentation visuelle de celui-ci. Si une version donnée n&#039;est pas trouvée dans le journal des modifications, le bouton du journal des modifications ne sera pas affiché.&lt;br /&gt;
&lt;br /&gt;
Les modifications dans une version seront présentées de cette manière&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
[[File:Changelog modal-fr.png|700px|Changelog modal]]&lt;br /&gt;
&lt;br /&gt;
Le changelog est utilisé à deux endroits différents.&lt;br /&gt;
&lt;br /&gt;
=== Vue de Mise à jour ===&lt;br /&gt;
Le programme d&#039;installation affichera le journal des modifications de la version pouvant être installée, le cas échéant.&lt;br /&gt;
&lt;br /&gt;
[[File:Update view changelog button-fr.png|700px|Changelog button on the Update View]]&lt;br /&gt;
&lt;br /&gt;
Cliquez sur le bouton &#039;&#039;&#039;Changelog&#039;&#039;&#039; pour afficher le changelog de la nouvelle version disponible.&lt;br /&gt;
&lt;br /&gt;
=== Gérer la Vue ===&lt;br /&gt;
Le gestionnaire d&#039;extensions affiche le journal des modifications de l&#039;extension actuellement installée, s&#039;il est disponible.&lt;br /&gt;
&lt;br /&gt;
[[File:Manage view changelog link-fr.png|700px|Version number is a link to the changelog modal]]&lt;br /&gt;
&lt;br /&gt;
Cliquez sur le numéro de version ici affichera le journal des modifications de la version actuellement installée.&lt;br /&gt;
&lt;br /&gt;
== Ajouter la balise changelogurl aux fichiers manifest ==&lt;br /&gt;
La première étape consiste à mettre à jour vos fichiers manifest indiquant à Joomla où trouver les détails du journal des modifications. Ajoutez le noeud suivant à vos fichiers manifest XML:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;changelogurl&amp;gt;https://example.com/updates/changelog.xml&amp;lt;/changelogurl&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
A noter ː L&#039;URL dans le tag &amp;lt;code&amp;gt;changelogurl&amp;lt;/code&amp;gt; ne doit contenir aucun espace ou passage à la ligne avant ou après. Voir les exemples de code.&lt;br /&gt;
=== Mettre à jour du manifest du serveur === &lt;br /&gt;
Voir cet exemple pour un fichier manifeste de serveur de mise à jour informant Joomla de la mise à jour d&#039;un composant nommé &amp;quot;com_lists&amp;quot;. Ainsi, vous verrez le bouton Changelog dans la vue de la mise à jour.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;updates&amp;gt;&lt;br /&gt;
 &amp;lt;update&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;Student List&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;List of students&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
  &amp;lt;version&amp;gt;4.0.0&amp;lt;/version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;changelogurl&amp;gt;https://example.com/updates/changelog.xml&amp;lt;/changelogurl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tags&amp;gt;&lt;br /&gt;
   &amp;lt;tag&amp;gt;stable&amp;lt;/tag&amp;gt;&lt;br /&gt;
  &amp;lt;/tags&amp;gt;&lt;br /&gt;
  &amp;lt;maintainer&amp;gt;Example Miller&amp;lt;/maintainer&amp;gt;&lt;br /&gt;
  &amp;lt;maintainerurl&amp;gt;https://example.com/&amp;lt;/maintainerurl&amp;gt;&lt;br /&gt;
  &amp;lt;section&amp;gt;Updates&amp;lt;/section&amp;gt;&lt;br /&gt;
  &amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;4.?&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;client&amp;gt;1&amp;lt;/client&amp;gt;&lt;br /&gt;
  &amp;lt;folder&amp;gt;&amp;lt;/folder&amp;gt;&lt;br /&gt;
 &amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/updates&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Extension manifest === &lt;br /&gt;
Ajoutez également la balise changelogurl au fichier manifest XML d’extension. Ainsi, la version de l&#039;extension sera liée aux journaux des modifications dans la vue de gestion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;component&amp;quot; method=&amp;quot;upgrade&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;COM_LISTS&amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... Other stuff ...&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;changelogurl&amp;gt;https://example.com/updates/changelog.xml&amp;lt;/changelogurl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; name=&amp;quot;My Extension&#039;s Updates&amp;quot;&amp;gt;https://example.com/lists-updates.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
	&amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Créer un fichier changelog ==&lt;br /&gt;
Le fichier changelog doit comporter les 3 nœuds suivants:&lt;br /&gt;
* element&lt;br /&gt;
* type&lt;br /&gt;
* version&lt;br /&gt;
&lt;br /&gt;
Ces informations sont utilisées pour correctement identifier le journal des modifications pour une extension donnée.&lt;br /&gt;
&lt;br /&gt;
Un noeud &amp;lt;code&amp;gt;version&amp;lt;/ code&amp;gt; est obligatoire à l&#039;intérieur de tout noeud &amp;lt;code&amp;gt;changelog &amp;lt;/code&amp;gt;. Sinon, vous verrez un message d&#039;erreur du type &amp;quot;SyntaxError: JSON.parse: caractère inattendu à la ligne 1, colonne 1 des données JSON&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
&amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;4.0.0&amp;lt;/version&amp;gt;   &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De plus, le journal des modifications est rempli avec un ou plusieurs types de modifications. Les types de modification suivants sont pris en charge:&lt;br /&gt;
* &#039;&#039;&#039;security&#039;&#039;&#039;: Tous les problèmes de sécurité qui ont été résolus&lt;br /&gt;
* &#039;&#039;&#039;fix&#039;&#039;&#039;: Tous les bugs corrigés&lt;br /&gt;
* &#039;&#039;&#039;language&#039;&#039;&#039;: Ceci est pour les changements de langage&lt;br /&gt;
* &#039;&#039;&#039;addition&#039;&#039;&#039;: Toutes les nouvelles fonctionnalités ajoutées&lt;br /&gt;
* &#039;&#039;&#039;change&#039;&#039;&#039;: Tout changement&lt;br /&gt;
* &#039;&#039;&#039;remove&#039;&#039;&#039;: Toutes les fonctionnalités supprimées&lt;br /&gt;
* &#039;&#039;&#039;note&#039;&#039;&#039;: Toute information supplémentaire pour informer l&#039;utilisateur&lt;br /&gt;
&lt;br /&gt;
Chaque nœud peut être répété autant de fois que nécessaire.&lt;br /&gt;
&lt;br /&gt;
Le format du texte peut être du texte brut ou HTML, mais dans le cas du HTML, il doit être placé entre balises CDATA, comme indiqué dans l&#039;exemple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;changelogs&amp;gt;&lt;br /&gt;
    &amp;lt;changelog&amp;gt;&lt;br /&gt;
        &amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;version&amp;gt;4.0.0&amp;lt;/version&amp;gt;&lt;br /&gt;
        &amp;lt;security&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;&amp;lt;![CDATA[&amp;lt;h2&amp;gt;You MUST replace this file&amp;lt;/h2&amp;gt;]]&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/security&amp;gt;&lt;br /&gt;
        &amp;lt;fix&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/fix&amp;gt;&lt;br /&gt;
        &amp;lt;language&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/language&amp;gt;&lt;br /&gt;
        &amp;lt;addition&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/addition&amp;gt;&lt;br /&gt;
        &amp;lt;change&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/change&amp;gt;&lt;br /&gt;
        &amp;lt;remove&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/remove&amp;gt;&lt;br /&gt;
        &amp;lt;note&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/note&amp;gt;&lt;br /&gt;
&amp;lt;/changelog&amp;gt;&lt;br /&gt;
&amp;lt;changelog&amp;gt;&lt;br /&gt;
	&amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
	&amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;0.0.2&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;security&amp;gt;&lt;br /&gt;
		&amp;lt;item&amp;gt;Big issue&amp;lt;/item&amp;gt;&lt;br /&gt;
	&amp;lt;/security&amp;gt;&lt;br /&gt;
&amp;lt;/changelog&amp;gt;&lt;br /&gt;
&amp;lt;/changelogs&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce fichier contient 2 changelogs:&lt;br /&gt;
* Version 0.0.2 (pour tester la vue de gestion)&lt;br /&gt;
* Version 4.0.0 (pour tester la vue de mise à jour)&lt;br /&gt;
&lt;br /&gt;
Un changelog peut avoir autant de versions que nécessaire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Beginner Development{{#translation:}}]]&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.0{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Adding_changelog_to_your_manifest_file/3/fr&amp;diff=996146</id>
		<title>Translations:Adding changelog to your manifest file/3/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Adding_changelog_to_your_manifest_file/3/fr&amp;diff=996146"/>
		<updated>2022-12-02T13:20:33Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Les modifications dans une version seront présentées de cette manière&amp;amp;nbsp;:&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Adding_changelog_to_your_manifest_file/fr&amp;diff=996145</id>
		<title>Adding changelog to your manifest file/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Adding_changelog_to_your_manifest_file/fr&amp;diff=996145"/>
		<updated>2022-12-02T13:19:10Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x|comment=&amp;gt;Didacticiel}}&lt;br /&gt;
&lt;br /&gt;
Depuis Joomla 4.0, les développeurs d’extensions peuvent exploiter la capacité de Joomla à lire un fichier de journal des modifications et à donner une représentation visuelle de celui-ci. Si une version donnée n&#039;est pas trouvée dans le journal des modifications, le bouton du journal des modifications ne sera pas affiché.&lt;br /&gt;
&lt;br /&gt;
Les modifications dans une version seront présentées de cette manière:&lt;br /&gt;
&lt;br /&gt;
[[File:Changelog modal-fr.png|700px|Changelog modal]]&lt;br /&gt;
&lt;br /&gt;
Le changelog est utilisé à deux endroits différents.&lt;br /&gt;
&lt;br /&gt;
=== Vue de Mise à jour ===&lt;br /&gt;
Le programme d&#039;installation affichera le journal des modifications de la version pouvant être installée, le cas échéant.&lt;br /&gt;
&lt;br /&gt;
[[File:Update view changelog button-fr.png|700px|Changelog button on the Update View]]&lt;br /&gt;
&lt;br /&gt;
Cliquez sur le bouton &#039;&#039;&#039;Changelog&#039;&#039;&#039; pour afficher le changelog de la nouvelle version disponible.&lt;br /&gt;
&lt;br /&gt;
=== Gérer la Vue ===&lt;br /&gt;
Le gestionnaire d&#039;extensions affiche le journal des modifications de l&#039;extension actuellement installée, s&#039;il est disponible.&lt;br /&gt;
&lt;br /&gt;
[[File:Manage view changelog link-fr.png|700px|Version number is a link to the changelog modal]]&lt;br /&gt;
&lt;br /&gt;
Cliquez sur le numéro de version ici affichera le journal des modifications de la version actuellement installée.&lt;br /&gt;
&lt;br /&gt;
== Ajouter la balise changelogurl aux fichiers manifest ==&lt;br /&gt;
La première étape consiste à mettre à jour vos fichiers manifest indiquant à Joomla où trouver les détails du journal des modifications. Ajoutez le noeud suivant à vos fichiers manifest XML:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;changelogurl&amp;gt;https://example.com/updates/changelog.xml&amp;lt;/changelogurl&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
A noter ː L&#039;URL dans le tag &amp;lt;code&amp;gt;changelogurl&amp;lt;/code&amp;gt; ne doit contenir aucun espace ou passage à la ligne avant ou après. Voir les exemples de code.&lt;br /&gt;
=== Mettre à jour du manifest du serveur === &lt;br /&gt;
Voir cet exemple pour un fichier manifeste de serveur de mise à jour informant Joomla de la mise à jour d&#039;un composant nommé &amp;quot;com_lists&amp;quot;. Ainsi, vous verrez le bouton Changelog dans la vue de la mise à jour.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;updates&amp;gt;&lt;br /&gt;
 &amp;lt;update&amp;gt;&lt;br /&gt;
  &amp;lt;name&amp;gt;Student List&amp;lt;/name&amp;gt;&lt;br /&gt;
  &amp;lt;description&amp;gt;List of students&amp;lt;/description&amp;gt;&lt;br /&gt;
  &amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
  &amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
  &amp;lt;version&amp;gt;4.0.0&amp;lt;/version&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;changelogurl&amp;gt;https://example.com/updates/changelog.xml&amp;lt;/changelogurl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &amp;lt;tags&amp;gt;&lt;br /&gt;
   &amp;lt;tag&amp;gt;stable&amp;lt;/tag&amp;gt;&lt;br /&gt;
  &amp;lt;/tags&amp;gt;&lt;br /&gt;
  &amp;lt;maintainer&amp;gt;Example Miller&amp;lt;/maintainer&amp;gt;&lt;br /&gt;
  &amp;lt;maintainerurl&amp;gt;https://example.com/&amp;lt;/maintainerurl&amp;gt;&lt;br /&gt;
  &amp;lt;section&amp;gt;Updates&amp;lt;/section&amp;gt;&lt;br /&gt;
  &amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;4.?&amp;quot; /&amp;gt;&lt;br /&gt;
  &amp;lt;client&amp;gt;1&amp;lt;/client&amp;gt;&lt;br /&gt;
  &amp;lt;folder&amp;gt;&amp;lt;/folder&amp;gt;&lt;br /&gt;
 &amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/updates&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Extension manifest === &lt;br /&gt;
Ajoutez également la balise changelogurl au fichier manifest XML d’extension. Ainsi, la version de l&#039;extension sera liée aux journaux des modifications dans la vue de gestion.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;component&amp;quot; method=&amp;quot;upgrade&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;name&amp;gt;COM_LISTS&amp;lt;/name&amp;gt;&lt;br /&gt;
&lt;br /&gt;
... Other stuff ...&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;changelogurl&amp;gt;https://example.com/updates/changelog.xml&amp;lt;/changelogurl&amp;gt;&lt;br /&gt;
&lt;br /&gt;
	&amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; name=&amp;quot;My Extension&#039;s Updates&amp;quot;&amp;gt;https://example.com/lists-updates.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
	&amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Créer un fichier changelog ==&lt;br /&gt;
Le fichier changelog doit comporter les 3 nœuds suivants:&lt;br /&gt;
* element&lt;br /&gt;
* type&lt;br /&gt;
* version&lt;br /&gt;
&lt;br /&gt;
Ces informations sont utilisées pour correctement identifier le journal des modifications pour une extension donnée.&lt;br /&gt;
&lt;br /&gt;
Un noeud &amp;lt;code&amp;gt;version&amp;lt;/ code&amp;gt; est obligatoire à l&#039;intérieur de tout noeud &amp;lt;code&amp;gt;changelog &amp;lt;/code&amp;gt;. Sinon, vous verrez un message d&#039;erreur du type &amp;quot;SyntaxError: JSON.parse: caractère inattendu à la ligne 1, colonne 1 des données JSON&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
&amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;4.0.0&amp;lt;/version&amp;gt;   &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
De plus, le journal des modifications est rempli avec un ou plusieurs types de modifications. Les types de modification suivants sont pris en charge:&lt;br /&gt;
* &#039;&#039;&#039;security&#039;&#039;&#039;: Tous les problèmes de sécurité qui ont été résolus&lt;br /&gt;
* &#039;&#039;&#039;fix&#039;&#039;&#039;: Tous les bugs corrigés&lt;br /&gt;
* &#039;&#039;&#039;language&#039;&#039;&#039;: Ceci est pour les changements de langage&lt;br /&gt;
* &#039;&#039;&#039;addition&#039;&#039;&#039;: Toutes les nouvelles fonctionnalités ajoutées&lt;br /&gt;
* &#039;&#039;&#039;change&#039;&#039;&#039;: Tout changement&lt;br /&gt;
* &#039;&#039;&#039;remove&#039;&#039;&#039;: Toutes les fonctionnalités supprimées&lt;br /&gt;
* &#039;&#039;&#039;note&#039;&#039;&#039;: Toute information supplémentaire pour informer l&#039;utilisateur&lt;br /&gt;
&lt;br /&gt;
Chaque nœud peut être répété autant de fois que nécessaire.&lt;br /&gt;
&lt;br /&gt;
Le format du texte peut être du texte brut ou HTML, mais dans le cas du HTML, il doit être placé entre balises CDATA, comme indiqué dans l&#039;exemple.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;changelogs&amp;gt;&lt;br /&gt;
    &amp;lt;changelog&amp;gt;&lt;br /&gt;
        &amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
        &amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
        &amp;lt;version&amp;gt;4.0.0&amp;lt;/version&amp;gt;&lt;br /&gt;
        &amp;lt;security&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;&amp;lt;![CDATA[&amp;lt;h2&amp;gt;You MUST replace this file&amp;lt;/h2&amp;gt;]]&amp;gt;&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/security&amp;gt;&lt;br /&gt;
        &amp;lt;fix&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/fix&amp;gt;&lt;br /&gt;
        &amp;lt;language&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/language&amp;gt;&lt;br /&gt;
        &amp;lt;addition&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/addition&amp;gt;&lt;br /&gt;
        &amp;lt;change&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/change&amp;gt;&lt;br /&gt;
        &amp;lt;remove&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/remove&amp;gt;&lt;br /&gt;
        &amp;lt;note&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item A&amp;lt;/item&amp;gt;&lt;br /&gt;
            &amp;lt;item&amp;gt;Item b&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;/note&amp;gt;&lt;br /&gt;
&amp;lt;/changelog&amp;gt;&lt;br /&gt;
&amp;lt;changelog&amp;gt;&lt;br /&gt;
	&amp;lt;element&amp;gt;com_lists&amp;lt;/element&amp;gt;&lt;br /&gt;
	&amp;lt;type&amp;gt;component&amp;lt;/type&amp;gt;&lt;br /&gt;
	&amp;lt;version&amp;gt;0.0.2&amp;lt;/version&amp;gt;&lt;br /&gt;
	&amp;lt;security&amp;gt;&lt;br /&gt;
		&amp;lt;item&amp;gt;Big issue&amp;lt;/item&amp;gt;&lt;br /&gt;
	&amp;lt;/security&amp;gt;&lt;br /&gt;
&amp;lt;/changelog&amp;gt;&lt;br /&gt;
&amp;lt;/changelogs&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ce fichier contient 2 changelogs:&lt;br /&gt;
* Version 0.0.2 (pour tester la vue de gestion)&lt;br /&gt;
* Version 4.0.0 (pour tester la vue de mise à jour)&lt;br /&gt;
&lt;br /&gt;
Un changelog peut avoir autant de versions que nécessaire.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Beginner Development{{#translation:}}]]&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.0{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Adding_changelog_to_your_manifest_file/39/fr&amp;diff=996144</id>
		<title>Translations:Adding changelog to your manifest file/39/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Adding_changelog_to_your_manifest_file/39/fr&amp;diff=996144"/>
		<updated>2022-12-02T13:19:06Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A noter ː L&#039;URL dans le tag &amp;lt;code&amp;gt;changelogurl&amp;lt;/code&amp;gt; ne doit contenir aucun espace ou passage à la ligne avant ou après. Voir les exemples de code.&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Deploying_an_Update_Server/fr&amp;diff=995813</id>
		<title>Deploying an Update Server/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Deploying_an_Update_Server/fr&amp;diff=995813"/>
		<updated>2022-12-01T14:47:11Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=2.5|status=eos}}{{Joomla version|version=3.x|}}{{Joomla version|version=4.x|}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
__TOC__&lt;br /&gt;
Ce didacticiel a pour vocation d&#039;aider les développeurs à créer un serveur de mise à jour pour une intégration avec le système de mise à jour implémenté dans Joomla. En ajoutant une liste de serveurs de mise à jour dans le fichier manifest de leurs extensions, les développeurs vont permettre aux utilisateurs de mettre à jour leurs extensions via le gestionnaire des mises à jour des extensions (voir l&#039;écran d&#039;aide [[S:MyLanguage/Help31:Extensions Extension Manager Update|Mise à Jour de Joomla 3.x]]) en un clic seulement.&lt;br /&gt;
== Définition d&#039;un serveur de mise à jour ==&lt;br /&gt;
Pour pouvoir utiliser cette fonction, un serveur de mise à jour doit être défini dans le fichier &amp;quot;manifest&amp;quot; de votre extension. Cette définition peut être utilisée pour toutes les extensions compatibles avec les versions 2.5 et plus récentes de Joomla! mais n&#039;est pas disponible pour les templates. Vous pouvez utiliser deux options pour votre type de serveur&amp;amp;nbsp;: collection ou extension. Celles-ci seront expliquées en détail par la suite. Ce code doit être ajouté au fichier &amp;quot;manifest&amp;quot; de l&#039;extension, à l&#039;intérieur de la balise pour l&#039;élément &#039;&#039;extension&#039;&#039;. Le serveur de mise à jour est définie comme suit pour chaque type :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;extension&amp;gt;&lt;br /&gt;
 &amp;lt;...&amp;gt;&lt;br /&gt;
 &amp;lt;updateservers&amp;gt;&lt;br /&gt;
    &amp;lt;server type=&amp;quot;collection&amp;quot;&amp;gt;https://example.com/list.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;My Extension&#039;s Updates&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
 &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
 &amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Plusieurs serveurs peuvent être définis à l&#039;aide de balises &amp;lt;tt&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/tt&amp;gt;. Si vous disposez de plusieurs serveurs de mise à jour, vous pouvez indiquer une priorité différente pour chacun d&#039;eux. De cette manière, vous contrôlez l&#039;ordre dans lequel les serveurs de mise à jour vont être utilisés.&lt;br /&gt;
&lt;br /&gt;
== Types de serveur ==&lt;br /&gt;
=== Collection ===&lt;br /&gt;
Le serveur de type &amp;lt;tt&amp;gt;&amp;quot;collection&amp;quot;&amp;lt;/tt&amp;gt; permet aux développeurs de définir un fichier &amp;quot;manifest&amp;quot; pour une extension afin de charger des mises à jour à partir d&#039;une collection. Ce type de serveur peut être utilisé par les développeurs qui souhaitent définir les mises à jour pour leurs extensions dans un seul fichier (non recommandé) ou si leurs extensions disposent de plusieurs sous-extensions qui ne sont pas distribués ou mises à jour toutes en même temps (comme un type pack d&#039;extension). L&#039;exemple ci-dessous est la définition de &amp;lt;tt&amp;gt;&amp;quot;collection&amp;quot;&amp;lt;/tt&amp;gt; utilisée par le programme de mise à jour du noyau Joomlaǃ :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;extensionset name=&amp;quot;Joomla Core&amp;quot; description=&amp;quot;Joomla! Core&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;extension name=&amp;quot;Joomla&amp;quot; element=&amp;quot;joomla&amp;quot; type=&amp;quot;file&amp;quot; version=&amp;quot;1.7.0&amp;quot; detailsurl=&amp;quot;https://update.joomla.org/core/extension.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/extensionset&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Toutes les définitions doivent être présentes entre les balises &amp;lt;tt&amp;gt;&amp;lt;extensionset&amp;gt;&amp;lt;/tt&amp;gt; dans votre &amp;quot;manifest&amp;quot; collection. La balise &amp;lt;tt&amp;gt;&amp;lt;extensionset&amp;gt;&amp;lt;/tt&amp;gt; peut avoir deux paramètres facultatifs : &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;description&amp;lt;/tt&amp;gt;. Pour chaque extension que cette collection références, une balise &amp;lt;tt&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/tt&amp;gt; est nécessaire. La balise &amp;lt;tt&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/tt&amp;gt; présente les paramètres suivants, qui sont tous requis pour que le processus de mise à jour se déroule correctement :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (nom) - le nom de l&#039;extension&lt;br /&gt;
* &#039;&#039;&#039;element&#039;&#039;&#039; (élément) - le nom non traduit de l&#039;extension c&#039;est à dire mod_custom&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; - le type d&#039;extension (composant, module, plugin, etc.)&lt;br /&gt;
* &#039;&#039;&#039;version&#039;&#039;&#039; - la dernière version de l&#039;extension&lt;br /&gt;
* &#039;&#039;&#039;detailsurl&#039;&#039;&#039; - L&#039;URL du fichier XML qui contient les définitions indivielles de mises à jour de l&#039;extension&lt;br /&gt;
=== Extensions ===&lt;br /&gt;
Le type de serveur d&#039;&amp;lt;tt&amp;gt;&amp;quot;extension&amp;quot;&amp;lt;/tt&amp;gt; permet aux développeurs de définir un manifest d&#039;extension pour obtenir les mises à jour depuis un seul manifest d&#039;extension. Tous les manifests de collection pointent finalement vers ce fichier XML. Toutes les mises à jour dans ce fichier doivent être définies après une balise &amp;lt;tt&amp;gt;&amp;lt;updates&amp;gt;&amp;lt;/tt&amp;gt; au début du fichier. L&#039;exemple ci-dessous est la définition de la mise à jour pour la version Joomla! 3.9.6&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;updates&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;Joomla! 3.9&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;description&amp;gt;Joomla! 3.9 CMS&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;element&amp;gt;joomla&amp;lt;/element&amp;gt;&lt;br /&gt;
		&amp;lt;type&amp;gt;file&amp;lt;/type&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;3.9.6&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;infourl title=&amp;quot;Joomla!&amp;quot;&amp;gt;https://www.joomla.org/announcements/release-news/5765-joomla-3-9-6-release.html&amp;lt;/infourl&amp;gt;&lt;br /&gt;
		&amp;lt;downloads&amp;gt;&lt;br /&gt;
			&amp;lt;downloadurl type=&amp;quot;full&amp;quot; format=&amp;quot;zip&amp;quot;&amp;gt;https://downloads.joomla.org/cms/joomla3/3-9-6/Joomla_3.9.6-Stable-Update_Package.zip&amp;lt;/downloadurl&amp;gt;&lt;br /&gt;
			&amp;lt;downloadsource type=&amp;quot;full&amp;quot; format=&amp;quot;zip&amp;quot;&amp;gt;https://github.com/joomla/joomla-cms/releases/download/3.9.6/Joomla_3.9.6-Stable-Update_Package.zip&amp;lt;/downloadsource&amp;gt;&lt;br /&gt;
			&amp;lt;downloadsource type=&amp;quot;full&amp;quot; format=&amp;quot;zip&amp;quot;&amp;gt;https://update.joomla.org/releases/3.9.6/Joomla_3.9.6-Stable-Update_Package.zip&amp;lt;/downloadsource&amp;gt;&lt;br /&gt;
		&amp;lt;/downloads&amp;gt;&lt;br /&gt;
		&amp;lt;tags&amp;gt;&lt;br /&gt;
			&amp;lt;tag&amp;gt;stable&amp;lt;/tag&amp;gt;&lt;br /&gt;
		&amp;lt;/tags&amp;gt;&lt;br /&gt;
		&amp;lt;sha256&amp;gt;05157273aadd3045564ee44373ea3643b437fa5321d17993a3119b38b04578e2&amp;lt;/sha256&amp;gt;&lt;br /&gt;
		&amp;lt;sha384&amp;gt;ebd9b0666fbe84e20a420a4bcd6c10d306fc4dee4edbbe8e2133c85f0fb84e59be5a50aa97cb38c068b77f77f6bbc091&amp;lt;/sha384&amp;gt;&lt;br /&gt;
		&amp;lt;sha512&amp;gt;a4c47644ceeaeec28944e0c74160203cf12037e0ea1439022e95055dfb6716de172667ce6d9164f12bb519d9cfcf1fdc728abea00f853b41debc7d2740f2b711&amp;lt;/sha512&amp;gt;&lt;br /&gt;
		&amp;lt;maintainer&amp;gt;Joomla! Production Department&amp;lt;/maintainer&amp;gt;&lt;br /&gt;
		&amp;lt;maintainerurl&amp;gt;https://www.joomla.org&amp;lt;/maintainerurl&amp;gt;&lt;br /&gt;
		&amp;lt;section&amp;gt;STS&amp;lt;/section&amp;gt;&lt;br /&gt;
		&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.[789]&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;php_minimum&amp;gt;5.3.10&amp;lt;/php_minimum&amp;gt;&lt;br /&gt;
&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/updates&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section suivante décrit les éléments d&#039;une mise à jour unique.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; - le nom de l&#039;extension, ce nom apparaîtra dans la colonne &amp;quot;Nom&amp;quot; de la vue de mise à jour du gestionnaire d&#039;extension (obligatoire).&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; – une courte description de l&#039;extension (facultatif) — si vous choisissez d&#039;utiliser &amp;lt;tt&amp;gt;&amp;lt;![CDATA[]]&amp;gt;&amp;lt;/tt&amp;gt;, les guillemets doubles vont briser le formatage HTML. Utilisez des guillemets simples avec vos entités HTML.&lt;br /&gt;
* &#039;&#039;&#039;element&#039;&#039;&#039; - le nom de l&#039;extension installée (obligatoire). Pour les plugins, ce doit être le même que la valeur de l&#039;attribut du plugin  dans le manifest du fichier principal du plugin. Pour &amp;lt;tt&amp;gt;&amp;lt;filename plugin=&amp;quot;nomduplugin&amp;quot;&amp;gt;nomduplugin.php&amp;lt;/filename&amp;gt;&amp;lt;/tt&amp;gt;, la valeur de l&#039;élément doit être &#039;&#039;&#039;nomduplugin&#039;&#039;&#039;. &lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; - le type de l&#039;extension (composant, module, plugin, etc.) (obligatoire).&lt;br /&gt;
* &#039;&#039;&#039;folder&#039;&#039;&#039; (dossier) - spécifique aux plugins, cette balise décrit le type du plugin mis à jour (contenu, système, etc.) (obligatoire pour les plugins).&lt;br /&gt;
* &#039;&#039;&#039;client&#039;&#039;&#039; – Le client de l&#039;extension. Requis pour les modules et modèles de site depuis la version 3.2.0. – Les valeurs possibles actuellement sont &amp;quot;site&amp;quot; ou &amp;quot;administrator&amp;quot;. &#039;&#039;&#039;Attention&amp;amp;nbsp;!&#039;&#039;&#039; Les plugins et les modules du site public sont automatiquement installés avec le client à 0 (site), mais vous devez tout de même indiquer le client dans une mise à jour ou il sera mis par défaut à 1 (administrator) et, du coup, la mise à jour trouvée ne sera pas affichée parce qu&#039;elle ne correspondra à aucune extension. Les composants sont automatiquement installés avec un client à &amp;quot;administrator&amp;quot;, ce qui est la valeur actuelle par défaut.&lt;br /&gt;
** &#039;&#039;&#039;Attention&#039;&#039;&#039; : Concernant Joomla! 4.0 seule une chaîne de caractère est autorisée. L&#039;utilisation de nombres pour le champ client a été déprécié en 2012 et supprimé de Joomla! 4.0 (remplacer &amp;quot;0&amp;quot; par &amp;quot;site&amp;quot; et &amp;quot;1&amp;quot; par &amp;quot;administrator&amp;quot;).&lt;br /&gt;
** &#039;&#039;&#039;Attention&#039;&#039;&#039; : le nom de la balise est &#039;&#039;&#039;&amp;lt;client&amp;gt;&#039;&#039;&#039; pour Joomla! 2.5 et &#039;&#039;&#039;&amp;lt;client_id&amp;gt;&#039;&#039;&#039; pour les versions 1.6 et 1.7. Si vous utilisez &amp;lt;client_id&amp;gt; plutôt que de &amp;lt;client&amp;gt; sur un site de 2.5, la balise sera ignorée.&lt;br /&gt;
* &#039;&#039;&#039;version&#039;&#039;&#039; - les références de la version (obligatoire)&lt;br /&gt;
* &#039;&#039;&#039;infourl&#039;&#039;&#039; - l&#039;URL pour diriger les utilisateurs vers des informations complémentaires concernant la mise à jour (facultatif).&lt;br /&gt;
* &#039;&#039;&#039;downloads&#039;&#039;&#039; - la section qui liste tous les emplacements pour le téléchargement.&lt;br /&gt;
** &#039;&#039;&#039;downloadurl&#039;&#039;&#039; - l&#039;URL à partir de laquelle il est possible de télécharger l&#039;extension. La balise &amp;lt;downloadurl&amp;gt; doit contenir deux paramètres obligatoires :&lt;br /&gt;
*** &#039;&#039;&#039;type&#039;&#039;&#039; - le type du package (complète ou mise à jour).&lt;br /&gt;
*** &#039;&#039;&#039;format&#039;&#039;&#039; - Le format de l&#039;archive (zip, tar, etc.).&lt;br /&gt;
** &#039;&#039;&#039;downloadsource&#039;&#039;&#039; - Facultatif. Depuis la version Joomlaǃ 3.8.3., une URL alternative depuis laquelle il est possible de télécharger l&#039;extension lorsque la connexion depuis &amp;lt;downloadurl&amp;gt; échoue. Plusieurs balises &amp;lt;downloadsource&amp;gt; sont autorisées. La balise  &amp;lt;downloadsource&amp;gt; nécessite de renseigner deux paramètres obligatoires&amp;amp;nbsp;:&lt;br /&gt;
*** &#039;&#039;&#039;type&#039;&#039;&#039; - Le type du package (complète ou mise à jour).&lt;br /&gt;
*** &#039;&#039;&#039;format&#039;&#039;&#039; - Le format de l&#039;archive (zip, tar, etc.).&lt;br /&gt;
** &#039;&#039;&#039;NB&#039;&#039;&#039; - il ne doit pas y avoir de saut à la ligne avant ou après l&#039;URL&amp;amp;nbsp;; tout doit être écrit sur une seule est même ligne où vous aurez une erreur de connexion au serveur&amp;amp;nbsp;: requête malformée quand la mise à jour sera exécutée&lt;br /&gt;
* &#039;&#039;&#039;changelogurl&#039;&#039;&#039; - Un lien vers un fichier xml du journal des modifications. Les versions Joomlaǃ 4.0 et ultérieures vous permettront d&#039;afficher un bouton vers le journal des modifications dans la page de mise à jour de l&#039;extension. Pour plus de détails pour utiliser cela, consulter&amp;amp;nbsp;: [[Adding changelog to your manifest file/fr|Ajouter un journal de modifications à votre fichier manifest]]&lt;br /&gt;
* &#039;&#039;&#039;tags&#039;&#039;&#039; - Une liste de mots clés pertinents pour cette version. Les versions Joomla! 3.4 et suivantes utilisent cela pour déterminer le niveau de stabilité de la mise à jour. Les valeurs des tags valides sont&amp;amp;nbsp;:&lt;br /&gt;
** &#039;&#039;dev&#039;&#039; : versions de développement, très instables et pré-alpha (par exemple, les nightly builds).&lt;br /&gt;
** &#039;&#039;alpha&#039;&#039; : Niveau de qualité de logiciel Alpha (fonctionnalités non implémentées, bogues bloquants)&lt;br /&gt;
** &#039;&#039;beta&#039;&#039; : Niveau de qualité de logiciel Beta (toutes les fonctionnalités sont implémentées, possibilité de bogues bloquants, certitude de présence de bogues mineurs)&lt;br /&gt;
** &#039;&#039;rc&#039;&#039; : Niveau de qualité de logiciel Release Candidate (plus de bogues bloquants, des bogues mineurs peuvent encore subsister)&lt;br /&gt;
** &#039;&#039;stable&#039;&#039; : Niveau de qualité de logiciel Production. Tous les autres tags sont actuellement ignorés. Si vous fournissez plus d&#039;un tag contenant l&#039;un des mots clés de stabilité du code ci-dessus, seul le DERNIER tag sera pris en compte. Si aucun tag n&#039;est fourni, Joomla! va considérer que la version est stable.&lt;br /&gt;
* &#039;&#039;&#039;maintainer&#039;&#039;&#039; – Le nom de la personne qui maintient l&#039;extension (similaire à la balise &amp;lt;author&amp;gt; dans le manifest) (optionnel)&lt;br /&gt;
* &#039;&#039;&#039;maintainerurl&#039;&#039;&#039; – Le site web de la personne qui maintient l&#039;extension (similaire à la balise &amp;lt;authorUrl&amp;gt; du manifest) (optionnel)&lt;br /&gt;
* &#039;&#039;&#039;section&#039;&#039;&#039; – Facultatif (utilisation inconnue)&lt;br /&gt;
* &#039;&#039;&#039;targetplatform&#039;&#039;&#039; – Une balise pour définir les exigences de la plateforme (depuis la version {{ JVer| 3.10 }} ceci est également utilisé pour détecter la compatibilité des extensions pour le composant de mise à jour de Joomla), et qui a besoin des éléments suivant&amp;amp;nbsp;ː&lt;br /&gt;
** &#039;&#039;&#039;name&#039;&#039;&#039; – Le nom de la dépendance de la plateforme&amp;amp;nbsp;; actuellement, SEUL &amp;quot;joomla&amp;quot; est supporté&lt;br /&gt;
** &#039;&#039;&#039;version&#039;&#039;&#039;– La version de Joomla! prenant en charge l&#039;extension.&lt;br /&gt;
** &#039;&#039;&#039;min_dev_level&#039;&#039;&#039; et &#039;&#039;&#039;max_dev_level&#039;&#039;&#039; – Ces attributs ont été ajoutés en 3.0.1 pour permettre de sélectionner une plateforme cible pour un certain niveau de développement (&amp;quot;z&amp;quot; dans x.y.z). Ils sont optionnels. Vous pouvez en spécifier un seul ou les deux. S&#039;il sont omis, les niveaux de développements correspondent tous. Par exemple, la balise suivante inclut les versions 4.0.0 et 4.0.1. &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;4.0&amp;quot; min_dev_level=&amp;quot;0&amp;quot; max_dev_level=&amp;quot;1&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*** &#039;&#039;&#039;Note :&#039;&#039;&#039; Si votre extension est compatible Joomla! 2.5 et/ou 3.1, vous devrez avoir des définitions séparées de &amp;lt;update&amp;gt; pour chaque version à cause de la manière dans le moteur de mise à jour va vérifier la version, si vous spécifiez une valeur. Cependant, pour montrer votre extension sur toutes les versions Joomla qui supportent les mises à jour automatiques (et de fait indique la compatibilité avec toutes les versions futures de Joomla dans le système de mise à jour de Joomla), ajoutez &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;.*&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;. Si vous voulez que la mise à jour de votre extension s&#039;affiche pour toutes les versions {{JVer|3.x}}, alors plutôt que de spécifier une version dans le tag de version, ajoutez &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.[012345]&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;. Ceci va montrer la mise à jour dans toutes les versions 3.x de 3.0 à 3.5. Si vous voulez inclure la version 3.10, vous pouvez utiliser un &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; comme ceci&amp;amp;nbsp;: &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.[012345]|10&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;. Si vous voulez montrer les mises à jour pour toutes les versions 3.8.x et toutes les versions 3.10.x, vous pouvez utiliser &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.(8|10)&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;php_minimum&#039;&#039;&#039; – Depuis la version 3.2.2, une version minimale PHP supportée peut être fournie dans le flux de mise à jour. Si le serveur n&#039;a pas cette version minimale, un message indique à l&#039;utilisateur que la mise à jour est accessible mais ne peut pas être installée du fait d&#039;une exigence non couverte.&lt;br /&gt;
* &#039;&#039;&#039;supported_databases&#039;&#039;&#039; – Depuis la version 3.7, une vérification de la base de données et de sa version minimale supportée peut être fournie dans le flux de mise à jour. Lorsque le serveur n&#039;a pas cette version minimale, un message indique à l&#039;utilisateur que la mise à jour est accessible mais ne peut pas être installée du fait d&#039;une exigence non couverte. A noter&amp;amp;nbsp;: [https://github.com/joomla/joomla-cms/pull/26079 Comme pour la version 3.9.12] il y a également un cas spécial pour mariadb et ainsi vous pouvez indiquer une version spécifique minimale pour cela aussi.&lt;br /&gt;
** Un exemple pourrait être&amp;amp;nbsp;: &amp;lt;code&amp;gt;&amp;lt;supported_databases mysql=&amp;quot;5.5.3&amp;quot; mariadb=&amp;quot;10.1&amp;quot; postgresql=&amp;quot;9.2&amp;quot; mssql=&amp;quot;10.50.1600.1&amp;quot; /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;sha256&#039;&#039;&#039;, &#039;&#039;&#039;sha384&#039;&#039;&#039;, &#039;&#039;&#039;sha512&#039;&#039;&#039; – Facultatif. Depuis la version Joomlaǃ 3.9.0, vous pouvez ajouter des checksums sur vos fichiers pour ces formats hash. Notez que dans Joomlaǃ 3, seule une information est présente dans &#039;&#039;&#039;mises à jour&#039;&#039;&#039; si un checksum n&#039;est pas correct. C&#039;est tout. La mise à jour ne s&#039;arrête pas pour autant. Pour les mises à jour avec Joomlaǃ 4 et les installations, si un checksum fourni n&#039;est pas correct, alors la mise à jour s&#039;arrêtera.&lt;br /&gt;
&lt;br /&gt;
La définition d&#039;un &amp;lt;update&amp;gt; séparé sera requis pour chaque version de l&#039;extension que vous mettez à disposition.&lt;br /&gt;
&lt;br /&gt;
Les valeurs de &#039;&#039;&#039;element&#039;&#039;&#039;, &#039;&#039;&#039;type&#039;&#039;&#039;, &#039;&#039;&#039;client_id&#039;&#039;&#039; et &#039;&#039;&#039;folder&#039;&#039;&#039; doivent correspondre à ceux de la table #__extensions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important pour les plugins :&#039;&#039;&#039; les plugins doivent intégrer les éléments &amp;lt;tt&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;&amp;lt;client&amp;gt;&amp;lt;/tt&amp;gt; pour fonctionner correctement.&lt;br /&gt;
== Résolution de problèmes ==&lt;br /&gt;
* &#039;&#039;&#039;Le script de mise à jour SQL n&#039;est pas exécuté durant une mise à jour.&#039;&#039;&#039; &lt;br /&gt;
:Si le script de mise à jour SQL (par exemple, dans le répertoire &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt;) n&#039;est pas exécuté durant le processus de mise à jour, cela peut être dû au fait qu&#039;il n&#039;y avait pas de numéro de version dans la table &amp;lt;code&amp;gt;#__schemas&amp;lt;/code&amp;gt; de cette extension &#039;&#039;avant la mise à jour&#039;&#039;. Cette valeur est déterminée par le dernier nom de script dans le répertoire de mises à jour SQL. Si cette valeur est vierge, aucun script SQL ne sera exécuté durant le cycle de mise à jour. Pour vous assurer que cette valeur est correctement spécifiée, assurez vous que vous avez un script SQL dans ce répertoire dont le nom est le numéro de version (par exemple, 1.2.3.sql si la version est 1.2.3). Le fichier peut être vide ou avoir juste une ligne de commentaire SQL. Ceci doit avoir été fait dans une version antérieure — celle avant la mise à jour. Comme alternative, vous pouvez ajouter cette valeur dans la table &amp;lt;code&amp;gt;#__schemas&amp;lt;/code&amp;gt; en utilisant une requête SQL. &lt;br /&gt;
&lt;br /&gt;
== Outils de support ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Development/fr|Développement]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Deploying_an_Update_Server/32/fr&amp;diff=995812</id>
		<title>Translations:Deploying an Update Server/32/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Deploying_an_Update_Server/32/fr&amp;diff=995812"/>
		<updated>2022-12-01T14:47:07Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &#039;&#039;&#039;changelogurl&#039;&#039;&#039; - Un lien vers un fichier xml du journal des modifications. Les versions Joomlaǃ 4.0 et ultérieures vous permettront d&#039;afficher un bouton vers le journal des modifications dans la page de mise à jour de l&#039;extension. Pour plus de détails pour utiliser cela, consulter&amp;amp;nbsp;: [[Adding changelog to your manifest file/fr|Ajouter un journal de modifications à votre fichier manifest]]&lt;br /&gt;
* &#039;&#039;&#039;tags&#039;&#039;&#039; - Une liste de mots clés pertinents pour cette version. Les versions Joomla! 3.4 et suivantes utilisent cela pour déterminer le niveau de stabilité de la mise à jour. Les valeurs des tags valides sont&amp;amp;nbsp;:&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Deploying_an_Update_Server/fr&amp;diff=995811</id>
		<title>Deploying an Update Server/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Deploying_an_Update_Server/fr&amp;diff=995811"/>
		<updated>2022-12-01T14:46:14Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=2.5|status=eos}}{{Joomla version|version=3.x|}}{{Joomla version|version=4.x|}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
__TOC__&lt;br /&gt;
Ce didacticiel a pour vocation d&#039;aider les développeurs à créer un serveur de mise à jour pour une intégration avec le système de mise à jour implémenté dans Joomla. En ajoutant une liste de serveurs de mise à jour dans le fichier manifest de leurs extensions, les développeurs vont permettre aux utilisateurs de mettre à jour leurs extensions via le gestionnaire des mises à jour des extensions (voir l&#039;écran d&#039;aide [[S:MyLanguage/Help31:Extensions Extension Manager Update|Mise à Jour de Joomla 3.x]]) en un clic seulement.&lt;br /&gt;
== Définition d&#039;un serveur de mise à jour ==&lt;br /&gt;
Pour pouvoir utiliser cette fonction, un serveur de mise à jour doit être défini dans le fichier &amp;quot;manifest&amp;quot; de votre extension. Cette définition peut être utilisée pour toutes les extensions compatibles avec les versions 2.5 et plus récentes de Joomla! mais n&#039;est pas disponible pour les templates. Vous pouvez utiliser deux options pour votre type de serveur&amp;amp;nbsp;: collection ou extension. Celles-ci seront expliquées en détail par la suite. Ce code doit être ajouté au fichier &amp;quot;manifest&amp;quot; de l&#039;extension, à l&#039;intérieur de la balise pour l&#039;élément &#039;&#039;extension&#039;&#039;. Le serveur de mise à jour est définie comme suit pour chaque type :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;extension&amp;gt;&lt;br /&gt;
 &amp;lt;...&amp;gt;&lt;br /&gt;
 &amp;lt;updateservers&amp;gt;&lt;br /&gt;
    &amp;lt;server type=&amp;quot;collection&amp;quot;&amp;gt;https://example.com/list.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;My Extension&#039;s Updates&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
 &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
 &amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Plusieurs serveurs peuvent être définis à l&#039;aide de balises &amp;lt;tt&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/tt&amp;gt;. Si vous disposez de plusieurs serveurs de mise à jour, vous pouvez indiquer une priorité différente pour chacun d&#039;eux. De cette manière, vous contrôlez l&#039;ordre dans lequel les serveurs de mise à jour vont être utilisés.&lt;br /&gt;
&lt;br /&gt;
== Types de serveur ==&lt;br /&gt;
=== Collection ===&lt;br /&gt;
Le serveur de type &amp;lt;tt&amp;gt;&amp;quot;collection&amp;quot;&amp;lt;/tt&amp;gt; permet aux développeurs de définir un fichier &amp;quot;manifest&amp;quot; pour une extension afin de charger des mises à jour à partir d&#039;une collection. Ce type de serveur peut être utilisé par les développeurs qui souhaitent définir les mises à jour pour leurs extensions dans un seul fichier (non recommandé) ou si leurs extensions disposent de plusieurs sous-extensions qui ne sont pas distribués ou mises à jour toutes en même temps (comme un type pack d&#039;extension). L&#039;exemple ci-dessous est la définition de &amp;lt;tt&amp;gt;&amp;quot;collection&amp;quot;&amp;lt;/tt&amp;gt; utilisée par le programme de mise à jour du noyau Joomlaǃ :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;extensionset name=&amp;quot;Joomla Core&amp;quot; description=&amp;quot;Joomla! Core&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;extension name=&amp;quot;Joomla&amp;quot; element=&amp;quot;joomla&amp;quot; type=&amp;quot;file&amp;quot; version=&amp;quot;1.7.0&amp;quot; detailsurl=&amp;quot;https://update.joomla.org/core/extension.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/extensionset&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Toutes les définitions doivent être présentes entre les balises &amp;lt;tt&amp;gt;&amp;lt;extensionset&amp;gt;&amp;lt;/tt&amp;gt; dans votre &amp;quot;manifest&amp;quot; collection. La balise &amp;lt;tt&amp;gt;&amp;lt;extensionset&amp;gt;&amp;lt;/tt&amp;gt; peut avoir deux paramètres facultatifs : &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;description&amp;lt;/tt&amp;gt;. Pour chaque extension que cette collection références, une balise &amp;lt;tt&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/tt&amp;gt; est nécessaire. La balise &amp;lt;tt&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/tt&amp;gt; présente les paramètres suivants, qui sont tous requis pour que le processus de mise à jour se déroule correctement :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (nom) - le nom de l&#039;extension&lt;br /&gt;
* &#039;&#039;&#039;element&#039;&#039;&#039; (élément) - le nom non traduit de l&#039;extension c&#039;est à dire mod_custom&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; - le type d&#039;extension (composant, module, plugin, etc.)&lt;br /&gt;
* &#039;&#039;&#039;version&#039;&#039;&#039; - la dernière version de l&#039;extension&lt;br /&gt;
* &#039;&#039;&#039;detailsurl&#039;&#039;&#039; - L&#039;URL du fichier XML qui contient les définitions indivielles de mises à jour de l&#039;extension&lt;br /&gt;
=== Extensions ===&lt;br /&gt;
Le type de serveur d&#039;&amp;lt;tt&amp;gt;&amp;quot;extension&amp;quot;&amp;lt;/tt&amp;gt; permet aux développeurs de définir un manifest d&#039;extension pour obtenir les mises à jour depuis un seul manifest d&#039;extension. Tous les manifests de collection pointent finalement vers ce fichier XML. Toutes les mises à jour dans ce fichier doivent être définies après une balise &amp;lt;tt&amp;gt;&amp;lt;updates&amp;gt;&amp;lt;/tt&amp;gt; au début du fichier. L&#039;exemple ci-dessous est la définition de la mise à jour pour la version Joomla! 3.9.6&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;updates&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;Joomla! 3.9&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;description&amp;gt;Joomla! 3.9 CMS&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;element&amp;gt;joomla&amp;lt;/element&amp;gt;&lt;br /&gt;
		&amp;lt;type&amp;gt;file&amp;lt;/type&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;3.9.6&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;infourl title=&amp;quot;Joomla!&amp;quot;&amp;gt;https://www.joomla.org/announcements/release-news/5765-joomla-3-9-6-release.html&amp;lt;/infourl&amp;gt;&lt;br /&gt;
		&amp;lt;downloads&amp;gt;&lt;br /&gt;
			&amp;lt;downloadurl type=&amp;quot;full&amp;quot; format=&amp;quot;zip&amp;quot;&amp;gt;https://downloads.joomla.org/cms/joomla3/3-9-6/Joomla_3.9.6-Stable-Update_Package.zip&amp;lt;/downloadurl&amp;gt;&lt;br /&gt;
			&amp;lt;downloadsource type=&amp;quot;full&amp;quot; format=&amp;quot;zip&amp;quot;&amp;gt;https://github.com/joomla/joomla-cms/releases/download/3.9.6/Joomla_3.9.6-Stable-Update_Package.zip&amp;lt;/downloadsource&amp;gt;&lt;br /&gt;
			&amp;lt;downloadsource type=&amp;quot;full&amp;quot; format=&amp;quot;zip&amp;quot;&amp;gt;https://update.joomla.org/releases/3.9.6/Joomla_3.9.6-Stable-Update_Package.zip&amp;lt;/downloadsource&amp;gt;&lt;br /&gt;
		&amp;lt;/downloads&amp;gt;&lt;br /&gt;
		&amp;lt;tags&amp;gt;&lt;br /&gt;
			&amp;lt;tag&amp;gt;stable&amp;lt;/tag&amp;gt;&lt;br /&gt;
		&amp;lt;/tags&amp;gt;&lt;br /&gt;
		&amp;lt;sha256&amp;gt;05157273aadd3045564ee44373ea3643b437fa5321d17993a3119b38b04578e2&amp;lt;/sha256&amp;gt;&lt;br /&gt;
		&amp;lt;sha384&amp;gt;ebd9b0666fbe84e20a420a4bcd6c10d306fc4dee4edbbe8e2133c85f0fb84e59be5a50aa97cb38c068b77f77f6bbc091&amp;lt;/sha384&amp;gt;&lt;br /&gt;
		&amp;lt;sha512&amp;gt;a4c47644ceeaeec28944e0c74160203cf12037e0ea1439022e95055dfb6716de172667ce6d9164f12bb519d9cfcf1fdc728abea00f853b41debc7d2740f2b711&amp;lt;/sha512&amp;gt;&lt;br /&gt;
		&amp;lt;maintainer&amp;gt;Joomla! Production Department&amp;lt;/maintainer&amp;gt;&lt;br /&gt;
		&amp;lt;maintainerurl&amp;gt;https://www.joomla.org&amp;lt;/maintainerurl&amp;gt;&lt;br /&gt;
		&amp;lt;section&amp;gt;STS&amp;lt;/section&amp;gt;&lt;br /&gt;
		&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.[789]&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;php_minimum&amp;gt;5.3.10&amp;lt;/php_minimum&amp;gt;&lt;br /&gt;
&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/updates&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section suivante décrit les éléments d&#039;une mise à jour unique.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; - le nom de l&#039;extension, ce nom apparaîtra dans la colonne &amp;quot;Nom&amp;quot; de la vue de mise à jour du gestionnaire d&#039;extension (obligatoire).&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; – une courte description de l&#039;extension (facultatif) — si vous choisissez d&#039;utiliser &amp;lt;tt&amp;gt;&amp;lt;![CDATA[]]&amp;gt;&amp;lt;/tt&amp;gt;, les guillemets doubles vont briser le formatage HTML. Utilisez des guillemets simples avec vos entités HTML.&lt;br /&gt;
* &#039;&#039;&#039;element&#039;&#039;&#039; - le nom de l&#039;extension installée (obligatoire). Pour les plugins, ce doit être le même que la valeur de l&#039;attribut du plugin  dans le manifest du fichier principal du plugin. Pour &amp;lt;tt&amp;gt;&amp;lt;filename plugin=&amp;quot;nomduplugin&amp;quot;&amp;gt;nomduplugin.php&amp;lt;/filename&amp;gt;&amp;lt;/tt&amp;gt;, la valeur de l&#039;élément doit être &#039;&#039;&#039;nomduplugin&#039;&#039;&#039;. &lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; - le type de l&#039;extension (composant, module, plugin, etc.) (obligatoire).&lt;br /&gt;
* &#039;&#039;&#039;folder&#039;&#039;&#039; (dossier) - spécifique aux plugins, cette balise décrit le type du plugin mis à jour (contenu, système, etc.) (obligatoire pour les plugins).&lt;br /&gt;
* &#039;&#039;&#039;client&#039;&#039;&#039; – Le client de l&#039;extension. Requis pour les modules et modèles de site depuis la version 3.2.0. – Les valeurs possibles actuellement sont &amp;quot;site&amp;quot; ou &amp;quot;administrator&amp;quot;. &#039;&#039;&#039;Attention&amp;amp;nbsp;!&#039;&#039;&#039; Les plugins et les modules du site public sont automatiquement installés avec le client à 0 (site), mais vous devez tout de même indiquer le client dans une mise à jour ou il sera mis par défaut à 1 (administrator) et, du coup, la mise à jour trouvée ne sera pas affichée parce qu&#039;elle ne correspondra à aucune extension. Les composants sont automatiquement installés avec un client à &amp;quot;administrator&amp;quot;, ce qui est la valeur actuelle par défaut.&lt;br /&gt;
** &#039;&#039;&#039;Attention&#039;&#039;&#039; : Concernant Joomla! 4.0 seule une chaîne de caractère est autorisée. L&#039;utilisation de nombres pour le champ client a été déprécié en 2012 et supprimé de Joomla! 4.0 (remplacer &amp;quot;0&amp;quot; par &amp;quot;site&amp;quot; et &amp;quot;1&amp;quot; par &amp;quot;administrator&amp;quot;).&lt;br /&gt;
** &#039;&#039;&#039;Attention&#039;&#039;&#039; : le nom de la balise est &#039;&#039;&#039;&amp;lt;client&amp;gt;&#039;&#039;&#039; pour Joomla! 2.5 et &#039;&#039;&#039;&amp;lt;client_id&amp;gt;&#039;&#039;&#039; pour les versions 1.6 et 1.7. Si vous utilisez &amp;lt;client_id&amp;gt; plutôt que de &amp;lt;client&amp;gt; sur un site de 2.5, la balise sera ignorée.&lt;br /&gt;
* &#039;&#039;&#039;version&#039;&#039;&#039; - les références de la version (obligatoire)&lt;br /&gt;
* &#039;&#039;&#039;infourl&#039;&#039;&#039; - l&#039;URL pour diriger les utilisateurs vers des informations complémentaires concernant la mise à jour (facultatif).&lt;br /&gt;
* &#039;&#039;&#039;downloads&#039;&#039;&#039; - la section qui liste tous les emplacements pour le téléchargement.&lt;br /&gt;
** &#039;&#039;&#039;downloadurl&#039;&#039;&#039; - l&#039;URL à partir de laquelle il est possible de télécharger l&#039;extension. La balise &amp;lt;downloadurl&amp;gt; doit contenir deux paramètres obligatoires :&lt;br /&gt;
*** &#039;&#039;&#039;type&#039;&#039;&#039; - le type du package (complète ou mise à jour).&lt;br /&gt;
*** &#039;&#039;&#039;format&#039;&#039;&#039; - Le format de l&#039;archive (zip, tar, etc.).&lt;br /&gt;
** &#039;&#039;&#039;downloadsource&#039;&#039;&#039; - Facultatif. Depuis la version Joomlaǃ 3.8.3., une URL alternative depuis laquelle il est possible de télécharger l&#039;extension lorsque la connexion depuis &amp;lt;downloadurl&amp;gt; échoue. Plusieurs balises &amp;lt;downloadsource&amp;gt; sont autorisées. La balise  &amp;lt;downloadsource&amp;gt; nécessite de renseigner deux paramètres obligatoires&amp;amp;nbsp;:&lt;br /&gt;
*** &#039;&#039;&#039;type&#039;&#039;&#039; - Le type du package (complète ou mise à jour).&lt;br /&gt;
*** &#039;&#039;&#039;format&#039;&#039;&#039; - Le format de l&#039;archive (zip, tar, etc.).&lt;br /&gt;
** &#039;&#039;&#039;NB&#039;&#039;&#039; - il ne doit pas y avoir de saut à la ligne avant ou après l&#039;URL&amp;amp;nbsp;; tout doit être écrit sur une seule est même ligne où vous aurez une erreur de connexion au serveur&amp;amp;nbsp;: requête malformée quand la mise à jour sera exécutée&lt;br /&gt;
* &#039;&#039;&#039;changelogurl&#039;&#039;&#039; - Un lien vers un fichier xml du journal des modifications. Les versions Joomlaǃ 4.0 et ultérieures vous permettront d&#039;afficher un bouton vers le journal des modifications dans la page de mise à jour de l&#039;extension. Pour plus de détails pour utiliser cela, consulter&amp;amp;nbsp;: [[Adding changelog to your manifest file]]&lt;br /&gt;
* &#039;&#039;&#039;tags&#039;&#039;&#039; - Une liste de mots clés pertinents pour cette version. Les versions Joomla! 3.4 et suivantes utilisent cela pour déterminer le niveau de stabilité de la mise à jour. Les valeurs des tags valides sont&amp;amp;nbsp;:&lt;br /&gt;
** &#039;&#039;dev&#039;&#039; : versions de développement, très instables et pré-alpha (par exemple, les nightly builds).&lt;br /&gt;
** &#039;&#039;alpha&#039;&#039; : Niveau de qualité de logiciel Alpha (fonctionnalités non implémentées, bogues bloquants)&lt;br /&gt;
** &#039;&#039;beta&#039;&#039; : Niveau de qualité de logiciel Beta (toutes les fonctionnalités sont implémentées, possibilité de bogues bloquants, certitude de présence de bogues mineurs)&lt;br /&gt;
** &#039;&#039;rc&#039;&#039; : Niveau de qualité de logiciel Release Candidate (plus de bogues bloquants, des bogues mineurs peuvent encore subsister)&lt;br /&gt;
** &#039;&#039;stable&#039;&#039; : Niveau de qualité de logiciel Production. Tous les autres tags sont actuellement ignorés. Si vous fournissez plus d&#039;un tag contenant l&#039;un des mots clés de stabilité du code ci-dessus, seul le DERNIER tag sera pris en compte. Si aucun tag n&#039;est fourni, Joomla! va considérer que la version est stable.&lt;br /&gt;
* &#039;&#039;&#039;maintainer&#039;&#039;&#039; – Le nom de la personne qui maintient l&#039;extension (similaire à la balise &amp;lt;author&amp;gt; dans le manifest) (optionnel)&lt;br /&gt;
* &#039;&#039;&#039;maintainerurl&#039;&#039;&#039; – Le site web de la personne qui maintient l&#039;extension (similaire à la balise &amp;lt;authorUrl&amp;gt; du manifest) (optionnel)&lt;br /&gt;
* &#039;&#039;&#039;section&#039;&#039;&#039; – Facultatif (utilisation inconnue)&lt;br /&gt;
* &#039;&#039;&#039;targetplatform&#039;&#039;&#039; – Une balise pour définir les exigences de la plateforme (depuis la version {{ JVer| 3.10 }} ceci est également utilisé pour détecter la compatibilité des extensions pour le composant de mise à jour de Joomla), et qui a besoin des éléments suivant&amp;amp;nbsp;ː&lt;br /&gt;
** &#039;&#039;&#039;name&#039;&#039;&#039; – Le nom de la dépendance de la plateforme&amp;amp;nbsp;; actuellement, SEUL &amp;quot;joomla&amp;quot; est supporté&lt;br /&gt;
** &#039;&#039;&#039;version&#039;&#039;&#039;– La version de Joomla! prenant en charge l&#039;extension.&lt;br /&gt;
** &#039;&#039;&#039;min_dev_level&#039;&#039;&#039; et &#039;&#039;&#039;max_dev_level&#039;&#039;&#039; – Ces attributs ont été ajoutés en 3.0.1 pour permettre de sélectionner une plateforme cible pour un certain niveau de développement (&amp;quot;z&amp;quot; dans x.y.z). Ils sont optionnels. Vous pouvez en spécifier un seul ou les deux. S&#039;il sont omis, les niveaux de développements correspondent tous. Par exemple, la balise suivante inclut les versions 4.0.0 et 4.0.1. &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;4.0&amp;quot; min_dev_level=&amp;quot;0&amp;quot; max_dev_level=&amp;quot;1&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*** &#039;&#039;&#039;Note :&#039;&#039;&#039; Si votre extension est compatible Joomla! 2.5 et/ou 3.1, vous devrez avoir des définitions séparées de &amp;lt;update&amp;gt; pour chaque version à cause de la manière dans le moteur de mise à jour va vérifier la version, si vous spécifiez une valeur. Cependant, pour montrer votre extension sur toutes les versions Joomla qui supportent les mises à jour automatiques (et de fait indique la compatibilité avec toutes les versions futures de Joomla dans le système de mise à jour de Joomla), ajoutez &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;.*&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;. Si vous voulez que la mise à jour de votre extension s&#039;affiche pour toutes les versions {{JVer|3.x}}, alors plutôt que de spécifier une version dans le tag de version, ajoutez &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.[012345]&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;. Ceci va montrer la mise à jour dans toutes les versions 3.x de 3.0 à 3.5. Si vous voulez inclure la version 3.10, vous pouvez utiliser un &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; comme ceci&amp;amp;nbsp;: &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.[012345]|10&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;. Si vous voulez montrer les mises à jour pour toutes les versions 3.8.x et toutes les versions 3.10.x, vous pouvez utiliser &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.(8|10)&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;php_minimum&#039;&#039;&#039; – Depuis la version 3.2.2, une version minimale PHP supportée peut être fournie dans le flux de mise à jour. Si le serveur n&#039;a pas cette version minimale, un message indique à l&#039;utilisateur que la mise à jour est accessible mais ne peut pas être installée du fait d&#039;une exigence non couverte.&lt;br /&gt;
* &#039;&#039;&#039;supported_databases&#039;&#039;&#039; – Depuis la version 3.7, une vérification de la base de données et de sa version minimale supportée peut être fournie dans le flux de mise à jour. Lorsque le serveur n&#039;a pas cette version minimale, un message indique à l&#039;utilisateur que la mise à jour est accessible mais ne peut pas être installée du fait d&#039;une exigence non couverte. A noter&amp;amp;nbsp;: [https://github.com/joomla/joomla-cms/pull/26079 Comme pour la version 3.9.12] il y a également un cas spécial pour mariadb et ainsi vous pouvez indiquer une version spécifique minimale pour cela aussi.&lt;br /&gt;
** Un exemple pourrait être&amp;amp;nbsp;: &amp;lt;code&amp;gt;&amp;lt;supported_databases mysql=&amp;quot;5.5.3&amp;quot; mariadb=&amp;quot;10.1&amp;quot; postgresql=&amp;quot;9.2&amp;quot; mssql=&amp;quot;10.50.1600.1&amp;quot; /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;sha256&#039;&#039;&#039;, &#039;&#039;&#039;sha384&#039;&#039;&#039;, &#039;&#039;&#039;sha512&#039;&#039;&#039; – Facultatif. Depuis la version Joomlaǃ 3.9.0, vous pouvez ajouter des checksums sur vos fichiers pour ces formats hash. Notez que dans Joomlaǃ 3, seule une information est présente dans &#039;&#039;&#039;mises à jour&#039;&#039;&#039; si un checksum n&#039;est pas correct. C&#039;est tout. La mise à jour ne s&#039;arrête pas pour autant. Pour les mises à jour avec Joomlaǃ 4 et les installations, si un checksum fourni n&#039;est pas correct, alors la mise à jour s&#039;arrêtera.&lt;br /&gt;
&lt;br /&gt;
La définition d&#039;un &amp;lt;update&amp;gt; séparé sera requis pour chaque version de l&#039;extension que vous mettez à disposition.&lt;br /&gt;
&lt;br /&gt;
Les valeurs de &#039;&#039;&#039;element&#039;&#039;&#039;, &#039;&#039;&#039;type&#039;&#039;&#039;, &#039;&#039;&#039;client_id&#039;&#039;&#039; et &#039;&#039;&#039;folder&#039;&#039;&#039; doivent correspondre à ceux de la table #__extensions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important pour les plugins :&#039;&#039;&#039; les plugins doivent intégrer les éléments &amp;lt;tt&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;&amp;lt;client&amp;gt;&amp;lt;/tt&amp;gt; pour fonctionner correctement.&lt;br /&gt;
== Résolution de problèmes ==&lt;br /&gt;
* &#039;&#039;&#039;Le script de mise à jour SQL n&#039;est pas exécuté durant une mise à jour.&#039;&#039;&#039; &lt;br /&gt;
:Si le script de mise à jour SQL (par exemple, dans le répertoire &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt;) n&#039;est pas exécuté durant le processus de mise à jour, cela peut être dû au fait qu&#039;il n&#039;y avait pas de numéro de version dans la table &amp;lt;code&amp;gt;#__schemas&amp;lt;/code&amp;gt; de cette extension &#039;&#039;avant la mise à jour&#039;&#039;. Cette valeur est déterminée par le dernier nom de script dans le répertoire de mises à jour SQL. Si cette valeur est vierge, aucun script SQL ne sera exécuté durant le cycle de mise à jour. Pour vous assurer que cette valeur est correctement spécifiée, assurez vous que vous avez un script SQL dans ce répertoire dont le nom est le numéro de version (par exemple, 1.2.3.sql si la version est 1.2.3). Le fichier peut être vide ou avoir juste une ligne de commentaire SQL. Ceci doit avoir été fait dans une version antérieure — celle avant la mise à jour. Comme alternative, vous pouvez ajouter cette valeur dans la table &amp;lt;code&amp;gt;#__schemas&amp;lt;/code&amp;gt; en utilisant une requête SQL. &lt;br /&gt;
&lt;br /&gt;
== Outils de support ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Development/fr|Développement]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Deploying_an_Update_Server/32/fr&amp;diff=995810</id>
		<title>Translations:Deploying an Update Server/32/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Deploying_an_Update_Server/32/fr&amp;diff=995810"/>
		<updated>2022-12-01T14:46:09Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &#039;&#039;&#039;changelogurl&#039;&#039;&#039; - Un lien vers un fichier xml du journal des modifications. Les versions Joomlaǃ 4.0 et ultérieures vous permettront d&#039;afficher un bouton vers le journal des modifications dans la page de mise à jour de l&#039;extension. Pour plus de détails pour utiliser cela, consulter&amp;amp;nbsp;: [[Adding changelog to your manifest file]]&lt;br /&gt;
* &#039;&#039;&#039;tags&#039;&#039;&#039; - Une liste de mots clés pertinents pour cette version. Les versions Joomla! 3.4 et suivantes utilisent cela pour déterminer le niveau de stabilité de la mise à jour. Les valeurs des tags valides sont&amp;amp;nbsp;:&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Deploying_an_Update_Server/fr&amp;diff=995809</id>
		<title>Deploying an Update Server/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Deploying_an_Update_Server/fr&amp;diff=995809"/>
		<updated>2022-12-01T14:42:23Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=2.5|status=eos}}{{Joomla version|version=3.x|}}{{Joomla version|version=4.x|}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
__TOC__&lt;br /&gt;
Ce didacticiel a pour vocation d&#039;aider les développeurs à créer un serveur de mise à jour pour une intégration avec le système de mise à jour implémenté dans Joomla. En ajoutant une liste de serveurs de mise à jour dans le fichier manifest de leurs extensions, les développeurs vont permettre aux utilisateurs de mettre à jour leurs extensions via le gestionnaire des mises à jour des extensions (voir l&#039;écran d&#039;aide [[S:MyLanguage/Help31:Extensions Extension Manager Update|Mise à Jour de Joomla 3.x]]) en un clic seulement.&lt;br /&gt;
== Définition d&#039;un serveur de mise à jour ==&lt;br /&gt;
Pour pouvoir utiliser cette fonction, un serveur de mise à jour doit être défini dans le fichier &amp;quot;manifest&amp;quot; de votre extension. Cette définition peut être utilisée pour toutes les extensions compatibles avec les versions 2.5 et plus récentes de Joomla! mais n&#039;est pas disponible pour les templates. Vous pouvez utiliser deux options pour votre type de serveur&amp;amp;nbsp;: collection ou extension. Celles-ci seront expliquées en détail par la suite. Ce code doit être ajouté au fichier &amp;quot;manifest&amp;quot; de l&#039;extension, à l&#039;intérieur de la balise pour l&#039;élément &#039;&#039;extension&#039;&#039;. Le serveur de mise à jour est définie comme suit pour chaque type :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;extension&amp;gt;&lt;br /&gt;
 &amp;lt;...&amp;gt;&lt;br /&gt;
 &amp;lt;updateservers&amp;gt;&lt;br /&gt;
    &amp;lt;server type=&amp;quot;collection&amp;quot;&amp;gt;https://example.com/list.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;My Extension&#039;s Updates&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
 &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
 &amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Plusieurs serveurs peuvent être définis à l&#039;aide de balises &amp;lt;tt&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/tt&amp;gt;. Si vous disposez de plusieurs serveurs de mise à jour, vous pouvez indiquer une priorité différente pour chacun d&#039;eux. De cette manière, vous contrôlez l&#039;ordre dans lequel les serveurs de mise à jour vont être utilisés.&lt;br /&gt;
&lt;br /&gt;
== Types de serveur ==&lt;br /&gt;
=== Collection ===&lt;br /&gt;
Le serveur de type &amp;lt;tt&amp;gt;&amp;quot;collection&amp;quot;&amp;lt;/tt&amp;gt; permet aux développeurs de définir un fichier &amp;quot;manifest&amp;quot; pour une extension afin de charger des mises à jour à partir d&#039;une collection. Ce type de serveur peut être utilisé par les développeurs qui souhaitent définir les mises à jour pour leurs extensions dans un seul fichier (non recommandé) ou si leurs extensions disposent de plusieurs sous-extensions qui ne sont pas distribués ou mises à jour toutes en même temps (comme un type pack d&#039;extension). L&#039;exemple ci-dessous est la définition de &amp;lt;tt&amp;gt;&amp;quot;collection&amp;quot;&amp;lt;/tt&amp;gt; utilisée par le programme de mise à jour du noyau Joomlaǃ :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;extensionset name=&amp;quot;Joomla Core&amp;quot; description=&amp;quot;Joomla! Core&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;extension name=&amp;quot;Joomla&amp;quot; element=&amp;quot;joomla&amp;quot; type=&amp;quot;file&amp;quot; version=&amp;quot;1.7.0&amp;quot; detailsurl=&amp;quot;https://update.joomla.org/core/extension.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/extensionset&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Toutes les définitions doivent être présentes entre les balises &amp;lt;tt&amp;gt;&amp;lt;extensionset&amp;gt;&amp;lt;/tt&amp;gt; dans votre &amp;quot;manifest&amp;quot; collection. La balise &amp;lt;tt&amp;gt;&amp;lt;extensionset&amp;gt;&amp;lt;/tt&amp;gt; peut avoir deux paramètres facultatifs : &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;description&amp;lt;/tt&amp;gt;. Pour chaque extension que cette collection références, une balise &amp;lt;tt&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/tt&amp;gt; est nécessaire. La balise &amp;lt;tt&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/tt&amp;gt; présente les paramètres suivants, qui sont tous requis pour que le processus de mise à jour se déroule correctement :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (nom) - le nom de l&#039;extension&lt;br /&gt;
* &#039;&#039;&#039;element&#039;&#039;&#039; (élément) - le nom non traduit de l&#039;extension c&#039;est à dire mod_custom&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; - le type d&#039;extension (composant, module, plugin, etc.)&lt;br /&gt;
* &#039;&#039;&#039;version&#039;&#039;&#039; - la dernière version de l&#039;extension&lt;br /&gt;
* &#039;&#039;&#039;detailsurl&#039;&#039;&#039; - L&#039;URL du fichier XML qui contient les définitions indivielles de mises à jour de l&#039;extension&lt;br /&gt;
=== Extensions ===&lt;br /&gt;
Le type de serveur d&#039;&amp;lt;tt&amp;gt;&amp;quot;extension&amp;quot;&amp;lt;/tt&amp;gt; permet aux développeurs de définir un manifest d&#039;extension pour obtenir les mises à jour depuis un seul manifest d&#039;extension. Tous les manifests de collection pointent finalement vers ce fichier XML. Toutes les mises à jour dans ce fichier doivent être définies après une balise &amp;lt;tt&amp;gt;&amp;lt;updates&amp;gt;&amp;lt;/tt&amp;gt; au début du fichier. L&#039;exemple ci-dessous est la définition de la mise à jour pour la version Joomla! 3.9.6&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;updates&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;Joomla! 3.9&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;description&amp;gt;Joomla! 3.9 CMS&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;element&amp;gt;joomla&amp;lt;/element&amp;gt;&lt;br /&gt;
		&amp;lt;type&amp;gt;file&amp;lt;/type&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;3.9.6&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;infourl title=&amp;quot;Joomla!&amp;quot;&amp;gt;https://www.joomla.org/announcements/release-news/5765-joomla-3-9-6-release.html&amp;lt;/infourl&amp;gt;&lt;br /&gt;
		&amp;lt;downloads&amp;gt;&lt;br /&gt;
			&amp;lt;downloadurl type=&amp;quot;full&amp;quot; format=&amp;quot;zip&amp;quot;&amp;gt;https://downloads.joomla.org/cms/joomla3/3-9-6/Joomla_3.9.6-Stable-Update_Package.zip&amp;lt;/downloadurl&amp;gt;&lt;br /&gt;
			&amp;lt;downloadsource type=&amp;quot;full&amp;quot; format=&amp;quot;zip&amp;quot;&amp;gt;https://github.com/joomla/joomla-cms/releases/download/3.9.6/Joomla_3.9.6-Stable-Update_Package.zip&amp;lt;/downloadsource&amp;gt;&lt;br /&gt;
			&amp;lt;downloadsource type=&amp;quot;full&amp;quot; format=&amp;quot;zip&amp;quot;&amp;gt;https://update.joomla.org/releases/3.9.6/Joomla_3.9.6-Stable-Update_Package.zip&amp;lt;/downloadsource&amp;gt;&lt;br /&gt;
		&amp;lt;/downloads&amp;gt;&lt;br /&gt;
		&amp;lt;tags&amp;gt;&lt;br /&gt;
			&amp;lt;tag&amp;gt;stable&amp;lt;/tag&amp;gt;&lt;br /&gt;
		&amp;lt;/tags&amp;gt;&lt;br /&gt;
		&amp;lt;sha256&amp;gt;05157273aadd3045564ee44373ea3643b437fa5321d17993a3119b38b04578e2&amp;lt;/sha256&amp;gt;&lt;br /&gt;
		&amp;lt;sha384&amp;gt;ebd9b0666fbe84e20a420a4bcd6c10d306fc4dee4edbbe8e2133c85f0fb84e59be5a50aa97cb38c068b77f77f6bbc091&amp;lt;/sha384&amp;gt;&lt;br /&gt;
		&amp;lt;sha512&amp;gt;a4c47644ceeaeec28944e0c74160203cf12037e0ea1439022e95055dfb6716de172667ce6d9164f12bb519d9cfcf1fdc728abea00f853b41debc7d2740f2b711&amp;lt;/sha512&amp;gt;&lt;br /&gt;
		&amp;lt;maintainer&amp;gt;Joomla! Production Department&amp;lt;/maintainer&amp;gt;&lt;br /&gt;
		&amp;lt;maintainerurl&amp;gt;https://www.joomla.org&amp;lt;/maintainerurl&amp;gt;&lt;br /&gt;
		&amp;lt;section&amp;gt;STS&amp;lt;/section&amp;gt;&lt;br /&gt;
		&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.[789]&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;php_minimum&amp;gt;5.3.10&amp;lt;/php_minimum&amp;gt;&lt;br /&gt;
&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/updates&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section suivante décrit les éléments d&#039;une mise à jour unique.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; - le nom de l&#039;extension, ce nom apparaîtra dans la colonne &amp;quot;Nom&amp;quot; de la vue de mise à jour du gestionnaire d&#039;extension (obligatoire).&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; – une courte description de l&#039;extension (facultatif) — si vous choisissez d&#039;utiliser &amp;lt;tt&amp;gt;&amp;lt;![CDATA[]]&amp;gt;&amp;lt;/tt&amp;gt;, les guillemets doubles vont briser le formatage HTML. Utilisez des guillemets simples avec vos entités HTML.&lt;br /&gt;
* &#039;&#039;&#039;element&#039;&#039;&#039; - le nom de l&#039;extension installée (obligatoire). Pour les plugins, ce doit être le même que la valeur de l&#039;attribut du plugin  dans le manifest du fichier principal du plugin. Pour &amp;lt;tt&amp;gt;&amp;lt;filename plugin=&amp;quot;nomduplugin&amp;quot;&amp;gt;nomduplugin.php&amp;lt;/filename&amp;gt;&amp;lt;/tt&amp;gt;, la valeur de l&#039;élément doit être &#039;&#039;&#039;nomduplugin&#039;&#039;&#039;. &lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; - le type de l&#039;extension (composant, module, plugin, etc.) (obligatoire).&lt;br /&gt;
* &#039;&#039;&#039;folder&#039;&#039;&#039; (dossier) - spécifique aux plugins, cette balise décrit le type du plugin mis à jour (contenu, système, etc.) (obligatoire pour les plugins).&lt;br /&gt;
* &#039;&#039;&#039;client&#039;&#039;&#039; – Le client de l&#039;extension. Requis pour les modules et modèles de site depuis la version 3.2.0. – Les valeurs possibles actuellement sont &amp;quot;site&amp;quot; ou &amp;quot;administrator&amp;quot;. &#039;&#039;&#039;Attention&amp;amp;nbsp;!&#039;&#039;&#039; Les plugins et les modules du site public sont automatiquement installés avec le client à 0 (site), mais vous devez tout de même indiquer le client dans une mise à jour ou il sera mis par défaut à 1 (administrator) et, du coup, la mise à jour trouvée ne sera pas affichée parce qu&#039;elle ne correspondra à aucune extension. Les composants sont automatiquement installés avec un client à &amp;quot;administrator&amp;quot;, ce qui est la valeur actuelle par défaut.&lt;br /&gt;
** &#039;&#039;&#039;Attention&#039;&#039;&#039; : Concernant Joomla! 4.0 seule une chaîne de caractère est autorisée. L&#039;utilisation de nombres pour le champ client a été déprécié en 2012 et supprimé de Joomla! 4.0 (remplacer &amp;quot;0&amp;quot; par &amp;quot;site&amp;quot; et &amp;quot;1&amp;quot; par &amp;quot;administrator&amp;quot;).&lt;br /&gt;
** &#039;&#039;&#039;Attention&#039;&#039;&#039; : le nom de la balise est &#039;&#039;&#039;&amp;lt;client&amp;gt;&#039;&#039;&#039; pour Joomla! 2.5 et &#039;&#039;&#039;&amp;lt;client_id&amp;gt;&#039;&#039;&#039; pour les versions 1.6 et 1.7. Si vous utilisez &amp;lt;client_id&amp;gt; plutôt que de &amp;lt;client&amp;gt; sur un site de 2.5, la balise sera ignorée.&lt;br /&gt;
* &#039;&#039;&#039;version&#039;&#039;&#039; - les références de la version (obligatoire)&lt;br /&gt;
* &#039;&#039;&#039;infourl&#039;&#039;&#039; - l&#039;URL pour diriger les utilisateurs vers des informations complémentaires concernant la mise à jour (facultatif).&lt;br /&gt;
* &#039;&#039;&#039;downloads&#039;&#039;&#039; - la section qui liste tous les emplacements pour le téléchargement.&lt;br /&gt;
** &#039;&#039;&#039;downloadurl&#039;&#039;&#039; - l&#039;URL à partir de laquelle il est possible de télécharger l&#039;extension. La balise &amp;lt;downloadurl&amp;gt; doit contenir deux paramètres obligatoires :&lt;br /&gt;
*** &#039;&#039;&#039;type&#039;&#039;&#039; - le type du package (complète ou mise à jour).&lt;br /&gt;
*** &#039;&#039;&#039;format&#039;&#039;&#039; - Le format de l&#039;archive (zip, tar, etc.).&lt;br /&gt;
** &#039;&#039;&#039;downloadsource&#039;&#039;&#039; - Facultatif. Depuis la version Joomlaǃ 3.8.3., une URL alternative depuis laquelle il est possible de télécharger l&#039;extension lorsque la connexion depuis &amp;lt;downloadurl&amp;gt; échoue. Plusieurs balises &amp;lt;downloadsource&amp;gt; sont autorisées. La balise  &amp;lt;downloadsource&amp;gt; nécessite de renseigner deux paramètres obligatoires&amp;amp;nbsp;:&lt;br /&gt;
*** &#039;&#039;&#039;type&#039;&#039;&#039; - Le type du package (complète ou mise à jour).&lt;br /&gt;
*** &#039;&#039;&#039;format&#039;&#039;&#039; - Le format de l&#039;archive (zip, tar, etc.).&lt;br /&gt;
** &#039;&#039;&#039;NB&#039;&#039;&#039; - il ne doit pas y avoir de saut à la ligne avant ou après l&#039;URL&amp;amp;nbsp;; tout doit être écrit sur une seule est même ligne où vous aurez une erreur de connexion au serveur&amp;amp;nbsp;: requête malformée quand la mise à jour sera exécutée&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;tags&#039;&#039;&#039; - Une liste de mots clés pertinents pour cette version. Les versions Joomla! 3.4 et suivantes utilisent cela pour déterminer le niveau de stabilité de la mise à jour. Les valeurs des tags valides sont&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
** &#039;&#039;dev&#039;&#039; : versions de développement, très instables et pré-alpha (par exemple, les nightly builds).&lt;br /&gt;
** &#039;&#039;alpha&#039;&#039; : Niveau de qualité de logiciel Alpha (fonctionnalités non implémentées, bogues bloquants)&lt;br /&gt;
** &#039;&#039;beta&#039;&#039; : Niveau de qualité de logiciel Beta (toutes les fonctionnalités sont implémentées, possibilité de bogues bloquants, certitude de présence de bogues mineurs)&lt;br /&gt;
** &#039;&#039;rc&#039;&#039; : Niveau de qualité de logiciel Release Candidate (plus de bogues bloquants, des bogues mineurs peuvent encore subsister)&lt;br /&gt;
** &#039;&#039;stable&#039;&#039; : Niveau de qualité de logiciel Production. Tous les autres tags sont actuellement ignorés. Si vous fournissez plus d&#039;un tag contenant l&#039;un des mots clés de stabilité du code ci-dessus, seul le DERNIER tag sera pris en compte. Si aucun tag n&#039;est fourni, Joomla! va considérer que la version est stable.&lt;br /&gt;
* &#039;&#039;&#039;maintainer&#039;&#039;&#039; – Le nom de la personne qui maintient l&#039;extension (similaire à la balise &amp;lt;author&amp;gt; dans le manifest) (optionnel)&lt;br /&gt;
* &#039;&#039;&#039;maintainerurl&#039;&#039;&#039; – Le site web de la personne qui maintient l&#039;extension (similaire à la balise &amp;lt;authorUrl&amp;gt; du manifest) (optionnel)&lt;br /&gt;
* &#039;&#039;&#039;section&#039;&#039;&#039; – Facultatif (utilisation inconnue)&lt;br /&gt;
* &#039;&#039;&#039;targetplatform&#039;&#039;&#039; – Une balise pour définir les exigences de la plateforme (depuis la version {{ JVer| 3.10 }} ceci est également utilisé pour détecter la compatibilité des extensions pour le composant de mise à jour de Joomla), et qui a besoin des éléments suivant&amp;amp;nbsp;ː&lt;br /&gt;
** &#039;&#039;&#039;name&#039;&#039;&#039; – Le nom de la dépendance de la plateforme&amp;amp;nbsp;; actuellement, SEUL &amp;quot;joomla&amp;quot; est supporté&lt;br /&gt;
** &#039;&#039;&#039;version&#039;&#039;&#039;– La version de Joomla! prenant en charge l&#039;extension.&lt;br /&gt;
** &#039;&#039;&#039;min_dev_level&#039;&#039;&#039; et &#039;&#039;&#039;max_dev_level&#039;&#039;&#039; – Ces attributs ont été ajoutés en 3.0.1 pour permettre de sélectionner une plateforme cible pour un certain niveau de développement (&amp;quot;z&amp;quot; dans x.y.z). Ils sont optionnels. Vous pouvez en spécifier un seul ou les deux. S&#039;il sont omis, les niveaux de développements correspondent tous. Par exemple, la balise suivante inclut les versions 4.0.0 et 4.0.1. &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;4.0&amp;quot; min_dev_level=&amp;quot;0&amp;quot; max_dev_level=&amp;quot;1&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*** &#039;&#039;&#039;Note :&#039;&#039;&#039; Si votre extension est compatible Joomla! 2.5 et/ou 3.1, vous devrez avoir des définitions séparées de &amp;lt;update&amp;gt; pour chaque version à cause de la manière dans le moteur de mise à jour va vérifier la version, si vous spécifiez une valeur. Cependant, pour montrer votre extension sur toutes les versions Joomla qui supportent les mises à jour automatiques (et de fait indique la compatibilité avec toutes les versions futures de Joomla dans le système de mise à jour de Joomla), ajoutez &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;.*&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;. Si vous voulez que la mise à jour de votre extension s&#039;affiche pour toutes les versions {{JVer|3.x}}, alors plutôt que de spécifier une version dans le tag de version, ajoutez &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.[012345]&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;. Ceci va montrer la mise à jour dans toutes les versions 3.x de 3.0 à 3.5. Si vous voulez inclure la version 3.10, vous pouvez utiliser un &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; comme ceci&amp;amp;nbsp;: &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.[012345]|10&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;. Si vous voulez montrer les mises à jour pour toutes les versions 3.8.x et toutes les versions 3.10.x, vous pouvez utiliser &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.(8|10)&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;php_minimum&#039;&#039;&#039; – Depuis la version 3.2.2, une version minimale PHP supportée peut être fournie dans le flux de mise à jour. Si le serveur n&#039;a pas cette version minimale, un message indique à l&#039;utilisateur que la mise à jour est accessible mais ne peut pas être installée du fait d&#039;une exigence non couverte.&lt;br /&gt;
* &#039;&#039;&#039;supported_databases&#039;&#039;&#039; – Depuis la version 3.7, une vérification de la base de données et de sa version minimale supportée peut être fournie dans le flux de mise à jour. Lorsque le serveur n&#039;a pas cette version minimale, un message indique à l&#039;utilisateur que la mise à jour est accessible mais ne peut pas être installée du fait d&#039;une exigence non couverte. A noter&amp;amp;nbsp;: [https://github.com/joomla/joomla-cms/pull/26079 Comme pour la version 3.9.12] il y a également un cas spécial pour mariadb et ainsi vous pouvez indiquer une version spécifique minimale pour cela aussi.&lt;br /&gt;
** Un exemple pourrait être&amp;amp;nbsp;: &amp;lt;code&amp;gt;&amp;lt;supported_databases mysql=&amp;quot;5.5.3&amp;quot; mariadb=&amp;quot;10.1&amp;quot; postgresql=&amp;quot;9.2&amp;quot; mssql=&amp;quot;10.50.1600.1&amp;quot; /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;sha256&#039;&#039;&#039;, &#039;&#039;&#039;sha384&#039;&#039;&#039;, &#039;&#039;&#039;sha512&#039;&#039;&#039; – Facultatif. Depuis la version Joomlaǃ 3.9.0, vous pouvez ajouter des checksums sur vos fichiers pour ces formats hash. Notez que dans Joomlaǃ 3, seule une information est présente dans &#039;&#039;&#039;mises à jour&#039;&#039;&#039; si un checksum n&#039;est pas correct. C&#039;est tout. La mise à jour ne s&#039;arrête pas pour autant. Pour les mises à jour avec Joomlaǃ 4 et les installations, si un checksum fourni n&#039;est pas correct, alors la mise à jour s&#039;arrêtera.&lt;br /&gt;
&lt;br /&gt;
La définition d&#039;un &amp;lt;update&amp;gt; séparé sera requis pour chaque version de l&#039;extension que vous mettez à disposition.&lt;br /&gt;
&lt;br /&gt;
Les valeurs de &#039;&#039;&#039;element&#039;&#039;&#039;, &#039;&#039;&#039;type&#039;&#039;&#039;, &#039;&#039;&#039;client_id&#039;&#039;&#039; et &#039;&#039;&#039;folder&#039;&#039;&#039; doivent correspondre à ceux de la table #__extensions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important pour les plugins :&#039;&#039;&#039; les plugins doivent intégrer les éléments &amp;lt;tt&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;&amp;lt;client&amp;gt;&amp;lt;/tt&amp;gt; pour fonctionner correctement.&lt;br /&gt;
== Résolution de problèmes ==&lt;br /&gt;
* &#039;&#039;&#039;Le script de mise à jour SQL n&#039;est pas exécuté durant une mise à jour.&#039;&#039;&#039; &lt;br /&gt;
:Si le script de mise à jour SQL (par exemple, dans le répertoire &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt;) n&#039;est pas exécuté durant le processus de mise à jour, cela peut être dû au fait qu&#039;il n&#039;y avait pas de numéro de version dans la table &amp;lt;code&amp;gt;#__schemas&amp;lt;/code&amp;gt; de cette extension &#039;&#039;avant la mise à jour&#039;&#039;. Cette valeur est déterminée par le dernier nom de script dans le répertoire de mises à jour SQL. Si cette valeur est vierge, aucun script SQL ne sera exécuté durant le cycle de mise à jour. Pour vous assurer que cette valeur est correctement spécifiée, assurez vous que vous avez un script SQL dans ce répertoire dont le nom est le numéro de version (par exemple, 1.2.3.sql si la version est 1.2.3). Le fichier peut être vide ou avoir juste une ligne de commentaire SQL. Ceci doit avoir été fait dans une version antérieure — celle avant la mise à jour. Comme alternative, vous pouvez ajouter cette valeur dans la table &amp;lt;code&amp;gt;#__schemas&amp;lt;/code&amp;gt; en utilisant une requête SQL. &lt;br /&gt;
&lt;br /&gt;
== Outils de support ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Development/fr|Développement]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Deploying_an_Update_Server/24/fr&amp;diff=995808</id>
		<title>Translations:Deploying an Update Server/24/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Deploying_an_Update_Server/24/fr&amp;diff=995808"/>
		<updated>2022-12-01T14:42:20Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;** &#039;&#039;&#039;Attention&#039;&#039;&#039; : Concernant Joomla! 4.0 seule une chaîne de caractère est autorisée. L&#039;utilisation de nombres pour le champ client a été déprécié en 2012 et supprimé de Joomla! 4.0 (remplacer &amp;quot;0&amp;quot; par &amp;quot;site&amp;quot; et &amp;quot;1&amp;quot; par &amp;quot;administrator&amp;quot;).&lt;br /&gt;
** &#039;&#039;&#039;Attention&#039;&#039;&#039; : le nom de la balise est &#039;&#039;&#039;&amp;lt;client&amp;gt;&#039;&#039;&#039; pour Joomla! 2.5 et &#039;&#039;&#039;&amp;lt;client_id&amp;gt;&#039;&#039;&#039; pour les versions 1.6 et 1.7. Si vous utilisez &amp;lt;client_id&amp;gt; plutôt que de &amp;lt;client&amp;gt; sur un site de 2.5, la balise sera ignorée.&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Deploying_an_Update_Server/fr&amp;diff=995807</id>
		<title>Deploying an Update Server/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Deploying_an_Update_Server/fr&amp;diff=995807"/>
		<updated>2022-12-01T14:39:48Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=2.5|status=eos}}{{Joomla version|version=3.x|}}{{Joomla version|version=4.x|}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
__TOC__&lt;br /&gt;
Ce didacticiel a pour vocation d&#039;aider les développeurs à créer un serveur de mise à jour pour une intégration avec le système de mise à jour implémenté dans Joomla. En ajoutant une liste de serveurs de mise à jour dans le fichier manifest de leurs extensions, les développeurs vont permettre aux utilisateurs de mettre à jour leurs extensions via le gestionnaire des mises à jour des extensions (voir l&#039;écran d&#039;aide [[S:MyLanguage/Help31:Extensions Extension Manager Update|Mise à Jour de Joomla 3.x]]) en un clic seulement.&lt;br /&gt;
== Définition d&#039;un serveur de mise à jour ==&lt;br /&gt;
Pour pouvoir utiliser cette fonction, un serveur de mise à jour doit être défini dans le fichier &amp;quot;manifest&amp;quot; de votre extension. Cette définition peut être utilisée pour toutes les extensions compatibles avec les versions 2.5 et plus récentes de Joomla! mais n&#039;est pas disponible pour les templates. Vous pouvez utiliser deux options pour votre type de serveur&amp;amp;nbsp;: collection ou extension. Celles-ci seront expliquées en détail par la suite. Ce code doit être ajouté au fichier &amp;quot;manifest&amp;quot; de l&#039;extension, à l&#039;intérieur de la balise pour l&#039;élément &#039;&#039;extension&#039;&#039;. Le serveur de mise à jour est définie comme suit pour chaque type :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;extension&amp;gt;&lt;br /&gt;
 &amp;lt;...&amp;gt;&lt;br /&gt;
 &amp;lt;updateservers&amp;gt;&lt;br /&gt;
    &amp;lt;server type=&amp;quot;collection&amp;quot;&amp;gt;https://example.com/list.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;My Extension&#039;s Updates&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
 &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
 &amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Plusieurs serveurs peuvent être définis à l&#039;aide de balises &amp;lt;tt&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/tt&amp;gt;. Si vous disposez de plusieurs serveurs de mise à jour, vous pouvez indiquer une priorité différente pour chacun d&#039;eux. De cette manière, vous contrôlez l&#039;ordre dans lequel les serveurs de mise à jour vont être utilisés.&lt;br /&gt;
&lt;br /&gt;
== Types de serveur ==&lt;br /&gt;
=== Collection ===&lt;br /&gt;
Le serveur de type &amp;lt;tt&amp;gt;&amp;quot;collection&amp;quot;&amp;lt;/tt&amp;gt; permet aux développeurs de définir un fichier &amp;quot;manifest&amp;quot; pour une extension afin de charger des mises à jour à partir d&#039;une collection. Ce type de serveur peut être utilisé par les développeurs qui souhaitent définir les mises à jour pour leurs extensions dans un seul fichier (non recommandé) ou si leurs extensions disposent de plusieurs sous-extensions qui ne sont pas distribués ou mises à jour toutes en même temps (comme un type pack d&#039;extension). L&#039;exemple ci-dessous est la définition de &amp;lt;tt&amp;gt;&amp;quot;collection&amp;quot;&amp;lt;/tt&amp;gt; utilisée par le programme de mise à jour du noyau Joomlaǃ :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
 &amp;lt;extensionset name=&amp;quot;Joomla Core&amp;quot; description=&amp;quot;Joomla! Core&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;extension name=&amp;quot;Joomla&amp;quot; element=&amp;quot;joomla&amp;quot; type=&amp;quot;file&amp;quot; version=&amp;quot;1.7.0&amp;quot; detailsurl=&amp;quot;https://update.joomla.org/core/extension.xml&amp;quot;/&amp;gt;&lt;br /&gt;
 &amp;lt;/extensionset&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Toutes les définitions doivent être présentes entre les balises &amp;lt;tt&amp;gt;&amp;lt;extensionset&amp;gt;&amp;lt;/tt&amp;gt; dans votre &amp;quot;manifest&amp;quot; collection. La balise &amp;lt;tt&amp;gt;&amp;lt;extensionset&amp;gt;&amp;lt;/tt&amp;gt; peut avoir deux paramètres facultatifs : &amp;lt;tt&amp;gt;name&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;description&amp;lt;/tt&amp;gt;. Pour chaque extension que cette collection références, une balise &amp;lt;tt&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/tt&amp;gt; est nécessaire. La balise &amp;lt;tt&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/tt&amp;gt; présente les paramètres suivants, qui sont tous requis pour que le processus de mise à jour se déroule correctement :&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (nom) - le nom de l&#039;extension&lt;br /&gt;
* &#039;&#039;&#039;element&#039;&#039;&#039; (élément) - le nom non traduit de l&#039;extension c&#039;est à dire mod_custom&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; - le type d&#039;extension (composant, module, plugin, etc.)&lt;br /&gt;
* &#039;&#039;&#039;version&#039;&#039;&#039; - la dernière version de l&#039;extension&lt;br /&gt;
* &#039;&#039;&#039;detailsurl&#039;&#039;&#039; - L&#039;URL du fichier XML qui contient les définitions indivielles de mises à jour de l&#039;extension&lt;br /&gt;
=== Extensions ===&lt;br /&gt;
Le type de serveur d&#039;&amp;lt;tt&amp;gt;&amp;quot;extension&amp;quot;&amp;lt;/tt&amp;gt; permet aux développeurs de définir un manifest d&#039;extension pour obtenir les mises à jour depuis un seul manifest d&#039;extension. Tous les manifests de collection pointent finalement vers ce fichier XML. Toutes les mises à jour dans ce fichier doivent être définies après une balise &amp;lt;tt&amp;gt;&amp;lt;updates&amp;gt;&amp;lt;/tt&amp;gt; au début du fichier. L&#039;exemple ci-dessous est la définition de la mise à jour pour la version Joomla! 3.9.6&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;updates&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;name&amp;gt;Joomla! 3.9&amp;lt;/name&amp;gt;&lt;br /&gt;
		&amp;lt;description&amp;gt;Joomla! 3.9 CMS&amp;lt;/description&amp;gt;&lt;br /&gt;
		&amp;lt;element&amp;gt;joomla&amp;lt;/element&amp;gt;&lt;br /&gt;
		&amp;lt;type&amp;gt;file&amp;lt;/type&amp;gt;&lt;br /&gt;
		&amp;lt;version&amp;gt;3.9.6&amp;lt;/version&amp;gt;&lt;br /&gt;
		&amp;lt;infourl title=&amp;quot;Joomla!&amp;quot;&amp;gt;https://www.joomla.org/announcements/release-news/5765-joomla-3-9-6-release.html&amp;lt;/infourl&amp;gt;&lt;br /&gt;
		&amp;lt;downloads&amp;gt;&lt;br /&gt;
			&amp;lt;downloadurl type=&amp;quot;full&amp;quot; format=&amp;quot;zip&amp;quot;&amp;gt;https://downloads.joomla.org/cms/joomla3/3-9-6/Joomla_3.9.6-Stable-Update_Package.zip&amp;lt;/downloadurl&amp;gt;&lt;br /&gt;
			&amp;lt;downloadsource type=&amp;quot;full&amp;quot; format=&amp;quot;zip&amp;quot;&amp;gt;https://github.com/joomla/joomla-cms/releases/download/3.9.6/Joomla_3.9.6-Stable-Update_Package.zip&amp;lt;/downloadsource&amp;gt;&lt;br /&gt;
			&amp;lt;downloadsource type=&amp;quot;full&amp;quot; format=&amp;quot;zip&amp;quot;&amp;gt;https://update.joomla.org/releases/3.9.6/Joomla_3.9.6-Stable-Update_Package.zip&amp;lt;/downloadsource&amp;gt;&lt;br /&gt;
		&amp;lt;/downloads&amp;gt;&lt;br /&gt;
		&amp;lt;tags&amp;gt;&lt;br /&gt;
			&amp;lt;tag&amp;gt;stable&amp;lt;/tag&amp;gt;&lt;br /&gt;
		&amp;lt;/tags&amp;gt;&lt;br /&gt;
		&amp;lt;sha256&amp;gt;05157273aadd3045564ee44373ea3643b437fa5321d17993a3119b38b04578e2&amp;lt;/sha256&amp;gt;&lt;br /&gt;
		&amp;lt;sha384&amp;gt;ebd9b0666fbe84e20a420a4bcd6c10d306fc4dee4edbbe8e2133c85f0fb84e59be5a50aa97cb38c068b77f77f6bbc091&amp;lt;/sha384&amp;gt;&lt;br /&gt;
		&amp;lt;sha512&amp;gt;a4c47644ceeaeec28944e0c74160203cf12037e0ea1439022e95055dfb6716de172667ce6d9164f12bb519d9cfcf1fdc728abea00f853b41debc7d2740f2b711&amp;lt;/sha512&amp;gt;&lt;br /&gt;
		&amp;lt;maintainer&amp;gt;Joomla! Production Department&amp;lt;/maintainer&amp;gt;&lt;br /&gt;
		&amp;lt;maintainerurl&amp;gt;https://www.joomla.org&amp;lt;/maintainerurl&amp;gt;&lt;br /&gt;
		&amp;lt;section&amp;gt;STS&amp;lt;/section&amp;gt;&lt;br /&gt;
		&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.[789]&amp;quot; /&amp;gt;&lt;br /&gt;
		&amp;lt;php_minimum&amp;gt;5.3.10&amp;lt;/php_minimum&amp;gt;&lt;br /&gt;
&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/updates&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section suivante décrit les éléments d&#039;une mise à jour unique.&lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; - le nom de l&#039;extension, ce nom apparaîtra dans la colonne &amp;quot;Nom&amp;quot; de la vue de mise à jour du gestionnaire d&#039;extension (obligatoire).&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; – une courte description de l&#039;extension (facultatif) — si vous choisissez d&#039;utiliser &amp;lt;tt&amp;gt;&amp;lt;![CDATA[]]&amp;gt;&amp;lt;/tt&amp;gt;, les guillemets doubles vont briser le formatage HTML. Utilisez des guillemets simples avec vos entités HTML.&lt;br /&gt;
* &#039;&#039;&#039;element&#039;&#039;&#039; - le nom de l&#039;extension installée (obligatoire). Pour les plugins, ce doit être le même que la valeur de l&#039;attribut du plugin  dans le manifest du fichier principal du plugin. Pour &amp;lt;tt&amp;gt;&amp;lt;filename plugin=&amp;quot;nomduplugin&amp;quot;&amp;gt;nomduplugin.php&amp;lt;/filename&amp;gt;&amp;lt;/tt&amp;gt;, la valeur de l&#039;élément doit être &#039;&#039;&#039;nomduplugin&#039;&#039;&#039;. &lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; - le type de l&#039;extension (composant, module, plugin, etc.) (obligatoire).&lt;br /&gt;
* &#039;&#039;&#039;folder&#039;&#039;&#039; (dossier) - spécifique aux plugins, cette balise décrit le type du plugin mis à jour (contenu, système, etc.) (obligatoire pour les plugins).&lt;br /&gt;
* &#039;&#039;&#039;client&#039;&#039;&#039; – Le client de l&#039;extension. Requis pour les modules et modèles de site depuis la version 3.2.0. – Les valeurs possibles actuellement sont &amp;quot;site&amp;quot; ou &amp;quot;administrator&amp;quot;. &#039;&#039;&#039;Attention&amp;amp;nbsp;!&#039;&#039;&#039; Les plugins et les modules du site public sont automatiquement installés avec le client à 0 (site), mais vous devez tout de même indiquer le client dans une mise à jour ou il sera mis par défaut à 1 (administrator) et, du coup, la mise à jour trouvée ne sera pas affichée parce qu&#039;elle ne correspondra à aucune extension. Les composants sont automatiquement installés avec un client à &amp;quot;administrator&amp;quot;, ce qui est la valeur actuelle par défaut.&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;Attention&#039;&#039;&#039; : le nom de la balise est &#039;&#039;&#039;&amp;lt;client&amp;gt;&#039;&#039;&#039; pour Joomla! 2.5 et &#039;&#039;&#039;&amp;lt;client_id&amp;gt;&#039;&#039;&#039; pour les versions 1.6 et 1.7. Si vous utilisez &amp;lt;client_id&amp;gt; plutôt que de &amp;lt;client&amp;gt; sur un site de 2.5, la balise sera ignorée.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;version&#039;&#039;&#039; - les références de la version (obligatoire)&lt;br /&gt;
* &#039;&#039;&#039;infourl&#039;&#039;&#039; - l&#039;URL pour diriger les utilisateurs vers des informations complémentaires concernant la mise à jour (facultatif).&lt;br /&gt;
* &#039;&#039;&#039;downloads&#039;&#039;&#039; - la section qui liste tous les emplacements pour le téléchargement.&lt;br /&gt;
** &#039;&#039;&#039;downloadurl&#039;&#039;&#039; - l&#039;URL à partir de laquelle il est possible de télécharger l&#039;extension. La balise &amp;lt;downloadurl&amp;gt; doit contenir deux paramètres obligatoires :&lt;br /&gt;
*** &#039;&#039;&#039;type&#039;&#039;&#039; - le type du package (complète ou mise à jour).&lt;br /&gt;
*** &#039;&#039;&#039;format&#039;&#039;&#039; - Le format de l&#039;archive (zip, tar, etc.).&lt;br /&gt;
** &#039;&#039;&#039;downloadsource&#039;&#039;&#039; - Facultatif. Depuis la version Joomlaǃ 3.8.3., une URL alternative depuis laquelle il est possible de télécharger l&#039;extension lorsque la connexion depuis &amp;lt;downloadurl&amp;gt; échoue. Plusieurs balises &amp;lt;downloadsource&amp;gt; sont autorisées. La balise  &amp;lt;downloadsource&amp;gt; nécessite de renseigner deux paramètres obligatoires&amp;amp;nbsp;:&lt;br /&gt;
*** &#039;&#039;&#039;type&#039;&#039;&#039; - Le type du package (complète ou mise à jour).&lt;br /&gt;
*** &#039;&#039;&#039;format&#039;&#039;&#039; - Le format de l&#039;archive (zip, tar, etc.).&lt;br /&gt;
** &#039;&#039;&#039;NB&#039;&#039;&#039; - il ne doit pas y avoir de saut à la ligne avant ou après l&#039;URL&amp;amp;nbsp;; tout doit être écrit sur une seule est même ligne où vous aurez une erreur de connexion au serveur&amp;amp;nbsp;: requête malformée quand la mise à jour sera exécutée&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;tags&#039;&#039;&#039; - Une liste de mots clés pertinents pour cette version. Les versions Joomla! 3.4 et suivantes utilisent cela pour déterminer le niveau de stabilité de la mise à jour. Les valeurs des tags valides sont&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
** &#039;&#039;dev&#039;&#039; : versions de développement, très instables et pré-alpha (par exemple, les nightly builds).&lt;br /&gt;
** &#039;&#039;alpha&#039;&#039; : Niveau de qualité de logiciel Alpha (fonctionnalités non implémentées, bogues bloquants)&lt;br /&gt;
** &#039;&#039;beta&#039;&#039; : Niveau de qualité de logiciel Beta (toutes les fonctionnalités sont implémentées, possibilité de bogues bloquants, certitude de présence de bogues mineurs)&lt;br /&gt;
** &#039;&#039;rc&#039;&#039; : Niveau de qualité de logiciel Release Candidate (plus de bogues bloquants, des bogues mineurs peuvent encore subsister)&lt;br /&gt;
** &#039;&#039;stable&#039;&#039; : Niveau de qualité de logiciel Production. Tous les autres tags sont actuellement ignorés. Si vous fournissez plus d&#039;un tag contenant l&#039;un des mots clés de stabilité du code ci-dessus, seul le DERNIER tag sera pris en compte. Si aucun tag n&#039;est fourni, Joomla! va considérer que la version est stable.&lt;br /&gt;
* &#039;&#039;&#039;maintainer&#039;&#039;&#039; – Le nom de la personne qui maintient l&#039;extension (similaire à la balise &amp;lt;author&amp;gt; dans le manifest) (optionnel)&lt;br /&gt;
* &#039;&#039;&#039;maintainerurl&#039;&#039;&#039; – Le site web de la personne qui maintient l&#039;extension (similaire à la balise &amp;lt;authorUrl&amp;gt; du manifest) (optionnel)&lt;br /&gt;
* &#039;&#039;&#039;section&#039;&#039;&#039; – Facultatif (utilisation inconnue)&lt;br /&gt;
* &#039;&#039;&#039;targetplatform&#039;&#039;&#039; – Une balise pour définir les exigences de la plateforme (depuis la version {{ JVer| 3.10 }} ceci est également utilisé pour détecter la compatibilité des extensions pour le composant de mise à jour de Joomla), et qui a besoin des éléments suivant&amp;amp;nbsp;ː&lt;br /&gt;
** &#039;&#039;&#039;name&#039;&#039;&#039; – Le nom de la dépendance de la plateforme&amp;amp;nbsp;; actuellement, SEUL &amp;quot;joomla&amp;quot; est supporté&lt;br /&gt;
** &#039;&#039;&#039;version&#039;&#039;&#039;– La version de Joomla! prenant en charge l&#039;extension.&lt;br /&gt;
** &#039;&#039;&#039;min_dev_level&#039;&#039;&#039; et &#039;&#039;&#039;max_dev_level&#039;&#039;&#039; – Ces attributs ont été ajoutés en 3.0.1 pour permettre de sélectionner une plateforme cible pour un certain niveau de développement (&amp;quot;z&amp;quot; dans x.y.z). Ils sont optionnels. Vous pouvez en spécifier un seul ou les deux. S&#039;il sont omis, les niveaux de développements correspondent tous. Par exemple, la balise suivante inclut les versions 4.0.0 et 4.0.1. &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;4.0&amp;quot; min_dev_level=&amp;quot;0&amp;quot; max_dev_level=&amp;quot;1&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
*** &#039;&#039;&#039;Note :&#039;&#039;&#039; Si votre extension est compatible Joomla! 2.5 et/ou 3.1, vous devrez avoir des définitions séparées de &amp;lt;update&amp;gt; pour chaque version à cause de la manière dans le moteur de mise à jour va vérifier la version, si vous spécifiez une valeur. Cependant, pour montrer votre extension sur toutes les versions Joomla qui supportent les mises à jour automatiques (et de fait indique la compatibilité avec toutes les versions futures de Joomla dans le système de mise à jour de Joomla), ajoutez &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;.*&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;. Si vous voulez que la mise à jour de votre extension s&#039;affiche pour toutes les versions {{JVer|3.x}}, alors plutôt que de spécifier une version dans le tag de version, ajoutez &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.[012345]&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;. Ceci va montrer la mise à jour dans toutes les versions 3.x de 3.0 à 3.5. Si vous voulez inclure la version 3.10, vous pouvez utiliser un &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; comme ceci&amp;amp;nbsp;: &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.[012345]|10&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;. Si vous voulez montrer les mises à jour pour toutes les versions 3.8.x et toutes les versions 3.10.x, vous pouvez utiliser &amp;lt;code&amp;gt;&amp;lt;targetplatform name=&amp;quot;joomla&amp;quot; version=&amp;quot;3.(8|10)&amp;quot;/&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;php_minimum&#039;&#039;&#039; – Depuis la version 3.2.2, une version minimale PHP supportée peut être fournie dans le flux de mise à jour. Si le serveur n&#039;a pas cette version minimale, un message indique à l&#039;utilisateur que la mise à jour est accessible mais ne peut pas être installée du fait d&#039;une exigence non couverte.&lt;br /&gt;
* &#039;&#039;&#039;supported_databases&#039;&#039;&#039; – Depuis la version 3.7, une vérification de la base de données et de sa version minimale supportée peut être fournie dans le flux de mise à jour. Lorsque le serveur n&#039;a pas cette version minimale, un message indique à l&#039;utilisateur que la mise à jour est accessible mais ne peut pas être installée du fait d&#039;une exigence non couverte. A noter&amp;amp;nbsp;: [https://github.com/joomla/joomla-cms/pull/26079 Comme pour la version 3.9.12] il y a également un cas spécial pour mariadb et ainsi vous pouvez indiquer une version spécifique minimale pour cela aussi.&lt;br /&gt;
** Un exemple pourrait être&amp;amp;nbsp;: &amp;lt;code&amp;gt;&amp;lt;supported_databases mysql=&amp;quot;5.5.3&amp;quot; mariadb=&amp;quot;10.1&amp;quot; postgresql=&amp;quot;9.2&amp;quot; mssql=&amp;quot;10.50.1600.1&amp;quot; /&amp;gt;&amp;lt;/code&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;sha256&#039;&#039;&#039;, &#039;&#039;&#039;sha384&#039;&#039;&#039;, &#039;&#039;&#039;sha512&#039;&#039;&#039; – Facultatif. Depuis la version Joomlaǃ 3.9.0, vous pouvez ajouter des checksums sur vos fichiers pour ces formats hash. Notez que dans Joomlaǃ 3, seule une information est présente dans &#039;&#039;&#039;mises à jour&#039;&#039;&#039; si un checksum n&#039;est pas correct. C&#039;est tout. La mise à jour ne s&#039;arrête pas pour autant. Pour les mises à jour avec Joomlaǃ 4 et les installations, si un checksum fourni n&#039;est pas correct, alors la mise à jour s&#039;arrêtera.&lt;br /&gt;
&lt;br /&gt;
La définition d&#039;un &amp;lt;update&amp;gt; séparé sera requis pour chaque version de l&#039;extension que vous mettez à disposition.&lt;br /&gt;
&lt;br /&gt;
Les valeurs de &#039;&#039;&#039;element&#039;&#039;&#039;, &#039;&#039;&#039;type&#039;&#039;&#039;, &#039;&#039;&#039;client_id&#039;&#039;&#039; et &#039;&#039;&#039;folder&#039;&#039;&#039; doivent correspondre à ceux de la table #__extensions.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important pour les plugins :&#039;&#039;&#039; les plugins doivent intégrer les éléments &amp;lt;tt&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;&amp;lt;client&amp;gt;&amp;lt;/tt&amp;gt; pour fonctionner correctement.&lt;br /&gt;
== Résolution de problèmes ==&lt;br /&gt;
* &#039;&#039;&#039;Le script de mise à jour SQL n&#039;est pas exécuté durant une mise à jour.&#039;&#039;&#039; &lt;br /&gt;
:Si le script de mise à jour SQL (par exemple, dans le répertoire &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt;) n&#039;est pas exécuté durant le processus de mise à jour, cela peut être dû au fait qu&#039;il n&#039;y avait pas de numéro de version dans la table &amp;lt;code&amp;gt;#__schemas&amp;lt;/code&amp;gt; de cette extension &#039;&#039;avant la mise à jour&#039;&#039;. Cette valeur est déterminée par le dernier nom de script dans le répertoire de mises à jour SQL. Si cette valeur est vierge, aucun script SQL ne sera exécuté durant le cycle de mise à jour. Pour vous assurer que cette valeur est correctement spécifiée, assurez vous que vous avez un script SQL dans ce répertoire dont le nom est le numéro de version (par exemple, 1.2.3.sql si la version est 1.2.3). Le fichier peut être vide ou avoir juste une ligne de commentaire SQL. Ceci doit avoir été fait dans une version antérieure — celle avant la mise à jour. Comme alternative, vous pouvez ajouter cette valeur dans la table &amp;lt;code&amp;gt;#__schemas&amp;lt;/code&amp;gt; en utilisant une requête SQL. &lt;br /&gt;
&lt;br /&gt;
== Outils de support ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Development/fr|Développement]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Deploying_an_Update_Server/23/fr&amp;diff=995806</id>
		<title>Translations:Deploying an Update Server/23/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Deploying_an_Update_Server/23/fr&amp;diff=995806"/>
		<updated>2022-12-01T14:39:43Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* &#039;&#039;&#039;client&#039;&#039;&#039; – Le client de l&#039;extension. Requis pour les modules et modèles de site depuis la version 3.2.0. – Les valeurs possibles actuellement sont &amp;quot;site&amp;quot; ou &amp;quot;administrator&amp;quot;. &#039;&#039;&#039;Attention&amp;amp;nbsp;!&#039;&#039;&#039; Les plugins et les modules du site public sont automatiquement installés avec le client à 0 (site), mais vous devez tout de même indiquer le client dans une mise à jour ou il sera mis par défaut à 1 (administrator) et, du coup, la mise à jour trouvée ne sera pas affichée parce qu&#039;elle ne correspondra à aucune extension. Les composants sont automatiquement installés avec un client à &amp;quot;administrator&amp;quot;, ce qui est la valeur actuelle par défaut.&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=963946</id>
		<title>Manifest files/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=963946"/>
		<updated>2022-09-04T08:26:47Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Created page with &amp;quot;Ce code ne fonctionne qu&amp;#039;avec {{JVer|4.0}} et les versions ultérieures&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x}} {{Joomla version|version=3.x}} {{Joomla version|version=2.5|status=eos}} &lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Avec Joomla, toutes les extensions proposent des fichiers manifestes. Ces fichiers recouvrent les informations générales concernant l&#039;installation, ainsi que des paramètres pour la configuration de l&#039;[[S:MyLanguage/extension|extension]] elle-même. Depuis Joomla! 2.5, il existe très peu de différences entre les différents formats de fichiers manifestes en fonction des différents [[S:MyLanguage/Extension types (technical definitions)|types d&#039;extensions]] permettant ainsi à chaque type de bénéficier de la puissance de l&#039;installateur Joomla.&lt;br /&gt;
&lt;br /&gt;
==Conventions de nommage==&lt;br /&gt;
Le fichier doit être nommé &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5 et 3) ou &amp;lt;tt&amp;gt;&amp;lt;extension_name&amp;gt;.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5, 3 et 4) et situé dans le répertoire racine du package d&#039;installation.&lt;br /&gt;
&lt;br /&gt;
Joomla 4.x : la correspondance automatique du namespace va échouer si un nom de fichier tel que &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; est utilisé. Voir https://github.com/joomla/joomla-cms/issues/37750&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntaxe==&lt;br /&gt;
&lt;br /&gt;
===Élément à la racine===&lt;br /&gt;
{{notice|La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace l&#039;ancienne &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; de la version Joomla {{JVer|1.5}}}}&lt;br /&gt;
&lt;br /&gt;
La balise principale du fichier d&#039;installation est&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La balise ouvrante et fermante est la même pour toutes les extensions. Les attributs suivants sont autorisés à l&#039;intérieur de la balise&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Applicable à || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;language&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;element&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Cet attribut décrit à l&#039;installateur le type de l&#039;extension. En fonction de ce type, d&#039;autres d&#039;exigences supplémentaires s&#039;appliqueront aux sous-balises.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Chaîne de caractères qui identifie la version de Joomla! pour laquelle cette extension est développée. Ceci n&#039;est pas utilisé dans le version {{JVer|3.x}} et a été retiré de la version {{JVer|4.0}} et des versions ultérieures.&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| La valeur par défaut &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; sera également utilisée si l&#039;attribut &amp;lt;tt&amp;gt;method&amp;lt;/tt&amp;gt; n&#039;est pas utilisé. La valeur &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; signifie que l&#039;installateur va s&#039;arrêter s&#039;il trouve un fichier/dossier de la nouvelle extension.&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| &amp;lt;code&amp;gt;site&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;administrator&amp;lt;/code&amp;gt; || Modules&lt;br /&gt;
| L&#039;attribut &amp;lt;tt&amp;gt;client&amp;lt;/tt&amp;gt; permet de préciser pour quel type de client d&#039;application le nouveau module est disponible.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &#039;&#039;string&#039;&#039; || Plugins&lt;br /&gt;
| Le nom du groupe indique pour quels groupes de plugins le nouveau plugin est disponible. Les groupes existants sont les noms de dossier du répertoire &amp;lt;tt&amp;gt;/plugins&amp;lt;/tt&amp;gt;. Le programme d&#039;installation va créer de nouveaux noms de dossier pour les noms de groupe qui n&#039;existent pas encore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Métadonnées===&lt;br /&gt;
&lt;br /&gt;
Les éléments suivants peuvent être utilisés pour insérer des métadonnées. Aucun de ces éléments n&#039;est obligatoire et s&#039;ils sont présents, ils doivent être un enfant de l&#039;élément racine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt; &amp;amp;ndash; raw component name (e.g. com_banners). &lt;br /&gt;
&amp;lt;author&amp;gt; &amp;amp;ndash; author&#039;s name (e.g. Joomla! Project)&lt;br /&gt;
&amp;lt;creationDate&amp;gt; &amp;amp;ndash; date of creation or release (e.g. April 2006)&lt;br /&gt;
&amp;lt;copyright&amp;gt; &amp;amp;ndash; a copyright statement (e.g. (C) 2005 - 2011 Open Source Matters. All rights reserved.)&lt;br /&gt;
&amp;lt;license&amp;gt; &amp;amp;ndash; a license statement (e.g. NU General Public License version 2 or later; see LICENSE.txt)&lt;br /&gt;
&amp;lt;authorEmail&amp;gt; &amp;amp;ndash; author&#039;s email address (e.g. admin@joomla.org)&lt;br /&gt;
&amp;lt;authorUrl&amp;gt; &amp;amp;ndash; URL to the author&#039;s website (e.g. www.joomla.org)&lt;br /&gt;
&amp;lt;version&amp;gt; &amp;amp;ndash; the version number of the extension (e.g. 1.6.0)&lt;br /&gt;
&amp;lt;description&amp;gt; &amp;amp;ndash; the description of the component. This is a translatable field. (e.g. COM_BANNERS_XML_DESCRIPTION)&lt;br /&gt;
&amp;lt;element&amp;gt; &amp;amp;ndash; the internal name of the component. If omitted, name will be cleaned and used&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remarque : les balises &amp;lt;name&amp;gt; et &amp;lt;description&amp;gt; sont des champs traduisibles de sorte que le nom et la description de l&#039;extension pourront être présents dans la langue maternelle de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Fichiers de frontend ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;from-folder&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;example.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;examples&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de frontend doivent être placés dans les balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; en option pour spécifier un répertoire &#039;&#039;&#039;du package ZIP&#039;&#039;&#039;. Chaque fichier à copier doit être nommé par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;. Si vous souhaitez copier un dossier entier à la fois, vous pouvez le définir comme un &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les &#039;&#039;&#039;plugins&#039;&#039;&#039;, le nom brut du plugin doit être placé dans l&#039;attribut &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; de l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; qui pointe vers le fichier contenant la classe du plugin. Par exemple, dans le cas d&#039;un système de plugin appelé &amp;quot;exemple&amp;quot; (nom complet : &amp;lt;code&amp;gt;plg_system_exemple&amp;lt;/code&amp;gt;), il faudra utiliser &amp;lt;code&amp;gt;&amp;lt;filename plugin=&amp;quot;exemple&amp;quot;&amp;gt;exemple.php&amp;lt;/filename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Fichiers multimédias===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
	&amp;lt;media folder=&amp;quot;media&amp;quot; destination=&amp;quot;com_example&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;com_example_logo.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;css&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;js&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple permet de copier le fichier (&amp;lt;tt&amp;gt;/media/com_example_logo.png&amp;lt;/tt&amp;gt;) et les dossiers ( &amp;lt;tt&amp;gt;/media/css/&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;/media/js/&amp;lt;/tt&amp;gt; ) listés vers &amp;lt;tt&amp;gt;/media/com_example/&amp;lt;/tt&amp;gt;, ainsi que la création du dossier &amp;lt;tt&amp;gt;com_example&amp;lt;/tt&amp;gt; si nécessaire. Vous pouvez utiliser en option l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire &#039;&#039;&#039;dans le package ZIP&#039;&#039;&#039; à partir duquel réaliser la (dans ce cas, &amp;lt;tt&amp;gt;media&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les extensions doivent stocker les éléments, dont elles ont besoin pour être accessible sur le web (JS, CSS, images, etc), dans &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;. Cette fonctionnalité a été ajoutée dans le cadre du projet de développement d&#039;une interface multi-site et du placement éventuel de fichiers de code (PHP) en dehors des espaces web serveurs accessibles.&amp;lt;br /&amp;gt;Remarque: la section médias n&#039;est pas analysé pour les extensions de type &#039;package&#039;.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/4CAASJqFY-k/PvPj14gP29EJ Google Groups - joomla-dev-cms thread]&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/uNmhX98sKbE/p8p68Jke680J Google Groups - joomla-dev-cms thread]&lt;br /&gt;
&lt;br /&gt;
===Section de l&#039;administration===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- various elements --&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section d&#039;administration est définie par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Puisque seuls les [[S:MyLanguage/Component|composants]] concernent à la fois l&#039;espace [[S:MyLanguage/Site (Application)|site]] et celui d&#039;[[S:MyLanguage/Administrator (Application)|administration]], &#039;&#039;&#039;seuls les manifests pour composants doivent intégrer ces éléments&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Fichiers de backend====&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de backend doivent être placés dans l&#039;élément &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; sous &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut optionnel &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire à copier depuis le &#039;&#039;&#039;pack ZIP&#039;&#039;&#039;. Voir les &#039;&#039;fichiers frontend&#039;&#039; pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
====Liens de menu et sous-menus====&lt;br /&gt;
{{dablink|&#039;&#039;&#039;Note de version :&#039;&#039;&#039; avant Joomla! 3.4, le fait de ne pas avoir de balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; dans votre fichier XML avait pour conséquence l création d&#039;un élément de menu. Cette anomalie a été corrigée dans Joomla! 3.4 et ainsi, si aucune balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; n&#039;est présente dans votre fichier manifest, aucun menu d&#039;administration ne sera créé pour le composant.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;menu&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;submenu&amp;gt;&lt;br /&gt;
		&amp;lt;!--&lt;br /&gt;
			Note that all &amp;amp; must be escaped to &amp;amp;amp; for the file to be valid&lt;br /&gt;
			XML and be parsed by the installer&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&amp;quot;anoption=avalue&amp;amp;amp;anoption1=avalue1&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_ANOPTION&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;menu view=&amp;quot;viewname&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_VIEWNAME&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;/submenu&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte pour l&#039;élément du menu principal pour le composant est défini dans la balise &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;, enfant de de la balise &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;submenu&amp;gt;&amp;lt;/code&amp;gt; peut être présente (également comme enfant de &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;), qui pourra contenir d&#039;autres éléments de menu définis par &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En outre, chaque élément &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || Description&lt;br /&gt;
|-&lt;br /&gt;
| link || Un lien vers lequel renvoyer l&#039;utilisateur lorsque l&#039;élément de menu est cliqué. Vous pouvez utiliser &amp;quot;view&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
| img || Le chemin (relatif) à une image (16x16 pixels) qui apparait à côté de l&#039;élément de menu. &lt;br /&gt;
&amp;lt;u&amp;gt;Doit être url compatible (par exemple sans espaces).&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| alt ||&lt;br /&gt;
|-&lt;br /&gt;
| view || Un paramètre URL à ajouter au lien. Par exemple, &amp;lt;code&amp;gt;&amp;lt;menu view=&amp;quot;cpanel&amp;quot;&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&amp;lt;/code&amp;gt; dans le manifest XML com_example générerait l&#039;URL de l&#039;élément de menu &amp;lt;tt&amp;gt;index.php?option=com_example&amp;amp;view=cpanel&amp;lt;/tt&amp;gt;. Vous pouvez utiliser &amp;quot;link&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La valeur à l&#039;intérieur de la balise est le nom du menu. À La différence de ce qui se faisait pour Joomla! 1.5, vous ne pouvez pas utiliser une chaîne de caractère dans votre langue naturelle. Par exemple, si vous renseignez &amp;quot;Composant d&#039;exemple&amp;quot; au lieu de COM_EXAMPLE, votre nom de composant qui s&#039;afficherait en titre serait &amp;quot;composant-d-exemple&amp;quot; et vous seriez dans l&#039;impossibilité de le traduire. Pour réaliser une traduction, vous devez créer un fichier nommé &amp;lt;tt&amp;gt;fr-FR.com_example.sys.ini&amp;lt;/tt&amp;gt; &#039;&#039;&#039;(NDT : avant de pouvoir créer le fichier fr-FR, il convient de créer le fichier d&#039;origine en-GB)&#039;&#039;&#039; dans &amp;lt;tt&amp;gt;administrator/languages/fr-FR&amp;lt;/tt&amp;gt; (vous pouvez utiliser la balise manifest &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; pour qu&#039;il soit copié lors de l&#039;installation) ou dans &amp;lt;tt&amp;gt;administrator/components/com_example/language/fr-FR&amp;lt;/tt&amp;gt;. Dans ce dernier cas, vous ne devez pas inclure le fichier de traduction dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; balise. Tant que vous aurez placé le répertoire de langue dans vos balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il sera copié lors de l&#039;installation du composant.&lt;br /&gt;
&lt;br /&gt;
Le contenu de ce fichier devrait être :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
COM_EXAMPLE=&amp;quot;Example Component&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_ANOPTION=&amp;quot;Another Option&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_VIEWNAME=&amp;quot;Another View&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les chaînes de caractères de langues doivent être contenues à l&#039;intérieur de guillemets doubles, comme toutes les chaînes de traductions habituelles de Joomla!.&lt;br /&gt;
&lt;br /&gt;
{{note|Joomla! 1.6 and later sorts the Component menu items based on the actual translation of the key you supply in your XML manifest. This means that the sorting order is correct no matter what you call your translation key and no matter which language the site is being displayed in. Essentially, Joomla! 1.6 fixed the wrong sorting of the Components menu experienced under Joomla! 1.5 for the majority (non-English speaking!) of Joomla! users.}}&lt;br /&gt;
&lt;br /&gt;
=== Tableaux de bord === &lt;br /&gt;
{{notice|Ce code ne fonctionne qu&#039;avec {{JVer|4.0}} et les versions ultérieures}}&lt;br /&gt;
&lt;br /&gt;
Specifies the details for displaying a dashboard for the component in the Administrator area for the site.&lt;br /&gt;
* It will make a dashboard icon appear next to the administrator menu item for the component&lt;br /&gt;
* The dashboard icon will click through to display modules assigned to the cpanel-example administrator module position&lt;br /&gt;
* The title and icon defined in the XML file will be used as the header and icon at the top of the component&#039;s dashboard page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dashboards&amp;gt;&lt;br /&gt;
		&amp;lt;dashboard title=&amp;quot;COM_EXAMPLE_DASHBOARD_TITLE&amp;quot; icon=&amp;quot;icon-lock&amp;quot;&amp;gt;example&amp;lt;/dashboard&amp;gt;&lt;br /&gt;
	&amp;lt;/dashboards&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
{{warning|&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Les composants &#039;&#039;&#039;ne prennent pas en charge&#039;&#039;&#039; les définitions de configuration &#039;&#039;&#039;dans le manifeste&#039;&#039;&#039;. Ceci avait été mis en œuvre dans Joomla! 1.5. Ils est possible de définir les options de configuration pour différents niveaux à l&#039;aide des [[S:MyLanguage/Component configuration metadata|métadonnées de configuration de composant]].&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;, enfant de la racine, décrit les options de configuration de l&#039;extension. En cas de besoin, les options seront affichées par le gestionnaire concerné (gestionnaire de plugins, gestionnaire de modules ou gestionnaire de templates). &#039;&#039;&#039;Les options de configuration peuvent également être définies dans un fichier séparé nommé &amp;lt;code&amp;gt;config.xml&amp;lt;/code&amp;gt;. Son élément racine doit être &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de champs &amp;lt;code&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/code&amp;gt; peut contenir un ou plusieurs éléments &amp;lt;code&amp;gt;&amp;lt;field&amp;gt;&amp;lt;/code&amp;gt; (champ), chacun représentant un seul [[S:MyLanguage/form field|champ de formulaire]] avec une étiquette. Consultez les [[S:MyLanguage/Standard form field types|types de champs pour formulaires standards]] pour une liste des types de champs autorisés et un exemple de définitions de champs de formulaire XML.&lt;br /&gt;
&lt;br /&gt;
=== Namespace === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specify the namespace to be used for autoloading the plugin. The given namespace will autoload to the root directory of your extension by default however you can optionally add a &amp;quot;path&amp;quot; attribute to the namespace element to specify a subpath within your extensions root directory.&lt;br /&gt;
&lt;br /&gt;
===SQL===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;install&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.install.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/install&amp;gt;&lt;br /&gt;
    &amp;lt;uninstall&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.uninstall.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/uninstall&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;exemple ci-dessus, nous avons placé les fichiers SQL dans le répertoire &amp;lt;tt&amp;gt;admin/sql&amp;lt;/tt&amp;gt; du paquet d&#039;installation. Vous devez inclure le dossier &amp;lt;tt&amp;gt;sql&amp;lt;/tt&amp;gt; dans les fichiers d&#039;administration (tel que décrit dans &amp;quot;les fichiers backend&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez exécuter SQL lors de l&#039;installation et/ou la désinstallation à l&#039;aide des éléments &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;lt;uninstall&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; doit apparaître comme un enfant de ces éléments. &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; peut contenir n&#039;importe quel nombre d&#039;éléments &amp;lt;code&amp;gt;&amp;lt;file&amp;gt;&amp;lt;/code&amp;gt;, chacun devant définir un seul fichier SQL à exécuter. Leurs types de pilote de base de données sont décrits par l&#039;attribut &amp;lt;code&amp;gt;driver&amp;lt;/code&amp;gt;, leurs jeux de caractères par l&#039;attribut &amp;lt;code&amp;gt;charset&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
==== Mise à jour du schéma SQL====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depuis la version 1.6, une balise &amp;lt;code&amp;gt;&amp;lt;update&amp;gt;&amp;lt;/code&amp;gt; est disponible et vous permet de fournir une série de fichiers SQL pour mettre à jour le schéma actuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;sqlsrv&amp;quot;&amp;gt;sql/updates/sqlsrv&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour passer de la version &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt; à la version &amp;lt;code&amp;gt;1.0.1&amp;lt;/code&amp;gt; dans une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;, un fichier &amp;lt;code&amp;gt;1.0.1.sql&amp;lt;/code&amp;gt; doit être créé dans le dossier &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt; et la balise &amp;lt;code&amp;gt;&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; du manifest doit être mis à jour : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La structure finale du dossier sql ressemblera à ceci (dans l&#039;hypothèse d&#039;une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
sql&lt;br /&gt;
 |--&amp;gt;example.install.sql&lt;br /&gt;
 |--&amp;gt;example.uninstall.sql&lt;br /&gt;
 |--&amp;gt;updates&lt;br /&gt;
     |--&amp;gt;mysql&lt;br /&gt;
        |--&amp;gt;1.0.1.sql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des fichiers similaires doivent être créés pour les versions suivantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
===Fichiers langue===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Dans Joomla! 1.5, les développeurs d&#039;extensions devaient placer les fichiers de langue dans le dossier général des langues de Joomla! à l&#039;aide des balises &amp;amp;lt;languages&amp;amp;gt;...&amp;amp;lt;/languages&amp;amp;gt; comme indiqué ci-dessous. &#039;&#039;&#039;Cette méthode peut toujours être utilisée avec la version&#039;&#039;&#039; {{JVer|3.x}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Joomla! language tag --&amp;gt;&lt;br /&gt;
&amp;lt;languages folder=&amp;quot;langfiles&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_example.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Depuis Joomla! 1.6, il vous est conseillé de placer les fichiers langue de votre extension dans le dossier même de votre extension. Joomla! chargera alors automatiquement les fichiers de langue depuis votre extension.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En plaçant les fichiers de langue dans le dossier de l&#039;extension, vous permettez ainsi de les isoler et donc de les protéger. Par exemple, dans le cas ou un administrateur supprimerait une langue de son installation Joomlaǃ. Dans ce cas, les fichiers de langue de l&#039;extension ne seront pas supprimés. Ils resteront alors en place et ne seront accessibles que si la langue est installée à nouveau.&lt;br /&gt;
&lt;br /&gt;
La structure du dossier de langue pour le frontend et le backend est identique. Il convient de les placer dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; (par exemple &#039;&#039;&#039;en-GB&#039;&#039;&#039;) pour chaque langue et dans le dossier comme suit&amp;amp;nbsp;: &#039;&#039;&#039;language/en-GB/&#039;&#039;&#039;. Vous devez aussi spécifier ces dossiers pour le frontend et le backend.&lt;br /&gt;
&lt;br /&gt;
Dans votre manifest, il suffit simplement d&#039;inclure votre dossier &amp;lt;tt&amp;gt;&amp;lt;language&amp;gt;&amp;lt;/tt&amp;gt; dans la section fichiers. Les sous-répertoires pour chaque langue seront alors automatiquement copiés. À l&#039;intérieur des groupes &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il vous suffit d&#039;ajouter une balise &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt; à côté des éléments dans le groupe &amp;lt;tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/tt&amp;gt;, comme indiqué dans cet exemple&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;alpha&amp;quot;&amp;gt;alpha.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les deux techniques peuvent fonctionner ensemble. Voici un exemple du noyau&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;languagecode&amp;quot;&amp;gt;languagecode.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les avantages pour cette solution sont les suivants :&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers &#039;&#039;.ini&#039;&#039; présents dans le dossier du noyau ont la priorité sur les fichiers dans les dossiers langue des extensions.&lt;br /&gt;
Par exemple, s&#039;il existe, un fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; d&#039;un dossier du noyau sera toujours chargé dans le backend, sauf lors de l&#039;installation d&#039;une extension qui contient son propre fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans un dossier de langue. Dans ce cas et uniquement ce cas, le fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans le dossier de l&#039;extension affichera son contenu traduit au moment de l&#039;installation. C&#039;est très pratique car un développeur peut avoir deux fichiers &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; avec un contenu différent.&lt;br /&gt;
&lt;br /&gt;
Il est également beaucoup plus facile pour un utilisateur ayant besoin de trouver le fichier &amp;lt;tt&amp;gt;.ini&amp;lt;/tt&amp;gt; d&#039;une extension qui n&#039;est pas disponible dans sa langue de l&#039;ajouter dans le dossier principal. Il n&#039;y a aucun risque qu&#039;il ne soit supprimé en cas de désinstallation par erreur de l&#039;extension.&lt;br /&gt;
&lt;br /&gt;
Veuillez consulter également :&lt;br /&gt;
*[[S:MyLanguage/J2.5:Making non-core language packs|Créer un pack langue hors du noyau]]&lt;br /&gt;
*[[S:MyLanguage/Creating language packs for extensions in Joomla 2.5|Créer un pack langue pour une extension Joomla! 2.5]]&lt;br /&gt;
&lt;br /&gt;
Au cours du développement, vous pouvez activer le système de débogage de langue dans la configuration globale de Joomlaǃ. Vous pourrez découvrir si un problème est levé. Depuis {{JVer|3.2}}, cela est nécessaire afin d&#039;aider à déboguer le en-GB qui est &#039;&#039;&#039;toujours&#039;&#039;&#039; chargé en premier lorsque l&#039;on est pas en mode de débogage et ainsi empêcher l&#039;affichage des constantes.&lt;br /&gt;
&lt;br /&gt;
===Fichier de script===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;scriptfile&amp;gt;example.script.php&amp;lt;/scriptfile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Un &#039;&#039;&#039;fichier de script&#039;&#039;&#039; (code PHP qui est exécuté avant, pendant et/ou après l&#039;installation, la désinstallation ou la mise à jour) peut, en option, être défini à l&#039;aide d&#039;une balise &amp;lt;code&amp;gt;&amp;lt;scriptfile&amp;gt;&amp;lt;/code&amp;gt;. Ce fichier doit contenir une classe nommée &#039;&amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;InstallerScript&#039;&#039;&amp;lt;/tt&amp;gt; où &amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;&amp;lt;/tt&amp;gt; est le nom de votre extension (par exemple : com_nomducomposant, mod_nomdumodule, etc.). Pour les plugins, il convient de nommer également le groupe (par exemple : plgsystemnomduplugin). Les packages de bibliothèque ne prennent pas en charge les fichiers scripts. La structure de la classe sera comme suit :&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file should contain a class named &amp;quot;&amp;lt;element_name&amp;gt;InstallerScript&amp;quot; where &amp;lt;element_name&amp;gt; is the name of your extension (e.g. com_componentname, mod_modulename, etc.). Plugins must state the group (e.g. plgsystempluginname).&lt;br /&gt;
&lt;br /&gt;
In {{JVer|4.0}} and later the structure of the class is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
use Joomla\CMS\Installer\InstallerAdapter;&lt;br /&gt;
&lt;br /&gt;
class com_componentnameInstallerScript&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function __construct(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called before any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function preflight($route, InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called after any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function postflight($route, $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on installation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function install(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on update&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function update(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on uninstallation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function uninstall(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since Joomla 3.6 Joomla has shipped a basic script that you can use instead of shipping your own from scratch &#039;&#039;&#039;JInstallerScript&#039;&#039;&#039; which contains various helper methods commonly used through the community.&lt;br /&gt;
&lt;br /&gt;
=== Library Manifests === &lt;br /&gt;
{{notice|The section is based on {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
A simple library manifest might look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;library&amp;quot; method=&amp;quot;upgrade&amp;quot; version=&amp;quot;4.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;My Test library.&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mytest&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;Classes&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;mytest.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the library into the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mytest&amp;lt;/tt&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
What if your company has several libraries and you want to group them together under folder &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany&amp;lt;/tt&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Simple - include your company name in the &amp;lt;tt&amp;gt;libraryname&amp;lt;/tt&amp;gt; property of each library like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary1&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary2&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These libraries will then be installed in the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary2&amp;lt;/tt&amp;gt; folders.&lt;br /&gt;
&lt;br /&gt;
Uninstalling &amp;lt;tt&amp;gt;mylibrary1&amp;lt;/tt&amp;gt; will still leave &amp;lt;tt&amp;gt;mylibrary2&amp;lt;/tt&amp;gt; installed on your site.&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;tt&amp;gt;script files&amp;lt;/tt&amp;gt; with such company libraries the installer class name should look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary1InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary2InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
=== Serveurs de mise à jour ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;1&amp;quot; name=&amp;quot;Extension Update Site&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;collection&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;Collection Update Site&amp;quot;&amp;gt;http://example.com/collection.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les serveurs de mise à jour peuvent être définis dans les balises &amp;lt;code&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/code&amp;gt; comme enfant de la racine. Cet élément peut contenir une ou plusieurs balises &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; chacune avec la description depuis laquelle chercher les mises à jour. Chaque rubrique &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;collection&amp;lt;/code&amp;gt; || Le type de serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| priority || &#039;&#039;integer&#039;&#039; || La priorité du serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| name || &#039;&#039;string&#039;&#039; || Le nom du serveur de mise à jour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Pour plus d&#039;informations :&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing a MVC Component/Adding an update server|Création d&#039;une extension Joomla! - Ajout d&#039;un serveur de mise à jour]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Managing Component Updates|Gestion des mises à jour de composants pour Joomla! 2.5]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supporting Download Keys ===&lt;br /&gt;
&lt;br /&gt;
As of Joomla 4.0.0 users can enter their download keys in the Update Sites list. This gives them a single place to manage the download keys. When a user is going to update an extension, Joomla will check if there is a download key. If there is a download key, Joomla will add the download key to the update URL.&lt;br /&gt;
&lt;br /&gt;
To support download keys you must include the &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag in the manifest file. The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag takes 2 arguments:&lt;br /&gt;
* prefix&lt;br /&gt;
* suffix&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag will look like this in your manifest file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dlid prefix=&amp;quot;dlid=&amp;quot; suffix=&amp;quot;&amp;amp;amp;dummy=my.zip&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The prefix will be added before the download key and the suffix after the download key. Using the example above the full query added to the download link will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
dlid=KEY&amp;amp;amp;dummy=my.zip&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The key is added before the &amp;lt;tt&amp;gt;onInstallerBeforePackageDownload&amp;lt;/tt&amp;gt; event is triggered, so the full URL will be passed to the event.&lt;br /&gt;
&lt;br /&gt;
===Exemples=== &lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
== Exemples ==&lt;br /&gt;
Pour un exemple concret, veuillez consulter [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/components/com_banners/banners.xml le manifest pour le composant bannière de la version Joomla! 3.6.4].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D&#039;autres exemples peuvent être trouvés dans le répertoire autonome des liens web&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/administrator/components/com_weblinks/weblinks.xml manifest com_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/modules/mod_weblinks/mod_weblinks.xml manifest mod_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/plugins/search/weblinks/weblinks.xml manifest plg_search_weblinks]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/templates/protostar/templateDetails.xml manifest tpl_protostar (3.6.4)]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/language/en-GB/en-GB.xml manifest en-GB (3.6.4)]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Specifications{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/105/fr&amp;diff=963945</id>
		<title>Translations:Manifest files/105/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/105/fr&amp;diff=963945"/>
		<updated>2022-09-04T08:26:43Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Created page with &amp;quot;Ce code ne fonctionne qu&amp;#039;avec {{JVer|4.0}} et les versions ultérieures&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Ce code ne fonctionne qu&#039;avec {{JVer|4.0}} et les versions ultérieures&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=963944</id>
		<title>Manifest files/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=963944"/>
		<updated>2022-09-04T08:26:27Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Created page with &amp;quot;=== Tableaux de bord ===&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x}} {{Joomla version|version=3.x}} {{Joomla version|version=2.5|status=eos}} &lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Avec Joomla, toutes les extensions proposent des fichiers manifestes. Ces fichiers recouvrent les informations générales concernant l&#039;installation, ainsi que des paramètres pour la configuration de l&#039;[[S:MyLanguage/extension|extension]] elle-même. Depuis Joomla! 2.5, il existe très peu de différences entre les différents formats de fichiers manifestes en fonction des différents [[S:MyLanguage/Extension types (technical definitions)|types d&#039;extensions]] permettant ainsi à chaque type de bénéficier de la puissance de l&#039;installateur Joomla.&lt;br /&gt;
&lt;br /&gt;
==Conventions de nommage==&lt;br /&gt;
Le fichier doit être nommé &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5 et 3) ou &amp;lt;tt&amp;gt;&amp;lt;extension_name&amp;gt;.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5, 3 et 4) et situé dans le répertoire racine du package d&#039;installation.&lt;br /&gt;
&lt;br /&gt;
Joomla 4.x : la correspondance automatique du namespace va échouer si un nom de fichier tel que &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; est utilisé. Voir https://github.com/joomla/joomla-cms/issues/37750&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntaxe==&lt;br /&gt;
&lt;br /&gt;
===Élément à la racine===&lt;br /&gt;
{{notice|La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace l&#039;ancienne &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; de la version Joomla {{JVer|1.5}}}}&lt;br /&gt;
&lt;br /&gt;
La balise principale du fichier d&#039;installation est&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La balise ouvrante et fermante est la même pour toutes les extensions. Les attributs suivants sont autorisés à l&#039;intérieur de la balise&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Applicable à || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;language&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;element&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Cet attribut décrit à l&#039;installateur le type de l&#039;extension. En fonction de ce type, d&#039;autres d&#039;exigences supplémentaires s&#039;appliqueront aux sous-balises.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Chaîne de caractères qui identifie la version de Joomla! pour laquelle cette extension est développée. Ceci n&#039;est pas utilisé dans le version {{JVer|3.x}} et a été retiré de la version {{JVer|4.0}} et des versions ultérieures.&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| La valeur par défaut &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; sera également utilisée si l&#039;attribut &amp;lt;tt&amp;gt;method&amp;lt;/tt&amp;gt; n&#039;est pas utilisé. La valeur &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; signifie que l&#039;installateur va s&#039;arrêter s&#039;il trouve un fichier/dossier de la nouvelle extension.&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| &amp;lt;code&amp;gt;site&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;administrator&amp;lt;/code&amp;gt; || Modules&lt;br /&gt;
| L&#039;attribut &amp;lt;tt&amp;gt;client&amp;lt;/tt&amp;gt; permet de préciser pour quel type de client d&#039;application le nouveau module est disponible.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &#039;&#039;string&#039;&#039; || Plugins&lt;br /&gt;
| Le nom du groupe indique pour quels groupes de plugins le nouveau plugin est disponible. Les groupes existants sont les noms de dossier du répertoire &amp;lt;tt&amp;gt;/plugins&amp;lt;/tt&amp;gt;. Le programme d&#039;installation va créer de nouveaux noms de dossier pour les noms de groupe qui n&#039;existent pas encore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Métadonnées===&lt;br /&gt;
&lt;br /&gt;
Les éléments suivants peuvent être utilisés pour insérer des métadonnées. Aucun de ces éléments n&#039;est obligatoire et s&#039;ils sont présents, ils doivent être un enfant de l&#039;élément racine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt; &amp;amp;ndash; raw component name (e.g. com_banners). &lt;br /&gt;
&amp;lt;author&amp;gt; &amp;amp;ndash; author&#039;s name (e.g. Joomla! Project)&lt;br /&gt;
&amp;lt;creationDate&amp;gt; &amp;amp;ndash; date of creation or release (e.g. April 2006)&lt;br /&gt;
&amp;lt;copyright&amp;gt; &amp;amp;ndash; a copyright statement (e.g. (C) 2005 - 2011 Open Source Matters. All rights reserved.)&lt;br /&gt;
&amp;lt;license&amp;gt; &amp;amp;ndash; a license statement (e.g. NU General Public License version 2 or later; see LICENSE.txt)&lt;br /&gt;
&amp;lt;authorEmail&amp;gt; &amp;amp;ndash; author&#039;s email address (e.g. admin@joomla.org)&lt;br /&gt;
&amp;lt;authorUrl&amp;gt; &amp;amp;ndash; URL to the author&#039;s website (e.g. www.joomla.org)&lt;br /&gt;
&amp;lt;version&amp;gt; &amp;amp;ndash; the version number of the extension (e.g. 1.6.0)&lt;br /&gt;
&amp;lt;description&amp;gt; &amp;amp;ndash; the description of the component. This is a translatable field. (e.g. COM_BANNERS_XML_DESCRIPTION)&lt;br /&gt;
&amp;lt;element&amp;gt; &amp;amp;ndash; the internal name of the component. If omitted, name will be cleaned and used&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remarque : les balises &amp;lt;name&amp;gt; et &amp;lt;description&amp;gt; sont des champs traduisibles de sorte que le nom et la description de l&#039;extension pourront être présents dans la langue maternelle de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Fichiers de frontend ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;from-folder&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;example.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;examples&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de frontend doivent être placés dans les balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; en option pour spécifier un répertoire &#039;&#039;&#039;du package ZIP&#039;&#039;&#039;. Chaque fichier à copier doit être nommé par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;. Si vous souhaitez copier un dossier entier à la fois, vous pouvez le définir comme un &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les &#039;&#039;&#039;plugins&#039;&#039;&#039;, le nom brut du plugin doit être placé dans l&#039;attribut &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; de l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; qui pointe vers le fichier contenant la classe du plugin. Par exemple, dans le cas d&#039;un système de plugin appelé &amp;quot;exemple&amp;quot; (nom complet : &amp;lt;code&amp;gt;plg_system_exemple&amp;lt;/code&amp;gt;), il faudra utiliser &amp;lt;code&amp;gt;&amp;lt;filename plugin=&amp;quot;exemple&amp;quot;&amp;gt;exemple.php&amp;lt;/filename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Fichiers multimédias===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
	&amp;lt;media folder=&amp;quot;media&amp;quot; destination=&amp;quot;com_example&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;com_example_logo.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;css&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;js&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple permet de copier le fichier (&amp;lt;tt&amp;gt;/media/com_example_logo.png&amp;lt;/tt&amp;gt;) et les dossiers ( &amp;lt;tt&amp;gt;/media/css/&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;/media/js/&amp;lt;/tt&amp;gt; ) listés vers &amp;lt;tt&amp;gt;/media/com_example/&amp;lt;/tt&amp;gt;, ainsi que la création du dossier &amp;lt;tt&amp;gt;com_example&amp;lt;/tt&amp;gt; si nécessaire. Vous pouvez utiliser en option l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire &#039;&#039;&#039;dans le package ZIP&#039;&#039;&#039; à partir duquel réaliser la (dans ce cas, &amp;lt;tt&amp;gt;media&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les extensions doivent stocker les éléments, dont elles ont besoin pour être accessible sur le web (JS, CSS, images, etc), dans &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;. Cette fonctionnalité a été ajoutée dans le cadre du projet de développement d&#039;une interface multi-site et du placement éventuel de fichiers de code (PHP) en dehors des espaces web serveurs accessibles.&amp;lt;br /&amp;gt;Remarque: la section médias n&#039;est pas analysé pour les extensions de type &#039;package&#039;.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/4CAASJqFY-k/PvPj14gP29EJ Google Groups - joomla-dev-cms thread]&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/uNmhX98sKbE/p8p68Jke680J Google Groups - joomla-dev-cms thread]&lt;br /&gt;
&lt;br /&gt;
===Section de l&#039;administration===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- various elements --&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section d&#039;administration est définie par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Puisque seuls les [[S:MyLanguage/Component|composants]] concernent à la fois l&#039;espace [[S:MyLanguage/Site (Application)|site]] et celui d&#039;[[S:MyLanguage/Administrator (Application)|administration]], &#039;&#039;&#039;seuls les manifests pour composants doivent intégrer ces éléments&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Fichiers de backend====&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de backend doivent être placés dans l&#039;élément &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; sous &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut optionnel &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire à copier depuis le &#039;&#039;&#039;pack ZIP&#039;&#039;&#039;. Voir les &#039;&#039;fichiers frontend&#039;&#039; pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
====Liens de menu et sous-menus====&lt;br /&gt;
{{dablink|&#039;&#039;&#039;Note de version :&#039;&#039;&#039; avant Joomla! 3.4, le fait de ne pas avoir de balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; dans votre fichier XML avait pour conséquence l création d&#039;un élément de menu. Cette anomalie a été corrigée dans Joomla! 3.4 et ainsi, si aucune balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; n&#039;est présente dans votre fichier manifest, aucun menu d&#039;administration ne sera créé pour le composant.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;menu&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;submenu&amp;gt;&lt;br /&gt;
		&amp;lt;!--&lt;br /&gt;
			Note that all &amp;amp; must be escaped to &amp;amp;amp; for the file to be valid&lt;br /&gt;
			XML and be parsed by the installer&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&amp;quot;anoption=avalue&amp;amp;amp;anoption1=avalue1&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_ANOPTION&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;menu view=&amp;quot;viewname&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_VIEWNAME&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;/submenu&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte pour l&#039;élément du menu principal pour le composant est défini dans la balise &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;, enfant de de la balise &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;submenu&amp;gt;&amp;lt;/code&amp;gt; peut être présente (également comme enfant de &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;), qui pourra contenir d&#039;autres éléments de menu définis par &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En outre, chaque élément &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || Description&lt;br /&gt;
|-&lt;br /&gt;
| link || Un lien vers lequel renvoyer l&#039;utilisateur lorsque l&#039;élément de menu est cliqué. Vous pouvez utiliser &amp;quot;view&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
| img || Le chemin (relatif) à une image (16x16 pixels) qui apparait à côté de l&#039;élément de menu. &lt;br /&gt;
&amp;lt;u&amp;gt;Doit être url compatible (par exemple sans espaces).&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| alt ||&lt;br /&gt;
|-&lt;br /&gt;
| view || Un paramètre URL à ajouter au lien. Par exemple, &amp;lt;code&amp;gt;&amp;lt;menu view=&amp;quot;cpanel&amp;quot;&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&amp;lt;/code&amp;gt; dans le manifest XML com_example générerait l&#039;URL de l&#039;élément de menu &amp;lt;tt&amp;gt;index.php?option=com_example&amp;amp;view=cpanel&amp;lt;/tt&amp;gt;. Vous pouvez utiliser &amp;quot;link&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La valeur à l&#039;intérieur de la balise est le nom du menu. À La différence de ce qui se faisait pour Joomla! 1.5, vous ne pouvez pas utiliser une chaîne de caractère dans votre langue naturelle. Par exemple, si vous renseignez &amp;quot;Composant d&#039;exemple&amp;quot; au lieu de COM_EXAMPLE, votre nom de composant qui s&#039;afficherait en titre serait &amp;quot;composant-d-exemple&amp;quot; et vous seriez dans l&#039;impossibilité de le traduire. Pour réaliser une traduction, vous devez créer un fichier nommé &amp;lt;tt&amp;gt;fr-FR.com_example.sys.ini&amp;lt;/tt&amp;gt; &#039;&#039;&#039;(NDT : avant de pouvoir créer le fichier fr-FR, il convient de créer le fichier d&#039;origine en-GB)&#039;&#039;&#039; dans &amp;lt;tt&amp;gt;administrator/languages/fr-FR&amp;lt;/tt&amp;gt; (vous pouvez utiliser la balise manifest &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; pour qu&#039;il soit copié lors de l&#039;installation) ou dans &amp;lt;tt&amp;gt;administrator/components/com_example/language/fr-FR&amp;lt;/tt&amp;gt;. Dans ce dernier cas, vous ne devez pas inclure le fichier de traduction dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; balise. Tant que vous aurez placé le répertoire de langue dans vos balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il sera copié lors de l&#039;installation du composant.&lt;br /&gt;
&lt;br /&gt;
Le contenu de ce fichier devrait être :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
COM_EXAMPLE=&amp;quot;Example Component&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_ANOPTION=&amp;quot;Another Option&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_VIEWNAME=&amp;quot;Another View&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les chaînes de caractères de langues doivent être contenues à l&#039;intérieur de guillemets doubles, comme toutes les chaînes de traductions habituelles de Joomla!.&lt;br /&gt;
&lt;br /&gt;
{{note|Joomla! 1.6 and later sorts the Component menu items based on the actual translation of the key you supply in your XML manifest. This means that the sorting order is correct no matter what you call your translation key and no matter which language the site is being displayed in. Essentially, Joomla! 1.6 fixed the wrong sorting of the Components menu experienced under Joomla! 1.5 for the majority (non-English speaking!) of Joomla! users.}}&lt;br /&gt;
&lt;br /&gt;
=== Tableaux de bord === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specifies the details for displaying a dashboard for the component in the Administrator area for the site.&lt;br /&gt;
* It will make a dashboard icon appear next to the administrator menu item for the component&lt;br /&gt;
* The dashboard icon will click through to display modules assigned to the cpanel-example administrator module position&lt;br /&gt;
* The title and icon defined in the XML file will be used as the header and icon at the top of the component&#039;s dashboard page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dashboards&amp;gt;&lt;br /&gt;
		&amp;lt;dashboard title=&amp;quot;COM_EXAMPLE_DASHBOARD_TITLE&amp;quot; icon=&amp;quot;icon-lock&amp;quot;&amp;gt;example&amp;lt;/dashboard&amp;gt;&lt;br /&gt;
	&amp;lt;/dashboards&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
{{warning|&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Les composants &#039;&#039;&#039;ne prennent pas en charge&#039;&#039;&#039; les définitions de configuration &#039;&#039;&#039;dans le manifeste&#039;&#039;&#039;. Ceci avait été mis en œuvre dans Joomla! 1.5. Ils est possible de définir les options de configuration pour différents niveaux à l&#039;aide des [[S:MyLanguage/Component configuration metadata|métadonnées de configuration de composant]].&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;, enfant de la racine, décrit les options de configuration de l&#039;extension. En cas de besoin, les options seront affichées par le gestionnaire concerné (gestionnaire de plugins, gestionnaire de modules ou gestionnaire de templates). &#039;&#039;&#039;Les options de configuration peuvent également être définies dans un fichier séparé nommé &amp;lt;code&amp;gt;config.xml&amp;lt;/code&amp;gt;. Son élément racine doit être &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de champs &amp;lt;code&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/code&amp;gt; peut contenir un ou plusieurs éléments &amp;lt;code&amp;gt;&amp;lt;field&amp;gt;&amp;lt;/code&amp;gt; (champ), chacun représentant un seul [[S:MyLanguage/form field|champ de formulaire]] avec une étiquette. Consultez les [[S:MyLanguage/Standard form field types|types de champs pour formulaires standards]] pour une liste des types de champs autorisés et un exemple de définitions de champs de formulaire XML.&lt;br /&gt;
&lt;br /&gt;
=== Namespace === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specify the namespace to be used for autoloading the plugin. The given namespace will autoload to the root directory of your extension by default however you can optionally add a &amp;quot;path&amp;quot; attribute to the namespace element to specify a subpath within your extensions root directory.&lt;br /&gt;
&lt;br /&gt;
===SQL===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;install&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.install.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/install&amp;gt;&lt;br /&gt;
    &amp;lt;uninstall&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.uninstall.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/uninstall&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;exemple ci-dessus, nous avons placé les fichiers SQL dans le répertoire &amp;lt;tt&amp;gt;admin/sql&amp;lt;/tt&amp;gt; du paquet d&#039;installation. Vous devez inclure le dossier &amp;lt;tt&amp;gt;sql&amp;lt;/tt&amp;gt; dans les fichiers d&#039;administration (tel que décrit dans &amp;quot;les fichiers backend&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez exécuter SQL lors de l&#039;installation et/ou la désinstallation à l&#039;aide des éléments &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;lt;uninstall&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; doit apparaître comme un enfant de ces éléments. &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; peut contenir n&#039;importe quel nombre d&#039;éléments &amp;lt;code&amp;gt;&amp;lt;file&amp;gt;&amp;lt;/code&amp;gt;, chacun devant définir un seul fichier SQL à exécuter. Leurs types de pilote de base de données sont décrits par l&#039;attribut &amp;lt;code&amp;gt;driver&amp;lt;/code&amp;gt;, leurs jeux de caractères par l&#039;attribut &amp;lt;code&amp;gt;charset&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
==== Mise à jour du schéma SQL====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depuis la version 1.6, une balise &amp;lt;code&amp;gt;&amp;lt;update&amp;gt;&amp;lt;/code&amp;gt; est disponible et vous permet de fournir une série de fichiers SQL pour mettre à jour le schéma actuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;sqlsrv&amp;quot;&amp;gt;sql/updates/sqlsrv&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour passer de la version &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt; à la version &amp;lt;code&amp;gt;1.0.1&amp;lt;/code&amp;gt; dans une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;, un fichier &amp;lt;code&amp;gt;1.0.1.sql&amp;lt;/code&amp;gt; doit être créé dans le dossier &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt; et la balise &amp;lt;code&amp;gt;&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; du manifest doit être mis à jour : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La structure finale du dossier sql ressemblera à ceci (dans l&#039;hypothèse d&#039;une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
sql&lt;br /&gt;
 |--&amp;gt;example.install.sql&lt;br /&gt;
 |--&amp;gt;example.uninstall.sql&lt;br /&gt;
 |--&amp;gt;updates&lt;br /&gt;
     |--&amp;gt;mysql&lt;br /&gt;
        |--&amp;gt;1.0.1.sql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des fichiers similaires doivent être créés pour les versions suivantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
===Fichiers langue===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Dans Joomla! 1.5, les développeurs d&#039;extensions devaient placer les fichiers de langue dans le dossier général des langues de Joomla! à l&#039;aide des balises &amp;amp;lt;languages&amp;amp;gt;...&amp;amp;lt;/languages&amp;amp;gt; comme indiqué ci-dessous. &#039;&#039;&#039;Cette méthode peut toujours être utilisée avec la version&#039;&#039;&#039; {{JVer|3.x}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Joomla! language tag --&amp;gt;&lt;br /&gt;
&amp;lt;languages folder=&amp;quot;langfiles&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_example.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Depuis Joomla! 1.6, il vous est conseillé de placer les fichiers langue de votre extension dans le dossier même de votre extension. Joomla! chargera alors automatiquement les fichiers de langue depuis votre extension.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En plaçant les fichiers de langue dans le dossier de l&#039;extension, vous permettez ainsi de les isoler et donc de les protéger. Par exemple, dans le cas ou un administrateur supprimerait une langue de son installation Joomlaǃ. Dans ce cas, les fichiers de langue de l&#039;extension ne seront pas supprimés. Ils resteront alors en place et ne seront accessibles que si la langue est installée à nouveau.&lt;br /&gt;
&lt;br /&gt;
La structure du dossier de langue pour le frontend et le backend est identique. Il convient de les placer dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; (par exemple &#039;&#039;&#039;en-GB&#039;&#039;&#039;) pour chaque langue et dans le dossier comme suit&amp;amp;nbsp;: &#039;&#039;&#039;language/en-GB/&#039;&#039;&#039;. Vous devez aussi spécifier ces dossiers pour le frontend et le backend.&lt;br /&gt;
&lt;br /&gt;
Dans votre manifest, il suffit simplement d&#039;inclure votre dossier &amp;lt;tt&amp;gt;&amp;lt;language&amp;gt;&amp;lt;/tt&amp;gt; dans la section fichiers. Les sous-répertoires pour chaque langue seront alors automatiquement copiés. À l&#039;intérieur des groupes &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il vous suffit d&#039;ajouter une balise &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt; à côté des éléments dans le groupe &amp;lt;tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/tt&amp;gt;, comme indiqué dans cet exemple&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;alpha&amp;quot;&amp;gt;alpha.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les deux techniques peuvent fonctionner ensemble. Voici un exemple du noyau&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;languagecode&amp;quot;&amp;gt;languagecode.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les avantages pour cette solution sont les suivants :&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers &#039;&#039;.ini&#039;&#039; présents dans le dossier du noyau ont la priorité sur les fichiers dans les dossiers langue des extensions.&lt;br /&gt;
Par exemple, s&#039;il existe, un fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; d&#039;un dossier du noyau sera toujours chargé dans le backend, sauf lors de l&#039;installation d&#039;une extension qui contient son propre fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans un dossier de langue. Dans ce cas et uniquement ce cas, le fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans le dossier de l&#039;extension affichera son contenu traduit au moment de l&#039;installation. C&#039;est très pratique car un développeur peut avoir deux fichiers &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; avec un contenu différent.&lt;br /&gt;
&lt;br /&gt;
Il est également beaucoup plus facile pour un utilisateur ayant besoin de trouver le fichier &amp;lt;tt&amp;gt;.ini&amp;lt;/tt&amp;gt; d&#039;une extension qui n&#039;est pas disponible dans sa langue de l&#039;ajouter dans le dossier principal. Il n&#039;y a aucun risque qu&#039;il ne soit supprimé en cas de désinstallation par erreur de l&#039;extension.&lt;br /&gt;
&lt;br /&gt;
Veuillez consulter également :&lt;br /&gt;
*[[S:MyLanguage/J2.5:Making non-core language packs|Créer un pack langue hors du noyau]]&lt;br /&gt;
*[[S:MyLanguage/Creating language packs for extensions in Joomla 2.5|Créer un pack langue pour une extension Joomla! 2.5]]&lt;br /&gt;
&lt;br /&gt;
Au cours du développement, vous pouvez activer le système de débogage de langue dans la configuration globale de Joomlaǃ. Vous pourrez découvrir si un problème est levé. Depuis {{JVer|3.2}}, cela est nécessaire afin d&#039;aider à déboguer le en-GB qui est &#039;&#039;&#039;toujours&#039;&#039;&#039; chargé en premier lorsque l&#039;on est pas en mode de débogage et ainsi empêcher l&#039;affichage des constantes.&lt;br /&gt;
&lt;br /&gt;
===Fichier de script===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;scriptfile&amp;gt;example.script.php&amp;lt;/scriptfile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Un &#039;&#039;&#039;fichier de script&#039;&#039;&#039; (code PHP qui est exécuté avant, pendant et/ou après l&#039;installation, la désinstallation ou la mise à jour) peut, en option, être défini à l&#039;aide d&#039;une balise &amp;lt;code&amp;gt;&amp;lt;scriptfile&amp;gt;&amp;lt;/code&amp;gt;. Ce fichier doit contenir une classe nommée &#039;&amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;InstallerScript&#039;&#039;&amp;lt;/tt&amp;gt; où &amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;&amp;lt;/tt&amp;gt; est le nom de votre extension (par exemple : com_nomducomposant, mod_nomdumodule, etc.). Pour les plugins, il convient de nommer également le groupe (par exemple : plgsystemnomduplugin). Les packages de bibliothèque ne prennent pas en charge les fichiers scripts. La structure de la classe sera comme suit :&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file should contain a class named &amp;quot;&amp;lt;element_name&amp;gt;InstallerScript&amp;quot; where &amp;lt;element_name&amp;gt; is the name of your extension (e.g. com_componentname, mod_modulename, etc.). Plugins must state the group (e.g. plgsystempluginname).&lt;br /&gt;
&lt;br /&gt;
In {{JVer|4.0}} and later the structure of the class is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
use Joomla\CMS\Installer\InstallerAdapter;&lt;br /&gt;
&lt;br /&gt;
class com_componentnameInstallerScript&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function __construct(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called before any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function preflight($route, InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called after any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function postflight($route, $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on installation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function install(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on update&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function update(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on uninstallation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function uninstall(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since Joomla 3.6 Joomla has shipped a basic script that you can use instead of shipping your own from scratch &#039;&#039;&#039;JInstallerScript&#039;&#039;&#039; which contains various helper methods commonly used through the community.&lt;br /&gt;
&lt;br /&gt;
=== Library Manifests === &lt;br /&gt;
{{notice|The section is based on {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
A simple library manifest might look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;library&amp;quot; method=&amp;quot;upgrade&amp;quot; version=&amp;quot;4.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;My Test library.&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mytest&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;Classes&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;mytest.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the library into the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mytest&amp;lt;/tt&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
What if your company has several libraries and you want to group them together under folder &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany&amp;lt;/tt&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Simple - include your company name in the &amp;lt;tt&amp;gt;libraryname&amp;lt;/tt&amp;gt; property of each library like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary1&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary2&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These libraries will then be installed in the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary2&amp;lt;/tt&amp;gt; folders.&lt;br /&gt;
&lt;br /&gt;
Uninstalling &amp;lt;tt&amp;gt;mylibrary1&amp;lt;/tt&amp;gt; will still leave &amp;lt;tt&amp;gt;mylibrary2&amp;lt;/tt&amp;gt; installed on your site.&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;tt&amp;gt;script files&amp;lt;/tt&amp;gt; with such company libraries the installer class name should look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary1InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary2InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
=== Serveurs de mise à jour ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;1&amp;quot; name=&amp;quot;Extension Update Site&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;collection&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;Collection Update Site&amp;quot;&amp;gt;http://example.com/collection.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les serveurs de mise à jour peuvent être définis dans les balises &amp;lt;code&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/code&amp;gt; comme enfant de la racine. Cet élément peut contenir une ou plusieurs balises &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; chacune avec la description depuis laquelle chercher les mises à jour. Chaque rubrique &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;collection&amp;lt;/code&amp;gt; || Le type de serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| priority || &#039;&#039;integer&#039;&#039; || La priorité du serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| name || &#039;&#039;string&#039;&#039; || Le nom du serveur de mise à jour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Pour plus d&#039;informations :&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing a MVC Component/Adding an update server|Création d&#039;une extension Joomla! - Ajout d&#039;un serveur de mise à jour]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Managing Component Updates|Gestion des mises à jour de composants pour Joomla! 2.5]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supporting Download Keys ===&lt;br /&gt;
&lt;br /&gt;
As of Joomla 4.0.0 users can enter their download keys in the Update Sites list. This gives them a single place to manage the download keys. When a user is going to update an extension, Joomla will check if there is a download key. If there is a download key, Joomla will add the download key to the update URL.&lt;br /&gt;
&lt;br /&gt;
To support download keys you must include the &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag in the manifest file. The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag takes 2 arguments:&lt;br /&gt;
* prefix&lt;br /&gt;
* suffix&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag will look like this in your manifest file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dlid prefix=&amp;quot;dlid=&amp;quot; suffix=&amp;quot;&amp;amp;amp;dummy=my.zip&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The prefix will be added before the download key and the suffix after the download key. Using the example above the full query added to the download link will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
dlid=KEY&amp;amp;amp;dummy=my.zip&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The key is added before the &amp;lt;tt&amp;gt;onInstallerBeforePackageDownload&amp;lt;/tt&amp;gt; event is triggered, so the full URL will be passed to the event.&lt;br /&gt;
&lt;br /&gt;
===Exemples=== &lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
== Exemples ==&lt;br /&gt;
Pour un exemple concret, veuillez consulter [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/components/com_banners/banners.xml le manifest pour le composant bannière de la version Joomla! 3.6.4].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D&#039;autres exemples peuvent être trouvés dans le répertoire autonome des liens web&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/administrator/components/com_weblinks/weblinks.xml manifest com_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/modules/mod_weblinks/mod_weblinks.xml manifest mod_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/plugins/search/weblinks/weblinks.xml manifest plg_search_weblinks]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/templates/protostar/templateDetails.xml manifest tpl_protostar (3.6.4)]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/language/en-GB/en-GB.xml manifest en-GB (3.6.4)]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Specifications{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/104/fr&amp;diff=963943</id>
		<title>Translations:Manifest files/104/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/104/fr&amp;diff=963943"/>
		<updated>2022-09-04T08:26:14Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Created page with &amp;quot;=== Tableaux de bord ===&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=== Tableaux de bord ===&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=963942</id>
		<title>Manifest files/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=963942"/>
		<updated>2022-09-04T07:12:35Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Created page with &amp;quot;Notez que les chaînes de caractères de langues doivent être contenues à l&amp;#039;intérieur de guillemets doubles, comme toutes les chaînes de traductions habituelles de Joomla!.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x}} {{Joomla version|version=3.x}} {{Joomla version|version=2.5|status=eos}} &lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Avec Joomla, toutes les extensions proposent des fichiers manifestes. Ces fichiers recouvrent les informations générales concernant l&#039;installation, ainsi que des paramètres pour la configuration de l&#039;[[S:MyLanguage/extension|extension]] elle-même. Depuis Joomla! 2.5, il existe très peu de différences entre les différents formats de fichiers manifestes en fonction des différents [[S:MyLanguage/Extension types (technical definitions)|types d&#039;extensions]] permettant ainsi à chaque type de bénéficier de la puissance de l&#039;installateur Joomla.&lt;br /&gt;
&lt;br /&gt;
==Conventions de nommage==&lt;br /&gt;
Le fichier doit être nommé &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5 et 3) ou &amp;lt;tt&amp;gt;&amp;lt;extension_name&amp;gt;.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5, 3 et 4) et situé dans le répertoire racine du package d&#039;installation.&lt;br /&gt;
&lt;br /&gt;
Joomla 4.x : la correspondance automatique du namespace va échouer si un nom de fichier tel que &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; est utilisé. Voir https://github.com/joomla/joomla-cms/issues/37750&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntaxe==&lt;br /&gt;
&lt;br /&gt;
===Élément à la racine===&lt;br /&gt;
{{notice|La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace l&#039;ancienne &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; de la version Joomla {{JVer|1.5}}}}&lt;br /&gt;
&lt;br /&gt;
La balise principale du fichier d&#039;installation est&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La balise ouvrante et fermante est la même pour toutes les extensions. Les attributs suivants sont autorisés à l&#039;intérieur de la balise&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Applicable à || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;language&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;element&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Cet attribut décrit à l&#039;installateur le type de l&#039;extension. En fonction de ce type, d&#039;autres d&#039;exigences supplémentaires s&#039;appliqueront aux sous-balises.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Chaîne de caractères qui identifie la version de Joomla! pour laquelle cette extension est développée. Ceci n&#039;est pas utilisé dans le version {{JVer|3.x}} et a été retiré de la version {{JVer|4.0}} et des versions ultérieures.&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| La valeur par défaut &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; sera également utilisée si l&#039;attribut &amp;lt;tt&amp;gt;method&amp;lt;/tt&amp;gt; n&#039;est pas utilisé. La valeur &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; signifie que l&#039;installateur va s&#039;arrêter s&#039;il trouve un fichier/dossier de la nouvelle extension.&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| &amp;lt;code&amp;gt;site&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;administrator&amp;lt;/code&amp;gt; || Modules&lt;br /&gt;
| L&#039;attribut &amp;lt;tt&amp;gt;client&amp;lt;/tt&amp;gt; permet de préciser pour quel type de client d&#039;application le nouveau module est disponible.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &#039;&#039;string&#039;&#039; || Plugins&lt;br /&gt;
| Le nom du groupe indique pour quels groupes de plugins le nouveau plugin est disponible. Les groupes existants sont les noms de dossier du répertoire &amp;lt;tt&amp;gt;/plugins&amp;lt;/tt&amp;gt;. Le programme d&#039;installation va créer de nouveaux noms de dossier pour les noms de groupe qui n&#039;existent pas encore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Métadonnées===&lt;br /&gt;
&lt;br /&gt;
Les éléments suivants peuvent être utilisés pour insérer des métadonnées. Aucun de ces éléments n&#039;est obligatoire et s&#039;ils sont présents, ils doivent être un enfant de l&#039;élément racine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt; &amp;amp;ndash; raw component name (e.g. com_banners). &lt;br /&gt;
&amp;lt;author&amp;gt; &amp;amp;ndash; author&#039;s name (e.g. Joomla! Project)&lt;br /&gt;
&amp;lt;creationDate&amp;gt; &amp;amp;ndash; date of creation or release (e.g. April 2006)&lt;br /&gt;
&amp;lt;copyright&amp;gt; &amp;amp;ndash; a copyright statement (e.g. (C) 2005 - 2011 Open Source Matters. All rights reserved.)&lt;br /&gt;
&amp;lt;license&amp;gt; &amp;amp;ndash; a license statement (e.g. NU General Public License version 2 or later; see LICENSE.txt)&lt;br /&gt;
&amp;lt;authorEmail&amp;gt; &amp;amp;ndash; author&#039;s email address (e.g. admin@joomla.org)&lt;br /&gt;
&amp;lt;authorUrl&amp;gt; &amp;amp;ndash; URL to the author&#039;s website (e.g. www.joomla.org)&lt;br /&gt;
&amp;lt;version&amp;gt; &amp;amp;ndash; the version number of the extension (e.g. 1.6.0)&lt;br /&gt;
&amp;lt;description&amp;gt; &amp;amp;ndash; the description of the component. This is a translatable field. (e.g. COM_BANNERS_XML_DESCRIPTION)&lt;br /&gt;
&amp;lt;element&amp;gt; &amp;amp;ndash; the internal name of the component. If omitted, name will be cleaned and used&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remarque : les balises &amp;lt;name&amp;gt; et &amp;lt;description&amp;gt; sont des champs traduisibles de sorte que le nom et la description de l&#039;extension pourront être présents dans la langue maternelle de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Fichiers de frontend ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;from-folder&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;example.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;examples&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de frontend doivent être placés dans les balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; en option pour spécifier un répertoire &#039;&#039;&#039;du package ZIP&#039;&#039;&#039;. Chaque fichier à copier doit être nommé par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;. Si vous souhaitez copier un dossier entier à la fois, vous pouvez le définir comme un &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les &#039;&#039;&#039;plugins&#039;&#039;&#039;, le nom brut du plugin doit être placé dans l&#039;attribut &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; de l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; qui pointe vers le fichier contenant la classe du plugin. Par exemple, dans le cas d&#039;un système de plugin appelé &amp;quot;exemple&amp;quot; (nom complet : &amp;lt;code&amp;gt;plg_system_exemple&amp;lt;/code&amp;gt;), il faudra utiliser &amp;lt;code&amp;gt;&amp;lt;filename plugin=&amp;quot;exemple&amp;quot;&amp;gt;exemple.php&amp;lt;/filename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Fichiers multimédias===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
	&amp;lt;media folder=&amp;quot;media&amp;quot; destination=&amp;quot;com_example&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;com_example_logo.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;css&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;js&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple permet de copier le fichier (&amp;lt;tt&amp;gt;/media/com_example_logo.png&amp;lt;/tt&amp;gt;) et les dossiers ( &amp;lt;tt&amp;gt;/media/css/&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;/media/js/&amp;lt;/tt&amp;gt; ) listés vers &amp;lt;tt&amp;gt;/media/com_example/&amp;lt;/tt&amp;gt;, ainsi que la création du dossier &amp;lt;tt&amp;gt;com_example&amp;lt;/tt&amp;gt; si nécessaire. Vous pouvez utiliser en option l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire &#039;&#039;&#039;dans le package ZIP&#039;&#039;&#039; à partir duquel réaliser la (dans ce cas, &amp;lt;tt&amp;gt;media&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les extensions doivent stocker les éléments, dont elles ont besoin pour être accessible sur le web (JS, CSS, images, etc), dans &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;. Cette fonctionnalité a été ajoutée dans le cadre du projet de développement d&#039;une interface multi-site et du placement éventuel de fichiers de code (PHP) en dehors des espaces web serveurs accessibles.&amp;lt;br /&amp;gt;Remarque: la section médias n&#039;est pas analysé pour les extensions de type &#039;package&#039;.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/4CAASJqFY-k/PvPj14gP29EJ Google Groups - joomla-dev-cms thread]&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/uNmhX98sKbE/p8p68Jke680J Google Groups - joomla-dev-cms thread]&lt;br /&gt;
&lt;br /&gt;
===Section de l&#039;administration===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- various elements --&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section d&#039;administration est définie par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Puisque seuls les [[S:MyLanguage/Component|composants]] concernent à la fois l&#039;espace [[S:MyLanguage/Site (Application)|site]] et celui d&#039;[[S:MyLanguage/Administrator (Application)|administration]], &#039;&#039;&#039;seuls les manifests pour composants doivent intégrer ces éléments&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Fichiers de backend====&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de backend doivent être placés dans l&#039;élément &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; sous &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut optionnel &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire à copier depuis le &#039;&#039;&#039;pack ZIP&#039;&#039;&#039;. Voir les &#039;&#039;fichiers frontend&#039;&#039; pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
====Liens de menu et sous-menus====&lt;br /&gt;
{{dablink|&#039;&#039;&#039;Note de version :&#039;&#039;&#039; avant Joomla! 3.4, le fait de ne pas avoir de balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; dans votre fichier XML avait pour conséquence l création d&#039;un élément de menu. Cette anomalie a été corrigée dans Joomla! 3.4 et ainsi, si aucune balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; n&#039;est présente dans votre fichier manifest, aucun menu d&#039;administration ne sera créé pour le composant.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;menu&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;submenu&amp;gt;&lt;br /&gt;
		&amp;lt;!--&lt;br /&gt;
			Note that all &amp;amp; must be escaped to &amp;amp;amp; for the file to be valid&lt;br /&gt;
			XML and be parsed by the installer&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&amp;quot;anoption=avalue&amp;amp;amp;anoption1=avalue1&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_ANOPTION&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;menu view=&amp;quot;viewname&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_VIEWNAME&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;/submenu&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte pour l&#039;élément du menu principal pour le composant est défini dans la balise &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;, enfant de de la balise &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;submenu&amp;gt;&amp;lt;/code&amp;gt; peut être présente (également comme enfant de &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;), qui pourra contenir d&#039;autres éléments de menu définis par &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En outre, chaque élément &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || Description&lt;br /&gt;
|-&lt;br /&gt;
| link || Un lien vers lequel renvoyer l&#039;utilisateur lorsque l&#039;élément de menu est cliqué. Vous pouvez utiliser &amp;quot;view&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
| img || Le chemin (relatif) à une image (16x16 pixels) qui apparait à côté de l&#039;élément de menu. &lt;br /&gt;
&amp;lt;u&amp;gt;Doit être url compatible (par exemple sans espaces).&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| alt ||&lt;br /&gt;
|-&lt;br /&gt;
| view || Un paramètre URL à ajouter au lien. Par exemple, &amp;lt;code&amp;gt;&amp;lt;menu view=&amp;quot;cpanel&amp;quot;&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&amp;lt;/code&amp;gt; dans le manifest XML com_example générerait l&#039;URL de l&#039;élément de menu &amp;lt;tt&amp;gt;index.php?option=com_example&amp;amp;view=cpanel&amp;lt;/tt&amp;gt;. Vous pouvez utiliser &amp;quot;link&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La valeur à l&#039;intérieur de la balise est le nom du menu. À La différence de ce qui se faisait pour Joomla! 1.5, vous ne pouvez pas utiliser une chaîne de caractère dans votre langue naturelle. Par exemple, si vous renseignez &amp;quot;Composant d&#039;exemple&amp;quot; au lieu de COM_EXAMPLE, votre nom de composant qui s&#039;afficherait en titre serait &amp;quot;composant-d-exemple&amp;quot; et vous seriez dans l&#039;impossibilité de le traduire. Pour réaliser une traduction, vous devez créer un fichier nommé &amp;lt;tt&amp;gt;fr-FR.com_example.sys.ini&amp;lt;/tt&amp;gt; &#039;&#039;&#039;(NDT : avant de pouvoir créer le fichier fr-FR, il convient de créer le fichier d&#039;origine en-GB)&#039;&#039;&#039; dans &amp;lt;tt&amp;gt;administrator/languages/fr-FR&amp;lt;/tt&amp;gt; (vous pouvez utiliser la balise manifest &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; pour qu&#039;il soit copié lors de l&#039;installation) ou dans &amp;lt;tt&amp;gt;administrator/components/com_example/language/fr-FR&amp;lt;/tt&amp;gt;. Dans ce dernier cas, vous ne devez pas inclure le fichier de traduction dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; balise. Tant que vous aurez placé le répertoire de langue dans vos balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il sera copié lors de l&#039;installation du composant.&lt;br /&gt;
&lt;br /&gt;
Le contenu de ce fichier devrait être :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
COM_EXAMPLE=&amp;quot;Example Component&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_ANOPTION=&amp;quot;Another Option&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_VIEWNAME=&amp;quot;Another View&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les chaînes de caractères de langues doivent être contenues à l&#039;intérieur de guillemets doubles, comme toutes les chaînes de traductions habituelles de Joomla!.&lt;br /&gt;
&lt;br /&gt;
{{note|Joomla! 1.6 and later sorts the Component menu items based on the actual translation of the key you supply in your XML manifest. This means that the sorting order is correct no matter what you call your translation key and no matter which language the site is being displayed in. Essentially, Joomla! 1.6 fixed the wrong sorting of the Components menu experienced under Joomla! 1.5 for the majority (non-English speaking!) of Joomla! users.}}&lt;br /&gt;
&lt;br /&gt;
=== Dashboards === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specifies the details for displaying a dashboard for the component in the Administrator area for the site.&lt;br /&gt;
* It will make a dashboard icon appear next to the administrator menu item for the component&lt;br /&gt;
* The dashboard icon will click through to display modules assigned to the cpanel-example administrator module position&lt;br /&gt;
* The title and icon defined in the XML file will be used as the header and icon at the top of the component&#039;s dashboard page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dashboards&amp;gt;&lt;br /&gt;
		&amp;lt;dashboard title=&amp;quot;COM_EXAMPLE_DASHBOARD_TITLE&amp;quot; icon=&amp;quot;icon-lock&amp;quot;&amp;gt;example&amp;lt;/dashboard&amp;gt;&lt;br /&gt;
	&amp;lt;/dashboards&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
{{warning|&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Les composants &#039;&#039;&#039;ne prennent pas en charge&#039;&#039;&#039; les définitions de configuration &#039;&#039;&#039;dans le manifeste&#039;&#039;&#039;. Ceci avait été mis en œuvre dans Joomla! 1.5. Ils est possible de définir les options de configuration pour différents niveaux à l&#039;aide des [[S:MyLanguage/Component configuration metadata|métadonnées de configuration de composant]].&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;, enfant de la racine, décrit les options de configuration de l&#039;extension. En cas de besoin, les options seront affichées par le gestionnaire concerné (gestionnaire de plugins, gestionnaire de modules ou gestionnaire de templates). &#039;&#039;&#039;Les options de configuration peuvent également être définies dans un fichier séparé nommé &amp;lt;code&amp;gt;config.xml&amp;lt;/code&amp;gt;. Son élément racine doit être &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de champs &amp;lt;code&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/code&amp;gt; peut contenir un ou plusieurs éléments &amp;lt;code&amp;gt;&amp;lt;field&amp;gt;&amp;lt;/code&amp;gt; (champ), chacun représentant un seul [[S:MyLanguage/form field|champ de formulaire]] avec une étiquette. Consultez les [[S:MyLanguage/Standard form field types|types de champs pour formulaires standards]] pour une liste des types de champs autorisés et un exemple de définitions de champs de formulaire XML.&lt;br /&gt;
&lt;br /&gt;
=== Namespace === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specify the namespace to be used for autoloading the plugin. The given namespace will autoload to the root directory of your extension by default however you can optionally add a &amp;quot;path&amp;quot; attribute to the namespace element to specify a subpath within your extensions root directory.&lt;br /&gt;
&lt;br /&gt;
===SQL===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;install&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.install.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/install&amp;gt;&lt;br /&gt;
    &amp;lt;uninstall&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.uninstall.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/uninstall&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;exemple ci-dessus, nous avons placé les fichiers SQL dans le répertoire &amp;lt;tt&amp;gt;admin/sql&amp;lt;/tt&amp;gt; du paquet d&#039;installation. Vous devez inclure le dossier &amp;lt;tt&amp;gt;sql&amp;lt;/tt&amp;gt; dans les fichiers d&#039;administration (tel que décrit dans &amp;quot;les fichiers backend&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez exécuter SQL lors de l&#039;installation et/ou la désinstallation à l&#039;aide des éléments &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;lt;uninstall&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; doit apparaître comme un enfant de ces éléments. &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; peut contenir n&#039;importe quel nombre d&#039;éléments &amp;lt;code&amp;gt;&amp;lt;file&amp;gt;&amp;lt;/code&amp;gt;, chacun devant définir un seul fichier SQL à exécuter. Leurs types de pilote de base de données sont décrits par l&#039;attribut &amp;lt;code&amp;gt;driver&amp;lt;/code&amp;gt;, leurs jeux de caractères par l&#039;attribut &amp;lt;code&amp;gt;charset&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
==== Mise à jour du schéma SQL====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depuis la version 1.6, une balise &amp;lt;code&amp;gt;&amp;lt;update&amp;gt;&amp;lt;/code&amp;gt; est disponible et vous permet de fournir une série de fichiers SQL pour mettre à jour le schéma actuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;sqlsrv&amp;quot;&amp;gt;sql/updates/sqlsrv&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour passer de la version &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt; à la version &amp;lt;code&amp;gt;1.0.1&amp;lt;/code&amp;gt; dans une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;, un fichier &amp;lt;code&amp;gt;1.0.1.sql&amp;lt;/code&amp;gt; doit être créé dans le dossier &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt; et la balise &amp;lt;code&amp;gt;&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; du manifest doit être mis à jour : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La structure finale du dossier sql ressemblera à ceci (dans l&#039;hypothèse d&#039;une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
sql&lt;br /&gt;
 |--&amp;gt;example.install.sql&lt;br /&gt;
 |--&amp;gt;example.uninstall.sql&lt;br /&gt;
 |--&amp;gt;updates&lt;br /&gt;
     |--&amp;gt;mysql&lt;br /&gt;
        |--&amp;gt;1.0.1.sql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des fichiers similaires doivent être créés pour les versions suivantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
===Fichiers langue===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Dans Joomla! 1.5, les développeurs d&#039;extensions devaient placer les fichiers de langue dans le dossier général des langues de Joomla! à l&#039;aide des balises &amp;amp;lt;languages&amp;amp;gt;...&amp;amp;lt;/languages&amp;amp;gt; comme indiqué ci-dessous. &#039;&#039;&#039;Cette méthode peut toujours être utilisée avec la version&#039;&#039;&#039; {{JVer|3.x}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Joomla! language tag --&amp;gt;&lt;br /&gt;
&amp;lt;languages folder=&amp;quot;langfiles&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_example.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Depuis Joomla! 1.6, il vous est conseillé de placer les fichiers langue de votre extension dans le dossier même de votre extension. Joomla! chargera alors automatiquement les fichiers de langue depuis votre extension.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En plaçant les fichiers de langue dans le dossier de l&#039;extension, vous permettez ainsi de les isoler et donc de les protéger. Par exemple, dans le cas ou un administrateur supprimerait une langue de son installation Joomlaǃ. Dans ce cas, les fichiers de langue de l&#039;extension ne seront pas supprimés. Ils resteront alors en place et ne seront accessibles que si la langue est installée à nouveau.&lt;br /&gt;
&lt;br /&gt;
La structure du dossier de langue pour le frontend et le backend est identique. Il convient de les placer dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; (par exemple &#039;&#039;&#039;en-GB&#039;&#039;&#039;) pour chaque langue et dans le dossier comme suit&amp;amp;nbsp;: &#039;&#039;&#039;language/en-GB/&#039;&#039;&#039;. Vous devez aussi spécifier ces dossiers pour le frontend et le backend.&lt;br /&gt;
&lt;br /&gt;
Dans votre manifest, il suffit simplement d&#039;inclure votre dossier &amp;lt;tt&amp;gt;&amp;lt;language&amp;gt;&amp;lt;/tt&amp;gt; dans la section fichiers. Les sous-répertoires pour chaque langue seront alors automatiquement copiés. À l&#039;intérieur des groupes &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il vous suffit d&#039;ajouter une balise &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt; à côté des éléments dans le groupe &amp;lt;tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/tt&amp;gt;, comme indiqué dans cet exemple&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;alpha&amp;quot;&amp;gt;alpha.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les deux techniques peuvent fonctionner ensemble. Voici un exemple du noyau&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;languagecode&amp;quot;&amp;gt;languagecode.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les avantages pour cette solution sont les suivants :&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers &#039;&#039;.ini&#039;&#039; présents dans le dossier du noyau ont la priorité sur les fichiers dans les dossiers langue des extensions.&lt;br /&gt;
Par exemple, s&#039;il existe, un fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; d&#039;un dossier du noyau sera toujours chargé dans le backend, sauf lors de l&#039;installation d&#039;une extension qui contient son propre fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans un dossier de langue. Dans ce cas et uniquement ce cas, le fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans le dossier de l&#039;extension affichera son contenu traduit au moment de l&#039;installation. C&#039;est très pratique car un développeur peut avoir deux fichiers &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; avec un contenu différent.&lt;br /&gt;
&lt;br /&gt;
Il est également beaucoup plus facile pour un utilisateur ayant besoin de trouver le fichier &amp;lt;tt&amp;gt;.ini&amp;lt;/tt&amp;gt; d&#039;une extension qui n&#039;est pas disponible dans sa langue de l&#039;ajouter dans le dossier principal. Il n&#039;y a aucun risque qu&#039;il ne soit supprimé en cas de désinstallation par erreur de l&#039;extension.&lt;br /&gt;
&lt;br /&gt;
Veuillez consulter également :&lt;br /&gt;
*[[S:MyLanguage/J2.5:Making non-core language packs|Créer un pack langue hors du noyau]]&lt;br /&gt;
*[[S:MyLanguage/Creating language packs for extensions in Joomla 2.5|Créer un pack langue pour une extension Joomla! 2.5]]&lt;br /&gt;
&lt;br /&gt;
Au cours du développement, vous pouvez activer le système de débogage de langue dans la configuration globale de Joomlaǃ. Vous pourrez découvrir si un problème est levé. Depuis {{JVer|3.2}}, cela est nécessaire afin d&#039;aider à déboguer le en-GB qui est &#039;&#039;&#039;toujours&#039;&#039;&#039; chargé en premier lorsque l&#039;on est pas en mode de débogage et ainsi empêcher l&#039;affichage des constantes.&lt;br /&gt;
&lt;br /&gt;
===Fichier de script===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;scriptfile&amp;gt;example.script.php&amp;lt;/scriptfile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Un &#039;&#039;&#039;fichier de script&#039;&#039;&#039; (code PHP qui est exécuté avant, pendant et/ou après l&#039;installation, la désinstallation ou la mise à jour) peut, en option, être défini à l&#039;aide d&#039;une balise &amp;lt;code&amp;gt;&amp;lt;scriptfile&amp;gt;&amp;lt;/code&amp;gt;. Ce fichier doit contenir une classe nommée &#039;&amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;InstallerScript&#039;&#039;&amp;lt;/tt&amp;gt; où &amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;&amp;lt;/tt&amp;gt; est le nom de votre extension (par exemple : com_nomducomposant, mod_nomdumodule, etc.). Pour les plugins, il convient de nommer également le groupe (par exemple : plgsystemnomduplugin). Les packages de bibliothèque ne prennent pas en charge les fichiers scripts. La structure de la classe sera comme suit :&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file should contain a class named &amp;quot;&amp;lt;element_name&amp;gt;InstallerScript&amp;quot; where &amp;lt;element_name&amp;gt; is the name of your extension (e.g. com_componentname, mod_modulename, etc.). Plugins must state the group (e.g. plgsystempluginname).&lt;br /&gt;
&lt;br /&gt;
In {{JVer|4.0}} and later the structure of the class is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
use Joomla\CMS\Installer\InstallerAdapter;&lt;br /&gt;
&lt;br /&gt;
class com_componentnameInstallerScript&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function __construct(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called before any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function preflight($route, InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called after any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function postflight($route, $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on installation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function install(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on update&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function update(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on uninstallation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function uninstall(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since Joomla 3.6 Joomla has shipped a basic script that you can use instead of shipping your own from scratch &#039;&#039;&#039;JInstallerScript&#039;&#039;&#039; which contains various helper methods commonly used through the community.&lt;br /&gt;
&lt;br /&gt;
=== Library Manifests === &lt;br /&gt;
{{notice|The section is based on {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
A simple library manifest might look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;library&amp;quot; method=&amp;quot;upgrade&amp;quot; version=&amp;quot;4.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;My Test library.&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mytest&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;Classes&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;mytest.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the library into the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mytest&amp;lt;/tt&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
What if your company has several libraries and you want to group them together under folder &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany&amp;lt;/tt&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Simple - include your company name in the &amp;lt;tt&amp;gt;libraryname&amp;lt;/tt&amp;gt; property of each library like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary1&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary2&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These libraries will then be installed in the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary2&amp;lt;/tt&amp;gt; folders.&lt;br /&gt;
&lt;br /&gt;
Uninstalling &amp;lt;tt&amp;gt;mylibrary1&amp;lt;/tt&amp;gt; will still leave &amp;lt;tt&amp;gt;mylibrary2&amp;lt;/tt&amp;gt; installed on your site.&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;tt&amp;gt;script files&amp;lt;/tt&amp;gt; with such company libraries the installer class name should look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary1InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary2InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
=== Serveurs de mise à jour ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;1&amp;quot; name=&amp;quot;Extension Update Site&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;collection&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;Collection Update Site&amp;quot;&amp;gt;http://example.com/collection.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les serveurs de mise à jour peuvent être définis dans les balises &amp;lt;code&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/code&amp;gt; comme enfant de la racine. Cet élément peut contenir une ou plusieurs balises &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; chacune avec la description depuis laquelle chercher les mises à jour. Chaque rubrique &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;collection&amp;lt;/code&amp;gt; || Le type de serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| priority || &#039;&#039;integer&#039;&#039; || La priorité du serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| name || &#039;&#039;string&#039;&#039; || Le nom du serveur de mise à jour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Pour plus d&#039;informations :&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing a MVC Component/Adding an update server|Création d&#039;une extension Joomla! - Ajout d&#039;un serveur de mise à jour]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Managing Component Updates|Gestion des mises à jour de composants pour Joomla! 2.5]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supporting Download Keys ===&lt;br /&gt;
&lt;br /&gt;
As of Joomla 4.0.0 users can enter their download keys in the Update Sites list. This gives them a single place to manage the download keys. When a user is going to update an extension, Joomla will check if there is a download key. If there is a download key, Joomla will add the download key to the update URL.&lt;br /&gt;
&lt;br /&gt;
To support download keys you must include the &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag in the manifest file. The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag takes 2 arguments:&lt;br /&gt;
* prefix&lt;br /&gt;
* suffix&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag will look like this in your manifest file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dlid prefix=&amp;quot;dlid=&amp;quot; suffix=&amp;quot;&amp;amp;amp;dummy=my.zip&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The prefix will be added before the download key and the suffix after the download key. Using the example above the full query added to the download link will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
dlid=KEY&amp;amp;amp;dummy=my.zip&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The key is added before the &amp;lt;tt&amp;gt;onInstallerBeforePackageDownload&amp;lt;/tt&amp;gt; event is triggered, so the full URL will be passed to the event.&lt;br /&gt;
&lt;br /&gt;
===Exemples=== &lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
== Exemples ==&lt;br /&gt;
Pour un exemple concret, veuillez consulter [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/components/com_banners/banners.xml le manifest pour le composant bannière de la version Joomla! 3.6.4].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D&#039;autres exemples peuvent être trouvés dans le répertoire autonome des liens web&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/administrator/components/com_weblinks/weblinks.xml manifest com_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/modules/mod_weblinks/mod_weblinks.xml manifest mod_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/plugins/search/weblinks/weblinks.xml manifest plg_search_weblinks]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/templates/protostar/templateDetails.xml manifest tpl_protostar (3.6.4)]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/language/en-GB/en-GB.xml manifest en-GB (3.6.4)]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Specifications{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/102/fr&amp;diff=963941</id>
		<title>Translations:Manifest files/102/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/102/fr&amp;diff=963941"/>
		<updated>2022-09-04T07:12:34Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Created page with &amp;quot;Notez que les chaînes de caractères de langues doivent être contenues à l&amp;#039;intérieur de guillemets doubles, comme toutes les chaînes de traductions habituelles de Joomla!.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Notez que les chaînes de caractères de langues doivent être contenues à l&#039;intérieur de guillemets doubles, comme toutes les chaînes de traductions habituelles de Joomla!.&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=963940</id>
		<title>Manifest files/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=963940"/>
		<updated>2022-09-04T07:09:41Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x}} {{Joomla version|version=3.x}} {{Joomla version|version=2.5|status=eos}} &lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Avec Joomla, toutes les extensions proposent des fichiers manifestes. Ces fichiers recouvrent les informations générales concernant l&#039;installation, ainsi que des paramètres pour la configuration de l&#039;[[S:MyLanguage/extension|extension]] elle-même. Depuis Joomla! 2.5, il existe très peu de différences entre les différents formats de fichiers manifestes en fonction des différents [[S:MyLanguage/Extension types (technical definitions)|types d&#039;extensions]] permettant ainsi à chaque type de bénéficier de la puissance de l&#039;installateur Joomla.&lt;br /&gt;
&lt;br /&gt;
==Conventions de nommage==&lt;br /&gt;
Le fichier doit être nommé &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5 et 3) ou &amp;lt;tt&amp;gt;&amp;lt;extension_name&amp;gt;.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5, 3 et 4) et situé dans le répertoire racine du package d&#039;installation.&lt;br /&gt;
&lt;br /&gt;
Joomla 4.x : la correspondance automatique du namespace va échouer si un nom de fichier tel que &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; est utilisé. Voir https://github.com/joomla/joomla-cms/issues/37750&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntaxe==&lt;br /&gt;
&lt;br /&gt;
===Élément à la racine===&lt;br /&gt;
{{notice|La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace l&#039;ancienne &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; de la version Joomla {{JVer|1.5}}}}&lt;br /&gt;
&lt;br /&gt;
La balise principale du fichier d&#039;installation est&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La balise ouvrante et fermante est la même pour toutes les extensions. Les attributs suivants sont autorisés à l&#039;intérieur de la balise&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Applicable à || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;language&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;element&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Cet attribut décrit à l&#039;installateur le type de l&#039;extension. En fonction de ce type, d&#039;autres d&#039;exigences supplémentaires s&#039;appliqueront aux sous-balises.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Chaîne de caractères qui identifie la version de Joomla! pour laquelle cette extension est développée. Ceci n&#039;est pas utilisé dans le version {{JVer|3.x}} et a été retiré de la version {{JVer|4.0}} et des versions ultérieures.&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| La valeur par défaut &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; sera également utilisée si l&#039;attribut &amp;lt;tt&amp;gt;method&amp;lt;/tt&amp;gt; n&#039;est pas utilisé. La valeur &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; signifie que l&#039;installateur va s&#039;arrêter s&#039;il trouve un fichier/dossier de la nouvelle extension.&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| &amp;lt;code&amp;gt;site&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;administrator&amp;lt;/code&amp;gt; || Modules&lt;br /&gt;
| L&#039;attribut &amp;lt;tt&amp;gt;client&amp;lt;/tt&amp;gt; permet de préciser pour quel type de client d&#039;application le nouveau module est disponible.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &#039;&#039;string&#039;&#039; || Plugins&lt;br /&gt;
| Le nom du groupe indique pour quels groupes de plugins le nouveau plugin est disponible. Les groupes existants sont les noms de dossier du répertoire &amp;lt;tt&amp;gt;/plugins&amp;lt;/tt&amp;gt;. Le programme d&#039;installation va créer de nouveaux noms de dossier pour les noms de groupe qui n&#039;existent pas encore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Métadonnées===&lt;br /&gt;
&lt;br /&gt;
Les éléments suivants peuvent être utilisés pour insérer des métadonnées. Aucun de ces éléments n&#039;est obligatoire et s&#039;ils sont présents, ils doivent être un enfant de l&#039;élément racine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt; &amp;amp;ndash; raw component name (e.g. com_banners). &lt;br /&gt;
&amp;lt;author&amp;gt; &amp;amp;ndash; author&#039;s name (e.g. Joomla! Project)&lt;br /&gt;
&amp;lt;creationDate&amp;gt; &amp;amp;ndash; date of creation or release (e.g. April 2006)&lt;br /&gt;
&amp;lt;copyright&amp;gt; &amp;amp;ndash; a copyright statement (e.g. (C) 2005 - 2011 Open Source Matters. All rights reserved.)&lt;br /&gt;
&amp;lt;license&amp;gt; &amp;amp;ndash; a license statement (e.g. NU General Public License version 2 or later; see LICENSE.txt)&lt;br /&gt;
&amp;lt;authorEmail&amp;gt; &amp;amp;ndash; author&#039;s email address (e.g. admin@joomla.org)&lt;br /&gt;
&amp;lt;authorUrl&amp;gt; &amp;amp;ndash; URL to the author&#039;s website (e.g. www.joomla.org)&lt;br /&gt;
&amp;lt;version&amp;gt; &amp;amp;ndash; the version number of the extension (e.g. 1.6.0)&lt;br /&gt;
&amp;lt;description&amp;gt; &amp;amp;ndash; the description of the component. This is a translatable field. (e.g. COM_BANNERS_XML_DESCRIPTION)&lt;br /&gt;
&amp;lt;element&amp;gt; &amp;amp;ndash; the internal name of the component. If omitted, name will be cleaned and used&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remarque : les balises &amp;lt;name&amp;gt; et &amp;lt;description&amp;gt; sont des champs traduisibles de sorte que le nom et la description de l&#039;extension pourront être présents dans la langue maternelle de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Fichiers de frontend ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;from-folder&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;example.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;examples&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de frontend doivent être placés dans les balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; en option pour spécifier un répertoire &#039;&#039;&#039;du package ZIP&#039;&#039;&#039;. Chaque fichier à copier doit être nommé par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;. Si vous souhaitez copier un dossier entier à la fois, vous pouvez le définir comme un &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les &#039;&#039;&#039;plugins&#039;&#039;&#039;, le nom brut du plugin doit être placé dans l&#039;attribut &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; de l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; qui pointe vers le fichier contenant la classe du plugin. Par exemple, dans le cas d&#039;un système de plugin appelé &amp;quot;exemple&amp;quot; (nom complet : &amp;lt;code&amp;gt;plg_system_exemple&amp;lt;/code&amp;gt;), il faudra utiliser &amp;lt;code&amp;gt;&amp;lt;filename plugin=&amp;quot;exemple&amp;quot;&amp;gt;exemple.php&amp;lt;/filename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Fichiers multimédias===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
	&amp;lt;media folder=&amp;quot;media&amp;quot; destination=&amp;quot;com_example&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;com_example_logo.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;css&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;js&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple permet de copier le fichier (&amp;lt;tt&amp;gt;/media/com_example_logo.png&amp;lt;/tt&amp;gt;) et les dossiers ( &amp;lt;tt&amp;gt;/media/css/&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;/media/js/&amp;lt;/tt&amp;gt; ) listés vers &amp;lt;tt&amp;gt;/media/com_example/&amp;lt;/tt&amp;gt;, ainsi que la création du dossier &amp;lt;tt&amp;gt;com_example&amp;lt;/tt&amp;gt; si nécessaire. Vous pouvez utiliser en option l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire &#039;&#039;&#039;dans le package ZIP&#039;&#039;&#039; à partir duquel réaliser la (dans ce cas, &amp;lt;tt&amp;gt;media&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les extensions doivent stocker les éléments, dont elles ont besoin pour être accessible sur le web (JS, CSS, images, etc), dans &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;. Cette fonctionnalité a été ajoutée dans le cadre du projet de développement d&#039;une interface multi-site et du placement éventuel de fichiers de code (PHP) en dehors des espaces web serveurs accessibles.&amp;lt;br /&amp;gt;Remarque: la section médias n&#039;est pas analysé pour les extensions de type &#039;package&#039;.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/4CAASJqFY-k/PvPj14gP29EJ Google Groups - joomla-dev-cms thread]&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/uNmhX98sKbE/p8p68Jke680J Google Groups - joomla-dev-cms thread]&lt;br /&gt;
&lt;br /&gt;
===Section de l&#039;administration===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- various elements --&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section d&#039;administration est définie par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Puisque seuls les [[S:MyLanguage/Component|composants]] concernent à la fois l&#039;espace [[S:MyLanguage/Site (Application)|site]] et celui d&#039;[[S:MyLanguage/Administrator (Application)|administration]], &#039;&#039;&#039;seuls les manifests pour composants doivent intégrer ces éléments&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Fichiers de backend====&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de backend doivent être placés dans l&#039;élément &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; sous &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut optionnel &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire à copier depuis le &#039;&#039;&#039;pack ZIP&#039;&#039;&#039;. Voir les &#039;&#039;fichiers frontend&#039;&#039; pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
====Liens de menu et sous-menus====&lt;br /&gt;
{{dablink|&#039;&#039;&#039;Note de version :&#039;&#039;&#039; avant Joomla! 3.4, le fait de ne pas avoir de balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; dans votre fichier XML avait pour conséquence l création d&#039;un élément de menu. Cette anomalie a été corrigée dans Joomla! 3.4 et ainsi, si aucune balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; n&#039;est présente dans votre fichier manifest, aucun menu d&#039;administration ne sera créé pour le composant.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;menu&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;submenu&amp;gt;&lt;br /&gt;
		&amp;lt;!--&lt;br /&gt;
			Note that all &amp;amp; must be escaped to &amp;amp;amp; for the file to be valid&lt;br /&gt;
			XML and be parsed by the installer&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&amp;quot;anoption=avalue&amp;amp;amp;anoption1=avalue1&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_ANOPTION&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;menu view=&amp;quot;viewname&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_VIEWNAME&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;/submenu&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte pour l&#039;élément du menu principal pour le composant est défini dans la balise &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;, enfant de de la balise &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;submenu&amp;gt;&amp;lt;/code&amp;gt; peut être présente (également comme enfant de &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;), qui pourra contenir d&#039;autres éléments de menu définis par &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En outre, chaque élément &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || Description&lt;br /&gt;
|-&lt;br /&gt;
| link || Un lien vers lequel renvoyer l&#039;utilisateur lorsque l&#039;élément de menu est cliqué. Vous pouvez utiliser &amp;quot;view&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
| img || Le chemin (relatif) à une image (16x16 pixels) qui apparait à côté de l&#039;élément de menu. &lt;br /&gt;
&amp;lt;u&amp;gt;Doit être url compatible (par exemple sans espaces).&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| alt ||&lt;br /&gt;
|-&lt;br /&gt;
| view || Un paramètre URL à ajouter au lien. Par exemple, &amp;lt;code&amp;gt;&amp;lt;menu view=&amp;quot;cpanel&amp;quot;&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&amp;lt;/code&amp;gt; dans le manifest XML com_example générerait l&#039;URL de l&#039;élément de menu &amp;lt;tt&amp;gt;index.php?option=com_example&amp;amp;view=cpanel&amp;lt;/tt&amp;gt;. Vous pouvez utiliser &amp;quot;link&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La valeur à l&#039;intérieur de la balise est le nom du menu. À La différence de ce qui se faisait pour Joomla! 1.5, vous ne pouvez pas utiliser une chaîne de caractère dans votre langue naturelle. Par exemple, si vous renseignez &amp;quot;Composant d&#039;exemple&amp;quot; au lieu de COM_EXAMPLE, votre nom de composant qui s&#039;afficherait en titre serait &amp;quot;composant-d-exemple&amp;quot; et vous seriez dans l&#039;impossibilité de le traduire. Pour réaliser une traduction, vous devez créer un fichier nommé &amp;lt;tt&amp;gt;fr-FR.com_example.sys.ini&amp;lt;/tt&amp;gt; &#039;&#039;&#039;(NDT : avant de pouvoir créer le fichier fr-FR, il convient de créer le fichier d&#039;origine en-GB)&#039;&#039;&#039; dans &amp;lt;tt&amp;gt;administrator/languages/fr-FR&amp;lt;/tt&amp;gt; (vous pouvez utiliser la balise manifest &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; pour qu&#039;il soit copié lors de l&#039;installation) ou dans &amp;lt;tt&amp;gt;administrator/components/com_example/language/fr-FR&amp;lt;/tt&amp;gt;. Dans ce dernier cas, vous ne devez pas inclure le fichier de traduction dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; balise. Tant que vous aurez placé le répertoire de langue dans vos balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il sera copié lors de l&#039;installation du composant.&lt;br /&gt;
&lt;br /&gt;
Le contenu de ce fichier devrait être :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
COM_EXAMPLE=&amp;quot;Example Component&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_ANOPTION=&amp;quot;Another Option&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_VIEWNAME=&amp;quot;Another View&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the language string must be enclosed in double quotes, as per Joomla!&#039;s translation standards.&lt;br /&gt;
&lt;br /&gt;
{{note|Joomla! 1.6 and later sorts the Component menu items based on the actual translation of the key you supply in your XML manifest. This means that the sorting order is correct no matter what you call your translation key and no matter which language the site is being displayed in. Essentially, Joomla! 1.6 fixed the wrong sorting of the Components menu experienced under Joomla! 1.5 for the majority (non-English speaking!) of Joomla! users.}}&lt;br /&gt;
&lt;br /&gt;
=== Dashboards === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specifies the details for displaying a dashboard for the component in the Administrator area for the site.&lt;br /&gt;
* It will make a dashboard icon appear next to the administrator menu item for the component&lt;br /&gt;
* The dashboard icon will click through to display modules assigned to the cpanel-example administrator module position&lt;br /&gt;
* The title and icon defined in the XML file will be used as the header and icon at the top of the component&#039;s dashboard page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dashboards&amp;gt;&lt;br /&gt;
		&amp;lt;dashboard title=&amp;quot;COM_EXAMPLE_DASHBOARD_TITLE&amp;quot; icon=&amp;quot;icon-lock&amp;quot;&amp;gt;example&amp;lt;/dashboard&amp;gt;&lt;br /&gt;
	&amp;lt;/dashboards&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
{{warning|&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Les composants &#039;&#039;&#039;ne prennent pas en charge&#039;&#039;&#039; les définitions de configuration &#039;&#039;&#039;dans le manifeste&#039;&#039;&#039;. Ceci avait été mis en œuvre dans Joomla! 1.5. Ils est possible de définir les options de configuration pour différents niveaux à l&#039;aide des [[S:MyLanguage/Component configuration metadata|métadonnées de configuration de composant]].&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;, enfant de la racine, décrit les options de configuration de l&#039;extension. En cas de besoin, les options seront affichées par le gestionnaire concerné (gestionnaire de plugins, gestionnaire de modules ou gestionnaire de templates). &#039;&#039;&#039;Les options de configuration peuvent également être définies dans un fichier séparé nommé &amp;lt;code&amp;gt;config.xml&amp;lt;/code&amp;gt;. Son élément racine doit être &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de champs &amp;lt;code&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/code&amp;gt; peut contenir un ou plusieurs éléments &amp;lt;code&amp;gt;&amp;lt;field&amp;gt;&amp;lt;/code&amp;gt; (champ), chacun représentant un seul [[S:MyLanguage/form field|champ de formulaire]] avec une étiquette. Consultez les [[S:MyLanguage/Standard form field types|types de champs pour formulaires standards]] pour une liste des types de champs autorisés et un exemple de définitions de champs de formulaire XML.&lt;br /&gt;
&lt;br /&gt;
=== Namespace === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specify the namespace to be used for autoloading the plugin. The given namespace will autoload to the root directory of your extension by default however you can optionally add a &amp;quot;path&amp;quot; attribute to the namespace element to specify a subpath within your extensions root directory.&lt;br /&gt;
&lt;br /&gt;
===SQL===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;install&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.install.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/install&amp;gt;&lt;br /&gt;
    &amp;lt;uninstall&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.uninstall.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/uninstall&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;exemple ci-dessus, nous avons placé les fichiers SQL dans le répertoire &amp;lt;tt&amp;gt;admin/sql&amp;lt;/tt&amp;gt; du paquet d&#039;installation. Vous devez inclure le dossier &amp;lt;tt&amp;gt;sql&amp;lt;/tt&amp;gt; dans les fichiers d&#039;administration (tel que décrit dans &amp;quot;les fichiers backend&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez exécuter SQL lors de l&#039;installation et/ou la désinstallation à l&#039;aide des éléments &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;lt;uninstall&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; doit apparaître comme un enfant de ces éléments. &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; peut contenir n&#039;importe quel nombre d&#039;éléments &amp;lt;code&amp;gt;&amp;lt;file&amp;gt;&amp;lt;/code&amp;gt;, chacun devant définir un seul fichier SQL à exécuter. Leurs types de pilote de base de données sont décrits par l&#039;attribut &amp;lt;code&amp;gt;driver&amp;lt;/code&amp;gt;, leurs jeux de caractères par l&#039;attribut &amp;lt;code&amp;gt;charset&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
==== Mise à jour du schéma SQL====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depuis la version 1.6, une balise &amp;lt;code&amp;gt;&amp;lt;update&amp;gt;&amp;lt;/code&amp;gt; est disponible et vous permet de fournir une série de fichiers SQL pour mettre à jour le schéma actuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;sqlsrv&amp;quot;&amp;gt;sql/updates/sqlsrv&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour passer de la version &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt; à la version &amp;lt;code&amp;gt;1.0.1&amp;lt;/code&amp;gt; dans une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;, un fichier &amp;lt;code&amp;gt;1.0.1.sql&amp;lt;/code&amp;gt; doit être créé dans le dossier &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt; et la balise &amp;lt;code&amp;gt;&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; du manifest doit être mis à jour : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La structure finale du dossier sql ressemblera à ceci (dans l&#039;hypothèse d&#039;une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
sql&lt;br /&gt;
 |--&amp;gt;example.install.sql&lt;br /&gt;
 |--&amp;gt;example.uninstall.sql&lt;br /&gt;
 |--&amp;gt;updates&lt;br /&gt;
     |--&amp;gt;mysql&lt;br /&gt;
        |--&amp;gt;1.0.1.sql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des fichiers similaires doivent être créés pour les versions suivantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
===Fichiers langue===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Dans Joomla! 1.5, les développeurs d&#039;extensions devaient placer les fichiers de langue dans le dossier général des langues de Joomla! à l&#039;aide des balises &amp;amp;lt;languages&amp;amp;gt;...&amp;amp;lt;/languages&amp;amp;gt; comme indiqué ci-dessous. &#039;&#039;&#039;Cette méthode peut toujours être utilisée avec la version&#039;&#039;&#039; {{JVer|3.x}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Joomla! language tag --&amp;gt;&lt;br /&gt;
&amp;lt;languages folder=&amp;quot;langfiles&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_example.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Depuis Joomla! 1.6, il vous est conseillé de placer les fichiers langue de votre extension dans le dossier même de votre extension. Joomla! chargera alors automatiquement les fichiers de langue depuis votre extension.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En plaçant les fichiers de langue dans le dossier de l&#039;extension, vous permettez ainsi de les isoler et donc de les protéger. Par exemple, dans le cas ou un administrateur supprimerait une langue de son installation Joomlaǃ. Dans ce cas, les fichiers de langue de l&#039;extension ne seront pas supprimés. Ils resteront alors en place et ne seront accessibles que si la langue est installée à nouveau.&lt;br /&gt;
&lt;br /&gt;
La structure du dossier de langue pour le frontend et le backend est identique. Il convient de les placer dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; (par exemple &#039;&#039;&#039;en-GB&#039;&#039;&#039;) pour chaque langue et dans le dossier comme suit&amp;amp;nbsp;: &#039;&#039;&#039;language/en-GB/&#039;&#039;&#039;. Vous devez aussi spécifier ces dossiers pour le frontend et le backend.&lt;br /&gt;
&lt;br /&gt;
Dans votre manifest, il suffit simplement d&#039;inclure votre dossier &amp;lt;tt&amp;gt;&amp;lt;language&amp;gt;&amp;lt;/tt&amp;gt; dans la section fichiers. Les sous-répertoires pour chaque langue seront alors automatiquement copiés. À l&#039;intérieur des groupes &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il vous suffit d&#039;ajouter une balise &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt; à côté des éléments dans le groupe &amp;lt;tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/tt&amp;gt;, comme indiqué dans cet exemple&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;alpha&amp;quot;&amp;gt;alpha.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les deux techniques peuvent fonctionner ensemble. Voici un exemple du noyau&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;languagecode&amp;quot;&amp;gt;languagecode.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les avantages pour cette solution sont les suivants :&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers &#039;&#039;.ini&#039;&#039; présents dans le dossier du noyau ont la priorité sur les fichiers dans les dossiers langue des extensions.&lt;br /&gt;
Par exemple, s&#039;il existe, un fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; d&#039;un dossier du noyau sera toujours chargé dans le backend, sauf lors de l&#039;installation d&#039;une extension qui contient son propre fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans un dossier de langue. Dans ce cas et uniquement ce cas, le fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans le dossier de l&#039;extension affichera son contenu traduit au moment de l&#039;installation. C&#039;est très pratique car un développeur peut avoir deux fichiers &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; avec un contenu différent.&lt;br /&gt;
&lt;br /&gt;
Il est également beaucoup plus facile pour un utilisateur ayant besoin de trouver le fichier &amp;lt;tt&amp;gt;.ini&amp;lt;/tt&amp;gt; d&#039;une extension qui n&#039;est pas disponible dans sa langue de l&#039;ajouter dans le dossier principal. Il n&#039;y a aucun risque qu&#039;il ne soit supprimé en cas de désinstallation par erreur de l&#039;extension.&lt;br /&gt;
&lt;br /&gt;
Veuillez consulter également :&lt;br /&gt;
*[[S:MyLanguage/J2.5:Making non-core language packs|Créer un pack langue hors du noyau]]&lt;br /&gt;
*[[S:MyLanguage/Creating language packs for extensions in Joomla 2.5|Créer un pack langue pour une extension Joomla! 2.5]]&lt;br /&gt;
&lt;br /&gt;
Au cours du développement, vous pouvez activer le système de débogage de langue dans la configuration globale de Joomlaǃ. Vous pourrez découvrir si un problème est levé. Depuis {{JVer|3.2}}, cela est nécessaire afin d&#039;aider à déboguer le en-GB qui est &#039;&#039;&#039;toujours&#039;&#039;&#039; chargé en premier lorsque l&#039;on est pas en mode de débogage et ainsi empêcher l&#039;affichage des constantes.&lt;br /&gt;
&lt;br /&gt;
===Fichier de script===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;scriptfile&amp;gt;example.script.php&amp;lt;/scriptfile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Un &#039;&#039;&#039;fichier de script&#039;&#039;&#039; (code PHP qui est exécuté avant, pendant et/ou après l&#039;installation, la désinstallation ou la mise à jour) peut, en option, être défini à l&#039;aide d&#039;une balise &amp;lt;code&amp;gt;&amp;lt;scriptfile&amp;gt;&amp;lt;/code&amp;gt;. Ce fichier doit contenir une classe nommée &#039;&amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;InstallerScript&#039;&#039;&amp;lt;/tt&amp;gt; où &amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;&amp;lt;/tt&amp;gt; est le nom de votre extension (par exemple : com_nomducomposant, mod_nomdumodule, etc.). Pour les plugins, il convient de nommer également le groupe (par exemple : plgsystemnomduplugin). Les packages de bibliothèque ne prennent pas en charge les fichiers scripts. La structure de la classe sera comme suit :&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file should contain a class named &amp;quot;&amp;lt;element_name&amp;gt;InstallerScript&amp;quot; where &amp;lt;element_name&amp;gt; is the name of your extension (e.g. com_componentname, mod_modulename, etc.). Plugins must state the group (e.g. plgsystempluginname).&lt;br /&gt;
&lt;br /&gt;
In {{JVer|4.0}} and later the structure of the class is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
use Joomla\CMS\Installer\InstallerAdapter;&lt;br /&gt;
&lt;br /&gt;
class com_componentnameInstallerScript&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function __construct(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called before any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function preflight($route, InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called after any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function postflight($route, $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on installation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function install(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on update&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function update(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on uninstallation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function uninstall(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since Joomla 3.6 Joomla has shipped a basic script that you can use instead of shipping your own from scratch &#039;&#039;&#039;JInstallerScript&#039;&#039;&#039; which contains various helper methods commonly used through the community.&lt;br /&gt;
&lt;br /&gt;
=== Library Manifests === &lt;br /&gt;
{{notice|The section is based on {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
A simple library manifest might look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;library&amp;quot; method=&amp;quot;upgrade&amp;quot; version=&amp;quot;4.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;My Test library.&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mytest&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;Classes&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;mytest.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the library into the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mytest&amp;lt;/tt&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
What if your company has several libraries and you want to group them together under folder &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany&amp;lt;/tt&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Simple - include your company name in the &amp;lt;tt&amp;gt;libraryname&amp;lt;/tt&amp;gt; property of each library like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary1&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary2&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These libraries will then be installed in the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary2&amp;lt;/tt&amp;gt; folders.&lt;br /&gt;
&lt;br /&gt;
Uninstalling &amp;lt;tt&amp;gt;mylibrary1&amp;lt;/tt&amp;gt; will still leave &amp;lt;tt&amp;gt;mylibrary2&amp;lt;/tt&amp;gt; installed on your site.&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;tt&amp;gt;script files&amp;lt;/tt&amp;gt; with such company libraries the installer class name should look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary1InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary2InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
=== Serveurs de mise à jour ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;1&amp;quot; name=&amp;quot;Extension Update Site&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;collection&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;Collection Update Site&amp;quot;&amp;gt;http://example.com/collection.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les serveurs de mise à jour peuvent être définis dans les balises &amp;lt;code&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/code&amp;gt; comme enfant de la racine. Cet élément peut contenir une ou plusieurs balises &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; chacune avec la description depuis laquelle chercher les mises à jour. Chaque rubrique &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;collection&amp;lt;/code&amp;gt; || Le type de serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| priority || &#039;&#039;integer&#039;&#039; || La priorité du serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| name || &#039;&#039;string&#039;&#039; || Le nom du serveur de mise à jour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Pour plus d&#039;informations :&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing a MVC Component/Adding an update server|Création d&#039;une extension Joomla! - Ajout d&#039;un serveur de mise à jour]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Managing Component Updates|Gestion des mises à jour de composants pour Joomla! 2.5]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supporting Download Keys ===&lt;br /&gt;
&lt;br /&gt;
As of Joomla 4.0.0 users can enter their download keys in the Update Sites list. This gives them a single place to manage the download keys. When a user is going to update an extension, Joomla will check if there is a download key. If there is a download key, Joomla will add the download key to the update URL.&lt;br /&gt;
&lt;br /&gt;
To support download keys you must include the &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag in the manifest file. The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag takes 2 arguments:&lt;br /&gt;
* prefix&lt;br /&gt;
* suffix&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag will look like this in your manifest file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dlid prefix=&amp;quot;dlid=&amp;quot; suffix=&amp;quot;&amp;amp;amp;dummy=my.zip&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The prefix will be added before the download key and the suffix after the download key. Using the example above the full query added to the download link will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
dlid=KEY&amp;amp;amp;dummy=my.zip&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The key is added before the &amp;lt;tt&amp;gt;onInstallerBeforePackageDownload&amp;lt;/tt&amp;gt; event is triggered, so the full URL will be passed to the event.&lt;br /&gt;
&lt;br /&gt;
===Exemples=== &lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
== Exemples ==&lt;br /&gt;
Pour un exemple concret, veuillez consulter [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/components/com_banners/banners.xml le manifest pour le composant bannière de la version Joomla! 3.6.4].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D&#039;autres exemples peuvent être trouvés dans le répertoire autonome des liens web&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/administrator/components/com_weblinks/weblinks.xml manifest com_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/modules/mod_weblinks/mod_weblinks.xml manifest mod_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/plugins/search/weblinks/weblinks.xml manifest plg_search_weblinks]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/templates/protostar/templateDetails.xml manifest tpl_protostar (3.6.4)]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/language/en-GB/en-GB.xml manifest en-GB (3.6.4)]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Specifications{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/13/fr&amp;diff=963939</id>
		<title>Translations:Manifest files/13/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/13/fr&amp;diff=963939"/>
		<updated>2022-09-04T07:09:38Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Chaîne de caractères qui identifie la version de Joomla! pour laquelle cette extension est développée. Ceci n&#039;est pas utilisé dans le version {{JVer|3.x}} et a été retiré de la version {{JVer|4.0}} et des versions ultérieures.&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=963938</id>
		<title>Manifest files/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=963938"/>
		<updated>2022-09-04T07:09:10Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x}} {{Joomla version|version=3.x}} {{Joomla version|version=2.5|status=eos}} &lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Avec Joomla, toutes les extensions proposent des fichiers manifestes. Ces fichiers recouvrent les informations générales concernant l&#039;installation, ainsi que des paramètres pour la configuration de l&#039;[[S:MyLanguage/extension|extension]] elle-même. Depuis Joomla! 2.5, il existe très peu de différences entre les différents formats de fichiers manifestes en fonction des différents [[S:MyLanguage/Extension types (technical definitions)|types d&#039;extensions]] permettant ainsi à chaque type de bénéficier de la puissance de l&#039;installateur Joomla.&lt;br /&gt;
&lt;br /&gt;
==Conventions de nommage==&lt;br /&gt;
Le fichier doit être nommé &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5 et 3) ou &amp;lt;tt&amp;gt;&amp;lt;extension_name&amp;gt;.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5, 3 et 4) et situé dans le répertoire racine du package d&#039;installation.&lt;br /&gt;
&lt;br /&gt;
Joomla 4.x : la correspondance automatique du namespace va échouer si un nom de fichier tel que &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; est utilisé. Voir https://github.com/joomla/joomla-cms/issues/37750&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntaxe==&lt;br /&gt;
&lt;br /&gt;
===Élément à la racine===&lt;br /&gt;
{{notice|La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace l&#039;ancienne &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; de la version Joomla {{JVer|1.5}}}}&lt;br /&gt;
&lt;br /&gt;
La balise principale du fichier d&#039;installation est&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La balise ouvrante et fermante est la même pour toutes les extensions. Les attributs suivants sont autorisés à l&#039;intérieur de la balise&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Applicable à || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;language&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;element&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Cet attribut décrit à l&#039;installateur le type de l&#039;extension. En fonction de ce type, d&#039;autres d&#039;exigences supplémentaires s&#039;appliqueront aux sous-balises.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Chaîne de caractères qui identifie la version de Joomla! pour laquelle cette extension est développée. Ceci n&#039;est pas utilisé dans le version {{JVer|3.x}} et a été retiré de la version {{JVer|4.0}} et des versions postérieures.&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| La valeur par défaut &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; sera également utilisée si l&#039;attribut &amp;lt;tt&amp;gt;method&amp;lt;/tt&amp;gt; n&#039;est pas utilisé. La valeur &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; signifie que l&#039;installateur va s&#039;arrêter s&#039;il trouve un fichier/dossier de la nouvelle extension.&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| &amp;lt;code&amp;gt;site&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;administrator&amp;lt;/code&amp;gt; || Modules&lt;br /&gt;
| L&#039;attribut &amp;lt;tt&amp;gt;client&amp;lt;/tt&amp;gt; permet de préciser pour quel type de client d&#039;application le nouveau module est disponible.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &#039;&#039;string&#039;&#039; || Plugins&lt;br /&gt;
| Le nom du groupe indique pour quels groupes de plugins le nouveau plugin est disponible. Les groupes existants sont les noms de dossier du répertoire &amp;lt;tt&amp;gt;/plugins&amp;lt;/tt&amp;gt;. Le programme d&#039;installation va créer de nouveaux noms de dossier pour les noms de groupe qui n&#039;existent pas encore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Métadonnées===&lt;br /&gt;
&lt;br /&gt;
Les éléments suivants peuvent être utilisés pour insérer des métadonnées. Aucun de ces éléments n&#039;est obligatoire et s&#039;ils sont présents, ils doivent être un enfant de l&#039;élément racine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt; &amp;amp;ndash; raw component name (e.g. com_banners). &lt;br /&gt;
&amp;lt;author&amp;gt; &amp;amp;ndash; author&#039;s name (e.g. Joomla! Project)&lt;br /&gt;
&amp;lt;creationDate&amp;gt; &amp;amp;ndash; date of creation or release (e.g. April 2006)&lt;br /&gt;
&amp;lt;copyright&amp;gt; &amp;amp;ndash; a copyright statement (e.g. (C) 2005 - 2011 Open Source Matters. All rights reserved.)&lt;br /&gt;
&amp;lt;license&amp;gt; &amp;amp;ndash; a license statement (e.g. NU General Public License version 2 or later; see LICENSE.txt)&lt;br /&gt;
&amp;lt;authorEmail&amp;gt; &amp;amp;ndash; author&#039;s email address (e.g. admin@joomla.org)&lt;br /&gt;
&amp;lt;authorUrl&amp;gt; &amp;amp;ndash; URL to the author&#039;s website (e.g. www.joomla.org)&lt;br /&gt;
&amp;lt;version&amp;gt; &amp;amp;ndash; the version number of the extension (e.g. 1.6.0)&lt;br /&gt;
&amp;lt;description&amp;gt; &amp;amp;ndash; the description of the component. This is a translatable field. (e.g. COM_BANNERS_XML_DESCRIPTION)&lt;br /&gt;
&amp;lt;element&amp;gt; &amp;amp;ndash; the internal name of the component. If omitted, name will be cleaned and used&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remarque : les balises &amp;lt;name&amp;gt; et &amp;lt;description&amp;gt; sont des champs traduisibles de sorte que le nom et la description de l&#039;extension pourront être présents dans la langue maternelle de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Fichiers de frontend ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;from-folder&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;example.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;examples&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de frontend doivent être placés dans les balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; en option pour spécifier un répertoire &#039;&#039;&#039;du package ZIP&#039;&#039;&#039;. Chaque fichier à copier doit être nommé par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;. Si vous souhaitez copier un dossier entier à la fois, vous pouvez le définir comme un &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les &#039;&#039;&#039;plugins&#039;&#039;&#039;, le nom brut du plugin doit être placé dans l&#039;attribut &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; de l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; qui pointe vers le fichier contenant la classe du plugin. Par exemple, dans le cas d&#039;un système de plugin appelé &amp;quot;exemple&amp;quot; (nom complet : &amp;lt;code&amp;gt;plg_system_exemple&amp;lt;/code&amp;gt;), il faudra utiliser &amp;lt;code&amp;gt;&amp;lt;filename plugin=&amp;quot;exemple&amp;quot;&amp;gt;exemple.php&amp;lt;/filename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Fichiers multimédias===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
	&amp;lt;media folder=&amp;quot;media&amp;quot; destination=&amp;quot;com_example&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;com_example_logo.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;css&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;js&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple permet de copier le fichier (&amp;lt;tt&amp;gt;/media/com_example_logo.png&amp;lt;/tt&amp;gt;) et les dossiers ( &amp;lt;tt&amp;gt;/media/css/&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;/media/js/&amp;lt;/tt&amp;gt; ) listés vers &amp;lt;tt&amp;gt;/media/com_example/&amp;lt;/tt&amp;gt;, ainsi que la création du dossier &amp;lt;tt&amp;gt;com_example&amp;lt;/tt&amp;gt; si nécessaire. Vous pouvez utiliser en option l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire &#039;&#039;&#039;dans le package ZIP&#039;&#039;&#039; à partir duquel réaliser la (dans ce cas, &amp;lt;tt&amp;gt;media&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les extensions doivent stocker les éléments, dont elles ont besoin pour être accessible sur le web (JS, CSS, images, etc), dans &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;. Cette fonctionnalité a été ajoutée dans le cadre du projet de développement d&#039;une interface multi-site et du placement éventuel de fichiers de code (PHP) en dehors des espaces web serveurs accessibles.&amp;lt;br /&amp;gt;Remarque: la section médias n&#039;est pas analysé pour les extensions de type &#039;package&#039;.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/4CAASJqFY-k/PvPj14gP29EJ Google Groups - joomla-dev-cms thread]&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/uNmhX98sKbE/p8p68Jke680J Google Groups - joomla-dev-cms thread]&lt;br /&gt;
&lt;br /&gt;
===Section de l&#039;administration===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- various elements --&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section d&#039;administration est définie par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Puisque seuls les [[S:MyLanguage/Component|composants]] concernent à la fois l&#039;espace [[S:MyLanguage/Site (Application)|site]] et celui d&#039;[[S:MyLanguage/Administrator (Application)|administration]], &#039;&#039;&#039;seuls les manifests pour composants doivent intégrer ces éléments&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Fichiers de backend====&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de backend doivent être placés dans l&#039;élément &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; sous &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut optionnel &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire à copier depuis le &#039;&#039;&#039;pack ZIP&#039;&#039;&#039;. Voir les &#039;&#039;fichiers frontend&#039;&#039; pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
====Liens de menu et sous-menus====&lt;br /&gt;
{{dablink|&#039;&#039;&#039;Note de version :&#039;&#039;&#039; avant Joomla! 3.4, le fait de ne pas avoir de balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; dans votre fichier XML avait pour conséquence l création d&#039;un élément de menu. Cette anomalie a été corrigée dans Joomla! 3.4 et ainsi, si aucune balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; n&#039;est présente dans votre fichier manifest, aucun menu d&#039;administration ne sera créé pour le composant.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;menu&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;submenu&amp;gt;&lt;br /&gt;
		&amp;lt;!--&lt;br /&gt;
			Note that all &amp;amp; must be escaped to &amp;amp;amp; for the file to be valid&lt;br /&gt;
			XML and be parsed by the installer&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&amp;quot;anoption=avalue&amp;amp;amp;anoption1=avalue1&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_ANOPTION&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;menu view=&amp;quot;viewname&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_VIEWNAME&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;/submenu&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte pour l&#039;élément du menu principal pour le composant est défini dans la balise &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;, enfant de de la balise &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;submenu&amp;gt;&amp;lt;/code&amp;gt; peut être présente (également comme enfant de &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;), qui pourra contenir d&#039;autres éléments de menu définis par &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En outre, chaque élément &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || Description&lt;br /&gt;
|-&lt;br /&gt;
| link || Un lien vers lequel renvoyer l&#039;utilisateur lorsque l&#039;élément de menu est cliqué. Vous pouvez utiliser &amp;quot;view&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
| img || Le chemin (relatif) à une image (16x16 pixels) qui apparait à côté de l&#039;élément de menu. &lt;br /&gt;
&amp;lt;u&amp;gt;Doit être url compatible (par exemple sans espaces).&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| alt ||&lt;br /&gt;
|-&lt;br /&gt;
| view || Un paramètre URL à ajouter au lien. Par exemple, &amp;lt;code&amp;gt;&amp;lt;menu view=&amp;quot;cpanel&amp;quot;&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&amp;lt;/code&amp;gt; dans le manifest XML com_example générerait l&#039;URL de l&#039;élément de menu &amp;lt;tt&amp;gt;index.php?option=com_example&amp;amp;view=cpanel&amp;lt;/tt&amp;gt;. Vous pouvez utiliser &amp;quot;link&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La valeur à l&#039;intérieur de la balise est le nom du menu. À La différence de ce qui se faisait pour Joomla! 1.5, vous ne pouvez pas utiliser une chaîne de caractère dans votre langue naturelle. Par exemple, si vous renseignez &amp;quot;Composant d&#039;exemple&amp;quot; au lieu de COM_EXAMPLE, votre nom de composant qui s&#039;afficherait en titre serait &amp;quot;composant-d-exemple&amp;quot; et vous seriez dans l&#039;impossibilité de le traduire. Pour réaliser une traduction, vous devez créer un fichier nommé &amp;lt;tt&amp;gt;fr-FR.com_example.sys.ini&amp;lt;/tt&amp;gt; &#039;&#039;&#039;(NDT : avant de pouvoir créer le fichier fr-FR, il convient de créer le fichier d&#039;origine en-GB)&#039;&#039;&#039; dans &amp;lt;tt&amp;gt;administrator/languages/fr-FR&amp;lt;/tt&amp;gt; (vous pouvez utiliser la balise manifest &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; pour qu&#039;il soit copié lors de l&#039;installation) ou dans &amp;lt;tt&amp;gt;administrator/components/com_example/language/fr-FR&amp;lt;/tt&amp;gt;. Dans ce dernier cas, vous ne devez pas inclure le fichier de traduction dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; balise. Tant que vous aurez placé le répertoire de langue dans vos balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il sera copié lors de l&#039;installation du composant.&lt;br /&gt;
&lt;br /&gt;
Le contenu de ce fichier devrait être :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
COM_EXAMPLE=&amp;quot;Example Component&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_ANOPTION=&amp;quot;Another Option&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_VIEWNAME=&amp;quot;Another View&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the language string must be enclosed in double quotes, as per Joomla!&#039;s translation standards.&lt;br /&gt;
&lt;br /&gt;
{{note|Joomla! 1.6 and later sorts the Component menu items based on the actual translation of the key you supply in your XML manifest. This means that the sorting order is correct no matter what you call your translation key and no matter which language the site is being displayed in. Essentially, Joomla! 1.6 fixed the wrong sorting of the Components menu experienced under Joomla! 1.5 for the majority (non-English speaking!) of Joomla! users.}}&lt;br /&gt;
&lt;br /&gt;
=== Dashboards === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specifies the details for displaying a dashboard for the component in the Administrator area for the site.&lt;br /&gt;
* It will make a dashboard icon appear next to the administrator menu item for the component&lt;br /&gt;
* The dashboard icon will click through to display modules assigned to the cpanel-example administrator module position&lt;br /&gt;
* The title and icon defined in the XML file will be used as the header and icon at the top of the component&#039;s dashboard page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dashboards&amp;gt;&lt;br /&gt;
		&amp;lt;dashboard title=&amp;quot;COM_EXAMPLE_DASHBOARD_TITLE&amp;quot; icon=&amp;quot;icon-lock&amp;quot;&amp;gt;example&amp;lt;/dashboard&amp;gt;&lt;br /&gt;
	&amp;lt;/dashboards&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
{{warning|&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Les composants &#039;&#039;&#039;ne prennent pas en charge&#039;&#039;&#039; les définitions de configuration &#039;&#039;&#039;dans le manifeste&#039;&#039;&#039;. Ceci avait été mis en œuvre dans Joomla! 1.5. Ils est possible de définir les options de configuration pour différents niveaux à l&#039;aide des [[S:MyLanguage/Component configuration metadata|métadonnées de configuration de composant]].&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;, enfant de la racine, décrit les options de configuration de l&#039;extension. En cas de besoin, les options seront affichées par le gestionnaire concerné (gestionnaire de plugins, gestionnaire de modules ou gestionnaire de templates). &#039;&#039;&#039;Les options de configuration peuvent également être définies dans un fichier séparé nommé &amp;lt;code&amp;gt;config.xml&amp;lt;/code&amp;gt;. Son élément racine doit être &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de champs &amp;lt;code&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/code&amp;gt; peut contenir un ou plusieurs éléments &amp;lt;code&amp;gt;&amp;lt;field&amp;gt;&amp;lt;/code&amp;gt; (champ), chacun représentant un seul [[S:MyLanguage/form field|champ de formulaire]] avec une étiquette. Consultez les [[S:MyLanguage/Standard form field types|types de champs pour formulaires standards]] pour une liste des types de champs autorisés et un exemple de définitions de champs de formulaire XML.&lt;br /&gt;
&lt;br /&gt;
=== Namespace === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specify the namespace to be used for autoloading the plugin. The given namespace will autoload to the root directory of your extension by default however you can optionally add a &amp;quot;path&amp;quot; attribute to the namespace element to specify a subpath within your extensions root directory.&lt;br /&gt;
&lt;br /&gt;
===SQL===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;install&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.install.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/install&amp;gt;&lt;br /&gt;
    &amp;lt;uninstall&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.uninstall.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/uninstall&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;exemple ci-dessus, nous avons placé les fichiers SQL dans le répertoire &amp;lt;tt&amp;gt;admin/sql&amp;lt;/tt&amp;gt; du paquet d&#039;installation. Vous devez inclure le dossier &amp;lt;tt&amp;gt;sql&amp;lt;/tt&amp;gt; dans les fichiers d&#039;administration (tel que décrit dans &amp;quot;les fichiers backend&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez exécuter SQL lors de l&#039;installation et/ou la désinstallation à l&#039;aide des éléments &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;lt;uninstall&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; doit apparaître comme un enfant de ces éléments. &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; peut contenir n&#039;importe quel nombre d&#039;éléments &amp;lt;code&amp;gt;&amp;lt;file&amp;gt;&amp;lt;/code&amp;gt;, chacun devant définir un seul fichier SQL à exécuter. Leurs types de pilote de base de données sont décrits par l&#039;attribut &amp;lt;code&amp;gt;driver&amp;lt;/code&amp;gt;, leurs jeux de caractères par l&#039;attribut &amp;lt;code&amp;gt;charset&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
==== Mise à jour du schéma SQL====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depuis la version 1.6, une balise &amp;lt;code&amp;gt;&amp;lt;update&amp;gt;&amp;lt;/code&amp;gt; est disponible et vous permet de fournir une série de fichiers SQL pour mettre à jour le schéma actuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;sqlsrv&amp;quot;&amp;gt;sql/updates/sqlsrv&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour passer de la version &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt; à la version &amp;lt;code&amp;gt;1.0.1&amp;lt;/code&amp;gt; dans une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;, un fichier &amp;lt;code&amp;gt;1.0.1.sql&amp;lt;/code&amp;gt; doit être créé dans le dossier &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt; et la balise &amp;lt;code&amp;gt;&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; du manifest doit être mis à jour : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La structure finale du dossier sql ressemblera à ceci (dans l&#039;hypothèse d&#039;une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
sql&lt;br /&gt;
 |--&amp;gt;example.install.sql&lt;br /&gt;
 |--&amp;gt;example.uninstall.sql&lt;br /&gt;
 |--&amp;gt;updates&lt;br /&gt;
     |--&amp;gt;mysql&lt;br /&gt;
        |--&amp;gt;1.0.1.sql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des fichiers similaires doivent être créés pour les versions suivantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
===Fichiers langue===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Dans Joomla! 1.5, les développeurs d&#039;extensions devaient placer les fichiers de langue dans le dossier général des langues de Joomla! à l&#039;aide des balises &amp;amp;lt;languages&amp;amp;gt;...&amp;amp;lt;/languages&amp;amp;gt; comme indiqué ci-dessous. &#039;&#039;&#039;Cette méthode peut toujours être utilisée avec la version&#039;&#039;&#039; {{JVer|3.x}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Joomla! language tag --&amp;gt;&lt;br /&gt;
&amp;lt;languages folder=&amp;quot;langfiles&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_example.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Depuis Joomla! 1.6, il vous est conseillé de placer les fichiers langue de votre extension dans le dossier même de votre extension. Joomla! chargera alors automatiquement les fichiers de langue depuis votre extension.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En plaçant les fichiers de langue dans le dossier de l&#039;extension, vous permettez ainsi de les isoler et donc de les protéger. Par exemple, dans le cas ou un administrateur supprimerait une langue de son installation Joomlaǃ. Dans ce cas, les fichiers de langue de l&#039;extension ne seront pas supprimés. Ils resteront alors en place et ne seront accessibles que si la langue est installée à nouveau.&lt;br /&gt;
&lt;br /&gt;
La structure du dossier de langue pour le frontend et le backend est identique. Il convient de les placer dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; (par exemple &#039;&#039;&#039;en-GB&#039;&#039;&#039;) pour chaque langue et dans le dossier comme suit&amp;amp;nbsp;: &#039;&#039;&#039;language/en-GB/&#039;&#039;&#039;. Vous devez aussi spécifier ces dossiers pour le frontend et le backend.&lt;br /&gt;
&lt;br /&gt;
Dans votre manifest, il suffit simplement d&#039;inclure votre dossier &amp;lt;tt&amp;gt;&amp;lt;language&amp;gt;&amp;lt;/tt&amp;gt; dans la section fichiers. Les sous-répertoires pour chaque langue seront alors automatiquement copiés. À l&#039;intérieur des groupes &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il vous suffit d&#039;ajouter une balise &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt; à côté des éléments dans le groupe &amp;lt;tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/tt&amp;gt;, comme indiqué dans cet exemple&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;alpha&amp;quot;&amp;gt;alpha.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les deux techniques peuvent fonctionner ensemble. Voici un exemple du noyau&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;languagecode&amp;quot;&amp;gt;languagecode.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les avantages pour cette solution sont les suivants :&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers &#039;&#039;.ini&#039;&#039; présents dans le dossier du noyau ont la priorité sur les fichiers dans les dossiers langue des extensions.&lt;br /&gt;
Par exemple, s&#039;il existe, un fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; d&#039;un dossier du noyau sera toujours chargé dans le backend, sauf lors de l&#039;installation d&#039;une extension qui contient son propre fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans un dossier de langue. Dans ce cas et uniquement ce cas, le fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans le dossier de l&#039;extension affichera son contenu traduit au moment de l&#039;installation. C&#039;est très pratique car un développeur peut avoir deux fichiers &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; avec un contenu différent.&lt;br /&gt;
&lt;br /&gt;
Il est également beaucoup plus facile pour un utilisateur ayant besoin de trouver le fichier &amp;lt;tt&amp;gt;.ini&amp;lt;/tt&amp;gt; d&#039;une extension qui n&#039;est pas disponible dans sa langue de l&#039;ajouter dans le dossier principal. Il n&#039;y a aucun risque qu&#039;il ne soit supprimé en cas de désinstallation par erreur de l&#039;extension.&lt;br /&gt;
&lt;br /&gt;
Veuillez consulter également :&lt;br /&gt;
*[[S:MyLanguage/J2.5:Making non-core language packs|Créer un pack langue hors du noyau]]&lt;br /&gt;
*[[S:MyLanguage/Creating language packs for extensions in Joomla 2.5|Créer un pack langue pour une extension Joomla! 2.5]]&lt;br /&gt;
&lt;br /&gt;
Au cours du développement, vous pouvez activer le système de débogage de langue dans la configuration globale de Joomlaǃ. Vous pourrez découvrir si un problème est levé. Depuis {{JVer|3.2}}, cela est nécessaire afin d&#039;aider à déboguer le en-GB qui est &#039;&#039;&#039;toujours&#039;&#039;&#039; chargé en premier lorsque l&#039;on est pas en mode de débogage et ainsi empêcher l&#039;affichage des constantes.&lt;br /&gt;
&lt;br /&gt;
===Fichier de script===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;scriptfile&amp;gt;example.script.php&amp;lt;/scriptfile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Un &#039;&#039;&#039;fichier de script&#039;&#039;&#039; (code PHP qui est exécuté avant, pendant et/ou après l&#039;installation, la désinstallation ou la mise à jour) peut, en option, être défini à l&#039;aide d&#039;une balise &amp;lt;code&amp;gt;&amp;lt;scriptfile&amp;gt;&amp;lt;/code&amp;gt;. Ce fichier doit contenir une classe nommée &#039;&amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;InstallerScript&#039;&#039;&amp;lt;/tt&amp;gt; où &amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;&amp;lt;/tt&amp;gt; est le nom de votre extension (par exemple : com_nomducomposant, mod_nomdumodule, etc.). Pour les plugins, il convient de nommer également le groupe (par exemple : plgsystemnomduplugin). Les packages de bibliothèque ne prennent pas en charge les fichiers scripts. La structure de la classe sera comme suit :&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file should contain a class named &amp;quot;&amp;lt;element_name&amp;gt;InstallerScript&amp;quot; where &amp;lt;element_name&amp;gt; is the name of your extension (e.g. com_componentname, mod_modulename, etc.). Plugins must state the group (e.g. plgsystempluginname).&lt;br /&gt;
&lt;br /&gt;
In {{JVer|4.0}} and later the structure of the class is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
use Joomla\CMS\Installer\InstallerAdapter;&lt;br /&gt;
&lt;br /&gt;
class com_componentnameInstallerScript&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function __construct(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called before any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function preflight($route, InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called after any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function postflight($route, $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on installation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function install(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on update&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function update(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on uninstallation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function uninstall(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since Joomla 3.6 Joomla has shipped a basic script that you can use instead of shipping your own from scratch &#039;&#039;&#039;JInstallerScript&#039;&#039;&#039; which contains various helper methods commonly used through the community.&lt;br /&gt;
&lt;br /&gt;
=== Library Manifests === &lt;br /&gt;
{{notice|The section is based on {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
A simple library manifest might look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;library&amp;quot; method=&amp;quot;upgrade&amp;quot; version=&amp;quot;4.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;My Test library.&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mytest&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;Classes&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;mytest.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the library into the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mytest&amp;lt;/tt&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
What if your company has several libraries and you want to group them together under folder &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany&amp;lt;/tt&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Simple - include your company name in the &amp;lt;tt&amp;gt;libraryname&amp;lt;/tt&amp;gt; property of each library like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary1&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary2&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These libraries will then be installed in the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary2&amp;lt;/tt&amp;gt; folders.&lt;br /&gt;
&lt;br /&gt;
Uninstalling &amp;lt;tt&amp;gt;mylibrary1&amp;lt;/tt&amp;gt; will still leave &amp;lt;tt&amp;gt;mylibrary2&amp;lt;/tt&amp;gt; installed on your site.&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;tt&amp;gt;script files&amp;lt;/tt&amp;gt; with such company libraries the installer class name should look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary1InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary2InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
=== Serveurs de mise à jour ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;1&amp;quot; name=&amp;quot;Extension Update Site&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;collection&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;Collection Update Site&amp;quot;&amp;gt;http://example.com/collection.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les serveurs de mise à jour peuvent être définis dans les balises &amp;lt;code&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/code&amp;gt; comme enfant de la racine. Cet élément peut contenir une ou plusieurs balises &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; chacune avec la description depuis laquelle chercher les mises à jour. Chaque rubrique &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;collection&amp;lt;/code&amp;gt; || Le type de serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| priority || &#039;&#039;integer&#039;&#039; || La priorité du serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| name || &#039;&#039;string&#039;&#039; || Le nom du serveur de mise à jour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Pour plus d&#039;informations :&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing a MVC Component/Adding an update server|Création d&#039;une extension Joomla! - Ajout d&#039;un serveur de mise à jour]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Managing Component Updates|Gestion des mises à jour de composants pour Joomla! 2.5]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supporting Download Keys ===&lt;br /&gt;
&lt;br /&gt;
As of Joomla 4.0.0 users can enter their download keys in the Update Sites list. This gives them a single place to manage the download keys. When a user is going to update an extension, Joomla will check if there is a download key. If there is a download key, Joomla will add the download key to the update URL.&lt;br /&gt;
&lt;br /&gt;
To support download keys you must include the &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag in the manifest file. The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag takes 2 arguments:&lt;br /&gt;
* prefix&lt;br /&gt;
* suffix&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag will look like this in your manifest file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dlid prefix=&amp;quot;dlid=&amp;quot; suffix=&amp;quot;&amp;amp;amp;dummy=my.zip&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The prefix will be added before the download key and the suffix after the download key. Using the example above the full query added to the download link will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
dlid=KEY&amp;amp;amp;dummy=my.zip&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The key is added before the &amp;lt;tt&amp;gt;onInstallerBeforePackageDownload&amp;lt;/tt&amp;gt; event is triggered, so the full URL will be passed to the event.&lt;br /&gt;
&lt;br /&gt;
===Exemples=== &lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
== Exemples ==&lt;br /&gt;
Pour un exemple concret, veuillez consulter [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/components/com_banners/banners.xml le manifest pour le composant bannière de la version Joomla! 3.6.4].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D&#039;autres exemples peuvent être trouvés dans le répertoire autonome des liens web&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/administrator/components/com_weblinks/weblinks.xml manifest com_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/modules/mod_weblinks/mod_weblinks.xml manifest mod_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/plugins/search/weblinks/weblinks.xml manifest plg_search_weblinks]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/templates/protostar/templateDetails.xml manifest tpl_protostar (3.6.4)]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/language/en-GB/en-GB.xml manifest en-GB (3.6.4)]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Specifications{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/13/fr&amp;diff=963937</id>
		<title>Translations:Manifest files/13/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/13/fr&amp;diff=963937"/>
		<updated>2022-09-04T07:09:08Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Chaîne de caractères qui identifie la version de Joomla! pour laquelle cette extension est développée. Ceci n&#039;est pas utilisé dans le version {{JVer|3.x}} et a été retiré de la version {{JVer|4.0}} et des versions postérieures.&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla_3.x_to_4.x_Step_by_Step_Migration/fr&amp;diff=963936</id>
		<title>Joomla 3.x to 4.x Step by Step Migration/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla_3.x_to_4.x_Step_by_Step_Migration/fr&amp;diff=963936"/>
		<updated>2022-09-04T06:52:39Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Created page with &amp;quot;* [http://extensions.joomla.org/extensions/access-a-security/site-security/backup/1606 Akeeba Backup] est très populaire pour la sauvegarde et la restauration. Voir d&amp;#039;autres...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{warning|title=Attention !|Ce guide suppose que vous démarrez sur Joomla 3.10.x. Si vous êtes sur une version antérieure, assurez-vous de mettre à niveau vers Joomla 3.10 avant de passer à Joomla 4. &lt;br /&gt;
&lt;br /&gt;
Il n&#039;y a pas d&#039;urgence. Assurez-vous que toutes vos extensions sont prêtes pour Joomla 4.x. Joomla 3.10.x sera supporté jusqu&#039;au 16 août 2023.}}&lt;br /&gt;
&lt;br /&gt;
Voici les instructions étape par étape pour migrer votre site 3.10.x vers Joomla ! 4.x. Bien qu&#039;il existe des centaines de scénarios différents, ceci vous donnera la procédure de base à suivre. Les migrations très complexes seront probablement le résultat d&#039;extensions tierces installées. Nous vous encourageons à contacter les développeurs des extensions tierces installées sur votre site Joomla pour connaître le chemin qu&#039;ils suggèrent pour migrer leurs extensions.&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
La migration de Joomla ! 3.10.x vers 4.x est considérée comme une mini-migration. En effet, les extensions de base de Joomla seront mises à niveau en un seul clic via le composant de mise à jour de Joomla ! dans la partie administrateur de Joomla. De nombreuses extensions tierces peuvent également être mises à niveau en un clic. D&#039;autres ne le sont pas. Vous devez examiner chacune d&#039;entre elles et déterminer le chemin que l&#039;extension doit suivre pour passer de la version 3.10 à la version 4.x. Si vous ne l&#039;avez pas encore fait, vous pourriez être intéressé par la lecture des documents suivants : [[S:MyLanguage/Migration Step by Step Self Assessment|Auto-évaluation]] et [[S:MyLanguage/Planning for Mini-Migration - Joomla 3.10.x to 4.x|Planification de la migration de 3.10 à 4.x]] avant de suivre les étapes suivantes&lt;br /&gt;
&amp;lt;/br&amp;gt;Les extensions de base de Joomla ! sont :&lt;br /&gt;
* Catégories&lt;br /&gt;
* Articles&lt;br /&gt;
* Menus&lt;br /&gt;
* Modules (modules de base - pas de modules tiers)&lt;br /&gt;
* Journaux d&#039;activité&lt;br /&gt;
* Bannières&lt;br /&gt;
* Champs&lt;br /&gt;
* Historique du contenu&lt;br /&gt;
* Contacts&lt;br /&gt;
* Messagerie&lt;br /&gt;
* Flux d&#039;actualités&lt;br /&gt;
* Redirections&lt;br /&gt;
* Recherche (séparé en 4.x. Les sites 3.x existants pourront toujours migrer. Cependant, nous recommandons d&#039;utiliser La recherche avancée à l&#039;avenir. Voir les notes de la section Évaluation de chaque extension)&lt;br /&gt;
* Recherche avancée&lt;br /&gt;
* Tags&lt;br /&gt;
* Liens web (séparé mais votre site peut l&#039;utiliser et il migrera. Voir les notes de la section Évaluation de chaque extension)&lt;br /&gt;
&lt;br /&gt;
== Etape par étape ==&lt;br /&gt;
=== Créez un environnement de développement ===&lt;br /&gt;
# Assurez-vous que vous exécutez la dernière version de Joomla 3.10.x avant de poursuivre.&lt;br /&gt;
# Faites une sauvegarde de votre site 3.10.x. Vous pouvez utiliser un outil suggéré (voir les &#039;&#039;Outils suggérés&#039;&#039; en bas de page) ou vous pouvez le faire manuellement.&lt;br /&gt;
#*[[S:MyLanguage/Backup_Basics_for_a_Joomla!_Web_Site|Principes de base de la sauvegarde d&#039;un site web Joomla ! ]]&lt;br /&gt;
#*[[S:MyLanguage/What_are_the_best_practices_for_site_backups%3F|Quelles sont les meilleures pratiques pour les sauvegardes de sites ?]]&lt;br /&gt;
# Assurez-vous que votre environnement est conforme aux [https://downloads.joomla.org/technical-requirements exigences techniques pour Joomla 4] avant de poursuivre.&lt;br /&gt;
# Créez une nouvelle base de données et un nouvel utilisateur pour restaurer votre site 3.10.x. &lt;br /&gt;
# Créez un site de test ou une zone de développement pour travailler et restaurez la copie de sauvegarde de votre site 3.10.x à l&#039;un des endroits suivants :&lt;br /&gt;
#* Un sous-domaine.&lt;br /&gt;
#* Un sous-répertoire.&lt;br /&gt;
#* Un périphérique local. Joomla a un tutoriel détaillé sur l&#039;installation de [https://sourceforge.net/projects/xampp/ XAMPP] à [[XAMPP]]. Cependant, [https://www.wampserver.com/en/ WAMP], [https://www.mamp.info/en/windows/ MAMP], [https://sourceforge.net/projects/lampas/ LAMP] sont toutes des alternatives appropriées.&lt;br /&gt;
#* Un nouveau compte d&#039;hébergement sur un domaine temporaire à la racine. (Si vous souhaitez changer d&#039;hébergement au cours du processus de migration).&lt;br /&gt;
#** Restauration d&#039;un site sur un périphérique local. Voir [[S:MyLanguage/Installing Joomla locally|Installation de Joomla localement]] et [[S:MyLanguage/Setting up your workstation for Joomla development|Configuration de votre poste de travail pour le développement de Joomla]].&lt;br /&gt;
#** Restauration d&#039;un site avec un outil listé en bas de page. (Lisez la documentation du développeur).&lt;br /&gt;
# Dans votre emplacement de test, mettez à jour votre instance Joomla ! 3.10.x vers la dernière version de maintenance.&lt;br /&gt;
# Assurez-vous que vous avez le dernier schéma de base de données mis à jour vers la dernière version 3.10.x en allant dans l&#039;onglet {{rarr|Gestion des Extensions,Base de données}}. Si votre schéma n&#039;est pas à jour comme dans l&#039;image suivante, cliquez sur le bouton &#039;&#039;&#039;Corriger&#039;&#039;&#039; :{{-}}[[File:J310-admin-extension-database-fix-en.png|border|800px]]&lt;br /&gt;
# Vider la corbeille : Avez-vous des articles dans la corbeille ? Si c&#039;est le cas, supprimez-les (ainsi que tous les médias qui peuvent leur être associés s&#039;ils ne sont pas utilisés ailleurs sur le site). Les articles (ainsi que les catégories et les éléments de menu) laissés dans la corbeille peuvent empêcher une migration de se terminer sans erreur.&lt;br /&gt;
# Tester.&lt;br /&gt;
# Faites une nouvelle sauvegarde.&lt;br /&gt;
&lt;br /&gt;
=== Evaluer chaque extension ===&lt;br /&gt;
Dans votre [[S:MyLanguage/Planning_for_Mini-Migration_-_Joomla_3.10.x_to_4.x|planning]], vous avez déterminé quelles extensions tierces restaient ou partaient et comment elles migraient. Pour cette partie de l&#039;étape par étape, vous allez utiliser deux sections différentes du site de manière intensive ; La vérification avant mise à jour dans {{rarr|Composants,Mise à jour de Joomla !}} et {{rarr|Extensions,Gestion des extensions,Gerer}}. Vous allez examiner chaque extension installée sur votre site. Vous allez déterminer si elles doivent être mises à jour vers la dernière version ou désinstallées. Plus de précisions dans la [[Special:MyLanguage/:Pre-Update_Check|Vérification avant mise à jour]].&lt;br /&gt;
# Utilisation du contrôle de &amp;quot;pré-mise à jour&amp;quot; : pour pouvoir utiliser le contrôle de pré-mise à jour, vous devez configurer le composant de mise à jour de Joomla ! pour Joomla 4. Pour ce faire, procédez comme suit :&lt;br /&gt;
# Allez sur {{rarr|Components,Mise à jour de Joomlaǃ}}. (Il devrait indiquer qu&#039;aucune mise à jour n&#039;a été trouvée. Si ce n&#039;est pas le cas, mettez à jour Joomla à la dernière version (doit être 3.10.x) et testez. Puis faites une autre sauvegarde). Cliquez sur le bouton Paramètres dans le coin supérieur droit.&lt;br /&gt;
# Sélectionnez &#039;&#039;Le prochain Joomlaǃ&#039;&#039; dans le menu déroulant pour le canal de mise à jour.{{-}}[[File:Migration_J3toJ4_update_channel-en.png|border|800px]]{{-}}&lt;br /&gt;
# Cliquez sur Enregistrer et fermer&lt;br /&gt;
# Vous verrez alors votre version installée de Joomla, la dernière version de Joomla ! et l&#039;URL du package de mise à jour. Joomla vous montrera à nouveau la configuration requise pour Joomla 4. S&#039;il signale que vous avez un système ou des extensions incompatibles, il vous le dira ici. Prenez un moment pour consulter cette page.{{-}}[[File:J310-admin-update_to_4-pre_update_check-en.png|border|800px]]{{amboxNew|image=notice|style=notice|title={{{title|Note importante}}}|text=&#039;&#039;&#039;Ne faites PAS la mise à jour vers Joomla ! 4 maintenant. C&#039;est seulement pour préparer vos extensions tierces et rendre le site compatible avec Joomla ! 4.&#039;&#039;&#039;}}&lt;br /&gt;
# Regardez le contrôle de pré-mise à jour et le contrôle de pré-mise à jour des extensions dans l&#039;onglet Contrôle de pré-mise à jour du composant Joomla Update. Si une extension qui n&#039;est pas dans votre planning est listée ici, ajoutez-la à votre liste d&#039;extensions à examiner.&lt;br /&gt;
# Si vous avez migré de Joomla ! 2.5 à 3.x dans le passé, il peut y avoir quelques extensions restantes qui doivent être nettoyées. Voici les anciennes extensions 2.5 ou 3.x qui doivent être désinstallées avant la mise à jour vers Joomla 4 :&lt;br /&gt;
#;* plg_content_geshi&lt;br /&gt;
#;* template admin Bluestork&lt;br /&gt;
#;* Beez_20&lt;br /&gt;
#;* Beez5&lt;br /&gt;
#;* Atomic&lt;br /&gt;
## En ce qui concerne les templates, désinstallez tous les templates frontend ou backend de base, sauf Protostar et Beez3 (templates frontend) et Isis ou Hathor (templates administrateur). &#039;&#039;&#039;NOTE : Protostar n&#039;est PAS compatible avec Joomla 4&#039;&#039;&#039;. Lors de la migration, il disparaîtra. Vous aurez besoin d&#039;avoir un template sélectionné comme &amp;quot;par défaut&amp;quot; et vous pouvez utiliser Protostar ou Beez3. Protostar disparaîtra lors de la migration vers Joomla 4.x.&lt;br /&gt;
### Si vous rencontrez d&#039;autres fichiers qui doivent être désinstallés, veuillez les ajouter à cette page. Ceci est un wiki, donc tout le monde peut ajouter à la page. Merci d&#039;avance pour votre service.&lt;br /&gt;
# Vous remarquerez les balises indiquant si une extension est compatible ou non. Ces balises indiquent généralement la vérité si elles disent Non ou Oui. Si elles disent &amp;quot;Balise de compatibilité manquante&amp;quot;, cela signifie que le développeur de l&#039;extension n&#039;a pas utilisé de balise dans son extension et que nous ne savons pas si elle est ou non compatible avec Joomla 4. Contactez le développeur pour vérifier.&lt;br /&gt;
# Mise à jour des extensions : mettez à jour toutes les extensions que vous conserverez dans votre site Web. Dans Joomla ! 3.10.x, vous pouvez aller dans {{rarr|Gestionnaire d&#039;extensions, onglet Mise à jour}} et cliquer sur &#039;&#039;&#039;Trouver les mises à jour&#039;&#039;&#039; qui ajoutera une info-bulle dans la colonne Version, sous l&#039;onglet Gérer, donnant quelques informations de compatibilité depuis le backend. Cette fonctionnalité ne prend en charge que les extensions qui se mettent à jour via l&#039;onglet Mise à jour du gestionnaire d&#039;extensions. Si vous avez installé des extensions qui n&#039;utilisent pas la mise à jour des extensions Joomla, elles doivent être évaluées manuellement comme indiqué ci-dessous. Il en va de même pour les extensions qui ont une info-bulle. Vous devrez toujours vérifier le type de paquet et le chemin de migration avec le développeur de l&#039;extension pour vérifier comment mettre à niveau/migrer.&lt;br /&gt;
# Désinstaller et examiner les extensions : allez dans {{rarr|Gestionnaire d&#039;extensions, onglet Gérer}}.&lt;br /&gt;
# Cliquez sur le bouton &#039;&#039;Outils de recherche&#039;&#039; pour afficher les options de filtrage.&lt;br /&gt;
# Sélectionnez le package dans la liste déroulante.{{-}}[[File:J310-admin-extension-manage-package-en.png|800px]]{{-}}{{note|Il est recommandé de sélectionner d&#039;abord le package, car si vous devez désinstaller quelque chose dans un package, il désinstallera automatiquement et en une seule fois les modules, les plugins ou tout autre élément associé dans le package.}}&lt;br /&gt;
# Désinstallez tous les packages qui ne sont plus nécessaires ou qui ne seront pas transférés vers Joomla 4.&lt;br /&gt;
# Répétez ce processus en passant par l&#039;onglet Gérer pour tous les types dans la liste déroulante : Composant, Fichier, Langue, Bibliothèque, Module, Plugin et Template. Si l&#039;auteur indique projet Joomla, ne touchez pas à ces extensions. Pour toutes les autres, assurez-vous de désinstaller celles qui ne sont pas utilisées ou qui ne sont pas compatibles avec Joomla!&amp;amp;nbsp;4.x.{{-}}{{note|&#039;&#039;&#039;NOTE!&#039;&#039;&#039; Vous ne pourrez pas désinstaller un template qui est défini par défaut. Vous devrez sélectionner un template supporté par Core comme Beez3 ou Protostar et ensuite désinstaller le template si vous avez besoin de le faire. &amp;lt;br /&amp;gt;&#039;&#039;Autre rappel :&#039;&#039;&#039; &#039;&#039;&#039;Protostar n&#039;est pas compatible avec Joomla 4.x&#039;&#039;&#039;. Lors de la migration, il disparaîtra. En le sélectionnant par défaut, vous arrivez simplement à Joomla 4.x.|type=serious}}&lt;br /&gt;
# Notez toutes les versions des packages et des composants en cours d&#039;exécution que vous conserverez sur votre site. Vous pouvez les copier/coller dans un document pour référence.&lt;br /&gt;
# Pour toutes les extensions que vous gardez mais n&#039;utilisez pas le gestionnaire d&#039;extensions pour mettre à jour en un clic ({{rarr|Extensions,Gérer,Mettre à jour}}) mettez à jour toutes les extensions avec les dernières versions.&lt;br /&gt;
# Avant et pendant la mise à jour, notez si les extensions ont les versions 3.10.x et 4.x dans le même package. Si c&#039;est le cas, elles pourront être mises à jour en un clic. Si ce n&#039;est pas le cas, et que les versions 3.10 et 4.x ont des packages différents, vous devez les examiner au cas par cas. En règle générale, elles relèvent de l&#039;un des scénarios suivants :&lt;br /&gt;
#* L&#039;extension a des packages séparés mais lors de la mise à jour vers 4.x, ils détectent automatiquement cela et fonctionnent toujours. Assurez-vous que le développeur le confirme.&lt;br /&gt;
#* L&#039;extension a des packages séparés qui doivent être désinstallés dans 3.10.x et ensuite installés avec la version de Joomla 4.x une fois que le site est migré. Un exemple de ceci pourrait être un plugin de contenu. Il est très simple de le désinstaller en 3.10.x puis de le réinstaller en 4.x.&lt;br /&gt;
#* Voir [[S:MyLanguage/Template_Considerations_During_Migration|Considérations sur les templates]] pour des informations plus spécifiques sur les templates et [[S:MyLanguage/J3.x:Converting_A_Previous_Joomla!_Version_Template|Conversion d&#039;un template précédent de version de Joomla ! ]].&lt;br /&gt;
&lt;br /&gt;
==== Notes sur la recherche (com_search) ====&lt;br /&gt;
Search (com_search) sera séparé de Joomla 4.x. La recherche  (com_search) migrera vers Joomla 4. Après la migration, vous devrez le mettre à jour vers la version de Joomla 4.x via com_installer. Il continuera à être maintenu, mais plus de la même manière qu&#039;une extension tierce en recevant des mises à jour via com_installer. Il est recommandé d&#039;utiliserla Recherche avancée  (com_finder) à l&#039;avenir. La recherche sera toujours disponible à l&#039;adresse https://extensions.joomla.org/category/official-extensions/ .&lt;br /&gt;
&lt;br /&gt;
==== Notes sur les liens web ====&lt;br /&gt;
Les liens Web ont été dissociés dans la version 3.4 de Joomla. S&#039;il était utilisé sur un site 2.5, le processus de migration en prendrait note et migrerait le composant liens web et ses données. Pour la migration de 3.10.x à 4.x, il en sera de même. Il est toujours disponible et maintenu sur le JED à l&#039;adresse [https://extensions.joomla.org/category/official-extensions/ Official Extensions].&lt;br /&gt;
&lt;br /&gt;
==== Notes sur l&#039;ancien routage d&#039;URL ==== &lt;br /&gt;
L&#039;ancien routage ne sera pas disponible dans Joomla 4.x. Seul le routage moderne sera disponible. Lorsque vous effectuez la migration, si vous utilisez le routage héritage, le système le changera automatiquement en routage moderne. Vous devrez exécuter un vérificateur de liens brisés sur votre site après la migration vers Joomla 4.x et &amp;quot;avant de mettre en ligne&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Passage à Joomla ! 4.x ===&lt;br /&gt;
Une fois que vous avez mis à jour ou désinstallé vos extensions tierces pour que seules celles compatibles avec Joomla ! 4 restent dans votre installation, continuez avec les étapes suivantes :&lt;br /&gt;
# Allez dans {{rarr|Système,Configuration,onglet Serveur}} et faites passer le rapport d&#039;erreur de de Défaut à Maximum. Veillez enregistrer et fermer.{{-}} [[File:J310-system-global-config-server-tab-en.png|border|500px]]&lt;br /&gt;
# Faites une autre sauvegarde.&lt;br /&gt;
# Allez sur {{rarr|Composants, mise à jour de Joomla}}. (Il devrait être indiqué qu&#039;aucune mise à jour n&#039;a été trouvée. Si ce n&#039;est pas le cas, mettez à jour Joomla à la dernière version et testez. Puis faites une autre sauvegarde). Cliquez sur le bouton Options dans le coin supérieur droit.&lt;br /&gt;
# Sélectionnez &#039;Joomla Next&#039;&#039; dans la liste déroulante pour le serveur de mise à jour.{{-}}[[File:J310-component-joomla-update-select-support-en.png|border|500px]]&lt;br /&gt;
# Cliquez sur Enregistrer et fermer.&lt;br /&gt;
# Vous verrez alors votre version installée de Joomla, la dernière version de Joomla ! et l&#039;URL du paquet de mise à jour. Joomla vous montrera à nouveau la configuration requise pour Joomla 4. S&#039;il signale que vous avez un système ou des extensions incompatibles, il vous le dira ici. Prenez un moment pour revoir cette page{{-}}[[File:J310-to-j4-dev-update-found-en.png|border|800px]]&lt;br /&gt;
# Si la mise à jour ne s&#039;affiche pas, allez dans {{rarr|Gestionnaire d&#039;extension,Mise à jour}} et cliquez sur  Purge du Cache dans la barre d&#039;outils. La mise à jour vers Joomla ! 4 devrait maintenant s&#039;afficher.&lt;br /&gt;
# Croisez les doigts, et assurez-vous d&#039;avoir cette sauvegarde disponible au cas où.&lt;br /&gt;
# Cliquez sur le bouton Installer la mise à jour.&lt;br /&gt;
# Faites du thé pendant que la barre d&#039;état passe au vert. Le temps que cela prend dépend de votre site, de votre connexion Internet et de la vitesse du serveur. Le processus prend environ deux minutes. Lorsque la mise à jour est terminée, vous serez probablement déconnecté de l&#039;administrateur. Reconnectez-vous. Deux fois.&lt;br /&gt;
# Si tout se passe bien, vous obtiendrez un tout nouveau look pour le panneau de l&#039;administrateur du backend.{{-}}[[File:j4-administrator-overview-en.png|border|800px]]&lt;br /&gt;
# Allez dans {{rarr|Système,Maintenance,Base de données}} et cliquez sur &#039;&#039;Réparer&#039;&#039; si des erreurs apparaissent.&lt;br /&gt;
# Dans {{rarr|Système,Installation,Découvrir}} voyez s&#039;il y a des extensions à installer. (Il ne devrait pas y en avoir !)&lt;br /&gt;
# Allez à l&#039;interface de votre site et voyez s&#039;il s&#039;affiche même si ce n&#039;est pas le bon template. Si oui, continuez. Si non, voir [[S:MyLanguage/Joomla 3.10 to 4.x Common Migration Errors|les erreurs fréquentes lors d&#039;une migration]].&lt;br /&gt;
# Faites une sauvegarde.&lt;br /&gt;
# Installez votre nouveau template ou d&#039;autres extensions si vous en avez à installer. Sauvegardez souvent.&lt;br /&gt;
# Configurez-les. Sauvegardez souvent.&lt;br /&gt;
# Exécutez un vérificateur de liens brisés et réparez tous les liens brisés.&lt;br /&gt;
# Testez tout. Sauvegardez souvent.&lt;br /&gt;
# Si tout fonctionne comme prévu, remettez le rapport d&#039;erreur sur le système par défaut ({{rarr|Système,Configuration globale,onglet Système de configuration}}). Veillez à enregistrer et à fermer.&lt;br /&gt;
&lt;br /&gt;
=== Mise en service de votre site Joomla ! 4.x ===&lt;br /&gt;
# Lorsque vous êtes prêt à mettre en ligne, sauvegardez votre site 3.10 pour la dernière fois. Restaurez-le dans un sous-répertoire ou un sous-domaine si vous le souhaitez.&lt;br /&gt;
# Sauvegardez votre site Joomla ! 4.x et déplacez ou restaurez votre site Joomla ! 4.x à la racine (ou changez les serveurs de noms si vous construisiez sur un domaine temporaire à la racine d&#039;un nouveau compte d&#039;hébergement).&lt;br /&gt;
# Testez à nouveau.&lt;br /&gt;
# Si vous aviez apporté des modifications de sécurité au fichier .htaccess, vous aurez peut-être à modifier une ou plusieurs lignes pour passer à la prochaine version de Joomla 4. Veuillez consulter [[S:MyLanguage/Htaccess_changes_after_joomla4.0.4| Modifications du htaccess après Joomla 4.0.4]] pour déterminer si vous devez modifier votre fichier ou non. &lt;br /&gt;
# Retirez le site Joomla ! 3.10 du serveur dans les deux jours qui suivent, sauf si vous avez modifié votre fichier &#039;&#039;robots.txt&#039;&#039; pour bloquer les robots des moteurs de recherche.&lt;br /&gt;
# Supprimez tous les sites de développement sur lesquels vous avez travaillé ou mettez-les à jour s&#039;ils utilisent une version actuelle afin d&#039;éviter toute tentative de piratage de votre serveur. &lt;br /&gt;
&lt;br /&gt;
Si des données ont été modifiées sur le site 3.10 pendant la migration vers la version 4.x, vous devrez les transférer sur le site 4.x avant la mise en ligne. Vous pouvez le faire manuellement (assurez-vous de conserver les mêmes identifiants d&#039;utilisateur - allez-y dans l&#039;ordre) ou en utilisant une [https://extensions.joomla.org/category/migration-a-conversion/data-import-a-export%20transfer%20tool/third-party%20extension/ extension tierce].&lt;br /&gt;
&lt;br /&gt;
== Outils suggérés ==&lt;br /&gt;
* [http://extensions.joomla.org/extensions/access-a-security/site-security/backup/1606 Akeeba Backup] est très populaire pour la sauvegarde et la restauration. Voir d&#039;autres [https://extensions.joomla.org/tags/backup/ outils de sauvegarde].&lt;br /&gt;
==Informations connexes== &lt;br /&gt;
[[Special:MyLanguage/:Pre-Update_Check|Vérification préalable à la mise à jour]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Migration/fr|Migration]]&lt;br /&gt;
[[Category:Tutorials/fr|Tutoriels]]&lt;br /&gt;
[[Category:Joomla! 4.x/fr{{#translation:}}]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_3.x_to_4.x_Step_by_Step_Migration/66/fr&amp;diff=963935</id>
		<title>Translations:Joomla 3.x to 4.x Step by Step Migration/66/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_3.x_to_4.x_Step_by_Step_Migration/66/fr&amp;diff=963935"/>
		<updated>2022-09-04T06:52:37Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Created page with &amp;quot;* [http://extensions.joomla.org/extensions/access-a-security/site-security/backup/1606 Akeeba Backup] est très populaire pour la sauvegarde et la restauration. Voir d&amp;#039;autres...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;* [http://extensions.joomla.org/extensions/access-a-security/site-security/backup/1606 Akeeba Backup] est très populaire pour la sauvegarde et la restauration. Voir d&#039;autres [https://extensions.joomla.org/tags/backup/ outils de sauvegarde].&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Joomla_3.x_to_4.x_Step_by_Step_Migration/fr&amp;diff=963934</id>
		<title>Joomla 3.x to 4.x Step by Step Migration/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Joomla_3.x_to_4.x_Step_by_Step_Migration/fr&amp;diff=963934"/>
		<updated>2022-09-04T06:52:14Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Replaced content with &amp;quot;== Outils suggérés ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{warning|title=Attention !|Ce guide suppose que vous démarrez sur Joomla 3.10.x. Si vous êtes sur une version antérieure, assurez-vous de mettre à niveau vers Joomla 3.10 avant de passer à Joomla 4. &lt;br /&gt;
&lt;br /&gt;
Il n&#039;y a pas d&#039;urgence. Assurez-vous que toutes vos extensions sont prêtes pour Joomla 4.x. Joomla 3.10.x sera supporté jusqu&#039;au 16 août 2023.}}&lt;br /&gt;
&lt;br /&gt;
Voici les instructions étape par étape pour migrer votre site 3.10.x vers Joomla ! 4.x. Bien qu&#039;il existe des centaines de scénarios différents, ceci vous donnera la procédure de base à suivre. Les migrations très complexes seront probablement le résultat d&#039;extensions tierces installées. Nous vous encourageons à contacter les développeurs des extensions tierces installées sur votre site Joomla pour connaître le chemin qu&#039;ils suggèrent pour migrer leurs extensions.&lt;br /&gt;
&lt;br /&gt;
== Intro ==&lt;br /&gt;
La migration de Joomla ! 3.10.x vers 4.x est considérée comme une mini-migration. En effet, les extensions de base de Joomla seront mises à niveau en un seul clic via le composant de mise à jour de Joomla ! dans la partie administrateur de Joomla. De nombreuses extensions tierces peuvent également être mises à niveau en un clic. D&#039;autres ne le sont pas. Vous devez examiner chacune d&#039;entre elles et déterminer le chemin que l&#039;extension doit suivre pour passer de la version 3.10 à la version 4.x. Si vous ne l&#039;avez pas encore fait, vous pourriez être intéressé par la lecture des documents suivants : [[S:MyLanguage/Migration Step by Step Self Assessment|Auto-évaluation]] et [[S:MyLanguage/Planning for Mini-Migration - Joomla 3.10.x to 4.x|Planification de la migration de 3.10 à 4.x]] avant de suivre les étapes suivantes&lt;br /&gt;
&amp;lt;/br&amp;gt;Les extensions de base de Joomla ! sont :&lt;br /&gt;
* Catégories&lt;br /&gt;
* Articles&lt;br /&gt;
* Menus&lt;br /&gt;
* Modules (modules de base - pas de modules tiers)&lt;br /&gt;
* Journaux d&#039;activité&lt;br /&gt;
* Bannières&lt;br /&gt;
* Champs&lt;br /&gt;
* Historique du contenu&lt;br /&gt;
* Contacts&lt;br /&gt;
* Messagerie&lt;br /&gt;
* Flux d&#039;actualités&lt;br /&gt;
* Redirections&lt;br /&gt;
* Recherche (séparé en 4.x. Les sites 3.x existants pourront toujours migrer. Cependant, nous recommandons d&#039;utiliser La recherche avancée à l&#039;avenir. Voir les notes de la section Évaluation de chaque extension)&lt;br /&gt;
* Recherche avancée&lt;br /&gt;
* Tags&lt;br /&gt;
* Liens web (séparé mais votre site peut l&#039;utiliser et il migrera. Voir les notes de la section Évaluation de chaque extension)&lt;br /&gt;
&lt;br /&gt;
== Etape par étape ==&lt;br /&gt;
=== Créez un environnement de développement ===&lt;br /&gt;
# Assurez-vous que vous exécutez la dernière version de Joomla 3.10.x avant de poursuivre.&lt;br /&gt;
# Faites une sauvegarde de votre site 3.10.x. Vous pouvez utiliser un outil suggéré (voir les &#039;&#039;Outils suggérés&#039;&#039; en bas de page) ou vous pouvez le faire manuellement.&lt;br /&gt;
#*[[S:MyLanguage/Backup_Basics_for_a_Joomla!_Web_Site|Principes de base de la sauvegarde d&#039;un site web Joomla ! ]]&lt;br /&gt;
#*[[S:MyLanguage/What_are_the_best_practices_for_site_backups%3F|Quelles sont les meilleures pratiques pour les sauvegardes de sites ?]]&lt;br /&gt;
# Assurez-vous que votre environnement est conforme aux [https://downloads.joomla.org/technical-requirements exigences techniques pour Joomla 4] avant de poursuivre.&lt;br /&gt;
# Créez une nouvelle base de données et un nouvel utilisateur pour restaurer votre site 3.10.x. &lt;br /&gt;
# Créez un site de test ou une zone de développement pour travailler et restaurez la copie de sauvegarde de votre site 3.10.x à l&#039;un des endroits suivants :&lt;br /&gt;
#* Un sous-domaine.&lt;br /&gt;
#* Un sous-répertoire.&lt;br /&gt;
#* Un périphérique local. Joomla a un tutoriel détaillé sur l&#039;installation de [https://sourceforge.net/projects/xampp/ XAMPP] à [[XAMPP]]. Cependant, [https://www.wampserver.com/en/ WAMP], [https://www.mamp.info/en/windows/ MAMP], [https://sourceforge.net/projects/lampas/ LAMP] sont toutes des alternatives appropriées.&lt;br /&gt;
#* Un nouveau compte d&#039;hébergement sur un domaine temporaire à la racine. (Si vous souhaitez changer d&#039;hébergement au cours du processus de migration).&lt;br /&gt;
#** Restauration d&#039;un site sur un périphérique local. Voir [[S:MyLanguage/Installing Joomla locally|Installation de Joomla localement]] et [[S:MyLanguage/Setting up your workstation for Joomla development|Configuration de votre poste de travail pour le développement de Joomla]].&lt;br /&gt;
#** Restauration d&#039;un site avec un outil listé en bas de page. (Lisez la documentation du développeur).&lt;br /&gt;
# Dans votre emplacement de test, mettez à jour votre instance Joomla ! 3.10.x vers la dernière version de maintenance.&lt;br /&gt;
# Assurez-vous que vous avez le dernier schéma de base de données mis à jour vers la dernière version 3.10.x en allant dans l&#039;onglet {{rarr|Gestion des Extensions,Base de données}}. Si votre schéma n&#039;est pas à jour comme dans l&#039;image suivante, cliquez sur le bouton &#039;&#039;&#039;Corriger&#039;&#039;&#039; :{{-}}[[File:J310-admin-extension-database-fix-en.png|border|800px]]&lt;br /&gt;
# Vider la corbeille : Avez-vous des articles dans la corbeille ? Si c&#039;est le cas, supprimez-les (ainsi que tous les médias qui peuvent leur être associés s&#039;ils ne sont pas utilisés ailleurs sur le site). Les articles (ainsi que les catégories et les éléments de menu) laissés dans la corbeille peuvent empêcher une migration de se terminer sans erreur.&lt;br /&gt;
# Tester.&lt;br /&gt;
# Faites une nouvelle sauvegarde.&lt;br /&gt;
&lt;br /&gt;
=== Evaluer chaque extension ===&lt;br /&gt;
Dans votre [[S:MyLanguage/Planning_for_Mini-Migration_-_Joomla_3.10.x_to_4.x|planning]], vous avez déterminé quelles extensions tierces restaient ou partaient et comment elles migraient. Pour cette partie de l&#039;étape par étape, vous allez utiliser deux sections différentes du site de manière intensive ; La vérification avant mise à jour dans {{rarr|Composants,Mise à jour de Joomla !}} et {{rarr|Extensions,Gestion des extensions,Gerer}}. Vous allez examiner chaque extension installée sur votre site. Vous allez déterminer si elles doivent être mises à jour vers la dernière version ou désinstallées. Plus de précisions dans la [[Special:MyLanguage/:Pre-Update_Check|Vérification avant mise à jour]].&lt;br /&gt;
# Utilisation du contrôle de &amp;quot;pré-mise à jour&amp;quot; : pour pouvoir utiliser le contrôle de pré-mise à jour, vous devez configurer le composant de mise à jour de Joomla ! pour Joomla 4. Pour ce faire, procédez comme suit :&lt;br /&gt;
# Allez sur {{rarr|Components,Mise à jour de Joomlaǃ}}. (Il devrait indiquer qu&#039;aucune mise à jour n&#039;a été trouvée. Si ce n&#039;est pas le cas, mettez à jour Joomla à la dernière version (doit être 3.10.x) et testez. Puis faites une autre sauvegarde). Cliquez sur le bouton Paramètres dans le coin supérieur droit.&lt;br /&gt;
# Sélectionnez &#039;&#039;Le prochain Joomlaǃ&#039;&#039; dans le menu déroulant pour le canal de mise à jour.{{-}}[[File:Migration_J3toJ4_update_channel-en.png|border|800px]]{{-}}&lt;br /&gt;
# Cliquez sur Enregistrer et fermer&lt;br /&gt;
# Vous verrez alors votre version installée de Joomla, la dernière version de Joomla ! et l&#039;URL du package de mise à jour. Joomla vous montrera à nouveau la configuration requise pour Joomla 4. S&#039;il signale que vous avez un système ou des extensions incompatibles, il vous le dira ici. Prenez un moment pour consulter cette page.{{-}}[[File:J310-admin-update_to_4-pre_update_check-en.png|border|800px]]{{amboxNew|image=notice|style=notice|title={{{title|Note importante}}}|text=&#039;&#039;&#039;Ne faites PAS la mise à jour vers Joomla ! 4 maintenant. C&#039;est seulement pour préparer vos extensions tierces et rendre le site compatible avec Joomla ! 4.&#039;&#039;&#039;}}&lt;br /&gt;
# Regardez le contrôle de pré-mise à jour et le contrôle de pré-mise à jour des extensions dans l&#039;onglet Contrôle de pré-mise à jour du composant Joomla Update. Si une extension qui n&#039;est pas dans votre planning est listée ici, ajoutez-la à votre liste d&#039;extensions à examiner.&lt;br /&gt;
# Si vous avez migré de Joomla ! 2.5 à 3.x dans le passé, il peut y avoir quelques extensions restantes qui doivent être nettoyées. Voici les anciennes extensions 2.5 ou 3.x qui doivent être désinstallées avant la mise à jour vers Joomla 4 :&lt;br /&gt;
#;* plg_content_geshi&lt;br /&gt;
#;* template admin Bluestork&lt;br /&gt;
#;* Beez_20&lt;br /&gt;
#;* Beez5&lt;br /&gt;
#;* Atomic&lt;br /&gt;
## En ce qui concerne les templates, désinstallez tous les templates frontend ou backend de base, sauf Protostar et Beez3 (templates frontend) et Isis ou Hathor (templates administrateur). &#039;&#039;&#039;NOTE : Protostar n&#039;est PAS compatible avec Joomla 4&#039;&#039;&#039;. Lors de la migration, il disparaîtra. Vous aurez besoin d&#039;avoir un template sélectionné comme &amp;quot;par défaut&amp;quot; et vous pouvez utiliser Protostar ou Beez3. Protostar disparaîtra lors de la migration vers Joomla 4.x.&lt;br /&gt;
### Si vous rencontrez d&#039;autres fichiers qui doivent être désinstallés, veuillez les ajouter à cette page. Ceci est un wiki, donc tout le monde peut ajouter à la page. Merci d&#039;avance pour votre service.&lt;br /&gt;
# Vous remarquerez les balises indiquant si une extension est compatible ou non. Ces balises indiquent généralement la vérité si elles disent Non ou Oui. Si elles disent &amp;quot;Balise de compatibilité manquante&amp;quot;, cela signifie que le développeur de l&#039;extension n&#039;a pas utilisé de balise dans son extension et que nous ne savons pas si elle est ou non compatible avec Joomla 4. Contactez le développeur pour vérifier.&lt;br /&gt;
# Mise à jour des extensions : mettez à jour toutes les extensions que vous conserverez dans votre site Web. Dans Joomla ! 3.10.x, vous pouvez aller dans {{rarr|Gestionnaire d&#039;extensions, onglet Mise à jour}} et cliquer sur &#039;&#039;&#039;Trouver les mises à jour&#039;&#039;&#039; qui ajoutera une info-bulle dans la colonne Version, sous l&#039;onglet Gérer, donnant quelques informations de compatibilité depuis le backend. Cette fonctionnalité ne prend en charge que les extensions qui se mettent à jour via l&#039;onglet Mise à jour du gestionnaire d&#039;extensions. Si vous avez installé des extensions qui n&#039;utilisent pas la mise à jour des extensions Joomla, elles doivent être évaluées manuellement comme indiqué ci-dessous. Il en va de même pour les extensions qui ont une info-bulle. Vous devrez toujours vérifier le type de paquet et le chemin de migration avec le développeur de l&#039;extension pour vérifier comment mettre à niveau/migrer.&lt;br /&gt;
# Désinstaller et examiner les extensions : allez dans {{rarr|Gestionnaire d&#039;extensions, onglet Gérer}}.&lt;br /&gt;
# Cliquez sur le bouton &#039;&#039;Outils de recherche&#039;&#039; pour afficher les options de filtrage.&lt;br /&gt;
# Sélectionnez le package dans la liste déroulante.{{-}}[[File:J310-admin-extension-manage-package-en.png|800px]]{{-}}{{note|Il est recommandé de sélectionner d&#039;abord le package, car si vous devez désinstaller quelque chose dans un package, il désinstallera automatiquement et en une seule fois les modules, les plugins ou tout autre élément associé dans le package.}}&lt;br /&gt;
# Désinstallez tous les packages qui ne sont plus nécessaires ou qui ne seront pas transférés vers Joomla 4.&lt;br /&gt;
# Répétez ce processus en passant par l&#039;onglet Gérer pour tous les types dans la liste déroulante : Composant, Fichier, Langue, Bibliothèque, Module, Plugin et Template. Si l&#039;auteur indique projet Joomla, ne touchez pas à ces extensions. Pour toutes les autres, assurez-vous de désinstaller celles qui ne sont pas utilisées ou qui ne sont pas compatibles avec Joomla!&amp;amp;nbsp;4.x.{{-}}{{note|&#039;&#039;&#039;NOTE!&#039;&#039;&#039; Vous ne pourrez pas désinstaller un template qui est défini par défaut. Vous devrez sélectionner un template supporté par Core comme Beez3 ou Protostar et ensuite désinstaller le template si vous avez besoin de le faire. &amp;lt;br /&amp;gt;&#039;&#039;Autre rappel :&#039;&#039;&#039; &#039;&#039;&#039;Protostar n&#039;est pas compatible avec Joomla 4.x&#039;&#039;&#039;. Lors de la migration, il disparaîtra. En le sélectionnant par défaut, vous arrivez simplement à Joomla 4.x.|type=serious}}&lt;br /&gt;
# Notez toutes les versions des packages et des composants en cours d&#039;exécution que vous conserverez sur votre site. Vous pouvez les copier/coller dans un document pour référence.&lt;br /&gt;
# Pour toutes les extensions que vous gardez mais n&#039;utilisez pas le gestionnaire d&#039;extensions pour mettre à jour en un clic ({{rarr|Extensions,Gérer,Mettre à jour}}) mettez à jour toutes les extensions avec les dernières versions.&lt;br /&gt;
# Avant et pendant la mise à jour, notez si les extensions ont les versions 3.10.x et 4.x dans le même package. Si c&#039;est le cas, elles pourront être mises à jour en un clic. Si ce n&#039;est pas le cas, et que les versions 3.10 et 4.x ont des packages différents, vous devez les examiner au cas par cas. En règle générale, elles relèvent de l&#039;un des scénarios suivants :&lt;br /&gt;
#* L&#039;extension a des packages séparés mais lors de la mise à jour vers 4.x, ils détectent automatiquement cela et fonctionnent toujours. Assurez-vous que le développeur le confirme.&lt;br /&gt;
#* L&#039;extension a des packages séparés qui doivent être désinstallés dans 3.10.x et ensuite installés avec la version de Joomla 4.x une fois que le site est migré. Un exemple de ceci pourrait être un plugin de contenu. Il est très simple de le désinstaller en 3.10.x puis de le réinstaller en 4.x.&lt;br /&gt;
#* Voir [[S:MyLanguage/Template_Considerations_During_Migration|Considérations sur les templates]] pour des informations plus spécifiques sur les templates et [[S:MyLanguage/J3.x:Converting_A_Previous_Joomla!_Version_Template|Conversion d&#039;un template précédent de version de Joomla ! ]].&lt;br /&gt;
&lt;br /&gt;
==== Notes sur la recherche (com_search) ====&lt;br /&gt;
Search (com_search) sera séparé de Joomla 4.x. La recherche  (com_search) migrera vers Joomla 4. Après la migration, vous devrez le mettre à jour vers la version de Joomla 4.x via com_installer. Il continuera à être maintenu, mais plus de la même manière qu&#039;une extension tierce en recevant des mises à jour via com_installer. Il est recommandé d&#039;utiliserla Recherche avancée  (com_finder) à l&#039;avenir. La recherche sera toujours disponible à l&#039;adresse https://extensions.joomla.org/category/official-extensions/ .&lt;br /&gt;
&lt;br /&gt;
==== Notes sur les liens web ====&lt;br /&gt;
Les liens Web ont été dissociés dans la version 3.4 de Joomla. S&#039;il était utilisé sur un site 2.5, le processus de migration en prendrait note et migrerait le composant liens web et ses données. Pour la migration de 3.10.x à 4.x, il en sera de même. Il est toujours disponible et maintenu sur le JED à l&#039;adresse [https://extensions.joomla.org/category/official-extensions/ Official Extensions].&lt;br /&gt;
&lt;br /&gt;
==== Notes sur l&#039;ancien routage d&#039;URL ==== &lt;br /&gt;
L&#039;ancien routage ne sera pas disponible dans Joomla 4.x. Seul le routage moderne sera disponible. Lorsque vous effectuez la migration, si vous utilisez le routage héritage, le système le changera automatiquement en routage moderne. Vous devrez exécuter un vérificateur de liens brisés sur votre site après la migration vers Joomla 4.x et &amp;quot;avant de mettre en ligne&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
=== Passage à Joomla ! 4.x ===&lt;br /&gt;
Une fois que vous avez mis à jour ou désinstallé vos extensions tierces pour que seules celles compatibles avec Joomla ! 4 restent dans votre installation, continuez avec les étapes suivantes :&lt;br /&gt;
# Allez dans {{rarr|Système,Configuration,onglet Serveur}} et faites passer le rapport d&#039;erreur de de Défaut à Maximum. Veillez enregistrer et fermer.{{-}} [[File:J310-system-global-config-server-tab-en.png|border|500px]]&lt;br /&gt;
# Faites une autre sauvegarde.&lt;br /&gt;
# Allez sur {{rarr|Composants, mise à jour de Joomla}}. (Il devrait être indiqué qu&#039;aucune mise à jour n&#039;a été trouvée. Si ce n&#039;est pas le cas, mettez à jour Joomla à la dernière version et testez. Puis faites une autre sauvegarde). Cliquez sur le bouton Options dans le coin supérieur droit.&lt;br /&gt;
# Sélectionnez &#039;Joomla Next&#039;&#039; dans la liste déroulante pour le serveur de mise à jour.{{-}}[[File:J310-component-joomla-update-select-support-en.png|border|500px]]&lt;br /&gt;
# Cliquez sur Enregistrer et fermer.&lt;br /&gt;
# Vous verrez alors votre version installée de Joomla, la dernière version de Joomla ! et l&#039;URL du paquet de mise à jour. Joomla vous montrera à nouveau la configuration requise pour Joomla 4. S&#039;il signale que vous avez un système ou des extensions incompatibles, il vous le dira ici. Prenez un moment pour revoir cette page{{-}}[[File:J310-to-j4-dev-update-found-en.png|border|800px]]&lt;br /&gt;
# Si la mise à jour ne s&#039;affiche pas, allez dans {{rarr|Gestionnaire d&#039;extension,Mise à jour}} et cliquez sur  Purge du Cache dans la barre d&#039;outils. La mise à jour vers Joomla ! 4 devrait maintenant s&#039;afficher.&lt;br /&gt;
# Croisez les doigts, et assurez-vous d&#039;avoir cette sauvegarde disponible au cas où.&lt;br /&gt;
# Cliquez sur le bouton Installer la mise à jour.&lt;br /&gt;
# Faites du thé pendant que la barre d&#039;état passe au vert. Le temps que cela prend dépend de votre site, de votre connexion Internet et de la vitesse du serveur. Le processus prend environ deux minutes. Lorsque la mise à jour est terminée, vous serez probablement déconnecté de l&#039;administrateur. Reconnectez-vous. Deux fois.&lt;br /&gt;
# Si tout se passe bien, vous obtiendrez un tout nouveau look pour le panneau de l&#039;administrateur du backend.{{-}}[[File:j4-administrator-overview-en.png|border|800px]]&lt;br /&gt;
# Allez dans {{rarr|Système,Maintenance,Base de données}} et cliquez sur &#039;&#039;Réparer&#039;&#039; si des erreurs apparaissent.&lt;br /&gt;
# Dans {{rarr|Système,Installation,Découvrir}} voyez s&#039;il y a des extensions à installer. (Il ne devrait pas y en avoir !)&lt;br /&gt;
# Allez à l&#039;interface de votre site et voyez s&#039;il s&#039;affiche même si ce n&#039;est pas le bon template. Si oui, continuez. Si non, voir [[S:MyLanguage/Joomla 3.10 to 4.x Common Migration Errors|les erreurs fréquentes lors d&#039;une migration]].&lt;br /&gt;
# Faites une sauvegarde.&lt;br /&gt;
# Installez votre nouveau template ou d&#039;autres extensions si vous en avez à installer. Sauvegardez souvent.&lt;br /&gt;
# Configurez-les. Sauvegardez souvent.&lt;br /&gt;
# Exécutez un vérificateur de liens brisés et réparez tous les liens brisés.&lt;br /&gt;
# Testez tout. Sauvegardez souvent.&lt;br /&gt;
# Si tout fonctionne comme prévu, remettez le rapport d&#039;erreur sur le système par défaut ({{rarr|Système,Configuration globale,onglet Système de configuration}}). Veillez à enregistrer et à fermer.&lt;br /&gt;
&lt;br /&gt;
=== Mise en service de votre site Joomla ! 4.x ===&lt;br /&gt;
# Lorsque vous êtes prêt à mettre en ligne, sauvegardez votre site 3.10 pour la dernière fois. Restaurez-le dans un sous-répertoire ou un sous-domaine si vous le souhaitez.&lt;br /&gt;
# Sauvegardez votre site Joomla ! 4.x et déplacez ou restaurez votre site Joomla ! 4.x à la racine (ou changez les serveurs de noms si vous construisiez sur un domaine temporaire à la racine d&#039;un nouveau compte d&#039;hébergement).&lt;br /&gt;
# Testez à nouveau.&lt;br /&gt;
# Si vous aviez apporté des modifications de sécurité au fichier .htaccess, vous aurez peut-être à modifier une ou plusieurs lignes pour passer à la prochaine version de Joomla 4. Veuillez consulter [[S:MyLanguage/Htaccess_changes_after_joomla4.0.4| Modifications du htaccess après Joomla 4.0.4]] pour déterminer si vous devez modifier votre fichier ou non. &lt;br /&gt;
# Retirez le site Joomla ! 3.10 du serveur dans les deux jours qui suivent, sauf si vous avez modifié votre fichier &#039;&#039;robots.txt&#039;&#039; pour bloquer les robots des moteurs de recherche.&lt;br /&gt;
# Supprimez tous les sites de développement sur lesquels vous avez travaillé ou mettez-les à jour s&#039;ils utilisent une version actuelle afin d&#039;éviter toute tentative de piratage de votre serveur. &lt;br /&gt;
&lt;br /&gt;
Si des données ont été modifiées sur le site 3.10 pendant la migration vers la version 4.x, vous devrez les transférer sur le site 4.x avant la mise en ligne. Vous pouvez le faire manuellement (assurez-vous de conserver les mêmes identifiants d&#039;utilisateur - allez-y dans l&#039;ordre) ou en utilisant une [https://extensions.joomla.org/category/migration-a-conversion/data-import-a-export%20transfer%20tool/third-party%20extension/ extension tierce].&lt;br /&gt;
&lt;br /&gt;
== Outils suggérés ==&lt;br /&gt;
* [http://extensions.joomla.org/extensions/access-a-security/site-security/backup/1606 Akeeba Backup] is very popular for backup and restore. See more [https://extensions.joomla.org/tags/backup/ backup tools].&lt;br /&gt;
==Informations connexes== &lt;br /&gt;
[[Special:MyLanguage/:Pre-Update_Check|Vérification préalable à la mise à jour]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Migration/fr|Migration]]&lt;br /&gt;
[[Category:Tutorials/fr|Tutoriels]]&lt;br /&gt;
[[Category:Joomla! 4.x/fr{{#translation:}}]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_3.x_to_4.x_Step_by_Step_Migration/28/fr&amp;diff=963933</id>
		<title>Translations:Joomla 3.x to 4.x Step by Step Migration/28/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_3.x_to_4.x_Step_by_Step_Migration/28/fr&amp;diff=963933"/>
		<updated>2022-09-04T06:52:13Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Replaced content with &amp;quot;== Outils suggérés ==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Outils suggérés ==&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_3.x_to_4.x_Step_by_Step_Migration/30/fr&amp;diff=963932</id>
		<title>Translations:Joomla 3.x to 4.x Step by Step Migration/30/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Joomla_3.x_to_4.x_Step_by_Step_Migration/30/fr&amp;diff=963932"/>
		<updated>2022-09-04T06:51:54Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;# Utilisation du contrôle de &amp;quot;pré-mise à jour&amp;quot; : pour pouvoir utiliser le contrôle de pré-mise à jour, vous devez configurer le composant de mise à jour de Joomla ! pour Joomla 4. Pour ce faire, procédez comme suit :&lt;br /&gt;
# Allez sur {{rarr|Components,Mise à jour de Joomlaǃ}}. (Il devrait indiquer qu&#039;aucune mise à jour n&#039;a été trouvée. Si ce n&#039;est pas le cas, mettez à jour Joomla à la dernière version (doit être 3.10.x) et testez. Puis faites une autre sauvegarde). Cliquez sur le bouton Paramètres dans le coin supérieur droit.&lt;br /&gt;
# Sélectionnez &#039;&#039;Le prochain Joomlaǃ&#039;&#039; dans le menu déroulant pour le canal de mise à jour.&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=962325</id>
		<title>Manifest files/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=962325"/>
		<updated>2022-09-01T16:01:25Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x}} {{Joomla version|version=3.x}} {{Joomla version|version=2.5|status=eos}} &lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Avec Joomla, toutes les extensions proposent des fichiers manifestes. Ces fichiers recouvrent les informations générales concernant l&#039;installation, ainsi que des paramètres pour la configuration de l&#039;[[S:MyLanguage/extension|extension]] elle-même. Depuis Joomla! 2.5, il existe très peu de différences entre les différents formats de fichiers manifestes en fonction des différents [[S:MyLanguage/Extension types (technical definitions)|types d&#039;extensions]] permettant ainsi à chaque type de bénéficier de la puissance de l&#039;installateur Joomla.&lt;br /&gt;
&lt;br /&gt;
==Conventions de nommage==&lt;br /&gt;
Le fichier doit être nommé &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5 et 3) ou &amp;lt;tt&amp;gt;&amp;lt;extension_name&amp;gt;.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5, 3 et 4) et situé dans le répertoire racine du package d&#039;installation.&lt;br /&gt;
&lt;br /&gt;
Joomla 4.x : la correspondance automatique du namespace va échouer si un nom de fichier tel que &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; est utilisé. Voir https://github.com/joomla/joomla-cms/issues/37750&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntaxe==&lt;br /&gt;
&lt;br /&gt;
===Élément à la racine===&lt;br /&gt;
{{notice|La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace l&#039;ancienne &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; de la version Joomla {{JVer|1.5}}}}&lt;br /&gt;
&lt;br /&gt;
La balise principale du fichier d&#039;installation est&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La balise ouvrante et fermante est la même pour toutes les extensions. Les attributs suivants sont autorisés à l&#039;intérieur de la balise&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Applicable à || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;language&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;element&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Cet attribut décrit à l&#039;installateur le type de l&#039;extension. En fonction de ce type, d&#039;autres d&#039;exigences supplémentaires s&#039;appliqueront aux sous-balises.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| &amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Chaîne de caractères qui identifie la version de Joomla! pour laquelle cette extension est développée.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| La valeur par défaut &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; sera également utilisée si l&#039;attribut &amp;lt;tt&amp;gt;method&amp;lt;/tt&amp;gt; n&#039;est pas utilisé. La valeur &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; signifie que l&#039;installateur va s&#039;arrêter s&#039;il trouve un fichier/dossier de la nouvelle extension.&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| &amp;lt;code&amp;gt;site&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;administrator&amp;lt;/code&amp;gt; || Modules&lt;br /&gt;
| L&#039;attribut &amp;lt;tt&amp;gt;client&amp;lt;/tt&amp;gt; permet de préciser pour quel type de client d&#039;application le nouveau module est disponible.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &#039;&#039;string&#039;&#039; || Plugins&lt;br /&gt;
| Le nom du groupe indique pour quels groupes de plugins le nouveau plugin est disponible. Les groupes existants sont les noms de dossier du répertoire &amp;lt;tt&amp;gt;/plugins&amp;lt;/tt&amp;gt;. Le programme d&#039;installation va créer de nouveaux noms de dossier pour les noms de groupe qui n&#039;existent pas encore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Métadonnées===&lt;br /&gt;
&lt;br /&gt;
Les éléments suivants peuvent être utilisés pour insérer des métadonnées. Aucun de ces éléments n&#039;est obligatoire et s&#039;ils sont présents, ils doivent être un enfant de l&#039;élément racine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt; &amp;amp;ndash; raw component name (e.g. com_banners). &lt;br /&gt;
&amp;lt;author&amp;gt; &amp;amp;ndash; author&#039;s name (e.g. Joomla! Project)&lt;br /&gt;
&amp;lt;creationDate&amp;gt; &amp;amp;ndash; date of creation or release (e.g. April 2006)&lt;br /&gt;
&amp;lt;copyright&amp;gt; &amp;amp;ndash; a copyright statement (e.g. (C) 2005 - 2011 Open Source Matters. All rights reserved.)&lt;br /&gt;
&amp;lt;license&amp;gt; &amp;amp;ndash; a license statement (e.g. NU General Public License version 2 or later; see LICENSE.txt)&lt;br /&gt;
&amp;lt;authorEmail&amp;gt; &amp;amp;ndash; author&#039;s email address (e.g. admin@joomla.org)&lt;br /&gt;
&amp;lt;authorUrl&amp;gt; &amp;amp;ndash; URL to the author&#039;s website (e.g. www.joomla.org)&lt;br /&gt;
&amp;lt;version&amp;gt; &amp;amp;ndash; the version number of the extension (e.g. 1.6.0)&lt;br /&gt;
&amp;lt;description&amp;gt; &amp;amp;ndash; the description of the component. This is a translatable field. (e.g. COM_BANNERS_XML_DESCRIPTION)&lt;br /&gt;
&amp;lt;element&amp;gt; &amp;amp;ndash; the internal name of the component. If omitted, name will be cleaned and used&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remarque : les balises &amp;lt;name&amp;gt; et &amp;lt;description&amp;gt; sont des champs traduisibles de sorte que le nom et la description de l&#039;extension pourront être présents dans la langue maternelle de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Fichiers de frontend ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;from-folder&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;example.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;examples&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de frontend doivent être placés dans les balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; en option pour spécifier un répertoire &#039;&#039;&#039;du package ZIP&#039;&#039;&#039;. Chaque fichier à copier doit être nommé par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;. Si vous souhaitez copier un dossier entier à la fois, vous pouvez le définir comme un &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les &#039;&#039;&#039;plugins&#039;&#039;&#039;, le nom brut du plugin doit être placé dans l&#039;attribut &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; de l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; qui pointe vers le fichier contenant la classe du plugin. Par exemple, dans le cas d&#039;un système de plugin appelé &amp;quot;exemple&amp;quot; (nom complet : &amp;lt;code&amp;gt;plg_system_exemple&amp;lt;/code&amp;gt;), il faudra utiliser &amp;lt;code&amp;gt;&amp;lt;filename plugin=&amp;quot;exemple&amp;quot;&amp;gt;exemple.php&amp;lt;/filename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Fichiers multimédias===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
	&amp;lt;media folder=&amp;quot;media&amp;quot; destination=&amp;quot;com_example&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;com_example_logo.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;css&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;js&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple permet de copier le fichier (&amp;lt;tt&amp;gt;/media/com_example_logo.png&amp;lt;/tt&amp;gt;) et les dossiers ( &amp;lt;tt&amp;gt;/media/css/&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;/media/js/&amp;lt;/tt&amp;gt; ) listés vers &amp;lt;tt&amp;gt;/media/com_example/&amp;lt;/tt&amp;gt;, ainsi que la création du dossier &amp;lt;tt&amp;gt;com_example&amp;lt;/tt&amp;gt; si nécessaire. Vous pouvez utiliser en option l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire &#039;&#039;&#039;dans le package ZIP&#039;&#039;&#039; à partir duquel réaliser la (dans ce cas, &amp;lt;tt&amp;gt;media&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les extensions doivent stocker les éléments, dont elles ont besoin pour être accessible sur le web (JS, CSS, images, etc), dans &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;. Cette fonctionnalité a été ajoutée dans le cadre du projet de développement d&#039;une interface multi-site et du placement éventuel de fichiers de code (PHP) en dehors des espaces web serveurs accessibles.&amp;lt;br /&amp;gt;Remarque: la section médias n&#039;est pas analysé pour les extensions de type &#039;package&#039;.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/4CAASJqFY-k/PvPj14gP29EJ Google Groups - joomla-dev-cms thread]&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/uNmhX98sKbE/p8p68Jke680J Google Groups - joomla-dev-cms thread]&lt;br /&gt;
&lt;br /&gt;
===Section de l&#039;administration===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- various elements --&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section d&#039;administration est définie par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Puisque seuls les [[S:MyLanguage/Component|composants]] concernent à la fois l&#039;espace [[S:MyLanguage/Site (Application)|site]] et celui d&#039;[[S:MyLanguage/Administrator (Application)|administration]], &#039;&#039;&#039;seuls les manifests pour composants doivent intégrer ces éléments&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Fichiers de backend====&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de backend doivent être placés dans l&#039;élément &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; sous &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut optionnel &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire à copier depuis le &#039;&#039;&#039;pack ZIP&#039;&#039;&#039;. Voir les &#039;&#039;fichiers frontend&#039;&#039; pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
====Liens de menu et sous-menus====&lt;br /&gt;
{{dablink|&#039;&#039;&#039;Note de version :&#039;&#039;&#039; avant Joomla! 3.4, le fait de ne pas avoir de balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; dans votre fichier XML avait pour conséquence l création d&#039;un élément de menu. Cette anomalie a été corrigée dans Joomla! 3.4 et ainsi, si aucune balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; n&#039;est présente dans votre fichier manifest, aucun menu d&#039;administration ne sera créé pour le composant.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;menu&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;submenu&amp;gt;&lt;br /&gt;
		&amp;lt;!--&lt;br /&gt;
			Note that all &amp;amp; must be escaped to &amp;amp;amp; for the file to be valid&lt;br /&gt;
			XML and be parsed by the installer&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&amp;quot;anoption=avalue&amp;amp;amp;anoption1=avalue1&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_ANOPTION&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;menu view=&amp;quot;viewname&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_VIEWNAME&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;/submenu&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte pour l&#039;élément du menu principal pour le composant est défini dans la balise &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;, enfant de de la balise &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;submenu&amp;gt;&amp;lt;/code&amp;gt; peut être présente (également comme enfant de &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;), qui pourra contenir d&#039;autres éléments de menu définis par &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En outre, chaque élément &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || Description&lt;br /&gt;
|-&lt;br /&gt;
| link || Un lien vers lequel renvoyer l&#039;utilisateur lorsque l&#039;élément de menu est cliqué. Vous pouvez utiliser &amp;quot;view&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
| img || Le chemin (relatif) à une image (16x16 pixels) qui apparait à côté de l&#039;élément de menu. &lt;br /&gt;
&amp;lt;u&amp;gt;Doit être url compatible (par exemple sans espaces).&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| alt ||&lt;br /&gt;
|-&lt;br /&gt;
| view || Un paramètre URL à ajouter au lien. Par exemple, &amp;lt;code&amp;gt;&amp;lt;menu view=&amp;quot;cpanel&amp;quot;&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&amp;lt;/code&amp;gt; dans le manifest XML com_example générerait l&#039;URL de l&#039;élément de menu &amp;lt;tt&amp;gt;index.php?option=com_example&amp;amp;view=cpanel&amp;lt;/tt&amp;gt;. Vous pouvez utiliser &amp;quot;link&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La valeur à l&#039;intérieur de la balise est le nom du menu. À La différence de ce qui se faisait pour Joomla! 1.5, vous ne pouvez pas utiliser une chaîne de caractère dans votre langue naturelle. Par exemple, si vous renseignez &amp;quot;Composant d&#039;exemple&amp;quot; au lieu de COM_EXAMPLE, votre nom de composant qui s&#039;afficherait en titre serait &amp;quot;composant-d-exemple&amp;quot; et vous seriez dans l&#039;impossibilité de le traduire. Pour réaliser une traduction, vous devez créer un fichier nommé &amp;lt;tt&amp;gt;fr-FR.com_example.sys.ini&amp;lt;/tt&amp;gt; &#039;&#039;&#039;(NDT : avant de pouvoir créer le fichier fr-FR, il convient de créer le fichier d&#039;origine en-GB)&#039;&#039;&#039; dans &amp;lt;tt&amp;gt;administrator/languages/fr-FR&amp;lt;/tt&amp;gt; (vous pouvez utiliser la balise manifest &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; pour qu&#039;il soit copié lors de l&#039;installation) ou dans &amp;lt;tt&amp;gt;administrator/components/com_example/language/fr-FR&amp;lt;/tt&amp;gt;. Dans ce dernier cas, vous ne devez pas inclure le fichier de traduction dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; balise. Tant que vous aurez placé le répertoire de langue dans vos balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il sera copié lors de l&#039;installation du composant.&lt;br /&gt;
&lt;br /&gt;
Le contenu de ce fichier devrait être :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
COM_EXAMPLE=&amp;quot;Example Component&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_ANOPTION=&amp;quot;Another Option&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_VIEWNAME=&amp;quot;Another View&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the language string must be enclosed in double quotes, as per Joomla!&#039;s translation standards.&lt;br /&gt;
&lt;br /&gt;
{{note|Joomla! 1.6 and later sorts the Component menu items based on the actual translation of the key you supply in your XML manifest. This means that the sorting order is correct no matter what you call your translation key and no matter which language the site is being displayed in. Essentially, Joomla! 1.6 fixed the wrong sorting of the Components menu experienced under Joomla! 1.5 for the majority (non-English speaking!) of Joomla! users.}}&lt;br /&gt;
&lt;br /&gt;
=== Dashboards === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specifies the details for displaying a dashboard for the component in the Administrator area for the site.&lt;br /&gt;
* It will make a dashboard icon appear next to the administrator menu item for the component&lt;br /&gt;
* The dashboard icon will click through to display modules assigned to the cpanel-example administrator module position&lt;br /&gt;
* The title and icon defined in the XML file will be used as the header and icon at the top of the component&#039;s dashboard page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dashboards&amp;gt;&lt;br /&gt;
		&amp;lt;dashboard title=&amp;quot;COM_EXAMPLE_DASHBOARD_TITLE&amp;quot; icon=&amp;quot;icon-lock&amp;quot;&amp;gt;example&amp;lt;/dashboard&amp;gt;&lt;br /&gt;
	&amp;lt;/dashboards&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
{{warning|&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Les composants &#039;&#039;&#039;ne prennent pas en charge&#039;&#039;&#039; les définitions de configuration &#039;&#039;&#039;dans le manifeste&#039;&#039;&#039;. Ceci avait été mis en œuvre dans Joomla! 1.5. Ils est possible de définir les options de configuration pour différents niveaux à l&#039;aide des [[S:MyLanguage/Component configuration metadata|métadonnées de configuration de composant]].&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;, enfant de la racine, décrit les options de configuration de l&#039;extension. En cas de besoin, les options seront affichées par le gestionnaire concerné (gestionnaire de plugins, gestionnaire de modules ou gestionnaire de templates). &#039;&#039;&#039;Les options de configuration peuvent également être définies dans un fichier séparé nommé &amp;lt;code&amp;gt;config.xml&amp;lt;/code&amp;gt;. Son élément racine doit être &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de champs &amp;lt;code&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/code&amp;gt; peut contenir un ou plusieurs éléments &amp;lt;code&amp;gt;&amp;lt;field&amp;gt;&amp;lt;/code&amp;gt; (champ), chacun représentant un seul [[S:MyLanguage/form field|champ de formulaire]] avec une étiquette. Consultez les [[S:MyLanguage/Standard form field types|types de champs pour formulaires standards]] pour une liste des types de champs autorisés et un exemple de définitions de champs de formulaire XML.&lt;br /&gt;
&lt;br /&gt;
=== Namespace === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specify the namespace to be used for autoloading the plugin. The given namespace will autoload to the root directory of your extension by default however you can optionally add a &amp;quot;path&amp;quot; attribute to the namespace element to specify a subpath within your extensions root directory.&lt;br /&gt;
&lt;br /&gt;
===SQL===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;install&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.install.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/install&amp;gt;&lt;br /&gt;
    &amp;lt;uninstall&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.uninstall.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/uninstall&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;exemple ci-dessus, nous avons placé les fichiers SQL dans le répertoire &amp;lt;tt&amp;gt;admin/sql&amp;lt;/tt&amp;gt; du paquet d&#039;installation. Vous devez inclure le dossier &amp;lt;tt&amp;gt;sql&amp;lt;/tt&amp;gt; dans les fichiers d&#039;administration (tel que décrit dans &amp;quot;les fichiers backend&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez exécuter SQL lors de l&#039;installation et/ou la désinstallation à l&#039;aide des éléments &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;lt;uninstall&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; doit apparaître comme un enfant de ces éléments. &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; peut contenir n&#039;importe quel nombre d&#039;éléments &amp;lt;code&amp;gt;&amp;lt;file&amp;gt;&amp;lt;/code&amp;gt;, chacun devant définir un seul fichier SQL à exécuter. Leurs types de pilote de base de données sont décrits par l&#039;attribut &amp;lt;code&amp;gt;driver&amp;lt;/code&amp;gt;, leurs jeux de caractères par l&#039;attribut &amp;lt;code&amp;gt;charset&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
==== Mise à jour du schéma SQL====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depuis la version 1.6, une balise &amp;lt;code&amp;gt;&amp;lt;update&amp;gt;&amp;lt;/code&amp;gt; est disponible et vous permet de fournir une série de fichiers SQL pour mettre à jour le schéma actuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;sqlsrv&amp;quot;&amp;gt;sql/updates/sqlsrv&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour passer de la version &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt; à la version &amp;lt;code&amp;gt;1.0.1&amp;lt;/code&amp;gt; dans une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;, un fichier &amp;lt;code&amp;gt;1.0.1.sql&amp;lt;/code&amp;gt; doit être créé dans le dossier &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt; et la balise &amp;lt;code&amp;gt;&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; du manifest doit être mis à jour : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La structure finale du dossier sql ressemblera à ceci (dans l&#039;hypothèse d&#039;une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
sql&lt;br /&gt;
 |--&amp;gt;example.install.sql&lt;br /&gt;
 |--&amp;gt;example.uninstall.sql&lt;br /&gt;
 |--&amp;gt;updates&lt;br /&gt;
     |--&amp;gt;mysql&lt;br /&gt;
        |--&amp;gt;1.0.1.sql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des fichiers similaires doivent être créés pour les versions suivantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
===Fichiers langue===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Dans Joomla! 1.5, les développeurs d&#039;extensions devaient placer les fichiers de langue dans le dossier général des langues de Joomla! à l&#039;aide des balises &amp;amp;lt;languages&amp;amp;gt;...&amp;amp;lt;/languages&amp;amp;gt; comme indiqué ci-dessous. &#039;&#039;&#039;Cette méthode peut toujours être utilisée avec la version&#039;&#039;&#039; {{JVer|3.x}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Joomla! language tag --&amp;gt;&lt;br /&gt;
&amp;lt;languages folder=&amp;quot;langfiles&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_example.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Depuis Joomla! 1.6, il vous est conseillé de placer les fichiers langue de votre extension dans le dossier même de votre extension. Joomla! chargera alors automatiquement les fichiers de langue depuis votre extension.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En plaçant les fichiers de langue dans le dossier de l&#039;extension, vous permettez ainsi de les isoler et donc de les protéger. Par exemple, dans le cas ou un administrateur supprimerait une langue de son installation Joomlaǃ. Dans ce cas, les fichiers de langue de l&#039;extension ne seront pas supprimés. Ils resteront alors en place et ne seront accessibles que si la langue est installée à nouveau.&lt;br /&gt;
&lt;br /&gt;
La structure du dossier de langue pour le frontend et le backend est identique. Il convient de les placer dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; (par exemple &#039;&#039;&#039;en-GB&#039;&#039;&#039;) pour chaque langue et dans le dossier comme suit&amp;amp;nbsp;: &#039;&#039;&#039;language/en-GB/&#039;&#039;&#039;. Vous devez aussi spécifier ces dossiers pour le frontend et le backend.&lt;br /&gt;
&lt;br /&gt;
Dans votre manifest, il suffit simplement d&#039;inclure votre dossier &amp;lt;tt&amp;gt;&amp;lt;language&amp;gt;&amp;lt;/tt&amp;gt; dans la section fichiers. Les sous-répertoires pour chaque langue seront alors automatiquement copiés. À l&#039;intérieur des groupes &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il vous suffit d&#039;ajouter une balise &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt; à côté des éléments dans le groupe &amp;lt;tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/tt&amp;gt;, comme indiqué dans cet exemple&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;alpha&amp;quot;&amp;gt;alpha.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les deux techniques peuvent fonctionner ensemble. Voici un exemple du noyau&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;languagecode&amp;quot;&amp;gt;languagecode.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les avantages pour cette solution sont les suivants :&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers &#039;&#039;.ini&#039;&#039; présents dans le dossier du noyau ont la priorité sur les fichiers dans les dossiers langue des extensions.&lt;br /&gt;
Par exemple, s&#039;il existe, un fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; d&#039;un dossier du noyau sera toujours chargé dans le backend, sauf lors de l&#039;installation d&#039;une extension qui contient son propre fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans un dossier de langue. Dans ce cas et uniquement ce cas, le fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans le dossier de l&#039;extension affichera son contenu traduit au moment de l&#039;installation. C&#039;est très pratique car un développeur peut avoir deux fichiers &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; avec un contenu différent.&lt;br /&gt;
&lt;br /&gt;
Il est également beaucoup plus facile pour un utilisateur ayant besoin de trouver le fichier &amp;lt;tt&amp;gt;.ini&amp;lt;/tt&amp;gt; d&#039;une extension qui n&#039;est pas disponible dans sa langue de l&#039;ajouter dans le dossier principal. Il n&#039;y a aucun risque qu&#039;il ne soit supprimé en cas de désinstallation par erreur de l&#039;extension.&lt;br /&gt;
&lt;br /&gt;
Veuillez consulter également :&lt;br /&gt;
*[[S:MyLanguage/J2.5:Making non-core language packs|Créer un pack langue hors du noyau]]&lt;br /&gt;
*[[S:MyLanguage/Creating language packs for extensions in Joomla 2.5|Créer un pack langue pour une extension Joomla! 2.5]]&lt;br /&gt;
&lt;br /&gt;
Au cours du développement, vous pouvez activer le système de débogage de langue dans la configuration globale de Joomlaǃ. Vous pourrez découvrir si un problème est levé. Depuis {{JVer|3.2}}, cela est nécessaire afin d&#039;aider à déboguer le en-GB qui est &#039;&#039;&#039;toujours&#039;&#039;&#039; chargé en premier lorsque l&#039;on est pas en mode de débogage et ainsi empêcher l&#039;affichage des constantes.&lt;br /&gt;
&lt;br /&gt;
===Fichier de script===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;scriptfile&amp;gt;example.script.php&amp;lt;/scriptfile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Un &#039;&#039;&#039;fichier de script&#039;&#039;&#039; (code PHP qui est exécuté avant, pendant et/ou après l&#039;installation, la désinstallation ou la mise à jour) peut, en option, être défini à l&#039;aide d&#039;une balise &amp;lt;code&amp;gt;&amp;lt;scriptfile&amp;gt;&amp;lt;/code&amp;gt;. Ce fichier doit contenir une classe nommée &#039;&amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;InstallerScript&#039;&#039;&amp;lt;/tt&amp;gt; où &amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;&amp;lt;/tt&amp;gt; est le nom de votre extension (par exemple : com_nomducomposant, mod_nomdumodule, etc.). Pour les plugins, il convient de nommer également le groupe (par exemple : plgsystemnomduplugin). Les packages de bibliothèque ne prennent pas en charge les fichiers scripts. La structure de la classe sera comme suit :&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file should contain a class named &amp;quot;&amp;lt;element_name&amp;gt;InstallerScript&amp;quot; where &amp;lt;element_name&amp;gt; is the name of your extension (e.g. com_componentname, mod_modulename, etc.). Plugins must state the group (e.g. plgsystempluginname).&lt;br /&gt;
&lt;br /&gt;
In {{JVer|4.0}} and later the structure of the class is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
use Joomla\CMS\Installer\InstallerAdapter;&lt;br /&gt;
&lt;br /&gt;
class com_componentnameInstallerScript&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function __construct(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called before any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function preflight($route, InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called after any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function postflight($route, $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on installation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function install(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on update&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function update(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on uninstallation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function uninstall(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since Joomla 3.6 Joomla has shipped a basic script that you can use instead of shipping your own from scratch &#039;&#039;&#039;JInstallerScript&#039;&#039;&#039; which contains various helper methods commonly used through the community.&lt;br /&gt;
&lt;br /&gt;
=== Library Manifests === &lt;br /&gt;
{{notice|The section is based on {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
A simple library manifest might look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;library&amp;quot; method=&amp;quot;upgrade&amp;quot; version=&amp;quot;4.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;My Test library.&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mytest&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;Classes&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;mytest.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the library into the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mytest&amp;lt;/tt&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
What if your company has several libraries and you want to group them together under folder &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany&amp;lt;/tt&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Simple - include your company name in the &amp;lt;tt&amp;gt;libraryname&amp;lt;/tt&amp;gt; property of each library like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary1&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary2&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These libraries will then be installed in the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary2&amp;lt;/tt&amp;gt; folders.&lt;br /&gt;
&lt;br /&gt;
Uninstalling &amp;lt;tt&amp;gt;mylibrary1&amp;lt;/tt&amp;gt; will still leave &amp;lt;tt&amp;gt;mylibrary2&amp;lt;/tt&amp;gt; installed on your site.&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;tt&amp;gt;script files&amp;lt;/tt&amp;gt; with such company libraries the installer class name should look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary1InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary2InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
=== Serveurs de mise à jour ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;1&amp;quot; name=&amp;quot;Extension Update Site&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;collection&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;Collection Update Site&amp;quot;&amp;gt;http://example.com/collection.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les serveurs de mise à jour peuvent être définis dans les balises &amp;lt;code&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/code&amp;gt; comme enfant de la racine. Cet élément peut contenir une ou plusieurs balises &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; chacune avec la description depuis laquelle chercher les mises à jour. Chaque rubrique &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;collection&amp;lt;/code&amp;gt; || Le type de serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| priority || &#039;&#039;integer&#039;&#039; || La priorité du serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| name || &#039;&#039;string&#039;&#039; || Le nom du serveur de mise à jour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Pour plus d&#039;informations :&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing a MVC Component/Adding an update server|Création d&#039;une extension Joomla! - Ajout d&#039;un serveur de mise à jour]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Managing Component Updates|Gestion des mises à jour de composants pour Joomla! 2.5]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supporting Download Keys ===&lt;br /&gt;
&lt;br /&gt;
As of Joomla 4.0.0 users can enter their download keys in the Update Sites list. This gives them a single place to manage the download keys. When a user is going to update an extension, Joomla will check if there is a download key. If there is a download key, Joomla will add the download key to the update URL.&lt;br /&gt;
&lt;br /&gt;
To support download keys you must include the &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag in the manifest file. The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag takes 2 arguments:&lt;br /&gt;
* prefix&lt;br /&gt;
* suffix&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag will look like this in your manifest file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dlid prefix=&amp;quot;dlid=&amp;quot; suffix=&amp;quot;&amp;amp;amp;dummy=my.zip&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The prefix will be added before the download key and the suffix after the download key. Using the example above the full query added to the download link will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
dlid=KEY&amp;amp;amp;dummy=my.zip&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The key is added before the &amp;lt;tt&amp;gt;onInstallerBeforePackageDownload&amp;lt;/tt&amp;gt; event is triggered, so the full URL will be passed to the event.&lt;br /&gt;
&lt;br /&gt;
===Exemples=== &lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
== Exemples ==&lt;br /&gt;
Pour un exemple concret, veuillez consulter [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/components/com_banners/banners.xml le manifest pour le composant bannière de la version Joomla! 3.6.4].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D&#039;autres exemples peuvent être trouvés dans le répertoire autonome des liens web&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/administrator/components/com_weblinks/weblinks.xml manifest com_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/modules/mod_weblinks/mod_weblinks.xml manifest mod_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/plugins/search/weblinks/weblinks.xml manifest plg_search_weblinks]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/templates/protostar/templateDetails.xml manifest tpl_protostar (3.6.4)]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/language/en-GB/en-GB.xml manifest en-GB (3.6.4)]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Specifications{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/32/fr&amp;diff=962324</id>
		<title>Translations:Manifest files/32/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/32/fr&amp;diff=962324"/>
		<updated>2022-09-01T16:01:16Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;====Liens de menu et sous-menus====&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=962323</id>
		<title>Manifest files/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=962323"/>
		<updated>2022-09-01T16:00:40Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x}} {{Joomla version|version=3.x}} {{Joomla version|version=2.5|status=eos}} &lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Avec Joomla, toutes les extensions proposent des fichiers manifestes. Ces fichiers recouvrent les informations générales concernant l&#039;installation, ainsi que des paramètres pour la configuration de l&#039;[[S:MyLanguage/extension|extension]] elle-même. Depuis Joomla! 2.5, il existe très peu de différences entre les différents formats de fichiers manifestes en fonction des différents [[S:MyLanguage/Extension types (technical definitions)|types d&#039;extensions]] permettant ainsi à chaque type de bénéficier de la puissance de l&#039;installateur Joomla.&lt;br /&gt;
&lt;br /&gt;
==Conventions de nommage==&lt;br /&gt;
Le fichier doit être nommé &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5 et 3) ou &amp;lt;tt&amp;gt;&amp;lt;extension_name&amp;gt;.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5, 3 et 4) et situé dans le répertoire racine du package d&#039;installation.&lt;br /&gt;
&lt;br /&gt;
Joomla 4.x : la correspondance automatique du namespace va échouer si un nom de fichier tel que &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; est utilisé. Voir https://github.com/joomla/joomla-cms/issues/37750&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntaxe==&lt;br /&gt;
&lt;br /&gt;
===Élément à la racine===&lt;br /&gt;
{{notice|La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace l&#039;ancienne &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; de la version Joomla {{JVer|1.5}}}}&lt;br /&gt;
&lt;br /&gt;
La balise principale du fichier d&#039;installation est&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La balise ouvrante et fermante est la même pour toutes les extensions. Les attributs suivants sont autorisés à l&#039;intérieur de la balise&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Applicable à || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;language&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;element&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Cet attribut décrit à l&#039;installateur le type de l&#039;extension. En fonction de ce type, d&#039;autres d&#039;exigences supplémentaires s&#039;appliqueront aux sous-balises.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| &amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Chaîne de caractères qui identifie la version de Joomla! pour laquelle cette extension est développée.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| La valeur par défaut &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; sera également utilisée si l&#039;attribut &amp;lt;tt&amp;gt;method&amp;lt;/tt&amp;gt; n&#039;est pas utilisé. La valeur &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; signifie que l&#039;installateur va s&#039;arrêter s&#039;il trouve un fichier/dossier de la nouvelle extension.&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| &amp;lt;code&amp;gt;site&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;administrator&amp;lt;/code&amp;gt; || Modules&lt;br /&gt;
| L&#039;attribut &amp;lt;tt&amp;gt;client&amp;lt;/tt&amp;gt; permet de préciser pour quel type de client d&#039;application le nouveau module est disponible.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &#039;&#039;string&#039;&#039; || Plugins&lt;br /&gt;
| Le nom du groupe indique pour quels groupes de plugins le nouveau plugin est disponible. Les groupes existants sont les noms de dossier du répertoire &amp;lt;tt&amp;gt;/plugins&amp;lt;/tt&amp;gt;. Le programme d&#039;installation va créer de nouveaux noms de dossier pour les noms de groupe qui n&#039;existent pas encore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Métadonnées===&lt;br /&gt;
&lt;br /&gt;
Les éléments suivants peuvent être utilisés pour insérer des métadonnées. Aucun de ces éléments n&#039;est obligatoire et s&#039;ils sont présents, ils doivent être un enfant de l&#039;élément racine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt; &amp;amp;ndash; raw component name (e.g. com_banners). &lt;br /&gt;
&amp;lt;author&amp;gt; &amp;amp;ndash; author&#039;s name (e.g. Joomla! Project)&lt;br /&gt;
&amp;lt;creationDate&amp;gt; &amp;amp;ndash; date of creation or release (e.g. April 2006)&lt;br /&gt;
&amp;lt;copyright&amp;gt; &amp;amp;ndash; a copyright statement (e.g. (C) 2005 - 2011 Open Source Matters. All rights reserved.)&lt;br /&gt;
&amp;lt;license&amp;gt; &amp;amp;ndash; a license statement (e.g. NU General Public License version 2 or later; see LICENSE.txt)&lt;br /&gt;
&amp;lt;authorEmail&amp;gt; &amp;amp;ndash; author&#039;s email address (e.g. admin@joomla.org)&lt;br /&gt;
&amp;lt;authorUrl&amp;gt; &amp;amp;ndash; URL to the author&#039;s website (e.g. www.joomla.org)&lt;br /&gt;
&amp;lt;version&amp;gt; &amp;amp;ndash; the version number of the extension (e.g. 1.6.0)&lt;br /&gt;
&amp;lt;description&amp;gt; &amp;amp;ndash; the description of the component. This is a translatable field. (e.g. COM_BANNERS_XML_DESCRIPTION)&lt;br /&gt;
&amp;lt;element&amp;gt; &amp;amp;ndash; the internal name of the component. If omitted, name will be cleaned and used&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remarque : les balises &amp;lt;name&amp;gt; et &amp;lt;description&amp;gt; sont des champs traduisibles de sorte que le nom et la description de l&#039;extension pourront être présents dans la langue maternelle de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Fichiers de frontend ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;from-folder&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;example.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;examples&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de frontend doivent être placés dans les balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; en option pour spécifier un répertoire &#039;&#039;&#039;du package ZIP&#039;&#039;&#039;. Chaque fichier à copier doit être nommé par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;. Si vous souhaitez copier un dossier entier à la fois, vous pouvez le définir comme un &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les &#039;&#039;&#039;plugins&#039;&#039;&#039;, le nom brut du plugin doit être placé dans l&#039;attribut &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; de l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; qui pointe vers le fichier contenant la classe du plugin. Par exemple, dans le cas d&#039;un système de plugin appelé &amp;quot;exemple&amp;quot; (nom complet : &amp;lt;code&amp;gt;plg_system_exemple&amp;lt;/code&amp;gt;), il faudra utiliser &amp;lt;code&amp;gt;&amp;lt;filename plugin=&amp;quot;exemple&amp;quot;&amp;gt;exemple.php&amp;lt;/filename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Fichiers multimédias===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
	&amp;lt;media folder=&amp;quot;media&amp;quot; destination=&amp;quot;com_example&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;com_example_logo.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;css&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;js&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple permet de copier le fichier (&amp;lt;tt&amp;gt;/media/com_example_logo.png&amp;lt;/tt&amp;gt;) et les dossiers ( &amp;lt;tt&amp;gt;/media/css/&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;/media/js/&amp;lt;/tt&amp;gt; ) listés vers &amp;lt;tt&amp;gt;/media/com_example/&amp;lt;/tt&amp;gt;, ainsi que la création du dossier &amp;lt;tt&amp;gt;com_example&amp;lt;/tt&amp;gt; si nécessaire. Vous pouvez utiliser en option l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire &#039;&#039;&#039;dans le package ZIP&#039;&#039;&#039; à partir duquel réaliser la (dans ce cas, &amp;lt;tt&amp;gt;media&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les extensions doivent stocker les éléments, dont elles ont besoin pour être accessible sur le web (JS, CSS, images, etc), dans &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;. Cette fonctionnalité a été ajoutée dans le cadre du projet de développement d&#039;une interface multi-site et du placement éventuel de fichiers de code (PHP) en dehors des espaces web serveurs accessibles.&amp;lt;br /&amp;gt;Remarque: la section médias n&#039;est pas analysé pour les extensions de type &#039;package&#039;.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/4CAASJqFY-k/PvPj14gP29EJ Google Groups - joomla-dev-cms thread]&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/uNmhX98sKbE/p8p68Jke680J Google Groups - joomla-dev-cms thread]&lt;br /&gt;
&lt;br /&gt;
===Section de l&#039;administration===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- various elements --&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section d&#039;administration est définie par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Puisque seuls les [[S:MyLanguage/Component|composants]] concernent à la fois l&#039;espace [[S:MyLanguage/Site (Application)|site]] et celui d&#039;[[S:MyLanguage/Administrator (Application)|administration]], &#039;&#039;&#039;seuls les manifests pour composants doivent intégrer ces éléments&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
====Fichiers de backend====&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de backend doivent être placés dans l&#039;élément &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; sous &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut optionnel &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire à copier depuis le &#039;&#039;&#039;pack ZIP&#039;&#039;&#039;. Voir les &#039;&#039;fichiers frontend&#039;&#039; pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
====Liens de Menu et sous-menus====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{dablink|&#039;&#039;&#039;Note de version :&#039;&#039;&#039; avant Joomla! 3.4, le fait de ne pas avoir de balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; dans votre fichier XML avait pour conséquence l création d&#039;un élément de menu. Cette anomalie a été corrigée dans Joomla! 3.4 et ainsi, si aucune balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; n&#039;est présente dans votre fichier manifest, aucun menu d&#039;administration ne sera créé pour le composant.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;menu&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;submenu&amp;gt;&lt;br /&gt;
		&amp;lt;!--&lt;br /&gt;
			Note that all &amp;amp; must be escaped to &amp;amp;amp; for the file to be valid&lt;br /&gt;
			XML and be parsed by the installer&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&amp;quot;anoption=avalue&amp;amp;amp;anoption1=avalue1&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_ANOPTION&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;menu view=&amp;quot;viewname&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_VIEWNAME&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;/submenu&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte pour l&#039;élément du menu principal pour le composant est défini dans la balise &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;, enfant de de la balise &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;submenu&amp;gt;&amp;lt;/code&amp;gt; peut être présente (également comme enfant de &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;), qui pourra contenir d&#039;autres éléments de menu définis par &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En outre, chaque élément &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || Description&lt;br /&gt;
|-&lt;br /&gt;
| link || Un lien vers lequel renvoyer l&#039;utilisateur lorsque l&#039;élément de menu est cliqué. Vous pouvez utiliser &amp;quot;view&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
| img || Le chemin (relatif) à une image (16x16 pixels) qui apparait à côté de l&#039;élément de menu. &lt;br /&gt;
&amp;lt;u&amp;gt;Doit être url compatible (par exemple sans espaces).&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| alt ||&lt;br /&gt;
|-&lt;br /&gt;
| view || Un paramètre URL à ajouter au lien. Par exemple, &amp;lt;code&amp;gt;&amp;lt;menu view=&amp;quot;cpanel&amp;quot;&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&amp;lt;/code&amp;gt; dans le manifest XML com_example générerait l&#039;URL de l&#039;élément de menu &amp;lt;tt&amp;gt;index.php?option=com_example&amp;amp;view=cpanel&amp;lt;/tt&amp;gt;. Vous pouvez utiliser &amp;quot;link&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La valeur à l&#039;intérieur de la balise est le nom du menu. À La différence de ce qui se faisait pour Joomla! 1.5, vous ne pouvez pas utiliser une chaîne de caractère dans votre langue naturelle. Par exemple, si vous renseignez &amp;quot;Composant d&#039;exemple&amp;quot; au lieu de COM_EXAMPLE, votre nom de composant qui s&#039;afficherait en titre serait &amp;quot;composant-d-exemple&amp;quot; et vous seriez dans l&#039;impossibilité de le traduire. Pour réaliser une traduction, vous devez créer un fichier nommé &amp;lt;tt&amp;gt;fr-FR.com_example.sys.ini&amp;lt;/tt&amp;gt; &#039;&#039;&#039;(NDT : avant de pouvoir créer le fichier fr-FR, il convient de créer le fichier d&#039;origine en-GB)&#039;&#039;&#039; dans &amp;lt;tt&amp;gt;administrator/languages/fr-FR&amp;lt;/tt&amp;gt; (vous pouvez utiliser la balise manifest &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; pour qu&#039;il soit copié lors de l&#039;installation) ou dans &amp;lt;tt&amp;gt;administrator/components/com_example/language/fr-FR&amp;lt;/tt&amp;gt;. Dans ce dernier cas, vous ne devez pas inclure le fichier de traduction dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; balise. Tant que vous aurez placé le répertoire de langue dans vos balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il sera copié lors de l&#039;installation du composant.&lt;br /&gt;
&lt;br /&gt;
Le contenu de ce fichier devrait être :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
COM_EXAMPLE=&amp;quot;Example Component&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_ANOPTION=&amp;quot;Another Option&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_VIEWNAME=&amp;quot;Another View&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the language string must be enclosed in double quotes, as per Joomla!&#039;s translation standards.&lt;br /&gt;
&lt;br /&gt;
{{note|Joomla! 1.6 and later sorts the Component menu items based on the actual translation of the key you supply in your XML manifest. This means that the sorting order is correct no matter what you call your translation key and no matter which language the site is being displayed in. Essentially, Joomla! 1.6 fixed the wrong sorting of the Components menu experienced under Joomla! 1.5 for the majority (non-English speaking!) of Joomla! users.}}&lt;br /&gt;
&lt;br /&gt;
=== Dashboards === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specifies the details for displaying a dashboard for the component in the Administrator area for the site.&lt;br /&gt;
* It will make a dashboard icon appear next to the administrator menu item for the component&lt;br /&gt;
* The dashboard icon will click through to display modules assigned to the cpanel-example administrator module position&lt;br /&gt;
* The title and icon defined in the XML file will be used as the header and icon at the top of the component&#039;s dashboard page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dashboards&amp;gt;&lt;br /&gt;
		&amp;lt;dashboard title=&amp;quot;COM_EXAMPLE_DASHBOARD_TITLE&amp;quot; icon=&amp;quot;icon-lock&amp;quot;&amp;gt;example&amp;lt;/dashboard&amp;gt;&lt;br /&gt;
	&amp;lt;/dashboards&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
{{warning|&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Les composants &#039;&#039;&#039;ne prennent pas en charge&#039;&#039;&#039; les définitions de configuration &#039;&#039;&#039;dans le manifeste&#039;&#039;&#039;. Ceci avait été mis en œuvre dans Joomla! 1.5. Ils est possible de définir les options de configuration pour différents niveaux à l&#039;aide des [[S:MyLanguage/Component configuration metadata|métadonnées de configuration de composant]].&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;, enfant de la racine, décrit les options de configuration de l&#039;extension. En cas de besoin, les options seront affichées par le gestionnaire concerné (gestionnaire de plugins, gestionnaire de modules ou gestionnaire de templates). &#039;&#039;&#039;Les options de configuration peuvent également être définies dans un fichier séparé nommé &amp;lt;code&amp;gt;config.xml&amp;lt;/code&amp;gt;. Son élément racine doit être &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de champs &amp;lt;code&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/code&amp;gt; peut contenir un ou plusieurs éléments &amp;lt;code&amp;gt;&amp;lt;field&amp;gt;&amp;lt;/code&amp;gt; (champ), chacun représentant un seul [[S:MyLanguage/form field|champ de formulaire]] avec une étiquette. Consultez les [[S:MyLanguage/Standard form field types|types de champs pour formulaires standards]] pour une liste des types de champs autorisés et un exemple de définitions de champs de formulaire XML.&lt;br /&gt;
&lt;br /&gt;
=== Namespace === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specify the namespace to be used for autoloading the plugin. The given namespace will autoload to the root directory of your extension by default however you can optionally add a &amp;quot;path&amp;quot; attribute to the namespace element to specify a subpath within your extensions root directory.&lt;br /&gt;
&lt;br /&gt;
===SQL===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;install&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.install.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/install&amp;gt;&lt;br /&gt;
    &amp;lt;uninstall&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.uninstall.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/uninstall&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;exemple ci-dessus, nous avons placé les fichiers SQL dans le répertoire &amp;lt;tt&amp;gt;admin/sql&amp;lt;/tt&amp;gt; du paquet d&#039;installation. Vous devez inclure le dossier &amp;lt;tt&amp;gt;sql&amp;lt;/tt&amp;gt; dans les fichiers d&#039;administration (tel que décrit dans &amp;quot;les fichiers backend&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez exécuter SQL lors de l&#039;installation et/ou la désinstallation à l&#039;aide des éléments &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;lt;uninstall&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; doit apparaître comme un enfant de ces éléments. &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; peut contenir n&#039;importe quel nombre d&#039;éléments &amp;lt;code&amp;gt;&amp;lt;file&amp;gt;&amp;lt;/code&amp;gt;, chacun devant définir un seul fichier SQL à exécuter. Leurs types de pilote de base de données sont décrits par l&#039;attribut &amp;lt;code&amp;gt;driver&amp;lt;/code&amp;gt;, leurs jeux de caractères par l&#039;attribut &amp;lt;code&amp;gt;charset&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
==== Mise à jour du schéma SQL====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depuis la version 1.6, une balise &amp;lt;code&amp;gt;&amp;lt;update&amp;gt;&amp;lt;/code&amp;gt; est disponible et vous permet de fournir une série de fichiers SQL pour mettre à jour le schéma actuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;sqlsrv&amp;quot;&amp;gt;sql/updates/sqlsrv&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour passer de la version &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt; à la version &amp;lt;code&amp;gt;1.0.1&amp;lt;/code&amp;gt; dans une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;, un fichier &amp;lt;code&amp;gt;1.0.1.sql&amp;lt;/code&amp;gt; doit être créé dans le dossier &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt; et la balise &amp;lt;code&amp;gt;&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; du manifest doit être mis à jour : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La structure finale du dossier sql ressemblera à ceci (dans l&#039;hypothèse d&#039;une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
sql&lt;br /&gt;
 |--&amp;gt;example.install.sql&lt;br /&gt;
 |--&amp;gt;example.uninstall.sql&lt;br /&gt;
 |--&amp;gt;updates&lt;br /&gt;
     |--&amp;gt;mysql&lt;br /&gt;
        |--&amp;gt;1.0.1.sql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des fichiers similaires doivent être créés pour les versions suivantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
===Fichiers langue===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Dans Joomla! 1.5, les développeurs d&#039;extensions devaient placer les fichiers de langue dans le dossier général des langues de Joomla! à l&#039;aide des balises &amp;amp;lt;languages&amp;amp;gt;...&amp;amp;lt;/languages&amp;amp;gt; comme indiqué ci-dessous. &#039;&#039;&#039;Cette méthode peut toujours être utilisée avec la version&#039;&#039;&#039; {{JVer|3.x}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Joomla! language tag --&amp;gt;&lt;br /&gt;
&amp;lt;languages folder=&amp;quot;langfiles&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_example.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Depuis Joomla! 1.6, il vous est conseillé de placer les fichiers langue de votre extension dans le dossier même de votre extension. Joomla! chargera alors automatiquement les fichiers de langue depuis votre extension.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En plaçant les fichiers de langue dans le dossier de l&#039;extension, vous permettez ainsi de les isoler et donc de les protéger. Par exemple, dans le cas ou un administrateur supprimerait une langue de son installation Joomlaǃ. Dans ce cas, les fichiers de langue de l&#039;extension ne seront pas supprimés. Ils resteront alors en place et ne seront accessibles que si la langue est installée à nouveau.&lt;br /&gt;
&lt;br /&gt;
La structure du dossier de langue pour le frontend et le backend est identique. Il convient de les placer dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; (par exemple &#039;&#039;&#039;en-GB&#039;&#039;&#039;) pour chaque langue et dans le dossier comme suit&amp;amp;nbsp;: &#039;&#039;&#039;language/en-GB/&#039;&#039;&#039;. Vous devez aussi spécifier ces dossiers pour le frontend et le backend.&lt;br /&gt;
&lt;br /&gt;
Dans votre manifest, il suffit simplement d&#039;inclure votre dossier &amp;lt;tt&amp;gt;&amp;lt;language&amp;gt;&amp;lt;/tt&amp;gt; dans la section fichiers. Les sous-répertoires pour chaque langue seront alors automatiquement copiés. À l&#039;intérieur des groupes &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il vous suffit d&#039;ajouter une balise &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt; à côté des éléments dans le groupe &amp;lt;tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/tt&amp;gt;, comme indiqué dans cet exemple&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;alpha&amp;quot;&amp;gt;alpha.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les deux techniques peuvent fonctionner ensemble. Voici un exemple du noyau&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;languagecode&amp;quot;&amp;gt;languagecode.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les avantages pour cette solution sont les suivants :&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers &#039;&#039;.ini&#039;&#039; présents dans le dossier du noyau ont la priorité sur les fichiers dans les dossiers langue des extensions.&lt;br /&gt;
Par exemple, s&#039;il existe, un fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; d&#039;un dossier du noyau sera toujours chargé dans le backend, sauf lors de l&#039;installation d&#039;une extension qui contient son propre fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans un dossier de langue. Dans ce cas et uniquement ce cas, le fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans le dossier de l&#039;extension affichera son contenu traduit au moment de l&#039;installation. C&#039;est très pratique car un développeur peut avoir deux fichiers &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; avec un contenu différent.&lt;br /&gt;
&lt;br /&gt;
Il est également beaucoup plus facile pour un utilisateur ayant besoin de trouver le fichier &amp;lt;tt&amp;gt;.ini&amp;lt;/tt&amp;gt; d&#039;une extension qui n&#039;est pas disponible dans sa langue de l&#039;ajouter dans le dossier principal. Il n&#039;y a aucun risque qu&#039;il ne soit supprimé en cas de désinstallation par erreur de l&#039;extension.&lt;br /&gt;
&lt;br /&gt;
Veuillez consulter également :&lt;br /&gt;
*[[S:MyLanguage/J2.5:Making non-core language packs|Créer un pack langue hors du noyau]]&lt;br /&gt;
*[[S:MyLanguage/Creating language packs for extensions in Joomla 2.5|Créer un pack langue pour une extension Joomla! 2.5]]&lt;br /&gt;
&lt;br /&gt;
Au cours du développement, vous pouvez activer le système de débogage de langue dans la configuration globale de Joomlaǃ. Vous pourrez découvrir si un problème est levé. Depuis {{JVer|3.2}}, cela est nécessaire afin d&#039;aider à déboguer le en-GB qui est &#039;&#039;&#039;toujours&#039;&#039;&#039; chargé en premier lorsque l&#039;on est pas en mode de débogage et ainsi empêcher l&#039;affichage des constantes.&lt;br /&gt;
&lt;br /&gt;
===Fichier de script===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;scriptfile&amp;gt;example.script.php&amp;lt;/scriptfile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Un &#039;&#039;&#039;fichier de script&#039;&#039;&#039; (code PHP qui est exécuté avant, pendant et/ou après l&#039;installation, la désinstallation ou la mise à jour) peut, en option, être défini à l&#039;aide d&#039;une balise &amp;lt;code&amp;gt;&amp;lt;scriptfile&amp;gt;&amp;lt;/code&amp;gt;. Ce fichier doit contenir une classe nommée &#039;&amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;InstallerScript&#039;&#039;&amp;lt;/tt&amp;gt; où &amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;&amp;lt;/tt&amp;gt; est le nom de votre extension (par exemple : com_nomducomposant, mod_nomdumodule, etc.). Pour les plugins, il convient de nommer également le groupe (par exemple : plgsystemnomduplugin). Les packages de bibliothèque ne prennent pas en charge les fichiers scripts. La structure de la classe sera comme suit :&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file should contain a class named &amp;quot;&amp;lt;element_name&amp;gt;InstallerScript&amp;quot; where &amp;lt;element_name&amp;gt; is the name of your extension (e.g. com_componentname, mod_modulename, etc.). Plugins must state the group (e.g. plgsystempluginname).&lt;br /&gt;
&lt;br /&gt;
In {{JVer|4.0}} and later the structure of the class is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
use Joomla\CMS\Installer\InstallerAdapter;&lt;br /&gt;
&lt;br /&gt;
class com_componentnameInstallerScript&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function __construct(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called before any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function preflight($route, InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called after any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function postflight($route, $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on installation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function install(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on update&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function update(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on uninstallation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function uninstall(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since Joomla 3.6 Joomla has shipped a basic script that you can use instead of shipping your own from scratch &#039;&#039;&#039;JInstallerScript&#039;&#039;&#039; which contains various helper methods commonly used through the community.&lt;br /&gt;
&lt;br /&gt;
=== Library Manifests === &lt;br /&gt;
{{notice|The section is based on {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
A simple library manifest might look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;library&amp;quot; method=&amp;quot;upgrade&amp;quot; version=&amp;quot;4.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;My Test library.&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mytest&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;Classes&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;mytest.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the library into the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mytest&amp;lt;/tt&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
What if your company has several libraries and you want to group them together under folder &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany&amp;lt;/tt&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Simple - include your company name in the &amp;lt;tt&amp;gt;libraryname&amp;lt;/tt&amp;gt; property of each library like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary1&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary2&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These libraries will then be installed in the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary2&amp;lt;/tt&amp;gt; folders.&lt;br /&gt;
&lt;br /&gt;
Uninstalling &amp;lt;tt&amp;gt;mylibrary1&amp;lt;/tt&amp;gt; will still leave &amp;lt;tt&amp;gt;mylibrary2&amp;lt;/tt&amp;gt; installed on your site.&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;tt&amp;gt;script files&amp;lt;/tt&amp;gt; with such company libraries the installer class name should look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary1InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary2InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
=== Serveurs de mise à jour ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;1&amp;quot; name=&amp;quot;Extension Update Site&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;collection&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;Collection Update Site&amp;quot;&amp;gt;http://example.com/collection.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les serveurs de mise à jour peuvent être définis dans les balises &amp;lt;code&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/code&amp;gt; comme enfant de la racine. Cet élément peut contenir une ou plusieurs balises &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; chacune avec la description depuis laquelle chercher les mises à jour. Chaque rubrique &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;collection&amp;lt;/code&amp;gt; || Le type de serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| priority || &#039;&#039;integer&#039;&#039; || La priorité du serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| name || &#039;&#039;string&#039;&#039; || Le nom du serveur de mise à jour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Pour plus d&#039;informations :&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing a MVC Component/Adding an update server|Création d&#039;une extension Joomla! - Ajout d&#039;un serveur de mise à jour]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Managing Component Updates|Gestion des mises à jour de composants pour Joomla! 2.5]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supporting Download Keys ===&lt;br /&gt;
&lt;br /&gt;
As of Joomla 4.0.0 users can enter their download keys in the Update Sites list. This gives them a single place to manage the download keys. When a user is going to update an extension, Joomla will check if there is a download key. If there is a download key, Joomla will add the download key to the update URL.&lt;br /&gt;
&lt;br /&gt;
To support download keys you must include the &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag in the manifest file. The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag takes 2 arguments:&lt;br /&gt;
* prefix&lt;br /&gt;
* suffix&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag will look like this in your manifest file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dlid prefix=&amp;quot;dlid=&amp;quot; suffix=&amp;quot;&amp;amp;amp;dummy=my.zip&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The prefix will be added before the download key and the suffix after the download key. Using the example above the full query added to the download link will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
dlid=KEY&amp;amp;amp;dummy=my.zip&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The key is added before the &amp;lt;tt&amp;gt;onInstallerBeforePackageDownload&amp;lt;/tt&amp;gt; event is triggered, so the full URL will be passed to the event.&lt;br /&gt;
&lt;br /&gt;
===Exemples=== &lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
== Exemples ==&lt;br /&gt;
Pour un exemple concret, veuillez consulter [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/components/com_banners/banners.xml le manifest pour le composant bannière de la version Joomla! 3.6.4].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D&#039;autres exemples peuvent être trouvés dans le répertoire autonome des liens web&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/administrator/components/com_weblinks/weblinks.xml manifest com_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/modules/mod_weblinks/mod_weblinks.xml manifest mod_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/plugins/search/weblinks/weblinks.xml manifest plg_search_weblinks]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/templates/protostar/templateDetails.xml manifest tpl_protostar (3.6.4)]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/language/en-GB/en-GB.xml manifest en-GB (3.6.4)]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Specifications{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=962322</id>
		<title>Manifest files/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=962322"/>
		<updated>2022-09-01T16:00:20Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x}} {{Joomla version|version=3.x}} {{Joomla version|version=2.5|status=eos}} &lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Avec Joomla, toutes les extensions proposent des fichiers manifestes. Ces fichiers recouvrent les informations générales concernant l&#039;installation, ainsi que des paramètres pour la configuration de l&#039;[[S:MyLanguage/extension|extension]] elle-même. Depuis Joomla! 2.5, il existe très peu de différences entre les différents formats de fichiers manifestes en fonction des différents [[S:MyLanguage/Extension types (technical definitions)|types d&#039;extensions]] permettant ainsi à chaque type de bénéficier de la puissance de l&#039;installateur Joomla.&lt;br /&gt;
&lt;br /&gt;
==Conventions de nommage==&lt;br /&gt;
Le fichier doit être nommé &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5 et 3) ou &amp;lt;tt&amp;gt;&amp;lt;extension_name&amp;gt;.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5, 3 et 4) et situé dans le répertoire racine du package d&#039;installation.&lt;br /&gt;
&lt;br /&gt;
Joomla 4.x : la correspondance automatique du namespace va échouer si un nom de fichier tel que &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; est utilisé. Voir https://github.com/joomla/joomla-cms/issues/37750&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntaxe==&lt;br /&gt;
&lt;br /&gt;
===Élément à la racine===&lt;br /&gt;
{{notice|La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace l&#039;ancienne &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; de la version Joomla {{JVer|1.5}}}}&lt;br /&gt;
&lt;br /&gt;
La balise principale du fichier d&#039;installation est&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La balise ouvrante et fermante est la même pour toutes les extensions. Les attributs suivants sont autorisés à l&#039;intérieur de la balise&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Applicable à || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;language&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;element&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Cet attribut décrit à l&#039;installateur le type de l&#039;extension. En fonction de ce type, d&#039;autres d&#039;exigences supplémentaires s&#039;appliqueront aux sous-balises.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| &amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Chaîne de caractères qui identifie la version de Joomla! pour laquelle cette extension est développée.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| La valeur par défaut &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; sera également utilisée si l&#039;attribut &amp;lt;tt&amp;gt;method&amp;lt;/tt&amp;gt; n&#039;est pas utilisé. La valeur &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; signifie que l&#039;installateur va s&#039;arrêter s&#039;il trouve un fichier/dossier de la nouvelle extension.&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| &amp;lt;code&amp;gt;site&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;administrator&amp;lt;/code&amp;gt; || Modules&lt;br /&gt;
| L&#039;attribut &amp;lt;tt&amp;gt;client&amp;lt;/tt&amp;gt; permet de préciser pour quel type de client d&#039;application le nouveau module est disponible.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &#039;&#039;string&#039;&#039; || Plugins&lt;br /&gt;
| Le nom du groupe indique pour quels groupes de plugins le nouveau plugin est disponible. Les groupes existants sont les noms de dossier du répertoire &amp;lt;tt&amp;gt;/plugins&amp;lt;/tt&amp;gt;. Le programme d&#039;installation va créer de nouveaux noms de dossier pour les noms de groupe qui n&#039;existent pas encore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Métadonnées===&lt;br /&gt;
&lt;br /&gt;
Les éléments suivants peuvent être utilisés pour insérer des métadonnées. Aucun de ces éléments n&#039;est obligatoire et s&#039;ils sont présents, ils doivent être un enfant de l&#039;élément racine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt; &amp;amp;ndash; raw component name (e.g. com_banners). &lt;br /&gt;
&amp;lt;author&amp;gt; &amp;amp;ndash; author&#039;s name (e.g. Joomla! Project)&lt;br /&gt;
&amp;lt;creationDate&amp;gt; &amp;amp;ndash; date of creation or release (e.g. April 2006)&lt;br /&gt;
&amp;lt;copyright&amp;gt; &amp;amp;ndash; a copyright statement (e.g. (C) 2005 - 2011 Open Source Matters. All rights reserved.)&lt;br /&gt;
&amp;lt;license&amp;gt; &amp;amp;ndash; a license statement (e.g. NU General Public License version 2 or later; see LICENSE.txt)&lt;br /&gt;
&amp;lt;authorEmail&amp;gt; &amp;amp;ndash; author&#039;s email address (e.g. admin@joomla.org)&lt;br /&gt;
&amp;lt;authorUrl&amp;gt; &amp;amp;ndash; URL to the author&#039;s website (e.g. www.joomla.org)&lt;br /&gt;
&amp;lt;version&amp;gt; &amp;amp;ndash; the version number of the extension (e.g. 1.6.0)&lt;br /&gt;
&amp;lt;description&amp;gt; &amp;amp;ndash; the description of the component. This is a translatable field. (e.g. COM_BANNERS_XML_DESCRIPTION)&lt;br /&gt;
&amp;lt;element&amp;gt; &amp;amp;ndash; the internal name of the component. If omitted, name will be cleaned and used&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remarque : les balises &amp;lt;name&amp;gt; et &amp;lt;description&amp;gt; sont des champs traduisibles de sorte que le nom et la description de l&#039;extension pourront être présents dans la langue maternelle de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Fichiers de frontend ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;from-folder&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;example.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;examples&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de frontend doivent être placés dans les balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; en option pour spécifier un répertoire &#039;&#039;&#039;du package ZIP&#039;&#039;&#039;. Chaque fichier à copier doit être nommé par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;. Si vous souhaitez copier un dossier entier à la fois, vous pouvez le définir comme un &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les &#039;&#039;&#039;plugins&#039;&#039;&#039;, le nom brut du plugin doit être placé dans l&#039;attribut &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; de l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; qui pointe vers le fichier contenant la classe du plugin. Par exemple, dans le cas d&#039;un système de plugin appelé &amp;quot;exemple&amp;quot; (nom complet : &amp;lt;code&amp;gt;plg_system_exemple&amp;lt;/code&amp;gt;), il faudra utiliser &amp;lt;code&amp;gt;&amp;lt;filename plugin=&amp;quot;exemple&amp;quot;&amp;gt;exemple.php&amp;lt;/filename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Fichiers multimédias===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
	&amp;lt;media folder=&amp;quot;media&amp;quot; destination=&amp;quot;com_example&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;com_example_logo.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;css&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;js&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple permet de copier le fichier (&amp;lt;tt&amp;gt;/media/com_example_logo.png&amp;lt;/tt&amp;gt;) et les dossiers ( &amp;lt;tt&amp;gt;/media/css/&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;/media/js/&amp;lt;/tt&amp;gt; ) listés vers &amp;lt;tt&amp;gt;/media/com_example/&amp;lt;/tt&amp;gt;, ainsi que la création du dossier &amp;lt;tt&amp;gt;com_example&amp;lt;/tt&amp;gt; si nécessaire. Vous pouvez utiliser en option l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire &#039;&#039;&#039;dans le package ZIP&#039;&#039;&#039; à partir duquel réaliser la (dans ce cas, &amp;lt;tt&amp;gt;media&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les extensions doivent stocker les éléments, dont elles ont besoin pour être accessible sur le web (JS, CSS, images, etc), dans &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;. Cette fonctionnalité a été ajoutée dans le cadre du projet de développement d&#039;une interface multi-site et du placement éventuel de fichiers de code (PHP) en dehors des espaces web serveurs accessibles.&amp;lt;br /&amp;gt;Remarque: la section médias n&#039;est pas analysé pour les extensions de type &#039;package&#039;.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/4CAASJqFY-k/PvPj14gP29EJ Google Groups - joomla-dev-cms thread]&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/uNmhX98sKbE/p8p68Jke680J Google Groups - joomla-dev-cms thread]&lt;br /&gt;
&lt;br /&gt;
===Section de l&#039;administration===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- various elements --&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section d&#039;administration est définie par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Puisque seuls les [[S:MyLanguage/Component|composants]] concernent à la fois l&#039;espace [[S:MyLanguage/Site (Application)|site]] et celui d&#039;[[S:MyLanguage/Administrator (Application)|administration]], &#039;&#039;&#039;seuls les manifests pour composants doivent intégrer ces éléments&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
====Fichiers de backend====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de backend doivent être placés dans l&#039;élément &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; sous &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut optionnel &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire à copier depuis le &#039;&#039;&#039;pack ZIP&#039;&#039;&#039;. Voir les &#039;&#039;fichiers frontend&#039;&#039; pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
====Liens de Menu et sous-menus====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{dablink|&#039;&#039;&#039;Note de version :&#039;&#039;&#039; avant Joomla! 3.4, le fait de ne pas avoir de balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; dans votre fichier XML avait pour conséquence l création d&#039;un élément de menu. Cette anomalie a été corrigée dans Joomla! 3.4 et ainsi, si aucune balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; n&#039;est présente dans votre fichier manifest, aucun menu d&#039;administration ne sera créé pour le composant.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;menu&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;submenu&amp;gt;&lt;br /&gt;
		&amp;lt;!--&lt;br /&gt;
			Note that all &amp;amp; must be escaped to &amp;amp;amp; for the file to be valid&lt;br /&gt;
			XML and be parsed by the installer&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&amp;quot;anoption=avalue&amp;amp;amp;anoption1=avalue1&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_ANOPTION&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;menu view=&amp;quot;viewname&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_VIEWNAME&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;/submenu&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte pour l&#039;élément du menu principal pour le composant est défini dans la balise &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;, enfant de de la balise &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;submenu&amp;gt;&amp;lt;/code&amp;gt; peut être présente (également comme enfant de &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;), qui pourra contenir d&#039;autres éléments de menu définis par &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En outre, chaque élément &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || Description&lt;br /&gt;
|-&lt;br /&gt;
| link || Un lien vers lequel renvoyer l&#039;utilisateur lorsque l&#039;élément de menu est cliqué. Vous pouvez utiliser &amp;quot;view&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
| img || Le chemin (relatif) à une image (16x16 pixels) qui apparait à côté de l&#039;élément de menu. &lt;br /&gt;
&amp;lt;u&amp;gt;Doit être url compatible (par exemple sans espaces).&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| alt ||&lt;br /&gt;
|-&lt;br /&gt;
| view || Un paramètre URL à ajouter au lien. Par exemple, &amp;lt;code&amp;gt;&amp;lt;menu view=&amp;quot;cpanel&amp;quot;&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&amp;lt;/code&amp;gt; dans le manifest XML com_example générerait l&#039;URL de l&#039;élément de menu &amp;lt;tt&amp;gt;index.php?option=com_example&amp;amp;view=cpanel&amp;lt;/tt&amp;gt;. Vous pouvez utiliser &amp;quot;link&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La valeur à l&#039;intérieur de la balise est le nom du menu. À La différence de ce qui se faisait pour Joomla! 1.5, vous ne pouvez pas utiliser une chaîne de caractère dans votre langue naturelle. Par exemple, si vous renseignez &amp;quot;Composant d&#039;exemple&amp;quot; au lieu de COM_EXAMPLE, votre nom de composant qui s&#039;afficherait en titre serait &amp;quot;composant-d-exemple&amp;quot; et vous seriez dans l&#039;impossibilité de le traduire. Pour réaliser une traduction, vous devez créer un fichier nommé &amp;lt;tt&amp;gt;fr-FR.com_example.sys.ini&amp;lt;/tt&amp;gt; &#039;&#039;&#039;(NDT : avant de pouvoir créer le fichier fr-FR, il convient de créer le fichier d&#039;origine en-GB)&#039;&#039;&#039; dans &amp;lt;tt&amp;gt;administrator/languages/fr-FR&amp;lt;/tt&amp;gt; (vous pouvez utiliser la balise manifest &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; pour qu&#039;il soit copié lors de l&#039;installation) ou dans &amp;lt;tt&amp;gt;administrator/components/com_example/language/fr-FR&amp;lt;/tt&amp;gt;. Dans ce dernier cas, vous ne devez pas inclure le fichier de traduction dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; balise. Tant que vous aurez placé le répertoire de langue dans vos balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il sera copié lors de l&#039;installation du composant.&lt;br /&gt;
&lt;br /&gt;
Le contenu de ce fichier devrait être :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
COM_EXAMPLE=&amp;quot;Example Component&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_ANOPTION=&amp;quot;Another Option&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_VIEWNAME=&amp;quot;Another View&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the language string must be enclosed in double quotes, as per Joomla!&#039;s translation standards.&lt;br /&gt;
&lt;br /&gt;
{{note|Joomla! 1.6 and later sorts the Component menu items based on the actual translation of the key you supply in your XML manifest. This means that the sorting order is correct no matter what you call your translation key and no matter which language the site is being displayed in. Essentially, Joomla! 1.6 fixed the wrong sorting of the Components menu experienced under Joomla! 1.5 for the majority (non-English speaking!) of Joomla! users.}}&lt;br /&gt;
&lt;br /&gt;
=== Dashboards === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specifies the details for displaying a dashboard for the component in the Administrator area for the site.&lt;br /&gt;
* It will make a dashboard icon appear next to the administrator menu item for the component&lt;br /&gt;
* The dashboard icon will click through to display modules assigned to the cpanel-example administrator module position&lt;br /&gt;
* The title and icon defined in the XML file will be used as the header and icon at the top of the component&#039;s dashboard page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dashboards&amp;gt;&lt;br /&gt;
		&amp;lt;dashboard title=&amp;quot;COM_EXAMPLE_DASHBOARD_TITLE&amp;quot; icon=&amp;quot;icon-lock&amp;quot;&amp;gt;example&amp;lt;/dashboard&amp;gt;&lt;br /&gt;
	&amp;lt;/dashboards&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
{{warning|&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Les composants &#039;&#039;&#039;ne prennent pas en charge&#039;&#039;&#039; les définitions de configuration &#039;&#039;&#039;dans le manifeste&#039;&#039;&#039;. Ceci avait été mis en œuvre dans Joomla! 1.5. Ils est possible de définir les options de configuration pour différents niveaux à l&#039;aide des [[S:MyLanguage/Component configuration metadata|métadonnées de configuration de composant]].&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;, enfant de la racine, décrit les options de configuration de l&#039;extension. En cas de besoin, les options seront affichées par le gestionnaire concerné (gestionnaire de plugins, gestionnaire de modules ou gestionnaire de templates). &#039;&#039;&#039;Les options de configuration peuvent également être définies dans un fichier séparé nommé &amp;lt;code&amp;gt;config.xml&amp;lt;/code&amp;gt;. Son élément racine doit être &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de champs &amp;lt;code&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/code&amp;gt; peut contenir un ou plusieurs éléments &amp;lt;code&amp;gt;&amp;lt;field&amp;gt;&amp;lt;/code&amp;gt; (champ), chacun représentant un seul [[S:MyLanguage/form field|champ de formulaire]] avec une étiquette. Consultez les [[S:MyLanguage/Standard form field types|types de champs pour formulaires standards]] pour une liste des types de champs autorisés et un exemple de définitions de champs de formulaire XML.&lt;br /&gt;
&lt;br /&gt;
=== Namespace === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specify the namespace to be used for autoloading the plugin. The given namespace will autoload to the root directory of your extension by default however you can optionally add a &amp;quot;path&amp;quot; attribute to the namespace element to specify a subpath within your extensions root directory.&lt;br /&gt;
&lt;br /&gt;
===SQL===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;install&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.install.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/install&amp;gt;&lt;br /&gt;
    &amp;lt;uninstall&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.uninstall.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/uninstall&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;exemple ci-dessus, nous avons placé les fichiers SQL dans le répertoire &amp;lt;tt&amp;gt;admin/sql&amp;lt;/tt&amp;gt; du paquet d&#039;installation. Vous devez inclure le dossier &amp;lt;tt&amp;gt;sql&amp;lt;/tt&amp;gt; dans les fichiers d&#039;administration (tel que décrit dans &amp;quot;les fichiers backend&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez exécuter SQL lors de l&#039;installation et/ou la désinstallation à l&#039;aide des éléments &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;lt;uninstall&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; doit apparaître comme un enfant de ces éléments. &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; peut contenir n&#039;importe quel nombre d&#039;éléments &amp;lt;code&amp;gt;&amp;lt;file&amp;gt;&amp;lt;/code&amp;gt;, chacun devant définir un seul fichier SQL à exécuter. Leurs types de pilote de base de données sont décrits par l&#039;attribut &amp;lt;code&amp;gt;driver&amp;lt;/code&amp;gt;, leurs jeux de caractères par l&#039;attribut &amp;lt;code&amp;gt;charset&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
==== Mise à jour du schéma SQL====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depuis la version 1.6, une balise &amp;lt;code&amp;gt;&amp;lt;update&amp;gt;&amp;lt;/code&amp;gt; est disponible et vous permet de fournir une série de fichiers SQL pour mettre à jour le schéma actuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;sqlsrv&amp;quot;&amp;gt;sql/updates/sqlsrv&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour passer de la version &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt; à la version &amp;lt;code&amp;gt;1.0.1&amp;lt;/code&amp;gt; dans une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;, un fichier &amp;lt;code&amp;gt;1.0.1.sql&amp;lt;/code&amp;gt; doit être créé dans le dossier &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt; et la balise &amp;lt;code&amp;gt;&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; du manifest doit être mis à jour : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La structure finale du dossier sql ressemblera à ceci (dans l&#039;hypothèse d&#039;une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
sql&lt;br /&gt;
 |--&amp;gt;example.install.sql&lt;br /&gt;
 |--&amp;gt;example.uninstall.sql&lt;br /&gt;
 |--&amp;gt;updates&lt;br /&gt;
     |--&amp;gt;mysql&lt;br /&gt;
        |--&amp;gt;1.0.1.sql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des fichiers similaires doivent être créés pour les versions suivantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
===Fichiers langue===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Dans Joomla! 1.5, les développeurs d&#039;extensions devaient placer les fichiers de langue dans le dossier général des langues de Joomla! à l&#039;aide des balises &amp;amp;lt;languages&amp;amp;gt;...&amp;amp;lt;/languages&amp;amp;gt; comme indiqué ci-dessous. &#039;&#039;&#039;Cette méthode peut toujours être utilisée avec la version&#039;&#039;&#039; {{JVer|3.x}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Joomla! language tag --&amp;gt;&lt;br /&gt;
&amp;lt;languages folder=&amp;quot;langfiles&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_example.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Depuis Joomla! 1.6, il vous est conseillé de placer les fichiers langue de votre extension dans le dossier même de votre extension. Joomla! chargera alors automatiquement les fichiers de langue depuis votre extension.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En plaçant les fichiers de langue dans le dossier de l&#039;extension, vous permettez ainsi de les isoler et donc de les protéger. Par exemple, dans le cas ou un administrateur supprimerait une langue de son installation Joomlaǃ. Dans ce cas, les fichiers de langue de l&#039;extension ne seront pas supprimés. Ils resteront alors en place et ne seront accessibles que si la langue est installée à nouveau.&lt;br /&gt;
&lt;br /&gt;
La structure du dossier de langue pour le frontend et le backend est identique. Il convient de les placer dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; (par exemple &#039;&#039;&#039;en-GB&#039;&#039;&#039;) pour chaque langue et dans le dossier comme suit&amp;amp;nbsp;: &#039;&#039;&#039;language/en-GB/&#039;&#039;&#039;. Vous devez aussi spécifier ces dossiers pour le frontend et le backend.&lt;br /&gt;
&lt;br /&gt;
Dans votre manifest, il suffit simplement d&#039;inclure votre dossier &amp;lt;tt&amp;gt;&amp;lt;language&amp;gt;&amp;lt;/tt&amp;gt; dans la section fichiers. Les sous-répertoires pour chaque langue seront alors automatiquement copiés. À l&#039;intérieur des groupes &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il vous suffit d&#039;ajouter une balise &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt; à côté des éléments dans le groupe &amp;lt;tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/tt&amp;gt;, comme indiqué dans cet exemple&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;alpha&amp;quot;&amp;gt;alpha.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les deux techniques peuvent fonctionner ensemble. Voici un exemple du noyau&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;languagecode&amp;quot;&amp;gt;languagecode.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les avantages pour cette solution sont les suivants :&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers &#039;&#039;.ini&#039;&#039; présents dans le dossier du noyau ont la priorité sur les fichiers dans les dossiers langue des extensions.&lt;br /&gt;
Par exemple, s&#039;il existe, un fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; d&#039;un dossier du noyau sera toujours chargé dans le backend, sauf lors de l&#039;installation d&#039;une extension qui contient son propre fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans un dossier de langue. Dans ce cas et uniquement ce cas, le fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans le dossier de l&#039;extension affichera son contenu traduit au moment de l&#039;installation. C&#039;est très pratique car un développeur peut avoir deux fichiers &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; avec un contenu différent.&lt;br /&gt;
&lt;br /&gt;
Il est également beaucoup plus facile pour un utilisateur ayant besoin de trouver le fichier &amp;lt;tt&amp;gt;.ini&amp;lt;/tt&amp;gt; d&#039;une extension qui n&#039;est pas disponible dans sa langue de l&#039;ajouter dans le dossier principal. Il n&#039;y a aucun risque qu&#039;il ne soit supprimé en cas de désinstallation par erreur de l&#039;extension.&lt;br /&gt;
&lt;br /&gt;
Veuillez consulter également :&lt;br /&gt;
*[[S:MyLanguage/J2.5:Making non-core language packs|Créer un pack langue hors du noyau]]&lt;br /&gt;
*[[S:MyLanguage/Creating language packs for extensions in Joomla 2.5|Créer un pack langue pour une extension Joomla! 2.5]]&lt;br /&gt;
&lt;br /&gt;
Au cours du développement, vous pouvez activer le système de débogage de langue dans la configuration globale de Joomlaǃ. Vous pourrez découvrir si un problème est levé. Depuis {{JVer|3.2}}, cela est nécessaire afin d&#039;aider à déboguer le en-GB qui est &#039;&#039;&#039;toujours&#039;&#039;&#039; chargé en premier lorsque l&#039;on est pas en mode de débogage et ainsi empêcher l&#039;affichage des constantes.&lt;br /&gt;
&lt;br /&gt;
===Fichier de script===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;scriptfile&amp;gt;example.script.php&amp;lt;/scriptfile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Un &#039;&#039;&#039;fichier de script&#039;&#039;&#039; (code PHP qui est exécuté avant, pendant et/ou après l&#039;installation, la désinstallation ou la mise à jour) peut, en option, être défini à l&#039;aide d&#039;une balise &amp;lt;code&amp;gt;&amp;lt;scriptfile&amp;gt;&amp;lt;/code&amp;gt;. Ce fichier doit contenir une classe nommée &#039;&amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;InstallerScript&#039;&#039;&amp;lt;/tt&amp;gt; où &amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;&amp;lt;/tt&amp;gt; est le nom de votre extension (par exemple : com_nomducomposant, mod_nomdumodule, etc.). Pour les plugins, il convient de nommer également le groupe (par exemple : plgsystemnomduplugin). Les packages de bibliothèque ne prennent pas en charge les fichiers scripts. La structure de la classe sera comme suit :&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file should contain a class named &amp;quot;&amp;lt;element_name&amp;gt;InstallerScript&amp;quot; where &amp;lt;element_name&amp;gt; is the name of your extension (e.g. com_componentname, mod_modulename, etc.). Plugins must state the group (e.g. plgsystempluginname).&lt;br /&gt;
&lt;br /&gt;
In {{JVer|4.0}} and later the structure of the class is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
use Joomla\CMS\Installer\InstallerAdapter;&lt;br /&gt;
&lt;br /&gt;
class com_componentnameInstallerScript&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function __construct(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called before any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function preflight($route, InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called after any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function postflight($route, $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on installation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function install(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on update&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function update(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on uninstallation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function uninstall(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since Joomla 3.6 Joomla has shipped a basic script that you can use instead of shipping your own from scratch &#039;&#039;&#039;JInstallerScript&#039;&#039;&#039; which contains various helper methods commonly used through the community.&lt;br /&gt;
&lt;br /&gt;
=== Library Manifests === &lt;br /&gt;
{{notice|The section is based on {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
A simple library manifest might look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;library&amp;quot; method=&amp;quot;upgrade&amp;quot; version=&amp;quot;4.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;My Test library.&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mytest&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;Classes&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;mytest.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the library into the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mytest&amp;lt;/tt&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
What if your company has several libraries and you want to group them together under folder &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany&amp;lt;/tt&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Simple - include your company name in the &amp;lt;tt&amp;gt;libraryname&amp;lt;/tt&amp;gt; property of each library like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary1&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary2&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These libraries will then be installed in the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary2&amp;lt;/tt&amp;gt; folders.&lt;br /&gt;
&lt;br /&gt;
Uninstalling &amp;lt;tt&amp;gt;mylibrary1&amp;lt;/tt&amp;gt; will still leave &amp;lt;tt&amp;gt;mylibrary2&amp;lt;/tt&amp;gt; installed on your site.&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;tt&amp;gt;script files&amp;lt;/tt&amp;gt; with such company libraries the installer class name should look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary1InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary2InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
=== Serveurs de mise à jour ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;1&amp;quot; name=&amp;quot;Extension Update Site&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;collection&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;Collection Update Site&amp;quot;&amp;gt;http://example.com/collection.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les serveurs de mise à jour peuvent être définis dans les balises &amp;lt;code&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/code&amp;gt; comme enfant de la racine. Cet élément peut contenir une ou plusieurs balises &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; chacune avec la description depuis laquelle chercher les mises à jour. Chaque rubrique &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;collection&amp;lt;/code&amp;gt; || Le type de serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| priority || &#039;&#039;integer&#039;&#039; || La priorité du serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| name || &#039;&#039;string&#039;&#039; || Le nom du serveur de mise à jour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Pour plus d&#039;informations :&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing a MVC Component/Adding an update server|Création d&#039;une extension Joomla! - Ajout d&#039;un serveur de mise à jour]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Managing Component Updates|Gestion des mises à jour de composants pour Joomla! 2.5]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supporting Download Keys ===&lt;br /&gt;
&lt;br /&gt;
As of Joomla 4.0.0 users can enter their download keys in the Update Sites list. This gives them a single place to manage the download keys. When a user is going to update an extension, Joomla will check if there is a download key. If there is a download key, Joomla will add the download key to the update URL.&lt;br /&gt;
&lt;br /&gt;
To support download keys you must include the &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag in the manifest file. The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag takes 2 arguments:&lt;br /&gt;
* prefix&lt;br /&gt;
* suffix&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag will look like this in your manifest file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dlid prefix=&amp;quot;dlid=&amp;quot; suffix=&amp;quot;&amp;amp;amp;dummy=my.zip&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The prefix will be added before the download key and the suffix after the download key. Using the example above the full query added to the download link will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
dlid=KEY&amp;amp;amp;dummy=my.zip&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The key is added before the &amp;lt;tt&amp;gt;onInstallerBeforePackageDownload&amp;lt;/tt&amp;gt; event is triggered, so the full URL will be passed to the event.&lt;br /&gt;
&lt;br /&gt;
===Exemples=== &lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
== Exemples ==&lt;br /&gt;
Pour un exemple concret, veuillez consulter [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/components/com_banners/banners.xml le manifest pour le composant bannière de la version Joomla! 3.6.4].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D&#039;autres exemples peuvent être trouvés dans le répertoire autonome des liens web&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/administrator/components/com_weblinks/weblinks.xml manifest com_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/modules/mod_weblinks/mod_weblinks.xml manifest mod_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/plugins/search/weblinks/weblinks.xml manifest plg_search_weblinks]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/templates/protostar/templateDetails.xml manifest tpl_protostar (3.6.4)]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/language/en-GB/en-GB.xml manifest en-GB (3.6.4)]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Specifications{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/5/fr&amp;diff=962321</id>
		<title>Translations:Manifest files/5/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/5/fr&amp;diff=962321"/>
		<updated>2022-09-01T16:00:16Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La balise ouvrante et fermante est la même pour toutes les extensions. Les attributs suivants sont autorisés à l&#039;intérieur de la balise&amp;amp;nbsp;:&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=962320</id>
		<title>Manifest files/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=962320"/>
		<updated>2022-09-01T15:59:24Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x}} {{Joomla version|version=3.x}} {{Joomla version|version=2.5|status=eos}} &lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Avec Joomla, toutes les extensions proposent des fichiers manifestes. Ces fichiers recouvrent les informations générales concernant l&#039;installation, ainsi que des paramètres pour la configuration de l&#039;[[S:MyLanguage/extension|extension]] elle-même. Depuis Joomla! 2.5, il existe très peu de différences entre les différents formats de fichiers manifestes en fonction des différents [[S:MyLanguage/Extension types (technical definitions)|types d&#039;extensions]] permettant ainsi à chaque type de bénéficier de la puissance de l&#039;installateur Joomla.&lt;br /&gt;
&lt;br /&gt;
==Conventions de nommage==&lt;br /&gt;
Le fichier doit être nommé &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5 et 3) ou &amp;lt;tt&amp;gt;&amp;lt;extension_name&amp;gt;.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5, 3 et 4) et situé dans le répertoire racine du package d&#039;installation.&lt;br /&gt;
&lt;br /&gt;
Joomla 4.x : la correspondance automatique du namespace va échouer si un nom de fichier tel que &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; est utilisé. Voir https://github.com/joomla/joomla-cms/issues/37750&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntaxe==&lt;br /&gt;
&lt;br /&gt;
===Élément à la racine===&lt;br /&gt;
{{notice|La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace l&#039;ancienne &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; de la version Joomla {{JVer|1.5}}}}&lt;br /&gt;
&lt;br /&gt;
La balise principale du fichier d&#039;installation est&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise ouvrante et fermante est maintenant valable pour toutes les extensions. La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace les anciennes &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; depuis Joomla! {{JVer|1.5}}. Les attributs suivants sont autorisés à l&#039;intérieur de la balise&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Applicable à || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;language&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;element&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Cet attribut décrit à l&#039;installateur le type de l&#039;extension. En fonction de ce type, d&#039;autres d&#039;exigences supplémentaires s&#039;appliqueront aux sous-balises.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| &amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Chaîne de caractères qui identifie la version de Joomla! pour laquelle cette extension est développée.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| La valeur par défaut &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; sera également utilisée si l&#039;attribut &amp;lt;tt&amp;gt;method&amp;lt;/tt&amp;gt; n&#039;est pas utilisé. La valeur &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; signifie que l&#039;installateur va s&#039;arrêter s&#039;il trouve un fichier/dossier de la nouvelle extension.&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| &amp;lt;code&amp;gt;site&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;administrator&amp;lt;/code&amp;gt; || Modules&lt;br /&gt;
| L&#039;attribut &amp;lt;tt&amp;gt;client&amp;lt;/tt&amp;gt; permet de préciser pour quel type de client d&#039;application le nouveau module est disponible.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &#039;&#039;string&#039;&#039; || Plugins&lt;br /&gt;
| Le nom du groupe indique pour quels groupes de plugins le nouveau plugin est disponible. Les groupes existants sont les noms de dossier du répertoire &amp;lt;tt&amp;gt;/plugins&amp;lt;/tt&amp;gt;. Le programme d&#039;installation va créer de nouveaux noms de dossier pour les noms de groupe qui n&#039;existent pas encore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Métadonnées===&lt;br /&gt;
&lt;br /&gt;
Les éléments suivants peuvent être utilisés pour insérer des métadonnées. Aucun de ces éléments n&#039;est obligatoire et s&#039;ils sont présents, ils doivent être un enfant de l&#039;élément racine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt; &amp;amp;ndash; raw component name (e.g. com_banners). &lt;br /&gt;
&amp;lt;author&amp;gt; &amp;amp;ndash; author&#039;s name (e.g. Joomla! Project)&lt;br /&gt;
&amp;lt;creationDate&amp;gt; &amp;amp;ndash; date of creation or release (e.g. April 2006)&lt;br /&gt;
&amp;lt;copyright&amp;gt; &amp;amp;ndash; a copyright statement (e.g. (C) 2005 - 2011 Open Source Matters. All rights reserved.)&lt;br /&gt;
&amp;lt;license&amp;gt; &amp;amp;ndash; a license statement (e.g. NU General Public License version 2 or later; see LICENSE.txt)&lt;br /&gt;
&amp;lt;authorEmail&amp;gt; &amp;amp;ndash; author&#039;s email address (e.g. admin@joomla.org)&lt;br /&gt;
&amp;lt;authorUrl&amp;gt; &amp;amp;ndash; URL to the author&#039;s website (e.g. www.joomla.org)&lt;br /&gt;
&amp;lt;version&amp;gt; &amp;amp;ndash; the version number of the extension (e.g. 1.6.0)&lt;br /&gt;
&amp;lt;description&amp;gt; &amp;amp;ndash; the description of the component. This is a translatable field. (e.g. COM_BANNERS_XML_DESCRIPTION)&lt;br /&gt;
&amp;lt;element&amp;gt; &amp;amp;ndash; the internal name of the component. If omitted, name will be cleaned and used&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remarque : les balises &amp;lt;name&amp;gt; et &amp;lt;description&amp;gt; sont des champs traduisibles de sorte que le nom et la description de l&#039;extension pourront être présents dans la langue maternelle de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Fichiers de frontend ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;from-folder&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;example.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;examples&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de frontend doivent être placés dans les balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; en option pour spécifier un répertoire &#039;&#039;&#039;du package ZIP&#039;&#039;&#039;. Chaque fichier à copier doit être nommé par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;. Si vous souhaitez copier un dossier entier à la fois, vous pouvez le définir comme un &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les &#039;&#039;&#039;plugins&#039;&#039;&#039;, le nom brut du plugin doit être placé dans l&#039;attribut &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; de l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; qui pointe vers le fichier contenant la classe du plugin. Par exemple, dans le cas d&#039;un système de plugin appelé &amp;quot;exemple&amp;quot; (nom complet : &amp;lt;code&amp;gt;plg_system_exemple&amp;lt;/code&amp;gt;), il faudra utiliser &amp;lt;code&amp;gt;&amp;lt;filename plugin=&amp;quot;exemple&amp;quot;&amp;gt;exemple.php&amp;lt;/filename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Fichiers multimédias===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
	&amp;lt;media folder=&amp;quot;media&amp;quot; destination=&amp;quot;com_example&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;com_example_logo.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;css&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;js&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple permet de copier le fichier (&amp;lt;tt&amp;gt;/media/com_example_logo.png&amp;lt;/tt&amp;gt;) et les dossiers ( &amp;lt;tt&amp;gt;/media/css/&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;/media/js/&amp;lt;/tt&amp;gt; ) listés vers &amp;lt;tt&amp;gt;/media/com_example/&amp;lt;/tt&amp;gt;, ainsi que la création du dossier &amp;lt;tt&amp;gt;com_example&amp;lt;/tt&amp;gt; si nécessaire. Vous pouvez utiliser en option l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire &#039;&#039;&#039;dans le package ZIP&#039;&#039;&#039; à partir duquel réaliser la (dans ce cas, &amp;lt;tt&amp;gt;media&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les extensions doivent stocker les éléments, dont elles ont besoin pour être accessible sur le web (JS, CSS, images, etc), dans &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;. Cette fonctionnalité a été ajoutée dans le cadre du projet de développement d&#039;une interface multi-site et du placement éventuel de fichiers de code (PHP) en dehors des espaces web serveurs accessibles.&amp;lt;br /&amp;gt;Remarque: la section médias n&#039;est pas analysé pour les extensions de type &#039;package&#039;.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/4CAASJqFY-k/PvPj14gP29EJ Google Groups - joomla-dev-cms thread]&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/uNmhX98sKbE/p8p68Jke680J Google Groups - joomla-dev-cms thread]&lt;br /&gt;
&lt;br /&gt;
===Section de l&#039;administration===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- various elements --&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section d&#039;administration est définie par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Puisque seuls les [[S:MyLanguage/Component|composants]] concernent à la fois l&#039;espace [[S:MyLanguage/Site (Application)|site]] et celui d&#039;[[S:MyLanguage/Administrator (Application)|administration]], &#039;&#039;&#039;seuls les manifests pour composants doivent intégrer ces éléments&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
====Fichiers de backend====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de backend doivent être placés dans l&#039;élément &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; sous &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut optionnel &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire à copier depuis le &#039;&#039;&#039;pack ZIP&#039;&#039;&#039;. Voir les &#039;&#039;fichiers frontend&#039;&#039; pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
====Liens de Menu et sous-menus====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{dablink|&#039;&#039;&#039;Note de version :&#039;&#039;&#039; avant Joomla! 3.4, le fait de ne pas avoir de balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; dans votre fichier XML avait pour conséquence l création d&#039;un élément de menu. Cette anomalie a été corrigée dans Joomla! 3.4 et ainsi, si aucune balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; n&#039;est présente dans votre fichier manifest, aucun menu d&#039;administration ne sera créé pour le composant.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;menu&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;submenu&amp;gt;&lt;br /&gt;
		&amp;lt;!--&lt;br /&gt;
			Note that all &amp;amp; must be escaped to &amp;amp;amp; for the file to be valid&lt;br /&gt;
			XML and be parsed by the installer&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&amp;quot;anoption=avalue&amp;amp;amp;anoption1=avalue1&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_ANOPTION&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;menu view=&amp;quot;viewname&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_VIEWNAME&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;/submenu&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte pour l&#039;élément du menu principal pour le composant est défini dans la balise &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;, enfant de de la balise &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;submenu&amp;gt;&amp;lt;/code&amp;gt; peut être présente (également comme enfant de &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;), qui pourra contenir d&#039;autres éléments de menu définis par &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En outre, chaque élément &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || Description&lt;br /&gt;
|-&lt;br /&gt;
| link || Un lien vers lequel renvoyer l&#039;utilisateur lorsque l&#039;élément de menu est cliqué. Vous pouvez utiliser &amp;quot;view&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
| img || Le chemin (relatif) à une image (16x16 pixels) qui apparait à côté de l&#039;élément de menu. &lt;br /&gt;
&amp;lt;u&amp;gt;Doit être url compatible (par exemple sans espaces).&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| alt ||&lt;br /&gt;
|-&lt;br /&gt;
| view || Un paramètre URL à ajouter au lien. Par exemple, &amp;lt;code&amp;gt;&amp;lt;menu view=&amp;quot;cpanel&amp;quot;&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&amp;lt;/code&amp;gt; dans le manifest XML com_example générerait l&#039;URL de l&#039;élément de menu &amp;lt;tt&amp;gt;index.php?option=com_example&amp;amp;view=cpanel&amp;lt;/tt&amp;gt;. Vous pouvez utiliser &amp;quot;link&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La valeur à l&#039;intérieur de la balise est le nom du menu. À La différence de ce qui se faisait pour Joomla! 1.5, vous ne pouvez pas utiliser une chaîne de caractère dans votre langue naturelle. Par exemple, si vous renseignez &amp;quot;Composant d&#039;exemple&amp;quot; au lieu de COM_EXAMPLE, votre nom de composant qui s&#039;afficherait en titre serait &amp;quot;composant-d-exemple&amp;quot; et vous seriez dans l&#039;impossibilité de le traduire. Pour réaliser une traduction, vous devez créer un fichier nommé &amp;lt;tt&amp;gt;fr-FR.com_example.sys.ini&amp;lt;/tt&amp;gt; &#039;&#039;&#039;(NDT : avant de pouvoir créer le fichier fr-FR, il convient de créer le fichier d&#039;origine en-GB)&#039;&#039;&#039; dans &amp;lt;tt&amp;gt;administrator/languages/fr-FR&amp;lt;/tt&amp;gt; (vous pouvez utiliser la balise manifest &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; pour qu&#039;il soit copié lors de l&#039;installation) ou dans &amp;lt;tt&amp;gt;administrator/components/com_example/language/fr-FR&amp;lt;/tt&amp;gt;. Dans ce dernier cas, vous ne devez pas inclure le fichier de traduction dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; balise. Tant que vous aurez placé le répertoire de langue dans vos balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il sera copié lors de l&#039;installation du composant.&lt;br /&gt;
&lt;br /&gt;
Le contenu de ce fichier devrait être :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
COM_EXAMPLE=&amp;quot;Example Component&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_ANOPTION=&amp;quot;Another Option&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_VIEWNAME=&amp;quot;Another View&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the language string must be enclosed in double quotes, as per Joomla!&#039;s translation standards.&lt;br /&gt;
&lt;br /&gt;
{{note|Joomla! 1.6 and later sorts the Component menu items based on the actual translation of the key you supply in your XML manifest. This means that the sorting order is correct no matter what you call your translation key and no matter which language the site is being displayed in. Essentially, Joomla! 1.6 fixed the wrong sorting of the Components menu experienced under Joomla! 1.5 for the majority (non-English speaking!) of Joomla! users.}}&lt;br /&gt;
&lt;br /&gt;
=== Dashboards === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specifies the details for displaying a dashboard for the component in the Administrator area for the site.&lt;br /&gt;
* It will make a dashboard icon appear next to the administrator menu item for the component&lt;br /&gt;
* The dashboard icon will click through to display modules assigned to the cpanel-example administrator module position&lt;br /&gt;
* The title and icon defined in the XML file will be used as the header and icon at the top of the component&#039;s dashboard page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dashboards&amp;gt;&lt;br /&gt;
		&amp;lt;dashboard title=&amp;quot;COM_EXAMPLE_DASHBOARD_TITLE&amp;quot; icon=&amp;quot;icon-lock&amp;quot;&amp;gt;example&amp;lt;/dashboard&amp;gt;&lt;br /&gt;
	&amp;lt;/dashboards&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
{{warning|&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Les composants &#039;&#039;&#039;ne prennent pas en charge&#039;&#039;&#039; les définitions de configuration &#039;&#039;&#039;dans le manifeste&#039;&#039;&#039;. Ceci avait été mis en œuvre dans Joomla! 1.5. Ils est possible de définir les options de configuration pour différents niveaux à l&#039;aide des [[S:MyLanguage/Component configuration metadata|métadonnées de configuration de composant]].&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;, enfant de la racine, décrit les options de configuration de l&#039;extension. En cas de besoin, les options seront affichées par le gestionnaire concerné (gestionnaire de plugins, gestionnaire de modules ou gestionnaire de templates). &#039;&#039;&#039;Les options de configuration peuvent également être définies dans un fichier séparé nommé &amp;lt;code&amp;gt;config.xml&amp;lt;/code&amp;gt;. Son élément racine doit être &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de champs &amp;lt;code&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/code&amp;gt; peut contenir un ou plusieurs éléments &amp;lt;code&amp;gt;&amp;lt;field&amp;gt;&amp;lt;/code&amp;gt; (champ), chacun représentant un seul [[S:MyLanguage/form field|champ de formulaire]] avec une étiquette. Consultez les [[S:MyLanguage/Standard form field types|types de champs pour formulaires standards]] pour une liste des types de champs autorisés et un exemple de définitions de champs de formulaire XML.&lt;br /&gt;
&lt;br /&gt;
=== Namespace === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specify the namespace to be used for autoloading the plugin. The given namespace will autoload to the root directory of your extension by default however you can optionally add a &amp;quot;path&amp;quot; attribute to the namespace element to specify a subpath within your extensions root directory.&lt;br /&gt;
&lt;br /&gt;
===SQL===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;install&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.install.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/install&amp;gt;&lt;br /&gt;
    &amp;lt;uninstall&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.uninstall.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/uninstall&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;exemple ci-dessus, nous avons placé les fichiers SQL dans le répertoire &amp;lt;tt&amp;gt;admin/sql&amp;lt;/tt&amp;gt; du paquet d&#039;installation. Vous devez inclure le dossier &amp;lt;tt&amp;gt;sql&amp;lt;/tt&amp;gt; dans les fichiers d&#039;administration (tel que décrit dans &amp;quot;les fichiers backend&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez exécuter SQL lors de l&#039;installation et/ou la désinstallation à l&#039;aide des éléments &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;lt;uninstall&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; doit apparaître comme un enfant de ces éléments. &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; peut contenir n&#039;importe quel nombre d&#039;éléments &amp;lt;code&amp;gt;&amp;lt;file&amp;gt;&amp;lt;/code&amp;gt;, chacun devant définir un seul fichier SQL à exécuter. Leurs types de pilote de base de données sont décrits par l&#039;attribut &amp;lt;code&amp;gt;driver&amp;lt;/code&amp;gt;, leurs jeux de caractères par l&#039;attribut &amp;lt;code&amp;gt;charset&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
==== Mise à jour du schéma SQL====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depuis la version 1.6, une balise &amp;lt;code&amp;gt;&amp;lt;update&amp;gt;&amp;lt;/code&amp;gt; est disponible et vous permet de fournir une série de fichiers SQL pour mettre à jour le schéma actuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;sqlsrv&amp;quot;&amp;gt;sql/updates/sqlsrv&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour passer de la version &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt; à la version &amp;lt;code&amp;gt;1.0.1&amp;lt;/code&amp;gt; dans une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;, un fichier &amp;lt;code&amp;gt;1.0.1.sql&amp;lt;/code&amp;gt; doit être créé dans le dossier &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt; et la balise &amp;lt;code&amp;gt;&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; du manifest doit être mis à jour : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La structure finale du dossier sql ressemblera à ceci (dans l&#039;hypothèse d&#039;une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
sql&lt;br /&gt;
 |--&amp;gt;example.install.sql&lt;br /&gt;
 |--&amp;gt;example.uninstall.sql&lt;br /&gt;
 |--&amp;gt;updates&lt;br /&gt;
     |--&amp;gt;mysql&lt;br /&gt;
        |--&amp;gt;1.0.1.sql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des fichiers similaires doivent être créés pour les versions suivantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
===Fichiers langue===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Dans Joomla! 1.5, les développeurs d&#039;extensions devaient placer les fichiers de langue dans le dossier général des langues de Joomla! à l&#039;aide des balises &amp;amp;lt;languages&amp;amp;gt;...&amp;amp;lt;/languages&amp;amp;gt; comme indiqué ci-dessous. &#039;&#039;&#039;Cette méthode peut toujours être utilisée avec la version&#039;&#039;&#039; {{JVer|3.x}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Joomla! language tag --&amp;gt;&lt;br /&gt;
&amp;lt;languages folder=&amp;quot;langfiles&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_example.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Depuis Joomla! 1.6, il vous est conseillé de placer les fichiers langue de votre extension dans le dossier même de votre extension. Joomla! chargera alors automatiquement les fichiers de langue depuis votre extension.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En plaçant les fichiers de langue dans le dossier de l&#039;extension, vous permettez ainsi de les isoler et donc de les protéger. Par exemple, dans le cas ou un administrateur supprimerait une langue de son installation Joomlaǃ. Dans ce cas, les fichiers de langue de l&#039;extension ne seront pas supprimés. Ils resteront alors en place et ne seront accessibles que si la langue est installée à nouveau.&lt;br /&gt;
&lt;br /&gt;
La structure du dossier de langue pour le frontend et le backend est identique. Il convient de les placer dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; (par exemple &#039;&#039;&#039;en-GB&#039;&#039;&#039;) pour chaque langue et dans le dossier comme suit&amp;amp;nbsp;: &#039;&#039;&#039;language/en-GB/&#039;&#039;&#039;. Vous devez aussi spécifier ces dossiers pour le frontend et le backend.&lt;br /&gt;
&lt;br /&gt;
Dans votre manifest, il suffit simplement d&#039;inclure votre dossier &amp;lt;tt&amp;gt;&amp;lt;language&amp;gt;&amp;lt;/tt&amp;gt; dans la section fichiers. Les sous-répertoires pour chaque langue seront alors automatiquement copiés. À l&#039;intérieur des groupes &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il vous suffit d&#039;ajouter une balise &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt; à côté des éléments dans le groupe &amp;lt;tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/tt&amp;gt;, comme indiqué dans cet exemple&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;alpha&amp;quot;&amp;gt;alpha.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les deux techniques peuvent fonctionner ensemble. Voici un exemple du noyau&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;languagecode&amp;quot;&amp;gt;languagecode.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les avantages pour cette solution sont les suivants :&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers &#039;&#039;.ini&#039;&#039; présents dans le dossier du noyau ont la priorité sur les fichiers dans les dossiers langue des extensions.&lt;br /&gt;
Par exemple, s&#039;il existe, un fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; d&#039;un dossier du noyau sera toujours chargé dans le backend, sauf lors de l&#039;installation d&#039;une extension qui contient son propre fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans un dossier de langue. Dans ce cas et uniquement ce cas, le fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans le dossier de l&#039;extension affichera son contenu traduit au moment de l&#039;installation. C&#039;est très pratique car un développeur peut avoir deux fichiers &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; avec un contenu différent.&lt;br /&gt;
&lt;br /&gt;
Il est également beaucoup plus facile pour un utilisateur ayant besoin de trouver le fichier &amp;lt;tt&amp;gt;.ini&amp;lt;/tt&amp;gt; d&#039;une extension qui n&#039;est pas disponible dans sa langue de l&#039;ajouter dans le dossier principal. Il n&#039;y a aucun risque qu&#039;il ne soit supprimé en cas de désinstallation par erreur de l&#039;extension.&lt;br /&gt;
&lt;br /&gt;
Veuillez consulter également :&lt;br /&gt;
*[[S:MyLanguage/J2.5:Making non-core language packs|Créer un pack langue hors du noyau]]&lt;br /&gt;
*[[S:MyLanguage/Creating language packs for extensions in Joomla 2.5|Créer un pack langue pour une extension Joomla! 2.5]]&lt;br /&gt;
&lt;br /&gt;
Au cours du développement, vous pouvez activer le système de débogage de langue dans la configuration globale de Joomlaǃ. Vous pourrez découvrir si un problème est levé. Depuis {{JVer|3.2}}, cela est nécessaire afin d&#039;aider à déboguer le en-GB qui est &#039;&#039;&#039;toujours&#039;&#039;&#039; chargé en premier lorsque l&#039;on est pas en mode de débogage et ainsi empêcher l&#039;affichage des constantes.&lt;br /&gt;
&lt;br /&gt;
===Fichier de script===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;scriptfile&amp;gt;example.script.php&amp;lt;/scriptfile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Un &#039;&#039;&#039;fichier de script&#039;&#039;&#039; (code PHP qui est exécuté avant, pendant et/ou après l&#039;installation, la désinstallation ou la mise à jour) peut, en option, être défini à l&#039;aide d&#039;une balise &amp;lt;code&amp;gt;&amp;lt;scriptfile&amp;gt;&amp;lt;/code&amp;gt;. Ce fichier doit contenir une classe nommée &#039;&amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;InstallerScript&#039;&#039;&amp;lt;/tt&amp;gt; où &amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;&amp;lt;/tt&amp;gt; est le nom de votre extension (par exemple : com_nomducomposant, mod_nomdumodule, etc.). Pour les plugins, il convient de nommer également le groupe (par exemple : plgsystemnomduplugin). Les packages de bibliothèque ne prennent pas en charge les fichiers scripts. La structure de la classe sera comme suit :&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file should contain a class named &amp;quot;&amp;lt;element_name&amp;gt;InstallerScript&amp;quot; where &amp;lt;element_name&amp;gt; is the name of your extension (e.g. com_componentname, mod_modulename, etc.). Plugins must state the group (e.g. plgsystempluginname).&lt;br /&gt;
&lt;br /&gt;
In {{JVer|4.0}} and later the structure of the class is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
use Joomla\CMS\Installer\InstallerAdapter;&lt;br /&gt;
&lt;br /&gt;
class com_componentnameInstallerScript&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function __construct(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called before any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function preflight($route, InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called after any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function postflight($route, $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on installation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function install(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on update&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function update(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on uninstallation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function uninstall(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since Joomla 3.6 Joomla has shipped a basic script that you can use instead of shipping your own from scratch &#039;&#039;&#039;JInstallerScript&#039;&#039;&#039; which contains various helper methods commonly used through the community.&lt;br /&gt;
&lt;br /&gt;
=== Library Manifests === &lt;br /&gt;
{{notice|The section is based on {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
A simple library manifest might look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;library&amp;quot; method=&amp;quot;upgrade&amp;quot; version=&amp;quot;4.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;My Test library.&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mytest&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;Classes&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;mytest.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the library into the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mytest&amp;lt;/tt&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
What if your company has several libraries and you want to group them together under folder &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany&amp;lt;/tt&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Simple - include your company name in the &amp;lt;tt&amp;gt;libraryname&amp;lt;/tt&amp;gt; property of each library like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary1&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary2&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These libraries will then be installed in the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary2&amp;lt;/tt&amp;gt; folders.&lt;br /&gt;
&lt;br /&gt;
Uninstalling &amp;lt;tt&amp;gt;mylibrary1&amp;lt;/tt&amp;gt; will still leave &amp;lt;tt&amp;gt;mylibrary2&amp;lt;/tt&amp;gt; installed on your site.&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;tt&amp;gt;script files&amp;lt;/tt&amp;gt; with such company libraries the installer class name should look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary1InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary2InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
=== Serveurs de mise à jour ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;1&amp;quot; name=&amp;quot;Extension Update Site&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;collection&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;Collection Update Site&amp;quot;&amp;gt;http://example.com/collection.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les serveurs de mise à jour peuvent être définis dans les balises &amp;lt;code&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/code&amp;gt; comme enfant de la racine. Cet élément peut contenir une ou plusieurs balises &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; chacune avec la description depuis laquelle chercher les mises à jour. Chaque rubrique &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;collection&amp;lt;/code&amp;gt; || Le type de serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| priority || &#039;&#039;integer&#039;&#039; || La priorité du serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| name || &#039;&#039;string&#039;&#039; || Le nom du serveur de mise à jour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Pour plus d&#039;informations :&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing a MVC Component/Adding an update server|Création d&#039;une extension Joomla! - Ajout d&#039;un serveur de mise à jour]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Managing Component Updates|Gestion des mises à jour de composants pour Joomla! 2.5]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supporting Download Keys ===&lt;br /&gt;
&lt;br /&gt;
As of Joomla 4.0.0 users can enter their download keys in the Update Sites list. This gives them a single place to manage the download keys. When a user is going to update an extension, Joomla will check if there is a download key. If there is a download key, Joomla will add the download key to the update URL.&lt;br /&gt;
&lt;br /&gt;
To support download keys you must include the &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag in the manifest file. The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag takes 2 arguments:&lt;br /&gt;
* prefix&lt;br /&gt;
* suffix&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag will look like this in your manifest file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dlid prefix=&amp;quot;dlid=&amp;quot; suffix=&amp;quot;&amp;amp;amp;dummy=my.zip&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The prefix will be added before the download key and the suffix after the download key. Using the example above the full query added to the download link will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
dlid=KEY&amp;amp;amp;dummy=my.zip&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The key is added before the &amp;lt;tt&amp;gt;onInstallerBeforePackageDownload&amp;lt;/tt&amp;gt; event is triggered, so the full URL will be passed to the event.&lt;br /&gt;
&lt;br /&gt;
===Exemples=== &lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
== Exemples ==&lt;br /&gt;
Pour un exemple concret, veuillez consulter [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/components/com_banners/banners.xml le manifest pour le composant bannière de la version Joomla! 3.6.4].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D&#039;autres exemples peuvent être trouvés dans le répertoire autonome des liens web&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/administrator/components/com_weblinks/weblinks.xml manifest com_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/modules/mod_weblinks/mod_weblinks.xml manifest mod_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/plugins/search/weblinks/weblinks.xml manifest plg_search_weblinks]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/templates/protostar/templateDetails.xml manifest tpl_protostar (3.6.4)]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/language/en-GB/en-GB.xml manifest en-GB (3.6.4)]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Specifications{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/90/fr&amp;diff=962319</id>
		<title>Translations:Manifest files/90/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/90/fr&amp;diff=962319"/>
		<updated>2022-09-01T15:59:22Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La balise principale du fichier d&#039;installation est&amp;amp;nbsp;:&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=962318</id>
		<title>Manifest files/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=962318"/>
		<updated>2022-09-01T15:58:34Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Created page with &amp;quot;La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace l&amp;#039;ancienne &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; de la version Joomla {{JVer|1.5}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x}} {{Joomla version|version=3.x}} {{Joomla version|version=2.5|status=eos}} &lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Avec Joomla, toutes les extensions proposent des fichiers manifestes. Ces fichiers recouvrent les informations générales concernant l&#039;installation, ainsi que des paramètres pour la configuration de l&#039;[[S:MyLanguage/extension|extension]] elle-même. Depuis Joomla! 2.5, il existe très peu de différences entre les différents formats de fichiers manifestes en fonction des différents [[S:MyLanguage/Extension types (technical definitions)|types d&#039;extensions]] permettant ainsi à chaque type de bénéficier de la puissance de l&#039;installateur Joomla.&lt;br /&gt;
&lt;br /&gt;
==Conventions de nommage==&lt;br /&gt;
Le fichier doit être nommé &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5 et 3) ou &amp;lt;tt&amp;gt;&amp;lt;extension_name&amp;gt;.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5, 3 et 4) et situé dans le répertoire racine du package d&#039;installation.&lt;br /&gt;
&lt;br /&gt;
Joomla 4.x : la correspondance automatique du namespace va échouer si un nom de fichier tel que &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; est utilisé. Voir https://github.com/joomla/joomla-cms/issues/37750&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntaxe==&lt;br /&gt;
&lt;br /&gt;
===Élément à la racine===&lt;br /&gt;
{{notice|La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace l&#039;ancienne &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; de la version Joomla {{JVer|1.5}}}}&lt;br /&gt;
&lt;br /&gt;
Le tag principal du fichier d&#039;installation est&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise ouvrante et fermante est maintenant valable pour toutes les extensions. La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace les anciennes &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; depuis Joomla! {{JVer|1.5}}. Les attributs suivants sont autorisés à l&#039;intérieur de la balise&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Applicable à || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;language&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;element&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Cet attribut décrit à l&#039;installateur le type de l&#039;extension. En fonction de ce type, d&#039;autres d&#039;exigences supplémentaires s&#039;appliqueront aux sous-balises.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| &amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Chaîne de caractères qui identifie la version de Joomla! pour laquelle cette extension est développée.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| La valeur par défaut &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; sera également utilisée si l&#039;attribut &amp;lt;tt&amp;gt;method&amp;lt;/tt&amp;gt; n&#039;est pas utilisé. La valeur &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; signifie que l&#039;installateur va s&#039;arrêter s&#039;il trouve un fichier/dossier de la nouvelle extension.&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| &amp;lt;code&amp;gt;site&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;administrator&amp;lt;/code&amp;gt; || Modules&lt;br /&gt;
| L&#039;attribut &amp;lt;tt&amp;gt;client&amp;lt;/tt&amp;gt; permet de préciser pour quel type de client d&#039;application le nouveau module est disponible.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &#039;&#039;string&#039;&#039; || Plugins&lt;br /&gt;
| Le nom du groupe indique pour quels groupes de plugins le nouveau plugin est disponible. Les groupes existants sont les noms de dossier du répertoire &amp;lt;tt&amp;gt;/plugins&amp;lt;/tt&amp;gt;. Le programme d&#039;installation va créer de nouveaux noms de dossier pour les noms de groupe qui n&#039;existent pas encore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Métadonnées===&lt;br /&gt;
&lt;br /&gt;
Les éléments suivants peuvent être utilisés pour insérer des métadonnées. Aucun de ces éléments n&#039;est obligatoire et s&#039;ils sont présents, ils doivent être un enfant de l&#039;élément racine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt; &amp;amp;ndash; raw component name (e.g. com_banners). &lt;br /&gt;
&amp;lt;author&amp;gt; &amp;amp;ndash; author&#039;s name (e.g. Joomla! Project)&lt;br /&gt;
&amp;lt;creationDate&amp;gt; &amp;amp;ndash; date of creation or release (e.g. April 2006)&lt;br /&gt;
&amp;lt;copyright&amp;gt; &amp;amp;ndash; a copyright statement (e.g. (C) 2005 - 2011 Open Source Matters. All rights reserved.)&lt;br /&gt;
&amp;lt;license&amp;gt; &amp;amp;ndash; a license statement (e.g. NU General Public License version 2 or later; see LICENSE.txt)&lt;br /&gt;
&amp;lt;authorEmail&amp;gt; &amp;amp;ndash; author&#039;s email address (e.g. admin@joomla.org)&lt;br /&gt;
&amp;lt;authorUrl&amp;gt; &amp;amp;ndash; URL to the author&#039;s website (e.g. www.joomla.org)&lt;br /&gt;
&amp;lt;version&amp;gt; &amp;amp;ndash; the version number of the extension (e.g. 1.6.0)&lt;br /&gt;
&amp;lt;description&amp;gt; &amp;amp;ndash; the description of the component. This is a translatable field. (e.g. COM_BANNERS_XML_DESCRIPTION)&lt;br /&gt;
&amp;lt;element&amp;gt; &amp;amp;ndash; the internal name of the component. If omitted, name will be cleaned and used&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remarque : les balises &amp;lt;name&amp;gt; et &amp;lt;description&amp;gt; sont des champs traduisibles de sorte que le nom et la description de l&#039;extension pourront être présents dans la langue maternelle de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Fichiers de frontend ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;from-folder&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;example.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;examples&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de frontend doivent être placés dans les balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; en option pour spécifier un répertoire &#039;&#039;&#039;du package ZIP&#039;&#039;&#039;. Chaque fichier à copier doit être nommé par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;. Si vous souhaitez copier un dossier entier à la fois, vous pouvez le définir comme un &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les &#039;&#039;&#039;plugins&#039;&#039;&#039;, le nom brut du plugin doit être placé dans l&#039;attribut &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; de l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; qui pointe vers le fichier contenant la classe du plugin. Par exemple, dans le cas d&#039;un système de plugin appelé &amp;quot;exemple&amp;quot; (nom complet : &amp;lt;code&amp;gt;plg_system_exemple&amp;lt;/code&amp;gt;), il faudra utiliser &amp;lt;code&amp;gt;&amp;lt;filename plugin=&amp;quot;exemple&amp;quot;&amp;gt;exemple.php&amp;lt;/filename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Fichiers multimédias===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
	&amp;lt;media folder=&amp;quot;media&amp;quot; destination=&amp;quot;com_example&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;com_example_logo.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;css&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;js&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple permet de copier le fichier (&amp;lt;tt&amp;gt;/media/com_example_logo.png&amp;lt;/tt&amp;gt;) et les dossiers ( &amp;lt;tt&amp;gt;/media/css/&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;/media/js/&amp;lt;/tt&amp;gt; ) listés vers &amp;lt;tt&amp;gt;/media/com_example/&amp;lt;/tt&amp;gt;, ainsi que la création du dossier &amp;lt;tt&amp;gt;com_example&amp;lt;/tt&amp;gt; si nécessaire. Vous pouvez utiliser en option l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire &#039;&#039;&#039;dans le package ZIP&#039;&#039;&#039; à partir duquel réaliser la (dans ce cas, &amp;lt;tt&amp;gt;media&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les extensions doivent stocker les éléments, dont elles ont besoin pour être accessible sur le web (JS, CSS, images, etc), dans &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;. Cette fonctionnalité a été ajoutée dans le cadre du projet de développement d&#039;une interface multi-site et du placement éventuel de fichiers de code (PHP) en dehors des espaces web serveurs accessibles.&amp;lt;br /&amp;gt;Remarque: la section médias n&#039;est pas analysé pour les extensions de type &#039;package&#039;.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/4CAASJqFY-k/PvPj14gP29EJ Google Groups - joomla-dev-cms thread]&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/uNmhX98sKbE/p8p68Jke680J Google Groups - joomla-dev-cms thread]&lt;br /&gt;
&lt;br /&gt;
===Section de l&#039;administration===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- various elements --&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section d&#039;administration est définie par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Puisque seuls les [[S:MyLanguage/Component|composants]] concernent à la fois l&#039;espace [[S:MyLanguage/Site (Application)|site]] et celui d&#039;[[S:MyLanguage/Administrator (Application)|administration]], &#039;&#039;&#039;seuls les manifests pour composants doivent intégrer ces éléments&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
====Fichiers de backend====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de backend doivent être placés dans l&#039;élément &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; sous &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut optionnel &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire à copier depuis le &#039;&#039;&#039;pack ZIP&#039;&#039;&#039;. Voir les &#039;&#039;fichiers frontend&#039;&#039; pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
====Liens de Menu et sous-menus====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{dablink|&#039;&#039;&#039;Note de version :&#039;&#039;&#039; avant Joomla! 3.4, le fait de ne pas avoir de balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; dans votre fichier XML avait pour conséquence l création d&#039;un élément de menu. Cette anomalie a été corrigée dans Joomla! 3.4 et ainsi, si aucune balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; n&#039;est présente dans votre fichier manifest, aucun menu d&#039;administration ne sera créé pour le composant.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;menu&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;submenu&amp;gt;&lt;br /&gt;
		&amp;lt;!--&lt;br /&gt;
			Note that all &amp;amp; must be escaped to &amp;amp;amp; for the file to be valid&lt;br /&gt;
			XML and be parsed by the installer&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&amp;quot;anoption=avalue&amp;amp;amp;anoption1=avalue1&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_ANOPTION&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;menu view=&amp;quot;viewname&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_VIEWNAME&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;/submenu&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte pour l&#039;élément du menu principal pour le composant est défini dans la balise &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;, enfant de de la balise &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;submenu&amp;gt;&amp;lt;/code&amp;gt; peut être présente (également comme enfant de &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;), qui pourra contenir d&#039;autres éléments de menu définis par &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En outre, chaque élément &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || Description&lt;br /&gt;
|-&lt;br /&gt;
| link || Un lien vers lequel renvoyer l&#039;utilisateur lorsque l&#039;élément de menu est cliqué. Vous pouvez utiliser &amp;quot;view&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
| img || Le chemin (relatif) à une image (16x16 pixels) qui apparait à côté de l&#039;élément de menu. &lt;br /&gt;
&amp;lt;u&amp;gt;Doit être url compatible (par exemple sans espaces).&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| alt ||&lt;br /&gt;
|-&lt;br /&gt;
| view || Un paramètre URL à ajouter au lien. Par exemple, &amp;lt;code&amp;gt;&amp;lt;menu view=&amp;quot;cpanel&amp;quot;&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&amp;lt;/code&amp;gt; dans le manifest XML com_example générerait l&#039;URL de l&#039;élément de menu &amp;lt;tt&amp;gt;index.php?option=com_example&amp;amp;view=cpanel&amp;lt;/tt&amp;gt;. Vous pouvez utiliser &amp;quot;link&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La valeur à l&#039;intérieur de la balise est le nom du menu. À La différence de ce qui se faisait pour Joomla! 1.5, vous ne pouvez pas utiliser une chaîne de caractère dans votre langue naturelle. Par exemple, si vous renseignez &amp;quot;Composant d&#039;exemple&amp;quot; au lieu de COM_EXAMPLE, votre nom de composant qui s&#039;afficherait en titre serait &amp;quot;composant-d-exemple&amp;quot; et vous seriez dans l&#039;impossibilité de le traduire. Pour réaliser une traduction, vous devez créer un fichier nommé &amp;lt;tt&amp;gt;fr-FR.com_example.sys.ini&amp;lt;/tt&amp;gt; &#039;&#039;&#039;(NDT : avant de pouvoir créer le fichier fr-FR, il convient de créer le fichier d&#039;origine en-GB)&#039;&#039;&#039; dans &amp;lt;tt&amp;gt;administrator/languages/fr-FR&amp;lt;/tt&amp;gt; (vous pouvez utiliser la balise manifest &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; pour qu&#039;il soit copié lors de l&#039;installation) ou dans &amp;lt;tt&amp;gt;administrator/components/com_example/language/fr-FR&amp;lt;/tt&amp;gt;. Dans ce dernier cas, vous ne devez pas inclure le fichier de traduction dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; balise. Tant que vous aurez placé le répertoire de langue dans vos balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il sera copié lors de l&#039;installation du composant.&lt;br /&gt;
&lt;br /&gt;
Le contenu de ce fichier devrait être :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
COM_EXAMPLE=&amp;quot;Example Component&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_ANOPTION=&amp;quot;Another Option&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_VIEWNAME=&amp;quot;Another View&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the language string must be enclosed in double quotes, as per Joomla!&#039;s translation standards.&lt;br /&gt;
&lt;br /&gt;
{{note|Joomla! 1.6 and later sorts the Component menu items based on the actual translation of the key you supply in your XML manifest. This means that the sorting order is correct no matter what you call your translation key and no matter which language the site is being displayed in. Essentially, Joomla! 1.6 fixed the wrong sorting of the Components menu experienced under Joomla! 1.5 for the majority (non-English speaking!) of Joomla! users.}}&lt;br /&gt;
&lt;br /&gt;
=== Dashboards === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specifies the details for displaying a dashboard for the component in the Administrator area for the site.&lt;br /&gt;
* It will make a dashboard icon appear next to the administrator menu item for the component&lt;br /&gt;
* The dashboard icon will click through to display modules assigned to the cpanel-example administrator module position&lt;br /&gt;
* The title and icon defined in the XML file will be used as the header and icon at the top of the component&#039;s dashboard page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dashboards&amp;gt;&lt;br /&gt;
		&amp;lt;dashboard title=&amp;quot;COM_EXAMPLE_DASHBOARD_TITLE&amp;quot; icon=&amp;quot;icon-lock&amp;quot;&amp;gt;example&amp;lt;/dashboard&amp;gt;&lt;br /&gt;
	&amp;lt;/dashboards&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
{{warning|&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Les composants &#039;&#039;&#039;ne prennent pas en charge&#039;&#039;&#039; les définitions de configuration &#039;&#039;&#039;dans le manifeste&#039;&#039;&#039;. Ceci avait été mis en œuvre dans Joomla! 1.5. Ils est possible de définir les options de configuration pour différents niveaux à l&#039;aide des [[S:MyLanguage/Component configuration metadata|métadonnées de configuration de composant]].&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;, enfant de la racine, décrit les options de configuration de l&#039;extension. En cas de besoin, les options seront affichées par le gestionnaire concerné (gestionnaire de plugins, gestionnaire de modules ou gestionnaire de templates). &#039;&#039;&#039;Les options de configuration peuvent également être définies dans un fichier séparé nommé &amp;lt;code&amp;gt;config.xml&amp;lt;/code&amp;gt;. Son élément racine doit être &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de champs &amp;lt;code&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/code&amp;gt; peut contenir un ou plusieurs éléments &amp;lt;code&amp;gt;&amp;lt;field&amp;gt;&amp;lt;/code&amp;gt; (champ), chacun représentant un seul [[S:MyLanguage/form field|champ de formulaire]] avec une étiquette. Consultez les [[S:MyLanguage/Standard form field types|types de champs pour formulaires standards]] pour une liste des types de champs autorisés et un exemple de définitions de champs de formulaire XML.&lt;br /&gt;
&lt;br /&gt;
=== Namespace === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specify the namespace to be used for autoloading the plugin. The given namespace will autoload to the root directory of your extension by default however you can optionally add a &amp;quot;path&amp;quot; attribute to the namespace element to specify a subpath within your extensions root directory.&lt;br /&gt;
&lt;br /&gt;
===SQL===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;install&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.install.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/install&amp;gt;&lt;br /&gt;
    &amp;lt;uninstall&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.uninstall.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/uninstall&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;exemple ci-dessus, nous avons placé les fichiers SQL dans le répertoire &amp;lt;tt&amp;gt;admin/sql&amp;lt;/tt&amp;gt; du paquet d&#039;installation. Vous devez inclure le dossier &amp;lt;tt&amp;gt;sql&amp;lt;/tt&amp;gt; dans les fichiers d&#039;administration (tel que décrit dans &amp;quot;les fichiers backend&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez exécuter SQL lors de l&#039;installation et/ou la désinstallation à l&#039;aide des éléments &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;lt;uninstall&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; doit apparaître comme un enfant de ces éléments. &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; peut contenir n&#039;importe quel nombre d&#039;éléments &amp;lt;code&amp;gt;&amp;lt;file&amp;gt;&amp;lt;/code&amp;gt;, chacun devant définir un seul fichier SQL à exécuter. Leurs types de pilote de base de données sont décrits par l&#039;attribut &amp;lt;code&amp;gt;driver&amp;lt;/code&amp;gt;, leurs jeux de caractères par l&#039;attribut &amp;lt;code&amp;gt;charset&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
==== Mise à jour du schéma SQL====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depuis la version 1.6, une balise &amp;lt;code&amp;gt;&amp;lt;update&amp;gt;&amp;lt;/code&amp;gt; est disponible et vous permet de fournir une série de fichiers SQL pour mettre à jour le schéma actuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;sqlsrv&amp;quot;&amp;gt;sql/updates/sqlsrv&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour passer de la version &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt; à la version &amp;lt;code&amp;gt;1.0.1&amp;lt;/code&amp;gt; dans une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;, un fichier &amp;lt;code&amp;gt;1.0.1.sql&amp;lt;/code&amp;gt; doit être créé dans le dossier &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt; et la balise &amp;lt;code&amp;gt;&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; du manifest doit être mis à jour : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La structure finale du dossier sql ressemblera à ceci (dans l&#039;hypothèse d&#039;une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
sql&lt;br /&gt;
 |--&amp;gt;example.install.sql&lt;br /&gt;
 |--&amp;gt;example.uninstall.sql&lt;br /&gt;
 |--&amp;gt;updates&lt;br /&gt;
     |--&amp;gt;mysql&lt;br /&gt;
        |--&amp;gt;1.0.1.sql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des fichiers similaires doivent être créés pour les versions suivantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
===Fichiers langue===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Dans Joomla! 1.5, les développeurs d&#039;extensions devaient placer les fichiers de langue dans le dossier général des langues de Joomla! à l&#039;aide des balises &amp;amp;lt;languages&amp;amp;gt;...&amp;amp;lt;/languages&amp;amp;gt; comme indiqué ci-dessous. &#039;&#039;&#039;Cette méthode peut toujours être utilisée avec la version&#039;&#039;&#039; {{JVer|3.x}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Joomla! language tag --&amp;gt;&lt;br /&gt;
&amp;lt;languages folder=&amp;quot;langfiles&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_example.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Depuis Joomla! 1.6, il vous est conseillé de placer les fichiers langue de votre extension dans le dossier même de votre extension. Joomla! chargera alors automatiquement les fichiers de langue depuis votre extension.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En plaçant les fichiers de langue dans le dossier de l&#039;extension, vous permettez ainsi de les isoler et donc de les protéger. Par exemple, dans le cas ou un administrateur supprimerait une langue de son installation Joomlaǃ. Dans ce cas, les fichiers de langue de l&#039;extension ne seront pas supprimés. Ils resteront alors en place et ne seront accessibles que si la langue est installée à nouveau.&lt;br /&gt;
&lt;br /&gt;
La structure du dossier de langue pour le frontend et le backend est identique. Il convient de les placer dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; (par exemple &#039;&#039;&#039;en-GB&#039;&#039;&#039;) pour chaque langue et dans le dossier comme suit&amp;amp;nbsp;: &#039;&#039;&#039;language/en-GB/&#039;&#039;&#039;. Vous devez aussi spécifier ces dossiers pour le frontend et le backend.&lt;br /&gt;
&lt;br /&gt;
Dans votre manifest, il suffit simplement d&#039;inclure votre dossier &amp;lt;tt&amp;gt;&amp;lt;language&amp;gt;&amp;lt;/tt&amp;gt; dans la section fichiers. Les sous-répertoires pour chaque langue seront alors automatiquement copiés. À l&#039;intérieur des groupes &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il vous suffit d&#039;ajouter une balise &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt; à côté des éléments dans le groupe &amp;lt;tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/tt&amp;gt;, comme indiqué dans cet exemple&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;alpha&amp;quot;&amp;gt;alpha.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les deux techniques peuvent fonctionner ensemble. Voici un exemple du noyau&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;languagecode&amp;quot;&amp;gt;languagecode.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les avantages pour cette solution sont les suivants :&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers &#039;&#039;.ini&#039;&#039; présents dans le dossier du noyau ont la priorité sur les fichiers dans les dossiers langue des extensions.&lt;br /&gt;
Par exemple, s&#039;il existe, un fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; d&#039;un dossier du noyau sera toujours chargé dans le backend, sauf lors de l&#039;installation d&#039;une extension qui contient son propre fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans un dossier de langue. Dans ce cas et uniquement ce cas, le fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans le dossier de l&#039;extension affichera son contenu traduit au moment de l&#039;installation. C&#039;est très pratique car un développeur peut avoir deux fichiers &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; avec un contenu différent.&lt;br /&gt;
&lt;br /&gt;
Il est également beaucoup plus facile pour un utilisateur ayant besoin de trouver le fichier &amp;lt;tt&amp;gt;.ini&amp;lt;/tt&amp;gt; d&#039;une extension qui n&#039;est pas disponible dans sa langue de l&#039;ajouter dans le dossier principal. Il n&#039;y a aucun risque qu&#039;il ne soit supprimé en cas de désinstallation par erreur de l&#039;extension.&lt;br /&gt;
&lt;br /&gt;
Veuillez consulter également :&lt;br /&gt;
*[[S:MyLanguage/J2.5:Making non-core language packs|Créer un pack langue hors du noyau]]&lt;br /&gt;
*[[S:MyLanguage/Creating language packs for extensions in Joomla 2.5|Créer un pack langue pour une extension Joomla! 2.5]]&lt;br /&gt;
&lt;br /&gt;
Au cours du développement, vous pouvez activer le système de débogage de langue dans la configuration globale de Joomlaǃ. Vous pourrez découvrir si un problème est levé. Depuis {{JVer|3.2}}, cela est nécessaire afin d&#039;aider à déboguer le en-GB qui est &#039;&#039;&#039;toujours&#039;&#039;&#039; chargé en premier lorsque l&#039;on est pas en mode de débogage et ainsi empêcher l&#039;affichage des constantes.&lt;br /&gt;
&lt;br /&gt;
===Fichier de script===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;scriptfile&amp;gt;example.script.php&amp;lt;/scriptfile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Un &#039;&#039;&#039;fichier de script&#039;&#039;&#039; (code PHP qui est exécuté avant, pendant et/ou après l&#039;installation, la désinstallation ou la mise à jour) peut, en option, être défini à l&#039;aide d&#039;une balise &amp;lt;code&amp;gt;&amp;lt;scriptfile&amp;gt;&amp;lt;/code&amp;gt;. Ce fichier doit contenir une classe nommée &#039;&amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;InstallerScript&#039;&#039;&amp;lt;/tt&amp;gt; où &amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;&amp;lt;/tt&amp;gt; est le nom de votre extension (par exemple : com_nomducomposant, mod_nomdumodule, etc.). Pour les plugins, il convient de nommer également le groupe (par exemple : plgsystemnomduplugin). Les packages de bibliothèque ne prennent pas en charge les fichiers scripts. La structure de la classe sera comme suit :&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file should contain a class named &amp;quot;&amp;lt;element_name&amp;gt;InstallerScript&amp;quot; where &amp;lt;element_name&amp;gt; is the name of your extension (e.g. com_componentname, mod_modulename, etc.). Plugins must state the group (e.g. plgsystempluginname).&lt;br /&gt;
&lt;br /&gt;
In {{JVer|4.0}} and later the structure of the class is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
use Joomla\CMS\Installer\InstallerAdapter;&lt;br /&gt;
&lt;br /&gt;
class com_componentnameInstallerScript&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function __construct(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called before any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function preflight($route, InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called after any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function postflight($route, $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on installation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function install(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on update&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function update(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on uninstallation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function uninstall(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since Joomla 3.6 Joomla has shipped a basic script that you can use instead of shipping your own from scratch &#039;&#039;&#039;JInstallerScript&#039;&#039;&#039; which contains various helper methods commonly used through the community.&lt;br /&gt;
&lt;br /&gt;
=== Library Manifests === &lt;br /&gt;
{{notice|The section is based on {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
A simple library manifest might look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;library&amp;quot; method=&amp;quot;upgrade&amp;quot; version=&amp;quot;4.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;My Test library.&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mytest&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;Classes&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;mytest.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the library into the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mytest&amp;lt;/tt&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
What if your company has several libraries and you want to group them together under folder &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany&amp;lt;/tt&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Simple - include your company name in the &amp;lt;tt&amp;gt;libraryname&amp;lt;/tt&amp;gt; property of each library like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary1&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary2&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These libraries will then be installed in the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary2&amp;lt;/tt&amp;gt; folders.&lt;br /&gt;
&lt;br /&gt;
Uninstalling &amp;lt;tt&amp;gt;mylibrary1&amp;lt;/tt&amp;gt; will still leave &amp;lt;tt&amp;gt;mylibrary2&amp;lt;/tt&amp;gt; installed on your site.&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;tt&amp;gt;script files&amp;lt;/tt&amp;gt; with such company libraries the installer class name should look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary1InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary2InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
=== Serveurs de mise à jour ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;1&amp;quot; name=&amp;quot;Extension Update Site&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;collection&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;Collection Update Site&amp;quot;&amp;gt;http://example.com/collection.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les serveurs de mise à jour peuvent être définis dans les balises &amp;lt;code&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/code&amp;gt; comme enfant de la racine. Cet élément peut contenir une ou plusieurs balises &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; chacune avec la description depuis laquelle chercher les mises à jour. Chaque rubrique &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;collection&amp;lt;/code&amp;gt; || Le type de serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| priority || &#039;&#039;integer&#039;&#039; || La priorité du serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| name || &#039;&#039;string&#039;&#039; || Le nom du serveur de mise à jour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Pour plus d&#039;informations :&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing a MVC Component/Adding an update server|Création d&#039;une extension Joomla! - Ajout d&#039;un serveur de mise à jour]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Managing Component Updates|Gestion des mises à jour de composants pour Joomla! 2.5]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supporting Download Keys ===&lt;br /&gt;
&lt;br /&gt;
As of Joomla 4.0.0 users can enter their download keys in the Update Sites list. This gives them a single place to manage the download keys. When a user is going to update an extension, Joomla will check if there is a download key. If there is a download key, Joomla will add the download key to the update URL.&lt;br /&gt;
&lt;br /&gt;
To support download keys you must include the &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag in the manifest file. The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag takes 2 arguments:&lt;br /&gt;
* prefix&lt;br /&gt;
* suffix&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag will look like this in your manifest file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dlid prefix=&amp;quot;dlid=&amp;quot; suffix=&amp;quot;&amp;amp;amp;dummy=my.zip&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The prefix will be added before the download key and the suffix after the download key. Using the example above the full query added to the download link will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
dlid=KEY&amp;amp;amp;dummy=my.zip&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The key is added before the &amp;lt;tt&amp;gt;onInstallerBeforePackageDownload&amp;lt;/tt&amp;gt; event is triggered, so the full URL will be passed to the event.&lt;br /&gt;
&lt;br /&gt;
===Exemples=== &lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
== Exemples ==&lt;br /&gt;
Pour un exemple concret, veuillez consulter [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/components/com_banners/banners.xml le manifest pour le composant bannière de la version Joomla! 3.6.4].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D&#039;autres exemples peuvent être trouvés dans le répertoire autonome des liens web&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/administrator/components/com_weblinks/weblinks.xml manifest com_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/modules/mod_weblinks/mod_weblinks.xml manifest mod_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/plugins/search/weblinks/weblinks.xml manifest plg_search_weblinks]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/templates/protostar/templateDetails.xml manifest tpl_protostar (3.6.4)]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/language/en-GB/en-GB.xml manifest en-GB (3.6.4)]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Specifications{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/101/fr&amp;diff=962317</id>
		<title>Translations:Manifest files/101/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/101/fr&amp;diff=962317"/>
		<updated>2022-09-01T15:58:32Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Created page with &amp;quot;La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace l&amp;#039;ancienne &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; de la version Joomla {{JVer|1.5}}&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace l&#039;ancienne &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; de la version Joomla {{JVer|1.5}}&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=962316</id>
		<title>Manifest files/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=962316"/>
		<updated>2022-09-01T15:57:57Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Created page with &amp;quot;Joomla 4.x : la correspondance automatique du namespace va échouer si un nom de fichier tel que &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; est utilisé. Voir https://github.com/joomla/joomla-cms/...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x}} {{Joomla version|version=3.x}} {{Joomla version|version=2.5|status=eos}} &lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Avec Joomla, toutes les extensions proposent des fichiers manifestes. Ces fichiers recouvrent les informations générales concernant l&#039;installation, ainsi que des paramètres pour la configuration de l&#039;[[S:MyLanguage/extension|extension]] elle-même. Depuis Joomla! 2.5, il existe très peu de différences entre les différents formats de fichiers manifestes en fonction des différents [[S:MyLanguage/Extension types (technical definitions)|types d&#039;extensions]] permettant ainsi à chaque type de bénéficier de la puissance de l&#039;installateur Joomla.&lt;br /&gt;
&lt;br /&gt;
==Conventions de nommage==&lt;br /&gt;
Le fichier doit être nommé &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5 et 3) ou &amp;lt;tt&amp;gt;&amp;lt;extension_name&amp;gt;.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5, 3 et 4) et situé dans le répertoire racine du package d&#039;installation.&lt;br /&gt;
&lt;br /&gt;
Joomla 4.x : la correspondance automatique du namespace va échouer si un nom de fichier tel que &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; est utilisé. Voir https://github.com/joomla/joomla-cms/issues/37750&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntaxe==&lt;br /&gt;
&lt;br /&gt;
===Élément à la racine===&lt;br /&gt;
{{notice|The new tag &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; replaces the old &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; from Joomla {{JVer|1.5}}}}&lt;br /&gt;
&lt;br /&gt;
Le tag principal du fichier d&#039;installation est&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise ouvrante et fermante est maintenant valable pour toutes les extensions. La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace les anciennes &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; depuis Joomla! {{JVer|1.5}}. Les attributs suivants sont autorisés à l&#039;intérieur de la balise&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Applicable à || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;language&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;element&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Cet attribut décrit à l&#039;installateur le type de l&#039;extension. En fonction de ce type, d&#039;autres d&#039;exigences supplémentaires s&#039;appliqueront aux sous-balises.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| &amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Chaîne de caractères qui identifie la version de Joomla! pour laquelle cette extension est développée.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| La valeur par défaut &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; sera également utilisée si l&#039;attribut &amp;lt;tt&amp;gt;method&amp;lt;/tt&amp;gt; n&#039;est pas utilisé. La valeur &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; signifie que l&#039;installateur va s&#039;arrêter s&#039;il trouve un fichier/dossier de la nouvelle extension.&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| &amp;lt;code&amp;gt;site&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;administrator&amp;lt;/code&amp;gt; || Modules&lt;br /&gt;
| L&#039;attribut &amp;lt;tt&amp;gt;client&amp;lt;/tt&amp;gt; permet de préciser pour quel type de client d&#039;application le nouveau module est disponible.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &#039;&#039;string&#039;&#039; || Plugins&lt;br /&gt;
| Le nom du groupe indique pour quels groupes de plugins le nouveau plugin est disponible. Les groupes existants sont les noms de dossier du répertoire &amp;lt;tt&amp;gt;/plugins&amp;lt;/tt&amp;gt;. Le programme d&#039;installation va créer de nouveaux noms de dossier pour les noms de groupe qui n&#039;existent pas encore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Métadonnées===&lt;br /&gt;
&lt;br /&gt;
Les éléments suivants peuvent être utilisés pour insérer des métadonnées. Aucun de ces éléments n&#039;est obligatoire et s&#039;ils sont présents, ils doivent être un enfant de l&#039;élément racine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt; &amp;amp;ndash; raw component name (e.g. com_banners). &lt;br /&gt;
&amp;lt;author&amp;gt; &amp;amp;ndash; author&#039;s name (e.g. Joomla! Project)&lt;br /&gt;
&amp;lt;creationDate&amp;gt; &amp;amp;ndash; date of creation or release (e.g. April 2006)&lt;br /&gt;
&amp;lt;copyright&amp;gt; &amp;amp;ndash; a copyright statement (e.g. (C) 2005 - 2011 Open Source Matters. All rights reserved.)&lt;br /&gt;
&amp;lt;license&amp;gt; &amp;amp;ndash; a license statement (e.g. NU General Public License version 2 or later; see LICENSE.txt)&lt;br /&gt;
&amp;lt;authorEmail&amp;gt; &amp;amp;ndash; author&#039;s email address (e.g. admin@joomla.org)&lt;br /&gt;
&amp;lt;authorUrl&amp;gt; &amp;amp;ndash; URL to the author&#039;s website (e.g. www.joomla.org)&lt;br /&gt;
&amp;lt;version&amp;gt; &amp;amp;ndash; the version number of the extension (e.g. 1.6.0)&lt;br /&gt;
&amp;lt;description&amp;gt; &amp;amp;ndash; the description of the component. This is a translatable field. (e.g. COM_BANNERS_XML_DESCRIPTION)&lt;br /&gt;
&amp;lt;element&amp;gt; &amp;amp;ndash; the internal name of the component. If omitted, name will be cleaned and used&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remarque : les balises &amp;lt;name&amp;gt; et &amp;lt;description&amp;gt; sont des champs traduisibles de sorte que le nom et la description de l&#039;extension pourront être présents dans la langue maternelle de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Fichiers de frontend ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;from-folder&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;example.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;examples&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de frontend doivent être placés dans les balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; en option pour spécifier un répertoire &#039;&#039;&#039;du package ZIP&#039;&#039;&#039;. Chaque fichier à copier doit être nommé par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;. Si vous souhaitez copier un dossier entier à la fois, vous pouvez le définir comme un &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les &#039;&#039;&#039;plugins&#039;&#039;&#039;, le nom brut du plugin doit être placé dans l&#039;attribut &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; de l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; qui pointe vers le fichier contenant la classe du plugin. Par exemple, dans le cas d&#039;un système de plugin appelé &amp;quot;exemple&amp;quot; (nom complet : &amp;lt;code&amp;gt;plg_system_exemple&amp;lt;/code&amp;gt;), il faudra utiliser &amp;lt;code&amp;gt;&amp;lt;filename plugin=&amp;quot;exemple&amp;quot;&amp;gt;exemple.php&amp;lt;/filename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Fichiers multimédias===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
	&amp;lt;media folder=&amp;quot;media&amp;quot; destination=&amp;quot;com_example&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;com_example_logo.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;css&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;js&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple permet de copier le fichier (&amp;lt;tt&amp;gt;/media/com_example_logo.png&amp;lt;/tt&amp;gt;) et les dossiers ( &amp;lt;tt&amp;gt;/media/css/&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;/media/js/&amp;lt;/tt&amp;gt; ) listés vers &amp;lt;tt&amp;gt;/media/com_example/&amp;lt;/tt&amp;gt;, ainsi que la création du dossier &amp;lt;tt&amp;gt;com_example&amp;lt;/tt&amp;gt; si nécessaire. Vous pouvez utiliser en option l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire &#039;&#039;&#039;dans le package ZIP&#039;&#039;&#039; à partir duquel réaliser la (dans ce cas, &amp;lt;tt&amp;gt;media&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les extensions doivent stocker les éléments, dont elles ont besoin pour être accessible sur le web (JS, CSS, images, etc), dans &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;. Cette fonctionnalité a été ajoutée dans le cadre du projet de développement d&#039;une interface multi-site et du placement éventuel de fichiers de code (PHP) en dehors des espaces web serveurs accessibles.&amp;lt;br /&amp;gt;Remarque: la section médias n&#039;est pas analysé pour les extensions de type &#039;package&#039;.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/4CAASJqFY-k/PvPj14gP29EJ Google Groups - joomla-dev-cms thread]&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/uNmhX98sKbE/p8p68Jke680J Google Groups - joomla-dev-cms thread]&lt;br /&gt;
&lt;br /&gt;
===Section de l&#039;administration===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- various elements --&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section d&#039;administration est définie par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Puisque seuls les [[S:MyLanguage/Component|composants]] concernent à la fois l&#039;espace [[S:MyLanguage/Site (Application)|site]] et celui d&#039;[[S:MyLanguage/Administrator (Application)|administration]], &#039;&#039;&#039;seuls les manifests pour composants doivent intégrer ces éléments&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
====Fichiers de backend====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de backend doivent être placés dans l&#039;élément &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; sous &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut optionnel &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire à copier depuis le &#039;&#039;&#039;pack ZIP&#039;&#039;&#039;. Voir les &#039;&#039;fichiers frontend&#039;&#039; pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
====Liens de Menu et sous-menus====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{dablink|&#039;&#039;&#039;Note de version :&#039;&#039;&#039; avant Joomla! 3.4, le fait de ne pas avoir de balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; dans votre fichier XML avait pour conséquence l création d&#039;un élément de menu. Cette anomalie a été corrigée dans Joomla! 3.4 et ainsi, si aucune balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; n&#039;est présente dans votre fichier manifest, aucun menu d&#039;administration ne sera créé pour le composant.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;menu&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;submenu&amp;gt;&lt;br /&gt;
		&amp;lt;!--&lt;br /&gt;
			Note that all &amp;amp; must be escaped to &amp;amp;amp; for the file to be valid&lt;br /&gt;
			XML and be parsed by the installer&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&amp;quot;anoption=avalue&amp;amp;amp;anoption1=avalue1&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_ANOPTION&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;menu view=&amp;quot;viewname&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_VIEWNAME&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;/submenu&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte pour l&#039;élément du menu principal pour le composant est défini dans la balise &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;, enfant de de la balise &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;submenu&amp;gt;&amp;lt;/code&amp;gt; peut être présente (également comme enfant de &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;), qui pourra contenir d&#039;autres éléments de menu définis par &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En outre, chaque élément &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || Description&lt;br /&gt;
|-&lt;br /&gt;
| link || Un lien vers lequel renvoyer l&#039;utilisateur lorsque l&#039;élément de menu est cliqué. Vous pouvez utiliser &amp;quot;view&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
| img || Le chemin (relatif) à une image (16x16 pixels) qui apparait à côté de l&#039;élément de menu. &lt;br /&gt;
&amp;lt;u&amp;gt;Doit être url compatible (par exemple sans espaces).&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| alt ||&lt;br /&gt;
|-&lt;br /&gt;
| view || Un paramètre URL à ajouter au lien. Par exemple, &amp;lt;code&amp;gt;&amp;lt;menu view=&amp;quot;cpanel&amp;quot;&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&amp;lt;/code&amp;gt; dans le manifest XML com_example générerait l&#039;URL de l&#039;élément de menu &amp;lt;tt&amp;gt;index.php?option=com_example&amp;amp;view=cpanel&amp;lt;/tt&amp;gt;. Vous pouvez utiliser &amp;quot;link&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La valeur à l&#039;intérieur de la balise est le nom du menu. À La différence de ce qui se faisait pour Joomla! 1.5, vous ne pouvez pas utiliser une chaîne de caractère dans votre langue naturelle. Par exemple, si vous renseignez &amp;quot;Composant d&#039;exemple&amp;quot; au lieu de COM_EXAMPLE, votre nom de composant qui s&#039;afficherait en titre serait &amp;quot;composant-d-exemple&amp;quot; et vous seriez dans l&#039;impossibilité de le traduire. Pour réaliser une traduction, vous devez créer un fichier nommé &amp;lt;tt&amp;gt;fr-FR.com_example.sys.ini&amp;lt;/tt&amp;gt; &#039;&#039;&#039;(NDT : avant de pouvoir créer le fichier fr-FR, il convient de créer le fichier d&#039;origine en-GB)&#039;&#039;&#039; dans &amp;lt;tt&amp;gt;administrator/languages/fr-FR&amp;lt;/tt&amp;gt; (vous pouvez utiliser la balise manifest &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; pour qu&#039;il soit copié lors de l&#039;installation) ou dans &amp;lt;tt&amp;gt;administrator/components/com_example/language/fr-FR&amp;lt;/tt&amp;gt;. Dans ce dernier cas, vous ne devez pas inclure le fichier de traduction dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; balise. Tant que vous aurez placé le répertoire de langue dans vos balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il sera copié lors de l&#039;installation du composant.&lt;br /&gt;
&lt;br /&gt;
Le contenu de ce fichier devrait être :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
COM_EXAMPLE=&amp;quot;Example Component&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_ANOPTION=&amp;quot;Another Option&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_VIEWNAME=&amp;quot;Another View&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the language string must be enclosed in double quotes, as per Joomla!&#039;s translation standards.&lt;br /&gt;
&lt;br /&gt;
{{note|Joomla! 1.6 and later sorts the Component menu items based on the actual translation of the key you supply in your XML manifest. This means that the sorting order is correct no matter what you call your translation key and no matter which language the site is being displayed in. Essentially, Joomla! 1.6 fixed the wrong sorting of the Components menu experienced under Joomla! 1.5 for the majority (non-English speaking!) of Joomla! users.}}&lt;br /&gt;
&lt;br /&gt;
=== Dashboards === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specifies the details for displaying a dashboard for the component in the Administrator area for the site.&lt;br /&gt;
* It will make a dashboard icon appear next to the administrator menu item for the component&lt;br /&gt;
* The dashboard icon will click through to display modules assigned to the cpanel-example administrator module position&lt;br /&gt;
* The title and icon defined in the XML file will be used as the header and icon at the top of the component&#039;s dashboard page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dashboards&amp;gt;&lt;br /&gt;
		&amp;lt;dashboard title=&amp;quot;COM_EXAMPLE_DASHBOARD_TITLE&amp;quot; icon=&amp;quot;icon-lock&amp;quot;&amp;gt;example&amp;lt;/dashboard&amp;gt;&lt;br /&gt;
	&amp;lt;/dashboards&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
{{warning|&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Les composants &#039;&#039;&#039;ne prennent pas en charge&#039;&#039;&#039; les définitions de configuration &#039;&#039;&#039;dans le manifeste&#039;&#039;&#039;. Ceci avait été mis en œuvre dans Joomla! 1.5. Ils est possible de définir les options de configuration pour différents niveaux à l&#039;aide des [[S:MyLanguage/Component configuration metadata|métadonnées de configuration de composant]].&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;, enfant de la racine, décrit les options de configuration de l&#039;extension. En cas de besoin, les options seront affichées par le gestionnaire concerné (gestionnaire de plugins, gestionnaire de modules ou gestionnaire de templates). &#039;&#039;&#039;Les options de configuration peuvent également être définies dans un fichier séparé nommé &amp;lt;code&amp;gt;config.xml&amp;lt;/code&amp;gt;. Son élément racine doit être &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de champs &amp;lt;code&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/code&amp;gt; peut contenir un ou plusieurs éléments &amp;lt;code&amp;gt;&amp;lt;field&amp;gt;&amp;lt;/code&amp;gt; (champ), chacun représentant un seul [[S:MyLanguage/form field|champ de formulaire]] avec une étiquette. Consultez les [[S:MyLanguage/Standard form field types|types de champs pour formulaires standards]] pour une liste des types de champs autorisés et un exemple de définitions de champs de formulaire XML.&lt;br /&gt;
&lt;br /&gt;
=== Namespace === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specify the namespace to be used for autoloading the plugin. The given namespace will autoload to the root directory of your extension by default however you can optionally add a &amp;quot;path&amp;quot; attribute to the namespace element to specify a subpath within your extensions root directory.&lt;br /&gt;
&lt;br /&gt;
===SQL===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;install&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.install.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/install&amp;gt;&lt;br /&gt;
    &amp;lt;uninstall&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.uninstall.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/uninstall&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;exemple ci-dessus, nous avons placé les fichiers SQL dans le répertoire &amp;lt;tt&amp;gt;admin/sql&amp;lt;/tt&amp;gt; du paquet d&#039;installation. Vous devez inclure le dossier &amp;lt;tt&amp;gt;sql&amp;lt;/tt&amp;gt; dans les fichiers d&#039;administration (tel que décrit dans &amp;quot;les fichiers backend&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez exécuter SQL lors de l&#039;installation et/ou la désinstallation à l&#039;aide des éléments &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;lt;uninstall&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; doit apparaître comme un enfant de ces éléments. &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; peut contenir n&#039;importe quel nombre d&#039;éléments &amp;lt;code&amp;gt;&amp;lt;file&amp;gt;&amp;lt;/code&amp;gt;, chacun devant définir un seul fichier SQL à exécuter. Leurs types de pilote de base de données sont décrits par l&#039;attribut &amp;lt;code&amp;gt;driver&amp;lt;/code&amp;gt;, leurs jeux de caractères par l&#039;attribut &amp;lt;code&amp;gt;charset&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
==== Mise à jour du schéma SQL====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depuis la version 1.6, une balise &amp;lt;code&amp;gt;&amp;lt;update&amp;gt;&amp;lt;/code&amp;gt; est disponible et vous permet de fournir une série de fichiers SQL pour mettre à jour le schéma actuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;sqlsrv&amp;quot;&amp;gt;sql/updates/sqlsrv&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour passer de la version &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt; à la version &amp;lt;code&amp;gt;1.0.1&amp;lt;/code&amp;gt; dans une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;, un fichier &amp;lt;code&amp;gt;1.0.1.sql&amp;lt;/code&amp;gt; doit être créé dans le dossier &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt; et la balise &amp;lt;code&amp;gt;&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; du manifest doit être mis à jour : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La structure finale du dossier sql ressemblera à ceci (dans l&#039;hypothèse d&#039;une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
sql&lt;br /&gt;
 |--&amp;gt;example.install.sql&lt;br /&gt;
 |--&amp;gt;example.uninstall.sql&lt;br /&gt;
 |--&amp;gt;updates&lt;br /&gt;
     |--&amp;gt;mysql&lt;br /&gt;
        |--&amp;gt;1.0.1.sql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des fichiers similaires doivent être créés pour les versions suivantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
===Fichiers langue===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Dans Joomla! 1.5, les développeurs d&#039;extensions devaient placer les fichiers de langue dans le dossier général des langues de Joomla! à l&#039;aide des balises &amp;amp;lt;languages&amp;amp;gt;...&amp;amp;lt;/languages&amp;amp;gt; comme indiqué ci-dessous. &#039;&#039;&#039;Cette méthode peut toujours être utilisée avec la version&#039;&#039;&#039; {{JVer|3.x}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Joomla! language tag --&amp;gt;&lt;br /&gt;
&amp;lt;languages folder=&amp;quot;langfiles&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_example.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Depuis Joomla! 1.6, il vous est conseillé de placer les fichiers langue de votre extension dans le dossier même de votre extension. Joomla! chargera alors automatiquement les fichiers de langue depuis votre extension.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En plaçant les fichiers de langue dans le dossier de l&#039;extension, vous permettez ainsi de les isoler et donc de les protéger. Par exemple, dans le cas ou un administrateur supprimerait une langue de son installation Joomlaǃ. Dans ce cas, les fichiers de langue de l&#039;extension ne seront pas supprimés. Ils resteront alors en place et ne seront accessibles que si la langue est installée à nouveau.&lt;br /&gt;
&lt;br /&gt;
La structure du dossier de langue pour le frontend et le backend est identique. Il convient de les placer dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; (par exemple &#039;&#039;&#039;en-GB&#039;&#039;&#039;) pour chaque langue et dans le dossier comme suit&amp;amp;nbsp;: &#039;&#039;&#039;language/en-GB/&#039;&#039;&#039;. Vous devez aussi spécifier ces dossiers pour le frontend et le backend.&lt;br /&gt;
&lt;br /&gt;
Dans votre manifest, il suffit simplement d&#039;inclure votre dossier &amp;lt;tt&amp;gt;&amp;lt;language&amp;gt;&amp;lt;/tt&amp;gt; dans la section fichiers. Les sous-répertoires pour chaque langue seront alors automatiquement copiés. À l&#039;intérieur des groupes &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il vous suffit d&#039;ajouter une balise &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt; à côté des éléments dans le groupe &amp;lt;tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/tt&amp;gt;, comme indiqué dans cet exemple&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;alpha&amp;quot;&amp;gt;alpha.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les deux techniques peuvent fonctionner ensemble. Voici un exemple du noyau&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;languagecode&amp;quot;&amp;gt;languagecode.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les avantages pour cette solution sont les suivants :&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers &#039;&#039;.ini&#039;&#039; présents dans le dossier du noyau ont la priorité sur les fichiers dans les dossiers langue des extensions.&lt;br /&gt;
Par exemple, s&#039;il existe, un fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; d&#039;un dossier du noyau sera toujours chargé dans le backend, sauf lors de l&#039;installation d&#039;une extension qui contient son propre fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans un dossier de langue. Dans ce cas et uniquement ce cas, le fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans le dossier de l&#039;extension affichera son contenu traduit au moment de l&#039;installation. C&#039;est très pratique car un développeur peut avoir deux fichiers &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; avec un contenu différent.&lt;br /&gt;
&lt;br /&gt;
Il est également beaucoup plus facile pour un utilisateur ayant besoin de trouver le fichier &amp;lt;tt&amp;gt;.ini&amp;lt;/tt&amp;gt; d&#039;une extension qui n&#039;est pas disponible dans sa langue de l&#039;ajouter dans le dossier principal. Il n&#039;y a aucun risque qu&#039;il ne soit supprimé en cas de désinstallation par erreur de l&#039;extension.&lt;br /&gt;
&lt;br /&gt;
Veuillez consulter également :&lt;br /&gt;
*[[S:MyLanguage/J2.5:Making non-core language packs|Créer un pack langue hors du noyau]]&lt;br /&gt;
*[[S:MyLanguage/Creating language packs for extensions in Joomla 2.5|Créer un pack langue pour une extension Joomla! 2.5]]&lt;br /&gt;
&lt;br /&gt;
Au cours du développement, vous pouvez activer le système de débogage de langue dans la configuration globale de Joomlaǃ. Vous pourrez découvrir si un problème est levé. Depuis {{JVer|3.2}}, cela est nécessaire afin d&#039;aider à déboguer le en-GB qui est &#039;&#039;&#039;toujours&#039;&#039;&#039; chargé en premier lorsque l&#039;on est pas en mode de débogage et ainsi empêcher l&#039;affichage des constantes.&lt;br /&gt;
&lt;br /&gt;
===Fichier de script===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;scriptfile&amp;gt;example.script.php&amp;lt;/scriptfile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Un &#039;&#039;&#039;fichier de script&#039;&#039;&#039; (code PHP qui est exécuté avant, pendant et/ou après l&#039;installation, la désinstallation ou la mise à jour) peut, en option, être défini à l&#039;aide d&#039;une balise &amp;lt;code&amp;gt;&amp;lt;scriptfile&amp;gt;&amp;lt;/code&amp;gt;. Ce fichier doit contenir une classe nommée &#039;&amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;InstallerScript&#039;&#039;&amp;lt;/tt&amp;gt; où &amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;&amp;lt;/tt&amp;gt; est le nom de votre extension (par exemple : com_nomducomposant, mod_nomdumodule, etc.). Pour les plugins, il convient de nommer également le groupe (par exemple : plgsystemnomduplugin). Les packages de bibliothèque ne prennent pas en charge les fichiers scripts. La structure de la classe sera comme suit :&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file should contain a class named &amp;quot;&amp;lt;element_name&amp;gt;InstallerScript&amp;quot; where &amp;lt;element_name&amp;gt; is the name of your extension (e.g. com_componentname, mod_modulename, etc.). Plugins must state the group (e.g. plgsystempluginname).&lt;br /&gt;
&lt;br /&gt;
In {{JVer|4.0}} and later the structure of the class is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
use Joomla\CMS\Installer\InstallerAdapter;&lt;br /&gt;
&lt;br /&gt;
class com_componentnameInstallerScript&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function __construct(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called before any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function preflight($route, InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called after any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function postflight($route, $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on installation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function install(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on update&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function update(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on uninstallation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function uninstall(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since Joomla 3.6 Joomla has shipped a basic script that you can use instead of shipping your own from scratch &#039;&#039;&#039;JInstallerScript&#039;&#039;&#039; which contains various helper methods commonly used through the community.&lt;br /&gt;
&lt;br /&gt;
=== Library Manifests === &lt;br /&gt;
{{notice|The section is based on {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
A simple library manifest might look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;library&amp;quot; method=&amp;quot;upgrade&amp;quot; version=&amp;quot;4.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;My Test library.&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mytest&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;Classes&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;mytest.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the library into the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mytest&amp;lt;/tt&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
What if your company has several libraries and you want to group them together under folder &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany&amp;lt;/tt&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Simple - include your company name in the &amp;lt;tt&amp;gt;libraryname&amp;lt;/tt&amp;gt; property of each library like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary1&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary2&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These libraries will then be installed in the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary2&amp;lt;/tt&amp;gt; folders.&lt;br /&gt;
&lt;br /&gt;
Uninstalling &amp;lt;tt&amp;gt;mylibrary1&amp;lt;/tt&amp;gt; will still leave &amp;lt;tt&amp;gt;mylibrary2&amp;lt;/tt&amp;gt; installed on your site.&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;tt&amp;gt;script files&amp;lt;/tt&amp;gt; with such company libraries the installer class name should look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary1InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary2InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
=== Serveurs de mise à jour ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;1&amp;quot; name=&amp;quot;Extension Update Site&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;collection&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;Collection Update Site&amp;quot;&amp;gt;http://example.com/collection.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les serveurs de mise à jour peuvent être définis dans les balises &amp;lt;code&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/code&amp;gt; comme enfant de la racine. Cet élément peut contenir une ou plusieurs balises &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; chacune avec la description depuis laquelle chercher les mises à jour. Chaque rubrique &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;collection&amp;lt;/code&amp;gt; || Le type de serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| priority || &#039;&#039;integer&#039;&#039; || La priorité du serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| name || &#039;&#039;string&#039;&#039; || Le nom du serveur de mise à jour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Pour plus d&#039;informations :&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing a MVC Component/Adding an update server|Création d&#039;une extension Joomla! - Ajout d&#039;un serveur de mise à jour]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Managing Component Updates|Gestion des mises à jour de composants pour Joomla! 2.5]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supporting Download Keys ===&lt;br /&gt;
&lt;br /&gt;
As of Joomla 4.0.0 users can enter their download keys in the Update Sites list. This gives them a single place to manage the download keys. When a user is going to update an extension, Joomla will check if there is a download key. If there is a download key, Joomla will add the download key to the update URL.&lt;br /&gt;
&lt;br /&gt;
To support download keys you must include the &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag in the manifest file. The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag takes 2 arguments:&lt;br /&gt;
* prefix&lt;br /&gt;
* suffix&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag will look like this in your manifest file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dlid prefix=&amp;quot;dlid=&amp;quot; suffix=&amp;quot;&amp;amp;amp;dummy=my.zip&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The prefix will be added before the download key and the suffix after the download key. Using the example above the full query added to the download link will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
dlid=KEY&amp;amp;amp;dummy=my.zip&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The key is added before the &amp;lt;tt&amp;gt;onInstallerBeforePackageDownload&amp;lt;/tt&amp;gt; event is triggered, so the full URL will be passed to the event.&lt;br /&gt;
&lt;br /&gt;
===Exemples=== &lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
== Exemples ==&lt;br /&gt;
Pour un exemple concret, veuillez consulter [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/components/com_banners/banners.xml le manifest pour le composant bannière de la version Joomla! 3.6.4].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D&#039;autres exemples peuvent être trouvés dans le répertoire autonome des liens web&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/administrator/components/com_weblinks/weblinks.xml manifest com_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/modules/mod_weblinks/mod_weblinks.xml manifest mod_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/plugins/search/weblinks/weblinks.xml manifest plg_search_weblinks]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/templates/protostar/templateDetails.xml manifest tpl_protostar (3.6.4)]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/language/en-GB/en-GB.xml manifest en-GB (3.6.4)]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Specifications{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/100/fr&amp;diff=962315</id>
		<title>Translations:Manifest files/100/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/100/fr&amp;diff=962315"/>
		<updated>2022-09-01T15:57:56Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: Created page with &amp;quot;Joomla 4.x : la correspondance automatique du namespace va échouer si un nom de fichier tel que &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; est utilisé. Voir https://github.com/joomla/joomla-cms/...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Joomla 4.x : la correspondance automatique du namespace va échouer si un nom de fichier tel que &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; est utilisé. Voir https://github.com/joomla/joomla-cms/issues/37750&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=962031</id>
		<title>Manifest files/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Manifest_files/fr&amp;diff=962031"/>
		<updated>2022-09-01T12:10:53Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
{{Joomla version|version=4.x}} {{Joomla version|version=3.x}} {{Joomla version|version=2.5|status=eos}} &lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
Avec Joomla, toutes les extensions proposent des fichiers manifestes. Ces fichiers recouvrent les informations générales concernant l&#039;installation, ainsi que des paramètres pour la configuration de l&#039;[[S:MyLanguage/extension|extension]] elle-même. Depuis Joomla! 2.5, il existe très peu de différences entre les différents formats de fichiers manifestes en fonction des différents [[S:MyLanguage/Extension types (technical definitions)|types d&#039;extensions]] permettant ainsi à chaque type de bénéficier de la puissance de l&#039;installateur Joomla.&lt;br /&gt;
&lt;br /&gt;
==Conventions de nommage==&lt;br /&gt;
Le fichier doit être nommé &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5 et 3) ou &amp;lt;tt&amp;gt;&amp;lt;extension_name&amp;gt;.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5, 3 et 4) et situé dans le répertoire racine du package d&#039;installation.&lt;br /&gt;
&lt;br /&gt;
Joomla 4.x: Automatic namespace mapping will fail if a manifest file named &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; is used. See: https://github.com/joomla/joomla-cms/issues/37750&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Syntaxe==&lt;br /&gt;
&lt;br /&gt;
===Élément à la racine===&lt;br /&gt;
{{notice|The new tag &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; replaces the old &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; from Joomla {{JVer|1.5}}}}&lt;br /&gt;
&lt;br /&gt;
Le tag principal du fichier d&#039;installation est&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;source lang=xml&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise ouvrante et fermante est maintenant valable pour toutes les extensions. La nouvelle balise &amp;lt;code&amp;gt;&amp;lt;extension&amp;gt;&amp;lt;/code&amp;gt; remplace les anciennes &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/install&amp;gt;&amp;lt;/code&amp;gt; depuis Joomla! {{JVer|1.5}}. Les attributs suivants sont autorisés à l&#039;intérieur de la balise&amp;amp;nbsp;:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Applicable à || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;component&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;file&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;language&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;library&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;module&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;package&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;template&amp;lt;/code&amp;gt;&amp;lt;br/&amp;gt;&amp;lt;code&amp;gt;element&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| Cet attribut décrit à l&#039;installateur le type de l&#039;extension. En fonction de ce type, d&#039;autres d&#039;exigences supplémentaires s&#039;appliqueront aux sous-balises.&lt;br /&gt;
|-&lt;br /&gt;
| version&lt;br /&gt;
| &amp;lt;code&amp;gt;2.5&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;3.0&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| &amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Chaîne de caractères qui identifie la version de Joomla! pour laquelle cette extension est développée.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| method&lt;br /&gt;
| &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;upgrade&amp;lt;/code&amp;gt; || Toutes les extensions&lt;br /&gt;
| La valeur par défaut &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; sera également utilisée si l&#039;attribut &amp;lt;tt&amp;gt;method&amp;lt;/tt&amp;gt; n&#039;est pas utilisé. La valeur &amp;lt;code&amp;gt;install&amp;lt;/code&amp;gt; signifie que l&#039;installateur va s&#039;arrêter s&#039;il trouve un fichier/dossier de la nouvelle extension.&lt;br /&gt;
|-&lt;br /&gt;
| client&lt;br /&gt;
| &amp;lt;code&amp;gt;site&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;administrator&amp;lt;/code&amp;gt; || Modules&lt;br /&gt;
| L&#039;attribut &amp;lt;tt&amp;gt;client&amp;lt;/tt&amp;gt; permet de préciser pour quel type de client d&#039;application le nouveau module est disponible.&lt;br /&gt;
|-&lt;br /&gt;
| group&lt;br /&gt;
| &#039;&#039;string&#039;&#039; || Plugins&lt;br /&gt;
| Le nom du groupe indique pour quels groupes de plugins le nouveau plugin est disponible. Les groupes existants sont les noms de dossier du répertoire &amp;lt;tt&amp;gt;/plugins&amp;lt;/tt&amp;gt;. Le programme d&#039;installation va créer de nouveaux noms de dossier pour les noms de groupe qui n&#039;existent pas encore.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Métadonnées===&lt;br /&gt;
&lt;br /&gt;
Les éléments suivants peuvent être utilisés pour insérer des métadonnées. Aucun de ces éléments n&#039;est obligatoire et s&#039;ils sont présents, ils doivent être un enfant de l&#039;élément racine.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
&amp;lt;name&amp;gt; &amp;amp;ndash; raw component name (e.g. com_banners). &lt;br /&gt;
&amp;lt;author&amp;gt; &amp;amp;ndash; author&#039;s name (e.g. Joomla! Project)&lt;br /&gt;
&amp;lt;creationDate&amp;gt; &amp;amp;ndash; date of creation or release (e.g. April 2006)&lt;br /&gt;
&amp;lt;copyright&amp;gt; &amp;amp;ndash; a copyright statement (e.g. (C) 2005 - 2011 Open Source Matters. All rights reserved.)&lt;br /&gt;
&amp;lt;license&amp;gt; &amp;amp;ndash; a license statement (e.g. NU General Public License version 2 or later; see LICENSE.txt)&lt;br /&gt;
&amp;lt;authorEmail&amp;gt; &amp;amp;ndash; author&#039;s email address (e.g. admin@joomla.org)&lt;br /&gt;
&amp;lt;authorUrl&amp;gt; &amp;amp;ndash; URL to the author&#039;s website (e.g. www.joomla.org)&lt;br /&gt;
&amp;lt;version&amp;gt; &amp;amp;ndash; the version number of the extension (e.g. 1.6.0)&lt;br /&gt;
&amp;lt;description&amp;gt; &amp;amp;ndash; the description of the component. This is a translatable field. (e.g. COM_BANNERS_XML_DESCRIPTION)&lt;br /&gt;
&amp;lt;element&amp;gt; &amp;amp;ndash; the internal name of the component. If omitted, name will be cleaned and used&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remarque : les balises &amp;lt;name&amp;gt; et &amp;lt;description&amp;gt; sont des champs traduisibles de sorte que le nom et la description de l&#039;extension pourront être présents dans la langue maternelle de l&#039;utilisateur.&lt;br /&gt;
&lt;br /&gt;
=== Fichiers de frontend ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;files folder=&amp;quot;from-folder&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;example.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;examples&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de frontend doivent être placés dans les balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; en option pour spécifier un répertoire &#039;&#039;&#039;du package ZIP&#039;&#039;&#039;. Chaque fichier à copier doit être nommé par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt;. Si vous souhaitez copier un dossier entier à la fois, vous pouvez le définir comme un &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Pour les &#039;&#039;&#039;plugins&#039;&#039;&#039;, le nom brut du plugin doit être placé dans l&#039;attribut &amp;lt;code&amp;gt;plugin&amp;lt;/code&amp;gt; de l&#039;élément &amp;lt;code&amp;gt;&amp;lt;filename&amp;gt;&amp;lt;/code&amp;gt; qui pointe vers le fichier contenant la classe du plugin. Par exemple, dans le cas d&#039;un système de plugin appelé &amp;quot;exemple&amp;quot; (nom complet : &amp;lt;code&amp;gt;plg_system_exemple&amp;lt;/code&amp;gt;), il faudra utiliser &amp;lt;code&amp;gt;&amp;lt;filename plugin=&amp;quot;exemple&amp;quot;&amp;gt;exemple.php&amp;lt;/filename&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
===Fichiers multimédias===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;gt;&lt;br /&gt;
	&amp;lt;media folder=&amp;quot;media&amp;quot; destination=&amp;quot;com_example&amp;quot;&amp;gt;&lt;br /&gt;
		&amp;lt;filename&amp;gt;com_example_logo.png&amp;lt;/filename&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;css&amp;lt;/folder&amp;gt;&lt;br /&gt;
		&amp;lt;folder&amp;gt;js&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;/media&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Cet exemple permet de copier le fichier (&amp;lt;tt&amp;gt;/media/com_example_logo.png&amp;lt;/tt&amp;gt;) et les dossiers ( &amp;lt;tt&amp;gt;/media/css/&amp;lt;/tt&amp;gt; et &amp;lt;tt&amp;gt;/media/js/&amp;lt;/tt&amp;gt; ) listés vers &amp;lt;tt&amp;gt;/media/com_example/&amp;lt;/tt&amp;gt;, ainsi que la création du dossier &amp;lt;tt&amp;gt;com_example&amp;lt;/tt&amp;gt; si nécessaire. Vous pouvez utiliser en option l&#039;attribut &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire &#039;&#039;&#039;dans le package ZIP&#039;&#039;&#039; à partir duquel réaliser la (dans ce cas, &amp;lt;tt&amp;gt;media&amp;lt;/tt&amp;gt;).&lt;br /&gt;
&lt;br /&gt;
Les extensions doivent stocker les éléments, dont elles ont besoin pour être accessible sur le web (JS, CSS, images, etc), dans &amp;lt;code&amp;gt;media&amp;lt;/code&amp;gt;. Cette fonctionnalité a été ajoutée dans le cadre du projet de développement d&#039;une interface multi-site et du placement éventuel de fichiers de code (PHP) en dehors des espaces web serveurs accessibles.&amp;lt;br /&amp;gt;Remarque: la section médias n&#039;est pas analysé pour les extensions de type &#039;package&#039;.&lt;br /&gt;
&lt;br /&gt;
Ref:&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/4CAASJqFY-k/PvPj14gP29EJ Google Groups - joomla-dev-cms thread]&lt;br /&gt;
* [https://groups.google.com/forum/#!msg/joomla-dev-cms/uNmhX98sKbE/p8p68Jke680J Google Groups - joomla-dev-cms thread]&lt;br /&gt;
&lt;br /&gt;
===Section de l&#039;administration===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;administration&amp;gt;&lt;br /&gt;
		&amp;lt;!-- various elements --&amp;gt;&lt;br /&gt;
	&amp;lt;/administration&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La section d&#039;administration est définie par l&#039;élément &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Puisque seuls les [[S:MyLanguage/Component|composants]] concernent à la fois l&#039;espace [[S:MyLanguage/Site (Application)|site]] et celui d&#039;[[S:MyLanguage/Administrator (Application)|administration]], &#039;&#039;&#039;seuls les manifests pour composants doivent intégrer ces éléments&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
====Fichiers de backend====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les fichiers à copier dans le répertoire de backend doivent être placés dans l&#039;élément &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt; sous &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Vous pouvez utiliser l&#039;attribut optionnel &amp;lt;code&amp;gt;folder&amp;lt;/code&amp;gt; pour spécifier un répertoire à copier depuis le &#039;&#039;&#039;pack ZIP&#039;&#039;&#039;. Voir les &#039;&#039;fichiers frontend&#039;&#039; pour plus d&#039;informations.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
====Liens de Menu et sous-menus====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{dablink|&#039;&#039;&#039;Note de version :&#039;&#039;&#039; avant Joomla! 3.4, le fait de ne pas avoir de balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; dans votre fichier XML avait pour conséquence l création d&#039;un élément de menu. Cette anomalie a été corrigée dans Joomla! 3.4 et ainsi, si aucune balise &amp;lt;code&amp;gt;&amp;lt;nowiki&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/nowiki&amp;gt;&amp;lt;/code&amp;gt; n&#039;est présente dans votre fichier manifest, aucun menu d&#039;administration ne sera créé pour le composant.}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;menu&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;submenu&amp;gt;&lt;br /&gt;
		&amp;lt;!--&lt;br /&gt;
			Note that all &amp;amp; must be escaped to &amp;amp;amp; for the file to be valid&lt;br /&gt;
			XML and be parsed by the installer&lt;br /&gt;
		--&amp;gt;&lt;br /&gt;
		&amp;lt;menu link=&amp;quot;anoption=avalue&amp;amp;amp;anoption1=avalue1&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_ANOPTION&amp;lt;/menu&amp;gt;&lt;br /&gt;
		&amp;lt;menu view=&amp;quot;viewname&amp;quot;&amp;gt;COM_EXAMPLE_SUBMENU_VIEWNAME&amp;lt;/menu&amp;gt;&lt;br /&gt;
	&amp;lt;/submenu&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le texte pour l&#039;élément du menu principal pour le composant est défini dans la balise &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;, enfant de de la balise &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;submenu&amp;gt;&amp;lt;/code&amp;gt; peut être présente (également comme enfant de &amp;lt;code&amp;gt;&amp;lt;administration&amp;gt;&amp;lt;/code&amp;gt;), qui pourra contenir d&#039;autres éléments de menu définis par &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
En outre, chaque élément &amp;lt;code&amp;gt;&amp;lt;menu&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || Description&lt;br /&gt;
|-&lt;br /&gt;
| link || Un lien vers lequel renvoyer l&#039;utilisateur lorsque l&#039;élément de menu est cliqué. Vous pouvez utiliser &amp;quot;view&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
| img || Le chemin (relatif) à une image (16x16 pixels) qui apparait à côté de l&#039;élément de menu. &lt;br /&gt;
&amp;lt;u&amp;gt;Doit être url compatible (par exemple sans espaces).&amp;lt;/u&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
| alt ||&lt;br /&gt;
|-&lt;br /&gt;
| view || Un paramètre URL à ajouter au lien. Par exemple, &amp;lt;code&amp;gt;&amp;lt;menu view=&amp;quot;cpanel&amp;quot;&amp;gt;COM_EXAMPLE&amp;lt;/menu&amp;gt;&amp;lt;/code&amp;gt; dans le manifest XML com_example générerait l&#039;URL de l&#039;élément de menu &amp;lt;tt&amp;gt;index.php?option=com_example&amp;amp;view=cpanel&amp;lt;/tt&amp;gt;. Vous pouvez utiliser &amp;quot;link&amp;quot; à la place.&lt;br /&gt;
|-&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
La valeur à l&#039;intérieur de la balise est le nom du menu. À La différence de ce qui se faisait pour Joomla! 1.5, vous ne pouvez pas utiliser une chaîne de caractère dans votre langue naturelle. Par exemple, si vous renseignez &amp;quot;Composant d&#039;exemple&amp;quot; au lieu de COM_EXAMPLE, votre nom de composant qui s&#039;afficherait en titre serait &amp;quot;composant-d-exemple&amp;quot; et vous seriez dans l&#039;impossibilité de le traduire. Pour réaliser une traduction, vous devez créer un fichier nommé &amp;lt;tt&amp;gt;fr-FR.com_example.sys.ini&amp;lt;/tt&amp;gt; &#039;&#039;&#039;(NDT : avant de pouvoir créer le fichier fr-FR, il convient de créer le fichier d&#039;origine en-GB)&#039;&#039;&#039; dans &amp;lt;tt&amp;gt;administrator/languages/fr-FR&amp;lt;/tt&amp;gt; (vous pouvez utiliser la balise manifest &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; pour qu&#039;il soit copié lors de l&#039;installation) ou dans &amp;lt;tt&amp;gt;administrator/components/com_example/language/fr-FR&amp;lt;/tt&amp;gt;. Dans ce dernier cas, vous ne devez pas inclure le fichier de traduction dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; balise. Tant que vous aurez placé le répertoire de langue dans vos balises &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il sera copié lors de l&#039;installation du composant.&lt;br /&gt;
&lt;br /&gt;
Le contenu de ce fichier devrait être :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ini&amp;quot;&amp;gt;&lt;br /&gt;
COM_EXAMPLE=&amp;quot;Example Component&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_ANOPTION=&amp;quot;Another Option&amp;quot;&lt;br /&gt;
COM_EXAMPLE_SUBMENU_VIEWNAME=&amp;quot;Another View&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Please note that the language string must be enclosed in double quotes, as per Joomla!&#039;s translation standards.&lt;br /&gt;
&lt;br /&gt;
{{note|Joomla! 1.6 and later sorts the Component menu items based on the actual translation of the key you supply in your XML manifest. This means that the sorting order is correct no matter what you call your translation key and no matter which language the site is being displayed in. Essentially, Joomla! 1.6 fixed the wrong sorting of the Components menu experienced under Joomla! 1.5 for the majority (non-English speaking!) of Joomla! users.}}&lt;br /&gt;
&lt;br /&gt;
=== Dashboards === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specifies the details for displaying a dashboard for the component in the Administrator area for the site.&lt;br /&gt;
* It will make a dashboard icon appear next to the administrator menu item for the component&lt;br /&gt;
* The dashboard icon will click through to display modules assigned to the cpanel-example administrator module position&lt;br /&gt;
* The title and icon defined in the XML file will be used as the header and icon at the top of the component&#039;s dashboard page.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;dashboards&amp;gt;&lt;br /&gt;
		&amp;lt;dashboard title=&amp;quot;COM_EXAMPLE_DASHBOARD_TITLE&amp;quot; icon=&amp;quot;icon-lock&amp;quot;&amp;gt;example&amp;lt;/dashboard&amp;gt;&lt;br /&gt;
	&amp;lt;/dashboards&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Configuration===&lt;br /&gt;
{{warning|&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Les composants &#039;&#039;&#039;ne prennent pas en charge&#039;&#039;&#039; les définitions de configuration &#039;&#039;&#039;dans le manifeste&#039;&#039;&#039;. Ceci avait été mis en œuvre dans Joomla! 1.5. Ils est possible de définir les options de configuration pour différents niveaux à l&#039;aide des [[S:MyLanguage/Component configuration metadata|métadonnées de configuration de composant]].&lt;br /&gt;
&amp;lt;/div&amp;gt;}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
La balise &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;, enfant de la racine, décrit les options de configuration de l&#039;extension. En cas de besoin, les options seront affichées par le gestionnaire concerné (gestionnaire de plugins, gestionnaire de modules ou gestionnaire de templates). &#039;&#039;&#039;Les options de configuration peuvent également être définies dans un fichier séparé nommé &amp;lt;code&amp;gt;config.xml&amp;lt;/code&amp;gt;. Son élément racine doit être &amp;lt;code&amp;gt;&amp;lt;config&amp;gt;&amp;lt;/code&amp;gt;.&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Chaque groupe de champs &amp;lt;code&amp;gt;&amp;lt;fieldset&amp;gt;&amp;lt;/code&amp;gt; peut contenir un ou plusieurs éléments &amp;lt;code&amp;gt;&amp;lt;field&amp;gt;&amp;lt;/code&amp;gt; (champ), chacun représentant un seul [[S:MyLanguage/form field|champ de formulaire]] avec une étiquette. Consultez les [[S:MyLanguage/Standard form field types|types de champs pour formulaires standards]] pour une liste des types de champs autorisés et un exemple de définitions de champs de formulaire XML.&lt;br /&gt;
&lt;br /&gt;
=== Namespace === &lt;br /&gt;
{{notice|This code only works in {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
Specify the namespace to be used for autoloading the plugin. The given namespace will autoload to the root directory of your extension by default however you can optionally add a &amp;quot;path&amp;quot; attribute to the namespace element to specify a subpath within your extensions root directory.&lt;br /&gt;
&lt;br /&gt;
===SQL===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;install&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.install.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/install&amp;gt;&lt;br /&gt;
    &amp;lt;uninstall&amp;gt;&lt;br /&gt;
        &amp;lt;sql&amp;gt;&lt;br /&gt;
            &amp;lt;file driver=&amp;quot;mysql&amp;quot; charset=&amp;quot;utf8&amp;quot;&amp;gt;sql/example.uninstall.sql&amp;lt;/file&amp;gt;&lt;br /&gt;
        &amp;lt;/sql&amp;gt;&lt;br /&gt;
    &amp;lt;/uninstall&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Dans l&#039;exemple ci-dessus, nous avons placé les fichiers SQL dans le répertoire &amp;lt;tt&amp;gt;admin/sql&amp;lt;/tt&amp;gt; du paquet d&#039;installation. Vous devez inclure le dossier &amp;lt;tt&amp;gt;sql&amp;lt;/tt&amp;gt; dans les fichiers d&#039;administration (tel que décrit dans &amp;quot;les fichiers backend&amp;quot;).&lt;br /&gt;
&lt;br /&gt;
Vous pouvez exécuter SQL lors de l&#039;installation et/ou la désinstallation à l&#039;aide des éléments &amp;lt;code&amp;gt;&amp;lt;install&amp;gt;&amp;lt;/code&amp;gt; et &amp;lt;code&amp;gt;&amp;lt;uninstall&amp;gt;&amp;lt;/code&amp;gt;. Une balise &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; doit apparaître comme un enfant de ces éléments. &amp;lt;code&amp;gt;&amp;lt;sql&amp;gt;&amp;lt;/code&amp;gt; peut contenir n&#039;importe quel nombre d&#039;éléments &amp;lt;code&amp;gt;&amp;lt;file&amp;gt;&amp;lt;/code&amp;gt;, chacun devant définir un seul fichier SQL à exécuter. Leurs types de pilote de base de données sont décrits par l&#039;attribut &amp;lt;code&amp;gt;driver&amp;lt;/code&amp;gt;, leurs jeux de caractères par l&#039;attribut &amp;lt;code&amp;gt;charset&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
==== Mise à jour du schéma SQL====&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Depuis la version 1.6, une balise &amp;lt;code&amp;gt;&amp;lt;update&amp;gt;&amp;lt;/code&amp;gt; est disponible et vous permet de fournir une série de fichiers SQL pour mettre à jour le schéma actuel.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;update&amp;gt;&lt;br /&gt;
		&amp;lt;schemas&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;mysql&amp;quot;&amp;gt;sql/updates/mysql&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
			&amp;lt;schemapath type=&amp;quot;sqlsrv&amp;quot;&amp;gt;sql/updates/sqlsrv&amp;lt;/schemapath&amp;gt;&lt;br /&gt;
		&amp;lt;/schemas&amp;gt;&lt;br /&gt;
	&amp;lt;/update&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Par exemple, pour passer de la version &amp;lt;code&amp;gt;1.0.0&amp;lt;/code&amp;gt; à la version &amp;lt;code&amp;gt;1.0.1&amp;lt;/code&amp;gt; dans une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;, un fichier &amp;lt;code&amp;gt;1.0.1.sql&amp;lt;/code&amp;gt; doit être créé dans le dossier &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt; et la balise &amp;lt;code&amp;gt;&amp;lt;version&amp;gt;&amp;lt;/code&amp;gt; du manifest doit être mis à jour : &lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
La structure finale du dossier sql ressemblera à ceci (dans l&#039;hypothèse d&#039;une base de données &#039;&#039;&#039;MySQL&#039;&#039;&#039;)&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
sql&lt;br /&gt;
 |--&amp;gt;example.install.sql&lt;br /&gt;
 |--&amp;gt;example.uninstall.sql&lt;br /&gt;
 |--&amp;gt;updates&lt;br /&gt;
     |--&amp;gt;mysql&lt;br /&gt;
        |--&amp;gt;1.0.1.sql&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Des fichiers similaires doivent être créés pour les versions suivantes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
===Fichiers langue===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Dans Joomla! 1.5, les développeurs d&#039;extensions devaient placer les fichiers de langue dans le dossier général des langues de Joomla! à l&#039;aide des balises &amp;amp;lt;languages&amp;amp;gt;...&amp;amp;lt;/languages&amp;amp;gt; comme indiqué ci-dessous. &#039;&#039;&#039;Cette méthode peut toujours être utilisée avec la version&#039;&#039;&#039; {{JVer|3.x}}.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;!-- Joomla! language tag --&amp;gt;&lt;br /&gt;
&amp;lt;languages folder=&amp;quot;langfiles&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;en-GB.com_example.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Depuis Joomla! 1.6, il vous est conseillé de placer les fichiers langue de votre extension dans le dossier même de votre extension. Joomla! chargera alors automatiquement les fichiers de langue depuis votre extension.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
En plaçant les fichiers de langue dans le dossier de l&#039;extension, vous permettez ainsi de les isoler et donc de les protéger. Par exemple, dans le cas ou un administrateur supprimerait une langue de son installation Joomlaǃ. Dans ce cas, les fichiers de langue de l&#039;extension ne seront pas supprimés. Ils resteront alors en place et ne seront accessibles que si la langue est installée à nouveau.&lt;br /&gt;
&lt;br /&gt;
La structure du dossier de langue pour le frontend et le backend est identique. Il convient de les placer dans la balise &amp;lt;code&amp;gt;&amp;amp;lt;languages&amp;amp;gt;&amp;lt;/code&amp;gt; (par exemple &#039;&#039;&#039;en-GB&#039;&#039;&#039;) pour chaque langue et dans le dossier comme suit&amp;amp;nbsp;: &#039;&#039;&#039;language/en-GB/&#039;&#039;&#039;. Vous devez aussi spécifier ces dossiers pour le frontend et le backend.&lt;br /&gt;
&lt;br /&gt;
Dans votre manifest, il suffit simplement d&#039;inclure votre dossier &amp;lt;tt&amp;gt;&amp;lt;language&amp;gt;&amp;lt;/tt&amp;gt; dans la section fichiers. Les sous-répertoires pour chaque langue seront alors automatiquement copiés. À l&#039;intérieur des groupes &amp;lt;code&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/code&amp;gt;, il vous suffit d&#039;ajouter une balise &amp;lt;code&amp;gt;&amp;lt;folder&amp;gt;&amp;lt;/code&amp;gt; à côté des éléments dans le groupe &amp;lt;tt&amp;gt;&amp;lt;files&amp;gt;&amp;lt;/tt&amp;gt;, comme indiqué dans cet exemple&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;alpha&amp;quot;&amp;gt;alpha.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;sql&amp;lt;/folder&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notez que les deux techniques peuvent fonctionner ensemble. Voici un exemple du noyau&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;files&amp;gt;&lt;br /&gt;
	&amp;lt;filename plugin=&amp;quot;languagecode&amp;quot;&amp;gt;languagecode.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;filename&amp;gt;index.html&amp;lt;/filename&amp;gt;&lt;br /&gt;
	&amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
&amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;languages&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
	&amp;lt;language tag=&amp;quot;en-GB&amp;quot;&amp;gt;language/en-GB/en-GB.plg_system_languagecode.sys.ini&amp;lt;/language&amp;gt;&lt;br /&gt;
&amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les avantages pour cette solution sont les suivants :&lt;br /&gt;
&lt;br /&gt;
Tous les fichiers &#039;&#039;.ini&#039;&#039; présents dans le dossier du noyau ont la priorité sur les fichiers dans les dossiers langue des extensions.&lt;br /&gt;
Par exemple, s&#039;il existe, un fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; d&#039;un dossier du noyau sera toujours chargé dans le backend, sauf lors de l&#039;installation d&#039;une extension qui contient son propre fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans un dossier de langue. Dans ce cas et uniquement ce cas, le fichier &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; dans le dossier de l&#039;extension affichera son contenu traduit au moment de l&#039;installation. C&#039;est très pratique car un développeur peut avoir deux fichiers &amp;lt;tt&amp;gt;sys.ini&amp;lt;/tt&amp;gt; avec un contenu différent.&lt;br /&gt;
&lt;br /&gt;
Il est également beaucoup plus facile pour un utilisateur ayant besoin de trouver le fichier &amp;lt;tt&amp;gt;.ini&amp;lt;/tt&amp;gt; d&#039;une extension qui n&#039;est pas disponible dans sa langue de l&#039;ajouter dans le dossier principal. Il n&#039;y a aucun risque qu&#039;il ne soit supprimé en cas de désinstallation par erreur de l&#039;extension.&lt;br /&gt;
&lt;br /&gt;
Veuillez consulter également :&lt;br /&gt;
*[[S:MyLanguage/J2.5:Making non-core language packs|Créer un pack langue hors du noyau]]&lt;br /&gt;
*[[S:MyLanguage/Creating language packs for extensions in Joomla 2.5|Créer un pack langue pour une extension Joomla! 2.5]]&lt;br /&gt;
&lt;br /&gt;
Au cours du développement, vous pouvez activer le système de débogage de langue dans la configuration globale de Joomlaǃ. Vous pourrez découvrir si un problème est levé. Depuis {{JVer|3.2}}, cela est nécessaire afin d&#039;aider à déboguer le en-GB qui est &#039;&#039;&#039;toujours&#039;&#039;&#039; chargé en premier lorsque l&#039;on est pas en mode de débogage et ainsi empêcher l&#039;affichage des constantes.&lt;br /&gt;
&lt;br /&gt;
===Fichier de script===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;scriptfile&amp;gt;example.script.php&amp;lt;/scriptfile&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Un &#039;&#039;&#039;fichier de script&#039;&#039;&#039; (code PHP qui est exécuté avant, pendant et/ou après l&#039;installation, la désinstallation ou la mise à jour) peut, en option, être défini à l&#039;aide d&#039;une balise &amp;lt;code&amp;gt;&amp;lt;scriptfile&amp;gt;&amp;lt;/code&amp;gt;. Ce fichier doit contenir une classe nommée &#039;&amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;InstallerScript&#039;&#039;&amp;lt;/tt&amp;gt; où &amp;lt;tt&amp;gt;&amp;lt;element_name&amp;gt;&amp;lt;/tt&amp;gt; est le nom de votre extension (par exemple : com_nomducomposant, mod_nomdumodule, etc.). Pour les plugins, il convient de nommer également le groupe (par exemple : plgsystemnomduplugin). Les packages de bibliothèque ne prennent pas en charge les fichiers scripts. La structure de la classe sera comme suit :&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This file should contain a class named &amp;quot;&amp;lt;element_name&amp;gt;InstallerScript&amp;quot; where &amp;lt;element_name&amp;gt; is the name of your extension (e.g. com_componentname, mod_modulename, etc.). Plugins must state the group (e.g. plgsystempluginname).&lt;br /&gt;
&lt;br /&gt;
In {{JVer|4.0}} and later the structure of the class is as follows:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
&lt;br /&gt;
use Joomla\CMS\Installer\InstallerAdapter;&lt;br /&gt;
&lt;br /&gt;
class com_componentnameInstallerScript&lt;br /&gt;
{&lt;br /&gt;
	/**&lt;br /&gt;
	 * Constructor&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function __construct(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called before any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function preflight($route, InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called after any type of action&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   string  $route  Which action is happening (install|uninstall|discover_install|update)&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function postflight($route, $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on installation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function install(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on update&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 *&lt;br /&gt;
	 * @return  boolean  True on success&lt;br /&gt;
	 */&lt;br /&gt;
	public function update(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	/**&lt;br /&gt;
	 * Called on uninstallation&lt;br /&gt;
	 *&lt;br /&gt;
	 * @param   InstallerAdapter  $adapter  The object responsible for running this script&lt;br /&gt;
	 */&lt;br /&gt;
	public function uninstall(InstallerAdapter $adapter)&lt;br /&gt;
	{&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note that since Joomla 3.6 Joomla has shipped a basic script that you can use instead of shipping your own from scratch &#039;&#039;&#039;JInstallerScript&#039;&#039;&#039; which contains various helper methods commonly used through the community.&lt;br /&gt;
&lt;br /&gt;
=== Library Manifests === &lt;br /&gt;
{{notice|The section is based on {{JVer|4.0}} and later}}&lt;br /&gt;
&lt;br /&gt;
A simple library manifest might look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;extension type=&amp;quot;library&amp;quot; method=&amp;quot;upgrade&amp;quot; version=&amp;quot;4.0&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;My Test library.&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mytest&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;Classes&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;language&amp;lt;/folder&amp;gt;&lt;br /&gt;
        &amp;lt;filename&amp;gt;mytest.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
This will install the library into the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mytest&amp;lt;/tt&amp;gt; folder.&lt;br /&gt;
&lt;br /&gt;
What if your company has several libraries and you want to group them together under folder &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany&amp;lt;/tt&amp;gt;?&lt;br /&gt;
&lt;br /&gt;
Simple - include your company name in the &amp;lt;tt&amp;gt;libraryname&amp;lt;/tt&amp;gt; property of each library like this:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary1&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;libraryname&amp;gt;mycompany/mylibrary2&amp;lt;/libraryname&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
These libraries will then be installed in the &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary1&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;JPATH_SITE/libraries/mycompany/mylibrary2&amp;lt;/tt&amp;gt; folders.&lt;br /&gt;
&lt;br /&gt;
Uninstalling &amp;lt;tt&amp;gt;mylibrary1&amp;lt;/tt&amp;gt; will still leave &amp;lt;tt&amp;gt;mylibrary2&amp;lt;/tt&amp;gt; installed on your site.&lt;br /&gt;
&lt;br /&gt;
When using &amp;lt;tt&amp;gt;script files&amp;lt;/tt&amp;gt; with such company libraries the installer class name should look like this:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary1InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class mycompanymylibrary2InstallerScript&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
=== Serveurs de mise à jour ===&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;updateservers&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;extension&amp;quot; priority=&amp;quot;1&amp;quot; name=&amp;quot;Extension Update Site&amp;quot;&amp;gt;http://example.com/extension.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
        &amp;lt;server type=&amp;quot;collection&amp;quot; priority=&amp;quot;2&amp;quot; name=&amp;quot;Collection Update Site&amp;quot;&amp;gt;http://example.com/collection.xml&amp;lt;/server&amp;gt;&lt;br /&gt;
    &amp;lt;/updateservers&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Les serveurs de mise à jour peuvent être définis dans les balises &amp;lt;code&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/code&amp;gt; comme enfant de la racine. Cet élément peut contenir une ou plusieurs balises &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; chacune avec la description depuis laquelle chercher les mises à jour. Chaque rubrique &amp;lt;code&amp;gt;&amp;lt;server&amp;gt;&amp;lt;/code&amp;gt; permet de définir les attributs suivants :&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
! style=&amp;quot;width: 150px&amp;quot; | Attribut || style=&amp;quot;width: 150px&amp;quot; | Valeurs || Description&lt;br /&gt;
|-&lt;br /&gt;
| type || &amp;lt;code&amp;gt;extension&amp;lt;/code&amp;gt;&amp;lt;br /&amp;gt;&amp;lt;code&amp;gt;collection&amp;lt;/code&amp;gt; || Le type de serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| priority || &#039;&#039;integer&#039;&#039; || La priorité du serveur de mise à jour.&lt;br /&gt;
|-&lt;br /&gt;
| name || &#039;&#039;string&#039;&#039; || Le nom du serveur de mise à jour.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Pour plus d&#039;informations :&lt;br /&gt;
* [[S:MyLanguage/J2.5:Developing a MVC Component/Adding an update server|Création d&#039;une extension Joomla! - Ajout d&#039;un serveur de mise à jour]]&lt;br /&gt;
* [[S:MyLanguage/J2.5:Managing Component Updates|Gestion des mises à jour de composants pour Joomla! 2.5]]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Supporting Download Keys ===&lt;br /&gt;
&lt;br /&gt;
As of Joomla 4.0.0 users can enter their download keys in the Update Sites list. This gives them a single place to manage the download keys. When a user is going to update an extension, Joomla will check if there is a download key. If there is a download key, Joomla will add the download key to the update URL.&lt;br /&gt;
&lt;br /&gt;
To support download keys you must include the &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag in the manifest file. The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag takes 2 arguments:&lt;br /&gt;
* prefix&lt;br /&gt;
* suffix&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;dlid&amp;lt;/tt&amp;gt; tag will look like this in your manifest file:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;dlid prefix=&amp;quot;dlid=&amp;quot; suffix=&amp;quot;&amp;amp;amp;dummy=my.zip&amp;quot;/&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The prefix will be added before the download key and the suffix after the download key. Using the example above the full query added to the download link will be:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
dlid=KEY&amp;amp;amp;dummy=my.zip&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The key is added before the &amp;lt;tt&amp;gt;onInstallerBeforePackageDownload&amp;lt;/tt&amp;gt; event is triggered, so the full URL will be passed to the event.&lt;br /&gt;
&lt;br /&gt;
===Exemples=== &lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
== Exemples ==&lt;br /&gt;
Pour un exemple concret, veuillez consulter [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/components/com_banners/banners.xml le manifest pour le composant bannière de la version Joomla! 3.6.4].&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
D&#039;autres exemples peuvent être trouvés dans le répertoire autonome des liens web&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/administrator/components/com_weblinks/weblinks.xml manifest com_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/modules/mod_weblinks/mod_weblinks.xml manifest mod_weblinks]&lt;br /&gt;
* [https://github.com/joomla-extensions/weblinks/blob/master/src/plugins/search/weblinks/weblinks.xml manifest plg_search_weblinks]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/templates/protostar/templateDetails.xml manifest tpl_protostar (3.6.4)]&lt;br /&gt;
* [https://github.com/joomla/joomla-cms/blob/3.6.4/administrator/language/en-GB/en-GB.xml manifest en-GB (3.6.4)]&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Specifications{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/88/fr&amp;diff=962030</id>
		<title>Translations:Manifest files/88/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:Manifest_files/88/fr&amp;diff=962030"/>
		<updated>2022-09-01T12:10:52Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Le fichier doit être nommé &amp;lt;tt&amp;gt;manifest.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5 et 3) ou &amp;lt;tt&amp;gt;&amp;lt;extension_name&amp;gt;.xml&amp;lt;/tt&amp;gt; (pour les versions de Joomlaǃ 2.5, 3 et 4) et situé dans le répertoire racine du package d&#039;installation.&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Selecting_data_using_JDatabase/fr&amp;diff=885685</id>
		<title>J4.x:Selecting data using JDatabase/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Selecting_data_using_JDatabase/fr&amp;diff=885685"/>
		<updated>2022-02-25T12:56:44Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;{{Joomla version|version=4.x}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
{{tip|Note many examples online do not use the prepared statements methods that have been introduced with Joomla 4.x, please do not use these old APIs for new projects, because they result in massive security issues if user input is not strictly escaped.|title=Note de version}}&lt;br /&gt;
&lt;br /&gt;
Ce didacticiel est divisé en deux parties indépendantes :&lt;br /&gt;
* L&#039;insertion, la mise à jour et la suppression de données de la base de données.&lt;br /&gt;
* La sélection des données à partir d&#039;une ou plusieurs tables et la récupération sous différentes formes.&lt;br /&gt;
&lt;br /&gt;
This section of the documentation looks at selecting data from a database table and retrieving it in a variety of formats. To see the other part [[S:MyLanguage/J4.x:Inserting_Updating_and_Removing_data_using_JDatabase|click here]]&lt;br /&gt;
&lt;br /&gt;
==Introduction==&lt;br /&gt;
Joomla! propose un système sophistiqué de couche d&#039;abstraction de base de données pour en simplifier l&#039;utilisation par les développeurs d&#039;extensions tierces. Les nouvelles versions de la Plateforme d&#039;API Joomla! proposent des fonctionnalités supplémentaires qui permettent d&#039;étendre encore plus la couche de base de données et inclues des fonctionnalités telles que des connecteurs pour une plus grande variété de serveurs de base de données ou encore le chaînage de requêtes pour améliorer la lisibilité des codes de connexion et pour simplifier le codage SQL.&lt;br /&gt;
&lt;br /&gt;
Joomla permet l&#039;utilisation de différents types de systèmes de base de données d&#039;exécution SQL et peut être utilisé sur une grande variété d&#039;environnements différents avec différents préfixes de table. En plus de ces fonctionnalités, la classe crée automatiquement la connexion à la base de données. Il suffit de deux lignes de code pour l&#039;instanciation de l&#039;objet dont vous avez et obtenir un résultat à partir de la base de données dans différents formats. Grace à la couche de base de données, Joomla assure un maximum de compatibilité et de flexibilité pour vos extensions.&lt;br /&gt;
&lt;br /&gt;
==La requête==&lt;br /&gt;
Since Joomla introduced support for a variety of database types in Joomla 1.6 - the recommended way of building database queries is through &amp;quot;query chaining&amp;quot; (although string queries will always be supported).&lt;br /&gt;
&lt;br /&gt;
Le chaînage de requêtes fait référence à une méthode permettant la connexion à un certain nombre de méthodes, les unes après les autres où chaque méthode retournant un objet peut prendre en charge la nouvelle méthode, améliorant ainsi la lisibilité et la simplification du code.&lt;br /&gt;
&lt;br /&gt;
Pour obtenir une nouvelle instance de la classe \Joomla\Database\DatabaseQuery, nous utilisons la méthode \Joomla\Database\DatabaseDriver getQuery&amp;amp;nbsp;:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
&lt;br /&gt;
$db = Factory::getDbo();&lt;br /&gt;
&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;tt&amp;gt;JDatabaseDriver::getQuery&amp;lt;/tt&amp;gt; peut prendre un argument optionnel, &amp;lt;tt&amp;gt;$new&amp;lt;/tt&amp;gt;, ce qui peut être &#039;&#039;true&#039;&#039; (vrai) ou &#039;&#039;false&#039;&#039; (faux) (la valeur par défaut est &#039;&#039;false&#039;&#039;).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Pour interroger notre source de données, nous pouvons faire appel à un certain nombre de méthodes &amp;lt;tt&amp;gt;JDatabaseQuery&amp;lt;/tt&amp;gt;. Ces méthodes vont encapsuler la requête des données sources (SQL) en cachant la syntaxe spécifique de la requête du développeur et augmenter ainsi la portabilité du code source du développeur.&lt;br /&gt;
&amp;lt;/div&amp;gt; &lt;br /&gt;
&lt;br /&gt;
Les méthodes les plus fréquemment utilisées comprennent : &amp;lt;tt&amp;gt;select, from, join, where et order&amp;lt;/tt&amp;gt;. Il existe également d&#039;autres méthodes telles que &amp;lt;tt&amp;gt;insert, update et delete&amp;lt;/tt&amp;gt; pour modifier des enregistrements dans la base de données. En chaînant ces méthodes d&#039;appel à d&#039;autres, vous pouvez créer presque n&#039;importe quelle requête à votre base de données sans compromettre la portabilité de votre code..&lt;br /&gt;
&lt;br /&gt;
==Sélectionner des enregistrements dans une table unique==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
Ci-dessous un exemple de création d&#039;une requête de base de données utilisant la classe &amp;lt;tt&amp;gt;JDatabaseQuery&amp;lt;/tt&amp;gt;. À l&#039;aide des méthodes &#039;&#039;select&#039;&#039;, &#039;&#039;from&#039;&#039;, &#039;&#039;where&#039;&#039; et &#039;&#039;order&#039;&#039;, il est possible de créer des requêtes flexibles et lisibles :&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
&lt;br /&gt;
// Get a db connection.&lt;br /&gt;
$db = Factory::getDbo();&lt;br /&gt;
&lt;br /&gt;
// Create a new query object.&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// Select all records from the user profile table where key begins with &amp;quot;custom.&amp;quot;.&lt;br /&gt;
// Order it by the ordering field.&lt;br /&gt;
$query-&amp;gt;select($db-&amp;gt;quoteName([&#039;user_id&#039;, &#039;profile_key&#039;, &#039;profile_value&#039;, &#039;ordering&#039;]));&lt;br /&gt;
$query-&amp;gt;from($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;));&lt;br /&gt;
$query-&amp;gt;where($db-&amp;gt;quoteName(&#039;profile_key&#039;) . &#039; LIKE :profile_key&#039;);&lt;br /&gt;
$query-&amp;gt;order($db-&amp;gt;quoteName(&#039;ordering&#039;) . &#039; ASC&#039;);&lt;br /&gt;
&lt;br /&gt;
// bind value for prepared statements&lt;br /&gt;
$query-&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.%&#039;);&lt;br /&gt;
&lt;br /&gt;
// Reset the query using our newly populated query object.&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
// Load the results as a list of stdClass objects (see later for more options on retrieving data).&lt;br /&gt;
$results = $db-&amp;gt;loadObjectList();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
La requête peut également être chaînée pour la simplifier davantage :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName([&#039;user_id&#039;, &#039;profile_key&#039;, &#039;profile_value&#039;, &#039;ordering&#039;]))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;))&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;profile_key&#039;) . &#039; LIKE :profile_key&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;ordering&#039;) . &#039; ASC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:profile_key&#039;, &#039;custom.%&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Le chaînage peut être utile lorsque les requêtes deviennent plus longs et plus complexes.&lt;br /&gt;
&lt;br /&gt;
Le groupement peut également être réalisé simplement. La requête suivante compterait le nombre d&#039;articles dans chaque catégorie.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select( [&#039;catid&#039;, &#039;COUNT(*)&#039;] )&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;))&lt;br /&gt;
    -&amp;gt;group($db-&amp;gt;quoteName(&#039;catid&#039;));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Une limite pour une requête peut être définie avec &amp;lt;tt&amp;gt;setLimit&amp;lt;/tt&amp;gt;. Par exemple, dans la requête suivante, jusqu&#039;à 10 enregistrements seront retournés.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName([&#039;user_id&#039;, &#039;profile_key&#039;, &#039;profile_value&#039;, &#039;ordering&#039;]))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__user_profiles&#039;))&lt;br /&gt;
    -&amp;gt;setLimit(&#039;10&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Sélectionner des enregistrements dans plusieurs tables==&lt;br /&gt;
Using the \Joomla\Database\DatabaseQuery&#039;s [https://api.joomla.org/framework-1/classes/Joomla.Database.DatabaseQuery.html#join join] methods, we can select records from multiple related tables. The generic &amp;quot;join&amp;quot; method takes two arguments; the join &amp;quot;type&amp;quot; (inner, outer, left, right) and the join condition. In the following example you will notice that we can use all of the keywords we would normally use if we were writing a native SQL query, including the AS keyword for aliasing tables and the ON keyword for creating relationships between tables. Also note that the table alias is used in all methods which reference table columns (I.e. select, where, order).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
&lt;br /&gt;
// Get a db connection.&lt;br /&gt;
$db = Factory::getDbo();&lt;br /&gt;
&lt;br /&gt;
// Create a new query object.&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
// Select all articles for users who have a username which starts with &#039;a&#039;.&lt;br /&gt;
// Order it by the created date.&lt;br /&gt;
// Note by putting &#039;a&#039; as a second parameter will generate `#__content` AS `a`&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select([&#039;a.*&#039;, &#039;b.username&#039;, &#039;b.name&#039;])&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;, &#039;a&#039;))&lt;br /&gt;
    -&amp;gt;join(&#039;INNER&#039;, $db-&amp;gt;quoteName(&#039;#__users&#039;, &#039;b&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;a.created_by&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;b.username&#039;) . &#039; LIKE :username&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:username&#039;, &#039;a%&#039;);&lt;br /&gt;
&lt;br /&gt;
// Reset the query using our newly populated query object.&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
// Load the results as a list of stdClass objects (see later for more options on retrieving data).&lt;br /&gt;
$results = $db-&amp;gt;loadObjectList();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The join method above enables us to query both the content and user tables, retrieving articles with their author details. There are also convenience methods for joins:&lt;br /&gt;
* [https://api.joomla.org/framework-1/classes/Joomla.Database.DatabaseQuery.html#method_innerJoin innerJoin()]&lt;br /&gt;
* [https://api.joomla.org/framework-1/classes/Joomla.Database.DatabaseQuery.html#method_leftJoin leftJoin()]&lt;br /&gt;
* [https://api.joomla.org/framework-1/classes/Joomla.Database.DatabaseQuery.html#method_rightJoin rightJoin()] &lt;br /&gt;
* [https://api.joomla.org/framework-1/classes/Joomla.Database.DatabaseQuery.html#method_outerJoin outerJoin()]&lt;br /&gt;
&lt;br /&gt;
Nous pouvons utiliser plusieurs jonctions pour opérer une requête pour plus de deux tables :&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select(array(&#039;a.*&#039;, &#039;b.username&#039;, &#039;b.name&#039;, &#039;c.*&#039;, &#039;d.*&#039;))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;, &#039;a&#039;))&lt;br /&gt;
    -&amp;gt;join(&#039;INNER&#039;, $db-&amp;gt;quoteName(&#039;#__users&#039;, &#039;b&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;a.created_by&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;join(&#039;LEFT&#039;, $db-&amp;gt;quoteName(&#039;#__user_profiles&#039;, &#039;c&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;c.user_id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;join(&#039;RIGHT&#039;, $db-&amp;gt;quoteName(&#039;#__categories&#039;, &#039;d&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;a.catid&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;d.id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;b.username&#039;) . &#039; LIKE :username&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:username&#039;, &#039;a%&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Remarquez comment le chaînage rend le code source plus lisible pour ces longues requêtes.&lt;br /&gt;
&lt;br /&gt;
In some cases, you will also need to use the AS clause when selecting items to avoid column name conflicts. In this case, multiple select statements can be chained in conjunction with using the second parameter of $db-&amp;gt;quoteName.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select(&#039;a.*&#039;)&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName(&#039;b.username&#039;, &#039;username&#039;))&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName(&#039;b.name&#039;, &#039;name&#039;))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;, &#039;a&#039;))&lt;br /&gt;
    -&amp;gt;join(&#039;INNER&#039;, $db-&amp;gt;quoteName(&#039;#__users&#039;, &#039;b&#039;), $db-&amp;gt;quoteName(&#039;a.created_by&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;))&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;b.username&#039;) . &#039; LIKE :username&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:username&#039;, &#039;a%&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
A second array can also be used as the second parameter of the select statement to populate the values of the AS clause. Remember to include nulls in the second array to correspond to columns in the first array that you don&#039;t want to use the AS clause for:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query&lt;br /&gt;
    -&amp;gt;select([&#039;a.*&#039;])&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName(array(&#039;b.username&#039;, &#039;b.name&#039;), [&#039;username&#039;, &#039;name&#039;]))&lt;br /&gt;
    -&amp;gt;from($db-&amp;gt;quoteName(&#039;#__content&#039;, &#039;a&#039;))&lt;br /&gt;
    -&amp;gt;join(&#039;INNER&#039;, $db-&amp;gt;quoteName(&#039;#__users&#039;, &#039;b&#039;) . &#039; ON (&#039; . $db-&amp;gt;quoteName(&#039;a.created_by&#039;) . &#039; = &#039; . $db-&amp;gt;quoteName(&#039;b.id&#039;) . &#039;)&#039;)&lt;br /&gt;
    -&amp;gt;where($db-&amp;gt;quoteName(&#039;b.username&#039;) . &#039; LIKE :username&#039;)&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;)&lt;br /&gt;
    -&amp;gt;bind(&#039;:username&#039;, &#039;a%&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Using prepared statements== &lt;br /&gt;
With Joomla! 4.0 we have [[J4.x:Moving_Joomla_To_Prepared_Statements|moved all queries to use prepared statements]]. For easier use of prepared statements we introduced some helper functions and allow to use arrays in several function calls.&lt;br /&gt;
Simple query with prepared statements.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;))&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;username&#039;) . &#039; = :username&#039;)&lt;br /&gt;
	-&amp;gt;bind(&#039;:username&#039;, $credentials[&#039;username&#039;]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
You see that we don&#039;t add the &#039;&#039;&#039;$credentials[&#039;username&#039;]&#039;&#039;&#039; directly to the query, instead we add the placeholder &#039;&#039;&#039;:username&#039;&#039;&#039; into the query and &#039;&#039;&#039;bind&#039;&#039;&#039; the variable to the query. When we bind a variable to a query we don&#039;t need to escape nor to quote it.&lt;br /&gt;
Beware that binding a variable will always be a reference. A nice side effect of this, is that you can manipulate the query in a loop.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
$listOfUsernames = [ &#039;admin&#039;, &#039;user1&#039; ];&lt;br /&gt;
&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;))&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;username&#039;) . &#039; = :username&#039;)&lt;br /&gt;
	-&amp;gt;bind(&#039;:username&#039;, $username);&lt;br /&gt;
&lt;br /&gt;
foreach($listOfUsernames as $name)&lt;br /&gt;
{&lt;br /&gt;
  $username = $name;&lt;br /&gt;
  $this-&amp;gt;db-&amp;gt;setQuery($query);&lt;br /&gt;
  $user = $this-&amp;gt;db-&amp;gt;loadObject();&lt;br /&gt;
  print_r($user);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
In the loop we set the previously bound $username variable with the $name variable from the loop, then we have to set the query again (because Joomla reset the database driver after query execution which is only true for load* functions).&lt;br /&gt;
The result of this will be multiple queries with different username values.&lt;br /&gt;
We can use arrays to add multiple variables at once.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;))&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;username&#039;) . &#039; = :username&#039;)&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;id&#039;) . &#039; = :id&#039;)&lt;br /&gt;
	-&amp;gt;bind([&#039;:username&#039;, &#039;:id&#039;], [$credentials[&#039;username&#039;], 42], [Joomla\Database\ParameterType::STRING, Joomla\Database\ParameterType::INTEGER]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
We add &#039;&#039;&#039;username&#039;&#039;&#039; and &#039;&#039;&#039;id&#039;&#039;&#039; as bind parameter and set the correct ParameterType for each variable.&lt;br /&gt;
It&#039;s also possible to use one variable for all bind values and ParameterTypes.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;))&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;username&#039;) . &#039; = :username&#039;)&lt;br /&gt;
	-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;password&#039;) . &#039; = :password&#039;)&lt;br /&gt;
	-&amp;gt;bind([&#039;:username&#039;, &#039;:password], $credentials[&#039;username&#039;]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
The parameter :username and :password get set to the same value and the default ParameterType.&lt;br /&gt;
The function &#039;&#039;&#039;whereIn()&#039;&#039;&#039; and &#039;&#039;&#039;whereNotIn()&#039;&#039;&#039; always use prepared statements, internal these functions uses the &#039;&#039;&#039;bindArray&#039;&#039;&#039; function. It can be used to bind an array of variables without specifying the placeholder.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$userids = [1,2,3,4];&lt;br /&gt;
&lt;br /&gt;
$query = $this-&amp;gt;db-&amp;gt;getQuery(true)&lt;br /&gt;
	-&amp;gt;select($this-&amp;gt;db-&amp;gt;quoteName(array(&#039;id&#039;, &#039;password&#039;)))&lt;br /&gt;
	-&amp;gt;from($this-&amp;gt;db-&amp;gt;quoteName(&#039;#__users&#039;));&lt;br /&gt;
&lt;br /&gt;
$parameterNames = $query-&amp;gt;bindArray($userids);&lt;br /&gt;
&lt;br /&gt;
$query-&amp;gt;where($this-&amp;gt;db-&amp;gt;quoteName(&#039;id&#039;) . &#039; IN (&#039; . implode(&#039;,&#039;, $parameterNames) . &#039;)&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &#039;&#039;&#039;bindArray&#039;&#039;&#039; function returns an array of placeholders. The index is unique for the whole query.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$placeholders = [&lt;br /&gt;
  &#039;:preparedArray1&#039;,&lt;br /&gt;
  &#039;:preparedArray2&#039;,&lt;br /&gt;
  &#039;:preparedArray3&#039;,&lt;br /&gt;
  &#039;:preparedArray4&#039;&lt;br /&gt;
];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Résultats de la requête==&lt;br /&gt;
La classe &amp;lt;tt&amp;gt;database&amp;lt;/tt&amp;gt; proposent différentes méthodes pour pouvoir travailler avec un ensemble de résultats d&#039;une requête.&lt;br /&gt;
&lt;br /&gt;
=== Valeur unique de résultat ===&lt;br /&gt;
==== loadResult() ====&lt;br /&gt;
Use &#039;&#039;&#039;loadResult()&#039;&#039;&#039; when you expect just a single value back from your database query. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! id !! name !! email !! username&lt;br /&gt;
|- &lt;br /&gt;
| 1 || style=&amp;quot;background:yellow&amp;quot; | John Smith || johnsmith@domain.example || johnsmith&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Magda Hellman || magda_h@domain.example || magdah&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Yvonne de Gaulle || ydg@domain.example || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
This is often the result of a &#039;count&#039; query to get a number of records:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
$db = Factory::getDbo();&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
$query-&amp;gt;select(&#039;COUNT(*)&#039;);&lt;br /&gt;
$query-&amp;gt;from($db-&amp;gt;quoteName(&#039;#__my_table&#039;));&lt;br /&gt;
$query-&amp;gt;where($db-&amp;gt;quoteName(&#039;name&#039;).&amp;quot; = :value&amp;quot;);&lt;br /&gt;
$query-&amp;gt;bind(&#039;value&#039;, $value)&lt;br /&gt;
&lt;br /&gt;
// Reset the query using our newly populated query object.&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$count = $db-&amp;gt;loadResult();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
or where you are just looking for a single field from a single row of the table (or possibly a single field from the first row returned).&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
$db = Factory::getDbo();&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
$query-&amp;gt;select(&#039;field_name&#039;);&lt;br /&gt;
$query-&amp;gt;from($db-&amp;gt;quoteName(&#039;#__my_table&#039;));&lt;br /&gt;
$query-&amp;gt;where($db-&amp;gt;quoteName(&#039;some_name&#039;).&amp;quot; = :value&amp;quot;);&lt;br /&gt;
$query-&amp;gt;bind(&#039;:value&#039;, $some_value);&lt;br /&gt;
&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$result = $db-&amp;gt;loadResult();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Single Row Results ===&lt;br /&gt;
Each of these results functions will return a single record from the database even though there may be several records that meet the criteria that you have set. To get more records you need to call the function again.&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! id !! name !! email !! username&lt;br /&gt;
|- style=&amp;quot;background:yellow&amp;quot;&lt;br /&gt;
| 1 || John Smith || johnsmith@domain.example || johnsmith&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Magda Hellman || magda_h@domain.example || magdah&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Yvonne de Gaulle || ydg@domain.example || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== loadRow() ====&lt;br /&gt;
&amp;lt;tt&amp;gt;loadRow()&amp;lt;/tt&amp;gt; returns an indexed array from a single record in the table: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadRow();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
will give:&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [0] =&amp;gt; 1, [1] =&amp;gt; John Smith, [2] =&amp;gt; johnsmith@domain.example, [3] =&amp;gt; johnsmith ) &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can access the individual values by using:&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
# The array indices are numeric starting from zero.&lt;br /&gt;
# Whilst you can repeat the call to get further rows, one of the functions that returns multiple rows might be more useful.&lt;br /&gt;
&lt;br /&gt;
==== loadAssoc() ====&lt;br /&gt;
&amp;lt;tt&amp;gt;loadAssoc()&amp;lt;/tt&amp;gt; returns an associated array from a single record in the table:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadAssoc();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will give:&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith, [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can access the individual values by using:&amp;lt;pre&amp;gt;$row[&#039;name&#039;] // e.g. $row[&#039;email&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
# Whilst you can repeat the call to get further rows, one of the functions that returns multiple rows might be more useful.&lt;br /&gt;
&lt;br /&gt;
==== loadObject() ====&lt;br /&gt;
loadObject returns a PHP object from a single record in the table:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$result = $db-&amp;gt;loadObject();&lt;br /&gt;
print_r($result);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will give:&lt;br /&gt;
&amp;lt;pre&amp;gt;stdClass Object ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith, [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can access the individual values by using:&amp;lt;pre&amp;gt;$result-&amp;gt;index // e.g. $result-&amp;gt;email&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
# Whilst you can repeat the call to get further rows, one of the functions that returns multiple rows might be more useful.&lt;br /&gt;
&lt;br /&gt;
===Single Column Results ===&lt;br /&gt;
Each of these results functions will return a single column from the database. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! id !! name !! email !! username&lt;br /&gt;
|- &lt;br /&gt;
| 1 || style=&amp;quot;background:yellow&amp;quot; | John Smith || johnsmith@domain.example || johnsmith&lt;br /&gt;
|-&lt;br /&gt;
| 2 || style=&amp;quot;background:yellow&amp;quot; | Magda Hellman || magda_h@domain.example || magdah&lt;br /&gt;
|-&lt;br /&gt;
| 3 || style=&amp;quot;background:yellow&amp;quot; | Yvonne de Gaulle || ydg@domain.example || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== loadColumn() ====&lt;br /&gt;
&amp;lt;tt&amp;gt;loadColumn()&amp;lt;/tt&amp;gt; returns an indexed array from a single column in the table:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
$query-&amp;gt;select(&#039;name&#039;));&lt;br /&gt;
      -&amp;gt;from . . .&amp;quot;;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$column= $db-&amp;gt;loadColumn();&lt;br /&gt;
print_r($column);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will give:&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [0] =&amp;gt; John Smith, [1] =&amp;gt; Magda Hellman, [2] =&amp;gt; Yvonne de Gaulle )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can access the individual values by using:&amp;lt;pre&amp;gt;$column[&#039;index&#039;] // e.g. $column[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
# The array indices are numeric starting from zero.&lt;br /&gt;
# &amp;lt;tt&amp;gt;loadColumn()&amp;lt;/tt&amp;gt; is equivalent to loadColumn(0).&lt;br /&gt;
&lt;br /&gt;
==== loadColumn($index) ====&lt;br /&gt;
loadColumn($index) returns an indexed array from a single column in the table:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
$query-&amp;gt;select(array(&#039;name&#039;, &#039;email&#039;, &#039;username&#039;));&lt;br /&gt;
      -&amp;gt;from . . .&amp;quot;;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$column= $db-&amp;gt;loadColumn(1);&lt;br /&gt;
print_r($column);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will give:&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [0] =&amp;gt; johnsmith@domain.example, [1] =&amp;gt; magda_h@domain.example, [2] =&amp;gt; ydg@domain.example )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can access the individual values by using:&amp;lt;pre&amp;gt;$column[&#039;index&#039;] // e.g. $column[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
loadColumn($index) allows you to iterate through a series of columns in the results&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
for ( $i = 0; $i &amp;lt;= 2; $i++ ) {&lt;br /&gt;
  $column = $db-&amp;gt;loadColumn($i);&lt;br /&gt;
  print_r($column);&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will give:&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( [0] =&amp;gt; John Smith, [1] =&amp;gt; Magda Hellman, [2] =&amp;gt; Yvonne de Gaulle ),&lt;br /&gt;
Array ( [0] =&amp;gt; johnsmith@domain.example, [1] =&amp;gt; magda_h@domain.example, [2] =&amp;gt; ydg@domain.example ),&lt;br /&gt;
Array ( [0] =&amp;gt; johnsmith, [1] =&amp;gt; magdah, [2] =&amp;gt; ydegaulle )&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
# The array indices are numeric starting from zero.&lt;br /&gt;
&lt;br /&gt;
=== Multi-Row Results ===&lt;br /&gt;
Each of these results functions will return multiple records from the database. &lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;text-align:center&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! id !! name !! email !! username&lt;br /&gt;
|- style=&amp;quot;background:yellow&amp;quot;&lt;br /&gt;
| 1 || John Smith || johnsmith@domain.example || johnsmith&lt;br /&gt;
|- style=&amp;quot;background:yellow&amp;quot;&lt;br /&gt;
| 2 || Magda Hellman || magda_h@domain.example || magdah&lt;br /&gt;
|- style=&amp;quot;background:yellow&amp;quot;&lt;br /&gt;
| 3 || Yvonne de Gaulle || ydg@domain.example || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==== loadRowList() ====&lt;br /&gt;
&amp;lt;tt&amp;gt;loadRowList()&amp;lt;/tt&amp;gt; returns an indexed array of indexed arrays from the table records returned by the query:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadRowList();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will give (with line breaks added for clarity):&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( &lt;br /&gt;
[0] =&amp;gt; Array ( [0] =&amp;gt; 1, [1] =&amp;gt; John Smith, [2] =&amp;gt; johnsmith@domain.example, [3] =&amp;gt; johnsmith ), &lt;br /&gt;
[1] =&amp;gt; Array ( [0] =&amp;gt; 2, [1] =&amp;gt; Magda Hellman, [2] =&amp;gt; magda_h@domain.example, [3] =&amp;gt; magdah ), &lt;br /&gt;
[2] =&amp;gt; Array ( [0] =&amp;gt; 3, [1] =&amp;gt; Yvonne de Gaulle, [2] =&amp;gt; ydg@domain.example, [3] =&amp;gt; ydegaulle ) &lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can access the individual rows by using:&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;pre&amp;gt;$row[&#039;index&#039;][&#039;index&#039;] // e.g. $row[&#039;2&#039;][&#039;3&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Notes:&lt;br /&gt;
# The array indices are numeric starting from zero.&lt;br /&gt;
&lt;br /&gt;
==== loadAssocList() ====&lt;br /&gt;
&amp;lt;tt&amp;gt;loadAssocList()&amp;lt;/tt&amp;gt; returns an indexed array of associated arrays from the table records returned by the query:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadAssocList();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will give (with line breaks added for clarity):&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( &lt;br /&gt;
[0] =&amp;gt; Array ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith, [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith ), &lt;br /&gt;
[1] =&amp;gt; Array ( [id] =&amp;gt; 2, [name] =&amp;gt; Magda Hellman, [email] =&amp;gt; magda_h@domain.example, [username] =&amp;gt; magdah ), &lt;br /&gt;
[2] =&amp;gt; Array ( [id] =&amp;gt; 3, [name] =&amp;gt; Yvonne de Gaulle, [email] =&amp;gt; ydg@domain.example, [username] =&amp;gt; ydegaulle ) &lt;br /&gt;
) &amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can access the individual rows by using:&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;pre&amp;gt;$row[&#039;index&#039;][&#039;column_name&#039;] // e.g. $row[&#039;2&#039;][&#039;email&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== loadAssocList($key) ====&lt;br /&gt;
&amp;lt;tt&amp;gt;loadAssocList(&#039;key&#039;)&amp;lt;/tt&amp;gt; returns an associated array - indexed on &#039;key&#039; - of associated arrays from the table records returned by the query:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadAssocList(&#039;username&#039;);&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will give (with line breaks added for clarity):&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( &lt;br /&gt;
[johnsmith] =&amp;gt; Array ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith, [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith ), &lt;br /&gt;
[magdah] =&amp;gt; Array ( [id] =&amp;gt; 2, [name] =&amp;gt; Magda Hellman, [email] =&amp;gt; magda_h@domain.example, [username] =&amp;gt; magdah ), &lt;br /&gt;
[ydegaulle] =&amp;gt; Array ( [id] =&amp;gt; 3, [name] =&amp;gt; Yvonne de Gaulle, [email] =&amp;gt; ydg@domain.example, [username] =&amp;gt; ydegaulle ) &lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can access the individual rows by using:&amp;lt;pre&amp;gt;$row[&#039;key_value&#039;] // e.g. $row[&#039;johnsmith&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;pre&amp;gt;$row[&#039;key_value&#039;][&#039;column_name&#039;] // e.g. $row[&#039;johnsmith&#039;][&#039;email&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Key must be a valid column name from the table; it does not have to be an Index or a Primary Key. But if it does not have a unique value you may not be able to retrieve results reliably.&lt;br /&gt;
&lt;br /&gt;
==== loadAssocList($key, $column) ====&lt;br /&gt;
&amp;lt;tt&amp;gt;loadAssocList(&#039;key&#039;, &#039;column&#039;)&amp;lt;/tt&amp;gt; returns an associative array, indexed on &#039;key&#039;, of values from the column named &#039;column&#039; returned by the query:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadAssocList(&#039;id&#039;, &#039;username&#039;);&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will give (with line breaks added for clarity):&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( &lt;br /&gt;
[1] =&amp;gt; John Smith, &lt;br /&gt;
[2] =&amp;gt; Magda Hellman, &lt;br /&gt;
[3] =&amp;gt; Yvonne de Gaulle,&lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Key must be a valid column name from the table; it does not have to be an Index or a Primary Key. But if it does not have a unique value you may not be able to retrieve results reliably.&lt;br /&gt;
&lt;br /&gt;
==== loadObjectList() ====&lt;br /&gt;
&amp;lt;tt&amp;gt;loadObjectList()&amp;lt;/tt&amp;gt; returns an indexed array of PHP objects from the table records returned by the query:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadObjectList();&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will give (with line breaks added for clarity):&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( &lt;br /&gt;
[0] =&amp;gt; stdClass Object ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith, &lt;br /&gt;
    [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith ), &lt;br /&gt;
[1] =&amp;gt; stdClass Object ( [id] =&amp;gt; 2, [name] =&amp;gt; Magda Hellman, &lt;br /&gt;
    [email] =&amp;gt; magda_h@domain.example, [username] =&amp;gt; magdah ), &lt;br /&gt;
[2] =&amp;gt; stdClass Object ( [id] =&amp;gt; 3, [name] =&amp;gt; Yvonne de Gaulle, &lt;br /&gt;
    [email] =&amp;gt; ydg@domain.example, [username] =&amp;gt; ydegaulle ) &lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can access the individual rows by using:&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;pre&amp;gt;$row[&#039;index&#039;]-&amp;gt;name // e.g. $row[&#039;2&#039;]-&amp;gt;email&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== loadObjectList($key) ====&lt;br /&gt;
&amp;lt;tt&amp;gt;loadObjectList(&#039;key&#039;)&amp;lt;/tt&amp;gt; returns an associated array - indexed on &#039;key&#039; - of objects from the table records returned by the query:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$row = $db-&amp;gt;loadObjectList(&#039;username&#039;);&lt;br /&gt;
print_r($row);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will give (with line breaks added for clarity):&lt;br /&gt;
&amp;lt;pre&amp;gt;Array ( &lt;br /&gt;
[johnsmith] =&amp;gt; stdClass Object ( [id] =&amp;gt; 1, [name] =&amp;gt; John Smith, &lt;br /&gt;
    [email] =&amp;gt; johnsmith@domain.example, [username] =&amp;gt; johnsmith ), &lt;br /&gt;
[magdah] =&amp;gt; stdClass Object ( [id] =&amp;gt; 2, [name] =&amp;gt; Magda Hellman, &lt;br /&gt;
    [email] =&amp;gt; magda_h@domain.example, [username] =&amp;gt; magdah ), &lt;br /&gt;
[ydegaulle] =&amp;gt; stdClass Object ( [id] =&amp;gt; 3, [name] =&amp;gt; Yvonne de Gaulle, &lt;br /&gt;
    [email] =&amp;gt; ydg@domain.example, [username] =&amp;gt; ydegaulle ) &lt;br /&gt;
)&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can access the individual rows by using:&amp;lt;pre&amp;gt;$row[&#039;key_value&#039;] // e.g. $row[&#039;johnsmith&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;pre&amp;gt;$row[&#039;key_value&#039;]-&amp;gt;column_name // e.g. $row[&#039;johnsmith&#039;]-&amp;gt;email&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Note: Key must be a valid column name from the table; it does not have to be an Index or a Primary Key. But if it does not have a unique value you may not be able to retrieve results reliably.&lt;br /&gt;
&lt;br /&gt;
=== Miscellaneous Result Set Methods ===&lt;br /&gt;
==== getNumRows() ====&lt;br /&gt;
&amp;lt;tt&amp;gt;getNumRows()&amp;lt;/tt&amp;gt; will return the number of result rows found by the last SELECT or SHOW query and waiting to be read. To get a result from getNumRows() you have to run it &#039;&#039;&#039;after&#039;&#039;&#039; the query and &#039;&#039;&#039;before&#039;&#039;&#039; you have retrieved any results. To retrieve the number of rows affected by a INSERT, UPDATE, REPLACE or DELETE query, use getAffectedRows().&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
. . .&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
$db-&amp;gt;execute();&lt;br /&gt;
$num_rows = $db-&amp;gt;getNumRows();&lt;br /&gt;
print_r($num_rows);&lt;br /&gt;
$result = $db-&amp;gt;loadRowList();&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
will return &amp;lt;pre&amp;gt;3&amp;lt;/pre&amp;gt;&lt;br /&gt;
Note: getNumRows() is only valid for statements like SELECT or SHOW that return an actual result set. If you run getNumRows() after loadRowList() - or any other retrieval method - you will get a PHP Warning:&lt;br /&gt;
&amp;lt;pre&amp;gt;Warning: mysql_num_rows(): 80 is not a valid MySQL result resource &lt;br /&gt;
in libraries\joomla\database\database\mysql.php on line 344&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Voir également===&lt;br /&gt;
*[[S:MyLanguage/J4.x:Inserting, Updating and Removing data using JDatabase|Insertion, mise à Jour et suppression de données à l&#039;aide de JDatabase]]&lt;br /&gt;
*[[S:MyLanguage/J4.x:Moving_Joomla_To_Prepared_Statements|Moving Joomla To Prepared Statements]]&lt;br /&gt;
*[[S:MyLanguage/Using the union methods in database queries|Utiliser les méthodes UNION dans les requêtes de base de données]] (Joomla! 3.3+)&lt;br /&gt;
*[https://php.net/manual/en/pdo.prepared-statements.php The PHP Manual on Prepared statements]&lt;br /&gt;
*[https://api.joomla.org/framework-1/classes/Joomla.Database.DatabaseQuery.html &amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Joomla CMS 3.8 API&amp;lt;/span&amp;gt;] &lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Database{{#translation:}}]]&lt;br /&gt;
[[Category:JFactory{{#translation:}}]]&lt;br /&gt;
[[Category:Extension development{{#translation:}}]]&lt;br /&gt;
[[Category:Development Recommended Reading{{#translation:}}]]&lt;br /&gt;
[[Category:Tutorials{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Selecting_data_using_JDatabase/13/fr&amp;diff=885684</id>
		<title>Translations:J4.x:Selecting data using JDatabase/13/fr</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Selecting_data_using_JDatabase/13/fr&amp;diff=885684"/>
		<updated>2022-02-25T12:56:39Z</updated>

		<summary type="html">&lt;p&gt;Lorangerart: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Pour obtenir une nouvelle instance de la classe \Joomla\Database\DatabaseQuery, nous utilisons la méthode \Joomla\Database\DatabaseDriver getQuery&amp;amp;nbsp;:&lt;/div&gt;</summary>
		<author><name>Lorangerart</name></author>
	</entry>
</feed>