<?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=Hleithner</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=Hleithner"/>
	<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/Special:Contributions/Hleithner"/>
	<updated>2026-05-15T08:27:00Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_an_API_to_a_Joomla_Component/de&amp;diff=1023260</id>
		<title>J4.x:Adding an API to a Joomla Component/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Adding_an_API_to_a_Joomla_Component/de&amp;diff=1023260"/>
		<updated>2024-03-28T11:36:28Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &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.0}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Diese Seite soll dokumentieren, wie sich die in {{jver|4.0}} eingeführte Webservices-Schicht in bestehende Joomla-Komponenten integrieren können. Dies setzt voraus, dass die Standard-Joomla-MVC-Schicht verwendet wird.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039; Ein Beispiel der Webservices-Integration zur Erweiterung von Weblinks &#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Repository der Erweiterung: https://github.com/joomla-extensions/weblinks&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;Pull request:&amp;lt;/span&amp;gt; https://github.com/joomla-extensions/weblinks/pull/407&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;== Zweiter Schritt ==&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
The point of entry to your component from an API call is a plugin.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
The plugin re-routes the API call into the API code that services the request.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
In this example an API call to the weblinks component might be&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight&amp;gt;&lt;br /&gt;
(&amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;yourSite&amp;lt;/span&amp;gt;)/api/index.php/v1/weblinks&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
This means your installation file is best represented as a package, pkg_weblinks in this case, so that it can contain not only your original component, but also the required plugin.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. &amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Verzeichnis erstellen:&amp;lt;/span&amp;gt; &#039;&#039;&#039;&#039;&#039;plugins/webservices/weblinks&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Your plugin code goes in a subdirectory of the webservices directory under the plugins directory, in this example&lt;br /&gt;
&amp;lt;/div&amp;gt; &#039;&#039;&#039;&#039;&#039;plugins/webservices/weblinks&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
[[File:Struct2.png.png|500px|thumb|center|File system structure]]&lt;br /&gt;
&lt;br /&gt;
2. &amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;In der Datei &#039;&#039;&#039;&#039;&#039;weblinks.php&#039;&#039;&#039;&#039;&#039;, erstellen der Klasse:&amp;lt;/span&amp;gt; &#039;&#039;&#039;&#039;&#039;weblinks.php&#039;&#039;&#039;&#039;&#039;&amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;, create the class&amp;lt;/span&amp;gt;  &#039;&#039;&#039;&#039;&#039;PlgWebservicesWeblinks&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
use Joomla\CMS\Plugin\CMSPlugin;&lt;br /&gt;
use Joomla\CMS\Router\ApiRouter;&lt;br /&gt;
&lt;br /&gt;
class PlgWebservicesWeblinks extends CMSPlugin&lt;br /&gt;
{&lt;br /&gt;
    public function onBeforeApiRoute(&amp;amp;$router)&lt;br /&gt;
    {&lt;br /&gt;
        $router-&amp;gt;createCRUDRoutes(&#039;v1/weblinks&#039;, &#039;weblinks&#039;, [&#039;component&#039; =&amp;gt; &#039;com_weblinks&#039;]);&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;&lt;br /&gt;
In der Methode &#039;&#039;&#039;&#039;&#039;onBeforeApiRoute&#039;&#039;&#039;&#039;&#039;, alle Routen registrieren, die wir für den Webservice benötigen.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
When Joomla receives an API call it loads the API router which then collects a list of endpoints it should be aware of by running the &#039;&#039;onBeforeApiRoute&#039;&#039; method in all enabled plugin classes that contain it. Then it can locate the API component relevant to the API endpoint that has been called.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;The createCRUDRoutes method creates five routes; two GET routes for list and item data, and one POST, one PATCH, and one DELETE route. If you don&#039;t require this, simply create the routes directly here.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;== Erster Schritt ==&amp;lt;/span&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
The router specifies the path for the relevant API code.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
This API code is in a folder named &#039;&#039;api&#039;&#039; off the site root. It is exactly analogous to the &#039;&#039;administrator&#039;&#039; and &#039;&#039;site&#039;&#039; sections.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
In your installation package this code should be included in your component installer because the Joomla installation process automatically creates a section for each installed component there, whether it has any API code or not.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
The structure of this section has the same directory pattern as the other extension sections (i.e. components, modules, plugins).&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
1. &amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Verzeichnis erstellen:&amp;lt;/span&amp;gt; &#039;&#039;&#039;&#039;&#039;/api&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
[[File:Struct1.png|500px|thumb|center|File system structure]]&lt;br /&gt;
&lt;br /&gt;
2. &amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Anlegen der Klasse:&amp;lt;/span&amp;gt; &#039;&#039;&#039;&#039;&#039;WeblinksController&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
The controller is named in the second parameter of the &#039;&#039;createCRUDRoutes&#039;&#039; method in the plugin.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
You can expose more than one output structure by registering more than one route, specifying a different controller for each structure.&lt;br /&gt;
&amp;lt;/div&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\MVC\Controller\ApiController;&lt;br /&gt;
&lt;br /&gt;
class WeblinksController extends ApiController&lt;br /&gt;
{&lt;br /&gt;
    protected $contentType = &#039;weblinks&#039;;&lt;br /&gt;
&lt;br /&gt;
    protected $default_view = &#039;weblinks&#039;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die folgenden Felder übersteuern (override):&lt;br /&gt;
&lt;br /&gt;
 $contentType - &amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;wird als Standard für $modelName verwendet, wenn die Antwort als Typ-Objekt ausgegeben wird&amp;lt;/span&amp;gt; $modelName &amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;as well as when outputting response as type object&amp;lt;/span&amp;gt;&lt;br /&gt;
 $default_view - &amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;wird als Standard für $viewName verwendet&amp;lt;/span&amp;gt; $viewName&lt;br /&gt;
&lt;br /&gt;
3. &amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Anlegen der Klasse:&amp;lt;/span&amp;gt; &#039;&#039;&#039;&#039;&#039;JsonapiView.php&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
Extending JsonApiView gives you the same kinds of features that HtmlView does in a usual component view, slightly changed to be appropriate for outputting JSON.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Note&#039;&#039;&#039; Although the core class is JsonApiView (uppercase &#039;&#039;A&#039;&#039; for Api), your override must have a lowercase &#039;&#039;a&#039;&#039;.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
The item and list fields to render, as shown below, specify which fields to include in the respective outputs.&lt;br /&gt;
&amp;lt;/div&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\MVC\View\JsonApiView as BaseApiView;&lt;br /&gt;
&lt;br /&gt;
class JsonapiView extends BaseApiView&lt;br /&gt;
{&lt;br /&gt;
    protected $fieldsToRenderItem = [&lt;br /&gt;
        &#039;id&#039;,&lt;br /&gt;
        &#039;catid&#039;,&lt;br /&gt;
        &#039;title&#039;,&lt;br /&gt;
        &#039;alias&#039;,&lt;br /&gt;
        &#039;url&#039;,&lt;br /&gt;
        &#039;xreference&#039;,&lt;br /&gt;
        &#039;tags&#039;,&lt;br /&gt;
    ];&lt;br /&gt;
&lt;br /&gt;
    protected $fieldsToRenderList = [&lt;br /&gt;
        &#039;id&#039;,&lt;br /&gt;
        &#039;title&#039;,&lt;br /&gt;
        &#039;alias&#039;,&lt;br /&gt;
    ];&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Die folgenden Felder übersteuern (override):&lt;br /&gt;
&lt;br /&gt;
 $fieldsToRenderItem - Array aus Feldern zur Anzeige eines einzelnen Objekts&lt;br /&gt;
 $fieldsToRenderList - Array aus Feldern um Objekte aufzulisten&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;Notice that this indicates a significant difference between JSON API views and HTML views. With HTML views you are used to having separate files and directories for displaying a list of items and displaying individual items. There isn&#039;t the same &amp;quot;display&amp;quot; difference for JSON, so one JsonapiView handles both types. That&#039;s why both fields lists are both shown in this one view file.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. &amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Erstellen von:&amp;lt;/span&amp;gt;  &#039;&#039;&#039;&#039;&#039;weblinks.xml&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight 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 version=&amp;quot;3.1&amp;quot; type=&amp;quot;plugin&amp;quot; group=&amp;quot;webservices&amp;quot; method=&amp;quot;upgrade&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;PLG_WEBSERVICES_WEBLINKS&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;author&amp;gt;Joomla! Project&amp;lt;/author&amp;gt;&lt;br /&gt;
    &amp;lt;creationDate&amp;gt;August 2017&amp;lt;/creationDate&amp;gt;&lt;br /&gt;
    &amp;lt;copyright&amp;gt;(C) 2005 - 2019 Open Source Matters. All rights reserved.&amp;lt;/copyright&amp;gt;&lt;br /&gt;
    &amp;lt;license&amp;gt;GNU General Public License version 2 or later; see LICENSE.txt&amp;lt;/license&amp;gt;&lt;br /&gt;
    &amp;lt;authorEmail&amp;gt;admin@joomla.org&amp;lt;/authorEmail&amp;gt;&lt;br /&gt;
    &amp;lt;authorUrl&amp;gt;www.joomla.org&amp;lt;/authorUrl&amp;gt;&lt;br /&gt;
    &amp;lt;version&amp;gt;4.0.0&amp;lt;/version&amp;gt;&lt;br /&gt;
    &amp;lt;description&amp;gt;PLG_WEBSERVICES_WEBLINKS_XML_DESCRIPTION&amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
         ##FILES##&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
    &amp;lt;languages folder=&amp;quot;administrator/language&amp;quot;&amp;gt;&lt;br /&gt;
         ##LANGUAGE_FILES##&lt;br /&gt;
    &amp;lt;/languages&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
4. &amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Erstellen der Dateien&amp;lt;/span&amp;gt; &amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;mit dem folgenden Inhalt:&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;As usual, language files can, and should, be supplied;&amp;lt;/span&amp;gt; &#039;&#039;&#039;&#039;&#039;en-GB/plg_webservices_weblinks.ini&#039;&#039;&#039;&#039;&#039;, &#039;&#039;&#039;&#039;&#039;en-GB/plg_webservices_weblinks.sys.ini&#039;&#039;&#039;&#039;&#039;&amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;. It may be unnecessary to provide the user language file (&#039;&#039;.ini&#039;&#039;), but content for the system file (&#039;&#039;.sys.ini&#039;&#039;) is required, if only for the plugin administration list.&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
; Joomla! Project&lt;br /&gt;
; Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.&lt;br /&gt;
; License GNU General Public License version 2 or later; see LICENSE.txt, see LICENSE.php&lt;br /&gt;
; Note : All ini files need to be saved as UTF-8&lt;br /&gt;
&lt;br /&gt;
PLG_WEBSERVICES_WEBLINKS=&amp;quot;Web Services - Weblinks&amp;quot;&lt;br /&gt;
PLG_WEBSERVICES_WEBLINKS_XML_DESCRIPTION=&amp;quot;Used to add Web links routes to the Web Services API for your website.&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Paketierung  ==&lt;br /&gt;
&amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;There are two considerations for packaging, the code in the API section and the plugin.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;=== Component Packaging ===&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;As mentioned elsewhere, the API code is packaged with the component code. To include the code in the package, add the following section to your component manifest&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;api&amp;gt;&lt;br /&gt;
    &amp;lt;files folder=&amp;quot;api&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;folder&amp;gt;src&amp;lt;/folder&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/api&amp;gt;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;This will create a section for your API code in the correctly named (for your component) folder under the &#039;&#039;api&#039;&#039; folder.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;=== Plugin Packaging ===&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Wenn dieses Plugin mit einem anderen Element (z. B. einer Komponente) verknüpft ist, dann muss das Ganze als Paket zusammengestellt werden.  In diesem Fall in der Datei&amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;syntaxhighlight 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;!--~&lt;br /&gt;
  ~ @package Weblinks&lt;br /&gt;
    ....&lt;br /&gt;
  --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;extension version=&amp;quot;4.0.0&amp;quot; type=&amp;quot;package&amp;quot; method=&amp;quot;upgrade&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Weblinks&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;packagename&amp;gt;weblinks&amp;lt;/packagename&amp;gt;&lt;br /&gt;
    &amp;lt;version&amp;gt;x.y.z&amp;lt;/version&amp;gt;&lt;br /&gt;
    &amp;lt;!-- etc etc --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;!-- List of extensions to install --&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;!-- Component --&amp;gt;&lt;br /&gt;
        &amp;lt;file type=&amp;quot;component&amp;quot; id=&amp;quot;com_weblinks&amp;quot;&amp;gt;com_weblinks.zip&amp;lt;/file&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;!-- Plugins: web services --&amp;gt;&lt;br /&gt;
        &amp;lt;file type=&amp;quot;plugin&amp;quot; id=&amp;quot;weblinks&amp;quot; group=&amp;quot;webservices&amp;quot;&amp;gt;plg_webservices_weblinks.zip&amp;lt;/file&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Kategorien == &lt;br /&gt;
1. &amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Hinzufügen der Kategorie-Unterstützung für den Weblinks-Webservice. Bearbeiten der Datei &#039;&#039;&#039;&#039;&#039;src/plugins/webservices/weblinks/weblinks.php&#039;&#039;&#039;&#039;&#039;.&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class PlgWebservicesWeblinks extends CMSPlugin&lt;br /&gt;
{&lt;br /&gt;
    public function onBeforeApiRoute(&amp;amp;$router)&lt;br /&gt;
    {&lt;br /&gt;
        ...&lt;br /&gt;
        $router-&amp;gt;createCRUDRoutes(&lt;br /&gt;
            &#039;v1/weblinks/categories&#039;,&lt;br /&gt;
            &#039;categories&#039;,&lt;br /&gt;
            [&#039;component&#039; =&amp;gt; &#039;com_categories&#039;, &#039;extension&#039; =&amp;gt; &#039;com_weblinks&#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;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Wir verwenden die vorgefertigte Komponente &#039;&#039;&#039;&#039;&#039;com_categories&#039;&#039;&#039;&#039;&#039; und müssen nur noch den Parameter&amp;lt;/span&amp;gt; &#039;extension&#039; =&amp;gt; &#039;com_weblinks&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;== Felder ==&amp;lt;/span&amp;gt; &lt;br /&gt;
1. &amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Hinzufügen von Feldern und Feldgruppen für den Webservice „Weblinks“. Bearbeiten der Datei&amp;lt;/span&amp;gt; &#039;&#039;&#039;&#039;&#039;src/plugins/webservices/weblinks/weblinks.php&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class PlgWebservicesWeblinks extends CMSPlugin&lt;br /&gt;
{&lt;br /&gt;
    public function onBeforeApiRoute(&amp;amp;$router)&lt;br /&gt;
    {&lt;br /&gt;
        ...&lt;br /&gt;
        $router-&amp;gt;createCRUDRoutes(&lt;br /&gt;
            &#039;v1/fields/weblinks&#039;,&lt;br /&gt;
            &#039;fields&#039;,&lt;br /&gt;
            [&#039;component&#039; =&amp;gt; &#039;com_fields&#039;, &#039;context&#039; =&amp;gt; &#039;com_weblinks.weblink&#039;]&lt;br /&gt;
        );&lt;br /&gt;
&lt;br /&gt;
        $router-&amp;gt;createCRUDRoutes(&lt;br /&gt;
            &#039;v1/fields/groups/weblinks&#039;,&lt;br /&gt;
            &#039;groups&#039;,&lt;br /&gt;
            [&#039;component&#039; =&amp;gt; &#039;com_fields&#039;, &#039;context&#039; =&amp;gt; &#039;com_weblinks.weblink&#039;]&lt;br /&gt;
        );&lt;br /&gt;
    }&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
2. Überschreiben der Funktion &#039;&#039;&#039;&#039;&#039;save&#039;&#039;&#039;&#039;&#039; in &#039;&#039;&#039;&#039;&#039;WeblinksController&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class WeblinksController extends ApiController&lt;br /&gt;
{&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
    protected function save($recordKey = null)&lt;br /&gt;
    {&lt;br /&gt;
        $data = (array) json_decode($this-&amp;gt;input-&amp;gt;json-&amp;gt;getRaw(), true);&lt;br /&gt;
&lt;br /&gt;
        foreach (FieldsHelper::getFields(&#039;com_weblinks.weblink&#039;) as $field)&lt;br /&gt;
        {&lt;br /&gt;
            if (isset($data[$field-&amp;gt;name]))&lt;br /&gt;
            {&lt;br /&gt;
                !isset($data[&#039;com_fields&#039;]) &amp;amp;&amp;amp; $data[&#039;com_fields&#039;] = [];&lt;br /&gt;
&lt;br /&gt;
                $data[&#039;com_fields&#039;][$field-&amp;gt;name] = $data[$field-&amp;gt;name];&lt;br /&gt;
                unset($data[$field-&amp;gt;name]);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        $this-&amp;gt;input-&amp;gt;set(&#039;data&#039;, $data);&lt;br /&gt;
&lt;br /&gt;
        return parent::save($recordKey);&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    ...&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
3. Überschreiben der Funktionen &#039;&#039;&#039;&#039;&#039;displayList, displayItem, prepareItem&#039;&#039;&#039;&#039;&#039; in &#039;&#039;&#039;&#039;&#039;Weblinks\JsonApiView&#039;&#039;&#039;&#039;&#039;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
class JsonApiView extends BaseApiView&lt;br /&gt;
{&lt;br /&gt;
    ...&lt;br /&gt;
&lt;br /&gt;
    public function displayList(array $items = null)&lt;br /&gt;
    {&lt;br /&gt;
        foreach (FieldsHelper::getFields(&#039;com_weblinks.weblink&#039;) as $field)&lt;br /&gt;
        {&lt;br /&gt;
            $this-&amp;gt;fieldsToRenderList[] = $field-&amp;gt;name;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return parent::displayList();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    public function displayItem($item = null)&lt;br /&gt;
    {&lt;br /&gt;
        foreach (FieldsHelper::getFields(&#039;com_weblinks.weblink&#039;) as $field)&lt;br /&gt;
        {&lt;br /&gt;
            $this-&amp;gt;fieldsToRenderItem[] = $field-&amp;gt;name;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return parent::displayItem();&lt;br /&gt;
    }&lt;br /&gt;
&lt;br /&gt;
    protected function prepareItem($item)&lt;br /&gt;
    {&lt;br /&gt;
        foreach (FieldsHelper::getFields(&#039;com_weblinks.weblink&#039;, $item, true) as $field)&lt;br /&gt;
        {&lt;br /&gt;
            $item-&amp;gt;{$field-&amp;gt;name} = isset($field-&amp;gt;apivalue) ? $field-&amp;gt;apivalue : $field-&amp;gt;rawvalue;&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        return parent::prepareItem($item);&lt;br /&gt;
    }&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;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;In der Funktion &#039;&#039;prepareItem&#039;&#039; muss geachtet werden auf: &amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$field-&amp;gt;apivalue&amp;lt;/source&amp;gt; Falls der Typ des Feldes komplex ist, wird hoffentlich ein Wert für die Ausgabe in der Web Services API-Komponente zurückgegeben, andernfalls greifen wir zurück auf:&amp;lt;/span&amp;gt; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;php&amp;quot;&amp;gt;$field-&amp;gt;rawvalue&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;== Data ==&amp;lt;/span&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
The core functionality renders the data that you would expect from a simple component in the normal web interface. For this, the API defaults to administration data models. However, providing a &#039;&#039;Model&#039;&#039; section in your API code gives you back the flexibility to construct whatever data shape you want just for your API output. Provide a model for each view with the usual naming conventions.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div lang=&amp;quot;en&amp;quot; dir=&amp;quot;ltr&amp;quot; class=&amp;quot;mw-content-ltr&amp;quot;&amp;gt;&lt;br /&gt;
The system JsonApiView class formats the JSON output as three data sets; links, items, and metadata. To change that, override the display class in your own JsonapiView and &#039;&#039;&#039;don&#039;t&#039;&#039;&#039; call the parent class.&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Beispiel für eine integrierte Arbeit ==&lt;br /&gt;
&#039;&#039;&#039;&#039;&#039;Hinweis: Nicht vergessen, das Weblinks Webservice Plugin zu aktivieren!&#039;&#039;&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;=== Weblinks ===&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;==== Liste von Weblinks erhalten ====&amp;lt;/span&amp;gt;&lt;br /&gt;
curl -X GET /api/index.php/v1/weblinks&lt;br /&gt;
&lt;br /&gt;
==== Einzelnen Weblink erhalten ====&lt;br /&gt;
curl -X GET /api/index.php/v1/weblinks/{weblink_id}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;==== Weblink löschen ====&amp;lt;/span&amp;gt;&lt;br /&gt;
curl -X DELETE /api/index.php/v1/weblinks/{weblink_id}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;==== Weblink erstellen ====&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
curl -X POST -H &amp;quot;Content-Type: application/json&amp;quot; /api/index.php/v1/weblinks -d&lt;br /&gt;
&#039;{&lt;br /&gt;
    &amp;quot;access&amp;quot;: &amp;quot;1&amp;quot;,&lt;br /&gt;
    &amp;quot;alias&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;catid&amp;quot;: &amp;quot;8&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;text&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
    &amp;quot;images&amp;quot;: {&lt;br /&gt;
        &amp;quot;float_first&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;float_second&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;image_first&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;image_first_alt&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;image_first_caption&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;image_second&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;image_second_alt&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;image_second_caption&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;*&amp;quot;,&lt;br /&gt;
    &amp;quot;metadata&amp;quot;: {&lt;br /&gt;
        &amp;quot;rights&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;robots&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;metadesc&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;metakey&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;modified&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
    &amp;quot;params&amp;quot;: {&lt;br /&gt;
        &amp;quot;count_clicks&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;height&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;target&amp;quot;: &amp;quot;&amp;quot;,&lt;br /&gt;
        &amp;quot;width&amp;quot;: &amp;quot;&amp;quot;&lt;br /&gt;
    },&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;weblink title&amp;quot;,&lt;br /&gt;
    &amp;quot;url&amp;quot;: &amp;quot;http://somelink.com/&amp;quot;,&lt;br /&gt;
    &amp;quot;xreference&amp;quot;: &amp;quot;xreference&amp;quot;&lt;br /&gt;
}&#039;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;==== Weblink aktualisieren ====&amp;lt;/span&amp;gt;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;javascript&amp;quot;&amp;gt;&lt;br /&gt;
curl -X PUT -H &amp;quot;Content-Type: application/json&amp;quot; /api/index.php/v1/weblinks/{weblink_id} -d&lt;br /&gt;
&#039;{&lt;br /&gt;
    &amp;quot;catid&amp;quot;: &amp;quot;8&amp;quot;,&lt;br /&gt;
    &amp;quot;description&amp;quot;: &amp;quot;&amp;lt;p&amp;gt;some new text&amp;lt;/p&amp;gt;&amp;quot;,&lt;br /&gt;
    &amp;quot;language&amp;quot;: &amp;quot;*&amp;quot;,&lt;br /&gt;
    &amp;quot;title&amp;quot;: &amp;quot;new title&amp;quot;,&lt;br /&gt;
    &amp;quot;url&amp;quot;: &amp;quot;http://newsomelink.com/&amp;quot;&lt;br /&gt;
}&#039;&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== Kategorien ===&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Die Route zu den Weblinks-Kategorien ist:&amp;lt;/span&amp;gt; &#039;&#039;v1/weblinks/categories&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Arbeitsweise ist vergleichbar mit: [[S:MyLanguage/J4.x:Joomla_Core_APIs#Kategorien|Banner-Kategorien]].&lt;br /&gt;
&lt;br /&gt;
== Felder ==&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Die Route zu den Weblinks-Feldern ist:&amp;lt;/span&amp;gt; &#039;&#039;v1/fields/weblinks&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Arbeitsweise ist vergleichbar mit: [[S:MyLanguage/J4.x:Joomla_Core_APIs#Kontakt-Felder|Kontakt-Felder]].&lt;br /&gt;
&lt;br /&gt;
=== Gruppenfelder ===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;span class=&amp;quot;mw-translate-fuzzy&amp;quot;&amp;gt;Die Route zu den Weblinks-Gruppenfeldern ist:&amp;lt;/span&amp;gt; &#039;&#039;v1/fields/groups/weblinks&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
Die Arbeitsweise ist vergleichbar mit: [[S:MyLanguage/J4.x:Joomla_Core_APIs#Kontakt-Feldgruppen|Kontakt-Feldgruppen]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Development{{#translation:}}]]&lt;br /&gt;
[[Category:Component_Development{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla!_4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 4.x Web Services{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_an_API_to_a_Joomla_Component/21/de&amp;diff=1023259</id>
		<title>Translations:J4.x:Adding an API to a Joomla Component/21/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J4.x:Adding_an_API_to_a_Joomla_Component/21/de&amp;diff=1023259"/>
		<updated>2024-03-28T11:36:24Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Paketierung  ==&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_CLI_Installation&amp;diff=992720</id>
		<title>J4.x:Joomla CLI Installation</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J4.x:Joomla_CLI_Installation&amp;diff=992720"/>
		<updated>2022-10-21T14:12:10Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: change options from _ to -&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version|4.x}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Introduction == &lt;br /&gt;
Starting with Joomla! 4.3, the Joomla CLI installation is available.&lt;br /&gt;
It allows setting up the &#039;&#039;Content Management System&#039;&#039; (CMS) directly on the server console without the need of a web browser. This allows automated deployments, for example for autoinstallers for an ISP.&lt;br /&gt;
By eliminating the HTML interface, the installation process is significantly accelerated.&lt;br /&gt;
&lt;br /&gt;
Experienced users and developers can easily deploy multiple instances of Joomla this way.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;The CLI installer is part of the standard Joomla package.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
== System Requirements == &lt;br /&gt;
Joomla requires PHP, a database and a web server. For the latest information about the supported software and the minimum and recommended versions, please visit https://downloads.joomla.org/technical-requirements.&lt;br /&gt;
&lt;br /&gt;
== Processing Installation ==&lt;br /&gt;
&lt;br /&gt;
Basically, the CLI installation can be performed via two methods:&lt;br /&gt;
# Manual installation&lt;br /&gt;
# Script-driven automatic installation&lt;br /&gt;
&lt;br /&gt;
=== Manual installation ===&lt;br /&gt;
Manual installation offers the highest level of control possible during the installation process. Each step is visible in the terminal and can be aborted with &amp;lt;code&amp;gt;Ctrl+C&amp;lt;/code&amp;gt; in case of an incorrect entry.&lt;br /&gt;
&lt;br /&gt;
==== Steps to be done ====&lt;br /&gt;
# Uploading the installation package into the web server&#039;s (resp. virtual host&#039;s) document root&lt;br /&gt;
# Move to corresponding document root&lt;br /&gt;
# Uncompress zip file (or tarball)&lt;br /&gt;
# Run PHP command: &amp;lt;code&amp;gt;php installation/joomla.php install&amp;lt;/code&amp;gt;. Gradually the most important parameters for installation and operation of the new website will be prompted ([[#Requested_Information_on_Install_Joomla|see next section]]).&amp;lt;/br&amp;gt;&#039;&#039;&#039;Note:&#039;&#039;&#039; Pay careful attention to your input. It is not possible to step back in the script. If the input is incorrect, the script must be aborted.&amp;lt;/br&amp;gt;Several parameters can be added to the command ([[#joomla.php_Options|see table below]]). &lt;br /&gt;
# Once the script is successfully completed, the new website can be accessed.&amp;lt;/br&amp;gt;[[file:Cli_installer_success.png|400px|center]]&lt;br /&gt;
&lt;br /&gt;
===== Requested Information on Install Joomla =====&lt;br /&gt;
* &#039;&#039;&#039;Login Data:&#039;&#039;&#039;&lt;br /&gt;
** &amp;lt;code&amp;gt;Enter the name of your Joomla site.:&amp;lt;/code&amp;gt; Do enter here the hostname of the new website. If the new Joomla website is installed on a public server, it has to be a fully qualified domain name ([https://en.wikipedia.org/wiki/Fully_qualified_domain_name FQDN]).&lt;br /&gt;
** &amp;lt;code&amp;gt;Enter the real name of your Super User. :&amp;lt;/code&amp;gt; The prompt is quite obvious. &lt;br /&gt;
** &amp;lt;code&amp;gt;Set the username for your Super User account.:&amp;lt;/code&amp;gt; Be absolutely careful to avoid a name similar to &#039;&#039;admin&#039;&#039; here. It is potentially insecure as it can be easily guessed by a hacker.&lt;br /&gt;
** &amp;lt;code&amp;gt;Enter the email address of the website Super User.:&amp;lt;/code&amp;gt; The prompt is quite obvious. &lt;br /&gt;
&lt;br /&gt;
* &#039;&#039;&#039;Database Configuration:&#039;&#039;&#039; &lt;br /&gt;
**&amp;lt;code&amp;gt;Database type. Supported: mysql, mysqli, pgsql [mysqli]:&amp;lt;/code&amp;gt; Default is &#039;&#039;mysqli&#039;&#039;. Supported database types are MySQL (mysql) and PostgreSQL (pgsql) databases and compatible types (e.g. MariaDB). &#039;&#039;mysqli&#039;&#039; stands for the advanced variant on MySQL.&lt;br /&gt;
**&amp;lt;code&amp;gt;Database host [localhost]:&amp;lt;/code&amp;gt; Default is &#039;&#039;localhost&#039;&#039;. An IP address or a host name should be entered here only if the responsible database server is installed on another host. However, the terminal user has to have write permissions on the selected host. You will get get this information from your internet provider (ISP).&lt;br /&gt;
**&amp;lt;code&amp;gt;Database username:&amp;lt;/code&amp;gt; The login name of the database user, it is usually different from the name of the SuperUsers. You will get get this information from your ISP.&lt;br /&gt;
**&amp;lt;code&amp;gt;Database password:&amp;lt;/code&amp;gt; The password for the Joomla database. You will get get this information from your ISP.&lt;br /&gt;
**&amp;lt;code&amp;gt;Database name [joomla_db]:&amp;lt;/code&amp;gt; The value &#039;&#039;joomla_db&#039;&#039; is predefined, but another name is used regularly. You will get get this information from your ISP.&lt;br /&gt;
**&amp;lt;code&amp;gt;Prefix for the database tables [s61vo_]:&amp;lt;/code&amp;gt; The prefix for the Joomla database tables. This value is used to separate the Joomla tables from other tables contained in the database, if the database is used by other applications as well. The value is randomly generated every time you call the script and should be changed only in exceptional cases. {{amboxNew|image=notice|style=notice|title={{{title|Important!}}}|text={{{1|&#039;&#039;&#039;Do not use&#039;&#039;&#039; an existing table prefix to write to an existing database - it may lead to unexpected results.}}}}}&lt;br /&gt;
**&amp;lt;code&amp;gt;Encryption for the database connection. Values: 0=None, 1=One way, 2=Two way [0]:&amp;lt;/code&amp;gt; Select the type of database encryption here. You will get this information from your ISP.&lt;br /&gt;
&lt;br /&gt;
=== Script-driven automatic installation ===&lt;br /&gt;
The complete Joomla installation is controlled by the &amp;lt;kbd&amp;gt;joomla.php&amp;lt;/kbd&amp;gt; file, which is located in the &#039;&#039;/installation&#039;&#039; subfolder after unpacking the cli installation package.&lt;br /&gt;
&lt;br /&gt;
Any programming language that allows calling and executing PHP files allows you to create a script that automates the necessary preparations and the actual installation using custom variables.&lt;br /&gt;
&lt;br /&gt;
With this script, steps 1-3 from the manual installation ([[#Steps_to_be_done|see above]]) should be completed before the joomla.php file is called up.&lt;br /&gt;
The process of this file can be controlled exactly with the help of several parameters.&lt;br /&gt;
It has to be started from the root directory of the new Joomla website.&lt;br /&gt;
The call is done with:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
php installation/joomla.php install [options]&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In the terminal screen, the contents of the lower table may be retrieved with the following command: &amp;lt;kbd&amp;gt;php installation/joomla.php help install&amp;lt;/kbd&amp;gt;&lt;br /&gt;
===== joomla.php Options =====&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;width:900px;&amp;quot; border=&amp;quot;2px&amp;quot;&lt;br /&gt;
|- bgcolor=#b6c8db solid;&lt;br /&gt;
| style=&amp;quot;width: 33%&amp;quot;| &amp;lt;strong&amp;gt;Options &amp;lt;/strong&amp;gt;&lt;br /&gt;
| style=&amp;quot;width: 67%&amp;quot;| &amp;lt;strong&amp;gt;Description &amp;lt;/strong&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--site-name=SITE_NAME&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Name of the website&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--admin-user=ADMIN_USER&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Real name of the Super User account&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--admin-username=ADMIN_USERNAME&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Username of your Super User account&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--admin-password=ADMIN_PASSWORD&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Password of your Super User account&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--admin-email=ADMIN_EMAIL&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Email address of the website&#039;s Super User account&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--db-type=DB_TYPE&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Database type. Supported by Joomla: mysql (=MySQL (PDO)), mysqli (=MySQLi), pgsql (=PostgreSQL (PDO)) [default: &amp;quot;mysqli&amp;quot;]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--db-host=DB_HOST&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Database host [default: &amp;quot;localhost&amp;quot;]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--db-user=DB_USER&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Database username&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--db-pass=DB_PASS&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Database password&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--db-name=DB_NAME&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Database name [default: &amp;quot;joomla_db&amp;quot;]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--db-prefix=DB_PREFIX&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Prefix for the database tables [default: &amp;quot;vlqhe_&amp;quot;]. The default value is randomly generated every time you call the script. &lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--db-encryption=DB_ENCRYPTION&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Connection Encryption [default: &amp;quot;0&amp;quot;]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--db-sslkey[=DB_SSLKEY]&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|SSL key for the database connection. Requires encryption to be set to 2&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--db-sslcert[=DB_SSLCERT]&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Path to the SSL certificate for the database connection. Requires encryption to be set to 2&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--db-sslverifyservercert[=DB_SSLVERIFYSERVERCERT]&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Verify SSL certificate for database connection. Values: 0=No, 1=Yes. Requires encryption to be set to 1 or 2 [default: &amp;quot;0&amp;quot;]&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--db-sslca[=DB_SSLCA]&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Path to CA file to verify encryption against&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--db-sslcipher[=DB_SSLCIPHER]&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Supported Cipher Suite (optional)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;-h, --help&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Display the help information&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;-q, --quiet&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Flag indicating that all output should be silenced&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;-V, --version&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Displays the application version&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--ansi&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Force ANSI output&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;--no-ansi&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Disable ANSI output&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;-n, --no-interaction&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Flag to disable interacting with the user&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;kbd&amp;gt;-v,-vv,-vvv, --verbose&amp;lt;/kbd&amp;gt;&lt;br /&gt;
|Increase the verbosity of messages: 1 for normal output, 2 for more verbose output and 3 for debug&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Related Information == &lt;br /&gt;
*[[Special:MyLanguage/J4.x:Installing_Joomla|Installing Joomla]]&lt;br /&gt;
*[[Special:MyLanguage/J4.x:Hosting_Setup|Hosting Setup]]&lt;br /&gt;
*[[Special:MyLanguage/Using_a_terminal_session|Using a terminal session]]&lt;br /&gt;
*[[Special:MyLanguage/Security_Checklist/Hosting_and_Server_Setup|Hosting and Server Setup]]&lt;br /&gt;
*[[Special:MyLanguage/Creating_A_VPS_Testing_Server|Creating A VPS Testing Server]]&lt;br /&gt;
*[[Special:MyLanguage/Nginx|Web Server Nginx]]&lt;br /&gt;
*[[Special:MyLanguage/Creating_a_Database_for_Joomla!|Creating a Database for Joomla!]]&lt;br /&gt;
*[[Special:MyLanguage/Connecting_to_an_external_database|Connecting to an external database]]&lt;br /&gt;
*[[Special:MyLanguage/How_do_UNIX_file_permissions_work%3F|How do UNIX file permissions work?]]&lt;br /&gt;
*[[Special:MyLanguage/J4.x:Setting_Up_Your_Local_Environment|Setting up your local environment]]&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Joomla! 4.x{{#translation:}}]]&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Installation]]&lt;br /&gt;
[[Category:Advanced]]&lt;br /&gt;
[[Category:Server configurations]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;[[Category:Needs to be marked for translation]]&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Deploying_an_Update_Server&amp;diff=829748</id>
		<title>Deploying an Update Server</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Deploying_an_Update_Server&amp;diff=829748"/>
		<updated>2021-10-15T11:54:57Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Updated client description&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;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Introduction == &amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
This tutorial is designed to teach developers how to create an update server for integration with the update system introduced in Joomla!.  By adding an update server listing to your extension&#039;s manifest, developers enable users to update their extensions via the Extension Manager&#039;s Update (see [[S:MyLanguage/Help31:Extensions Extension Manager Update|Joomla 3.x]] helpscreen) view with only a few clicks.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Defining an update server == &amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
In order to use this feature, an update server must be defined in your extension&#039;s manifest.  This definition can be used in all Joomla! 2.5 and newer compatible extensions but is not available for templates.  You can use two options for your server type: collection or extension.  These will be explained in detail shortly.  This code should be added to the extension manifest file, within the root &#039;&#039;extension&#039;&#039; element. The update server is defined as follows for each type:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
Multiple servers can be defined within the &amp;lt;tt&amp;gt;&amp;lt;updateservers&amp;gt;&amp;lt;/tt&amp;gt; tag. If you have more than one update server, you can set a different priority for each. In that way you can control the order in which the update servers are checked.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Server types == &amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Collection === &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;quot;collection&amp;quot;&amp;lt;/tt&amp;gt; server type allows developers to define an extension&#039;s manifest to pull updates from a collection.  This type of server can be used if the developer wants to define all of their extension&#039;s updates in a single file (not recommended) or if their extension has multiple sub-extensions which are not distributed or updated at the same time (such as a package extension type).  The below example is the &amp;lt;tt&amp;gt;&amp;quot;collection&amp;quot;&amp;lt;/tt&amp;gt; definition used by the updater when processing core Joomla! updates:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
All definitions must be defined between &amp;lt;extensionset&amp;gt; tags in your collection manifest.  The &amp;lt;extensionset&amp;gt; tag has two optional parameters; name and description.  For each extension that this collection references, a separate &amp;lt;extension&amp;gt; tag is required.  The &amp;lt;extension&amp;gt; tag has the following parameters, all of which are required for updates to properly process:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; – The name of the extension&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;element&#039;&#039;&#039; – The untranslated extension name i.e. mod_custom&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; – The extension type (component, module, plugin, etc.)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;version&#039;&#039;&#039; – The latest version of the extension&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;detailsurl&#039;&#039;&#039; – The URL of the XML file which contains that extension&#039;s individual update definitions&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Extension === &amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
The &amp;lt;tt&amp;gt;&amp;quot;extension&amp;quot;&amp;lt;/tt&amp;gt; server type allows developers to define an extension&#039;s manifest to pull updates from a single extension&#039;s manifest.  All collection manifests eventually point to this XML file.  All updates in this file must be defined after an &amp;lt;tt&amp;gt;&amp;lt;updates&amp;gt;&amp;lt;/tt&amp;gt; tag at the beginning of the file.  The below example is the update definition for the Joomla! 3.9.6 release:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
The following section describes the elements of a single update entity.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; – The name of the extension, this name will appear in the Name column of the Extension Manager&#039;s Update view (required)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; – A short description of the extension (optional) — if you choose to use &amp;lt;![CDATA[]]&amp;gt;, double-quotes will break the HTML formatting.  Use single quotes with your HTML entities.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;element&#039;&#039;&#039; – The installed name of the extension (required). For plugins, this needs to be same as plugin attribute value for main file in plugin manifest. For &amp;lt;filename plugin=&amp;quot;pluginname&amp;quot;&amp;gt;pluginname.php&amp;lt;/filename&amp;gt;, element value should be &#039;&#039;&#039;pluginname&#039;&#039;&#039;.&amp;lt;/translate&amp;gt; &lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; – The type of extension (component, module, plugin, etc.) (required)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;folder&#039;&#039;&#039; – Specific to plugins, this tag describes the type of plugin being updated (content, system, etc.) (required for plugins)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;client&#039;&#039;&#039; – Required for modules and templates as of 3.2.0. – The client of the extension. Possible values at this time are &amp;quot;site&amp;quot;, &amp;quot;administrator&amp;quot;. &#039;&#039;&#039;Warning!&#039;&#039;&#039; Plugins and front-end modules are automatically installed with a client of site, but you will need to specify the client in an update or it will default to administrator and then found update would not be shown because it would not match any extension. Components are automatically installed with a client of administrator, which is currently the default.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
** &#039;&#039;Warning&#039;&#039;: As of Joomla! 4.0 only a string is allowed. Using numbers as client has been deprecated in 2012 and got removed in Joomla! 4.0 (Replace 0 with &amp;quot;site&amp;quot; and 1 with &amp;quot;administrator&amp;quot;)&lt;br /&gt;
** &#039;&#039;Warning&#039;&#039;: The tag name is &amp;lt;&#039;&#039;&#039;client&#039;&#039;&#039;&amp;gt; for Joomla! 2.5 and &amp;lt;&#039;&#039;&#039;client_id&#039;&#039;&#039;&amp;gt; for 1.6 and 1.7. If you use &amp;lt;client_id&amp;gt; (rather than &amp;lt;client&amp;gt;) on a 2.5 site, it will be ignored.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;version&#039;&#039;&#039; – The version of the release (required)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;infourl&#039;&#039;&#039; – A URL to point users to containing information about the update (optional) (In CMS 2.5, if set, this URL will be displayed in the update view)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;downloads&#039;&#039;&#039; – The section which lists all download locations&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;downloadurl&#039;&#039;&#039; – The URL to download the extension from; the &amp;lt;downloadurl&amp;gt; tag has two required parameters:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;gt;&lt;br /&gt;
*** &#039;&#039;&#039;type&#039;&#039;&#039; – The type of package (full or upgrade)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
*** &#039;&#039;&#039;format&#039;&#039;&#039; – The format of the package (zip, tar, etc.)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;downloadsource&#039;&#039;&#039; – Optional. Since Joomla 3.8.3. Alternative URL to download the extension from when the connection to &amp;lt;downloadurl&amp;gt; fails. Multiple &amp;lt;downloadsource&amp;gt; tags are allowed. The &amp;lt;downloadsource&amp;gt; tag has two required parameters:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
*** &#039;&#039;&#039;type&#039;&#039;&#039; – The type of package (full or upgrade)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
*** &#039;&#039;&#039;format&#039;&#039;&#039; – The format of the package (zip, tar, etc.)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;NB&#039;&#039;&#039; – there must be no newline before or after the URL; it needs to all be on one line or you will get Error connecting to the server: malformed when the update is run&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;changelogurl&#039;&#039;&#039; - A link to an xml file holding the changelog. Joomla 4.0 and later will allow you to show a button for the changelog in the extension updater page. More details in how to use it can be found here: [[Adding changelog to your manifest file]]&lt;br /&gt;
* &#039;&#039;&#039;tags&#039;&#039;&#039; – A list of tags relevant to this version. Joomla! 3.4 and later uses this to determine the stability level of the update. The valid tags are:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
** &#039;&#039;dev&#039;&#039;: Development versions, very unstable and pre-alpha (e.g. nightly builds)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
** &#039;&#039;alpha&#039;&#039;: Alpha quality software (features not implemented, show-stopper bugs)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
** &#039;&#039;beta&#039;&#039;: Beta quality software (all features implemented, show-stopper bugs possible, minor bugs almost certain)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
** &#039;&#039;rc&#039;&#039;: Release Candidate quality software (no show-stopper bugs, minor bugs may still be present)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
** &#039;&#039;stable&#039;&#039;: Production quality software All other tags are currently ignored. If you provide more than one tag containing one of the aforementioned stability keywords only the LAST tag will be taken into account. If you do not provide any tags Joomla! will assume it is a stable version&amp;lt;/translate&amp;gt;.&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;maintainer&#039;&#039;&#039; – The name of the extension maintainer (similar to the &amp;lt;author&amp;gt; tag in a manifest) (optional)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;maintainerurl&#039;&#039;&#039; – The website of the extension maintainer (similar to the &amp;lt;authorUrl&amp;gt; tag in a manifest) (optional)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;section&#039;&#039;&#039; – Optional (unknown use)&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;targetplatform&#039;&#039;&#039; – A tag to define platform requirements (from {{ JVer| 3.10 }} this is also used to detect extension compatibility for the Joomla Update component), requires the following elementsː&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;name&#039;&#039;&#039; – The name of the platform dependency; as of this writing, it should ONLY be &amp;quot;joomla&amp;quot;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;version&#039;&#039;&#039; – The version of Joomla! the extension supports&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
** &#039;&#039;&#039;min_dev_level&#039;&#039;&#039; and &#039;&#039;&#039;max_dev_level&#039;&#039;&#039; – These attributes were added in 3.0.1 to allow you to select a target platform based on the developer level (&amp;quot;z&amp;quot; in x.y.z). They are optional. You can specify either one or both. If omitted, all developer levels are matched. For example, the following matches versions 4.0.0 and 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;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
*** &#039;&#039;&#039;Note:&#039;&#039;&#039; If your extension is Joomla! 2.5 and/or 3.1 compatible, you will be required to have separate &amp;lt;update&amp;gt; definitions for each version due to the manner in which the updater checks the version if you specify a number. However to show your extension on all Joomla versions that support automatic updates (and thus mark as compatible with all future unreleased versions of Joomla in Joomla Update) add &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;. If you want your extension to show on all {{JVer|3.x}} versions then rather than specifying a version in the version tag add in &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;. This will show the update to all 3.x versions from version 3.0 to 3.5. If you want to include version 3.10 you can use an &amp;lt;code&amp;gt;|&amp;lt;/code&amp;gt; like this: &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;. If you want to show the updates for all 3.8.x versions and all 3.10.x versions you can use &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;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;php_minimum&#039;&#039;&#039; – Beginning with 3.2.2, a minimum supported PHP version can be supplied in the update stream.  If the server does not meet the minimum, a message is displayed to the user advising that an update is available but cannot be installed due to unsupported requirements.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;supported_databases&#039;&#039;&#039; – Beginning with 3.7, a minimum supported databases + version check can be supplied in the update stream.  When the server does not meet the minimum, a message is displayed to the user advising that an update is available but cannot be installed due to unsupported requirements. Note: [https://github.com/joomla/joomla-cms/pull/26079 As of 3.9.12] there is also a special case for mariadb so you can set a specific minimum version for that too now.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
** An example could look like this:&amp;lt;/translate&amp;gt; &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;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:60--&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; – Optional. Since Joomla 3.9.0 you can add file checksums in these hash formats. Be aware that in Joomla 3 only a notice is shown on &#039;&#039;&#039;updates&#039;&#039;&#039; if a checksum is not correct. That&#039;s all. The update doesn&#039;t stop then. In Joomla 4 updates and installations will stop if a provided checksum doesn&#039;t match.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
A separate &amp;lt;update&amp;gt; definition will be required for each version of your extension you release.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
The values of &#039;&#039;&#039;element&#039;&#039;&#039;, &#039;&#039;&#039;type&#039;&#039;&#039;, &#039;&#039;&#039;client_id&#039;&#039;&#039; and &#039;&#039;&#039;folder&#039;&#039;&#039; should match those in the table #_extensions.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
&#039;&#039;&#039;Important for plugins:&#039;&#039;&#039; Plugins have to include &amp;lt;folder&amp;gt; and &amp;lt;client&amp;gt; elements to work properly&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Troubleshooting == &amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;SQL update script is not executed during update.&#039;&#039;&#039;&amp;lt;/translate&amp;gt; &lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
:If the SQL update script (for example, in the folder &amp;lt;code&amp;gt;sql/updates/mysql&amp;lt;/code&amp;gt;) does not get executed during the update process, it could be because there is no version number in the &amp;lt;code&amp;gt;#_schemas&amp;lt;/code&amp;gt; table for this extension &#039;&#039;prior to the update&#039;&#039;. This value is determined by the last script name in the SQL updates folder. If this value is blank, no SQL scripts will be executed during that update cycle. To make sure this value is set correctly, make sure you have a SQL script in this folder with its name as the version number (for example, 1.2.3.sql if the version is 1.2.3). The file can be empty or just have a SQL comment line. This should be done in the old version — the one before the update. Alternatively, you can add this value to the &amp;lt;code&amp;gt;#_schemas&amp;lt;/code&amp;gt; using a SQL query.&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Supporting Tools == &amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
[[Category:Development]]&amp;lt;/translate&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Chunk4x:Help_screen_toolbar_icon_Preview&amp;diff=806255</id>
		<title>Chunk4x:Help screen toolbar icon Preview</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Chunk4x:Help_screen_toolbar_icon_Preview&amp;diff=806255"/>
		<updated>2021-09-07T06:18:20Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Add Preview restrictions&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;translate&amp;gt;&amp;lt;!--T:1--&amp;gt; *&#039;&#039;&#039;Preview&#039;&#039;&#039;. Opens a modal dialog showing a site view of this article. (Requires [[Help4.x:Site_Global_Configuration#Session_Settings|shared sessions]] or being logged in into the front-end)&amp;lt;/translate&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Changes_to_the_2FA_token_generation_recommendations_for_existing_sites&amp;diff=784447</id>
		<title>J3.x:Changes to the 2FA token generation recommendations for existing sites</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Changes_to_the_2FA_token_generation_recommendations_for_existing_sites&amp;diff=784447"/>
		<updated>2021-03-04T14:29:28Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page includes details about the security patches released with Joomla 3.9.25 regarding the 2FA setup. Here you can find an impact analyse and also recommendations for exisiting sites.&lt;br /&gt;
&lt;br /&gt;
==Errors reported==&lt;br /&gt;
&lt;br /&gt;
The JSST has been contacted by the security reseacher Hanno Böck and has been made aware of two issues within the code that have been fixed by this update.&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.2.0 - 3.9.24&#039;&#039;&#039;|title=General Information}} &amp;lt;!-- add the version(s) you need --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
&lt;br /&gt;
Starting from Joomla 3.2.0 the Joomla core shipps with core support of 2FA / TOTP. Up until 3.9.25 the implementation had two minor security flaws:&lt;br /&gt;
- Usage of the insecure rand() function within the process of generating the 2FA secret.&lt;br /&gt;
- Usage of an insufficient length for the 2FA secret accoring to RFC 4226 of 10 bytes vs 20 bytes &lt;br /&gt;
&lt;br /&gt;
==How it was fixed ==&lt;br /&gt;
&lt;br /&gt;
Starting with Joomla 3.9.25 the Joomla core implementation has been updated to:&lt;br /&gt;
- Use an secure random function (random_int; backported to older PHP versiony by the library paragonie/random_compat)&lt;br /&gt;
- Use 20 bytes vs the old value of 10 bytes to generate the 2FA secret.&lt;br /&gt;
&lt;br /&gt;
This issue has been coordinated with Akeeba Ltd as contributor of the original FOF codebase to the core.&lt;br /&gt;
&lt;br /&gt;
==Does this affect my website==&lt;br /&gt;
&lt;br /&gt;
As stated in the intilal report provided by Hanno Böck he said regarding the usage of the insecure rand function:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
I consider the practical risk of this to be low. In order to attack&lt;br /&gt;
this an attacker would have to know the approximate time when the&lt;br /&gt;
person created his TOTP secret. PHP internally mixes in microseconds&lt;br /&gt;
twice, so one could maybe reduce the possible options for the key to a&lt;br /&gt;
few million, which is still very impractical for a real attack.&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for the usage of 10 vs 20 bytes he said the following:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
The code by default uses 10 bytes for the secret. 10 bytes is 80 bits.&lt;br /&gt;
&lt;br /&gt;
The risk here is low. 80 bits is still outside of any practical attack.&lt;br /&gt;
Nevertheless I think security requirements (and even recommendations)&lt;br /&gt;
of the RFC should be followed, so I recommend changing this to 20 bytes&lt;br /&gt;
(aka 160 bits).&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on that information the JSST came to the conclusion to obviously implement the changes as note above but this does explicite not mean that practically all 2FA tokes generated prior the patch have to be regenerated as they still work as expected and are still secure form a practical standpoint.&lt;br /&gt;
It should also be obvious that the changes made here only affect secrets generated after this change. &lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;!-- Change if needed --&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.25 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Changes_to_the_2FA_token_generation_recommendations_for_existing_sites&amp;diff=784446</id>
		<title>J3.x:Changes to the 2FA token generation recommendations for existing sites</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Changes_to_the_2FA_token_generation_recommendations_for_existing_sites&amp;diff=784446"/>
		<updated>2021-03-04T14:28:19Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;This page includes details about the security patches released with Joomla 3.9.25 regarding the 2FA setup. Here you can find an impact analyse and also recommendations for exisiting sites.&lt;br /&gt;
&lt;br /&gt;
==Errors reported== &amp;lt;!-- Fill errors below --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The JSST has been contacted by the security reseacher Hanno Böck and has been made aware of two issues within the code that have been fixed by this update.&lt;br /&gt;
&lt;br /&gt;
==Versions affected== &amp;lt;!--refers to and other information below --&amp;gt;&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.2.0 - 3.9.24&#039;&#039;&#039;|title=General Information}} &amp;lt;!-- add the version(s) you need --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==What is the cause== &amp;lt;!-- Cause if known --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting from Joomla 3.2.0 the Joomla core shipps with core support of 2FA / TOTP. Up until 3.9.25 the implementation had two minor security flaws:&lt;br /&gt;
- Usage of the insecure rand() function within the process of generating the 2FA secret.&lt;br /&gt;
- Usage of an insufficient length for the 2FA secret accoring to RFC 4226 of 10 bytes vs 20 bytes &lt;br /&gt;
&lt;br /&gt;
==How it was fixed == &amp;lt;!-- How to fix it if known --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Starting with Joomla 3.9.25 the Joomla core implementation has been updated to:&lt;br /&gt;
- Use an secure random function (random_int; backported to older PHP versiony by the library paragonie/random_compat)&lt;br /&gt;
- Use 20 bytes vs the old value of 10 bytes to generate the 2FA secret.&lt;br /&gt;
&lt;br /&gt;
This issue has been coordinated with Akeeba Ltd as contributor of the original FOF codebase to the core.&lt;br /&gt;
&lt;br /&gt;
==Does this affect my website== &amp;lt;!-- How to fix it if known --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
As stated in the intilal report provided by Hanno Böck he said regarding the usage of the insecure rand function:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
I consider the practical risk of this to be low. In order to attack&lt;br /&gt;
this an attacker would have to know the approximate time when the&lt;br /&gt;
person created his TOTP secret. PHP internally mixes in microseconds&lt;br /&gt;
twice, so one could maybe reduce the possible options for the key to a&lt;br /&gt;
few million, which is still very impractical for a real attack.&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
And for the usage of 10 vs 20 bytes he said the following:&lt;br /&gt;
&amp;lt;source&amp;gt;&lt;br /&gt;
[...]&lt;br /&gt;
The code by default uses 10 bytes for the secret. 10 bytes is 80 bits.&lt;br /&gt;
&lt;br /&gt;
The risk here is low. 80 bits is still outside of any practical attack.&lt;br /&gt;
Nevertheless I think security requirements (and even recommendations)&lt;br /&gt;
of the RFC should be followed, so I recommend changing this to 20 bytes&lt;br /&gt;
(aka 160 bits).&lt;br /&gt;
[...]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Based on that information the JSST came to the conclusion to obviously implement the changes as note above but this does explicite not mean that practically all 2FA tokes generated prior the patch have to be regenerated as they still work as expected and are still secure form a practical standpoint.&lt;br /&gt;
It should also be obvious that the changes made here only affect secrets generated after this change. &lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;!-- Change if needed --&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.25 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Unable_to_use_a_none_alphabethic_first_character_in_folder_name&amp;diff=784297</id>
		<title>J3.x:Unable to use a none alphabethic first character in folder name</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Unable_to_use_a_none_alphabethic_first_character_in_folder_name&amp;diff=784297"/>
		<updated>2021-03-03T16:30:43Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Add file path filter issue&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Websites updating to Joomla 3.9.25 trying to set a image or file path in com_media or a folder in mod_random_image which doesn&#039;t start with an alphabetic leads to an error.&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.25&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Due to a security update we no longer allow relative path strings in com_media configuration for image path and file path setting. The same filter is used in mod_random_image for the folder property. In case you try to use a character other then a-z as first character you get an error message that this path is not allowed for example &amp;quot;1-images&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
Update to Joomla 3.9.26.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Use the following workaround only if you really need it!&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In the meantime you remove the lines 53 to 56 in the file libraries/src/Form/Rule/FilePathRule.php ([https://github.com/joomla/joomla-cms/blob/2387bb05a11232245dde236859e1896189b62f0d/libraries/src/Form/Rule/FilePathRule.php#L53-L56 File on Github])&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;!-- Change if needed --&amp;gt;&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.25 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Password_form_field_type&amp;diff=778928</id>
		<title>Password form field type</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Password_form_field_type&amp;diff=778928"/>
		<updated>2021-01-16T13:52:09Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Added lock attribute&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;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
The &#039;&#039;&#039;password&#039;&#039;&#039; form field type provides a text box for entry of a password. The password characters will be obscured as they are entered. If the field has a saved value this is entered (in obscured form) into the text box. If not, the default value (if any) is entered.&amp;lt;/translate&amp;gt;&lt;br /&gt;
[[Image:Params.password.jpg|right]]&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Note that the password string is stored in &#039;&#039;params.ini&#039;&#039; in cleartext; the stored value is not obscured by any hash function.  Since most web servers will, by default, serve a &#039;&#039;params.ini&#039;&#039; file if the URL is entered in a web browser, this cannot be considered a secure method of holding a password.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;type&#039;&#039;&#039; (mandatory) must be &#039;&#039;password&#039;&#039;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;name&#039;&#039;&#039; (mandatory) is the unique name of the field.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;label&#039;&#039;&#039; (mandatory) (translatable) is the descriptive title of the field.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;size&#039;&#039;&#039; (optional) is the width of the text box in characters. If omitted the width is determined by the browser. The value of size does not limit the number of characters that may be entered.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;default&#039;&#039;&#039; (optional) is the default password.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;description&#039;&#039;&#039; (optional) (translatable) is text that will be shown as a tooltip when the user moves the mouse over the drop-down box.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;class&#039;&#039;&#039; (optional)  is a CSS class name for the HTML form field. If omitted this will default to &#039;text_area&#039;.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
* &#039;&#039;&#039;lock&#039;&#039;&#039; (optional)  is a boolean value, if active it removes the password from the output and adds a &#039;&#039;Modify&#039;&#039; button to the password field. It only transmits data if the fields is in &#039;&#039;modify&#039;&#039; mode.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
Example XML field definition:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;xml&amp;quot;&amp;gt;&amp;lt;field name=&amp;quot;mypassword&amp;quot; type=&amp;quot;password&amp;quot; default=&amp;quot;secret&amp;quot; label=&amp;quot;Enter a password&amp;quot; description=&amp;quot;&amp;quot; size=&amp;quot;5&amp;quot; /&amp;gt;&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== See also === &amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
* [[S:MyLanguage/Text form field type|Text form field type]]&lt;br /&gt;
* [[S:MyLanguage/Standard form field types|List of standard form field types]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
[[Category:Standard form field types]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Category:Version_3.9.24_FAQ&amp;diff=777759</id>
		<title>Category:Version 3.9.24 FAQ</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Category:Version_3.9.24_FAQ&amp;diff=777759"/>
		<updated>2021-01-11T23:48:31Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt; {{Joomla version|version=3.9.24|}} &amp;lt;translate&amp;gt; &amp;lt;!--T:1--&amp;gt; These FAQs are specific to the Joomla! 3.9.24 release. Only issues that are spec...&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;
{{Joomla version|version=3.9.24|}}&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
These FAQs are specific to the Joomla! 3.9.24 release. Only issues that are specific to this release will be listed here, together with  suggested resolutions. Please add information to this resource. The Joomla! Bug Squad will watch over this page to ensure any new bugs are  added to the tracker and resolved. Continue to use the &#039;&#039;&#039;[[jforum:705|Joomla! Forums for  support requests]]&#039;&#039;&#039; as this is not a substitute for posting there, but  rather a common location for the community to gather common release issues.&amp;lt;/translate&amp;gt;{{TT|CreateFAQ}}&lt;br /&gt;
&amp;lt;noinclude&amp;gt; &lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Send_test_mail_for_smtp_fails&amp;diff=770840</id>
		<title>J3.x:Send test mail for smtp fails</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Send_test_mail_for_smtp_fails&amp;diff=770840"/>
		<updated>2020-12-05T17:59:57Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Websites updating to Joomla 3.9.23 trying to send a test mail using smtp auth may fail.&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.23&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Due to a security update we no longer show passwords on the global configuration screen. The send test mail function uses the password from the current configuration screen which is empty after saving the configuration.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
Update to Joomla 3.9.24. &lt;br /&gt;
In the meantime you have to entering the SMTP Auth password before sending a test mail.&lt;br /&gt;
As alternative you can apply the [https://github.com/joomla/joomla-cms/pull/31515 Pull Request #31515] manually.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;!-- Change if needed --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Version 3.9 FAQ]]&lt;br /&gt;
[[Category:Version 3.9.23 FAQ]]&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Send_test_mail_for_smtp_fails&amp;diff=770827</id>
		<title>J3.x:Send test mail for smtp fails</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Send_test_mail_for_smtp_fails&amp;diff=770827"/>
		<updated>2020-12-04T09:42:26Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;Websites updating to Joomla 3.9.23 trying to send a test mail using smtp auth may fail.  ==Versions affected== {{tip|This pertains only to Joomla! version(s): &amp;#039;&amp;#039;&amp;#039;3.9.23&amp;#039;&amp;#039;&amp;#039;|tit...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Websites updating to Joomla 3.9.23 trying to send a test mail using smtp auth may fail.&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.23&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Due to a security update we no longer show passwords on the global configuration screen. The send test mail function uses the password from the current configuration screen which is empty after saving the configuration.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
Update to Joomla 3.9.24. &lt;br /&gt;
In the meantime you have to entering the SMTP Auth password before sending a test mail.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;!-- Change if needed --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Version 3.9 FAQ]]&lt;br /&gt;
[[Category:Version 3.9.23 FAQ]]&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Timeout_installing_extensions&amp;diff=770820</id>
		<title>J3.x:Timeout installing extensions</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Timeout_installing_extensions&amp;diff=770820"/>
		<updated>2020-12-04T09:31:49Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;Some websites updating to Joomla 3.9.23 installing or updating a extension could lead to a timeout.  ==Versions affected== {{tip|This pertains only to Joomla! version(s): &amp;#039;&amp;#039;&amp;#039;3...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Some websites updating to Joomla 3.9.23 installing or updating a extension could lead to a timeout.&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.23&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
The updated ZIP file decompression routine to support php 8 could lead to a much longer decompression time. Depending on the installed extension and webserver configuration this could result in an error because of a timeout.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
Update to Joomla 3.9.24. &lt;br /&gt;
In the meantime replacing the content of &#039;&#039;libraries/vendor/joomla/archive/src/Zip.php&#039;&#039; with the [https://raw.githubusercontent.com/nibra/archive/1.1.7/src/Zip.php updated version].&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;!-- Change if needed --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Version 3.9 FAQ]]&lt;br /&gt;
[[Category:Version 3.9.23 FAQ]]&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Pizza_Bugs_and_Fun_2020/Contributors_List&amp;diff=757254</id>
		<title>Pizza Bugs and Fun 2020/Contributors List</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Pizza_Bugs_and_Fun_2020/Contributors_List&amp;diff=757254"/>
		<updated>2020-10-17T09:46:19Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Added austria&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Image:pbf-2020&amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt; en&amp;lt;/translate&amp;gt;.png|1100px]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:43--&amp;gt; Back to &amp;lt;/translate&amp;gt;[[Pizza,_Bugs_and_Fun_2020|Pizza Bugs and Fun 2020]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&amp;lt;languages /&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:PBF2020 CONTRIBUTORS.png|1100px|center]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:44--&amp;gt; &#039;&#039;Edit the page and add your name to have your contribution to PBF2020 recorded.&#039;&#039;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== &amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt; These awesome Joomlers contributed to Pizza, Bugs &amp;amp; Fun 2020&amp;lt;/translate&amp;gt;==&lt;br /&gt;
&lt;br /&gt;
Australia:&lt;br /&gt;
* Patrick Jackson (Melbourne JUG)&lt;br /&gt;
* Stuart Robertson (Brisbane JUG)&lt;br /&gt;
* Jenny McWilliam (Melbourne JUG)&lt;br /&gt;
* Mick Harner (Brisbane JUG)&lt;br /&gt;
* Vladimir Roudakov (Brisbane JUG)&lt;br /&gt;
&lt;br /&gt;
Austria:&lt;br /&gt;
* Florian Bauer (JUG Wien)&lt;br /&gt;
* Harald Leithner (JUG Wien)&lt;br /&gt;
* Sigrid Gramlinger (JUG Wien)&lt;br /&gt;
&lt;br /&gt;
Switzerland:&lt;br /&gt;
* Adi Heutschi (Swiss Joomla Assoication)&lt;br /&gt;
* Christopf Rimle (Swiss Joomla Assoication)&lt;br /&gt;
* Christoph Höfliger (Swiss Joomla Assoication)&lt;br /&gt;
* Roger Perren (Joomlaclub)&lt;br /&gt;
&lt;br /&gt;
UK&lt;br /&gt;
* Phil Walton (JUG London)&lt;br /&gt;
* Gary Barclay (JUG London)&lt;br /&gt;
* George Wilson (JUG London)&lt;br /&gt;
&lt;br /&gt;
Italy:&lt;br /&gt;
* Alessandro Lumaca (JUG Milano Centro)&lt;br /&gt;
* Luca Racchetti (JUG Milano Centro)&lt;br /&gt;
* Nicola Galgano&lt;br /&gt;
* Giuseppe Covino&lt;br /&gt;
* Rosario Profeta&lt;br /&gt;
&lt;br /&gt;
Germany:&lt;br /&gt;
* Benjamin Trenkle (JUG Munich)&lt;br /&gt;
* Christiane Maier-Stadtherr (JUG Munich)&lt;br /&gt;
* Richard Fath&lt;br /&gt;
* Mike Brandner (JUG Rhein-Main/Frankfurt)&lt;br /&gt;
* Stefan Wendhausen (JUG Nuremberg)&lt;br /&gt;
* Dieter Ziller&lt;br /&gt;
&lt;br /&gt;
The Netherlands:&lt;br /&gt;
* Leon Kolenburg (JUG043 Maastricht)&lt;br /&gt;
* Marco Sieben (JUG043 Maastricht)&lt;br /&gt;
* Pierre Veelen (JUG043 Maastricht)&lt;br /&gt;
* Johan van der Velde (JUG043 Maastricht)&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Unuseable_tab_panels_in_user_profile&amp;diff=751350</id>
		<title>J3.x:Unuseable tab panels in user profile</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Unuseable_tab_panels_in_user_profile&amp;diff=751350"/>
		<updated>2020-10-08T19:01:44Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Websites without two factor authentication, updating to Joomla 3.9.22 results in a broken backend user profile edit page.&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.22&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
An issue was missed whilst testing the new two factor configuration for user profiles in the backend make the view unusable if no 2fa plugin is active.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
Update to Joomla 3.9.23. &lt;br /&gt;
In the meantime activate [https://docs.joomla.org/J3.x:Two_Factor_Authentication Two Factor Authentication] or you can apply the code change [https://github.com/joomla/joomla-cms/pull/31002/files here] to the &#039;&#039;administrator/components/com_admin/views/profile/tmpl/edit.php&#039;&#039; file. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;!-- Change if needed --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Version 3.9 FAQ]]&lt;br /&gt;
[[Category:Version 3.9.22 FAQ]]&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Unuseable_tab_panels_in_user_profile&amp;diff=751349</id>
		<title>J3.x:Unuseable tab panels in user profile</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Unuseable_tab_panels_in_user_profile&amp;diff=751349"/>
		<updated>2020-10-08T18:58:19Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;Websites without two factor authentication, updating to Joomla 3.9.22 results in a broken backend user profile edit page.  ==Versions affected== {{tip|This pertains only to Jo...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Websites without two factor authentication, updating to Joomla 3.9.22 results in a broken backend user profile edit page.&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.22&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
An issue was missed whilst testing the new two factor configuration for user profiles in the backend make the view unusable if no 2fa plugin is active.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
Update to Joomla 3.9.23. In the meantime you can apply the code change [https://github.com/joomla/joomla-cms/pull/31002/files here] to the &#039;&#039;administrator/components/com_admin/views/profile/tmpl/edit.php&#039;&#039; file&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&amp;lt;!-- Change if needed --&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Category:Version 3.9 FAQ]]&lt;br /&gt;
[[Category:Version 3.9.22 FAQ]]&lt;br /&gt;
[[Category:FAQ]]&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648850</id>
		<title>J3.x:Duplicate usernames cause update issue/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648850"/>
		<updated>2020-03-10T17:16:29Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;Deine Webseite hat mehr als einen Benutzer in der&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;
Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in Panik ausbrechen - Das Update wurde fast vollständig durchgeführt, nur die fehlende Datenbank Änderung muss noch durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
==Berichtete Fehler==&lt;br /&gt;
Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; in der Benutzer Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter.&lt;br /&gt;
[[File:76331128-c6389180-62ff-11ea-81d6-14cd3e5ab28d.png|thumb|Joomla 3.9.16 Upgrade Error]]&lt;br /&gt;
&lt;br /&gt;
==Betroffene Versionen==&lt;br /&gt;
{{tip|Das gilt nur für Joomla! Version(en): &#039;&#039;&#039;3.9.16&#039;&#039;&#039;|title=Allgemeine Informationen}}&lt;br /&gt;
&lt;br /&gt;
==Was ist der Grund==&lt;br /&gt;
Deine Webseite hat mehr als einen Benutzer in der &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table with the same username, which is a security concern in that the incorrect account may be accessed by the wrong account owner.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
You will need to review your &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table in your database and fix any duplicated usernames by either removing old user accounts or changing the username until all usernames are unique. Once this is finished, if you have already upgraded to 3.9.16 run the database schema fixer tool to finish the upgrade (this step is not required if you do this review prior to upgrading).&lt;br /&gt;
&lt;br /&gt;
Joomla is unable to automatically determine the correct action to take and as a result is unable to perform this step for you - it has to be fixed by you as the site owner.&lt;br /&gt;
&lt;br /&gt;
The following SQL Query can be run on your database to view which usernames are duplicated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;SELECT username FROM #__users GROUP BY username HAVING COUNT(*) &amp;gt; 1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.16 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/9/de&amp;diff=648849</id>
		<title>Translations:J3.x:Duplicate usernames cause update issue/9/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/9/de&amp;diff=648849"/>
		<updated>2020-03-10T17:16:28Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;Deine Webseite hat mehr als einen Benutzer in der&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Deine Webseite hat mehr als einen Benutzer in der&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648848</id>
		<title>J3.x:Duplicate usernames cause update issue/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648848"/>
		<updated>2020-03-10T17:16:05Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;==Was ist der Grund==&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;
Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in Panik ausbrechen - Das Update wurde fast vollständig durchgeführt, nur die fehlende Datenbank Änderung muss noch durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
==Berichtete Fehler==&lt;br /&gt;
Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; in der Benutzer Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter.&lt;br /&gt;
[[File:76331128-c6389180-62ff-11ea-81d6-14cd3e5ab28d.png|thumb|Joomla 3.9.16 Upgrade Error]]&lt;br /&gt;
&lt;br /&gt;
==Betroffene Versionen==&lt;br /&gt;
{{tip|Das gilt nur für Joomla! Version(en): &#039;&#039;&#039;3.9.16&#039;&#039;&#039;|title=Allgemeine Informationen}}&lt;br /&gt;
&lt;br /&gt;
==Was ist der Grund==&lt;br /&gt;
Your website has more than one user in the &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table with the same username, which is a security concern in that the incorrect account may be accessed by the wrong account owner.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
You will need to review your &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table in your database and fix any duplicated usernames by either removing old user accounts or changing the username until all usernames are unique. Once this is finished, if you have already upgraded to 3.9.16 run the database schema fixer tool to finish the upgrade (this step is not required if you do this review prior to upgrading).&lt;br /&gt;
&lt;br /&gt;
Joomla is unable to automatically determine the correct action to take and as a result is unable to perform this step for you - it has to be fixed by you as the site owner.&lt;br /&gt;
&lt;br /&gt;
The following SQL Query can be run on your database to view which usernames are duplicated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;SELECT username FROM #__users GROUP BY username HAVING COUNT(*) &amp;gt; 1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.16 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/8/de&amp;diff=648847</id>
		<title>Translations:J3.x:Duplicate usernames cause update issue/8/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/8/de&amp;diff=648847"/>
		<updated>2020-03-10T17:16:04Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;==Was ist der Grund==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Was ist der Grund==&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648844</id>
		<title>J3.x:Duplicate usernames cause update issue/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648844"/>
		<updated>2020-03-10T17:15:39Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;Allgemeine Informationen&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;
Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in Panik ausbrechen - Das Update wurde fast vollständig durchgeführt, nur die fehlende Datenbank Änderung muss noch durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
==Berichtete Fehler==&lt;br /&gt;
Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; in der Benutzer Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter.&lt;br /&gt;
[[File:76331128-c6389180-62ff-11ea-81d6-14cd3e5ab28d.png|thumb|Joomla 3.9.16 Upgrade Error]]&lt;br /&gt;
&lt;br /&gt;
==Betroffene Versionen==&lt;br /&gt;
{{tip|Das gilt nur für Joomla! Version(en): &#039;&#039;&#039;3.9.16&#039;&#039;&#039;|title=Allgemeine Informationen}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Your website has more than one user in the &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table with the same username, which is a security concern in that the incorrect account may be accessed by the wrong account owner.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
You will need to review your &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table in your database and fix any duplicated usernames by either removing old user accounts or changing the username until all usernames are unique. Once this is finished, if you have already upgraded to 3.9.16 run the database schema fixer tool to finish the upgrade (this step is not required if you do this review prior to upgrading).&lt;br /&gt;
&lt;br /&gt;
Joomla is unable to automatically determine the correct action to take and as a result is unable to perform this step for you - it has to be fixed by you as the site owner.&lt;br /&gt;
&lt;br /&gt;
The following SQL Query can be run on your database to view which usernames are duplicated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;SELECT username FROM #__users GROUP BY username HAVING COUNT(*) &amp;gt; 1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.16 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/7/de&amp;diff=648843</id>
		<title>Translations:J3.x:Duplicate usernames cause update issue/7/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/7/de&amp;diff=648843"/>
		<updated>2020-03-10T17:15:38Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;Allgemeine Informationen&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Allgemeine Informationen&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648840</id>
		<title>J3.x:Duplicate usernames cause update issue/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648840"/>
		<updated>2020-03-10T17:15:28Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;Das gilt nur für Joomla! Version(en):&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;
Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in Panik ausbrechen - Das Update wurde fast vollständig durchgeführt, nur die fehlende Datenbank Änderung muss noch durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
==Berichtete Fehler==&lt;br /&gt;
Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; in der Benutzer Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter.&lt;br /&gt;
[[File:76331128-c6389180-62ff-11ea-81d6-14cd3e5ab28d.png|thumb|Joomla 3.9.16 Upgrade Error]]&lt;br /&gt;
&lt;br /&gt;
==Betroffene Versionen==&lt;br /&gt;
{{tip|Das gilt nur für Joomla! Version(en): &#039;&#039;&#039;3.9.16&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Your website has more than one user in the &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table with the same username, which is a security concern in that the incorrect account may be accessed by the wrong account owner.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
You will need to review your &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table in your database and fix any duplicated usernames by either removing old user accounts or changing the username until all usernames are unique. Once this is finished, if you have already upgraded to 3.9.16 run the database schema fixer tool to finish the upgrade (this step is not required if you do this review prior to upgrading).&lt;br /&gt;
&lt;br /&gt;
Joomla is unable to automatically determine the correct action to take and as a result is unable to perform this step for you - it has to be fixed by you as the site owner.&lt;br /&gt;
&lt;br /&gt;
The following SQL Query can be run on your database to view which usernames are duplicated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;SELECT username FROM #__users GROUP BY username HAVING COUNT(*) &amp;gt; 1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.16 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/6/de&amp;diff=648839</id>
		<title>Translations:J3.x:Duplicate usernames cause update issue/6/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/6/de&amp;diff=648839"/>
		<updated>2020-03-10T17:15:27Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;Das gilt nur für Joomla! Version(en):&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das gilt nur für Joomla! Version(en):&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648832</id>
		<title>J3.x:Duplicate usernames cause update issue/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648832"/>
		<updated>2020-03-10T17:14:46Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;==Betroffene Versionen==&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;
Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in Panik ausbrechen - Das Update wurde fast vollständig durchgeführt, nur die fehlende Datenbank Änderung muss noch durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
==Berichtete Fehler==&lt;br /&gt;
Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; in der Benutzer Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter.&lt;br /&gt;
[[File:76331128-c6389180-62ff-11ea-81d6-14cd3e5ab28d.png|thumb|Joomla 3.9.16 Upgrade Error]]&lt;br /&gt;
&lt;br /&gt;
==Betroffene Versionen==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.16&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Your website has more than one user in the &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table with the same username, which is a security concern in that the incorrect account may be accessed by the wrong account owner.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
You will need to review your &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table in your database and fix any duplicated usernames by either removing old user accounts or changing the username until all usernames are unique. Once this is finished, if you have already upgraded to 3.9.16 run the database schema fixer tool to finish the upgrade (this step is not required if you do this review prior to upgrading).&lt;br /&gt;
&lt;br /&gt;
Joomla is unable to automatically determine the correct action to take and as a result is unable to perform this step for you - it has to be fixed by you as the site owner.&lt;br /&gt;
&lt;br /&gt;
The following SQL Query can be run on your database to view which usernames are duplicated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;SELECT username FROM #__users GROUP BY username HAVING COUNT(*) &amp;gt; 1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.16 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/5/de&amp;diff=648831</id>
		<title>Translations:J3.x:Duplicate usernames cause update issue/5/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/5/de&amp;diff=648831"/>
		<updated>2020-03-10T17:14:45Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;==Betroffene Versionen==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Betroffene Versionen==&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648830</id>
		<title>J3.x:Duplicate usernames cause update issue/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648830"/>
		<updated>2020-03-10T17:14:41Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &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;
Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in Panik ausbrechen - Das Update wurde fast vollständig durchgeführt, nur die fehlende Datenbank Änderung muss noch durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
==Berichtete Fehler==&lt;br /&gt;
Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; in der Benutzer Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter.&lt;br /&gt;
[[File:76331128-c6389180-62ff-11ea-81d6-14cd3e5ab28d.png|thumb|Joomla 3.9.16 Upgrade Error]]&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.16&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Your website has more than one user in the &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table with the same username, which is a security concern in that the incorrect account may be accessed by the wrong account owner.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
You will need to review your &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table in your database and fix any duplicated usernames by either removing old user accounts or changing the username until all usernames are unique. Once this is finished, if you have already upgraded to 3.9.16 run the database schema fixer tool to finish the upgrade (this step is not required if you do this review prior to upgrading).&lt;br /&gt;
&lt;br /&gt;
Joomla is unable to automatically determine the correct action to take and as a result is unable to perform this step for you - it has to be fixed by you as the site owner.&lt;br /&gt;
&lt;br /&gt;
The following SQL Query can be run on your database to view which usernames are duplicated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;SELECT username FROM #__users GROUP BY username HAVING COUNT(*) &amp;gt; 1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.16 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/4/de&amp;diff=648829</id>
		<title>Translations:J3.x:Duplicate usernames cause update issue/4/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/4/de&amp;diff=648829"/>
		<updated>2020-03-10T17:14:40Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;in der Benutzer Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter.&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648828</id>
		<title>J3.x:Duplicate usernames cause update issue/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648828"/>
		<updated>2020-03-10T17:14:39Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &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;
Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in Panik ausbrechen - Das Update wurde fast vollständig durchgeführt, nur die fehlende Datenbank Änderung muss noch durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
==Berichtete Fehler==&lt;br /&gt;
Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; der Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter.&lt;br /&gt;
[[File:76331128-c6389180-62ff-11ea-81d6-14cd3e5ab28d.png|thumb|Joomla 3.9.16 Upgrade Error]]&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.16&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Your website has more than one user in the &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table with the same username, which is a security concern in that the incorrect account may be accessed by the wrong account owner.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
You will need to review your &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table in your database and fix any duplicated usernames by either removing old user accounts or changing the username until all usernames are unique. Once this is finished, if you have already upgraded to 3.9.16 run the database schema fixer tool to finish the upgrade (this step is not required if you do this review prior to upgrading).&lt;br /&gt;
&lt;br /&gt;
Joomla is unable to automatically determine the correct action to take and as a result is unable to perform this step for you - it has to be fixed by you as the site owner.&lt;br /&gt;
&lt;br /&gt;
The following SQL Query can be run on your database to view which usernames are duplicated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;SELECT username FROM #__users GROUP BY username HAVING COUNT(*) &amp;gt; 1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.16 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/3/de&amp;diff=648827</id>
		<title>Translations:J3.x:Duplicate usernames cause update issue/3/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/3/de&amp;diff=648827"/>
		<updated>2020-03-10T17:14:38Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648824</id>
		<title>J3.x:Duplicate usernames cause update issue/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648824"/>
		<updated>2020-03-10T17:14:25Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &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;
Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in Panik ausbrechen - Das Update wurde fast vollständig durchgeführt, nur die fehlende Datenbank Änderung muss noch durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
==Berichtete Fehler==&lt;br /&gt;
Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag in der Benutzer Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter. &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; der Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter.&lt;br /&gt;
[[File:76331128-c6389180-62ff-11ea-81d6-14cd3e5ab28d.png|thumb|Joomla 3.9.16 Upgrade Error]]&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.16&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Your website has more than one user in the &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table with the same username, which is a security concern in that the incorrect account may be accessed by the wrong account owner.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
You will need to review your &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table in your database and fix any duplicated usernames by either removing old user accounts or changing the username until all usernames are unique. Once this is finished, if you have already upgraded to 3.9.16 run the database schema fixer tool to finish the upgrade (this step is not required if you do this review prior to upgrading).&lt;br /&gt;
&lt;br /&gt;
Joomla is unable to automatically determine the correct action to take and as a result is unable to perform this step for you - it has to be fixed by you as the site owner.&lt;br /&gt;
&lt;br /&gt;
The following SQL Query can be run on your database to view which usernames are duplicated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;SELECT username FROM #__users GROUP BY username HAVING COUNT(*) &amp;gt; 1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.16 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/3/de&amp;diff=648823</id>
		<title>Translations:J3.x:Duplicate usernames cause update issue/3/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/3/de&amp;diff=648823"/>
		<updated>2020-03-10T17:14:25Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag in der Benutzer Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter.&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648818</id>
		<title>J3.x:Duplicate usernames cause update issue/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648818"/>
		<updated>2020-03-10T17:13:44Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;der Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter.&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;
Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in Panik ausbrechen - Das Update wurde fast vollständig durchgeführt, nur die fehlende Datenbank Änderung muss noch durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
==Berichtete Fehler==&lt;br /&gt;
Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag in &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; der Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter.&lt;br /&gt;
[[File:76331128-c6389180-62ff-11ea-81d6-14cd3e5ab28d.png|thumb|Joomla 3.9.16 Upgrade Error]]&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.16&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Your website has more than one user in the &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table with the same username, which is a security concern in that the incorrect account may be accessed by the wrong account owner.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
You will need to review your &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table in your database and fix any duplicated usernames by either removing old user accounts or changing the username until all usernames are unique. Once this is finished, if you have already upgraded to 3.9.16 run the database schema fixer tool to finish the upgrade (this step is not required if you do this review prior to upgrading).&lt;br /&gt;
&lt;br /&gt;
Joomla is unable to automatically determine the correct action to take and as a result is unable to perform this step for you - it has to be fixed by you as the site owner.&lt;br /&gt;
&lt;br /&gt;
The following SQL Query can be run on your database to view which usernames are duplicated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;SELECT username FROM #__users GROUP BY username HAVING COUNT(*) &amp;gt; 1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.16 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/4/de&amp;diff=648817</id>
		<title>Translations:J3.x:Duplicate usernames cause update issue/4/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/4/de&amp;diff=648817"/>
		<updated>2020-03-10T17:13:43Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;der Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;der Tabelle bei einem Upgrade von Joomla 3.9.15 oder älter.&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648814</id>
		<title>J3.x:Duplicate usernames cause update issue/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648814"/>
		<updated>2020-03-10T17:13:14Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &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;
Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in Panik ausbrechen - Das Update wurde fast vollständig durchgeführt, nur die fehlende Datenbank Änderung muss noch durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
==Berichtete Fehler==&lt;br /&gt;
Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag in &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table when upgrading from Joomla 3.9.15 or older.&lt;br /&gt;
[[File:76331128-c6389180-62ff-11ea-81d6-14cd3e5ab28d.png|thumb|Joomla 3.9.16 Upgrade Error]]&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.16&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Your website has more than one user in the &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table with the same username, which is a security concern in that the incorrect account may be accessed by the wrong account owner.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
You will need to review your &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table in your database and fix any duplicated usernames by either removing old user accounts or changing the username until all usernames are unique. Once this is finished, if you have already upgraded to 3.9.16 run the database schema fixer tool to finish the upgrade (this step is not required if you do this review prior to upgrading).&lt;br /&gt;
&lt;br /&gt;
Joomla is unable to automatically determine the correct action to take and as a result is unable to perform this step for you - it has to be fixed by you as the site owner.&lt;br /&gt;
&lt;br /&gt;
The following SQL Query can be run on your database to view which usernames are duplicated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;SELECT username FROM #__users GROUP BY username HAVING COUNT(*) &amp;gt; 1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.16 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/3/de&amp;diff=648813</id>
		<title>Translations:J3.x:Duplicate usernames cause update issue/3/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/3/de&amp;diff=648813"/>
		<updated>2020-03-10T17:13:13Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag in&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648807</id>
		<title>J3.x:Duplicate usernames cause update issue/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648807"/>
		<updated>2020-03-10T17:12:37Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag.&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;
Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in Panik ausbrechen - Das Update wurde fast vollständig durchgeführt, nur die fehlende Datenbank Änderung muss noch durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
==Berichtete Fehler==&lt;br /&gt;
Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag. &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table when upgrading from Joomla 3.9.15 or older.&lt;br /&gt;
[[File:76331128-c6389180-62ff-11ea-81d6-14cd3e5ab28d.png|thumb|Joomla 3.9.16 Upgrade Error]]&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.16&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Your website has more than one user in the &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table with the same username, which is a security concern in that the incorrect account may be accessed by the wrong account owner.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
You will need to review your &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table in your database and fix any duplicated usernames by either removing old user accounts or changing the username until all usernames are unique. Once this is finished, if you have already upgraded to 3.9.16 run the database schema fixer tool to finish the upgrade (this step is not required if you do this review prior to upgrading).&lt;br /&gt;
&lt;br /&gt;
Joomla is unable to automatically determine the correct action to take and as a result is unable to perform this step for you - it has to be fixed by you as the site owner.&lt;br /&gt;
&lt;br /&gt;
The following SQL Query can be run on your database to view which usernames are duplicated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;SELECT username FROM #__users GROUP BY username HAVING COUNT(*) &amp;gt; 1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.16 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/3/de&amp;diff=648806</id>
		<title>Translations:J3.x:Duplicate usernames cause update issue/3/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/3/de&amp;diff=648806"/>
		<updated>2020-03-10T17:12:36Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Benutzer bekommen eine Update Fehlermeldung angezeigt auf Grund einer fehlgeschlagenen Datenbank Abfrage durch einen doppelte Eintrag.&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648800</id>
		<title>J3.x:Duplicate usernames cause update issue/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648800"/>
		<updated>2020-03-10T17:09:52Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;==Berichtete Fehler==&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;
Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in Panik ausbrechen - Das Update wurde fast vollständig durchgeführt, nur die fehlende Datenbank Änderung muss noch durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
==Berichtete Fehler==&lt;br /&gt;
Users receive an update error regarding a failed database query due to a duplicated key in their site&#039;s &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table when upgrading from Joomla 3.9.15 or older.&lt;br /&gt;
[[File:76331128-c6389180-62ff-11ea-81d6-14cd3e5ab28d.png|thumb|Joomla 3.9.16 Upgrade Error]]&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.16&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Your website has more than one user in the &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table with the same username, which is a security concern in that the incorrect account may be accessed by the wrong account owner.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
You will need to review your &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table in your database and fix any duplicated usernames by either removing old user accounts or changing the username until all usernames are unique. Once this is finished, if you have already upgraded to 3.9.16 run the database schema fixer tool to finish the upgrade (this step is not required if you do this review prior to upgrading).&lt;br /&gt;
&lt;br /&gt;
Joomla is unable to automatically determine the correct action to take and as a result is unable to perform this step for you - it has to be fixed by you as the site owner.&lt;br /&gt;
&lt;br /&gt;
The following SQL Query can be run on your database to view which usernames are duplicated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;SELECT username FROM #__users GROUP BY username HAVING COUNT(*) &amp;gt; 1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.16 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/2/de&amp;diff=648799</id>
		<title>Translations:J3.x:Duplicate usernames cause update issue/2/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/2/de&amp;diff=648799"/>
		<updated>2020-03-10T17:09:51Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;==Berichtete Fehler==&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==Berichtete Fehler==&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648798</id>
		<title>J3.x:Duplicate usernames cause update issue/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648798"/>
		<updated>2020-03-10T17:09:39Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in...&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;
Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in Panik ausbrechen - Das Update wurde fast vollständig durchgeführt, nur die fehlende Datenbank Änderung muss noch durchgeführt werden.&lt;br /&gt;
&lt;br /&gt;
==Errors reported==&lt;br /&gt;
Users receive an update error regarding a failed database query due to a duplicated key in their site&#039;s &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table when upgrading from Joomla 3.9.15 or older.&lt;br /&gt;
[[File:76331128-c6389180-62ff-11ea-81d6-14cd3e5ab28d.png|thumb|Joomla 3.9.16 Upgrade Error]]&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.16&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Your website has more than one user in the &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table with the same username, which is a security concern in that the incorrect account may be accessed by the wrong account owner.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
You will need to review your &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table in your database and fix any duplicated usernames by either removing old user accounts or changing the username until all usernames are unique. Once this is finished, if you have already upgraded to 3.9.16 run the database schema fixer tool to finish the upgrade (this step is not required if you do this review prior to upgrading).&lt;br /&gt;
&lt;br /&gt;
Joomla is unable to automatically determine the correct action to take and as a result is unable to perform this step for you - it has to be fixed by you as the site owner.&lt;br /&gt;
&lt;br /&gt;
The following SQL Query can be run on your database to view which usernames are duplicated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;SELECT username FROM #__users GROUP BY username HAVING COUNT(*) &amp;gt; 1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.16 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/1/de&amp;diff=648797</id>
		<title>Translations:J3.x:Duplicate usernames cause update issue/1/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/1/de&amp;diff=648797"/>
		<updated>2020-03-10T17:09:38Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Bei einigen Webseiten die auf Joomla! 3.9.16 aktualisieren kann es auf Grund von doppelten Benutzereinträgen zu einem Datenbankfehler kommen. Wenn das passiert bitte nicht in Panik ausbrechen - Das Update wurde fast vollständig durchgeführt, nur die fehlende Datenbank Änderung muss noch durchgeführt werden.&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648792</id>
		<title>J3.x:Duplicate usernames cause update issue/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=J3.x:Duplicate_usernames_cause_update_issue/de&amp;diff=648792"/>
		<updated>2020-03-10T17:07:15Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;J3.x:Doppelte Benutzernamen bereiten Probleme beim Update&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;
In some websites, updating to Joomla 3.9.16 results in a database error due to duplicated usernames. If this happens do not panic - the upgrade has been mostly completed without issue, and the remaining database change can be applied after following the instructions below.&lt;br /&gt;
&lt;br /&gt;
==Errors reported==&lt;br /&gt;
Users receive an update error regarding a failed database query due to a duplicated key in their site&#039;s &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table when upgrading from Joomla 3.9.15 or older.&lt;br /&gt;
[[File:76331128-c6389180-62ff-11ea-81d6-14cd3e5ab28d.png|thumb|Joomla 3.9.16 Upgrade Error]]&lt;br /&gt;
&lt;br /&gt;
==Versions affected==&lt;br /&gt;
{{tip|This pertains only to Joomla! version(s): &#039;&#039;&#039;3.9.16&#039;&#039;&#039;|title=General Information}}&lt;br /&gt;
&lt;br /&gt;
==What is the cause==&lt;br /&gt;
Your website has more than one user in the &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table with the same username, which is a security concern in that the incorrect account may be accessed by the wrong account owner.&lt;br /&gt;
&lt;br /&gt;
==How to fix==&lt;br /&gt;
You will need to review your &amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;#__users&amp;lt;/source&amp;gt; table in your database and fix any duplicated usernames by either removing old user accounts or changing the username until all usernames are unique. Once this is finished, if you have already upgraded to 3.9.16 run the database schema fixer tool to finish the upgrade (this step is not required if you do this review prior to upgrading).&lt;br /&gt;
&lt;br /&gt;
Joomla is unable to automatically determine the correct action to take and as a result is unable to perform this step for you - it has to be fixed by you as the site owner.&lt;br /&gt;
&lt;br /&gt;
The following SQL Query can be run on your database to view which usernames are duplicated:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot; inline&amp;gt;SELECT username FROM #__users GROUP BY username HAVING COUNT(*) &amp;gt; 1&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__NOTOC__&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Version 3.9 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Version 3.9.16 FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:FAQ{{#translation:}}]]&lt;br /&gt;
[[Category:Joomla! 3.9{{#translation:}}]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/Page_display_title/de&amp;diff=648791</id>
		<title>Translations:J3.x:Duplicate usernames cause update issue/Page display title/de</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Translations:J3.x:Duplicate_usernames_cause_update_issue/Page_display_title/de&amp;diff=648791"/>
		<updated>2020-03-10T17:07:14Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Created page with &amp;quot;J3.x:Doppelte Benutzernamen bereiten Probleme beim Update&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;J3.x:Doppelte Benutzernamen bereiten Probleme beim Update&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Retrieving_request_data_using_JInput&amp;diff=645539</id>
		<title>Retrieving request data using JInput</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Retrieving_request_data_using_JInput&amp;diff=645539"/>
		<updated>2020-01-13T08:22:48Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: Add array syntax&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{version|2.5,3.x|platform=11.1,12.1}}&lt;br /&gt;
&lt;br /&gt;
== Overview ==&lt;br /&gt;
The Joomla Input class (previously known as JInput class) allows you to retrieve the parameters which were sent in the HTTP request. It doesn&#039;t matter whether the parameters are HTTP GET parameters (specified in the &amp;lt;tt&amp;gt;?param=val&amp;lt;/tt&amp;gt; query part of the URL) or POST parameters (specified in the body of the HTTP request), both are accessible via the methods described here.&lt;br /&gt;
&lt;br /&gt;
You can specify a filter to be applied to the parameter value, so that what you receive back is sanitised and in the form which you expect. &lt;br /&gt;
&lt;br /&gt;
For example, if you expect a parameter p1 to be an integer, then you can apply an &amp;quot;INTEGER&amp;quot; filter when you get its value. Then if someone specifies &amp;lt;tt&amp;gt;?p1=82abc5&amp;lt;/tt&amp;gt; in the URL string you will get back the value &amp;lt;tt&amp;gt;82&amp;lt;/tt&amp;gt;. (No error is raised if the value doesn&#039;t match what you expect – you just get the result of passing the value through the filter).&lt;br /&gt;
&lt;br /&gt;
==Using JInput==&lt;br /&gt;
To use JInput you must first create an object of the Input class by using this code:&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;
$input = Factory::getApplication()-&amp;gt;input;&lt;br /&gt;
// equivalent of the older format $input = JFactory::getApplication()-&amp;gt;input;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
then to get the value of a specific parameter use&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$val = $input-&amp;gt;get(param_name, default_value, filter);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where:&lt;br /&gt;
* &amp;lt;tt&amp;gt;param_name&amp;lt;/tt&amp;gt; is a string containing the name of the parameter you want to retrieve&lt;br /&gt;
* &amp;lt;tt&amp;gt;default_value&amp;lt;/tt&amp;gt; is the value you want returned if the parameter is not found; it may be a string, integer, array, null, etc. – whatever you want.&lt;br /&gt;
* &amp;lt;tt&amp;gt;filter&amp;lt;/tt&amp;gt; is a string specifying one of the filters in the list below. If you don&#039;t specify this parameter then a default of &amp;quot;cmd&amp;quot; is used.&lt;br /&gt;
&lt;br /&gt;
As an example, the code below shows how to get the value of a parameter p1. The value of the parameter is passed through a &amp;quot;string&amp;quot; filter which will remove html tags and the like. If the parameter doesn&#039;t exist then the string &amp;quot;xxx&amp;quot; is returned. &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;
$app = Factory::getApplication();   // equivalent of $app = JFactory::getApplication();&lt;br /&gt;
$input = $app-&amp;gt;input;&lt;br /&gt;
$p1 = $input-&amp;gt;get(&#039;p1&#039;, &#039;xxx&#039;, &#039;string&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;JInput returns an array of filtered entries if the user input is an array. Calling the above example with ?p1[]=xxx will return $p1 as array with one element &#039;xxx&#039; filter as string.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
The method &amp;lt;tt&amp;gt;exists()&amp;lt;/tt&amp;gt; can also be used to check if a parameter exists, but in practice this isn&#039;t often used, as using the &amp;lt;tt&amp;gt;default_value&amp;lt;/tt&amp;gt; parameter usually covers adequately the case when a parameter is absent. &lt;br /&gt;
&lt;br /&gt;
== Available Filters ==&lt;br /&gt;
&lt;br /&gt;
Below is a list of the available filters, together with a little explanation if appropriate, and some code which is intended to clarify what the filter is actually doing. Filters can be specified in either lower or upper case, and if 2 filters are listed on the same line below, then it indicates that they are equivalent. &lt;br /&gt;
&lt;br /&gt;
{{notice|The code fragments in the following list show the &#039;&#039;implementation&#039;&#039; of the filters (assuming the value you want to retrieve is stored in &amp;lt;code&amp;gt;$source&amp;lt;/code&amp;gt;). You do not need them to &#039;&#039;use&#039;&#039; JInput; all you need for using JInput is the code shown above.}}&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;INT&amp;quot;, &amp;quot;INTEGER&amp;quot; - returns the first integer found in the parameter value&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Only use the first integer value&lt;br /&gt;
preg_match(&#039;/-?[0-9]+/&#039;, (string) $source, $matches);&lt;br /&gt;
$result = @ (int) $matches[0];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;UINT&amp;quot; - returns an unsigned int. For example, if the parameter is specified &amp;lt;tt&amp;gt;?p1=-2&amp;lt;/tt&amp;gt; then this filter will discard the minus sign and you will get the value &amp;lt;tt&amp;gt;2&amp;lt;/tt&amp;gt; returned as the value of &amp;lt;tt&amp;gt;p1&amp;lt;/tt&amp;gt;. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Only use the first integer value&lt;br /&gt;
preg_match(&#039;/-?[0-9]+/&#039;, (string) $source, $matches);&lt;br /&gt;
$result = @ abs((int) $matches[0]);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;FLOAT&amp;quot;, &amp;quot;DOUBLE&amp;quot; - returns the first float found&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Only use the first floating point value&lt;br /&gt;
preg_match(&#039;/-?[0-9]+(\.[0-9]+)?/&#039;, (string) $source, $matches);&lt;br /&gt;
$result = @ (float) $matches[0];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;BOOL&amp;quot;, &amp;quot;BOOLEAN&amp;quot; - be careful with this! If you specify in the URL &amp;lt;tt&amp;gt;?p1=false&amp;lt;/tt&amp;gt; then the value of &amp;lt;tt&amp;gt;p1&amp;lt;/tt&amp;gt; is actually the string &amp;lt;tt&amp;gt;&amp;quot;false&amp;quot;&amp;lt;/tt&amp;gt; and as this is a non-empty string &amp;lt;tt&amp;gt;(bool) p1&amp;lt;/tt&amp;gt; will return &amp;lt;tt&amp;gt;true&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$result = (bool) $source;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;WORD&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Only allow characters a-z, and underscores&lt;br /&gt;
$result = (string) preg_replace(&#039;/[^A-Z_]/i&#039;, &#039;&#039;, $source);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;ALNUM&amp;quot; - alphanumeric&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Allow a-z and 0-9 only&lt;br /&gt;
$result = (string) preg_replace(&#039;/[^A-Z0-9]/i&#039;, &#039;&#039;, $source);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;CMD&amp;quot; - used often when obtaining the &amp;lt;tt&amp;gt;?option=controller.task&amp;lt;/tt&amp;gt; parameter in Joomla components. This is the default filter.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Allow a-z, 0-9, underscore, dot, dash. Also remove leading dots from result. &lt;br /&gt;
$result = (string) preg_replace(&#039;/[^A-Z0-9_\.-]/i&#039;, &#039;&#039;, $source);&lt;br /&gt;
$result = ltrim($result, &#039;.&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;BASE64&amp;quot; - base64 can be used to encode a URL as a string of text, which is then stored in a request parameter. For example, if a user accesses a URL which is protected then he/she may be redirected to the URL of the login page, with the original URL being base64 encoded and stored as a (return) parameter within the redirected URL. Once the user has logged in correctly the return parameter is retrieved and he/she is redirected back to the original URL accessed. (Note that you still have to decode the base64 yourself, the filter doesn&#039;t do this for you). &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Allow a-z, 0-9, slash, plus, equals.&lt;br /&gt;
$result = (string) preg_replace(&#039;/[^A-Z0-9\/+=]/i&#039;, &#039;&#039;, $source);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;STRING&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Converts the input to a plain text string; strips all tags / attributes.&lt;br /&gt;
$result = (string) $this-&amp;gt;_remove($this-&amp;gt;_decode((string) $source));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;HTML&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Converts the input to a string; strips all HTML tags / attributes.&lt;br /&gt;
$result = (string) $this-&amp;gt;_remove($this-&amp;gt;_decode((string) $source));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;ARRAY&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Attempts to convert the input to an array.&lt;br /&gt;
$result = (array) $source;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;PATH&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Converts the input into a string and validates it as a path. (e.g. path/to/file.png or path/to/dir)&lt;br /&gt;
// Note: Does NOT accept absolute paths, or paths ending in a trailing slash.&lt;br /&gt;
// For a visual representation of the pattern matching used, see http://www.regexper.com/#^[A-Za-z0-9_-]%2B[A-Za-z0-9_\.-]*%28[\\\\\%2F][A-Za-z0-9_-]%2B[A-Za-z0-9_\.-]*%29*%24&lt;br /&gt;
// Will return null if the input was invalid.&lt;br /&gt;
$pattern = &#039;/^[A-Za-z0-9_-]+[A-Za-z0-9_\.-]*([\\\\\/][A-Za-z0-9_-]+[A-Za-z0-9_\.-]*)*$/&#039;;&lt;br /&gt;
preg_match($pattern, (string) $source, $matches);&lt;br /&gt;
$result = @ (string) $matches[0];&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;RAW&amp;quot; - be careful using this, to avoid injection attacks on your website!&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// The raw input. No sanitisation provided.&lt;br /&gt;
$result = $source;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;quot;USERNAME&amp;quot;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Strips all invalid username characters.&lt;br /&gt;
$result = (string) preg_replace(&#039;/[\x00-\x1F\x7F&amp;lt;&amp;gt;&amp;quot;\&#039;%&amp;amp;]/&#039;, &#039;&#039;, $source)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Alternatively instead of adding the filter you can use the JInput type specific methods, for example:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Instead of:&lt;br /&gt;
$input-&amp;gt;get(&#039;name&#039;, &#039;&#039;, &#039;STRING&#039;);&lt;br /&gt;
// you can use:&lt;br /&gt;
$input-&amp;gt;getString(&#039;name&#039;, &#039;&#039;);&lt;br /&gt;
&lt;br /&gt;
// Instead of:&lt;br /&gt;
$input-&amp;gt;get(&#039;memberId&#039;, 0, &#039;INT&#039;);&lt;br /&gt;
// you can use:&lt;br /&gt;
$input-&amp;gt;getInt(&#039;memberId&#039;, 0);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Except that &amp;lt;tt&amp;gt;getArray()&amp;lt;/tt&amp;gt; is different; see [[Retrieving request data using JInput#Getting Multiple Values|Getting Multiple Values]] below.&lt;br /&gt;
&lt;br /&gt;
To retrieve an object, you can use:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$foo = $input-&amp;gt;get(param_name, null, null);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Sample Module Code ==&lt;br /&gt;
Below is the code for a simple Joomla module which you can install and run to demonstrate retrieval of parameter values. If you are unsure about development and installing a Joomla module then following the tutorial at [[S:MyLanguage/J3.x:Creating a simple module/Introduction| Creating a simple module ]] will help.&lt;br /&gt;
&lt;br /&gt;
In a folder mod_input create the following 2 files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;mod_input.xml&amp;lt;/tt&amp;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;module&amp;quot; version=&amp;quot;3.1&amp;quot; client=&amp;quot;site&amp;quot; method=&amp;quot;upgrade&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Input demo&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&lt;br /&gt;
    &amp;lt;description&amp;gt;Code demonstrating use of Joomla Input class to obtain HTTP parameters&amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;filename module=&amp;quot;mod_input&amp;quot;&amp;gt;mod_input.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;mod_input.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
&lt;br /&gt;
$app = Factory::getApplication();   // equivalent of $app = JFactory::getApplication();&lt;br /&gt;
$input = $app-&amp;gt;input;&lt;br /&gt;
&lt;br /&gt;
if ($input-&amp;gt;exists(&#039;p1&#039;))&lt;br /&gt;
{&lt;br /&gt;
	$v1 = $input-&amp;gt;get(&#039;p1&#039;, 0, &amp;quot;INT&amp;quot;);  // rhs equivalent to $input-&amp;gt;getInt(&#039;p1&#039;, 0);&lt;br /&gt;
	echo &amp;quot;&amp;lt;p&amp;gt;Int value of p1 is $v1&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
	$v1 = $input-&amp;gt;get(&#039;p1&#039;, 0, &amp;quot;UINT&amp;quot;); // uint&lt;br /&gt;
	echo &amp;quot;&amp;lt;p&amp;gt;Uint value of p1 is $v1&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
	$v1 = $input-&amp;gt;get(&#039;p1&#039;, 0, &amp;quot;string&amp;quot;); &lt;br /&gt;
	echo &amp;quot;&amp;lt;p&amp;gt;String Value of p1 is $v1&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
else&lt;br /&gt;
{&lt;br /&gt;
	echo &amp;quot;&amp;lt;p&amp;gt;Parameter p1 not specified&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Zip up the mod_input directory to create &amp;lt;tt&amp;gt;mod_input.zip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Within your Joomla administrator go to Install Extensions and via the Upload Package File tab upload this zip file to install this sample module.&lt;br /&gt;
&lt;br /&gt;
Make this module visible by editing it (click on it within the Modules page) then:&lt;br /&gt;
# making its status Published&lt;br /&gt;
# selecting a position on the page for it to be shown&lt;br /&gt;
# on the menu assignment tab specify the pages it should appear on&lt;br /&gt;
&lt;br /&gt;
Display a web page on which this module appears. Then add the &amp;lt;tt&amp;gt;p1&amp;lt;/tt&amp;gt; parameter to the URL&lt;br /&gt;
* if the URL has no existing parameters then append &amp;lt;tt&amp;gt;?p1=123abc&amp;lt;/tt&amp;gt;&lt;br /&gt;
* if the URL has existing parameters then append &amp;lt;tt&amp;gt;&amp;amp;p1=123abc&amp;lt;/tt&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You should see the results of retrieving the p1 parameter, and passing it through different filters.&lt;br /&gt;
You can experiment by specifying different values for p1, applying different filters, and you can use a utility such as [https://curl.haxx.se/ curl] to send HTTP POST parameters to confirm it works for those as well. &lt;br /&gt;
&lt;br /&gt;
== Getting Multiple Values ==&lt;br /&gt;
&lt;br /&gt;
To retrieve a number of values you can use the &amp;lt;code&amp;gt;getArray()&amp;lt;/code&amp;gt; method:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$fooValues = $input-&amp;gt;getArray(array(&#039;p1&#039; =&amp;gt; &#039;&#039;, &#039;p2&#039; =&amp;gt; &#039;&#039;, &#039;p3&#039; =&amp;gt; &#039;&#039;));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
or, if you want to determine the data to get step by step:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$fooArray = array();&lt;br /&gt;
$fooArray[&#039;p1&#039;] = &#039;&#039;;&lt;br /&gt;
$fooArray[&#039;p2&#039;] = &#039;&#039;;&lt;br /&gt;
$fooArray[&#039;p3&#039;] = &#039;&#039;;&lt;br /&gt;
$fooValues = $input-&amp;gt;getArray($fooArray);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The &amp;lt;code&amp;gt;$fooValues&amp;lt;/code&amp;gt; will be an array that consists of the same keys as used in &amp;lt;code&amp;gt;$fooArray&amp;lt;/code&amp;gt;, but with values attached.&lt;br /&gt;
&lt;br /&gt;
You can also specify different filters for each of the inputs:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;gt;&lt;br /&gt;
$fooValues = $input-&amp;gt;getArray(array(&lt;br /&gt;
    &#039;p1&#039; =&amp;gt; &#039;int&#039;,&lt;br /&gt;
    &#039;p2&#039; =&amp;gt; &#039;float&#039;,&lt;br /&gt;
    &#039;p3&#039; =&amp;gt; &#039;word&#039;&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
You can also nest arrays to get more complicated hierarchies of values:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$fooValues = $input-&amp;gt;getArray(array(&lt;br /&gt;
    &#039;jform&#039; =&amp;gt; array(&lt;br /&gt;
        &#039;title&#039; =&amp;gt; &#039;string&#039;,&lt;br /&gt;
        &#039;quantity&#039; =&amp;gt; &#039;int&#039;,&lt;br /&gt;
        &#039;state&#039; =&amp;gt; &#039;int&#039;&lt;br /&gt;
    )&lt;br /&gt;
));&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting Values from a Specific Super Global ==&lt;br /&gt;
&lt;br /&gt;
You can retrieve values relating specifically to the PHP &amp;lt;tt&amp;gt;$_GET&amp;lt;/tt&amp;gt;, &amp;lt;tt&amp;gt;$_POST&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;$_SERVER&amp;lt;/tt&amp;gt; global variables: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$val = $input-&amp;gt;get-&amp;gt;get(param_name, default_value, filter);&lt;br /&gt;
$val = $input-&amp;gt;post-&amp;gt;get(param_name, default_value, filter);&lt;br /&gt;
$val = $input-&amp;gt;server-&amp;gt;get(param_name, default_value, filter);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Getting JSON string from request ==&lt;br /&gt;
&#039;&#039;&#039;NB!&#039;&#039;&#039; Available since Joomla! version 3.0.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;$json = $input-&amp;gt;json-&amp;gt;get(param_name);&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Setting Values ==&lt;br /&gt;
&lt;br /&gt;
The functions &amp;lt;tt&amp;gt;set()&amp;lt;/tt&amp;gt; and &amp;lt;tt&amp;gt;def()&amp;lt;/tt&amp;gt; allow you to set input parameters and their values. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$input-&amp;gt;set(&#039;p2&#039;, &amp;quot;someval&amp;quot;); &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
sets the value of parameter p2 to the string &amp;quot;someval&amp;quot; (creating p2 if it doesn&#039;t already exist).&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;  &lt;br /&gt;
$input-&amp;gt;def(&#039;p2&#039;, &amp;quot;someval&amp;quot;); &lt;br /&gt;
&amp;lt;/source&amp;gt;   &lt;br /&gt;
creates a parameter p2 and sets its value to the string &amp;quot;someval&amp;quot;, but only if p2 doesn&#039;t already exist. If p2 already exists then &amp;lt;tt&amp;gt;def(&#039;p2&#039;, &amp;quot;someval&amp;quot;);&amp;lt;/tt&amp;gt; does nothing. &lt;br /&gt;
&lt;br /&gt;
== Retrieving File Data ==&lt;br /&gt;
&lt;br /&gt;
The format that PHP returns file data in for arrays can at times be awkward, especially when dealing with arrays of files. JInputFiles provides a convenient interface for making life a little easier, grouping the data by file.&lt;br /&gt;
&lt;br /&gt;
Suppose you have a form like:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;form action=&amp;quot;&amp;lt;?php echo JRoute::_(&#039;index.php?option=com_example&amp;amp;task=file.submit&#039;); ?&amp;gt;&amp;quot; enctype=&amp;quot;multipart/form-data&amp;quot; method=&amp;quot;post&amp;quot;&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;jform1[test][]&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;file&amp;quot; name=&amp;quot;jform1[test][]&amp;quot; /&amp;gt;&lt;br /&gt;
	&amp;lt;input type=&amp;quot;submit&amp;quot; value=&amp;quot;submit&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;/form&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Normally, PHP would put these in an array called &amp;lt;code&amp;gt;$_FILES&amp;lt;/code&amp;gt; that looked like:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Array&lt;br /&gt;
(&lt;br /&gt;
    [jform1] =&amp;gt; Array&lt;br /&gt;
        (&lt;br /&gt;
            [name] =&amp;gt; Array&lt;br /&gt;
                (&lt;br /&gt;
                    [test] =&amp;gt; Array&lt;br /&gt;
                        (&lt;br /&gt;
                            [0] =&amp;gt; youtube_icon.png&lt;br /&gt;
                            [1] =&amp;gt; Younger_Son_2.jpg&lt;br /&gt;
                        )&lt;br /&gt;
&lt;br /&gt;
                )&lt;br /&gt;
&lt;br /&gt;
            [type] =&amp;gt; Array&lt;br /&gt;
                (&lt;br /&gt;
                    [test] =&amp;gt; Array&lt;br /&gt;
                        (&lt;br /&gt;
                            [0] =&amp;gt; image/png&lt;br /&gt;
                            [1] =&amp;gt; image/jpeg&lt;br /&gt;
                        )&lt;br /&gt;
&lt;br /&gt;
                )&lt;br /&gt;
&lt;br /&gt;
            [tmp_name] =&amp;gt; Array&lt;br /&gt;
                (&lt;br /&gt;
                    [test] =&amp;gt; Array&lt;br /&gt;
                        (&lt;br /&gt;
                            [0] =&amp;gt; /tmp/phpXoIpSD&lt;br /&gt;
                            [1] =&amp;gt; /tmp/phpWDE7ye&lt;br /&gt;
                        )&lt;br /&gt;
&lt;br /&gt;
                )&lt;br /&gt;
&lt;br /&gt;
            [error] =&amp;gt; Array&lt;br /&gt;
                (&lt;br /&gt;
                    [test] =&amp;gt; Array&lt;br /&gt;
                        (&lt;br /&gt;
                            [0] =&amp;gt; 0&lt;br /&gt;
                            [1] =&amp;gt; 0&lt;br /&gt;
                        )&lt;br /&gt;
&lt;br /&gt;
                )&lt;br /&gt;
&lt;br /&gt;
            [size] =&amp;gt; Array&lt;br /&gt;
                (&lt;br /&gt;
                    [test] =&amp;gt; Array&lt;br /&gt;
                        (&lt;br /&gt;
                            [0] =&amp;gt; 34409&lt;br /&gt;
                            [1] =&amp;gt; 99529&lt;br /&gt;
                        )&lt;br /&gt;
&lt;br /&gt;
                )&lt;br /&gt;
&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
JInputFiles produces a result that is cleaner and easier to work with:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$files = $input-&amp;gt;files-&amp;gt;get(&#039;jform1&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;code&amp;gt;$files&amp;lt;/code&amp;gt; then becomes:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Array&lt;br /&gt;
(&lt;br /&gt;
    [test] =&amp;gt; Array&lt;br /&gt;
        (&lt;br /&gt;
            [0] =&amp;gt; Array&lt;br /&gt;
                (&lt;br /&gt;
                    [name] =&amp;gt; youtube_icon.png&lt;br /&gt;
                    [type] =&amp;gt; image/png&lt;br /&gt;
                    [tmp_name] =&amp;gt; /tmp/phpXoIpSD&lt;br /&gt;
                    [error] =&amp;gt; 0&lt;br /&gt;
                    [size] =&amp;gt; 34409&lt;br /&gt;
                )&lt;br /&gt;
&lt;br /&gt;
            [1] =&amp;gt; Array&lt;br /&gt;
                (&lt;br /&gt;
                    [name] =&amp;gt; Younger_Son_2.jpg&lt;br /&gt;
                    [type] =&amp;gt; image/jpeg&lt;br /&gt;
                    [tmp_name] =&amp;gt; /tmp/phpWDE7ye&lt;br /&gt;
                    [error] =&amp;gt; 0&lt;br /&gt;
                    [size] =&amp;gt; 99529&lt;br /&gt;
                )&lt;br /&gt;
&lt;br /&gt;
        )&lt;br /&gt;
&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this way, the data from each file element is consolidated into a single array and can be indexed in a more straightforward manner.&lt;br /&gt;
&lt;br /&gt;
== Restrictions and Limitations ==&lt;br /&gt;
To be able to use JInput as described here, you must be using Joomla 2.5.0 or above.&lt;br /&gt;
&lt;br /&gt;
Please note there were known issues with JInput and Magic Quotes (Deprecated in PHP 5.3.0 and removed in PHP 5.4.0). For this reason all core components in Joomla 2.5.x still used JRequest. As of Joomla 3.0+ magic quotes is required to be disabled and thus this is no longer an issue.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;noinclude&amp;gt;&lt;br /&gt;
[[Category:Tutorials]]&lt;br /&gt;
[[Category:Development]]&lt;br /&gt;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Selecting_data_using_JDatabase&amp;diff=623964</id>
		<title>Selecting data using JDatabase</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Selecting_data_using_JDatabase&amp;diff=623964"/>
		<updated>2019-08-19T10:09:43Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: fixed missing quote&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=3.x}}{{Joomla version|version=2.5|status=eos}}&amp;lt;/noinclude&amp;gt;&lt;br /&gt;
{{-}}&lt;br /&gt;
{{tip|&amp;lt;translate&amp;gt;&amp;lt;!--T:1--&amp;gt;&lt;br /&gt;
Note many examples online use &amp;lt;code&amp;gt;$db-&amp;gt;query()&amp;lt;/code&amp;gt; instead of &amp;lt;code&amp;gt;$db-&amp;gt;execute()&amp;lt;/code&amp;gt;. This was the old method in Joomla 1.5 and 2.5 and will throw a deprecated notice in Joomla 3.0+.&amp;lt;/translate&amp;gt;|title=&amp;lt;translate&amp;gt;&amp;lt;!--T:2--&amp;gt;&lt;br /&gt;
Version Note&amp;lt;/translate&amp;gt;}}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
This tutorial is split into two independent parts:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
* Inserting, updating and removing data from the database.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:5--&amp;gt;&lt;br /&gt;
* Selecting data from one or more tables and retrieving it in a variety of different forms&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;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/Inserting,_Updating_and_Removing_data_using_JDatabase|click here]]&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== Introduction== &amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Joomla provides a sophisticated database abstraction layer to simplify the usage for third party developers. New versions of the Joomla Platform API provide additional functionality which extends the database layer further, and includes features such as connectors to a greater variety of database servers and the query chaining to improve readability of connection code and simplify SQL coding.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Joomla can use different kinds of SQL database systems and run in a variety of environments with different table-prefixes. In addition to these functions, the class automatically creates the database connection. Besides instantiating the object you need just two lines of code to get a result from the database in a variety of formats. Using the Joomla database layer ensures a maximum of compatibility and flexibility for your extension.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==The Query== &amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Joomla&#039;s database querying changed with the introduction of Joomla 1.6. The recommended way of building database queries is through &amp;quot;query chaining&amp;quot; (although string queries are still supported).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Query chaining refers to a method of connecting a number of methods, one after the other, with each method returning an object that can support the next method, improving readability and simplifying code.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
To obtain a new instance of the JDatabaseQuery class we use the JDatabaseDriver getQuery method:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$db = JFactory::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;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
The JDatabaseDriver::getQuery takes an optional argument, $new, which can be true or false (the default being false).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:15--&amp;gt;&lt;br /&gt;
To query our data source we can call a number of JDatabaseQuery methods; these methods encapsulate the data source&#039;s query language (in most cases SQL), hiding query-specific syntax from the developer and increasing the portability of the developer&#039;s source code.&amp;lt;/translate&amp;gt; &lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Some of the more frequently used methods include; select, from, join, where and order. There are also methods such as insert, update and delete for modifying records in the data store. By chaining these and other method calls, you can create almost any query against your data store without compromising portability of your code&amp;lt;/translate&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Selecting Records from a Single Table== &amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Below is an example of creating a database query using the &amp;lt;tt&amp;gt;JDatabaseQuery&amp;lt;/tt&amp;gt; class. Using the select, from, where and order methods, we can create queries which are flexible, easily readable and portable:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Get a db connection.&lt;br /&gt;
$db = JFactory::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(array(&#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 &#039;. $db-&amp;gt;quote(&#039;\&#039;custom.%\&#039;&#039;));&lt;br /&gt;
$query-&amp;gt;order(&#039;ordering ASC&#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;
(Here the &amp;lt;tt&amp;gt;quoteName()&amp;lt;/tt&amp;gt; function adds appropriate quotes around the column names to avoid conflicts with any database reserved word, now or in the future.)&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
The query can also be chained to simplify further:&amp;lt;/translate&amp;gt;&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(array(&#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 &#039;. $db-&amp;gt;quote(&#039;\&#039;custom.%\&#039;&#039;))&lt;br /&gt;
    -&amp;gt;order(&#039;ordering ASC&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
Chaining can become useful when queries become longer and more complex.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
Grouping can be achieved simply too.  The following query would count the number of articles in each category.&amp;lt;/translate&amp;gt;&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;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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
A limit can be set to a query using &amp;quot;setLimit&amp;quot;. For example in the following query, it would return up to 10 records.&amp;lt;/translate&amp;gt;&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(array(&#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;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Selecting Records from Multiple Tables== &amp;lt;!--T:23--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
Using the JDatabaseQuery&#039;s [http://api.joomla.org/11.4/Joomla-Platform/Database/JDatabaseQuery.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).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
// Get a db connection.&lt;br /&gt;
$db = JFactory::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(array(&#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 &#039; . $db-&amp;gt;quote(&#039;a%&#039;))&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;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:&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [http://api.joomla.org/cms-3/classes/JDatabaseQuery.html#method_innerJoin innerJoin()]&lt;br /&gt;
* [http://api.joomla.org/cms-3/classes/JDatabaseQuery.html#method_leftJoin leftJoin()]&lt;br /&gt;
* [http://api.joomla.org/cms-3/classes/JDatabaseQuery.html#method_rightJoin rightJoin()] &lt;br /&gt;
* [http://api.joomla.org/cms-3/classes/JDatabaseQuery.html#method_outerJoin outerJoin()]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
We can use multiple joins to query across more than two tables:&amp;lt;/translate&amp;gt;&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 &#039; . $db-&amp;gt;quote(&#039;a%&#039;))&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
Notice how chaining makes the source code much more readable for these longer queries.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;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.&amp;lt;/translate&amp;gt;&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;) . &#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 &#039; . $db-&amp;gt;quote(&#039;a%&#039;))&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:29--&amp;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:&amp;lt;/translate&amp;gt;&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;))&lt;br /&gt;
    -&amp;gt;select($db-&amp;gt;quoteName(array(&#039;b.username&#039;, &#039;b.name&#039;), array(&#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 &#039; . $db-&amp;gt;quote(&#039;a%&#039;))&lt;br /&gt;
    -&amp;gt;order($db-&amp;gt;quoteName(&#039;a.created&#039;) . &#039; DESC&#039;);&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Query Results == &amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
The database class contains many methods for working with a query&#039;s result set.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Single Value Result === &amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadResult() ==== &amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
Use &#039;&#039;&#039;loadResult()&#039;&#039;&#039; when you expect just a single value back from your database query.&amp;lt;/translate&amp;gt; &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;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
id&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
name&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:37--&amp;gt;&lt;br /&gt;
email&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
username&amp;lt;/translate&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1 || style=&amp;quot;background:yellow&amp;quot; | John Smith || &amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
johnsmith@domain.example&amp;lt;/translate&amp;gt; || johnsmith&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Magda Hellman || &amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
magda_h@domain.example&amp;lt;/translate&amp;gt; || magdah&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Yvonne de Gaulle || &amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
ydg@domain.example&amp;lt;/translate&amp;gt; || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:42--&amp;gt;&lt;br /&gt;
This is often the result of a &#039;count&#039; query to get a number of records:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$db = JFactory::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; = &amp;quot;.$db-&amp;gt;quote($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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:134--&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).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&#039;php&#039;&amp;gt;&lt;br /&gt;
$db = JFactory::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; = &amp;quot;.$db-&amp;gt;quote($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;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Single Row Results === &amp;lt;!--T:43--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:44--&amp;gt;&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.&amp;lt;/translate&amp;gt;&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;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
id&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
name&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
email&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
username&amp;lt;/translate&amp;gt;&lt;br /&gt;
|- style=&amp;quot;background:yellow&amp;quot;&lt;br /&gt;
| 1 || John Smith || &amp;lt;translate&amp;gt;&amp;lt;!--T:49--&amp;gt;&lt;br /&gt;
johnsmith@domain.example&amp;lt;/translate&amp;gt; || johnsmith&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Magda Hellman || &amp;lt;translate&amp;gt;&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
magda_h@domain.example&amp;lt;/translate&amp;gt; || magdah&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Yvonne de Gaulle || &amp;lt;translate&amp;gt;&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
ydg@domain.example&amp;lt;/translate&amp;gt; || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadRow() ==== &amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt;&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:&amp;lt;/translate&amp;gt; &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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:133--&amp;gt;&lt;br /&gt;
will give:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
Notes:&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
# The array indices are numeric starting from zero.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:57--&amp;gt;&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.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadAssoc() ==== &amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:59--&amp;gt;&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:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:60--&amp;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;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:62--&amp;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.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadObject() ==== &amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
loadObject returns a PHP object from a single record in the table:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;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;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:67--&amp;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.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
===Single Column Results === &amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:69--&amp;gt;&lt;br /&gt;
Each of these results functions will return a single column from the database.&amp;lt;/translate&amp;gt; &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;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
id&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
name&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
email&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
username&amp;lt;/translate&amp;gt;&lt;br /&gt;
|- &lt;br /&gt;
| 1 || style=&amp;quot;background:yellow&amp;quot; | John Smith || &amp;lt;translate&amp;gt;&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
johnsmith@domain.example&amp;lt;/translate&amp;gt; || johnsmith&lt;br /&gt;
|-&lt;br /&gt;
| 2 || style=&amp;quot;background:yellow&amp;quot; | Magda Hellman || &amp;lt;translate&amp;gt;&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
magda_h@domain.example&amp;lt;/translate&amp;gt; || magdah&lt;br /&gt;
|-&lt;br /&gt;
| 3 || style=&amp;quot;background:yellow&amp;quot; | Yvonne de Gaulle || &amp;lt;translate&amp;gt;&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
ydg@domain.example&amp;lt;/translate&amp;gt; || ydegaulle&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadColumn() ==== &amp;lt;!--T:77--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:78--&amp;gt;&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:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
will give:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:81--&amp;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).&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadColumn($index) ==== &amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
loadColumn($index) returns an indexed array from a single column in the table:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:84--&amp;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;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:85--&amp;gt;&lt;br /&gt;
You can access the individual values by using:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
loadColumn($index) allows you to iterate through a series of columns in the results&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
will give:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
# The array indices are numeric starting from zero.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Multi-Row Results === &amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
Each of these results functions will return multiple records from the database.&amp;lt;/translate&amp;gt; &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;
! &amp;lt;translate&amp;gt;&amp;lt;!--T:91--&amp;gt;&lt;br /&gt;
id&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
name&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
email&amp;lt;/translate&amp;gt; !! &amp;lt;translate&amp;gt;&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
username&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== loadRowList() ==== &amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:96--&amp;gt;&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:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
Notes:&lt;br /&gt;
# The array indices are numeric starting from zero.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== loadAssocList() ==== &amp;lt;!--T:101--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:102--&amp;gt;&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:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;==== loadAssocList($key) ==== &amp;lt;!--T:106--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:107--&amp;gt;&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:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:108--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;key_value&#039;] // e.g. $row[&#039;johnsmith&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:111--&amp;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.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== loadAssocList($key, $column) ==== &amp;lt;!--T:112--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:113--&amp;gt;&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:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:115--&amp;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.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;==== loadObjectList() ==== &amp;lt;!--T:116--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:117--&amp;gt;&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:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:118--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:119--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;index&#039;] // e.g. $row[&#039;2&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:120--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;==== loadObjectList($key) ==== &amp;lt;!--T:121--&amp;gt;&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:122--&amp;gt;&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:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
will give (with line breaks added for clarity):&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
You can access the individual rows by using:&amp;lt;/translate&amp;gt;&amp;lt;pre&amp;gt;$row[&#039;key_value&#039;] // e.g. $row[&#039;johnsmith&#039;]&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
and you can access the individual values by using:&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:126--&amp;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.&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
=== Miscellaneous Result Set Methods === &amp;lt;!--T:127--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== getNumRows() ==== &amp;lt;!--T:128--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:129--&amp;gt;&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().&amp;lt;/translate&amp;gt;&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;
&amp;lt;translate&amp;gt;&amp;lt;!--T:130--&amp;gt;&lt;br /&gt;
will return&amp;lt;/translate&amp;gt; &amp;lt;pre&amp;gt;3&amp;lt;/pre&amp;gt;&lt;br /&gt;
&amp;lt;translate&amp;gt;&amp;lt;!--T:131--&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:&amp;lt;/translate&amp;gt;&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;
== Sample Module Code ==&lt;br /&gt;
&lt;br /&gt;
Below is the code for a simple Joomla module which you can install and run to demonstrate use of the JDatabase functionality, and which you can adapt to experiment with some of the concepts described above. If you are unsure about development and installing a Joomla module then following the tutorial at [[S:MyLanguage/J3.x:Creating a simple module/Introduction| Creating a simple module ]] will help.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Important note: In any Joomla extensions which you develop that you should avoid accessing the core Joomla tables directly like this and should instead use the Joomla APIs if at all possible, because the database structures may change without warning.&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
In a folder mod_db_select create the following 2 files:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;mod_db_select.xml&amp;lt;/tt&amp;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;module&amp;quot; version=&amp;quot;3.1&amp;quot; client=&amp;quot;site&amp;quot; method=&amp;quot;upgrade&amp;quot;&amp;gt;&lt;br /&gt;
    &amp;lt;name&amp;gt;Database select query demo&amp;lt;/name&amp;gt;&lt;br /&gt;
    &amp;lt;version&amp;gt;1.0.1&amp;lt;/version&amp;gt;&lt;br /&gt;
    &amp;lt;description&amp;gt;Code demonstrating use of Joomla Database class to perform SQL SELECT queries&amp;lt;/description&amp;gt;&lt;br /&gt;
    &amp;lt;files&amp;gt;&lt;br /&gt;
        &amp;lt;filename module=&amp;quot;mod_db_select&amp;quot;&amp;gt;mod_db_select.php&amp;lt;/filename&amp;gt;&lt;br /&gt;
    &amp;lt;/files&amp;gt;&lt;br /&gt;
&amp;lt;/extension&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;tt&amp;gt;mod_db_select.php&amp;lt;/tt&amp;gt;&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
defined(&#039;_JEXEC&#039;) or die(&#039;Restricted Access&#039;);&lt;br /&gt;
&lt;br /&gt;
use Joomla\CMS\Factory;&lt;br /&gt;
&lt;br /&gt;
$db = Factory::getDbo();&lt;br /&gt;
&lt;br /&gt;
$me = Factory::getUser();&lt;br /&gt;
&lt;br /&gt;
$query = $db-&amp;gt;getQuery(true);&lt;br /&gt;
&lt;br /&gt;
$query-&amp;gt;select($db-&amp;gt;quoteName(array(&#039;name&#039;, &#039;email&#039;)))&lt;br /&gt;
	-&amp;gt;from($db-&amp;gt;quoteName(&#039;#__users&#039;))&lt;br /&gt;
	-&amp;gt;where($db-&amp;gt;quoteName(&#039;id&#039;) . &#039; != &#039; . $db-&amp;gt;quote($me-&amp;gt;id))&lt;br /&gt;
	-&amp;gt;order($db-&amp;gt;quoteName(&#039;name&#039;) . &#039; ASC&#039;);&lt;br /&gt;
&lt;br /&gt;
$db-&amp;gt;setQuery($query);&lt;br /&gt;
&lt;br /&gt;
echo $db-&amp;gt;replacePrefix((string) $query);&lt;br /&gt;
&lt;br /&gt;
$results = $db-&amp;gt;loadAssocList();&lt;br /&gt;
&lt;br /&gt;
foreach ($results as $row) {&lt;br /&gt;
	echo &amp;quot;&amp;lt;p&amp;gt;&amp;quot; . $row[&#039;name&#039;] . &amp;quot;, &amp;quot; . $row[&#039;email&#039;] . &amp;quot;&amp;lt;br&amp;gt;&amp;lt;/p&amp;gt;&amp;quot;;&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The code above selects and outputs the username and email of the records in the Joomla &amp;lt;tt&amp;gt;users&amp;lt;/tt&amp;gt; table, apart from those of the currently logged-on user. The method &amp;lt;tt&amp;gt;Factory::getUser()&amp;lt;/tt&amp;gt; returns the &amp;lt;tt&amp;gt;user&amp;lt;/tt&amp;gt; object of the currently logged-on user, or if not logged on, then a blank &amp;lt;tt&amp;gt;user&amp;lt;/tt&amp;gt; object, whose &amp;lt;tt&amp;gt;id&amp;lt;/tt&amp;gt; field is set to zero. &lt;br /&gt;
&lt;br /&gt;
The &amp;lt;tt&amp;gt;$db-&amp;gt;replacePrefix((string) $query)&amp;lt;/tt&amp;gt; expression returns the actual SQL statement, and outputting this can be useful in debugging. &lt;br /&gt;
&lt;br /&gt;
Zip up the mod_db_select directory to create &amp;lt;tt&amp;gt;mod_db_select.zip&amp;lt;/tt&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
Within your Joomla administrator go to Install Extensions and via the Upload Package File tab select this zip file to install this sample log module.&lt;br /&gt;
&lt;br /&gt;
Make this module visible by editing it (click on it within the Modules page) then:&lt;br /&gt;
# making its status Published&lt;br /&gt;
# selecting a position on the page for it to be shown&lt;br /&gt;
# on the menu assignment tab specify the pages it should appear on&lt;br /&gt;
&lt;br /&gt;
When you visit a site web page then you should see the module in your selected position, and it should output the SQL SELECT statement and the sequence of name, email values from the Joomla users table. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
== See also == &amp;lt;!--T:135--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[[S:MyLanguage/Inserting, Updating and Removing data using JDatabase|&amp;lt;translate&amp;gt;&amp;lt;!--T:136--&amp;gt; Inserting, Updating and Removing data using JDatabase&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
*[[S:MyLanguage/Using the union methods in database queries|&amp;lt;translate&amp;gt;&amp;lt;!--T:137--&amp;gt; Using the union methods in database queries&amp;lt;/translate&amp;gt;]] &amp;lt;translate&amp;gt;&amp;lt;!--T:138--&amp;gt; (Joomla! 3.3+)&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[https://api.joomla.org/cms-3/classes/JDatabaseQuery.html &amp;lt;translate&amp;gt;&amp;lt;!--T:139--&amp;gt; Joomla CMS 3.8 API&amp;lt;/translate&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;
&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Template:CurrentSTSVer&amp;diff=621511</id>
		<title>Template:CurrentSTSVer</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Template:CurrentSTSVer&amp;diff=621511"/>
		<updated>2019-08-13T16:07:11Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{#switch:{{{1}}}|&lt;br /&gt;
1|&lt;br /&gt;
major=3|&lt;br /&gt;
2|&lt;br /&gt;
minor=3.9|&lt;br /&gt;
4|&lt;br /&gt;
#default|&lt;br /&gt;
maintenance=3.9.11&lt;br /&gt;
}}&amp;lt;noinclude&amp;gt;&amp;lt;!--The editor of this page is responsible for ensuring the three versions are consistent!--&amp;gt;&amp;lt;/noinclude&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Help310:Joomla_Version_Information&amp;diff=621510</id>
		<title>Help310:Joomla Version Information</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Help310:Joomla_Version_Information&amp;diff=621510"/>
		<updated>2019-08-13T15:52:36Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &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;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Announcements and release notes== &amp;lt;!--T:1--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.9.x ==== &amp;lt;!--T:152--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5775-joomla-3-9-10.html &amp;lt;translate&amp;gt; &amp;lt;!--T:177--&amp;gt; Joomla! 3.9.11 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5774-joomla-3-9-10.html &amp;lt;translate&amp;gt; &amp;lt;!--T:175--&amp;gt; Joomla! 3.9.10 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5772-joomla-3-9-9-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:173--&amp;gt; Joomla! 3.9.9 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5771-joomla-3-9-8-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:171--&amp;gt; Joomla! 3.9.8 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5770-joomla-3-9-7-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:169--&amp;gt; Joomla! 3.9.7 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5765-joomla-3-9-6-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:167--&amp;gt; Joomla! 3.9.6 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5764-joomla-3-9-5-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:165--&amp;gt; Joomla! 3.9.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5761-joomla-3-9-4-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:163--&amp;gt; Joomla! 3.9.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5756-joomla-3-9-3-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:161--&amp;gt; Joomla! 3.9.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5755-joomla-3-9-2-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:159--&amp;gt; Joomla! 3.9.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5751-joomla-3-9-1-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:157--&amp;gt; Joomla! 3.9.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5748-the-privacy-tool-suite-by-joomla-joomla-3-9-is-here.html &amp;lt;translate&amp;gt; &amp;lt;!--T:153--&amp;gt; Joomla! 3.9.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.8.x ==== &amp;lt;!--T:121--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5747-joomla-3-8-13-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:150--&amp;gt; Joomla! 3.8.13 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5743-joomla-3-8-12-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:148--&amp;gt; Joomla! 3.8.12 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5738-joomla-3-8-11-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:146--&amp;gt; Joomla! 3.8.11 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5737-joomla-3-8-10-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:144--&amp;gt; Joomla! 3.8.10 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5734-joomla-3-8-9-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:142--&amp;gt; Joomla! 3.8.9 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5730-joomla-3-8-8-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:140--&amp;gt; Joomla! 3.8.8 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5728-joomla-3-8-7-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:138--&amp;gt; Joomla! 3.8.7 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5725-joomla-3-8-6-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:136--&amp;gt; Joomla! 3.8.6 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5724-joomla-3-8-5-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:134--&amp;gt; Joomla! 3.8.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5723-joomla-3-8-4-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:132--&amp;gt; Joomla! 3.8.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5717-joomla-3-8-3-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:130--&amp;gt; Joomla! 3.8.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5716-joomla-3-8-2-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:128--&amp;gt; Joomla! 3.8.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5715-joomla-3-8-1-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:126--&amp;gt; Joomla! 3.8.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5713-joomla-3-8-0-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:122--&amp;gt; Joomla! 3.8.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.7.x ==== &amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5711-joomla-3-7-5-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:119--&amp;gt; Joomla! 3.7.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5710-joomla-3-7-4-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:117--&amp;gt; Joomla! 3.7.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5709-joomla-3-7-3-release.html &amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
Joomla! 3.7.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5706-joomla-3-7-2-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
Joomla! 3.7.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5705-joomla-3-7-1-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
Joomla! 3.7.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5703-joomla-3-7-is-here.html &amp;lt;translate&amp;gt;&amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
Joomla! 3.7.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.6.x ==== &amp;lt;!--T:91--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5693-joomla-3-6-5-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
Joomla! 3.6.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5678-joomla-3-6-4-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Joomla! 3.6.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5676-joomla-3-6-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
Joomla! 3.6.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5667-joomla-3-6-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
Joomla! 3.6.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5665-joomla-3-6-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
Joomla! 3.6.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5664-joomla-3-6-is-here.html &amp;lt;translate&amp;gt;&amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
Joomla! 3.6.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.5.x ==== &amp;lt;!--T:2--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5655-joomla-3-5-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Joomla! 3.5.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5654-joomla-3-5-is-here.html &amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Joomla! 3.5.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.4.x ==== &amp;lt;!--T:5--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5644-joomla-3-4-8-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Joomla! 3.4.8 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5643-joomla-3-4-7.html &amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Joomla! 3.4.7 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5641-joomla-3-4-6-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Joomla! 3.4.6 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5634-joomla-3-4-5-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Joomla! 3.4.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5628-joomla-3-4-4-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
Joomla! 3.4.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5590-joomla-3-4-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Joomla! 3.4.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5589-joomla-3-4-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Joomla! 3.4.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5587-joomla-3-4-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Joomla! 3.4.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5586-joomla-3-4-is-here.html &amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Joomla! 3.4.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.3.x ==== &amp;lt;!--T:15--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5569-joomla-3-3-6-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Joomla 3.3.6 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5567-joomla-3-3-5-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
Joomla 3.3.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5564-joomla-3-3-4-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Joomla 3.3.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5557-joomla-3-3-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
Joomla 3.3.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5555-joomla-3-3-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
Joomla 3.3.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5551-joomla-3-3-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
Joomla 3.3.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5546-joomla-3-3-0-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
Joomla 3.3.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.2.x ==== &amp;lt;!--T:23--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5546-joomla-3-3-0-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
Joomla 3.2.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5538-joomla-3-2-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
Joomla 3.2.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5531-joomla-3-2-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
Joomla 3.2.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5523-joomla-3-2-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
Joomla 3.2.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5516-joomla-3-2-0-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
Joomla 3.2.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.1.x ==== &amp;lt;!--T:29--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5516-joomla-3-2-0-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Joomla 3.1.6 announcement&amp;lt;/translate&amp;gt;] &amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
(release of 3 security patches, as noted in the 3.2 release) Links can be found in 3.2 notice&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5505-joomla-3-1-5-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
Joomla 3.1.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5504-joomla-3-1-4-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
Joomla 3.1.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
* Joomla 3.1.3 not officially released, see [[S:MyLanguage/:Category:Version 3.1.3 FAQ|Version 3.1.3 FAQ]]&lt;br /&gt;
* Joomla 3.1.2 not officially released, see [[S:MyLanguage/J3.1:Detailed instructions for updating from 3.1.2 to 3.1.4|Detailed instructions for updating from 3.1.2 to 3.1.4]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5499-joomla-3-1-1-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Joomla 3.1.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5494-joomla-3-1-0-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
Joomla 3.1.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.0.x ==== &amp;lt;!--T:37--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5478-joomla-3-0-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
Joomla 3.0.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5471-joomla-3-0-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
Joomla 3.0.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5468-joomla-3-0-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
Joomla 3.0.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5464-joomla-3-0-0-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
Joomla 3.0.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Frequently Asked Questions== &amp;lt;!--T:42--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.9.x ==== &amp;lt;!--T:154--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:155--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.9.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.11 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:178--&amp;gt; Version 3.9.11 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.10 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:176--&amp;gt; Version 3.9.10 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.9 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:174--&amp;gt; Version 3.9.9 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.8 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:172--&amp;gt; Version 3.9.8 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.7 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:170--&amp;gt; Version 3.9.7 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.6 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:168--&amp;gt; Version 3.9.6 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.5 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:166--&amp;gt; Version 3.9.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.4 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:164--&amp;gt; Version 3.9.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.3 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:162--&amp;gt; Version 3.9.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:160--&amp;gt; Version 3.9.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.1 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:158--&amp;gt; Version 3.9.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.0 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:156--&amp;gt; Version 3.9.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Version 3.8.x ==== &amp;lt;!--T:123--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:124--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.8.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.13 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:151--&amp;gt; Version 3.8.13 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.12 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:149--&amp;gt; Version 3.8.12 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.11 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:147--&amp;gt; Version 3.8.11 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.10 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:145--&amp;gt; Version 3.8.10 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.9 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:143--&amp;gt; Version 3.8.9 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.8 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:141--&amp;gt; Version 3.8.8 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.7 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:139--&amp;gt; Version 3.8.7 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.6 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:137--&amp;gt; Version 3.8.6 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.5 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:135--&amp;gt; Version 3.8.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.4 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:133--&amp;gt; Version 3.8.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.3 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:131--&amp;gt; Version 3.8.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.2 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:129--&amp;gt; Version 3.8.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.1 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:127--&amp;gt; Version 3.8.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.0 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:125--&amp;gt; Version 3.8.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.7.x ==== &amp;lt;!--T:108--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.7.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:120--&amp;gt; Version 3.7.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:118--&amp;gt; Version 3.7.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.3 FAQ|&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:116--&amp;gt;&lt;br /&gt;
Version 3.7.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
Version 3.7.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
Version 3.7.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
Version 3.7.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Version 3.6.x ==== &amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.6.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
Version 3.6.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
Version 3.6.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
Version 3.6.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
Version 3.6.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
Version 3.6.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
Version 3.6.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.5.x ==== &amp;lt;!--T:43--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.5.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.5.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
Version 3.5.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.5.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
Version 3.5.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
For more about the updating process of 3.4.8 to 3.5.0, please see&amp;lt;/translate&amp;gt;: [[S:MyLanguage/J3.x:Upgrading_from_Joomla_3.4.x_to_3.5|&amp;lt;translate&amp;gt;&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
Upgrading from Joomla 3.4.x to 3.5&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.4.x ==== &amp;lt;!--T:49--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.4.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.8 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
Version 3.4.8 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.7 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
Version 3.4.7 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.6 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
Version 3.4.6 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
Version 3.4.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
Version 3.4.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
Version 3.4.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
Version 3.4.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
Version 3.4.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
Version 3.4.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.3.x ==== &amp;lt;!--T:60--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.3.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.6 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
Version 3.3.6 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
Version 3.3.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
Version 3.3.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
Version 3.3.3 FAQ&amp;lt;/translate&amp;gt;]] &lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
Version 3.3.2 FAQ&amp;lt;/translate&amp;gt;]] &lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
Version 3.3.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
Version 3.3.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.2.x ==== &amp;lt;!--T:69--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.2.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
Version 3.2.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Version 3.2.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
Version 3.2.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
Version 3.2.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
Version 3.2.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
Version 3.2.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.1.x ==== &amp;lt;!--T:77--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.1.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
Version 3.1.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
Version 3.1.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
Version 3.1.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
Version 3.1.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
Version 3.1.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
Version 3.1.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.0.x ==== &amp;lt;!--T:85--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.0.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.0.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
Version 3.0.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.0.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
Version 3.0.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.0.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Version 3.0.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.0.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
Version 3.0.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Help310:Joomla_Version_Additional_Information&amp;diff=621509</id>
		<title>Help310:Joomla Version Additional Information</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Help310:Joomla_Version_Additional_Information&amp;diff=621509"/>
		<updated>2019-08-13T15:50:18Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &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;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Announcements and release notes== &amp;lt;!--T:1--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.9.x ==== &amp;lt;!--T:153--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5775-joomla-3-9-11.html &amp;lt;translate&amp;gt; &amp;lt;!--T:179--&amp;gt; Joomla! 3.9.11 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5774-joomla-3-9-10.html &amp;lt;translate&amp;gt; &amp;lt;!--T:177--&amp;gt; Joomla! 3.9.10 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5772-joomla-3-9-9-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:175--&amp;gt; Joomla! 3.9.9 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5771-joomla-3-9-8-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:173--&amp;gt; Joomla! 3.9.8 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5770-joomla-3-9-7-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:171--&amp;gt; Joomla! 3.9.7 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5765-joomla-3-9-6-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:169--&amp;gt; Joomla! 3.9.6 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5764-joomla-3-9-5-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:167--&amp;gt; Joomla! 3.9.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5761-joomla-3-9-4-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:165--&amp;gt; Joomla! 3.9.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5756-joomla-3-9-3-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:163--&amp;gt; Joomla! 3.9.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5755-joomla-3-9-2-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:161--&amp;gt; Joomla! 3.9.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5751-joomla-3-9-1-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:159--&amp;gt; Joomla! 3.9.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5748-the-privacy-tool-suite-by-joomla-joomla-3-9-is-here.html &amp;lt;translate&amp;gt; &amp;lt;!--T:154--&amp;gt; Joomla! 3.9.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Version 3.8.x ==== &amp;lt;!--T:122--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5747-joomla-3-8-13-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:151--&amp;gt; Joomla! 3.8.13 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5743-joomla-3-8-12-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:149--&amp;gt; Joomla! 3.8.12 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5738-joomla-3-8-11-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:147--&amp;gt; Joomla! 3.8.11 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5737-joomla-3-8-10-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:145--&amp;gt; Joomla! 3.8.10 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5734-joomla-3-8-9-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:143--&amp;gt; Joomla! 3.8.9 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5730-joomla-3-8-8-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:141--&amp;gt; Joomla! 3.8.8 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5728-joomla-3-8-7-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:139--&amp;gt; Joomla! 3.8.7 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5725-joomla-3-8-6-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:137--&amp;gt; Joomla! 3.8.6 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5724-joomla-3-8-5-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:135--&amp;gt; Joomla! 3.8.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5723-joomla-3-8-4-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:133--&amp;gt; Joomla! 3.8.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5717-joomla-3-8-3-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:131--&amp;gt; Joomla! 3.8.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5716-joomla-3-8-2-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:129--&amp;gt; Joomla! 3.8.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5715-joomla-3-8-1-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:127--&amp;gt; Joomla! 3.8.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5713-joomla-3-8-0-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:123--&amp;gt; Joomla! 3.8.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.7.x ==== &amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5711-joomla-3-7-5-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:120--&amp;gt; Joomla! 3.7.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5710-joomla-3-7-4-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:117--&amp;gt; Joomla! 3.7.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5709-joomla-3-7-3-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:116--&amp;gt; Joomla! 3.7.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5706-joomla-3-7-2-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
Joomla! 3.7.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5705-joomla-3-7-1-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
Joomla! 3.7.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5703-joomla-3-7-is-here.html &amp;lt;translate&amp;gt;&amp;lt;!--T:108--&amp;gt;&lt;br /&gt;
Joomla! 3.7.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.6.x ==== &amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5693-joomla-3-6-5-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
Joomla! 3.6.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5678-joomla-3-6-4-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
Joomla! 3.6.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5676-joomla-3-6-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
Joomla! 3.6.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5667-joomla-3-6-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
Joomla! 3.6.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5665-joomla-3-6-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
Joomla! 3.6.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5664-joomla-3-6-is-here.html &amp;lt;translate&amp;gt;&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
Joomla! 3.6.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.5.x ==== &amp;lt;!--T:2--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5655-joomla-3-5-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Joomla! 3.5.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5654-joomla-3-5-is-here.html &amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Joomla! 3.5.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.4.x ==== &amp;lt;!--T:5--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5644-joomla-3-4-8-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Joomla! 3.4.8 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5643-joomla-3-4-7.html &amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Joomla! 3.4.7 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5641-joomla-3-4-6-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Joomla! 3.4.6 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5634-joomla-3-4-5-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Joomla! 3.4.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5628-joomla-3-4-4-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
Joomla! 3.4.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5590-joomla-3-4-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Joomla! 3.4.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5589-joomla-3-4-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Joomla! 3.4.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5587-joomla-3-4-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Joomla! 3.4.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5586-joomla-3-4-is-here.html &amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Joomla! 3.4.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.3.x ==== &amp;lt;!--T:15--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5569-joomla-3-3-6-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Joomla 3.3.6 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5567-joomla-3-3-5-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
Joomla 3.3.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5564-joomla-3-3-4-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Joomla 3.3.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5557-joomla-3-3-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
Joomla 3.3.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5555-joomla-3-3-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
Joomla 3.3.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5551-joomla-3-3-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
Joomla 3.3.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5546-joomla-3-3-0-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
Joomla 3.3.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.2.x ==== &amp;lt;!--T:23--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5546-joomla-3-3-0-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
Joomla 3.2.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5538-joomla-3-2-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
Joomla 3.2.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5531-joomla-3-2-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
Joomla 3.2.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5523-joomla-3-2-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
Joomla 3.2.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5516-joomla-3-2-0-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
Joomla 3.2.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.1.x ==== &amp;lt;!--T:29--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5516-joomla-3-2-0-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Joomla 3.1.6 announcement&amp;lt;/translate&amp;gt;] &amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
(release of 3 security patches, as noted in the 3.2 release) Links can be found in 3.2 notice&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5505-joomla-3-1-5-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
Joomla 3.1.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5504-joomla-3-1-4-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
Joomla 3.1.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
* Joomla 3.1.3 not officially released, see [[S:MyLanguage/:Category:Version 3.1.3 FAQ|Version 3.1.3 FAQ]]&lt;br /&gt;
* Joomla 3.1.2 not officially released, see [[S:MyLanguage/J3.1:Detailed instructions for updating from 3.1.2 to 3.1.4|Detailed instructions for updating from 3.1.2 to 3.1.4]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5499-joomla-3-1-1-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Joomla 3.1.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5494-joomla-3-1-0-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
Joomla 3.1.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.0.x ==== &amp;lt;!--T:37--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5478-joomla-3-0-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
Joomla 3.0.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5471-joomla-3-0-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
Joomla 3.0.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5468-joomla-3-0-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
Joomla 3.0.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5464-joomla-3-0-0-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
Joomla 3.0.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions== &amp;lt;!--T:42--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.9.x ==== &amp;lt;!--T:155--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:156--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.9.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.11 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:180--&amp;gt; Version 3.9.11 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.10 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:178--&amp;gt; Version 3.9.10 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.9 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:176--&amp;gt; Version 3.9.9 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.8 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:174--&amp;gt; Version 3.9.8 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.7 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:172--&amp;gt; Version 3.9.7 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.6 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:170--&amp;gt; Version 3.9.6 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:168--&amp;gt; Version 3.9.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.4 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:166--&amp;gt; Version 3.9.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.3 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:164--&amp;gt; Version 3.9.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:162--&amp;gt; Version 3.9.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.1 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:160--&amp;gt; Version 3.9.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.0 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:157--&amp;gt; Version 3.9.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Version 3.8.x ==== &amp;lt;!--T:158--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.8.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.13 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:152--&amp;gt; Version 3.8.13 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.12 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:150--&amp;gt; Version 3.8.12 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.11 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:148--&amp;gt; Version 3.8.11 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.10 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:146--&amp;gt; Version 3.8.10 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.9 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:144--&amp;gt; Version 3.8.9 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.8 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:142--&amp;gt; Version 3.8.8 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.7 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:140--&amp;gt; Version 3.8.7 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.6 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:138--&amp;gt; Version 3.8.6 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.5 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:136--&amp;gt; Version 3.8.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.4 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:134--&amp;gt; Version 3.8.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.3 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:132--&amp;gt; Version 3.8.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.2 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:130--&amp;gt; Version 3.8.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.1 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:128--&amp;gt; Version 3.8.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.0 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:126--&amp;gt; Version 3.8.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.7.x ==== &amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.7.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:121--&amp;gt; Version 3.7.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:118--&amp;gt; Version 3.7.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:119--&amp;gt; Version 3.7.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.2 FAQ|&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
Version 3.7.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
Version 3.7.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
Version 3.7.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.6.x ==== &amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.6.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
Version 3.6.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
Version 3.6.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Version 3.6.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
Version 3.6.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
Version 3.6.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
Version 3.6.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.5.x ==== &amp;lt;!--T:43--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.5.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.5.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
Version 3.5.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.5.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
Version 3.5.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
For more about the updating process of 3.4.8 to 3.5.0, please see&amp;lt;/translate&amp;gt;: [[S:MyLanguage/J3.x:Upgrading_from_Joomla_3.4.x_to_3.5|&amp;lt;translate&amp;gt;&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
Upgrading from Joomla 3.4.x to 3.5&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.4.x ==== &amp;lt;!--T:49--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.4.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.8 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
Version 3.4.8 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.7 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
Version 3.4.7 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.6 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
Version 3.4.6 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
Version 3.4.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
Version 3.4.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
Version 3.4.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
Version 3.4.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
Version 3.4.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
Version 3.4.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.3.x ==== &amp;lt;!--T:60--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.3.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.6 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
Version 3.3.6 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
Version 3.3.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
Version 3.3.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
Version 3.3.3 FAQ&amp;lt;/translate&amp;gt;]] &lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
Version 3.3.2 FAQ&amp;lt;/translate&amp;gt;]] &lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
Version 3.3.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
Version 3.3.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.2.x ==== &amp;lt;!--T:69--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.2.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
Version 3.2.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Version 3.2.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
Version 3.2.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
Version 3.2.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
Version 3.2.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
Version 3.2.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.1.x ==== &amp;lt;!--T:77--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.1.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
Version 3.1.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
Version 3.1.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
Version 3.1.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
Version 3.1.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
Version 3.1.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
Version 3.1.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.0.x ==== &amp;lt;!--T:85--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.0.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.0.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
Version 3.0.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.0.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
Version 3.0.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.0.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Version 3.0.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.0.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
Version 3.0.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
	<entry>
		<id>https://docs.sandbox.joomla.org/index.php?title=Help310:Joomla_Version_Additional_Information&amp;diff=621508</id>
		<title>Help310:Joomla Version Additional Information</title>
		<link rel="alternate" type="text/html" href="https://docs.sandbox.joomla.org/index.php?title=Help310:Joomla_Version_Additional_Information&amp;diff=621508"/>
		<updated>2019-08-13T15:50:05Z</updated>

		<summary type="html">&lt;p&gt;Hleithner: &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;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==Announcements and release notes== &amp;lt;!--T:1--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.9.x ==== &amp;lt;!--T:153--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5775-joomla-3-9-11.html &amp;lt;translate&amp;gt; &amp;lt;!--T:179--&amp;gt; Joomla! 3.9.11 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5774-joomla-3-9-10.html &amp;lt;translate&amp;gt; &amp;lt;!--T:177--&amp;gt; Joomla! 3.9.10 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5772-joomla-3-9-9-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:175--&amp;gt; Joomla! 3.9.9 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5771-joomla-3-9-8-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:173--&amp;gt; Joomla! 3.9.8 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5770-joomla-3-9-7-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:171--&amp;gt; Joomla! 3.9.7 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5765-joomla-3-9-6-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:169--&amp;gt; Joomla! 3.9.6 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5764-joomla-3-9-5-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:167--&amp;gt; Joomla! 3.9.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5761-joomla-3-9-4-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:165--&amp;gt; Joomla! 3.9.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5756-joomla-3-9-3-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:163--&amp;gt; Joomla! 3.9.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5755-joomla-3-9-2-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:161--&amp;gt; Joomla! 3.9.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5751-joomla-3-9-1-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:159--&amp;gt; Joomla! 3.9.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5748-the-privacy-tool-suite-by-joomla-joomla-3-9-is-here.html &amp;lt;translate&amp;gt; &amp;lt;!--T:154--&amp;gt; Joomla! 3.9.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Version 3.8.x ==== &amp;lt;!--T:122--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5747-joomla-3-8-13-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:151--&amp;gt; Joomla! 3.8.13 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5743-joomla-3-8-12-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:149--&amp;gt; Joomla! 3.8.12 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5738-joomla-3-8-11-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:147--&amp;gt; Joomla! 3.8.11 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5737-joomla-3-8-10-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:145--&amp;gt; Joomla! 3.8.10 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5734-joomla-3-8-9-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:143--&amp;gt; Joomla! 3.8.9 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5730-joomla-3-8-8-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:141--&amp;gt; Joomla! 3.8.8 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5728-joomla-3-8-7-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:139--&amp;gt; Joomla! 3.8.7 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5725-joomla-3-8-6-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:137--&amp;gt; Joomla! 3.8.6 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5724-joomla-3-8-5-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:135--&amp;gt; Joomla! 3.8.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5723-joomla-3-8-4-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:133--&amp;gt; Joomla! 3.8.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5717-joomla-3-8-3-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:131--&amp;gt; Joomla! 3.8.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5716-joomla-3-8-2-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:129--&amp;gt; Joomla! 3.8.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5715-joomla-3-8-1-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:127--&amp;gt; Joomla! 3.8.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5713-joomla-3-8-0-release.html &amp;lt;translate&amp;gt; &amp;lt;!--T:123--&amp;gt; Joomla! 3.8.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.7.x ==== &amp;lt;!--T:107--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5711-joomla-3-7-5-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:120--&amp;gt; Joomla! 3.7.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5710-joomla-3-7-4-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:117--&amp;gt; Joomla! 3.7.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5709-joomla-3-7-3-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:116--&amp;gt; Joomla! 3.7.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5706-joomla-3-7-2-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:114--&amp;gt;&lt;br /&gt;
Joomla! 3.7.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5705-joomla-3-7-1-release.html &amp;lt;translate&amp;gt;&amp;lt;!--T:112--&amp;gt;&lt;br /&gt;
Joomla! 3.7.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5703-joomla-3-7-is-here.html &amp;lt;translate&amp;gt;&amp;lt;!--T:108--&amp;gt;&lt;br /&gt;
Joomla! 3.7.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.6.x ==== &amp;lt;!--T:92--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5693-joomla-3-6-5-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:105--&amp;gt;&lt;br /&gt;
Joomla! 3.6.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5678-joomla-3-6-4-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:103--&amp;gt;&lt;br /&gt;
Joomla! 3.6.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5676-joomla-3-6-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:101--&amp;gt;&lt;br /&gt;
Joomla! 3.6.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5667-joomla-3-6-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:99--&amp;gt;&lt;br /&gt;
Joomla! 3.6.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5665-joomla-3-6-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:97--&amp;gt;&lt;br /&gt;
Joomla! 3.6.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5664-joomla-3-6-is-here.html &amp;lt;translate&amp;gt;&amp;lt;!--T:93--&amp;gt;&lt;br /&gt;
Joomla! 3.6.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.5.x ==== &amp;lt;!--T:2--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5655-joomla-3-5-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:3--&amp;gt;&lt;br /&gt;
Joomla! 3.5.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
*[https://www.joomla.org/announcements/release-news/5654-joomla-3-5-is-here.html &amp;lt;translate&amp;gt;&amp;lt;!--T:4--&amp;gt;&lt;br /&gt;
Joomla! 3.5.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.4.x ==== &amp;lt;!--T:5--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5644-joomla-3-4-8-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:6--&amp;gt;&lt;br /&gt;
Joomla! 3.4.8 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5643-joomla-3-4-7.html &amp;lt;translate&amp;gt;&amp;lt;!--T:7--&amp;gt;&lt;br /&gt;
Joomla! 3.4.7 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5641-joomla-3-4-6-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:8--&amp;gt;&lt;br /&gt;
Joomla! 3.4.6 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5634-joomla-3-4-5-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:9--&amp;gt;&lt;br /&gt;
Joomla! 3.4.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5628-joomla-3-4-4-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:10--&amp;gt;&lt;br /&gt;
Joomla! 3.4.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5590-joomla-3-4-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:11--&amp;gt;&lt;br /&gt;
Joomla! 3.4.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5589-joomla-3-4-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:12--&amp;gt;&lt;br /&gt;
Joomla! 3.4.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5587-joomla-3-4-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:13--&amp;gt;&lt;br /&gt;
Joomla! 3.4.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5586-joomla-3-4-is-here.html &amp;lt;translate&amp;gt;&amp;lt;!--T:14--&amp;gt;&lt;br /&gt;
Joomla! 3.4.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.3.x ==== &amp;lt;!--T:15--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5569-joomla-3-3-6-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:16--&amp;gt;&lt;br /&gt;
Joomla 3.3.6 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5567-joomla-3-3-5-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:17--&amp;gt;&lt;br /&gt;
Joomla 3.3.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5564-joomla-3-3-4-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:18--&amp;gt;&lt;br /&gt;
Joomla 3.3.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5557-joomla-3-3-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:19--&amp;gt;&lt;br /&gt;
Joomla 3.3.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5555-joomla-3-3-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:20--&amp;gt;&lt;br /&gt;
Joomla 3.3.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5551-joomla-3-3-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:21--&amp;gt;&lt;br /&gt;
Joomla 3.3.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5546-joomla-3-3-0-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:22--&amp;gt;&lt;br /&gt;
Joomla 3.3.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.2.x ==== &amp;lt;!--T:23--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5546-joomla-3-3-0-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:24--&amp;gt;&lt;br /&gt;
Joomla 3.2.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5538-joomla-3-2-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:25--&amp;gt;&lt;br /&gt;
Joomla 3.2.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5531-joomla-3-2-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:26--&amp;gt;&lt;br /&gt;
Joomla 3.2.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5523-joomla-3-2-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:27--&amp;gt;&lt;br /&gt;
Joomla 3.2.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5516-joomla-3-2-0-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:28--&amp;gt;&lt;br /&gt;
Joomla 3.2.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.1.x ==== &amp;lt;!--T:29--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5516-joomla-3-2-0-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:30--&amp;gt;&lt;br /&gt;
Joomla 3.1.6 announcement&amp;lt;/translate&amp;gt;] &amp;lt;translate&amp;gt;&amp;lt;!--T:31--&amp;gt;&lt;br /&gt;
(release of 3 security patches, as noted in the 3.2 release) Links can be found in 3.2 notice&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5505-joomla-3-1-5-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:32--&amp;gt;&lt;br /&gt;
Joomla 3.1.5 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5504-joomla-3-1-4-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:33--&amp;gt;&lt;br /&gt;
Joomla 3.1.4 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:34--&amp;gt;&lt;br /&gt;
* Joomla 3.1.3 not officially released, see [[S:MyLanguage/:Category:Version 3.1.3 FAQ|Version 3.1.3 FAQ]]&lt;br /&gt;
* Joomla 3.1.2 not officially released, see [[S:MyLanguage/J3.1:Detailed instructions for updating from 3.1.2 to 3.1.4|Detailed instructions for updating from 3.1.2 to 3.1.4]]&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5499-joomla-3-1-1-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:35--&amp;gt;&lt;br /&gt;
Joomla 3.1.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5494-joomla-3-1-0-stable-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:36--&amp;gt;&lt;br /&gt;
Joomla 3.1.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.0.x ==== &amp;lt;!--T:37--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5478-joomla-3-0-3-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:38--&amp;gt;&lt;br /&gt;
Joomla 3.0.3 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5471-joomla-3-0-2-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:39--&amp;gt;&lt;br /&gt;
Joomla 3.0.2 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5468-joomla-3-0-1-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:40--&amp;gt;&lt;br /&gt;
Joomla 3.0.1 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
* [https://www.joomla.org/announcements/release-news/5464-joomla-3-0-0-released.html &amp;lt;translate&amp;gt;&amp;lt;!--T:41--&amp;gt;&lt;br /&gt;
Joomla 3.0.0 announcement&amp;lt;/translate&amp;gt;]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Frequently Asked Questions== &amp;lt;!--T:42--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.9.x ==== &amp;lt;!--T:155--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:156--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.9.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.11 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:179--&amp;gt; Version 3.9.11 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.10 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:178--&amp;gt; Version 3.9.10 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.9 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:176--&amp;gt; Version 3.9.9 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.8 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:174--&amp;gt; Version 3.9.8 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.7 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:172--&amp;gt; Version 3.9.7 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.6 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:170--&amp;gt; Version 3.9.6 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:168--&amp;gt; Version 3.9.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.4 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:166--&amp;gt; Version 3.9.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.3 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:164--&amp;gt; Version 3.9.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:162--&amp;gt; Version 3.9.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.1 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:160--&amp;gt; Version 3.9.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.9.0 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:157--&amp;gt; Version 3.9.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Version 3.8.x ==== &amp;lt;!--T:158--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:125--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.8.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.13 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:152--&amp;gt; Version 3.8.13 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.12 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:150--&amp;gt; Version 3.8.12 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.11 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:148--&amp;gt; Version 3.8.11 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.10 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:146--&amp;gt; Version 3.8.10 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.9 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:144--&amp;gt; Version 3.8.9 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.8 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:142--&amp;gt; Version 3.8.8 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.7 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:140--&amp;gt; Version 3.8.7 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.6 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:138--&amp;gt; Version 3.8.6 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.5 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:136--&amp;gt; Version 3.8.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.4 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:134--&amp;gt; Version 3.8.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.3 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:132--&amp;gt; Version 3.8.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.2 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:130--&amp;gt; Version 3.8.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.1 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:128--&amp;gt; Version 3.8.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.8.0 FAQ|&amp;lt;translate&amp;gt; &amp;lt;!--T:126--&amp;gt; Version 3.8.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.7.x ==== &amp;lt;!--T:109--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:110--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.7.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:121--&amp;gt; Version 3.7.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:118--&amp;gt; Version 3.7.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:119--&amp;gt; Version 3.7.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.2 FAQ|&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:115--&amp;gt;&lt;br /&gt;
Version 3.7.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:113--&amp;gt;&lt;br /&gt;
Version 3.7.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.7.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:111--&amp;gt;&lt;br /&gt;
Version 3.7.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.6.x ==== &amp;lt;!--T:94--&amp;gt;&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:95--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.6.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:106--&amp;gt;&lt;br /&gt;
Version 3.6.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:104--&amp;gt;&lt;br /&gt;
Version 3.6.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:102--&amp;gt;&lt;br /&gt;
Version 3.6.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:100--&amp;gt;&lt;br /&gt;
Version 3.6.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:98--&amp;gt;&lt;br /&gt;
Version 3.6.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.6.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:96--&amp;gt;&lt;br /&gt;
Version 3.6.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.5.x ==== &amp;lt;!--T:43--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:44--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.5.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.5.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:45--&amp;gt;&lt;br /&gt;
Version 3.5.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.5.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:46--&amp;gt;&lt;br /&gt;
Version 3.5.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:47--&amp;gt;&lt;br /&gt;
For more about the updating process of 3.4.8 to 3.5.0, please see&amp;lt;/translate&amp;gt;: [[S:MyLanguage/J3.x:Upgrading_from_Joomla_3.4.x_to_3.5|&amp;lt;translate&amp;gt;&amp;lt;!--T:48--&amp;gt;&lt;br /&gt;
Upgrading from Joomla 3.4.x to 3.5&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.4.x ==== &amp;lt;!--T:49--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:50--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.4.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.8 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:51--&amp;gt;&lt;br /&gt;
Version 3.4.8 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.7 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:52--&amp;gt;&lt;br /&gt;
Version 3.4.7 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.6 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:53--&amp;gt;&lt;br /&gt;
Version 3.4.6 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:54--&amp;gt;&lt;br /&gt;
Version 3.4.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:55--&amp;gt;&lt;br /&gt;
Version 3.4.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:56--&amp;gt;&lt;br /&gt;
Version 3.4.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:57--&amp;gt;&lt;br /&gt;
Version 3.4.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:58--&amp;gt;&lt;br /&gt;
Version 3.4.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.4.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:59--&amp;gt;&lt;br /&gt;
Version 3.4.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.3.x ==== &amp;lt;!--T:60--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:61--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.3.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.6 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:62--&amp;gt;&lt;br /&gt;
Version 3.3.6 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:63--&amp;gt;&lt;br /&gt;
Version 3.3.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:64--&amp;gt;&lt;br /&gt;
Version 3.3.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:65--&amp;gt;&lt;br /&gt;
Version 3.3.3 FAQ&amp;lt;/translate&amp;gt;]] &lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:66--&amp;gt;&lt;br /&gt;
Version 3.3.2 FAQ&amp;lt;/translate&amp;gt;]] &lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:67--&amp;gt;&lt;br /&gt;
Version 3.3.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.3.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:68--&amp;gt;&lt;br /&gt;
Version 3.3.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.2.x ==== &amp;lt;!--T:69--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:70--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.2.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:71--&amp;gt;&lt;br /&gt;
Version 3.2.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:72--&amp;gt;&lt;br /&gt;
Version 3.2.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:73--&amp;gt;&lt;br /&gt;
Version 3.2.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:74--&amp;gt;&lt;br /&gt;
Version 3.2.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:75--&amp;gt;&lt;br /&gt;
Version 3.2.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.2.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:76--&amp;gt;&lt;br /&gt;
Version 3.2.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.1.x ==== &amp;lt;!--T:77--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:78--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.1.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.5 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:79--&amp;gt;&lt;br /&gt;
Version 3.1.5 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.4 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:80--&amp;gt;&lt;br /&gt;
Version 3.1.4 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:81--&amp;gt;&lt;br /&gt;
Version 3.1.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:82--&amp;gt;&lt;br /&gt;
Version 3.1.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:83--&amp;gt;&lt;br /&gt;
Version 3.1.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.1.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:84--&amp;gt;&lt;br /&gt;
Version 3.1.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
==== Version 3.0.x ==== &amp;lt;!--T:85--&amp;gt; &lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;translate&amp;gt;&lt;br /&gt;
&amp;lt;!--T:86--&amp;gt;&lt;br /&gt;
For known issues specific to a 3.0.x version, together with suggested resolutions.&lt;br /&gt;
&amp;lt;/translate&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.0.3 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:87--&amp;gt;&lt;br /&gt;
Version 3.0.3 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.0.2 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:88--&amp;gt;&lt;br /&gt;
Version 3.0.2 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.0.1 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:89--&amp;gt;&lt;br /&gt;
Version 3.0.1 FAQ&amp;lt;/translate&amp;gt;]]&lt;br /&gt;
* [[S:MyLanguage/:Category:Version 3.0.0 FAQ|&amp;lt;translate&amp;gt;&amp;lt;!--T:90--&amp;gt;&lt;br /&gt;
Version 3.0.0 FAQ&amp;lt;/translate&amp;gt;]]&lt;/div&gt;</summary>
		<author><name>Hleithner</name></author>
	</entry>
</feed>