diff --git a/.appveyor.yml b/.appveyor.yml
index 39a64f6d13efe..2ed100c749580 100644
--- a/.appveyor.yml
+++ b/.appveyor.yml
@@ -96,7 +96,6 @@ install:
- appveyor-retry appveyor DownloadFile https://getcomposer.org/composer.phar
- cd C:\projects\joomla-cms
- appveyor-retry composer install --no-progress --profile
- - appveyor-retry composer update joomla/test-unit --no-progress --profile
before_test:
# Database setup for MySQL via PowerShell tools
- >
@@ -113,4 +112,4 @@ before_test:
test_script:
- cd C:\projects\joomla-cms
- - libraries/vendor/bin/phpunit --configuration ./libraries/vendor/joomla/test-unit/phpunit.xml.dist
+ - libraries/vendor/bin/phpunit
diff --git a/.drone.yml b/.drone.yml
index de3758236c4e2..04370afd1bd4e 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -23,10 +23,9 @@ pipeline:
image: joomlaprojects/docker-tools:develop
commands:
- composer install --no-progress --no-suggest
- # needed for unit testing
- - composer update joomla/test-unit --no-progress --no-suggest
# needed for system testing
- composer update joomla/test-system --no-progress --no-suggest
+ - composer update joomla/test-api --no-progress --no-suggest
- composer update joomla-projects/selenium-server-standalone --no-progress --no-suggest
- composer update joomla-projects/joomla-browser --no-progress --no-suggest
- npm install --unsafe-perm
@@ -44,19 +43,19 @@ pipeline:
group: unit
image: joomlaprojects/docker-php70:develop
commands:
- - ./libraries/vendor/bin/phpunit --configuration ./libraries/vendor/joomla/test-unit/phpunit.xml.dist
+ - ./libraries/vendor/bin/phpunit
php71-unit:
group: unit
image: joomlaprojects/docker-php71:develop
commands:
- - ./libraries/vendor/bin/phpunit --configuration ./libraries/vendor/joomla/test-unit/phpunit.xml.dist
+ - ./libraries/vendor/bin/phpunit
php72-unit:
group: unit
image: joomlaprojects/docker-php72:develop
commands:
- - ./libraries/vendor/bin/phpunit --configuration ./libraries/vendor/joomla/test-unit/phpunit.xml.dist
+ - ./libraries/vendor/bin/phpunit
javascript-cs:
image: joomlaprojects/docker-systemtests:develop
@@ -65,7 +64,7 @@ pipeline:
- Xvfb -screen 0 1024x768x24 -ac +extension GLX +render -noreset > /dev/null 2>&1 &
- sleep 3
- fluxbox > /dev/null 2>&1 &
- - cd /drone/src/github.com/joomla/joomla-cms && npm run lint:js
+ - npm run lint:js
javascript-tests:
image: joomlaprojects/docker-systemtests:develop
@@ -81,8 +80,13 @@ pipeline:
commands:
- bash libraries/vendor/joomla/test-system/src/drone-run.sh "$(pwd)"
+ api-tests:
+ image: joomlaprojects/docker-systemtests:latest
+ commands:
+ - bash libraries/vendor/joomla/test-api/drone-run.sh "$(pwd)"
+
analysis3x:
- image: rips/rips-cli
+ image: rips/rips-cli:1.2.1
secrets: [rips_username, rips_password]
when:
branch: staging
@@ -91,10 +95,10 @@ pipeline:
- export RIPS_USERNAME=$RIPS_USERNAME
- export RIPS_PASSWORD=$RIPS_PASSWORD
- if [ $DRONE_REPO_OWNER != 'joomla' ]; then echo "The analysis check only run on the main repos"; exit 0; fi
- - rips-cli rips:scan:start -a 1 -t 1 -p $(pwd) -t 1 -T $DRONE_REPO_OWNER-$DRONE_BRANCH || { echo "Please contact the security team at security@joomla.org"; exit 1; }
+ - rips-cli rips:scan:start -a 1 -t 1 -R -k -p $(pwd) -t 1 -T $DRONE_REPO_OWNER-$DRONE_BRANCH || { echo "Please contact the security team at security@joomla.org"; exit 1; }
analysis4x:
- image: rips/rips-cli
+ image: rips/rips-cli:1.2.1
secrets: [rips_username, rips_password]
when:
branch: 4.0-dev
@@ -103,7 +107,7 @@ pipeline:
- export RIPS_USERNAME=$RIPS_USERNAME
- export RIPS_PASSWORD=$RIPS_PASSWORD
- if [ $DRONE_REPO_OWNER != 'joomla' ]; then echo "The analysis check only run on the main repos"; exit 0; fi
- - rips-cli rips:scan:start -a 3 -t 1 -p $(pwd) -t 1 -T $DRONE_REPO_OWNER-$DRONE_BRANCH || { echo "Please contact the security team at security@joomla.org"; exit 1; }
+ - rips-cli rips:scan:start -a 3 -t 1 -R -k -p $(pwd) -t 1 -T $DRONE_REPO_OWNER-$DRONE_BRANCH || { echo "Please contact the security team at security@joomla.org"; exit 1; }
branches:
exclude: [ l10n_* ]
diff --git a/.editorconfig b/.editorconfig
new file mode 100644
index 0000000000000..287896868eaa4
--- /dev/null
+++ b/.editorconfig
@@ -0,0 +1,12 @@
+# EditorConfig is awesome: http://EditorConfig.org
+
+# top-most EditorConfig file
+root = true
+
+# Unix-style newlines with a newline ending every file
+[*]
+indent_style = tab
+end_of_line = lf
+charset = utf-8
+trim_trailing_whitespace = true
+insert_final_newline = true
diff --git a/.eslintignore b/.eslintignore
index bb3c737a70835..0948100b4106f 100644
--- a/.eslintignore
+++ b/.eslintignore
@@ -1,6 +1,16 @@
# A list of files to ignore from linting
-# TODO: Fix the webcomponents codestyle then also allow linting on them
*.js
!*.es6.js
administrator/components/com_media/node_modules/uri-js/node_modules/punycode/punycode.es6.js
+media
*.vue
+# TODO: Fix the webcomponents codestyle then also allow linting on them
+joomla-editor-codemirror.w-c.es6.js
+joomla-field-fancy-select.w-c.es6.js
+joomla-field-module-order.w-c.es6.js
+joomla-field-permissions.w-c.es6.js
+joomla-field-send-test-mail.w-c.es6.js
+joomla-field-simple-color.w-c.es6.js
+joomla-field-subform.w-c.es6.js
+joomla-field-switcher.w-c.es6.js
+# End of TODO
diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS
index a26c804e9aa8c..a11b0d0ab7de0 100644
--- a/.github/CODEOWNERS
+++ b/.github/CODEOWNERS
@@ -57,7 +57,7 @@ RoboFile.php @rdeutz
travis-phpunit.xml @rdeutz
# Core JS
-media/*/js/* @dgt41
+media/*/js/* @dgrammatiko
# CSP Tooling
plugins/system/httpheaders/* @zero-24
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md
index caf403a10e050..3e1635228df47 100644
--- a/.github/CONTRIBUTING.md
+++ b/.github/CONTRIBUTING.md
@@ -19,6 +19,6 @@ There are other branches available which serve specific purposes.
| Branch | Purpose |
| ------ | ------- |
-| staging | Current codebase. Branch for the next minor Joomla version. New backward compatible features go into this branch. |
-| 3.9-dev | Branch for the next minor Joomla version. The 3.9.0 release will only include compatibility features for 4.0. Commits to staging will be applied to this branch as well. |
+| staging | Current codebase. Branch for the next minor Joomla version. New backward compatible features go into this branch. The 3.9.0 release will include the Privacy Tools Suite features. |
+| 3.10-dev | Branch for the next minor Joomla version. The 3.10.0 release will only include compatibility features for 4.0. Commits to staging will be applied to this branch as well. |
| 4.0-dev | Branch for the next major Joomla version. New features go into this branch. Commits to staging will be applied to this branch as well. |
diff --git a/.github/ISSUE_TEMPLATE/Security.md b/.github/ISSUE_TEMPLATE/Security.md
new file mode 100644
index 0000000000000..d7ff7ea26e670
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/Security.md
@@ -0,0 +1,11 @@
+---
+name: Security
+about: Report a security issue
+
+---
+
+Security issues should **NOT** be reported on this repository.
+
+If you believe you have found a security issue, please contact the Joomla Security Strike Team via email at security@joomla.org or through the contact form at https://developer.joomla.org/security/contact-the-team.html.
+
+Please see https://developer.joomla.org/security.html for more information on how the Joomla project responds to security issues.
diff --git a/.github/SUPPORT.md b/.github/SUPPORT.md
index 1f4c40264b859..0de43064ffe21 100644
--- a/.github/SUPPORT.md
+++ b/.github/SUPPORT.md
@@ -1,8 +1,8 @@
Where can you get support and help?
====================
-* [The Joomla! Documentation](https://docs.joomla.org/Special:MyLanguage/Main_Page);
-* [Frequently Asked Questions](https://docs.joomla.org/Special:MyLanguage/Category:FAQ) (FAQ);
-* Find the [information you need](https://docs.joomla.org/Special:MyLanguage/Start_here);
-* Find [help and other users](https://www.joomla.org/about-joomla/create-and-share.html);
-* Post questions at [our forums](https://forum.joomla.org);
+* [The Joomla! Documentation](https://docs.joomla.org/Special:MyLanguage/Main_Page).
+* [Frequently Asked Questions](https://docs.joomla.org/Special:MyLanguage/Category:FAQ) (FAQ).
+* Find the [information you need](https://docs.joomla.org/Special:MyLanguage/Start_here).
+* Find [help and other users](https://www.joomla.org/about-joomla/create-and-share.html).
+* Post questions at [our forums](https://forum.joomla.org).
* [Joomla Resources Directory](https://resources.joomla.org) (JRD).
diff --git a/.gitignore b/.gitignore
index 875e93f47524e..89f7804d40967 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,5 @@
# IDE & System Related Files #
.buildpath
-.editorconfig
.project
.settings
.DS_Store
diff --git a/.travis.yml b/.travis.yml
index 1f4feb5c9a4d4..96e849aa76a2c 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -19,7 +19,7 @@ before_script:
- composer install --ignore-platform-reqs
script:
- - libraries/vendor/bin/phpunit --configuration ./libraries/vendor/joomla/test-unit/phpunit.xml.dist
+ - libraries/vendor/bin/phpunit
branches:
except:
diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md
new file mode 100644
index 0000000000000..990fc7493fc7f
--- /dev/null
+++ b/CODE_OF_CONDUCT.md
@@ -0,0 +1,62 @@
+# Joomla Contributor Covenant Code of Conduct
+
+This document outlines the Code of Conduct for all persons volunteering their service to the Joomla Project and/or Open Source Matters. It covers your behaviour as a member of the Joomla community, in any forum, mailing list, Wiki, Web site, IRC channel, install-fest, public meeting or private correspondence.
+
+If you cannot agree to any of these principles, then volunteering in the Joomla Project is not for you. Contributing to our community assumes acceptance of these principles:
+## Be Considerate
+
+You are working with others as a team so be considerate of how your actions or contribution affects your colleagues and the community as a whole.
+## Be Respectful
+
+Treat one another and members of the community with respect. Everyone can make a valuable contribution to Joomla. We may not always agree, but disagreement is no excuse for poor behavior or poor manners.
+
+We might all experience some frustration now and then, but we cannot allow that frustration to turn into a personal attack. It's important to remember that a community where people feel uncomfortable or threatened is not a productive one. We expect the members of Joomla community to be respectful when dealing with other volunteers as well as with people from outside projects and initiatives and with users.
+
+Avoid becoming involved in flame wars, trolling, personal attacks, and repetitive arguments. Take the matters "outside" (off-list, etc) if it helps resolve the situation, and do not use communal methods of communication to be a vehicle for your private "wall of shame."
+## Be Collaborative
+
+Joomla is free software and about collaboration and working together. Collaboration reduces redundancy of work done in the free software world, and improves the quality of the software produced regardless of whether you are writing code or performing some other task.
+
+When you disagree, consult others. Disagreements, both political and technical, happen all the time, and Joomla is no exception. Disagreement, debate and constructive criticism is often how progress is made and are a necessary part of doing complex work in a team.
+
+The important goal is not to avoid disagreements or differing views but to resolve them constructively. Above all, avoid making conflicts about the work into personal conflicts. Debate should never include reference to someone's nationality, gender, religion or other personal characteristics.
+
+You should turn to the community and to the community process to seek advice and to resolve disagreements. Team leaders and Department Coordinators are able to help you figure out which direction will be most acceptable.
+
+When you are unsure, ask for help. Nobody knows everything and nobody is expected to be perfect. Asking questions avoids many problems down the road and so questions are encouraged. Those who are asked should be responsive and helpful. However, when asking a question, care must be taken to do so in an appropriate forum. Off-topic questions, such as requests for help on a development mailing list, detract from productive discussion.
+## Step Down Considerately
+
+People on every project come and go, and Joomla is no different. When you leave or disengage from the community, in whole or in part, we ask that you do so in a way that minimizes disruption to the Project. This means you should tell people you are leaving and take the proper steps to ensure that others can pick up where you leave off.
+## Be Available
+
+Check your e-mails regularly and answer them promptly—even if it's "I'll get back to you."
+## Be Honest
+
+Sometimes the hardest thing to say is "no" or admit you've forgotten do something. Be honest with each other and yourself with regards to what you say and what you can realistically commit to.
+## Follow the Rules
+
+Volunteers are expected to uphold Joomla's licensing and trademark requirements including, but not limited to, compliance on their own or affiliate Web sites and extensions. Make sure you have sought the appropriate approvals for domain name, name and logo usage prior to volunteering and that any extensions you distribute comply with the Joomla license.
+
+All work contributed to the Project, whether code, documentation or other material, must observe the appropriate licenses as set down by the Core Team and Open Source Matters.
+
+Some contributors represent the Joomla Project in specific areas, but you should not speak on behalf of the Project or present yourself as an official representative of the Project unless you are specifically authorized to do so, and you should never state your opinions as the official policies of the Project.
+## Exercise Discretion and Confidentiality at Appropriate Times
+
+Depending on your role, you will be privy to various levels of information. As a volunteer you are expected to keep site access details (such as logins, FTP details, etc.) secure at all times.
+
+Information contained within private forums (for example, about serious security matters, legal cases, or personal details), private mailing lists, chats or other mediums is also to be kept confidential even after you have discontinued your service. Breaches in the area of privacy and confidentiality are taken very seriously by the Project.
+## Conflict of Interest
+
+When using Project resources or making decisions within the board, your department, team, or subteam or the concerning Project's policy positions, you must do so based only on the best interests of the Project and its user community. If you have a situation or affiliation that might constitute or lead to a conflict of interest or might be perceived by a reasonable person in the community to be a conflict of interest, disclose this to your Team Leaders or the team as a whole. If appropriate, after discussing with your team, you should remove yourself from specific decisions or discussions in which you may have a conflict of interest.
+## Conflict Resolution Team
+
+Should you wish to make a CoC violation report or are facing a conflict that has failed to be resolved in the manner set out in this CoC, please [click here](https://docs.google.com/forms/d/e/1FAIpQLSea_VL9NUvUM3iX-gptNuJe5oz5-jp9y5Y4v9ZyKImblfYTcQ/viewform) to access the report form.
+## The Fine Print
+
+Members of the board of Open Source Matters are governed by additional guidelines and requirements and, where a conflict exists, these take precedence over this Code of Conduct.
+## The Last Bit
+
+This Code of Conduct has changed over time and will continue to develop, but was originally derived, with permission, from the Ubuntu CoC.
+
+Last Updated 8th of June 2017
+Online version of this document is available at https://www.joomla.org/about-joomla/the-project/code-of-conduct.html
diff --git a/README.md b/README.md
index 962f48dc23a14..7ca0dfcdad9a7 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-Joomla! CMS™ [![Analytics](https://ga-beacon.appspot.com/UA-544070-3/joomla-cms/readme)](https://github.com/igrigorik/ga-beacon)
+Joomla! CMS™ [![Analytics](https://ga-beacon.appspot.com/UA-544070-3/joomla-cms/readme)](https://github.com/igrigorik/ga-beacon) [![Reviewed by Hound](https://img.shields.io/badge/Reviewed_by-Hound-8E64B0.svg)](https://houndci.com)
====================
Build Status
@@ -64,7 +64,7 @@ Do you want to improve Joomla?
Copyright
---------------------
-* Copyright (C) 2005 - 2018 Open Source Matters. All rights reserved.
+* Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.
* [Special Thanks](https://docs.joomla.org/Special:MyLanguage/Joomla!_Credits_and_Thanks)
* Distributed under the GNU General Public License version 2 or later
* See [License details](https://docs.joomla.org/Special:MyLanguage/Joomla_Licenses)
diff --git a/README.txt b/README.txt
index 006fedcd41833..75a33e037933b 100644
--- a/README.txt
+++ b/README.txt
@@ -13,7 +13,7 @@
3- Is Joomla! for you?
* Joomla! is the right solution for most content web projects: https://docs.joomla.org/Special:MyLanguage/Portal:Learn_More
* See Joomla's core features - https://www.joomla.org/core-features.html
- * Try out our online demo: https://demo.joomla.org
+ * Try out our free hosting service: https://launch.joomla.org
4- How to find a Joomla! translation?
* Repository of accredited language packs: https://community.joomla.org/translations.html
@@ -67,7 +67,7 @@
* Documentation for Web designers: https://docs.joomla.org/Special:MyLanguage/Web_designers
Copyright:
- * Copyright (C) 2005 - 2018 Open Source Matters. All rights reserved.
+ * Copyright (C) 2005 - 2019 Open Source Matters. All rights reserved.
* Special Thanks: https://docs.joomla.org/Special:MyLanguage/Joomla!_Credits_and_Thanks
* Distributed under the GNU General Public License version 2 or later
* See Licenses details at https://docs.joomla.org/Special:MyLanguage/Joomla_Licenses
diff --git a/RoboFile.php b/RoboFile.php
index 9f20da0847b70..996c9fb035479 100644
--- a/RoboFile.php
+++ b/RoboFile.php
@@ -3,7 +3,7 @@
* @package Joomla.Site
* @subpackage RoboFile
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_actionlogs/actionlogs.php b/administrator/components/com_actionlogs/actionlogs.php
new file mode 100644
index 0000000000000..5f467d68d378f
--- /dev/null
+++ b/administrator/components/com_actionlogs/actionlogs.php
@@ -0,0 +1,19 @@
+authorise('core.admin'))
+{
+ throw new JAccessExceptionNotallowed(JText::_('JERROR_ALERTNOAUTHOR'), 403);
+}
+
+$controller = JControllerLegacy::getInstance('Actionlogs');
+$controller->execute(JFactory::getApplication()->input->get('task'));
+$controller->redirect();
diff --git a/administrator/components/com_actionlogs/actionlogs.xml b/administrator/components/com_actionlogs/actionlogs.xml
new file mode 100644
index 0000000000000..0258379f0c3ef
--- /dev/null
+++ b/administrator/components/com_actionlogs/actionlogs.xml
@@ -0,0 +1,29 @@
+
+
+ com_actionlogs
+ Joomla! Project
+ May 2018
+ Copyright (C) 2005 - 2018 Open Source Matters. All rights reserved.
+ GNU General Public License version 2 or later; see LICENSE.txt
+ admin@joomla.org
+ www.joomla.org
+ 3.9.0
+ COM_ACTIONLOGS_XML_DESCRIPTION
+
+
+
+ actionlogs.php
+ config.xml
+ access.xml
+ controller.php
+ controllers
+ helpers
+ models
+ views
+
+
+ language/en-GB.com_actionlogs.ini
+ language/en-GB.com_actionlogs.sys.ini
+
+
+
diff --git a/administrator/components/com_actionlogs/config.xml b/administrator/components/com_actionlogs/config.xml
new file mode 100644
index 0000000000000..c8450079348ff
--- /dev/null
+++ b/administrator/components/com_actionlogs/config.xml
@@ -0,0 +1,35 @@
+
+
+
+
diff --git a/administrator/components/com_actionlogs/controller.php b/administrator/components/com_actionlogs/controller.php
new file mode 100644
index 0000000000000..0967bcd774970
--- /dev/null
+++ b/administrator/components/com_actionlogs/controller.php
@@ -0,0 +1,19 @@
+registerTask('exportSelectedLogs', 'exportLogs');
+ }
+
+ /**
+ * Method to get a model object, loading it if required.
+ *
+ * @param string $name The model name. Optional.
+ * @param string $prefix The class prefix. Optional.
+ * @param array $config Configuration array for model. Optional.
+ *
+ * @return object The model.
+ *
+ * @since 3.9.0
+ */
+ public function getModel($name = 'Actionlogs', $prefix = 'ActionlogsModel', $config = array('ignore_request' => true))
+ {
+ // Return the model
+ return parent::getModel($name, $prefix, $config);
+ }
+
+ /**
+ * Method to export logs
+ *
+ * @return void
+ *
+ * @since 3.9.0
+ */
+ public function exportLogs()
+ {
+ // Check for request forgeries.
+ $this->checkToken();
+
+ $task = $this->getTask();
+
+ $pks = array();
+
+ if ($task == 'exportSelectedLogs')
+ {
+ // Get selected logs
+ $pks = ArrayHelper::toInteger(explode(',', $this->input->post->getString('cids')));
+ }
+
+ /** @var ActionlogsModelActionlogs $model */
+ $model = $this->getModel();
+
+ // Get the logs data
+ $data = $model->getLogDataAsIterator($pks);
+
+ if (count($data))
+ {
+
+ try
+ {
+ $rows = ActionlogsHelper::getCsvData($data);
+ }
+ catch (InvalidArgumentException $exception)
+ {
+ $this->setMessage(JText::_('COM_ACTIONLOGS_ERROR_COULD_NOT_EXPORT_DATA'), 'error');
+ $this->setRedirect(JRoute::_('index.php?option=com_actionlogs&view=actionlogs', false));
+
+ return;
+ }
+
+ // Destroy the iterator now
+ unset($data);
+
+ $date = new JDate('now', new DateTimeZone('UTC'));
+ $filename = 'logs_' . $date->format('Y-m-d_His_T');
+
+ $csvDelimiter = ComponentHelper::getComponent('com_actionlogs')->getParams()->get('csv_delimiter', ',');
+
+ $app = JFactory::getApplication();
+ $app->setHeader('Content-Type', 'application/csv', true)
+ ->setHeader('Content-Disposition', 'attachment; filename="' . $filename . '.csv"', true)
+ ->setHeader('Cache-Control', 'must-revalidate', true)
+ ->sendHeaders();
+
+ $output = fopen("php://output", "w");
+
+ foreach ($rows as $row)
+ {
+ fputcsv($output, $row, $csvDelimiter);
+ }
+
+ fclose($output);
+
+ $app->close();
+ }
+ else
+ {
+ $this->setMessage(JText::_('COM_ACTIONLOGS_NO_LOGS_TO_EXPORT'));
+ $this->setRedirect(JRoute::_('index.php?option=com_actionlogs&view=actionlogs', false));
+ }
+ }
+
+ /**
+ * Clean out the logs
+ *
+ * @return void
+ *
+ * @since 3.9.0
+ */
+ public function purge()
+ {
+ // Check for request forgeries.
+ $this->checkToken();
+
+ $model = $this->getModel();
+
+ if ($model->purge())
+ {
+ $message = JText::_('COM_ACTIONLOGS_PURGE_SUCCESS');
+ }
+ else
+ {
+ $message = JText::_('COM_ACTIONLOGS_PURGE_FAIL');
+ }
+
+ $this->setRedirect(JRoute::_('index.php?option=com_actionlogs&view=actionlogs', false), $message);
+ }
+}
diff --git a/administrator/components/com_actionlogs/helpers/actionlogs.php b/administrator/components/com_actionlogs/helpers/actionlogs.php
new file mode 100644
index 0000000000000..be9351d7ef0a4
--- /dev/null
+++ b/administrator/components/com_actionlogs/helpers/actionlogs.php
@@ -0,0 +1,317 @@
+='))
+ {
+ // Only include the PHP 5.5 helper in this conditional to prevent the potential of parse errors for PHP 5.4 or earlier
+ JLoader::register('ActionlogsHelperPhp55', __DIR__ . '/actionlogsphp55.php');
+
+ return ActionlogsHelperPhp55::getCsvAsGenerator($data);
+ }
+
+ $rows = array();
+
+ // Header row
+ $rows[] = array('Id', 'Message', 'Date', 'Extension', 'User', 'Ip');
+
+ foreach ($data as $log)
+ {
+ $date = new JDate($log->log_date, new DateTimeZone('UTC'));
+ $extension = strtok($log->extension, '.');
+
+ static::loadTranslationFiles($extension);
+
+ $rows[] = array(
+ 'id' => $log->id,
+ 'message' => strip_tags(static::getHumanReadableLogMessage($log, false)),
+ 'date' => $date->format('Y-m-d H:i:s T'),
+ 'extension' => JText::_($extension),
+ 'name' => $log->name,
+ 'ip_address' => JText::_($log->ip_address),
+ );
+ }
+
+ return $rows;
+ }
+
+ /**
+ * Load the translation files for an extension
+ *
+ * @param string $extension Extension name
+ *
+ * @return void
+ *
+ * @since 3.9.0
+ */
+ public static function loadTranslationFiles($extension)
+ {
+ static $cache = array();
+ $extension = strtolower($extension);
+
+ if (isset($cache[$extension]))
+ {
+ return;
+ }
+
+ $lang = JFactory::getLanguage();
+
+ switch (substr($extension, 0, 3))
+ {
+ case 'com':
+ default:
+ $source = JPATH_ADMINISTRATOR . '/components/' . $extension;
+ break;
+
+ case 'lib':
+ $source = JPATH_LIBRARIES . '/' . substr($extension, 4);
+ break;
+
+ case 'mod':
+ $source = JPATH_SITE . '/modules/' . $extension;
+ break;
+
+ case 'plg':
+ $parts = explode('_', $extension, 3);
+ $source = JPATH_PLUGINS . '/' . $parts[1] . '/' . $parts[2];
+ break;
+
+ case 'tpl':
+ $source = JPATH_BASE . '/templates/' . substr($extension, 4);
+ break;
+
+ }
+
+ $lang->load($extension, JPATH_ADMINISTRATOR, null, false, true)
+ || $lang->load($extension, $source, null, false, true);
+
+ if (!$lang->hasKey(strtoupper($extension)))
+ {
+ $lang->load($extension . '.sys', JPATH_ADMINISTRATOR, null, false, true)
+ || $lang->load($extension . '.sys', $source, null, false, true);
+ }
+
+ $cache[$extension] = true;
+ }
+
+ /**
+ * Get parameters to be
+ *
+ * @param string $context The context of the content
+ *
+ * @return mixed An object contains content type parameters, or null if not found
+ *
+ * @since 3.9.0
+ */
+ public static function getLogContentTypeParams($context)
+ {
+ $db = JFactory::getDbo();
+ $query = $db->getQuery(true)
+ ->select('a.*')
+ ->from($db->quoteName('#__action_log_config', 'a'))
+ ->where($db->quoteName('a.type_alias') . ' = ' . $db->quote($context));
+
+ $db->setQuery($query);
+
+ return $db->loadObject();
+ }
+
+ /**
+ * Get human readable log message for a User Action Log
+ *
+ * @param stdClass $log A User Action log message record
+ * @param boolean $generateLinks Flag to disable link generation when creating a message
+ *
+ * @return string
+ *
+ * @since 3.9.0
+ */
+ public static function getHumanReadableLogMessage($log, $generateLinks = true)
+ {
+ static $links = array();
+
+ $message = JText::_($log->message_language_key);
+ $messageData = json_decode($log->message, true);
+
+ // Special handling for translation extension name
+ if (isset($messageData['extension_name']))
+ {
+ static::loadTranslationFiles($messageData['extension_name']);
+ $messageData['extension_name'] = JText::_($messageData['extension_name']);
+ }
+
+ $linkMode = JFactory::getApplication()->get('force_ssl', 0) >= 1 ? 1 : -1;
+
+ foreach ($messageData as $key => $value)
+ {
+ // Convert relative url to absolute url so that it is clickable in action logs notification email
+ if ($generateLinks && StringHelper::strpos($value, 'index.php?') === 0)
+ {
+ if (!isset($links[$value]))
+ {
+ $links[$value] = JRoute::link('administrator', $value, false, $linkMode);
+ }
+
+ $value = $links[$value];
+ }
+
+ $message = str_replace('{' . $key . '}', JText::_($value), $message);
+ }
+
+ return $message;
+ }
+
+ /**
+ * Get link to an item of given content type
+ *
+ * @param string $component
+ * @param string $contentType
+ * @param integer $id
+ * @param string $urlVar
+ *
+ * @return string Link to the content item
+ *
+ * @since 3.9.0
+ */
+ public static function getContentTypeLink($component, $contentType, $id, $urlVar = 'id')
+ {
+ // Try to find the component helper.
+ $eName = str_replace('com_', '', $component);
+ $file = Path::clean(JPATH_ADMINISTRATOR . '/components/' . $component . '/helpers/' . $eName . '.php');
+
+ if (file_exists($file))
+ {
+ $prefix = ucfirst(str_replace('com_', '', $component));
+ $cName = $prefix . 'Helper';
+
+ JLoader::register($cName, $file);
+
+ if (class_exists($cName) && is_callable(array($cName, 'getContentTypeLink')))
+ {
+ return $cName::getContentTypeLink($contentType, $id);
+ }
+ }
+
+ if (empty($urlVar))
+ {
+ $urlVar = 'id';
+ }
+
+ // Return default link to avoid having to implement getContentTypeLink in most of our components
+ return 'index.php?option=' . $component . '&task=' . $contentType . '.edit&' . $urlVar . '=' . $id;
+ }
+
+ /**
+ * Load both enabled and disabled actionlog plugins language file.
+ *
+ * It is used to make sure actions log is displayed properly instead of only language items displayed when a plugin is disabled.
+ *
+ * @return void
+ *
+ * @since 3.9.0
+ */
+ public static function loadActionLogPluginsLanguage()
+ {
+ $lang = JFactory::getLanguage();
+ $db = JFactory::getDbo();
+
+ // Get all (both enabled and disabled) actionlog plugins
+ $query = $db->getQuery(true)
+ ->select(
+ $db->quoteName(
+ array(
+ 'folder',
+ 'element',
+ 'params',
+ 'extension_id'
+ ),
+ array(
+ 'type',
+ 'name',
+ 'params',
+ 'id'
+ )
+ )
+ )
+ ->from('#__extensions')
+ ->where('type = ' . $db->quote('plugin'))
+ ->where('folder = ' . $db->quote('actionlog'))
+ ->where('state IN (0,1)')
+ ->order('ordering');
+ $db->setQuery($query);
+
+ try
+ {
+ $rows = $db->loadObjectList();
+ }
+ catch (RuntimeException $e)
+ {
+ $rows = array();
+ }
+
+ if (empty($rows))
+ {
+ return;
+ }
+
+ foreach ($rows as $row)
+ {
+ $name = $row->name;
+ $type = $row->type;
+ $extension = 'Plg_' . $type . '_' . $name;
+ $extension = strtolower($extension);
+
+ // If language already loaded, don't load it again.
+ if ($lang->getPaths($extension))
+ {
+ continue;
+ }
+
+ $lang->load($extension, JPATH_ADMINISTRATOR, null, false, true)
+ || $lang->load($extension, JPATH_PLUGINS . '/' . $type . '/' . $name, null, false, true);
+ }
+
+ // Load com_privacy too.
+ $lang->load('com_privacy', JPATH_ADMINISTRATOR, null, false, true);
+ }
+}
diff --git a/administrator/components/com_actionlogs/helpers/actionlogsphp55.php b/administrator/components/com_actionlogs/helpers/actionlogsphp55.php
new file mode 100644
index 0000000000000..37e9d718ad23e
--- /dev/null
+++ b/administrator/components/com_actionlogs/helpers/actionlogsphp55.php
@@ -0,0 +1,65 @@
+extension, '.');
+
+ ActionlogsHelper::loadTranslationFiles($extension);
+
+ yield array(
+ 'id' => $log->id,
+ 'message' => strip_tags(ActionlogsHelper::getHumanReadableLogMessage($log, false)),
+ 'date' => (new JDate($log->log_date, new DateTimeZone('UTC')))->format('Y-m-d H:i:s T'),
+ 'extension' => JText::_($extension),
+ 'name' => $log->name,
+ 'ip_address' => JText::_($log->ip_address),
+ );
+ }
+ }
+}
diff --git a/administrator/components/com_actionlogs/layouts/logstable.php b/administrator/components/com_actionlogs/layouts/logstable.php
new file mode 100644
index 0000000000000..2aca08c590e3b
--- /dev/null
+++ b/administrator/components/com_actionlogs/layouts/logstable.php
@@ -0,0 +1,46 @@
+load("com_actionlogs", JPATH_ADMINISTRATOR, null, false, true);
+
+$messages = $displayData['messages'];
+$showIpColumn = $displayData['showIpColumn'];
+?>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
message; ?>
+
log_date, 'Y-m-d H:i:s T', 'UTC'); ?>
+
extension; ?>
+
+
+
ip_address); ?>
+
+
+
+
+
diff --git a/administrator/components/com_actionlogs/libraries/actionlogplugin.php b/administrator/components/com_actionlogs/libraries/actionlogplugin.php
new file mode 100644
index 0000000000000..e9e1819829a77
--- /dev/null
+++ b/administrator/components/com_actionlogs/libraries/actionlogplugin.php
@@ -0,0 +1,98 @@
+ $message)
+ {
+ if (!array_key_exists('userid', $message))
+ {
+ $message['userid'] = $user->id;
+ }
+
+ if (!array_key_exists('username', $message))
+ {
+ $message['username'] = $user->username;
+ }
+
+ if (!array_key_exists('accountlink', $message))
+ {
+ $message['accountlink'] = 'index.php?option=com_users&task=user.edit&id=' . $user->id;
+ }
+
+ if (array_key_exists('type', $message))
+ {
+ $message['type'] = strtoupper($message['type']);
+ }
+
+ if (array_key_exists('app', $message))
+ {
+ $message['app'] = strtoupper($message['app']);
+ }
+
+ $messages[$index] = $message;
+ }
+
+ /** @var ActionlogsModelActionlog $model **/
+ $model = BaseModel::getInstance('Actionlog', 'ActionlogsModel');
+ $model->addLog($messages, strtoupper($messageLanguageKey), $context, $userId);
+ }
+}
diff --git a/administrator/components/com_actionlogs/models/actionlog.php b/administrator/components/com_actionlogs/models/actionlog.php
new file mode 100644
index 0000000000000..61f0016ee0701
--- /dev/null
+++ b/administrator/components/com_actionlogs/models/actionlog.php
@@ -0,0 +1,172 @@
+getDbo();
+ $date = JFactory::getDate();
+ $params = ComponentHelper::getComponent('com_actionlogs')->getParams();
+
+ if ($params->get('ip_logging', 0))
+ {
+ $ip = IpHelper::getIp();
+
+ if (!filter_var($ip, FILTER_VALIDATE_IP))
+ {
+ $ip = 'COM_ACTIONLOGS_IP_INVALID';
+ }
+ }
+ else
+ {
+ $ip = 'COM_ACTIONLOGS_DISABLED';
+ }
+
+ $loggedMessages = array();
+
+ foreach ($messages as $message)
+ {
+ $logMessage = new stdClass;
+ $logMessage->message_language_key = $messageLanguageKey;
+ $logMessage->message = json_encode($message);
+ $logMessage->log_date = (string) $date;
+ $logMessage->extension = $context;
+ $logMessage->user_id = $user->id;
+ $logMessage->ip_address = $ip;
+ $logMessage->item_id = isset($message['id']) ? (int) $message['id'] : 0;
+
+ try
+ {
+ $db->insertObject('#__action_logs', $logMessage);
+ $loggedMessages[] = $logMessage;
+ }
+ catch (RuntimeException $e)
+ {
+ // Ignore it
+ }
+ }
+
+ // Send notification email to users who choose to be notified about the action logs
+ $this->sendNotificationEmails($loggedMessages, $user->name, $context);
+ }
+
+ /**
+ * Send notification emails about the action log
+ *
+ * @param array $messages The logged messages
+ * @param string $username The username
+ * @param string $context The Context
+ *
+ * @return void
+ *
+ * @since 3.9.0
+ */
+ protected function sendNotificationEmails($messages, $username, $context)
+ {
+ $db = $this->getDbo();
+ $query = $db->getQuery(true);
+ $params = ComponentHelper::getParams('com_actionlogs');
+ $showIpColumn = (bool) $params->get('ip_logging', 0);
+
+ $query
+ ->select($db->quoteName(array('u.email', 'l.extensions')))
+ ->from($db->quoteName('#__users', 'u'))
+ ->join(
+ 'INNER',
+ $db->quoteName('#__action_logs_users', 'l') . ' ON ( ' . $db->quoteName('l.notify') . ' = 1 AND '
+ . $db->quoteName('l.user_id') . ' = ' . $db->quoteName('u.id') . ')'
+ );
+
+ $db->setQuery($query);
+
+ try
+ {
+ $users = $db->loadObjectList();
+ }
+ catch (RuntimeException $e)
+ {
+ JError::raiseWarning(500, $e->getMessage());
+
+ return;
+ }
+
+ $recipients = array();
+
+ foreach ($users as $user)
+ {
+ $extensions = json_decode($user->extensions, true);
+
+ if ($extensions && in_array(strtok($context, '.'), $extensions))
+ {
+ $recipients[] = $user->email;
+ }
+ }
+
+ if (empty($recipients))
+ {
+ return;
+ }
+
+ $layout = new JLayoutFile('components.com_actionlogs.layouts.logstable', JPATH_ADMINISTRATOR);
+ $extension = strtok($context, '.');
+ ActionlogsHelper::loadTranslationFiles($extension);
+
+ foreach ($messages as $message)
+ {
+ $message->extension = JText::_($extension);
+ $message->message = ActionlogsHelper::getHumanReadableLogMessage($message);
+ }
+
+ $displayData = array(
+ 'messages' => $messages,
+ 'username' => $username,
+ 'showIpColumn' => $showIpColumn,
+ );
+
+ $body = $layout->render($displayData);
+ $mailer = JFactory::getMailer();
+ $mailer->addRecipient($recipients);
+ $mailer->setSubject(JText::_('COM_ACTIONLOGS_EMAIL_SUBJECT'));
+ $mailer->isHTML(true);
+ $mailer->Encoding = 'base64';
+ $mailer->setBody($body);
+
+ if (!$mailer->Send())
+ {
+ JError::raiseWarning(500, JText::_('JERROR_SENDING_EMAIL'));
+ }
+ }
+}
diff --git a/administrator/components/com_actionlogs/models/actionlogs.php b/administrator/components/com_actionlogs/models/actionlogs.php
new file mode 100644
index 0000000000000..8efc01d4d0088
--- /dev/null
+++ b/administrator/components/com_actionlogs/models/actionlogs.php
@@ -0,0 +1,389 @@
+getUserStateFromRequest($this->context . 'filter.search', 'filter_search', '', 'string');
+ $this->setState('filter.search', $search);
+
+ $user = $app->getUserStateFromRequest($this->context . 'filter.user', 'filter_user', '', 'string');
+ $this->setState('filter.user', $user);
+
+ $extension = $app->getUserStateFromRequest($this->context . 'filter.extension', 'filter_extension', '', 'string');
+ $this->setState('filter.extension', $extension);
+
+ $ip_address = $app->getUserStateFromRequest($this->context . 'filter.ip_address', 'filter_ip_address', '', 'string');
+ $this->setState('filter.ip_address', $ip_address);
+
+ $dateRange = $app->getUserStateFromRequest($this->context . 'filter.dateRange', 'filter_dateRange', '', 'string');
+ $this->setState('filter.dateRange', $dateRange);
+
+ parent::populateState($ordering, $direction);
+ }
+
+ /**
+ * Build an SQL query to load the list data.
+ *
+ * @return JDatabaseQuery
+ *
+ * @since 3.9.0
+ */
+ protected function getListQuery()
+ {
+ $db = $this->getDbo();
+ $query = $db->getQuery(true)
+ ->select('a.*, u.name')
+ ->from('#__action_logs AS a')
+ ->leftJoin('#__users AS u ON a.user_id = u.id');
+
+ // Get ordering
+ $fullorderCol = $this->state->get('list.fullordering', 'a.id DESC');
+
+ // Apply ordering
+ if (!empty($fullorderCol))
+ {
+ $query->order($db->escape($fullorderCol));
+ }
+
+ // Get filter by user
+ $user = $this->getState('filter.user');
+
+ // Apply filter by user
+ if (!empty($user))
+ {
+ $query->where($db->quoteName('a.user_id') . ' = ' . (int) $user);
+ }
+
+ // Get filter by extension
+ $extension = $this->getState('filter.extension');
+
+ // Apply filter by extension
+ if (!empty($extension))
+ {
+ $query->where($db->quoteName('a.extension') . ' LIKE ' . $db->quote($extension . '%'));
+ }
+
+ // Get filter by date range
+ $dateRange = $this->getState('filter.dateRange');
+
+ // Apply filter by date range
+ if (!empty($dateRange))
+ {
+ $date = $this->buildDateRange($dateRange);
+
+ // If the chosen range is not more than a year ago
+ if ($date['dNow'] != false)
+ {
+ $query->where(
+ $db->qn('a.log_date') . ' >= ' . $db->quote($date['dStart']->format('Y-m-d H:i:s')) .
+ ' AND ' . $db->qn('a.log_date') . ' <= ' . $db->quote($date['dNow']->format('Y-m-d H:i:s'))
+ );
+ }
+ }
+
+ // Filter the items over the search string if set.
+ $search = $this->getState('filter.search');
+
+ if (!empty($search))
+ {
+ if (stripos($search, 'id:') === 0)
+ {
+ $query->where($db->quoteName('a.id') . ' = ' . (int) substr($search, 3));
+ }
+ elseif (stripos($search, 'item_id:') === 0)
+ {
+ $query->where($db->quoteName('a.item_id') . ' = ' . (int) substr($search, 3));
+ }
+ else
+ {
+ $search = $db->quote('%' . $db->escape($search, true) . '%');
+ $query->where('(' . $db->quoteName('u.username') . ' LIKE ' . $search . ')');
+ }
+ }
+
+ return $query;
+ }
+
+ /**
+ * Construct the date range to filter on.
+ *
+ * @param string $range The textual range to construct the filter for.
+ *
+ * @return array The date range to filter on.
+ *
+ * @since 3.9.0
+ */
+ private function buildDateRange($range)
+ {
+ // Get UTC for now.
+ $dNow = new JDate;
+ $dStart = clone $dNow;
+
+ switch ($range)
+ {
+ case 'past_week':
+ $dStart->modify('-7 day');
+ break;
+
+ case 'past_1month':
+ $dStart->modify('-1 month');
+ break;
+
+ case 'past_3month':
+ $dStart->modify('-3 month');
+ break;
+
+ case 'past_6month':
+ $dStart->modify('-6 month');
+ break;
+
+ case 'past_year':
+ $dStart->modify('-1 year');
+ break;
+
+ case 'today':
+ // Ranges that need to align with local 'days' need special treatment.
+ $offset = JFactory::getApplication()->get('offset');
+
+ // Reset the start time to be the beginning of today, local time.
+ $dStart = new JDate('now', $offset);
+ $dStart->setTime(0, 0, 0);
+
+ // Now change the timezone back to UTC.
+ $tz = new DateTimeZone('GMT');
+ $dStart->setTimezone($tz);
+ break;
+ }
+
+ return array('dNow' => $dNow, 'dStart' => $dStart);
+ }
+
+ /**
+ * Get all log entries for an item
+ *
+ * @param string $extension The extension the item belongs to
+ * @param integer $itemId The item ID
+ *
+ * @return array
+ *
+ * @since 3.9.0
+ */
+ public function getLogsForItem($extension, $itemId)
+ {
+ $db = $this->getDbo();
+ $query = $db->getQuery(true)
+ ->select('a.*, u.name')
+ ->from('#__action_logs AS a')
+ ->innerJoin('#__users AS u ON a.user_id = u.id')
+ ->where($db->quoteName('a.extension') . ' = ' . $db->quote($extension))
+ ->where($db->quoteName('a.item_id') . ' = ' . (int) $itemId);
+
+ // Get ordering
+ $fullorderCol = $this->getState('list.fullordering', 'a.id DESC');
+
+ // Apply ordering
+ if (!empty($fullorderCol))
+ {
+ $query->order($db->escape($fullorderCol));
+ }
+
+ $db->setQuery($query);
+
+ return $db->loadObjectList();
+ }
+
+ /**
+ * Get logs data into JTable object
+ *
+ * @param integer[]|null $pks An optional array of log record IDs to load
+ *
+ * @return array All logs in the table
+ *
+ * @since 3.9.0
+ */
+ public function getLogsData($pks = null)
+ {
+ $db = $this->getDbo();
+ $query = $this->getLogDataQuery($pks);
+
+ $db->setQuery($query);
+
+ return $db->loadObjectList();
+ }
+
+ /**
+ * Get logs data as a database iterator
+ *
+ * @param integer[]|null $pks An optional array of log record IDs to load
+ *
+ * @return JDatabaseIterator
+ *
+ * @since 3.9.0
+ */
+ public function getLogDataAsIterator($pks = null)
+ {
+ $db = $this->getDbo();
+ $query = $this->getLogDataQuery($pks);
+
+ $db->setQuery($query);
+
+ return $db->getIterator();
+ }
+
+ /**
+ * Get the query for loading logs data
+ *
+ * @param integer[]|null $pks An optional array of log record IDs to load
+ *
+ * @return JDatabaseQuery
+ *
+ * @since 3.9.0
+ */
+ private function getLogDataQuery($pks = null)
+ {
+ $db = $this->getDbo();
+ $query = $db->getQuery(true)
+ ->select('a.*, u.name')
+ ->from('#__action_logs AS a')
+ ->innerJoin('#__users AS u ON a.user_id = u.id');
+
+ if (is_array($pks) && count($pks) > 0)
+ {
+ $query->where($db->quoteName('a.id') . ' IN (' . implode(',', ArrayHelper::toInteger($pks)) . ')');
+ }
+
+ return $query;
+ }
+
+ /**
+ * Delete logs
+ *
+ * @param array $pks Primary keys of logs
+ *
+ * @return boolean
+ *
+ * @since 3.9.0
+ */
+ public function delete(&$pks)
+ {
+ $db = $this->getDbo();
+ $query = $db->getQuery(true)
+ ->delete($db->quoteName('#__action_logs'))
+ ->where($db->quoteName('id') . ' IN (' . implode(',', ArrayHelper::toInteger($pks)) . ')');
+ $db->setQuery($query);
+
+ try
+ {
+ $db->execute();
+
+ return true;
+ }
+ catch (RuntimeException $e)
+ {
+ $this->setError($e->getMessage());
+
+ return false;
+ }
+ }
+
+ /**
+ * Removes all of logs from the table.
+ *
+ * @return boolean result of operation
+ *
+ * @since 3.9.0
+ */
+ public function purge()
+ {
+ try
+ {
+ $this->getDbo()->truncateTable('#__action_logs');
+
+ return true;
+ }
+ catch (Exception $e)
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Get the filter form
+ *
+ * @param array $data data
+ * @param boolean $loadData load current data
+ *
+ * @return \JForm|boolean The \JForm object or false on error
+ *
+ * @since 3.9.0
+ */
+ public function getFilterForm($data = array(), $loadData = true)
+ {
+ $form = parent::getFilterForm($data, $loadData);
+ $params = ComponentHelper::getParams('com_actionlogs');
+ $ipLogging = (bool) $params->get('ip_logging', 0);
+
+ // Add ip sort options to sort dropdown
+ if ($form && $ipLogging)
+ {
+ /* @var JFormFieldList $field */
+ $field = $form->getField('fullordering', 'list');
+ $field->addOption(JText::_('COM_ACTIONLOGS_IP_ADDRESS_ASC'), array('value' => 'a.ip_address ASC'));
+ $field->addOption(JText::_('COM_ACTIONLOGS_IP_ADDRESS_DESC'), array('value' => 'a.ip_address DESC'));
+ }
+
+ return $form;
+ }
+}
diff --git a/administrator/components/com_actionlogs/models/fields/extension.php b/administrator/components/com_actionlogs/models/fields/extension.php
new file mode 100644
index 0000000000000..4eb3153662d32
--- /dev/null
+++ b/administrator/components/com_actionlogs/models/fields/extension.php
@@ -0,0 +1,68 @@
+getQuery(true)
+ ->select('DISTINCT ' . $db->quoteName('extension'))
+ ->from($db->quoteName('#__action_logs'))
+ ->order($db->quoteName('extension'));
+
+ $db->setQuery($query);
+ $context = $db->loadColumn();
+
+ $options = array();
+
+ if (count($context) > 0)
+ {
+ foreach ($context as $item)
+ {
+ $extensions[] = strtok($item, '.');
+ }
+
+ $extensions = array_unique($extensions);
+
+ foreach ($extensions as $extension)
+ {
+ ActionlogsHelper::loadTranslationFiles($extension);
+ $options[] = JHtml::_('select.option', $extension, JText::_($extension));
+ }
+ }
+
+ return array_merge(parent::getOptions(), $options);
+ }
+}
diff --git a/administrator/components/com_actionlogs/models/fields/logcreator.php b/administrator/components/com_actionlogs/models/fields/logcreator.php
new file mode 100644
index 0000000000000..c93081555d9a1
--- /dev/null
+++ b/administrator/components/com_actionlogs/models/fields/logcreator.php
@@ -0,0 +1,79 @@
+element);
+
+ if (!isset(static::$options[$hash]))
+ {
+ static::$options[$hash] = parent::getOptions();
+
+ $options = array();
+
+ $db = JFactory::getDbo();
+
+ // Construct the query
+ $query = $db->getQuery(true)
+ ->select($db->quoteName('u.id', 'value'))
+ ->select($db->quoteName('u.name', 'text'))
+ ->from($db->quoteName('#__users', 'u'))
+ ->join('INNER', $db->quoteName('#__action_logs', 'c') . ' ON ' . $db->quoteName('c.user_id') . ' = ' . $db->quoteName('u.id'))
+ ->group($db->quoteName('u.id'))
+ ->group($db->quoteName('u.name'))
+ ->order($db->quoteName('u.name'));
+
+ // Setup the query
+ $db->setQuery($query);
+
+ // Return the result
+ if ($options = $db->loadObjectList())
+ {
+ static::$options[$hash] = array_merge(static::$options[$hash], $options);
+ }
+ }
+
+ return static::$options[$hash];
+ }
+}
diff --git a/administrator/components/com_actionlogs/models/fields/logsdaterange.php b/administrator/components/com_actionlogs/models/fields/logsdaterange.php
new file mode 100644
index 0000000000000..f415254455b21
--- /dev/null
+++ b/administrator/components/com_actionlogs/models/fields/logsdaterange.php
@@ -0,0 +1,59 @@
+ 'COM_ACTIONLOGS_OPTION_RANGE_TODAY',
+ 'past_week' => 'COM_ACTIONLOGS_OPTION_RANGE_PAST_WEEK',
+ 'past_1month' => 'COM_ACTIONLOGS_OPTION_RANGE_PAST_1MONTH',
+ 'past_3month' => 'COM_ACTIONLOGS_OPTION_RANGE_PAST_3MONTH',
+ 'past_6month' => 'COM_ACTIONLOGS_OPTION_RANGE_PAST_6MONTH',
+ 'past_year' => 'COM_ACTIONLOGS_OPTION_RANGE_PAST_YEAR',
+ );
+
+ /**
+ * Method to instantiate the form field object.
+ *
+ * @param JForm $form The form to attach to the form field object.
+ *
+ * @since 3.9.0
+ */
+ public function __construct($form = null)
+ {
+ parent::__construct($form);
+
+ // Load the required language
+ $lang = JFactory::getLanguage();
+ $lang->load('com_actionlogs', JPATH_ADMINISTRATOR);
+ }
+}
diff --git a/administrator/components/com_actionlogs/models/fields/logtype.php b/administrator/components/com_actionlogs/models/fields/logtype.php
new file mode 100644
index 0000000000000..c8f0ef56b08e5
--- /dev/null
+++ b/administrator/components/com_actionlogs/models/fields/logtype.php
@@ -0,0 +1,62 @@
+getQuery(true)
+ ->select($db->quoteName('extension'))
+ ->from($db->quoteName('#__action_logs_extensions'));
+
+ $extensions = $db->setQuery($query)->loadColumn();
+
+ $options = array();
+ $tmp = array('checked' => true);
+
+ foreach ($extensions as $extension)
+ {
+ ActionlogsHelper::loadTranslationFiles($extension);
+ $option = JHtml::_('select.option', $extension, JText::_($extension));
+ $options[ApplicationHelper::stringURLSafe(JText::_($extension)) . '_' . $extension] = (object) array_merge($tmp, (array) $option);
+ }
+
+ ksort($options);
+
+ return array_merge(parent::getOptions(), array_values($options));
+ }
+}
diff --git a/administrator/components/com_actionlogs/models/forms/filter_actionlogs.xml b/administrator/components/com_actionlogs/models/forms/filter_actionlogs.xml
new file mode 100644
index 0000000000000..bb41c4087922c
--- /dev/null
+++ b/administrator/components/com_actionlogs/models/forms/filter_actionlogs.xml
@@ -0,0 +1,69 @@
+
+
diff --git a/administrator/components/com_actionlogs/views/actionlogs/tmpl/default.php b/administrator/components/com_actionlogs/views/actionlogs/tmpl/default.php
new file mode 100644
index 0000000000000..74b9e0f8658da
--- /dev/null
+++ b/administrator/components/com_actionlogs/views/actionlogs/tmpl/default.php
@@ -0,0 +1,137 @@
+escape($this->state->get('list.ordering'));
+$listDirn = $this->escape($this->state->get('list.direction'));
+
+JFactory::getDocument()->addScriptDeclaration('
+ Joomla.submitbutton = function(task)
+ {
+ if (task == "actionlogs.exportLogs")
+ {
+ Joomla.submitform(task, document.getElementById("exportForm"));
+
+ return;
+ }
+
+ if (task == "actionlogs.exportSelectedLogs")
+ {
+ // Get id of selected action logs item and pass it to export form hidden input
+ var cids = [];
+
+ jQuery("input[name=\'cid[]\']:checked").each(function() {
+ cids.push(jQuery(this).val());
+ });
+
+ document.exportForm.cids.value = cids.join(",");
+ Joomla.submitform(task, document.getElementById("exportForm"));
+
+ return;
+ }
+
+ Joomla.submitform(task);
+ };
+');
+?>
+
+
diff --git a/administrator/components/com_actionlogs/views/actionlogs/view.html.php b/administrator/components/com_actionlogs/views/actionlogs/view.html.php
new file mode 100644
index 0000000000000..9bbf6cb63ddad
--- /dev/null
+++ b/administrator/components/com_actionlogs/views/actionlogs/view.html.php
@@ -0,0 +1,109 @@
+items = $this->get('Items');
+ $this->state = $this->get('State');
+ $this->filterForm = $this->get('FilterForm');
+ $this->activeFilters = $this->get('ActiveFilters');
+ $this->pagination = $this->get('Pagination');
+ $this->showIpColumn = (bool) $params->get('ip_logging', 0);
+
+ if (count($errors = $this->get('Errors')))
+ {
+ JError::raiseError(500, implode("\n", $errors));
+
+ return false;
+ }
+
+ $this->addToolBar();
+
+ // Load all actionlog plugins language files
+ ActionlogsHelper::loadActionLogPluginsLanguage();
+
+ return parent::display($tpl);
+ }
+
+ /**
+ * Add the page title and toolbar.
+ *
+ * @return void
+ *
+ * @since 3.9.0
+ */
+ protected function addToolbar()
+ {
+ JToolbarHelper::title(JText::_('COM_ACTIONLOGS_MANAGER_USERLOGS'), 'list-2');
+
+ JToolbarHelper::deleteList('JGLOBAL_CONFIRM_DELETE', 'actionlogs.delete');
+ $bar = JToolbar::getInstance('toolbar');
+ $bar->appendButton('Confirm', 'COM_ACTIONLOGS_PURGE_CONFIRM', 'delete', 'COM_ACTIONLOGS_TOOLBAR_PURGE', 'actionlogs.purge', false);
+ JToolbarHelper::preferences('com_actionlogs');
+ JToolbarHelper::help('JHELP_COMPONENTS_ACTIONLOGS');
+ JToolBarHelper::custom('actionlogs.exportSelectedLogs', 'download', '', 'COM_ACTIONLOGS_EXPORT_CSV', true);
+ JToolBarHelper::custom('actionlogs.exportLogs', 'download', '', 'COM_ACTIONLOGS_EXPORT_ALL_CSV', false);
+ }
+}
diff --git a/administrator/components/com_admin/Controller/DisplayController.php b/administrator/components/com_admin/Controller/DisplayController.php
index 29166badb2589..eb99ab1bdad6b 100644
--- a/administrator/components/com_admin/Controller/DisplayController.php
+++ b/administrator/components/com_admin/Controller/DisplayController.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/Controller/ProfileController.php b/administrator/components/com_admin/Controller/ProfileController.php
deleted file mode 100644
index b629ce35ad5bc..0000000000000
--- a/administrator/components/com_admin/Controller/ProfileController.php
+++ /dev/null
@@ -1,84 +0,0 @@
-app->getIdentity()->id;
- }
-
- /**
- * Overrides parent save method to check the submitted passwords match.
- *
- * @param string $key The name of the primary key of the URL variable.
- * @param string $urlVar The name of the URL variable if different from the primary key (sometimes required to avoid router collisions).
- *
- * @return boolean True if successful, false otherwise.
- *
- * @since 3.2
- */
- public function save($key = null, $urlVar = null)
- {
- $this->setRedirect(Route::_('index.php?option=com_admin&view=profile&layout=edit&id=' . $this->app->getIdentity()->id, false));
-
- $return = parent::save();
-
- if ($this->getTask() != 'apply')
- {
- // Redirect to the main page.
- $this->setRedirect(Route::_('index.php', false));
- }
-
- return $return;
- }
-
- /**
- * Method to cancel an edit.
- *
- * @param string $key The name of the primary key of the URL variable.
- *
- * @return boolean True if access level checks pass, false otherwise.
- *
- * @since 1.6
- */
- public function cancel($key = null)
- {
- $return = parent::cancel($key);
-
- // Redirect to the main page.
- $this->setRedirect(Route::_('index.php', false));
-
- return $return;
- }
-}
diff --git a/administrator/components/com_admin/Dispatcher/Dispatcher.php b/administrator/components/com_admin/Dispatcher/Dispatcher.php
index 59670da27b3cc..0e245d801a42c 100644
--- a/administrator/components/com_admin/Dispatcher/Dispatcher.php
+++ b/administrator/components/com_admin/Dispatcher/Dispatcher.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/Extension/AdminComponent.php b/administrator/components/com_admin/Extension/AdminComponent.php
index c98d04b864901..b5425b88de0d3 100644
--- a/administrator/components/com_admin/Extension/AdminComponent.php
+++ b/administrator/components/com_admin/Extension/AdminComponent.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_content
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/Model/HelpModel.php b/administrator/components/com_admin/Model/HelpModel.php
index 8f04d780c3c6c..874000402423a 100644
--- a/administrator/components/com_admin/Model/HelpModel.php
+++ b/administrator/components/com_admin/Model/HelpModel.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/Model/ProfileModel.php b/administrator/components/com_admin/Model/ProfileModel.php
deleted file mode 100644
index 884d4b5413b7b..0000000000000
--- a/administrator/components/com_admin/Model/ProfileModel.php
+++ /dev/null
@@ -1,168 +0,0 @@
-loadForm('com_admin.profile', 'profile', array('control' => 'jform', 'load_data' => $loadData));
-
- if (empty($form))
- {
- return false;
- }
-
- // Check for username compliance and parameter set
- $isUsernameCompliant = true;
-
- if ($this->loadFormData()->username)
- {
- $username = $this->loadFormData()->username;
- $isUsernameCompliant = !(preg_match('#[<>"\'%;()&\\\\]|\\.\\./#', $username) || strlen(utf8_decode($username)) < 2
- || trim($username) != $username);
- }
-
- $this->setState('user.username.compliant', $isUsernameCompliant);
-
- if (!ComponentHelper::getParams('com_users')->get('change_login_name') && $isUsernameCompliant)
- {
- $form->setFieldAttribute('username', 'required', 'false');
- $form->setFieldAttribute('username', 'readonly', 'true');
- $form->setFieldAttribute('username', 'description', 'COM_ADMIN_USER_FIELD_NOCHANGE_USERNAME_DESC');
- }
-
- // When multilanguage is set, a user's default site language should also be a Content Language
- if (Multilanguage::isEnabled())
- {
- $form->setFieldAttribute('language', 'type', 'frontend_language', 'params');
- }
-
- // If the user needs to change their password, mark the password fields as required
- if (Factory::getUser()->requireReset)
- {
- $form->setFieldAttribute('password', 'required', 'true');
- $form->setFieldAttribute('password2', 'required', 'true');
- }
-
- return $form;
- }
-
- /**
- * Method to get the data that should be injected in the form.
- *
- * @return mixed The data for the form.
- *
- * @since 1.6
- */
- protected function loadFormData()
- {
- // Check the session for previously entered form data.
- $data = Factory::getApplication()->getUserState('com_users.edit.user.data', array());
-
- if (empty($data))
- {
- $data = $this->getItem();
- }
-
- // Load the users plugins.
- PluginHelper::importPlugin('user');
-
- $this->preprocessData('com_admin.profile', $data);
-
- return $data;
- }
-
- /**
- * Method to get a single record.
- *
- * @param integer $pk The id of the primary key.
- *
- * @return mixed Object on success, false on failure.
- *
- * @since 1.6
- */
- public function getItem($pk = null)
- {
- return parent::getItem(Factory::getUser()->id);
- }
-
- /**
- * Method to save the form data.
- *
- * @param array $data The form data.
- *
- * @return boolean True on success.
- *
- * @since 1.6
- */
- public function save($data)
- {
- $user = Factory::getUser();
-
- unset($data['id']);
- unset($data['groups']);
- unset($data['sendEmail']);
- unset($data['block']);
-
- $isUsernameCompliant = $this->getState('user.username.compliant');
-
- if (!ComponentHelper::getParams('com_users')->get('change_login_name') && $isUsernameCompliant)
- {
- unset($data['username']);
- }
-
- // Bind the data.
- if (!$user->bind($data))
- {
- $this->setError($user->getError());
-
- return false;
- }
-
- $user->groups = null;
-
- // Store the data.
- if (!$user->save())
- {
- $this->setError($user->getError());
-
- return false;
- }
-
- $this->setState('user.id', $user->id);
-
- return true;
- }
-}
diff --git a/administrator/components/com_admin/Model/SysinfoModel.php b/administrator/components/com_admin/Model/SysinfoModel.php
index 2547dce21b0a2..acb50cf8eb7be 100644
--- a/administrator/components/com_admin/Model/SysinfoModel.php
+++ b/administrator/components/com_admin/Model/SysinfoModel.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -309,7 +309,7 @@ public function &getInfo()
$this->info = array(
'php' => php_uname(),
- 'dbserver' => $db->getServerType(),
+ 'dbserver' => $db->getServerType(),
'dbversion' => $db->getVersion(),
'dbcollation' => $db->getCollation(),
'dbconnectioncollation' => $db->getConnectionCollation(),
diff --git a/administrator/components/com_admin/Service/HTML/Directory.php b/administrator/components/com_admin/Service/HTML/Directory.php
index 78f05e8877968..4844c60a8eb6d 100644
--- a/administrator/components/com_admin/Service/HTML/Directory.php
+++ b/administrator/components/com_admin/Service/HTML/Directory.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/Service/HTML/PhpSetting.php b/administrator/components/com_admin/Service/HTML/PhpSetting.php
index 8ad8674eba67e..c5ae964c3e832 100644
--- a/administrator/components/com_admin/Service/HTML/PhpSetting.php
+++ b/administrator/components/com_admin/Service/HTML/PhpSetting.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/Service/HTML/System.php b/administrator/components/com_admin/Service/HTML/System.php
index d717e4a235f48..d340234e6153c 100644
--- a/administrator/components/com_admin/Service/HTML/System.php
+++ b/administrator/components/com_admin/Service/HTML/System.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/View/Help/HtmlView.php b/administrator/components/com_admin/View/Help/HtmlView.php
index 3c5bdfaf57ec3..086ce8e1e3c14 100644
--- a/administrator/components/com_admin/View/Help/HtmlView.php
+++ b/administrator/components/com_admin/View/Help/HtmlView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/View/Profile/HtmlView.php b/administrator/components/com_admin/View/Profile/HtmlView.php
deleted file mode 100644
index 8b6185ff31d71..0000000000000
--- a/administrator/components/com_admin/View/Profile/HtmlView.php
+++ /dev/null
@@ -1,104 +0,0 @@
-form = $this->get('Form');
- $this->item = $this->get('Item');
- $this->state = $this->get('State');
-
- // Check for errors.
- if (count($errors = $this->get('Errors')))
- {
- throw new \JViewGenericdataexception(implode("\n", $errors), 500);
- }
-
- $this->form->setValue('password', null);
- $this->form->setValue('password2', null);
-
- $this->addToolbar();
-
- return parent::display($tpl);
- }
-
- /**
- * Add the page title and toolbar.
- *
- * @return void
- *
- * @since 1.6
- */
- protected function addToolbar()
- {
- Factory::getApplication()->input->set('hidemainmenu', 1);
-
- ToolbarHelper::title(Text::_('COM_ADMIN_VIEW_PROFILE_TITLE'), 'user user-profile');
-
- ToolbarHelper::saveGroup(
- [
- ['apply', 'profile.apply'],
- ['save', 'profile.save']
- ],
- 'btn-success'
- );
-
- ToolbarHelper::cancel('profile.cancel', 'JTOOLBAR_CLOSE');
- ToolbarHelper::divider();
- ToolbarHelper::help('JHELP_ADMIN_USER_PROFILE_EDIT');
- }
-}
diff --git a/administrator/components/com_admin/View/Sysinfo/HtmlView.php b/administrator/components/com_admin/View/Sysinfo/HtmlView.php
index 4f393f6e82b36..f361e6c184690 100644
--- a/administrator/components/com_admin/View/Sysinfo/HtmlView.php
+++ b/administrator/components/com_admin/View/Sysinfo/HtmlView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/View/Sysinfo/JsonView.php b/administrator/components/com_admin/View/Sysinfo/JsonView.php
index 55f460b00b0bc..f92afdfc71e4b 100644
--- a/administrator/components/com_admin/View/Sysinfo/JsonView.php
+++ b/administrator/components/com_admin/View/Sysinfo/JsonView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/View/Sysinfo/TextView.php b/administrator/components/com_admin/View/Sysinfo/TextView.php
index 4167fc76e7bb8..3f7af346b5e8e 100644
--- a/administrator/components/com_admin/View/Sysinfo/TextView.php
+++ b/administrator/components/com_admin/View/Sysinfo/TextView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/admin.xml b/administrator/components/com_admin/admin.xml
index 5a4d7223533c1..2614d4fc380eb 100644
--- a/administrator/components/com_admin/admin.xml
+++ b/administrator/components/com_admin/admin.xml
@@ -3,7 +3,7 @@
com_adminJoomla! ProjectApril 2006
- (C) 2005 - 2018 Open Source Matters. All rights reserved.
+ (C) 2005 - 2019 Open Source Matters. All rights reserved.GNU General Public License version 2 or later; see LICENSE.txtadmin@joomla.orgwww.joomla.org
diff --git a/administrator/components/com_admin/forms/profile.xml b/administrator/components/com_admin/forms/profile.xml
deleted file mode 100644
index e1daa6ed6a1c4..0000000000000
--- a/administrator/components/com_admin/forms/profile.xml
+++ /dev/null
@@ -1,150 +0,0 @@
-
-
diff --git a/administrator/components/com_admin/postinstall/eaccelerator.php b/administrator/components/com_admin/postinstall/eaccelerator.php
index 312ffbece0a53..0be79e70fcef8 100644
--- a/administrator/components/com_admin/postinstall/eaccelerator.php
+++ b/administrator/components/com_admin/postinstall/eaccelerator.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*
* This file contains post-installation message handling for eAccelerator compatibility.
diff --git a/administrator/components/com_admin/postinstall/htaccess.php b/administrator/components/com_admin/postinstall/htaccess.php
index 7a1ff985e4def..1d568615181cd 100644
--- a/administrator/components/com_admin/postinstall/htaccess.php
+++ b/administrator/components/com_admin/postinstall/htaccess.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*
* This file contains post-installation message handling for notifying users of a change
diff --git a/administrator/components/com_admin/postinstall/languageaccess340.php b/administrator/components/com_admin/postinstall/languageaccess340.php
index b9fab5252bbf8..e504082c8e3d7 100644
--- a/administrator/components/com_admin/postinstall/languageaccess340.php
+++ b/administrator/components/com_admin/postinstall/languageaccess340.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*
* This file contains post-installation message handling for the checks if the installation is
diff --git a/administrator/components/com_admin/postinstall/statscollection.php b/administrator/components/com_admin/postinstall/statscollection.php
index 1d8fde9d94ce8..4d4a3053df195 100644
--- a/administrator/components/com_admin/postinstall/statscollection.php
+++ b/administrator/components/com_admin/postinstall/statscollection.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*
* This file contains post-installation message handling for the checking minimum PHP version support
diff --git a/administrator/components/com_admin/postinstall/updatedefaultsettings.php b/administrator/components/com_admin/postinstall/updatedefaultsettings.php
index d111f4d50c799..5d9a2ebdda109 100644
--- a/administrator/components/com_admin/postinstall/updatedefaultsettings.php
+++ b/administrator/components/com_admin/postinstall/updatedefaultsettings.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*
* This file contains post-installation message handling for notifying users of a change
diff --git a/administrator/components/com_admin/script.php b/administrator/components/com_admin/script.php
index eaa8f892e28d7..aa768e509e263 100644
--- a/administrator/components/com_admin/script.php
+++ b/administrator/components/com_admin/script.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -931,6 +931,7 @@ public function deleteUnexistingFiles()
'/administrator/components/com_languages/helpers/languages.php',
'/administrator/components/com_languages/helpers/multilangstatus.php',
'/administrator/components/com_languages/languages.php',
+ '/administrator/components/com_languages/layouts/joomla/searchtools/default/bar.php',
'/administrator/components/com_languages/models/forms/filter_installed.xml',
'/administrator/components/com_languages/models/forms/filter_languages.xml',
'/administrator/components/com_languages/models/forms/language.xml',
diff --git a/administrator/components/com_admin/services/provider.php b/administrator/components/com_admin/services/provider.php
index 84234da102984..1d3e4f9e6436c 100644
--- a/administrator/components/com_admin/services/provider.php
+++ b/administrator/components/com_admin/services/provider.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_content
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-02.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-02.sql
new file mode 100644
index 0000000000000..ef74036ca361b
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-02.sql
@@ -0,0 +1,16 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(35, 0, 'com_privacy', 'component', 'com_privacy', '', 1, 1, 1, 1, '', '', '', '', 0, '0000-00-00 00:00:00', 0, 0);
+
+CREATE TABLE IF NOT EXISTS `#__privacy_requests` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `email` varchar(100) NOT NULL DEFAULT '',
+ `requested_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `status` tinyint(4) NOT NULL DEFAULT '0',
+ `request_type` varchar(25) NOT NULL DEFAULT '',
+ `confirm_token` varchar(100) NOT NULL DEFAULT '',
+ `confirm_token_created_at` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `checked_out` int(11) NOT NULL DEFAULT '0',
+ `checked_out_time` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ PRIMARY KEY (`id`),
+ KEY `idx_checkout` (`checked_out`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-03.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-03.sql
new file mode 100644
index 0000000000000..d1f294af6a0ff
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-03.sql
@@ -0,0 +1,2 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(482, 0, 'plg_content_confirmconsent', 'plugin', 'confirmconsent', 'content', 0, 0, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-05.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-05.sql
new file mode 100644
index 0000000000000..78db9a8d1cc88
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-05.sql
@@ -0,0 +1,85 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(36, 0, 'com_actionlogs', 'component', 'com_actionlogs', '', 1, 1, 1, 1, '', '{"ip_logging":0,"csv_delimiter":",","loggable_extensions":["com_banners","com_cache","com_categories","com_config","com_contact","com_content","com_installer","com_media","com_menus","com_messages","com_modules","com_newsfeeds","com_plugins","com_redirect","com_tags","com_templates","com_users"]}', '', '', 0, '0000-00-00 00:00:00', 0, 0),
+(483, 0, 'plg_system_actionlogs', 'plugin', 'actionlogs', 'system', 0, 0, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0),
+(484, 0, 'plg_actionlog_joomla', 'plugin', 'joomla', 'actionlog', 0, 1, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0);
+
+
+--
+-- Table structure for table `#__action_logs`
+--
+
+CREATE TABLE IF NOT EXISTS `#__action_logs` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `message_language_key` varchar(255) NOT NULL DEFAULT '',
+ `message` text NOT NULL,
+ `log_date` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `extension` varchar(50) NOT NULL DEFAULT '',
+ `user_id` int(11) NOT NULL DEFAULT 0,
+ `item_id` int(11) NOT NULL DEFAULT 0,
+ `ip_address` VARCHAR(40) NOT NULL DEFAULT '0.0.0.0',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
+
+--
+-- Table structure for table `#__action_logs_extensions`
+--
+
+CREATE TABLE IF NOT EXISTS `#__action_logs_extensions` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `extension` varchar(255) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
+
+INSERT INTO `#__action_logs_extensions` (`id`, `extension`) VALUES
+(1, 'com_banners'),
+(2, 'com_cache'),
+(3, 'com_categories'),
+(4, 'com_config'),
+(5, 'com_contact'),
+(6, 'com_content'),
+(7, 'com_installer'),
+(8, 'com_media'),
+(9, 'com_menus'),
+(10, 'com_messages'),
+(11, 'com_modules'),
+(12, 'com_newsfeeds'),
+(13, 'com_plugins'),
+(14, 'com_redirect'),
+(15, 'com_tags'),
+(16, 'com_templates'),
+(17, 'com_users');
+
+--
+-- Table structure for table `#__action_log_config`
+--
+
+CREATE TABLE IF NOT EXISTS `#__action_log_config` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `type_title` varchar(255) NOT NULL DEFAULT '',
+ `type_alias` varchar(255) NOT NULL DEFAULT '',
+ `id_holder` varchar(255),
+ `title_holder` varchar(255),
+ `table_name` varchar(255),
+ `text_prefix` varchar(255),
+ PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
+
+INSERT INTO `#__action_log_config` (`id`, `type_title`, `type_alias`, `id_holder`, `title_holder`, `table_name`, `text_prefix`) VALUES
+(1, 'article', 'com_content.article', 'id' ,'title' , '#__content', 'PLG_ACTIONLOG_JOOMLA'),
+(2, 'article', 'com_content.form', 'id', 'title' , '#__content', 'PLG_ACTIONLOG_JOOMLA'),
+(3, 'banner', 'com_banners.banner', 'id' ,'name' , '#__banners', 'PLG_ACTIONLOG_JOOMLA'),
+(4, 'user_note', 'com_users.note', 'id', 'subject' ,'#__user_notes', 'PLG_ACTIONLOG_JOOMLA'),
+(5, 'media', 'com_media.file', '' , 'name' , '', 'PLG_ACTIONLOG_JOOMLA'),
+(6, 'category', 'com_categories.category', 'id' , 'title' , '#__categories', 'PLG_ACTIONLOG_JOOMLA'),
+(7, 'menu', 'com_menus.menu', 'id' ,'title' , '#__menu_types', 'PLG_ACTIONLOG_JOOMLA'),
+(8, 'menu_item', 'com_menus.item', 'id' , 'title' , '#__menu', 'PLG_ACTIONLOG_JOOMLA'),
+(9, 'newsfeed', 'com_newsfeeds.newsfeed', 'id' ,'name' , '#__newsfeeds', 'PLG_ACTIONLOG_JOOMLA'),
+(10, 'link', 'com_redirect.link', 'id', 'old_url' , '#__redirect_links', 'PLG_ACTIONLOG_JOOMLA'),
+(11, 'tag', 'com_tags.tag', 'id', 'title' , '#__tags', 'PLG_ACTIONLOG_JOOMLA'),
+(12, 'style', 'com_templates.style', 'id' , 'title' , '#__template_styles', 'PLG_ACTIONLOG_JOOMLA'),
+(13, 'plugin', 'com_plugins.plugin', 'extension_id' , 'name' , '#__extensions', 'PLG_ACTIONLOG_JOOMLA'),
+(14, 'component_config', 'com_config.component', 'extension_id' , 'name', '', 'PLG_ACTIONLOG_JOOMLA'),
+(15, 'contact', 'com_contact.contact', 'id', 'name', '#__contact_details', 'PLG_ACTIONLOG_JOOMLA'),
+(16, 'module', 'com_modules.module', 'id' ,'title', '#__modules', 'PLG_ACTIONLOG_JOOMLA'),
+(17, 'access_level', 'com_users.level', 'id' , 'title', '#__viewlevels', 'PLG_ACTIONLOG_JOOMLA'),
+(18, 'banner_client', 'com_banners.client', 'id', 'name', '#__banner_clients', 'PLG_ACTIONLOG_JOOMLA');
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-19.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-19.sql
new file mode 100644
index 0000000000000..512acbd7f707e
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-19.sql
@@ -0,0 +1,2 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(481, 0, 'plg_fields_repeatable', 'plugin', 'repeatable', 'fields', 0, 1, 1, 0, '', '', '', '', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-20.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-20.sql
new file mode 100644
index 0000000000000..8b918f8c257be
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-20.sql
@@ -0,0 +1,2 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(319, 0, 'mod_latestactions', 'module', 'mod_latestactions', '', 1, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-24.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-24.sql
new file mode 100644
index 0000000000000..1dd1d9b474e73
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-24.sql
@@ -0,0 +1,14 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(485, 0, 'plg_system_privacyconsent', 'plugin', 'privacyconsent', 'system', 0, 0, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0);
+
+CREATE TABLE IF NOT EXISTS `#__privacy_consents` (
+ `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
+ `user_id` int(10) unsigned NOT NULL DEFAULT '0',
+ `created` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
+ `subject` varchar(255) NOT NULL DEFAULT '',
+ `body` text NOT NULL,
+ `remind` tinyint(4) NOT NULL DEFAULT '0',
+ `token` varchar(100) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ KEY `idx_user_id` (`user_id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-27.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-27.sql
new file mode 100644
index 0000000000000..ab0958e02c946
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-05-27.sql
@@ -0,0 +1,3 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(486, 0, 'plg_system_logrotation', 'plugin', 'logrotation', 'system', 0, 1, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0),
+(487, 0, 'plg_privacy_user', 'plugin', 'user', 'privacy', 0, 1, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-02.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-02.sql
new file mode 100644
index 0000000000000..4dea034967e2e
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-02.sql
@@ -0,0 +1,4 @@
+ALTER TABLE `#__content` ADD COLUMN `note` VARCHAR(255) NOT NULL DEFAULT '';
+
+UPDATE `#__content_types` SET `field_mappings` =
+'{"common":{"core_content_item_id":"id","core_title":"title","core_state":"state","core_alias":"alias","core_created_time":"created","core_modified_time":"modified","core_body":"introtext", "core_hits":"hits","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"attribs", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"images", "core_urls":"urls", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "core_xreference":"xreference", "asset_id":"asset_id", "note":"note"}, "special":{"fulltext":"fulltext"}}' WHERE `type_title` = 'Article';
\ No newline at end of file
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-12.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-12.sql
new file mode 100644
index 0000000000000..c45e9d6c7d9fd
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-12.sql
@@ -0,0 +1,2 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(320, 0, 'mod_privacy_dashboard', 'module', 'mod_privacy_dashboard', '', 1, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-13.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-13.sql
new file mode 100644
index 0000000000000..edda43880912d
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-13.sql
@@ -0,0 +1,2 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(488, 0, 'plg_quickicon_privacycheck', 'plugin', 'privacycheck', 'quickicon', 0, 1, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-14.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-14.sql
new file mode 100644
index 0000000000000..cc18b1d191c96
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-14.sql
@@ -0,0 +1,3 @@
+INSERT INTO `#__postinstall_messages` (`extension_id`, `title_key`, `description_key`, `action_key`, `language_extension`, `language_client_id`, `type`, `action_file`, `action`, `condition_file`, `condition_method`, `version_introduced`, `enabled`) VALUES
+(700, 'COM_ACTIONLOGS_POSTINSTALL_TITLE', 'COM_ACTIONLOGS_POSTINSTALL_BODY', '', 'com_actionlogs', 1, 'message', '', '', '', '', '3.9.0', 1),
+(700, 'COM_PRIVACY_POSTINSTALL_TITLE', 'COM_PRIVACY_POSTINSTALL_BODY', '', 'com_privacy', 1, 'message', '', '', '', '', '3.9.0', 1);
\ No newline at end of file
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-17.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-17.sql
new file mode 100644
index 0000000000000..d3d3ee5f930f3
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-06-17.sql
@@ -0,0 +1,2 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(489, 0, 'plg_user_terms', 'plugin', 'terms', 'user', 0, 0, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-07-09.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-07-09.sql
new file mode 100644
index 0000000000000..7c8215c3f93e6
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-07-09.sql
@@ -0,0 +1,4 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(490, 0, 'plg_privacy_contact', 'plugin', 'contact', 'privacy', 0, 1, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0),
+(491, 0, 'plg_privacy_content', 'plugin', 'content', 'privacy', 0, 1, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0),
+(492, 0, 'plg_privacy_message', 'plugin', 'message', 'privacy', 0, 1, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-07-10.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-07-10.sql
new file mode 100644
index 0000000000000..3c8c70a81ade9
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-07-10.sql
@@ -0,0 +1,2 @@
+INSERT INTO `#__action_log_config` (`id`, `type_title`, `type_alias`, `id_holder`, `title_holder`, `table_name`, `text_prefix`)
+ VALUES (19, 'application_config', 'com_config.application', '', 'name', '', 'PLG_ACTIONLOG_JOOMLA');
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-07-11.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-07-11.sql
new file mode 100644
index 0000000000000..a6b89c858e868
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-07-11.sql
@@ -0,0 +1,2 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(493, 0, 'plg_privacy_actionlogs', 'plugin', 'actionlogs', 'privacy', 0, 1, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-08-12.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-08-12.sql
new file mode 100644
index 0000000000000..250118c1f9375
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-08-12.sql
@@ -0,0 +1 @@
+ALTER TABLE `#__privacy_consents` ADD COLUMN `state` INT(10) NOT NULL DEFAULT '1' AFTER `user_id`;
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-08-28.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-08-28.sql
new file mode 100644
index 0000000000000..e181ed56f8de7
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-08-28.sql
@@ -0,0 +1,3 @@
+ALTER TABLE `#__session` MODIFY `session_id` varbinary(192) NOT NULL;
+ALTER TABLE `#__session` MODIFY `guest` tinyint(3) unsigned DEFAULT 1;
+ALTER TABLE `#__session` MODIFY `time` int(11) NOT NULL DEFAULT 0;
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-08-29.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-08-29.sql
new file mode 100644
index 0000000000000..9fe0097bbc15a
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-08-29.sql
@@ -0,0 +1,2 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(494, 0, 'plg_captcha_recaptcha_invisible', 'plugin', 'recaptcha_invisible', 'captcha', 0, 0, 1, 0, '', '{"public_key":"","private_key":"","theme":"clean"}', '', '', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-09-04.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-09-04.sql
new file mode 100644
index 0000000000000..14bfe2497ef69
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-09-04.sql
@@ -0,0 +1,7 @@
+CREATE TABLE IF NOT EXISTS `#__action_logs_users` (
+ `user_id` int(11) UNSIGNED NOT NULL,
+ `notify` tinyint(1) UNSIGNED NOT NULL,
+ `extensions` text NOT NULL,
+ PRIMARY KEY (`user_id`),
+ KEY `idx_notify` (`notify`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-10-15.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-10-15.sql
new file mode 100644
index 0000000000000..c9a13c1f64a00
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-10-15.sql
@@ -0,0 +1,4 @@
+ALTER TABLE `#__action_logs` ADD INDEX `idx_user_id` (`user_id`);
+ALTER TABLE `#__action_logs` ADD INDEX `idx_user_id_logdate` (`user_id`, `log_date`);
+ALTER TABLE `#__action_logs` ADD INDEX `idx_user_id_extension` (`user_id`, `extension`);
+ALTER TABLE `#__action_logs` ADD INDEX `idx_extension_item_id` (`extension`, `item_id`);
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-10-20.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-10-20.sql
new file mode 100644
index 0000000000000..79f266d89036f
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-10-20.sql
@@ -0,0 +1,3 @@
+ALTER TABLE `#__privacy_requests` DROP INDEX `idx_checkout`;
+ALTER TABLE `#__privacy_requests` DROP COLUMN `checked_out`;
+ALTER TABLE `#__privacy_requests` DROP COLUMN `checked_out_time`;
diff --git a/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-10-21.sql b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-10-21.sql
new file mode 100644
index 0000000000000..1fafdfdc2c74d
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/3.9.0-2018-10-21.sql
@@ -0,0 +1,2 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(495, 0, 'plg_privacy_consents', 'plugin', 'consents', 'privacy', 0, 1, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2016-07-03.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2016-07-03.sql
index 78ec385137e3f..05f0d5e850bbc 100644
--- a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2016-07-03.sql
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2016-07-03.sql
@@ -1,3 +1,3 @@
INSERT INTO `#__extensions` (`extension_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `custom_data`, `system_data`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
-(458, 'plg_behaviour_taggable', 'plugin', 'taggable', 'behaviour', 0, 1, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0),
-(459, 'plg_behaviour_versionable', 'plugin', 'versionable', 'behaviour', 0, 1, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0);
+(494, 'plg_behaviour_taggable', 'plugin', 'taggable', 'behaviour', 0, 1, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0),
+(495, 'plg_behaviour_versionable', 'plugin', 'versionable', 'behaviour', 0, 1, 1, 0, '', '{}', '', '', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2017-04-25.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2017-04-25.sql
index 4821e1462132a..86bd10da3d517 100644
--- a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2017-04-25.sql
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2017-04-25.sql
@@ -1,5 +1,5 @@
INSERT INTO `#__extensions` (`extension_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
-(481, 'plg_filesystem_local', 'plugin', 'local', 'filesystem', 0, 1, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0),
-(482, 'plg_media-action_crop', 'plugin', 'crop', 'media-action', 0, 1, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0),
-(483, 'plg_media-action_resize', 'plugin', 'resize', 'media-action', 0, 1, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0),
-(484, 'plg_media-action_rotate', 'plugin', 'rotate', 'media-action', 0, 1, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0);
+(496, 'plg_filesystem_local', 'plugin', 'local', 'filesystem', 0, 1, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0),
+(497, 'plg_media-action_crop', 'plugin', 'crop', 'media-action', 0, 1, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0),
+(498, 'plg_media-action_resize', 'plugin', 'resize', 'media-action', 0, 1, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0),
+(499, 'plg_media-action_rotate', 'plugin', 'rotate', 'media-action', 0, 1, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2017-06-03.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2017-06-03.sql
new file mode 100644
index 0000000000000..2166de7eb35be
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2017-06-03.sql
@@ -0,0 +1,2 @@
+ALTER TABLE `#__extensions` ADD COLUMN `changelogurl` text AFTER `element`;
+ALTER TABLE `#__updates` ADD COLUMN `changelogurl` text AFTER `infourl`;
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2017-10-10.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2017-10-10.sql
index d50f4cf946753..1e52dfcfdda8a 100644
--- a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2017-10-10.sql
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2017-10-10.sql
@@ -1,5 +1,5 @@
INSERT INTO `#__extensions` (`extension_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
-(487, 'plg_system_httpheaders', 'plugin', 'httpheaders', 'system', 0, 0, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0);
+(501, 'plg_system_httpheaders', 'plugin', 'httpheaders', 'system', 0, 0, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0);
INSERT INTO `#__postinstall_messages` (`extension_id`, `title_key`, `description_key`, `action_key`, `language_extension`, `language_client_id`, `type`, `action_file`, `action`, `condition_file`, `condition_method`, `version_introduced`, `enabled`)
VALUES
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-05-15.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-05-15.sql
index a0e5f65b784f6..903d0fcd5501e 100644
--- a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-05-15.sql
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-05-15.sql
@@ -75,8 +75,8 @@ CREATE TABLE IF NOT EXISTS `#__workflow_stages` (
--
INSERT INTO `#__workflow_stages` (`id`, `asset_id`, `ordering`, `workflow_id`, `published`, `title`, `description`, `condition`, `default`) VALUES
-(1, 0, 1, 1, 1, 'JUNPUBLISHED', '', 0, 0),
-(2, 0, 2, 1, 1, 'JPUBLISHED', '', 1, 1),
+(1, 0, 1, 1, 1, 'JUNPUBLISHED', '', 0, 1),
+(2, 0, 2, 1, 1, 'JPUBLISHED', '', 1, 0),
(3, 0, 3, 1, 1, 'JTRASHED', '', -2, 0),
(4, 0, 4, 1, 1, 'JARCHIVED', '', 2, 0);
@@ -117,7 +117,7 @@ INSERT INTO `#__workflow_transitions` (`id`, `asset_id`, `published`, `ordering`
--
INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
-(35, 0, 'com_workflow', 'component', 'com_workflow', '', 1, 1, 0, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0);
+(37, 0, 'com_workflow', 'component', 'com_workflow', '', 1, 1, 0, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0);
--
-- Creating Associations for existing content
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-03.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-03.sql
index a2ea57c63c0b2..55c62fb9ebf6f 100644
--- a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-03.sql
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-03.sql
@@ -15,4 +15,4 @@ CREATE TABLE IF NOT EXISTS `#__csp` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
INSERT INTO `#__extensions` (`extension_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
-(35, 'com_csp', 'component', 'com_csp', '', 0, 0, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0);
+(38, 'com_csp', 'component', 'com_csp', '', 0, 0, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-06.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-06.sql
index 222b11d060977..767fa880257ca 100644
--- a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-06.sql
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-06.sql
@@ -2,8 +2,8 @@ CREATE TABLE IF NOT EXISTS `#__finder_logging` (
`searchterm` VARCHAR(255) NOT NULL DEFAULT '',
`md5sum` VARCHAR(32) NOT NULL DEFAULT '',
`query` BLOB NOT NULL,
- `hits` INT(11) NOT NULL DEFAULT '1',
- `results` INT(11) NOT NULL DEFAULT '0',
+ `hits` INT(11) NOT NULL DEFAULT 1,
+ `results` INT(11) NOT NULL DEFAULT 0,
PRIMARY KEY `md5sum` (`md5sum`),
INDEX `searchterm` (`searchterm`(191))
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_general_ci;
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-11.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-11.sql
index f29eb4df240ce..ca9b375d05120 100644
--- a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-11.sql
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-11.sql
@@ -1,4 +1,4 @@
INSERT INTO `#__extensions`
(`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `checked_out`, `checked_out_time`, `ordering`, `state`)
VALUES
- (488, 0, 'plg_sampledata_multilang', 'plugin', 'multilang', 'sampledata', 0, 0, 1, 0, '', '', 0, '0000-00-00 00:00:00', 0, 0);
+ (490, 0, 'plg_sampledata_multilang', 'plugin', 'multilang', 'sampledata', 0, 0, 1, 0, '', '', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-16.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-16.sql
new file mode 100644
index 0000000000000..188dcfbb9665c
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-06-16.sql
@@ -0,0 +1,185 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES (506, 0, 'plg_extension_finder', 'plugin', 'finder', 'extension', 0, 1, 1, 0, '', '', 0, '0000-00-00 00:00:00', 0, 0);
+DROP TABLE IF EXISTS `#__finder_terms_common`;
+CREATE TABLE `#__finder_terms_common` (
+ `term` varchar(75) NOT NULL DEFAULT '',
+ `language` char(7) NOT NULL DEFAULT '',
+ `custom` int(11) NOT NULL DEFAULT '0',
+ UNIQUE KEY `idx_word_lang` (`term`,`language`),
+ KEY `idx_lang` (`language`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_bin;
+
+INSERT INTO `#__finder_terms_common` (`term`, `language`, `custom`) VALUES
+ ('i', 'en', 0),
+ ('me', 'en', 0),
+ ('my', 'en', 0),
+ ('myself', 'en', 0),
+ ('we', 'en', 0),
+ ('our', 'en', 0),
+ ('ours', 'en', 0),
+ ('ourselves', 'en', 0),
+ ('you', 'en', 0),
+ ('your', 'en', 0),
+ ('yours', 'en', 0),
+ ('yourself', 'en', 0),
+ ('yourselves', 'en', 0),
+ ('he', 'en', 0),
+ ('him', 'en', 0),
+ ('his', 'en', 0),
+ ('himself', 'en', 0),
+ ('she', 'en', 0),
+ ('her', 'en', 0),
+ ('hers', 'en', 0),
+ ('herself', 'en', 0),
+ ('it', 'en', 0),
+ ('its', 'en', 0),
+ ('itself', 'en', 0),
+ ('they', 'en', 0),
+ ('them', 'en', 0),
+ ('their', 'en', 0),
+ ('theirs', 'en', 0),
+ ('themselves', 'en', 0),
+ ('what', 'en', 0),
+ ('which', 'en', 0),
+ ('who', 'en', 0),
+ ('whom', 'en', 0),
+ ('this', 'en', 0),
+ ('that', 'en', 0),
+ ('these', 'en', 0),
+ ('those', 'en', 0),
+ ('am', 'en', 0),
+ ('is', 'en', 0),
+ ('are', 'en', 0),
+ ('was', 'en', 0),
+ ('were', 'en', 0),
+ ('be', 'en', 0),
+ ('been', 'en', 0),
+ ('being', 'en', 0),
+ ('have', 'en', 0),
+ ('has', 'en', 0),
+ ('had', 'en', 0),
+ ('having', 'en', 0),
+ ('do', 'en', 0),
+ ('does', 'en', 0),
+ ('did', 'en', 0),
+ ('doing', 'en', 0),
+ ('would', 'en', 0),
+ ('should', 'en', 0),
+ ('could', 'en', 0),
+ ('ought', 'en', 0),
+ ('i\'m', 'en', 0),
+ ('you\'re', 'en', 0),
+ ('he\'s', 'en', 0),
+ ('she\'s', 'en', 0),
+ ('it\'s', 'en', 0),
+ ('we\'re', 'en', 0),
+ ('they\'re', 'en', 0),
+ ('i\'ve', 'en', 0),
+ ('you\'ve', 'en', 0),
+ ('we\'ve', 'en', 0),
+ ('they\'ve', 'en', 0),
+ ('i\'d', 'en', 0),
+ ('you\'d', 'en', 0),
+ ('he\'d', 'en', 0),
+ ('she\'d', 'en', 0),
+ ('we\'d', 'en', 0),
+ ('they\'d', 'en', 0),
+ ('i\'ll', 'en', 0),
+ ('you\'ll', 'en', 0),
+ ('he\'ll', 'en', 0),
+ ('she\'ll', 'en', 0),
+ ('we\'ll', 'en', 0),
+ ('they\'ll', 'en', 0),
+ ('isn\'t', 'en', 0),
+ ('aren\'t', 'en', 0),
+ ('wasn\'t', 'en', 0),
+ ('weren\'t', 'en', 0),
+ ('hasn\'t', 'en', 0),
+ ('haven\'t', 'en', 0),
+ ('hadn\'t', 'en', 0),
+ ('doesn\'t', 'en', 0),
+ ('don\'t', 'en', 0),
+ ('didn\'t', 'en', 0),
+ ('won\'t', 'en', 0),
+ ('wouldn\'t', 'en', 0),
+ ('shan\'t', 'en', 0),
+ ('shouldn\'t', 'en', 0),
+ ('can\'t', 'en', 0),
+ ('cannot', 'en', 0),
+ ('couldn\'t', 'en', 0),
+ ('mustn\'t', 'en', 0),
+ ('let\'s', 'en', 0),
+ ('that\'s', 'en', 0),
+ ('who\'s', 'en', 0),
+ ('what\'s', 'en', 0),
+ ('here\'s', 'en', 0),
+ ('there\'s', 'en', 0),
+ ('when\'s', 'en', 0),
+ ('where\'s', 'en', 0),
+ ('why\'s', 'en', 0),
+ ('how\'s', 'en', 0),
+ ('a', 'en', 0),
+ ('an', 'en', 0),
+ ('the', 'en', 0),
+ ('and', 'en', 0),
+ ('but', 'en', 0),
+ ('if', 'en', 0),
+ ('or', 'en', 0),
+ ('because', 'en', 0),
+ ('as', 'en', 0),
+ ('until', 'en', 0),
+ ('while', 'en', 0),
+ ('of', 'en', 0),
+ ('at', 'en', 0),
+ ('by', 'en', 0),
+ ('for', 'en', 0),
+ ('with', 'en', 0),
+ ('about', 'en', 0),
+ ('against', 'en', 0),
+ ('between', 'en', 0),
+ ('into', 'en', 0),
+ ('through', 'en', 0),
+ ('during', 'en', 0),
+ ('before', 'en', 0),
+ ('after', 'en', 0),
+ ('above', 'en', 0),
+ ('below', 'en', 0),
+ ('to', 'en', 0),
+ ('from', 'en', 0),
+ ('up', 'en', 0),
+ ('down', 'en', 0),
+ ('in', 'en', 0),
+ ('out', 'en', 0),
+ ('on', 'en', 0),
+ ('off', 'en', 0),
+ ('over', 'en', 0),
+ ('under', 'en', 0),
+ ('again', 'en', 0),
+ ('further', 'en', 0),
+ ('then', 'en', 0),
+ ('once', 'en', 0),
+ ('here', 'en', 0),
+ ('there', 'en', 0),
+ ('when', 'en', 0),
+ ('where', 'en', 0),
+ ('why', 'en', 0),
+ ('how', 'en', 0),
+ ('all', 'en', 0),
+ ('any', 'en', 0),
+ ('both', 'en', 0),
+ ('each', 'en', 0),
+ ('few', 'en', 0),
+ ('more', 'en', 0),
+ ('most', 'en', 0),
+ ('other', 'en', 0),
+ ('some', 'en', 0),
+ ('such', 'en', 0),
+ ('no', 'en', 0),
+ ('nor', 'en', 0),
+ ('not', 'en', 0),
+ ('only', 'en', 0),
+ ('own', 'en', 0),
+ ('same', 'en', 0),
+ ('so', 'en', 0),
+ ('than', 'en', 0),
+ ('too', 'en', 0),
+ ('very', 'en', 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-07-19.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-07-19.sql
index 35b6e684afaca..3de94a1bc9368 100644
--- a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-07-19.sql
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-07-19.sql
@@ -14,5 +14,5 @@ CREATE TABLE IF NOT EXISTS `#__template_overrides` (
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_unicode_ci;
INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `checked_out`, `checked_out_time`, `ordering`, `state`, `namespace`) VALUES
-(491, 0, 'plg_installer_override', 'plugin', 'override', 'installer', 0, 1, 1, 1, '', '', 0, '0000-00-00 00:00:00', 4, 0, ''),
-(492, 0, 'plg_quickicon_overridecheck', 'plugin', 'overridecheck', 'quickicon', 0, 1, 1, 1, '', '', 0, '0000-00-00 00:00:00', 0, 0, '');
+(504, 0, 'plg_installer_override', 'plugin', 'override', 'installer', 0, 1, 1, 1, '', '', 0, '0000-00-00 00:00:00', 4, 0, ''),
+(505, 0, 'plg_quickicon_overridecheck', 'plugin', 'overridecheck', 'quickicon', 0, 1, 1, 1, '', '', 0, '0000-00-00 00:00:00', 0, 0, '');
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-07-29.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-07-29.sql
new file mode 100644
index 0000000000000..9437f4bf5e014
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-07-29.sql
@@ -0,0 +1,26 @@
+DROP TABLE #__finder_taxonomy;
+
+CREATE TABLE IF NOT EXISTS `#__finder_taxonomy` (
+ `id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,
+ `parent_id` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `lft` INT(11) NOT NULL DEFAULT '0',
+ `rgt` INT(11) NOT NULL DEFAULT '0',
+ `level` INT(10) UNSIGNED NOT NULL DEFAULT '0',
+ `path` VARCHAR(400) NOT NULL DEFAULT '',
+ `title` VARCHAR(255) NOT NULL DEFAULT '',
+ `alias` VARCHAR(400) NOT NULL DEFAULT '',
+ `state` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1',
+ `access` TINYINT(1) UNSIGNED NOT NULL DEFAULT '1',
+ `language` CHAR(7) NOT NULL DEFAULT '',
+ PRIMARY KEY (`id`),
+ INDEX `idx_state` (`state`),
+ INDEX `idx_access` (`access`),
+ INDEX `idx_path` (`path`(100)),
+ INDEX `idx_left_right` (`lft`, `rgt`),
+ INDEX `idx_alias` (`alias`(100)),
+ INDEX `idx_language` (`language`),
+ INDEX `idx_parent_published` (`parent_id`, `state`, `access`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 DEFAULT COLLATE=utf8mb4_general_ci;
+
+INSERT INTO `#__finder_taxonomy` (`id`, `parent_id`, `lft`, `rgt`, `level`, `path`, `title`, `alias`, `state`, `access`, `language`) VALUES
+(1, 0, 0, 1, 0, '', 'ROOT', 'root', 1, 1, '*');
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-08-29.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-08-29.sql
new file mode 100644
index 0000000000000..3786f39217d21
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2018-08-29.sql
@@ -0,0 +1,9 @@
+ALTER TABLE `#__modules` MODIFY `publish_up` datetime NULL DEFAULT NULL;
+ALTER TABLE `#__modules` MODIFY `publish_down` datetime NULL DEFAULT NULL;
+ALTER TABLE `#__modules` MODIFY `checked_out_time` datetime NULL DEFAULT NULL;
+
+-- Use 0 instead of '0000-00-00 00:00:00' if you get 'Invalid default value for ...'
+UPDATE `#__modules` SET
+ `publish_up` = CASE WHEN `publish_up` IN ('0000-00-00 00:00:00', '1000-01-01 00:00:00') THEN NULL ELSE `publish_up` END,
+ `publish_down` = CASE WHEN `publish_down` IN ('0000-00-00 00:00:00', '1000-01-01 00:00:00') THEN NULL ELSE `publish_down` END,
+ `checked_out_time` = CASE WHEN `checked_out_time` IN ('0000-00-00 00:00:00', '1000-01-01 00:00:00') THEN NULL ELSE `checked_out_time` END;
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-01-05.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-01-05.sql
new file mode 100644
index 0000000000000..8832618121ad1
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-01-05.sql
@@ -0,0 +1,3 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(900, 0, 'plg_api-authentication_basic', 'plugin', 'basic', 'api-authentication', 0, 1, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0),
+(901, 0, 'plg_webservices_content', 'plugin', 'content', 'webservices', 0, 1, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-03-09.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-03-09.sql
new file mode 100644
index 0000000000000..fc280184efb50
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-03-09.sql
@@ -0,0 +1,2 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(507, 0, 'plg_system_skipto', 'plugin', 'skipto', 'system', 0, 1, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-03-31.sql b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-03-31.sql
new file mode 100644
index 0000000000000..b36e061a25170
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/mysql/4.0.0-2019-03-31.sql
@@ -0,0 +1,3 @@
+INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `element`, `folder`, `client_id`, `enabled`, `access`, `protected`, `manifest_cache`, `params`, `checked_out`, `checked_out_time`, `ordering`, `state`) VALUES
+(502, 0, 'plg_sampledata_multilang', 'plugin', 'multilang', 'sampledata', 0, 1, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0),
+(500, 0, 'plg_installer_webinstaller', 'plugin', 'webinstaller', 'installer', 0, 1, 1, 0, '', '{}', 0, '0000-00-00 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-02.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-02.sql
new file mode 100644
index 0000000000000..9eec675a8f1cb
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-02.sql
@@ -0,0 +1,17 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(35, 0, 'com_privacy', 'component', 'com_privacy', '', 1, 1, 1, 1, '', '', '', '', 0, '1970-01-01 00:00:00', 0, 0);
+
+CREATE TABLE "#__privacy_requests" (
+ "id" serial NOT NULL,
+ "email" varchar(100) DEFAULT '' NOT NULL,
+ "requested_at" timestamp without time zone DEFAULT '1970-01-01 00:00:00' NOT NULL,
+ "status" smallint DEFAULT 0 NOT NULL,
+ "request_type" varchar(25) DEFAULT '' NOT NULL,
+ "confirm_token" varchar(100) DEFAULT '' NOT NULL,
+ "confirm_token_created_at" timestamp without time zone DEFAULT '1970-01-01 00:00:00' NOT NULL,
+ "checked_out" integer DEFAULT 0 NOT NULL,
+ "checked_out_time" timestamp without time zone DEFAULT '1970-01-01 00:00:00' NOT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE INDEX "#__privacy_requests_idx_checked_out" ON "#__privacy_requests" ("checked_out");
+CREATE INDEX "#__privacy_requests_idx_user_id" ON "#__privacy_requests" ("user_id");
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-03.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-03.sql
new file mode 100644
index 0000000000000..6ef9999e731f4
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-03.sql
@@ -0,0 +1,2 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(482, 0, 'plg_content_confirmconsent', 'plugin', 'confirmconsent', 'content', 0, 0, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-05.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-05.sql
new file mode 100644
index 0000000000000..94366fa954c7e
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-05.sql
@@ -0,0 +1,92 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(36, 0, 'com_actionlogs', 'component', 'com_actionlogs', '', 1, 1, 1, 1, '', '{"ip_logging":0,"csv_delimiter":",","loggable_extensions":["com_banners","com_cache","com_categories","com_config","com_contact","com_content","com_installer","com_media","com_menus","com_messages","com_modules","com_newsfeeds","com_plugins","com_redirect","com_tags","com_templates","com_users"]}', '', '', 0, '1970-01-01 00:00:00', 0, 0),
+(483, 0, 'plg_system_actionlogs', 'plugin', 'actionlogs', 'system', 0, 0, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0),
+(484, 0, 'plg_actionlog_joomla', 'plugin', 'joomla', 'actionlog', 0, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
+
+--
+-- Table: #__action_logs
+--
+CREATE TABLE "#__action_logs" (
+ "id" serial NOT NULL,
+ "message_language_key" varchar(255) NOT NULL DEFAULT '',
+ "message" text NOT NULL DEFAULT '',
+ "log_date" timestamp without time zone DEFAULT '1970-01-01 00:00:00' NOT NULL,
+ "extension" varchar(50) NOT NULL DEFAULT '',
+ "user_id" integer DEFAULT 0 NOT NULL,
+ "item_id" integer DEFAULT 0 NOT NULL,
+ "ip_address" varchar(40) NOT NULL DEFAULT '0.0.0.0',
+ PRIMARY KEY ("id")
+);
+
+-- Table: #__action_logs_extensions
+--
+CREATE TABLE "#__action_logs_extensions" (
+ "id" serial NOT NULL,
+ "extension" varchar(50) NOT NULL DEFAULT '',
+ PRIMARY KEY ("id")
+);
+
+--
+-- Dumping data for table '#__action_logs_extensions'
+--
+INSERT INTO "#__action_logs_extensions" ("id", "extension") VALUES
+(1, 'com_banners'),
+(2, 'com_cache'),
+(3, 'com_categories'),
+(4, 'com_config'),
+(5, 'com_contact'),
+(6, 'com_content'),
+(7, 'com_installer'),
+(8, 'com_media'),
+(9, 'com_menus'),
+(10, 'com_messages'),
+(11, 'com_modules'),
+(12, 'com_newsfeeds'),
+(13, 'com_plugins'),
+(14, 'com_redirect'),
+(15, 'com_tags'),
+(16, 'com_templates'),
+(17, 'com_users');
+
+SELECT setval('#__action_logs_extensions_id_seq', 18, false);
+-- --------------------------------------------------------
+
+--
+-- Table: #__action_log_config
+--
+CREATE TABLE "#__action_log_config" (
+ "id" serial NOT NULL,
+ "type_title" varchar(255) NOT NULL DEFAULT '',
+ "type_alias" varchar(255) NOT NULL DEFAULT '',
+ "id_holder" varchar(255) NULL,
+ "title_holder" varchar(255) NULL,
+ "table_name" varchar(255) NULL,
+ "text_prefix" varchar(255) NULL,
+ PRIMARY KEY ("id")
+);
+
+--
+-- Dumping data for table #__action_log_config
+--
+INSERT INTO "#__action_log_config" ("id", "type_title", "type_alias", "id_holder", "title_holder", "table_name", "text_prefix") VALUES
+(1, 'article', 'com_content.article', 'id' ,'title' , '#__content', 'PLG_ACTIONLOG_JOOMLA'),
+(2, 'article', 'com_content.form', 'id', 'title' , '#__content', 'PLG_ACTIONLOG_JOOMLA'),
+(3, 'banner', 'com_banners.banner', 'id' ,'name' , '#__banners', 'PLG_ACTIONLOG_JOOMLA'),
+(4, 'user_note', 'com_users.note', 'id', 'subject' ,'#__user_notes', 'PLG_ACTIONLOG_JOOMLA'),
+(5, 'media', 'com_media.file', '' , 'name' , '', 'PLG_ACTIONLOG_JOOMLA'),
+(6, 'category', 'com_categories.category', 'id' , 'title' , '#__categories', 'PLG_ACTIONLOG_JOOMLA'),
+(7, 'menu', 'com_menus.menu', 'id' ,'title' , '#__menu_types', 'PLG_ACTIONLOG_JOOMLA'),
+(8, 'menu_item', 'com_menus.item', 'id' , 'title' , '#__menu', 'PLG_ACTIONLOG_JOOMLA'),
+(9, 'newsfeed', 'com_newsfeeds.newsfeed', 'id' ,'name' , '#__newsfeeds', 'PLG_ACTIONLOG_JOOMLA'),
+(10, 'link', 'com_redirect.link', 'id', 'old_url' , '#__redirect_links', 'PLG_ACTIONLOG_JOOMLA'),
+(11, 'tag', 'com_tags.tag', 'id', 'title' , '#__tags', 'PLG_ACTIONLOG_JOOMLA'),
+(12, 'style', 'com_templates.style', 'id' , 'title' , '#__template_styles', 'PLG_ACTIONLOG_JOOMLA'),
+(13, 'plugin', 'com_plugins.plugin', 'extension_id' , 'name' , '#__extensions', 'PLG_ACTIONLOG_JOOMLA'),
+(14, 'component_config', 'com_config.component', 'extension_id' , 'name', '', 'PLG_ACTIONLOG_JOOMLA'),
+(15, 'contact', 'com_contact.contact', 'id', 'name', '#__contact_details', 'PLG_ACTIONLOG_JOOMLA'),
+(16, 'module', 'com_modules.module', 'id' ,'title', '#__modules', 'PLG_ACTIONLOG_JOOMLA'),
+(17, 'access_level', 'com_users.level', 'id' , 'title', '#__viewlevels', 'PLG_ACTIONLOG_JOOMLA'),
+(18, 'banner_client', 'com_banners.client', 'id', 'name', '#__banner_clients', 'PLG_ACTIONLOG_JOOMLA');
+
+
+SELECT setval('#__action_log_config_id_seq', 18, false);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-19.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-19.sql
new file mode 100644
index 0000000000000..b8ce724e76bf4
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-19.sql
@@ -0,0 +1,2 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(481, 0, 'plg_fields_repeatable', 'plugin', 'repeatable', 'fields', 0, 1, 1, 0, '', '', '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-20.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-20.sql
new file mode 100644
index 0000000000000..1245f67a7df6b
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-20.sql
@@ -0,0 +1,2 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(319, 0, 'mod_latestactions', 'module', 'mod_latestactions', '', 1, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-24.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-24.sql
new file mode 100644
index 0000000000000..649caf5771667
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-24.sql
@@ -0,0 +1,18 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(485, 0, 'plg_system_privacyconsent', 'plugin', 'privacyconsent', 'system', 0, 0, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
+
+--
+-- Table structure for table `#__privacy_consents`
+--
+
+CREATE TABLE "#__privacy_consents" (
+ "id" serial NOT NULL,
+ "user_id" bigint DEFAULT 0 NOT NULL,
+ "created" timestamp without time zone DEFAULT '1970-01-01 00:00:00' NOT NULL,
+ "subject" varchar(255) DEFAULT '' NOT NULL,
+ "body" text NOT NULL,
+ "remind" smallint DEFAULT 0 NOT NULL,
+ "token" varchar(100) DEFAULT '' NOT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE INDEX "#__privacy_consents_idx_user_id" ON "#__privacy_consents" ("user_id");
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-27.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-27.sql
new file mode 100644
index 0000000000000..9d13ef54ad8e7
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-05-27.sql
@@ -0,0 +1,3 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(486, 0, 'plg_system_logrotation', 'plugin', 'logrotation', 'system', 0, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0),
+(487, 0, 'plg_privacy_user', 'plugin', 'user', 'privacy', 0, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-02.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-02.sql
new file mode 100644
index 0000000000000..2551f21d93cc3
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-02.sql
@@ -0,0 +1,4 @@
+ALTER TABLE "#__content" ADD COLUMN "note" VARCHAR(255) NOT NULL DEFAULT '';
+
+UPDATE "#__content_types" SET "field_mappings" =
+'{"common":{"core_content_item_id":"id","core_title":"title","core_state":"state","core_alias":"alias","core_created_time":"created","core_modified_time":"modified","core_body":"introtext", "core_hits":"hits","core_publish_up":"publish_up","core_publish_down":"publish_down","core_access":"access", "core_params":"attribs", "core_featured":"featured", "core_metadata":"metadata", "core_language":"language", "core_images":"images", "core_urls":"urls", "core_version":"version", "core_ordering":"ordering", "core_metakey":"metakey", "core_metadesc":"metadesc", "core_catid":"catid", "core_xreference":"xreference", "asset_id":"asset_id", "note":"note"}, "special":{"fulltext":"fulltext"}}' WHERE "type_title" = 'Article';
\ No newline at end of file
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-12.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-12.sql
new file mode 100644
index 0000000000000..f1d2dffb8e93e
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-12.sql
@@ -0,0 +1,2 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(320, 0, 'mod_privacy_dashboard', 'module', 'mod_privacy_dashboard', '', 1, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-13.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-13.sql
new file mode 100644
index 0000000000000..86a8fa6ba7167
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-13.sql
@@ -0,0 +1,2 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(488, 0, 'plg_quickicon_privacycheck', 'plugin', 'privacycheck', 'quickicon', 0, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-14.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-14.sql
new file mode 100644
index 0000000000000..f2e932fee5a4f
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-14.sql
@@ -0,0 +1,3 @@
+INSERT INTO "#__postinstall_messages" ("extension_id", "title_key", "description_key", "action_key", "language_extension", "language_client_id", "type", "action_file", "action", "condition_file", "condition_method", "version_introduced", "enabled") VALUES
+(700, 'COM_ACTIONLOGS_POSTINSTALL_TITLE', 'COM_ACTIONLOGS_POSTINSTALL_BODY', '', 'com_actionlogs', 1, 'message', '', '', '', '', '3.9.0', 1),
+(700, 'COM_PRIVACY_POSTINSTALL_TITLE', 'COM_PRIVACY_POSTINSTALL_BODY', '', 'com_privacy', 1, 'message', '', '', '', '', '3.9.0', 1);
\ No newline at end of file
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-17.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-17.sql
new file mode 100644
index 0000000000000..e10fe5087a320
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-06-17.sql
@@ -0,0 +1,2 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(489, 0, 'plg_user_terms', 'plugin', 'terms', 'user', 0, 0, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-07-09.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-07-09.sql
new file mode 100644
index 0000000000000..951914be74db4
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-07-09.sql
@@ -0,0 +1,4 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(490, 0, 'plg_privacy_contact', 'plugin', 'contact', 'privacy', 0, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0),
+(491, 0, 'plg_privacy_content', 'plugin', 'content', 'privacy', 0, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0),
+(492, 0, 'plg_privacy_message', 'plugin', 'message', 'privacy', 0, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-07-10.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-07-10.sql
new file mode 100644
index 0000000000000..74e65fd4b16be
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-07-10.sql
@@ -0,0 +1,2 @@
+INSERT INTO "#__action_log_config" ("id", "type_title", "type_alias", "id_holder", "title_holder", "table_name", "text_prefix")
+ VALUES (19, 'application_config', 'com_config.application', '', 'name', '', 'PLG_ACTIONLOG_JOOMLA');
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-07-11.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-07-11.sql
new file mode 100644
index 0000000000000..270a1af635148
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-07-11.sql
@@ -0,0 +1,2 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(493, 0, 'plg_privacy_actionlogs', 'plugin', 'actionlogs', 'privacy', 0, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-08-12.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-08-12.sql
new file mode 100644
index 0000000000000..4e56e40bb7911
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-08-12.sql
@@ -0,0 +1 @@
+ALTER TABLE "#__privacy_consents" ADD COLUMN "state" smallint DEFAULT 1 NOT NULL;
\ No newline at end of file
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-08-28.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-08-28.sql
new file mode 100644
index 0000000000000..2492ac1788f60
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-08-28.sql
@@ -0,0 +1,7 @@
+ALTER TABLE "#__session" ALTER COLUMN "session_id" DROP DEFAULT;
+ALTER TABLE "#__session" ALTER COLUMN "session_id" TYPE bytea USING "session_id"::bytea;
+ALTER TABLE "#__session" ALTER COLUMN "session_id" SET NOT NULL;
+ALTER TABLE "#__session" ALTER COLUMN "time" DROP DEFAULT,
+ ALTER COLUMN "time" TYPE integer USING "time"::integer;
+ALTER TABLE "#__session" ALTER COLUMN "time" SET DEFAULT 0;
+ALTER TABLE "#__session" ALTER COLUMN "time" SET NOT NULL;
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-08-29.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-08-29.sql
new file mode 100644
index 0000000000000..b4421597d895b
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-08-29.sql
@@ -0,0 +1,2 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(494, 0, 'plg_captcha_recaptcha_invisible', 'plugin', 'recaptcha_invisible', 'captcha', 0, 0, 1, 0, '', '{"public_key":"","private_key":"","theme":"clean"}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-09-04.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-09-04.sql
new file mode 100644
index 0000000000000..1823a0a8fed4b
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-09-04.sql
@@ -0,0 +1,8 @@
+CREATE TABLE "#__action_logs_users" (
+ "user_id" integer NOT NULL,
+ "notify" integer NOT NULL,
+ "extensions" text NOT NULL,
+ PRIMARY KEY ("user_id")
+);
+
+CREATE INDEX "#__action_logs_users_idx_notify" ON "#__action_logs_users" ("notify");
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-10-15.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-10-15.sql
new file mode 100644
index 0000000000000..358decd0a484a
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-10-15.sql
@@ -0,0 +1,4 @@
+CREATE INDEX "#__action_logs_idx_user_id" ON "#__action_logs" ("user_id");
+CREATE INDEX "#__action_logs_idx_user_id_logdate" ON "#__action_logs" ("user_id", "log_date");
+CREATE INDEX "#__action_logs_idx_user_id_extension" ON "#__action_logs" ("user_id", "extension");
+CREATE INDEX "#__action_logs_idx_extension_itemid" ON "#__action_logs" ("extension", "item_id");
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-10-20.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-10-20.sql
new file mode 100644
index 0000000000000..a33f707516f5a
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-10-20.sql
@@ -0,0 +1,3 @@
+DROP INDEX "#__privacy_requests_idx_checked_out";
+ALTER TABLE "#__privacy_requests" DROP COLUMN "checked_out";
+ALTER TABLE "#__privacy_requests" DROP COLUMN "checked_out_time";
diff --git a/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-10-21.sql b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-10-21.sql
new file mode 100644
index 0000000000000..271663e64fbc2
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/3.9.0-2018-10-21.sql
@@ -0,0 +1,2 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(495, 0, 'plg_privacy_consents', 'plugin', 'consents', 'privacy', 0, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2016-07-03.sql b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2016-07-03.sql
index 9540431d11de3..d2e76a5654153 100644
--- a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2016-07-03.sql
+++ b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2016-07-03.sql
@@ -1,3 +1,3 @@
INSERT INTO "#__extensions" ("extension_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "custom_data", "system_data", "checked_out", "checked_out_time", "ordering", "state") VALUES
-(458, 'plg_behaviour_taggable', 'plugin', 'taggable', 'behaviour', 0, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0),
-(459, 'plg_behaviour_versionable', 'plugin', 'versionable', 'behaviour', 0, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
\ No newline at end of file
+(494, 'plg_behaviour_taggable', 'plugin', 'taggable', 'behaviour', 0, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0),
+(495, 'plg_behaviour_versionable', 'plugin', 'versionable', 'behaviour', 0, 1, 1, 0, '', '{}', '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2017-04-25.sql b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2017-04-25.sql
index c2b2bef81945b..0ef1a93a1a555 100644
--- a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2017-04-25.sql
+++ b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2017-04-25.sql
@@ -1,5 +1,5 @@
INSERT INTO "#__extensions" ("extension_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "checked_out", "checked_out_time", "ordering", "state") VALUES
-(481, 'plg_filesystem_local', 'plugin', 'local', 'filesystem', 0, 1, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0),
-(482, 'plg_media-action_crop', 'plugin', 'crop', 'media-action', 0, 1, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0),
-(483, 'plg_media-action_resize', 'plugin', 'resize', 'media-action', 0, 1, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0),
-(484, 'plg_media-action_rotate', 'plugin', 'rotate', 'media-action', 0, 1, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0),;
+(496, 'plg_filesystem_local', 'plugin', 'local', 'filesystem', 0, 1, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0),
+(497, 'plg_media-action_crop', 'plugin', 'crop', 'media-action', 0, 1, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0),
+(498, 'plg_media-action_resize', 'plugin', 'resize', 'media-action', 0, 1, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0),
+(499, 'plg_media-action_rotate', 'plugin', 'rotate', 'media-action', 0, 1, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0),;
diff --git a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2017-06-03.sql b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2017-06-03.sql
new file mode 100644
index 0000000000000..018cb0b5b749a
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2017-06-03.sql
@@ -0,0 +1,2 @@
+ALTER TABLE "#__extensions" ADD COLUMN "changelogurl" text;
+ALTER TABLE "#__updates" ADD COLUMN "changelogurl" text;
diff --git a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2017-10-10.sql b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2017-10-10.sql
index f9321eed78908..e4f7cb20ee330 100644
--- a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2017-10-10.sql
+++ b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2017-10-10.sql
@@ -1,5 +1,5 @@
INSERT INTO "#__extensions" ("extension_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "checked_out", "checked_out_time", "ordering", "state") VALUES
-(487, 'plg_system_httpheaders', 'plugin', 'httpheaders', 'system', 0, 0, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0);
+(501, 'plg_system_httpheaders', 'plugin', 'httpheaders', 'system', 0, 0, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0);
INSERT INTO "#__postinstall_messages" ("extension_id", "title_key", "description_key", "action_key", "language_extension", "language_client_id", "type", "action_file", "action", "condition_file", "condition_method", "version_introduced", "enabled")
VALUES
diff --git a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-05-15.sql b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-05-15.sql
index 28c2c3c34cdc1..c07179ff547f0 100644
--- a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-05-15.sql
+++ b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-05-15.sql
@@ -75,8 +75,8 @@ CREATE INDEX "#__workflow_stages_idx_default" ON "#__workflow_stages" ("default"
--
INSERT INTO "#__workflow_stages" ("id", "asset_id", "ordering", "workflow_id", "published", "title", "description", "condition", "default") VALUES
-(1, 0, 1, 1, 1, 'JUNPUBLISHED', '', 0, 0),
-(2, 0, 2, 1, 1, 'JPUBLISHED', '', 1, 1),
+(1, 0, 1, 1, 1, 'JUNPUBLISHED', '', 0, 1),
+(2, 0, 2, 1, 1, 'JPUBLISHED', '', 1, 0),
(3, 0, 3, 1, 1, 'JTRASHED', '', -2, 0),
(4, 0, 4, 1, 1, 'JARCHIVED', '', 2, 0);
@@ -113,7 +113,7 @@ INSERT INTO "#__workflow_transitions" ("id", "asset_id", "published", "ordering"
--
INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "checked_out", "checked_out_time", "ordering", "state") VALUES
-(35, 0, 'com_workflow', 'component', 'com_workflow', '', 1, 1, 0, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0);
+(37, 0, 'com_workflow', 'component', 'com_workflow', '', 1, 1, 0, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0);
--
-- Creating Associations for existing content
diff --git a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-06-03.sql b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-06-03.sql
index 9b024b02fed9e..06e202c826dd2 100644
--- a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-06-03.sql
+++ b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-06-03.sql
@@ -15,4 +15,4 @@ CREATE TABLE IF NOT EXISTS "#__csp" (
);
INSERT INTO "#__extensions" ("extension_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "checked_out", "checked_out_time", "ordering", "state") VALUES
-(35, 'com_csp', 'component', 'com_csp', ' ', 0, 0, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0);
+(38, 'com_csp', 'component', 'com_csp', ' ', 0, 0, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-06-11.sql b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-06-11.sql
index 4d4ddb987927d..e0b521329686a 100644
--- a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-06-11.sql
+++ b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-06-11.sql
@@ -1,4 +1,4 @@
INSERT INTO "#__extensions"
("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "checked_out", "checked_out_time", "ordering", "state")
VALUES
- (488, 0, 'plg_sampledata_blog', 'plugin', 'multilang', 'sampledata', 0, 0, 1, 0, '', '', 0, '1970-01-01 00:00:00', 0, 0);
+ (490, 0, 'plg_sampledata_multilang', 'plugin', 'multilang', 'sampledata', 0, 0, 1, 0, '', '', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-06-16.sql b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-06-16.sql
new file mode 100644
index 0000000000000..3bfbbd98c407c
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-06-16.sql
@@ -0,0 +1,186 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "checked_out", "checked_out_time", "ordering", "state") VALUES (506, 0, 'plg_extension_finder', 'plugin', 'finder', 'extension', 0, 1, 1, 0, '', '', 0, '1970-01-01 00:00:00', 0, 0);
+DROP TABLE IF EXISTS "#__finder_terms_common";
+CREATE TABLE "#__finder_terms_common" (
+ "term" varchar(75) NOT NULL,
+ "language" varchar(7) DEFAULT '' NOT NULL,
+ "custom" integer DEFAULT 0 NOT NULL,
+ CONSTRAINT "#__finder_terms_idx_term" UNIQUE ("term", "language")
+);
+CREATE INDEX "#__finder_terms_common_idx_word_lang" on "#__finder_terms_common" ("term", "language");
+CREATE INDEX "#__finder_terms_common_idx_lang" on "#__finder_terms_common" ("language");
+
+INSERT INTO "#__finder_terms_common" ("term", "language", "custom") VALUES
+ ('i', 'en', 0),
+ ('me', 'en', 0),
+ ('my', 'en', 0),
+ ('myself', 'en', 0),
+ ('we', 'en', 0),
+ ('our', 'en', 0),
+ ('ours', 'en', 0),
+ ('ourselves', 'en', 0),
+ ('you', 'en', 0),
+ ('your', 'en', 0),
+ ('yours', 'en', 0),
+ ('yourself', 'en', 0),
+ ('yourselves', 'en', 0),
+ ('he', 'en', 0),
+ ('him', 'en', 0),
+ ('his', 'en', 0),
+ ('himself', 'en', 0),
+ ('she', 'en', 0),
+ ('her', 'en', 0),
+ ('hers', 'en', 0),
+ ('herself', 'en', 0),
+ ('it', 'en', 0),
+ ('its', 'en', 0),
+ ('itself', 'en', 0),
+ ('they', 'en', 0),
+ ('them', 'en', 0),
+ ('their', 'en', 0),
+ ('theirs', 'en', 0),
+ ('themselves', 'en', 0),
+ ('what', 'en', 0),
+ ('which', 'en', 0),
+ ('who', 'en', 0),
+ ('whom', 'en', 0),
+ ('this', 'en', 0),
+ ('that', 'en', 0),
+ ('these', 'en', 0),
+ ('those', 'en', 0),
+ ('am', 'en', 0),
+ ('is', 'en', 0),
+ ('are', 'en', 0),
+ ('was', 'en', 0),
+ ('were', 'en', 0),
+ ('be', 'en', 0),
+ ('been', 'en', 0),
+ ('being', 'en', 0),
+ ('have', 'en', 0),
+ ('has', 'en', 0),
+ ('had', 'en', 0),
+ ('having', 'en', 0),
+ ('do', 'en', 0),
+ ('does', 'en', 0),
+ ('did', 'en', 0),
+ ('doing', 'en', 0),
+ ('would', 'en', 0),
+ ('should', 'en', 0),
+ ('could', 'en', 0),
+ ('ought', 'en', 0),
+ ('i\'m', 'en', 0),
+ ('you\'re', 'en', 0),
+ ('he\'s', 'en', 0),
+ ('she\'s', 'en', 0),
+ ('it\'s', 'en', 0),
+ ('we\'re', 'en', 0),
+ ('they\'re', 'en', 0),
+ ('i\'ve', 'en', 0),
+ ('you\'ve', 'en', 0),
+ ('we\'ve', 'en', 0),
+ ('they\'ve', 'en', 0),
+ ('i\'d', 'en', 0),
+ ('you\'d', 'en', 0),
+ ('he\'d', 'en', 0),
+ ('she\'d', 'en', 0),
+ ('we\'d', 'en', 0),
+ ('they\'d', 'en', 0),
+ ('i\'ll', 'en', 0),
+ ('you\'ll', 'en', 0),
+ ('he\'ll', 'en', 0),
+ ('she\'ll', 'en', 0),
+ ('we\'ll', 'en', 0),
+ ('they\'ll', 'en', 0),
+ ('isn\'t', 'en', 0),
+ ('aren\'t', 'en', 0),
+ ('wasn\'t', 'en', 0),
+ ('weren\'t', 'en', 0),
+ ('hasn\'t', 'en', 0),
+ ('haven\'t', 'en', 0),
+ ('hadn\'t', 'en', 0),
+ ('doesn\'t', 'en', 0),
+ ('don\'t', 'en', 0),
+ ('didn\'t', 'en', 0),
+ ('won\'t', 'en', 0),
+ ('wouldn\'t', 'en', 0),
+ ('shan\'t', 'en', 0),
+ ('shouldn\'t', 'en', 0),
+ ('can\'t', 'en', 0),
+ ('cannot', 'en', 0),
+ ('couldn\'t', 'en', 0),
+ ('mustn\'t', 'en', 0),
+ ('let\'s', 'en', 0),
+ ('that\'s', 'en', 0),
+ ('who\'s', 'en', 0),
+ ('what\'s', 'en', 0),
+ ('here\'s', 'en', 0),
+ ('there\'s', 'en', 0),
+ ('when\'s', 'en', 0),
+ ('where\'s', 'en', 0),
+ ('why\'s', 'en', 0),
+ ('how\'s', 'en', 0),
+ ('a', 'en', 0),
+ ('an', 'en', 0),
+ ('the', 'en', 0),
+ ('and', 'en', 0),
+ ('but', 'en', 0),
+ ('if', 'en', 0),
+ ('or', 'en', 0),
+ ('because', 'en', 0),
+ ('as', 'en', 0),
+ ('until', 'en', 0),
+ ('while', 'en', 0),
+ ('of', 'en', 0),
+ ('at', 'en', 0),
+ ('by', 'en', 0),
+ ('for', 'en', 0),
+ ('with', 'en', 0),
+ ('about', 'en', 0),
+ ('against', 'en', 0),
+ ('between', 'en', 0),
+ ('into', 'en', 0),
+ ('through', 'en', 0),
+ ('during', 'en', 0),
+ ('before', 'en', 0),
+ ('after', 'en', 0),
+ ('above', 'en', 0),
+ ('below', 'en', 0),
+ ('to', 'en', 0),
+ ('from', 'en', 0),
+ ('up', 'en', 0),
+ ('down', 'en', 0),
+ ('in', 'en', 0),
+ ('out', 'en', 0),
+ ('on', 'en', 0),
+ ('off', 'en', 0),
+ ('over', 'en', 0),
+ ('under', 'en', 0),
+ ('again', 'en', 0),
+ ('further', 'en', 0),
+ ('then', 'en', 0),
+ ('once', 'en', 0),
+ ('here', 'en', 0),
+ ('there', 'en', 0),
+ ('when', 'en', 0),
+ ('where', 'en', 0),
+ ('why', 'en', 0),
+ ('how', 'en', 0),
+ ('all', 'en', 0),
+ ('any', 'en', 0),
+ ('both', 'en', 0),
+ ('each', 'en', 0),
+ ('few', 'en', 0),
+ ('more', 'en', 0),
+ ('most', 'en', 0),
+ ('other', 'en', 0),
+ ('some', 'en', 0),
+ ('such', 'en', 0),
+ ('no', 'en', 0),
+ ('nor', 'en', 0),
+ ('not', 'en', 0),
+ ('only', 'en', 0),
+ ('own', 'en', 0),
+ ('same', 'en', 0),
+ ('so', 'en', 0),
+ ('than', 'en', 0),
+ ('too', 'en', 0),
+ ('very', 'en', 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-07-19.sql b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-07-19.sql
index 67174b4a65058..60f50a3233acc 100644
--- a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-07-19.sql
+++ b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-07-19.sql
@@ -14,5 +14,5 @@ CREATE INDEX "#__template_overrides_idx_template" ON "#__template_overrides" ("t
CREATE INDEX "#__template_overrides_idx_extension_id" ON "#__template_overrides" ("extension_id");
INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "checked_out", "checked_out_time", "ordering", "state", "namespace") VALUES
-(491, 0, 'plg_installer_override', 'plugin', 'override', 'installer', 0, 1, 1, 1, '', '', 0, '1970-01-01 00:00:00', 4, 0, ''),
-(492, 0, 'plg_quickicon_overridecheck', 'plugin', 'overridecheck', 'quickicon', 0, 1, 1, 1, '', '', 0, '1970-01-01 00:00:00', 0, 0, '');
+(504, 0, 'plg_installer_override', 'plugin', 'override', 'installer', 0, 1, 1, 1, '', '', 0, '1970-01-01 00:00:00', 4, 0, ''),
+(505, 0, 'plg_quickicon_overridecheck', 'plugin', 'overridecheck', 'quickicon', 0, 1, 1, 1, '', '', 0, '1970-01-01 00:00:00', 0, 0, '');
diff --git a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-07-29.sql b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-07-29.sql
new file mode 100644
index 0000000000000..ea1b4ae743d71
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-07-29.sql
@@ -0,0 +1,28 @@
+DROP TABLE "#__finder_taxonomy";
+
+CREATE TABLE IF NOT EXISTS "#__finder_taxonomy" (
+ "id" serial NOT NULL,
+ "parent_id" integer DEFAULT 0 NOT NULL,
+ "lft" integer DEFAULT 0 NOT NULL,
+ "rgt" integer DEFAULT 0 NOT NULL,
+ "level" integer DEFAULT 0 NOT NULL,
+ "path" VARCHAR(400) NOT NULL DEFAULT '',
+ "title" VARCHAR(255) NOT NULL DEFAULT '',
+ "alias" VARCHAR(400) NOT NULL DEFAULT '',
+ "state" smallint DEFAULT 1 NOT NULL,
+ "access" smallint DEFAULT 1 NOT NULL,
+ "language" varchar(7) DEFAULT '' NOT NULL,
+ PRIMARY KEY ("id")
+);
+CREATE INDEX "#__finder_taxonomy_state" on "#__finder_taxonomy" ("state");
+CREATE INDEX "#__finder_taxonomy_access" on "#__finder_taxonomy" ("access");
+CREATE INDEX "#__finder_taxonomy_path" on "#__finder_taxonomy" ("path");
+CREATE INDEX "#__finder_taxonomy_lft_rgt" on "#__finder_taxonomy" ("lft", "rgt");
+CREATE INDEX "#__finder_taxonomy_alias" on "#__finder_taxonomy" ("alias");
+CREATE INDEX "#__finder_taxonomy_language" on "#__finder_taxonomy" ("language");
+CREATE INDEX "#__finder_taxonomy_idx_parent_published" on "#__finder_taxonomy" ("parent_id", "state", "access");
+
+INSERT INTO "#__finder_taxonomy" ("id", "parent_id", "lft", "rgt", "level", "path", "title", "alias", "state", "access", "language") VALUES
+(1, 0, 0, 1, 0, '', 'ROOT', 'root', 1, 1, '*');
+
+SELECT setval('#__finder_taxonomy_id_seq', 2, false);
\ No newline at end of file
diff --git a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-08-29.sql b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-08-29.sql
new file mode 100644
index 0000000000000..723794f171d25
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2018-08-29.sql
@@ -0,0 +1,13 @@
+ALTER TABLE "#__modules" ALTER COLUMN "publish_up" DROP NOT NULL;
+ALTER TABLE "#__modules" ALTER COLUMN "publish_up" DROP DEFAULT;
+
+ALTER TABLE "#__modules" ALTER COLUMN "publish_down" DROP NOT NULL;
+ALTER TABLE "#__modules" ALTER COLUMN "publish_down" DROP DEFAULT;
+
+ALTER TABLE "#__modules" ALTER COLUMN "checked_out_time" DROP NOT NULL;
+ALTER TABLE "#__modules" ALTER COLUMN "checked_out_time" DROP DEFAULT;
+
+UPDATE "#__modules" SET
+ "publish_up" = CASE WHEN "publish_up" = '1970-01-01 00:00:00' THEN NULL ELSE "publish_up" END,
+ "publish_down" = CASE WHEN "publish_down" = '1970-01-01 00:00:00' THEN NULL ELSE "publish_down" END,
+ "checked_out_time" = CASE WHEN "checked_out_time" = '1970-01-01 00:00:00' THEN NULL ELSE "checked_out_time" END;
diff --git a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-01-05.sql b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-01-05.sql
new file mode 100644
index 0000000000000..8432ebe636b27
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-01-05.sql
@@ -0,0 +1,3 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(900, 0, 'plg_api-authentication_basic', 'plugin', 'basic', 'api-authentication', 0, 1, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0),
+(901, 0, 'plg_webservices_content', 'plugin', 'content', 'webservices', 0, 1, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-03-09.sql b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-03-09.sql
new file mode 100644
index 0000000000000..9b6cc6bee874a
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-03-09.sql
@@ -0,0 +1,2 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(507, 0, 'plg_system_skipto', 'plugin', 'skipto', 'system', 0, 1, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-03-31.sql b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-03-31.sql
new file mode 100644
index 0000000000000..49ff324103cf4
--- /dev/null
+++ b/administrator/components/com_admin/sql/updates/postgresql/4.0.0-2019-03-31.sql
@@ -0,0 +1,3 @@
+INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "element", "folder", "client_id", "enabled", "access", "protected", "manifest_cache", "params", "checked_out", "checked_out_time", "ordering", "state") VALUES
+(502, 0, 'plg_sampledata_multilang', 'plugin', 'multilang', 'sampledata', 0, 1, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0),
+(500, 0, 'plg_installer_webinstaller', 'plugin', 'webinstaller', 'installer', 0, 1, 1, 0, '', '{}', 0, '1970-01-01 00:00:00', 0, 0);
diff --git a/administrator/components/com_admin/tmpl/help/default.php b/administrator/components/com_admin/tmpl/help/default.php
index b0f537a468abd..9892d872dfa54 100644
--- a/administrator/components/com_admin/tmpl/help/default.php
+++ b/administrator/components/com_admin/tmpl/help/default.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/tmpl/help/langforum.php b/administrator/components/com_admin/tmpl/help/langforum.php
index aee7420915a76..c57b24160afc9 100644
--- a/administrator/components/com_admin/tmpl/help/langforum.php
+++ b/administrator/components/com_admin/tmpl/help/langforum.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/tmpl/profile/edit.php b/administrator/components/com_admin/tmpl/profile/edit.php
deleted file mode 100644
index 2f34cfae0f8f7..0000000000000
--- a/administrator/components/com_admin/tmpl/profile/edit.php
+++ /dev/null
@@ -1,69 +0,0 @@
-form->getFieldsets();
-?>
-
-
diff --git a/administrator/components/com_admin/tmpl/sysinfo/default.php b/administrator/components/com_admin/tmpl/sysinfo/default.php
index 03e97fad66289..70735d7dc2525 100644
--- a/administrator/components/com_admin/tmpl/sysinfo/default.php
+++ b/administrator/components/com_admin/tmpl/sysinfo/default.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/tmpl/sysinfo/default_config.php b/administrator/components/com_admin/tmpl/sysinfo/default_config.php
index b0ce9da672f8d..fa5ff1a0a5d99 100644
--- a/administrator/components/com_admin/tmpl/sysinfo/default_config.php
+++ b/administrator/components/com_admin/tmpl/sysinfo/default_config.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/tmpl/sysinfo/default_directory.php b/administrator/components/com_admin/tmpl/sysinfo/default_directory.php
index c0f68f80c4123..dcfd30d6aa81f 100644
--- a/administrator/components/com_admin/tmpl/sysinfo/default_directory.php
+++ b/administrator/components/com_admin/tmpl/sysinfo/default_directory.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/tmpl/sysinfo/default_phpinfo.php b/administrator/components/com_admin/tmpl/sysinfo/default_phpinfo.php
index a3063d9b229ce..0c21295be3df4 100644
--- a/administrator/components/com_admin/tmpl/sysinfo/default_phpinfo.php
+++ b/administrator/components/com_admin/tmpl/sysinfo/default_phpinfo.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/tmpl/sysinfo/default_phpsettings.php b/administrator/components/com_admin/tmpl/sysinfo/default_phpsettings.php
index 2a695f460a84b..db9e2dfb092f6 100644
--- a/administrator/components/com_admin/tmpl/sysinfo/default_phpsettings.php
+++ b/administrator/components/com_admin/tmpl/sysinfo/default_phpsettings.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_admin/tmpl/sysinfo/default_system.php b/administrator/components/com_admin/tmpl/sysinfo/default_system.php
index 24c1eaffcc086..e8abbb5fbdc4b 100644
--- a/administrator/components/com_admin/tmpl/sysinfo/default_system.php
+++ b/administrator/components/com_admin/tmpl/sysinfo/default_system.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_admin
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_ajax/ajax.php b/administrator/components/com_ajax/ajax.php
index 0bbcfdf5da4a1..f96da3c4d69a0 100644
--- a/administrator/components/com_ajax/ajax.php
+++ b/administrator/components/com_ajax/ajax.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_ajax
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_ajax/ajax.xml b/administrator/components/com_ajax/ajax.xml
index 3bcd196e1bdb5..75d31342532a0 100644
--- a/administrator/components/com_ajax/ajax.xml
+++ b/administrator/components/com_ajax/ajax.xml
@@ -3,7 +3,7 @@
com_ajaxJoomla! ProjectAugust 2013
- (C) 2005 - 2018 Open Source Matters. All rights reserved.
+ (C) 2005 - 2019 Open Source Matters. All rights reserved.GNU General Public License version 2 or later; see LICENSE.txtadmin@joomla.orgwww.joomla.org
diff --git a/administrator/components/com_associations/Controller/AssociationController.php b/administrator/components/com_associations/Controller/AssociationController.php
index 021405fa00e45..65a4e48697bb6 100644
--- a/administrator/components/com_associations/Controller/AssociationController.php
+++ b/administrator/components/com_associations/Controller/AssociationController.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -14,7 +14,6 @@
use Joomla\CMS\Language\Text;
use Joomla\CMS\MVC\Controller\FormController;
use Joomla\CMS\Router\Route;
-use Joomla\CMS\Session\Session;
use Joomla\Component\Associations\Administrator\Helper\AssociationsHelper;
/**
@@ -64,7 +63,7 @@ public function edit($key = null, $urlVar = null)
*/
public function cancel($key = null)
{
- Session::checkToken() or jexit(Text::_('JINVALID_TOKEN'));
+ $this->checkToken();
list($extensionName, $typeName) = explode('.', $this->input->get('itemtype', '', 'string'), 2);
diff --git a/administrator/components/com_associations/Controller/AssociationsController.php b/administrator/components/com_associations/Controller/AssociationsController.php
index 1007d2f2469db..f5c362d5a3f01 100644
--- a/administrator/components/com_associations/Controller/AssociationsController.php
+++ b/administrator/components/com_associations/Controller/AssociationsController.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_associations/Controller/DisplayController.php b/administrator/components/com_associations/Controller/DisplayController.php
index c4d3d01ce63af..dd9497d71e1b9 100644
--- a/administrator/components/com_associations/Controller/DisplayController.php
+++ b/administrator/components/com_associations/Controller/DisplayController.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_associations/Dispatcher/Dispatcher.php b/administrator/components/com_associations/Dispatcher/Dispatcher.php
index 07da1ee4d2f43..f949efa05e7ec 100644
--- a/administrator/components/com_associations/Dispatcher/Dispatcher.php
+++ b/administrator/components/com_associations/Dispatcher/Dispatcher.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_associations/Field/ItemlanguageField.php b/administrator/components/com_associations/Field/ItemlanguageField.php
index 88bec1219315d..3f23450b9c8b9 100644
--- a/administrator/components/com_associations/Field/ItemlanguageField.php
+++ b/administrator/components/com_associations/Field/ItemlanguageField.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -12,19 +12,17 @@
defined('JPATH_BASE') or die;
use Joomla\CMS\Factory;
-use Joomla\CMS\Form\FormHelper;
+use Joomla\CMS\Form\Field\ListField;
use Joomla\CMS\Language\LanguageHelper;
use Joomla\Component\Associations\Administrator\Helper\AssociationsHelper;
use Joomla\Utilities\ArrayHelper;
-FormHelper::loadFieldClass('list');
-
/**
* Field listing item languages
*
* @since 3.7.0
*/
-class ItemlanguageField extends \JFormFieldList
+class ItemlanguageField extends ListField
{
/**
* The form field type.
diff --git a/administrator/components/com_associations/Field/ItemtypeField.php b/administrator/components/com_associations/Field/ItemtypeField.php
index 76cdec8dfb7b0..cdbe2f89887d1 100644
--- a/administrator/components/com_associations/Field/ItemtypeField.php
+++ b/administrator/components/com_associations/Field/ItemtypeField.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_associations/Field/Modal/AssociationField.php b/administrator/components/com_associations/Field/Modal/AssociationField.php
index f59f5daffaee1..7dbca9a9dce60 100644
--- a/administrator/components/com_associations/Field/Modal/AssociationField.php
+++ b/administrator/components/com_associations/Field/Modal/AssociationField.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_associations/Helper/AssociationsHelper.php b/administrator/components/com_associations/Helper/AssociationsHelper.php
index f5ab84ecb973b..564e42d1aa61b 100644
--- a/administrator/components/com_associations/Helper/AssociationsHelper.php
+++ b/administrator/components/com_associations/Helper/AssociationsHelper.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_associations/Model/AssociationModel.php b/administrator/components/com_associations/Model/AssociationModel.php
index 24d075be85b03..8ed1685a28658 100644
--- a/administrator/components/com_associations/Model/AssociationModel.php
+++ b/administrator/components/com_associations/Model/AssociationModel.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_associations/Model/AssociationsModel.php b/administrator/components/com_associations/Model/AssociationsModel.php
index 3ac7b4dea7969..da696f3ebff5d 100644
--- a/administrator/components/com_associations/Model/AssociationsModel.php
+++ b/administrator/components/com_associations/Model/AssociationsModel.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_associations/View/Association/HtmlView.php b/administrator/components/com_associations/View/Association/HtmlView.php
index 0bdc8326f9a83..c59abab1a6fb0 100644
--- a/administrator/components/com_associations/View/Association/HtmlView.php
+++ b/administrator/components/com_associations/View/Association/HtmlView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -119,6 +119,7 @@ public function display($tpl = null)
$reference = ArrayHelper::fromObject(AssociationsHelper::getItem($extensionName, $typeName, $referenceId));
$this->referenceLanguage = $reference[$languageField];
+ $this->referenceTitle = AssociationsHelper::getTypeFieldName($extensionName, $typeName, 'title');
// Check for special case category
$typeNameExploded = explode('.', $typeName);
@@ -156,6 +157,7 @@ public function display($tpl = null)
$this->targetLanguage = '';
$this->defaultTargetSrc = '';
$this->targetAction = '';
+ $this->targetTitle = '';
if ($target = $input->get('target', '', 'string'))
{
@@ -163,38 +165,19 @@ public function display($tpl = null)
$this->targetAction = $matches[2];
$this->targetId = $matches[1];
$this->targetLanguage = $matches[0];
- $task = $this->typeName . '.' . $this->targetAction;
- $this->defaultTargetSrc = Route::_($this->editUri . '&task=' . $task . '&id=' . (int) $this->targetId);
+ $this->targetTitle = AssociationsHelper::getTypeFieldName($extensionName, $typeName, 'title');
+ $task = $typeName . '.' . $this->targetAction;
+
+ /*
+ * Let's put the target src into a variable to use in the javascript code
+ * to avoid race conditions when the reference iframe loads.
+ */
+ $document = Factory::getDocument();
+ $document->addScriptOptions('targetSrc', Route::_($this->editUri . '&task=' . $task . '&id=' . (int) $this->targetId));
$this->form->setValue('itemlanguage', '', $this->targetLanguage . ':' . $this->targetId . ':' . $this->targetAction);
}
- /**
- * @todo Review later
- */
-
- // We don't need toolbar in the modal window.
- if ($this->getLayout() !== 'modal')
- {
- $this->addToolbar();
- $this->sidebar = \JHtmlSidebar::render();
- }
- else
- {
- // In article associations modal we need to remove language filter if forcing a language.
- // We also need to change the category filter to show show categories with All or the forced language.
- if ($forcedLanguage = Factory::getApplication()->input->get('forcedLanguage', '', 'CMD'))
- {
- // If the language is forced we can't allow to select the language, so transform the language selector filter into a hidden field.
- $languageXml = new \SimpleXMLElement('');
- $this->filterForm->setField($languageXml, 'filter', true);
-
- // Also, unset the active language filter so the search tools is not open by default with this filter.
- unset($this->activeFilters['language']);
-
- // One last changes needed is to change the category filter to just show categories with All language or with the forced language.
- $this->filterForm->setFieldAttribute('category_id', 'language', '*,' . $forcedLanguage, 'filter');
- }
- }
+ $this->addToolbar();
parent::display($tpl);
}
diff --git a/administrator/components/com_associations/View/Associations/HtmlView.php b/administrator/components/com_associations/View/Associations/HtmlView.php
index 94875eb9ea8cb..b57b4b8312cd9 100644
--- a/administrator/components/com_associations/View/Associations/HtmlView.php
+++ b/administrator/components/com_associations/View/Associations/HtmlView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -168,6 +168,15 @@ public function display($tpl = null)
if (empty($support['catid']))
{
$this->filterForm->setFieldAttribute('category_id', 'extension', $extensionName, 'filter');
+
+ if ($this->getLayout() == 'modal')
+ {
+ // We need to change the category filter to only show categories tagged to All or to the forced language.
+ if ($forcedLanguage = Factory::getApplication()->input->get('forcedLanguage', '', 'CMD'))
+ {
+ $this->filterForm->setFieldAttribute('category_id', 'language', '*,' . $forcedLanguage, 'filter');
+ }
+ }
}
$this->items = $this->get('Items');
diff --git a/administrator/components/com_associations/associations.xml b/administrator/components/com_associations/associations.xml
index 17ab7375e95ce..a5d27d97d85c2 100644
--- a/administrator/components/com_associations/associations.xml
+++ b/administrator/components/com_associations/associations.xml
@@ -3,7 +3,7 @@
com_associationsJoomla! ProjectJanuary 2017
- (C) 2005 - 2018 Open Source Matters. All rights reserved.
+ (C) 2005 - 2019 Open Source Matters. All rights reserved.GNU General Public License version 2 or later; see LICENSE.txtadmin@joomla.orgwww.joomla.org
diff --git a/administrator/components/com_associations/layouts/joomla/searchtools/default.php b/administrator/components/com_associations/layouts/joomla/searchtools/default.php
index 9a742748203eb..51d0592bd165b 100644
--- a/administrator/components/com_associations/layouts/joomla/searchtools/default.php
+++ b/administrator/components/com_associations/layouts/joomla/searchtools/default.php
@@ -3,12 +3,14 @@
* @package Joomla.Administrator
* @subpackage Layout
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
defined('JPATH_BASE') or die;
+use Joomla\CMS\Factory;
+
/** @var array $displayData */
$data = $displayData;
@@ -28,7 +30,7 @@
// Set some basic options
$customOptions = array(
'filtersHidden' => $data['options']['filtersHidden'] ?? empty($data['view']->activeFilters),
- 'defaultLimit' => $data['options']['defaultLimit'] ?? JFactory::getApplication()->get('list_limit', 20),
+ 'defaultLimit' => $data['options']['defaultLimit'] ?? Factory::getApplication()->get('list_limit', 20),
'searchFieldSelector' => '#filter_search',
'orderFieldSelector' => '#list_fullordering',
'formSelector' => !empty($data['options']['formSelector']) ? $data['options']['formSelector'] : '#adminForm',
diff --git a/administrator/components/com_associations/services/provider.php b/administrator/components/com_associations/services/provider.php
index 522e8c355af1d..a67d61e6a36fa 100644
--- a/administrator/components/com_associations/services/provider.php
+++ b/administrator/components/com_associations/services/provider.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_associations/tmpl/association/edit.php b/administrator/components/com_associations/tmpl/association/edit.php
index 5711f525f919e..474dca3bba2a0 100644
--- a/administrator/components/com_associations/tmpl/association/edit.php
+++ b/administrator/components/com_associations/tmpl/association/edit.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -42,6 +42,7 @@
data-action="edit"
data-item="typeName; ?>"
data-id="referenceId; ?>"
+ data-title="referenceTitle; ?>"
data-language="referenceLanguage; ?>"
data-editurl="editUri); ?>">
@@ -60,6 +61,7 @@
data-action="targetAction; ?>"
data-item="typeName; ?>"
data-id="targetId; ?>"
+ data-title="targetTitle; ?>"
data-language="targetLanguage; ?>"
data-editurl="editUri); ?>">
diff --git a/administrator/components/com_associations/tmpl/associations/default.php b/administrator/components/com_associations/tmpl/associations/default.php
index 3281e01fdd57d..533c4c91a5469 100644
--- a/administrator/components/com_associations/tmpl/associations/default.php
+++ b/administrator/components/com_associations/tmpl/associations/default.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -94,29 +94,31 @@
diff --git a/administrator/components/com_associations/tmpl/associations/modal.php b/administrator/components/com_associations/tmpl/associations/modal.php
index 2b00b639ef45a..de4bbee63f0fc 100644
--- a/administrator/components/com_associations/tmpl/associations/modal.php
+++ b/administrator/components/com_associations/tmpl/associations/modal.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_associations
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Controller/BannerController.php b/administrator/components/com_banners/Controller/BannerController.php
index f970f019d8c3f..b3d5ae3fb4b29 100644
--- a/administrator/components/com_banners/Controller/BannerController.php
+++ b/administrator/components/com_banners/Controller/BannerController.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -11,10 +11,8 @@
defined('_JEXEC') or die;
-use Joomla\CMS\Language\Text;
use Joomla\CMS\MVC\Controller\FormController;
use Joomla\CMS\Router\Route;
-use Joomla\CMS\Session\Session;
use Joomla\Utilities\ArrayHelper;
/**
@@ -103,7 +101,7 @@ protected function allowEdit($data = array(), $key = 'id')
*/
public function batch($model = null)
{
- Session::checkToken() or jexit(Text::_('JINVALID_TOKEN'));
+ $this->checkToken();
// Set the model
$model = $this->getModel('Banner', '', array());
diff --git a/administrator/components/com_banners/Controller/BannersController.php b/administrator/components/com_banners/Controller/BannersController.php
index 7971f7d70d86f..96842eb1b6d3a 100644
--- a/administrator/components/com_banners/Controller/BannersController.php
+++ b/administrator/components/com_banners/Controller/BannersController.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -15,7 +15,6 @@
use Joomla\CMS\Language\Text;
use Joomla\CMS\MVC\Controller\AdminController;
use Joomla\CMS\MVC\Factory\MVCFactoryInterface;
-use Joomla\CMS\Session\Session;
use Joomla\Utilities\ArrayHelper;
/**
@@ -76,7 +75,7 @@ public function getModel($name = 'Banner', $prefix = 'Administrator', $config =
public function sticky_publish()
{
// Check for request forgeries.
- Session::checkToken() or jexit(Text::_('JINVALID_TOKEN'));
+ $this->checkToken();
$ids = $this->input->get('cid', array(), 'array');
$values = array('sticky_publish' => 1, 'sticky_unpublish' => 0);
diff --git a/administrator/components/com_banners/Controller/ClientController.php b/administrator/components/com_banners/Controller/ClientController.php
index 214e211c0a990..63203c2e9e3a7 100644
--- a/administrator/components/com_banners/Controller/ClientController.php
+++ b/administrator/components/com_banners/Controller/ClientController.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Controller/ClientsController.php b/administrator/components/com_banners/Controller/ClientsController.php
index 65321aa7d2e56..7b045ba4b4b42 100644
--- a/administrator/components/com_banners/Controller/ClientsController.php
+++ b/administrator/components/com_banners/Controller/ClientsController.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Controller/DisplayController.php b/administrator/components/com_banners/Controller/DisplayController.php
index a9457dec008d4..e338dbc6d56ac 100644
--- a/administrator/components/com_banners/Controller/DisplayController.php
+++ b/administrator/components/com_banners/Controller/DisplayController.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Controller/TracksController.php b/administrator/components/com_banners/Controller/TracksController.php
index 79ccb281d3e96..479073a1b8d6f 100644
--- a/administrator/components/com_banners/Controller/TracksController.php
+++ b/administrator/components/com_banners/Controller/TracksController.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -15,7 +15,6 @@
use Joomla\CMS\Factory;
use Joomla\CMS\Language\Text;
use Joomla\CMS\MVC\Controller\BaseController;
-use Joomla\CMS\Session\Session;
/**
* Tracks list controller class.
@@ -58,7 +57,7 @@ public function getModel($name = 'Tracks', $prefix = 'Administrator', $config =
public function delete()
{
// Check for request forgeries.
- Session::checkToken() or jexit(Text::_('JINVALID_TOKEN'));
+ $this->checkToken();
// Get the model.
/** @var \Joomla\Component\Banners\Administrator\Model\TracksModel $model */
diff --git a/administrator/components/com_banners/Extension/BannersComponent.php b/administrator/components/com_banners/Extension/BannersComponent.php
index 08bf8534db74a..ae4ea87412816 100644
--- a/administrator/components/com_banners/Extension/BannersComponent.php
+++ b/administrator/components/com_banners/Extension/BannersComponent.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Field/BannerclientField.php b/administrator/components/com_banners/Field/BannerclientField.php
index 92a3a4af4d993..222d081c1ef61 100644
--- a/administrator/components/com_banners/Field/BannerclientField.php
+++ b/administrator/components/com_banners/Field/BannerclientField.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -11,17 +11,16 @@
defined('JPATH_BASE') or die;
+use Joomla\CMS\Form\Field\ListField;
use Joomla\CMS\Form\FormHelper;
use Joomla\Component\Banners\Administrator\Helper\BannersHelper;
-FormHelper::loadFieldClass('list');
-
/**
* Bannerclient field.
*
* @since 1.6
*/
-class BannerclientField extends \JFormFieldList
+class BannerclientField extends ListField
{
/**
* The form field type.
diff --git a/administrator/components/com_banners/Field/ClicksField.php b/administrator/components/com_banners/Field/ClicksField.php
index ec4dacc0c09a4..671e6e57d2cd0 100644
--- a/administrator/components/com_banners/Field/ClicksField.php
+++ b/administrator/components/com_banners/Field/ClicksField.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Field/ImpmadeField.php b/administrator/components/com_banners/Field/ImpmadeField.php
index e8bcd3fcf4314..bf2c02f2441b5 100644
--- a/administrator/components/com_banners/Field/ImpmadeField.php
+++ b/administrator/components/com_banners/Field/ImpmadeField.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Field/ImptotalField.php b/administrator/components/com_banners/Field/ImptotalField.php
index 3f58f7101c215..9138ee670db8e 100644
--- a/administrator/components/com_banners/Field/ImptotalField.php
+++ b/administrator/components/com_banners/Field/ImptotalField.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Helper/BannersHelper.php b/administrator/components/com_banners/Helper/BannersHelper.php
index 6dd50ebef42a9..b6f2781958f30 100644
--- a/administrator/components/com_banners/Helper/BannersHelper.php
+++ b/administrator/components/com_banners/Helper/BannersHelper.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Model/BannerModel.php b/administrator/components/com_banners/Model/BannerModel.php
index 83c86cc92d45e..08b0d073d2a56 100644
--- a/administrator/components/com_banners/Model/BannerModel.php
+++ b/administrator/components/com_banners/Model/BannerModel.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -103,131 +103,6 @@ protected function batchClient($value, $pks, $contexts)
return true;
}
- /**
- * Batch copy items to a new category or current.
- *
- * @param integer $value The new category.
- * @param array $pks An array of row IDs.
- * @param array $contexts An array of item contexts.
- *
- * @return mixed An array of new IDs on success, boolean false on failure.
- *
- * @since 2.5
- */
- protected function batchCopy($value, $pks, $contexts)
- {
- $categoryId = (int) $value;
-
- /** @var \Joomla\Component\Banners\Administrator\Table\Banner $table */
- $table = $this->getTable();
- $newIds = array();
-
- // Check that the category exists
- if ($categoryId)
- {
- $categoryTable = Table::getInstance('Category');
-
- if (!$categoryTable->load($categoryId))
- {
- if ($error = $categoryTable->getError())
- {
- // Fatal error
- $this->setError($error);
-
- return false;
- }
-
- $this->setError(Text::_('JLIB_APPLICATION_ERROR_BATCH_MOVE_CATEGORY_NOT_FOUND'));
-
- return false;
- }
- }
-
- if (empty($categoryId))
- {
- $this->setError(Text::_('JLIB_APPLICATION_ERROR_BATCH_MOVE_CATEGORY_NOT_FOUND'));
-
- return false;
- }
-
- // Check that the user has create permission for the component
- if (!Factory::getUser()->authorise('core.create', 'com_banners.category.' . $categoryId))
- {
- $this->setError(Text::_('JLIB_APPLICATION_ERROR_BATCH_CANNOT_CREATE'));
-
- return false;
- }
-
- // Parent exists so we let's proceed
- while (!empty($pks))
- {
- // Pop the first ID off the stack
- $pk = array_shift($pks);
-
- $table->reset();
-
- // Check that the row actually exists
- if (!$table->load($pk))
- {
- if ($error = $table->getError())
- {
- // Fatal error
- $this->setError($error);
-
- return false;
- }
-
- // Not fatal error
- $this->setError(Text::sprintf('JLIB_APPLICATION_ERROR_BATCH_MOVE_ROW_NOT_FOUND', $pk));
- continue;
- }
-
- // Alter the title & alias
- $data = $this->generateNewTitle($categoryId, $table->alias, $table->name);
- $table->name = $data['0'];
- $table->alias = $data['1'];
-
- // Reset the ID because we are making a copy
- $table->id = 0;
-
- // New category ID
- $table->catid = $categoryId;
-
- // Unpublish because we are making a copy
- $table->state = 0;
-
- // TODO: Deal with ordering?
- // $table->ordering = 1;
-
- // Check the row.
- if (!$table->check())
- {
- $this->setError($table->getError());
-
- return false;
- }
-
- // Store the row.
- if (!$table->store())
- {
- $this->setError($table->getError());
-
- return false;
- }
-
- // Get the new item ID
- $newId = $table->get('id');
-
- // Add the new ID to the array
- $newIds[$pk] = $newId;
- }
-
- // Clean the cache
- $this->cleanCache();
-
- return $newIds;
- }
-
/**
* Method to test whether a record can be deleted.
*
@@ -255,6 +130,25 @@ protected function canDelete($record)
}
}
+ /**
+ * A method to preprocess generating a new title in order to allow tables with alternative names
+ * for alias and title to use the batch move and copy methods
+ *
+ * @param integer $categoryId The target category id
+ * @param Table $table The JTable within which move or copy is taking place
+ *
+ * @return void
+ *
+ * @since 3.8.12
+ */
+ public function generateTitle($categoryId, $table)
+ {
+ // Alter the title & alias
+ $data = $this->generateNewTitle($categoryId, $table->alias, $table->name);
+ $table->name = $data['0'];
+ $table->alias = $data['1'];
+ }
+
/**
* Method to test whether a record can have its state changed.
*
diff --git a/administrator/components/com_banners/Model/BannersModel.php b/administrator/components/com_banners/Model/BannersModel.php
index e9f204dfc371b..779559ff5bff1 100644
--- a/administrator/components/com_banners/Model/BannersModel.php
+++ b/administrator/components/com_banners/Model/BannersModel.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Model/ClientModel.php b/administrator/components/com_banners/Model/ClientModel.php
index 3a0b4c7f1d242..ee037e1c33169 100644
--- a/administrator/components/com_banners/Model/ClientModel.php
+++ b/administrator/components/com_banners/Model/ClientModel.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Model/ClientsModel.php b/administrator/components/com_banners/Model/ClientsModel.php
index db8a35c3731ff..b7080aca29392 100644
--- a/administrator/components/com_banners/Model/ClientsModel.php
+++ b/administrator/components/com_banners/Model/ClientsModel.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Model/DownloadModel.php b/administrator/components/com_banners/Model/DownloadModel.php
index 4d209160d5a7c..59bb80c86c223 100644
--- a/administrator/components/com_banners/Model/DownloadModel.php
+++ b/administrator/components/com_banners/Model/DownloadModel.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Model/TracksModel.php b/administrator/components/com_banners/Model/TracksModel.php
index 2005d3435a59e..e8ecb60134915 100644
--- a/administrator/components/com_banners/Model/TracksModel.php
+++ b/administrator/components/com_banners/Model/TracksModel.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace Joomla\Component\Banners\Administrator\Model;
diff --git a/administrator/components/com_banners/Service/Html/Banner.php b/administrator/components/com_banners/Service/Html/Banner.php
index f1cc73883da07..218074dd6475d 100644
--- a/administrator/components/com_banners/Service/Html/Banner.php
+++ b/administrator/components/com_banners/Service/Html/Banner.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Table/BannerTable.php b/administrator/components/com_banners/Table/BannerTable.php
index 5f791b51ba564..29447f02f7c43 100644
--- a/administrator/components/com_banners/Table/BannerTable.php
+++ b/administrator/components/com_banners/Table/BannerTable.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/Table/ClientTable.php b/administrator/components/com_banners/Table/ClientTable.php
index 152a60b9d88fc..e7c9a96feceac 100644
--- a/administrator/components/com_banners/Table/ClientTable.php
+++ b/administrator/components/com_banners/Table/ClientTable.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/View/Banner/HtmlView.php b/administrator/components/com_banners/View/Banner/HtmlView.php
index 1e106639c3f36..93b07000683b9 100644
--- a/administrator/components/com_banners/View/Banner/HtmlView.php
+++ b/administrator/components/com_banners/View/Banner/HtmlView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -97,7 +97,7 @@ protected function addToolbar()
// If not checked out, can save the item.
if (!$checkedOut && ($canDo->get('core.edit') || count($user->getAuthorisedCategories('com_banners', 'core.create')) > 0))
{
- $toolbarButtons[] = ['apply', 'banner.apply'];
+ ToolbarHelper::apply('banner.apply');
$toolbarButtons[] = ['save', 'banner.save'];
if ($canDo->get('core.create'))
diff --git a/administrator/components/com_banners/View/Banners/HtmlView.php b/administrator/components/com_banners/View/Banners/HtmlView.php
index 340d9145ac98c..0c8feef3e3024 100644
--- a/administrator/components/com_banners/View/Banners/HtmlView.php
+++ b/administrator/components/com_banners/View/Banners/HtmlView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -120,7 +120,7 @@ protected function addToolbar()
if ($canDo->get('core.edit.state') || ($this->state->get('filter.published') == -2 && $canDo->get('core.delete')))
{
- $dropdown = $toolbar->dropdownButton('status')
+ $dropdown = $toolbar->dropdownButton('status-group')
->text('JTOOLBAR_CHANGE_STATUS')
->toggleSplit(false)
->icon('fa fa-globe')
diff --git a/administrator/components/com_banners/View/Client/HtmlView.php b/administrator/components/com_banners/View/Client/HtmlView.php
index b758104cdc92f..c650e5db3345d 100644
--- a/administrator/components/com_banners/View/Client/HtmlView.php
+++ b/administrator/components/com_banners/View/Client/HtmlView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -104,7 +104,7 @@ protected function addToolbar()
// If not checked out, can save the item.
if (!$checkedOut && ($canDo->get('core.edit') || $canDo->get('core.create')))
{
- $toolbarButtons[] = ['apply', 'client.apply'];
+ ToolbarHelper::apply('client.apply');
$toolbarButtons[] = ['save', 'client.save'];
}
diff --git a/administrator/components/com_banners/View/Clients/HtmlView.php b/administrator/components/com_banners/View/Clients/HtmlView.php
index 2bde49b0a4db6..b84a8b623c3fa 100644
--- a/administrator/components/com_banners/View/Clients/HtmlView.php
+++ b/administrator/components/com_banners/View/Clients/HtmlView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -98,7 +98,7 @@ protected function addToolbar()
if ($canDo->get('core.edit.state') || $canDo->get('core.admin'))
{
- $dropdown = $toolbar->dropdownButton('status')
+ $dropdown = $toolbar->dropdownButton('status-group')
->text('JTOOLBAR_CHANGE_STATUS')
->toggleSplit(false)
->icon('fa fa-globe')
diff --git a/administrator/components/com_banners/View/Download/HtmlView.php b/administrator/components/com_banners/View/Download/HtmlView.php
index b727005dc0d62..1e2c36fb3e423 100644
--- a/administrator/components/com_banners/View/Download/HtmlView.php
+++ b/administrator/components/com_banners/View/Download/HtmlView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/View/Tracks/HtmlView.php b/administrator/components/com_banners/View/Tracks/HtmlView.php
index 40a0692bb740a..eb3ec223f24dd 100644
--- a/administrator/components/com_banners/View/Tracks/HtmlView.php
+++ b/administrator/components/com_banners/View/Tracks/HtmlView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/View/Tracks/RawView.php b/administrator/components/com_banners/View/Tracks/RawView.php
index fb18316ba5d4a..f229154af24a2 100644
--- a/administrator/components/com_banners/View/Tracks/RawView.php
+++ b/administrator/components/com_banners/View/Tracks/RawView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/banners.xml b/administrator/components/com_banners/banners.xml
index 7e07bbe50b655..d89c6d605aa2b 100644
--- a/administrator/components/com_banners/banners.xml
+++ b/administrator/components/com_banners/banners.xml
@@ -3,7 +3,7 @@
com_bannersJoomla! ProjectApril 2006
- (C) 2005 - 2018 Open Source Matters. All rights reserved.
+ (C) 2005 - 2019 Open Source Matters. All rights reserved.GNU General Public License version 2 or later; see LICENSE.txtadmin@joomla.orgwww.joomla.org
diff --git a/administrator/components/com_banners/helpers/banners.php b/administrator/components/com_banners/helpers/banners.php
index 443a949152a9c..a3a4308aa60ea 100644
--- a/administrator/components/com_banners/helpers/banners.php
+++ b/administrator/components/com_banners/helpers/banners.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/services/provider.php b/administrator/components/com_banners/services/provider.php
index 8df60fdd6e65a..66d911578cbad 100644
--- a/administrator/components/com_banners/services/provider.php
+++ b/administrator/components/com_banners/services/provider.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/tmpl/banner/edit.php b/administrator/components/com_banners/tmpl/banner/edit.php
index 59eeca131a9ed..a45813e861a5e 100644
--- a/administrator/components/com_banners/tmpl/banner/edit.php
+++ b/administrator/components/com_banners/tmpl/banner/edit.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/tmpl/banners/default.php b/administrator/components/com_banners/tmpl/banners/default.php
index 06dbe2d2817b5..7e5f99dc6015e 100644
--- a/administrator/components/com_banners/tmpl/banners/default.php
+++ b/administrator/components/com_banners/tmpl/banners/default.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/tmpl/banners/default_batch_body.php b/administrator/components/com_banners/tmpl/banners/default_batch_body.php
index 933f3210e85bb..0399a65c84dd6 100644
--- a/administrator/components/com_banners/tmpl/banners/default_batch_body.php
+++ b/administrator/components/com_banners/tmpl/banners/default_batch_body.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/tmpl/banners/default_batch_footer.php b/administrator/components/com_banners/tmpl/banners/default_batch_footer.php
index e988e71dcbc01..3c491481c34f5 100644
--- a/administrator/components/com_banners/tmpl/banners/default_batch_footer.php
+++ b/administrator/components/com_banners/tmpl/banners/default_batch_footer.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -12,9 +12,9 @@
use Joomla\CMS\Language\Text;
?>
-
+
-
+
diff --git a/administrator/components/com_banners/tmpl/client/edit.php b/administrator/components/com_banners/tmpl/client/edit.php
index 18c5d1234a855..a844c2b9074e2 100644
--- a/administrator/components/com_banners/tmpl/client/edit.php
+++ b/administrator/components/com_banners/tmpl/client/edit.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/tmpl/clients/default.php b/administrator/components/com_banners/tmpl/clients/default.php
index 2efe51251c5b6..5c7028bcb2912 100644
--- a/administrator/components/com_banners/tmpl/clients/default.php
+++ b/administrator/components/com_banners/tmpl/clients/default.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/tmpl/download/default.php b/administrator/components/com_banners/tmpl/download/default.php
index a72f377977424..a0e1c4cff1d17 100644
--- a/administrator/components/com_banners/tmpl/download/default.php
+++ b/administrator/components/com_banners/tmpl/download/default.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_banners/tmpl/tracks/default.php b/administrator/components/com_banners/tmpl/tracks/default.php
index 9f3073dcac15a..743a4363e8e86 100644
--- a/administrator/components/com_banners/tmpl/tracks/default.php
+++ b/administrator/components/com_banners/tmpl/tracks/default.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_banners
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_cache/Controller/DisplayController.php b/administrator/components/com_cache/Controller/DisplayController.php
index 7f9a7805533ee..07dd644e7d977 100644
--- a/administrator/components/com_cache/Controller/DisplayController.php
+++ b/administrator/components/com_cache/Controller/DisplayController.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_cache
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -13,7 +13,6 @@
use Joomla\CMS\Language\Text;
use Joomla\CMS\MVC\Controller\BaseController;
-use Joomla\CMS\Session\Session;
use Joomla\Component\Cache\Administrator\Helper\CacheHelper;
/**
@@ -63,9 +62,6 @@ public function display($cachable = false, $urlparams = false)
// Push document object into the view.
$view->document = $document;
- // Load the submenu.
- CacheHelper::addSubmenu($this->input->get('view', 'cache'));
-
$view->display();
}
}
@@ -78,7 +74,7 @@ public function display($cachable = false, $urlparams = false)
public function delete()
{
// Check for request forgeries
- Session::checkToken() or jexit(Text::_('JINVALID_TOKEN'));
+ $this->checkToken();
$cid = $this->input->post->get('cid', array(), 'array');
@@ -113,7 +109,7 @@ public function delete()
public function deleteAll()
{
// Check for request forgeries
- Session::checkToken() or jexit(Text::_('JINVALID_TOKEN'));
+ $this->checkToken();
$app = $this->app;
$model = $this->getModel('cache');
@@ -154,7 +150,7 @@ public function deleteAll()
public function purge()
{
// Check for request forgeries
- Session::checkToken() or jexit(Text::_('JINVALID_TOKEN'));
+ $this->checkToken();
if (!$this->getModel('cache')->purge())
{
diff --git a/administrator/components/com_cache/Helper/CacheHelper.php b/administrator/components/com_cache/Helper/CacheHelper.php
index 8a0f2a5795dcb..7966d034b3388 100644
--- a/administrator/components/com_cache/Helper/CacheHelper.php
+++ b/administrator/components/com_cache/Helper/CacheHelper.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_cache
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -20,32 +20,5 @@
*/
class CacheHelper
{
- /**
- * Configure the Linkbar.
- *
- * @param string $vName The name of the active view.
- *
- * @return void
- *
- * @since 1.6
- */
- public static function addSubmenu($vName)
- {
- \JHtmlSidebar::addEntry(
- Text::_('JGLOBAL_SUBMENU_CHECKIN'),
- 'index.php?option=com_checkin',
- $vName == 'com_checkin'
- );
- \JHtmlSidebar::addEntry(
- Text::_('JGLOBAL_SUBMENU_CLEAR_CACHE'),
- 'index.php?option=com_cache',
- $vName == 'cache'
- );
- \JHtmlSidebar::addEntry(
- Text::_('JGLOBAL_SUBMENU_PURGE_EXPIRED_CACHE'),
- 'index.php?option=com_cache&view=purge',
- $vName == 'purge'
- );
- }
}
diff --git a/administrator/components/com_cache/Model/CacheModel.php b/administrator/components/com_cache/Model/CacheModel.php
index 5ff19411dc931..33629413ea2ad 100644
--- a/administrator/components/com_cache/Model/CacheModel.php
+++ b/administrator/components/com_cache/Model/CacheModel.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_cache
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_cache/View/Cache/HtmlView.php b/administrator/components/com_cache/View/Cache/HtmlView.php
index 2f85028bbce9a..38329dab5696c 100644
--- a/administrator/components/com_cache/View/Cache/HtmlView.php
+++ b/administrator/components/com_cache/View/Cache/HtmlView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_cache
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -52,7 +52,6 @@ public function display($tpl = null)
}
$this->addToolbar();
- $this->sidebar = \JHtmlSidebar::render();
parent::display($tpl);
}
diff --git a/administrator/components/com_cache/View/Purge/HtmlView.php b/administrator/components/com_cache/View/Purge/HtmlView.php
index db854e08336e6..f6b640ce3e695 100644
--- a/administrator/components/com_cache/View/Purge/HtmlView.php
+++ b/administrator/components/com_cache/View/Purge/HtmlView.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_cache
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -33,7 +33,6 @@ class HtmlView extends BaseHtmlView
public function display($tpl = null)
{
$this->addToolbar();
- $this->sidebar = \JHtmlSidebar::render();
parent::display($tpl);
}
diff --git a/administrator/components/com_cache/cache.xml b/administrator/components/com_cache/cache.xml
index 1aa8d2c19ec2a..dddf8700843ba 100644
--- a/administrator/components/com_cache/cache.xml
+++ b/administrator/components/com_cache/cache.xml
@@ -3,7 +3,7 @@
com_cacheJoomla! ProjectApril 2006
- (C) 2005 - 2018 Open Source Matters. All rights reserved.
+ (C) 2005 - 2019 Open Source Matters. All rights reserved.GNU General Public License version 2 or later; see LICENSE.txtadmin@joomla.orgwww.joomla.org
diff --git a/administrator/components/com_cache/services/provider.php b/administrator/components/com_cache/services/provider.php
index 95e5944e92f6e..cd2e7baa1cf0c 100644
--- a/administrator/components/com_cache/services/provider.php
+++ b/administrator/components/com_cache/services/provider.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_cache
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
diff --git a/administrator/components/com_cache/tmpl/cache/default.php b/administrator/components/com_cache/tmpl/cache/default.php
index 33bd9198ed50b..169576262d66f 100644
--- a/administrator/components/com_cache/tmpl/cache/default.php
+++ b/administrator/components/com_cache/tmpl/cache/default.php
@@ -3,7 +3,7 @@
* @package Joomla.Administrator
* @subpackage com_cache
*
- * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved.
+ * @copyright Copyright (C) 2005 - 2019 Open Source Matters, Inc. All rights reserved.
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
@@ -21,10 +21,7 @@
?>