From 7ee41b1d323a5cc6595cf9ce93e3c78a583ff12b Mon Sep 17 00:00:00 2001 From: zero-24 Date: Sat, 12 May 2018 19:23:31 +0200 Subject: [PATCH 01/34] hiddenFieldsets & configFieldsets needs to be defined (#16856) * hiddenFieldsets & configFieldsets needs to be defined * use getter --- layouts/joomla/edit/params.php | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/layouts/joomla/edit/params.php b/layouts/joomla/edit/params.php index 041c01e29c059..d93b0864de0fc 100644 --- a/layouts/joomla/edit/params.php +++ b/layouts/joomla/edit/params.php @@ -23,17 +23,11 @@ $extraFields = $displayData->get('extra_fields') ?: array(); $tabName = $displayData->get('tab_name') ?: 'myTab'; -if (!empty($displayData->hiddenFieldsets)) -{ - // These are required to preserve data on save when fields are not displayed. - $hiddenFieldsets = $displayData->hiddenFieldsets ?: array(); -} +// These are required to preserve data on save when fields are not displayed. +$hiddenFieldsets = $displayData->get('hiddenFieldsets') ?: array(); -if (!empty($displayData->configFieldsets)) -{ - // These are required to configure showing and hiding fields in the editor. - $configFieldsets = $displayData->configFieldsets ?: array(); -} +// These are required to configure showing and hiding fields in the editor. +$configFieldsets = $displayData->get('configFieldsets') ?: array(); // Handle the hidden fieldsets when show_options is set false if (!$displayData->get('show_options', 1)) From f8e73449a03d952865a3fbb9da96b6aa1d44c9ff Mon Sep 17 00:00:00 2001 From: Sophist <3001893+Sophist-UK@users.noreply.github.com> Date: Sat, 12 May 2018 19:34:35 +0100 Subject: [PATCH 02/34] Fix subform repeat counter. (#19693) * Fix subform repeat counter. As normal rows should be zero indexed. When length === count === 0, first row should be 0. Note: PHP creates existing rows with zero index - so if min=1, you currently get row 0 on form load then row 2, 3 etc. as you add them. * Update unit tests * Additional test fixes. * Fix typo in comment. * Reminify subform-repeatable.js --- .../js/subform-repeatable-uncompressed.js | 9 ++++---- media/system/js/subform-repeatable.js | 3 +-- tests/javascript/subform-repeatable/spec.js | 22 +++++++++---------- 3 files changed, 16 insertions(+), 18 deletions(-) diff --git a/media/system/js/subform-repeatable-uncompressed.js b/media/system/js/subform-repeatable-uncompressed.js index 1db67997ba525..fb7d5dd0d8bfa 100644 --- a/media/system/js/subform-repeatable-uncompressed.js +++ b/media/system/js/subform-repeatable-uncompressed.js @@ -8,7 +8,7 @@ $.subformRepeatable = function(container, options){ this.$container = $(container); - // check if alredy exist + // check if already exist if(this.$container.data("subformRepeatable")){ return self; } @@ -144,14 +144,13 @@ // fix names ind id`s for field that in $row $.subformRepeatable.prototype.fixUniqueAttributes = function($row, count){ - this.lastRowNum++; var group = $row.attr('data-group'),// current group name basename = $row.attr('data-base-name'), // group base name, without count count = count || 0, - countnew = Math.max(this.lastRowNum, count + 1), - groupnew = basename + countnew; // new group name + countnew = Math.max(this.lastRowNum, count), + groupnew = basename + countnew; // new group name - this.lastRowNum = countnew; + this.lastRowNum = countnew + 1; $row.attr('data-group', groupnew); // Fix inputs that have a "name" attribute diff --git a/media/system/js/subform-repeatable.js b/media/system/js/subform-repeatable.js index 3890ea678c921..09bb5adc3f366 100644 --- a/media/system/js/subform-repeatable.js +++ b/media/system/js/subform-repeatable.js @@ -1,2 +1 @@ -!(function(e){"use strict";e.subformRepeatable=function(t,a){if(this.$container=e(t),this.$container.data("subformRepeatable"))return o;this.$container.data("subformRepeatable",o),this.options=e.extend({},e.subformRepeatable.defaults,a),this.template="",this.prepareTemplate(),this.$containerRows=this.options.rowsContainer?this.$container.find(this.options.rowsContainer):this.$container,this.lastRowNum=this.$containerRows.find(this.options.repeatableElement).length;var o=this;this.$container.on("click",this.options.btAdd,(function(t){t.preventDefault();var a=e(this).parents(o.options.repeatableElement);a.length||(a=null),o.addRow(a)})),this.$container.on("click",this.options.btRemove,(function(t){t.preventDefault();var a=e(this).parents(o.options.repeatableElement);o.removeRow(a)})),this.options.btMove&&this.$containerRows.sortable({items:this.options.repeatableElement,handle:this.options.btMove,tolerance:"pointer"}),this.$container.trigger("subform-ready")},e.subformRepeatable.prototype.prepareTemplate=function(){if(this.options.rowTemplateSelector){var t=this.$container.find(this.options.rowTemplateSelector)[0]||{};this.template=e.trim(t.text||t.textContent)}else{var a=this.$container.find(this.options.repeatableElement).get(0),o=e(a).clone();try{this.clearScripts(o)}catch(e){window.console&&console.log(e)}this.template=o.prop("outerHTML")}},e.subformRepeatable.prototype.addRow=function(t){var a=this.$containerRows.find(this.options.repeatableElement).length;if(a>=this.options.maximum)return null;var o=e.parseHTML(this.template);t?e(t).after(o):this.$containerRows.append(o);var r=e(o);r.attr("data-new","true"),this.fixUniqueAttributes(r,a);try{this.fixScripts(r)}catch(e){window.console&&console.log(e)}return this.$container.trigger("subform-row-add",r),r},e.subformRepeatable.prototype.removeRow=function(e){this.$containerRows.find(this.options.repeatableElement).length<=this.options.minimum||(this.$container.trigger("subform-row-remove",e),e.remove())},e.subformRepeatable.prototype.fixUniqueAttributes=function(t,a){this.lastRowNum++;var o=t.attr("data-group"),r=t.attr("data-base-name"),i=(a=a||0,Math.max(this.lastRowNum,a+1)),n=r+i;this.lastRowNum=i,t.attr("data-group",n);for(var s=t.find("[name]"),l={},p=0,f=s.length;p=this.options.maximum)return null;var a=w.parseHTML(this.template);e?w(e).after(a):this.$containerRows.append(a);var o=w(a);o.attr("data-new","true"),this.fixUniqueAttributes(o,t);try{this.fixScripts(o)}catch(e){window.console&&console.log(e)}return this.$container.trigger("subform-row-add",o),o},w.subformRepeatable.prototype.removeRow=function(e){this.$containerRows.find(this.options.repeatableElement).length<=this.options.minimum||(this.$container.trigger("subform-row-remove",e),e.remove())},w.subformRepeatable.prototype.fixUniqueAttributes=function(e,t){var a=e.attr("data-group"),o=e.attr("data-base-name"),r=(t=t||0,Math.max(this.lastRowNum,t)),i=o+r;this.lastRowNum=r+1,e.attr("data-group",i);for(var n=e.find("[name]"),s={},l=0,p=n.length;l Date: Sun, 13 May 2018 23:34:24 +0200 Subject: [PATCH 03/34] Fixing so that editors-xtd plugins works with com_ajax (#17939) * Fixing so that editors-xtd plugins works with com_ajax * Code formatting fix --- libraries/src/Plugin/PluginHelper.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/libraries/src/Plugin/PluginHelper.php b/libraries/src/Plugin/PluginHelper.php index 5059bcb7a5d31..48d4709ef5c83 100644 --- a/libraries/src/Plugin/PluginHelper.php +++ b/libraries/src/Plugin/PluginHelper.php @@ -257,7 +257,7 @@ protected static function import($plugin, $autocreate = true, \JEventDispatcher if ($autocreate) { - $className = 'Plg' . $plugin->type . $plugin->name; + $className = 'Plg' . str_replace('-', '', $plugin->type) . $plugin->name; if (class_exists($className)) { From 7f839e3746496cdcea3b217a3f229ce0d29c9c7e Mon Sep 17 00:00:00 2001 From: SharkyKZ Date: Wed, 16 May 2018 00:03:00 +0300 Subject: [PATCH 04/34] [Plugins] Add filters to manifest files. (#20410) --- plugins/authentication/gmail/gmail.xml | 3 +++ plugins/authentication/ldap/ldap.xml | 3 +++ plugins/content/emailcloak/emailcloak.xml | 1 + plugins/content/joomla/joomla.xml | 2 ++ plugins/content/pagebreak/pagebreak.xml | 5 ++++- plugins/content/pagenavigation/pagenavigation.xml | 3 +++ plugins/search/categories/categories.xml | 3 +++ plugins/search/contacts/contacts.xml | 3 +++ plugins/search/content/content.xml | 3 +++ plugins/search/newsfeeds/newsfeeds.xml | 3 +++ plugins/search/tags/tags.php | 2 +- plugins/search/tags/tags.xml | 2 ++ plugins/twofactorauth/totp/totp.xml | 1 + plugins/twofactorauth/yubikey/yubikey.xml | 1 + plugins/user/contactcreator/contactcreator.xml | 2 ++ 15 files changed, 35 insertions(+), 2 deletions(-) diff --git a/plugins/authentication/gmail/gmail.xml b/plugins/authentication/gmail/gmail.xml index 8fc5dbf49908e..46e78ad486090 100644 --- a/plugins/authentication/gmail/gmail.xml +++ b/plugins/authentication/gmail/gmail.xml @@ -25,6 +25,7 @@ label="PLG_GMAIL_FIELD_APPLYSUFFIX_LABEL" description="PLG_GMAIL_FIELD_APPLYSUFFIX_DESC" default="0" + filter="integer" > @@ -46,6 +47,7 @@ label="PLG_GMAIL_FIELD_VERIFYPEER_LABEL" description="PLG_GMAIL_FIELD_VERIFYPEER_DESC" default="1" + filter="integer" class="btn-group btn-group-yesno" > @@ -66,6 +68,7 @@ label="PLG_GMAIL_FIELD_BACKEND_LOGIN_LABEL" description="PLG_GMAIL_FIELD_BACKEND_LOGIN_DESC" default="0" + filter="integer" class="btn-group btn-group-yesno" > diff --git a/plugins/authentication/ldap/ldap.xml b/plugins/authentication/ldap/ldap.xml index facf4ed22aae8..32be857af52bb 100644 --- a/plugins/authentication/ldap/ldap.xml +++ b/plugins/authentication/ldap/ldap.xml @@ -47,6 +47,7 @@ label="PLG_LDAP_FIELD_V3_LABEL" description="PLG_LDAP_FIELD_V3_DESC" default="0" + filter="integer" class="btn-group btn-group-yesno" > @@ -59,6 +60,7 @@ label="PLG_LDAP_FIELD_NEGOCIATE_LABEL" description="PLG_LDAP_FIELD_NEGOCIATE_DESC" default="0" + filter="integer" class="btn-group btn-group-yesno" > @@ -71,6 +73,7 @@ label="PLG_LDAP_FIELD_REFERRALS_LABEL" description="PLG_LDAP_FIELD_REFERRALS_DESC" default="0" + filter="integer" class="btn-group btn-group-yesno" > diff --git a/plugins/content/emailcloak/emailcloak.xml b/plugins/content/emailcloak/emailcloak.xml index ac0ae63e27229..0e58e1dc3384d 100644 --- a/plugins/content/emailcloak/emailcloak.xml +++ b/plugins/content/emailcloak/emailcloak.xml @@ -25,6 +25,7 @@ label="PLG_CONTENT_EMAILCLOAK_MODE_LABEL" description="PLG_CONTENT_EMAILCLOAK_MODE_DESC" default="1" + filter="integer" > diff --git a/plugins/content/joomla/joomla.xml b/plugins/content/joomla/joomla.xml index f77f91a58a391..4e1ff78cca7a6 100644 --- a/plugins/content/joomla/joomla.xml +++ b/plugins/content/joomla/joomla.xml @@ -26,6 +26,7 @@ description="PLG_CONTENT_JOOMLA_FIELD_CHECK_CATEGORIES_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -38,6 +39,7 @@ description="PLG_CONTENT_JOOMLA_FIELD_EMAIL_NEW_FE_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > diff --git a/plugins/content/pagebreak/pagebreak.xml b/plugins/content/pagebreak/pagebreak.xml index 3361bb843584d..30a235e84e44b 100644 --- a/plugins/content/pagebreak/pagebreak.xml +++ b/plugins/content/pagebreak/pagebreak.xml @@ -27,6 +27,7 @@ description="PLG_CONTENT_PAGEBREAK_SITE_TITLE_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -39,6 +40,7 @@ description="PLG_CONTENT_PAGEBREAK_SITE_ARTICLEINDEX_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -49,7 +51,6 @@ type="text" label="PLG_CONTENT_PAGEBREAK_SITE_ARTICLEINDEXTEXT" description="PLG_CONTENT_PAGEBREAK_SITE_ARTICLEINDEXTEXT_DESC" - default="" showon="article_index:1" /> @@ -60,6 +61,7 @@ description="PLG_CONTENT_PAGEBREAK_TOC_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -72,6 +74,7 @@ description="PLG_CONTENT_PAGEBREAK_SHOW_ALL_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > diff --git a/plugins/content/pagenavigation/pagenavigation.xml b/plugins/content/pagenavigation/pagenavigation.xml index d550286c9e718..73e916368021a 100644 --- a/plugins/content/pagenavigation/pagenavigation.xml +++ b/plugins/content/pagenavigation/pagenavigation.xml @@ -27,6 +27,7 @@ label="PLG_PAGENAVIGATION_FIELD_POSITION_LABEL" description="PLG_PAGENAVIGATION_FIELD_POSITION_DESC" default="1" + filter="integer" > @@ -38,6 +39,7 @@ label="PLG_PAGENAVIGATION_FIELD_RELATIVE_LABEL" description="PLG_PAGENAVIGATION_FIELD_RELATIVE_DESC" default="1" + filter="integer" > @@ -49,6 +51,7 @@ label="PLG_PAGENAVIGATION_FIELD_DISPLAY_LABEL" description="PLG_PAGENAVIGATION_FIELD_DISPLAY_DESC" default="0" + filter="integer" > diff --git a/plugins/search/categories/categories.xml b/plugins/search/categories/categories.xml index 338cdc1b1bc63..a9b401932a0f8 100644 --- a/plugins/search/categories/categories.xml +++ b/plugins/search/categories/categories.xml @@ -26,6 +26,7 @@ label="JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL" description="JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC" default="50" + filter="integer" size="5" /> @@ -36,6 +37,7 @@ description="JFIELD_PLG_SEARCH_ALL_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > @@ -48,6 +50,7 @@ description="JFIELD_PLG_SEARCH_ARCHIVED_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > diff --git a/plugins/search/contacts/contacts.xml b/plugins/search/contacts/contacts.xml index 227c976dae759..a8d032885e73a 100644 --- a/plugins/search/contacts/contacts.xml +++ b/plugins/search/contacts/contacts.xml @@ -25,6 +25,7 @@ label="JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL" description="JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC" default="50" + filter="integer" size="5" /> @@ -35,6 +36,7 @@ description="JFIELD_PLG_SEARCH_ALL_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > @@ -47,6 +49,7 @@ description="JFIELD_PLG_SEARCH_ARCHIVED_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > diff --git a/plugins/search/content/content.xml b/plugins/search/content/content.xml index e952e2ac90c04..7c47015d60054 100644 --- a/plugins/search/content/content.xml +++ b/plugins/search/content/content.xml @@ -25,6 +25,7 @@ label="PLG_SEARCH_CONTENT_FIELD_SEARCHLIMIT_LABEL" description="PLG_SEARCH_CONTENT_FIELD_SEARCHLIMIT_DESC" default="50" + filter="integer" size="5" /> @@ -35,6 +36,7 @@ description="PLG_SEARCH_CONTENT_FIELD_CONTENT_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -47,6 +49,7 @@ description="PLG_SEARCH_CONTENT_FIELD_ARCHIVED_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > diff --git a/plugins/search/newsfeeds/newsfeeds.xml b/plugins/search/newsfeeds/newsfeeds.xml index f9f1400df16ad..5d14be6cafb20 100644 --- a/plugins/search/newsfeeds/newsfeeds.xml +++ b/plugins/search/newsfeeds/newsfeeds.xml @@ -25,6 +25,7 @@ label="JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL" description="JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC" default="50" + filter="integer" size="5" /> @@ -35,6 +36,7 @@ description="JFIELD_PLG_SEARCH_ALL_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > @@ -47,6 +49,7 @@ description="JFIELD_PLG_SEARCH_ARCHIVED_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > diff --git a/plugins/search/tags/tags.php b/plugins/search/tags/tags.php index 9fbf94be90b75..8faaf696ad71f 100644 --- a/plugins/search/tags/tags.php +++ b/plugins/search/tags/tags.php @@ -161,7 +161,7 @@ public function onContentSearch($text, $phrase = '', $ordering = '', $areas = nu } } - if (!$this->params->get('show_tagged_items')) + if (!$this->params->get('show_tagged_items', 0)) { return $rows; } diff --git a/plugins/search/tags/tags.xml b/plugins/search/tags/tags.xml index 72bb6c0819e16..34aa699d84df3 100644 --- a/plugins/search/tags/tags.xml +++ b/plugins/search/tags/tags.xml @@ -25,6 +25,7 @@ label="JFIELD_PLG_SEARCH_SEARCHLIMIT_LABEL" description="JFIELD_PLG_SEARCH_SEARCHLIMIT_DESC" default="50" + filter="integer" size="5" /> @@ -35,6 +36,7 @@ description="PLG_SEARCH_TAGS_FIELD_SHOW_TAGGED_ITEMS_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > diff --git a/plugins/twofactorauth/totp/totp.xml b/plugins/twofactorauth/totp/totp.xml index 96d5f36b38620..ce69e3baf22bb 100644 --- a/plugins/twofactorauth/totp/totp.xml +++ b/plugins/twofactorauth/totp/totp.xml @@ -27,6 +27,7 @@ label="PLG_TWOFACTORAUTH_TOTP_SECTION_LABEL" description="PLG_TWOFACTORAUTH_TOTP_SECTION_DESC" default="3" + filter="integer" class="btn-group" > diff --git a/plugins/twofactorauth/yubikey/yubikey.xml b/plugins/twofactorauth/yubikey/yubikey.xml index df9cd82acc5fb..9779e85b32b75 100644 --- a/plugins/twofactorauth/yubikey/yubikey.xml +++ b/plugins/twofactorauth/yubikey/yubikey.xml @@ -26,6 +26,7 @@ label="PLG_TWOFACTORAUTH_YUBIKEY_SECTION_LABEL" description="PLG_TWOFACTORAUTH_YUBIKEY_SECTION_DESC" default="3" + filter="integer" class="btn-group" > diff --git a/plugins/user/contactcreator/contactcreator.xml b/plugins/user/contactcreator/contactcreator.xml index b06a1e9ff9885..1b88124545cb5 100644 --- a/plugins/user/contactcreator/contactcreator.xml +++ b/plugins/user/contactcreator/contactcreator.xml @@ -33,6 +33,7 @@ label="JCATEGORY" description="PLG_CONTACTCREATOR_FIELD_CATEGORY_DESC" extension="com_contact" + filter="integer" /> From fe621e53f47366d431f678d1fa346cffbe51d862 Mon Sep 17 00:00:00 2001 From: infograf768 Date: Tue, 15 May 2018 22:56:56 +0000 Subject: [PATCH 05/34] URL Menu Item Type link should be required. (#20392) --- administrator/components/com_menus/views/item/tmpl/edit.php | 1 + 1 file changed, 1 insertion(+) diff --git a/administrator/components/com_menus/views/item/tmpl/edit.php b/administrator/components/com_menus/views/item/tmpl/edit.php index 789b0d38e9879..604de3a312f73 100644 --- a/administrator/components/com_menus/views/item/tmpl/edit.php +++ b/administrator/components/com_menus/views/item/tmpl/edit.php @@ -164,6 +164,7 @@ if ($this->item->type == 'url') { $this->form->setFieldAttribute('link', 'readonly', 'false'); + $this->form->setFieldAttribute('link', 'required', 'true'); } echo $this->form->renderField('link'); From 8028bc7ca1a768ce234fe3924c23caf5d702797b Mon Sep 17 00:00:00 2001 From: Elijah Madden Date: Wed, 16 May 2018 07:57:23 +0900 Subject: [PATCH 06/34] Fix up the protostar template.js (#20224) Don't use unnecessary closure, just use jQuery ready function. Use javsacript strict mode use event delegation where possible Make tooltips and button groups work properly with repeatable subforms --- templates/protostar/js/template.js | 96 ++++++++++++++++++------------ 1 file changed, 59 insertions(+), 37 deletions(-) diff --git a/templates/protostar/js/template.js b/templates/protostar/js/template.js index 8968a6b72e894..464acc894a57e 100644 --- a/templates/protostar/js/template.js +++ b/templates/protostar/js/template.js @@ -6,47 +6,69 @@ * @since 3.2 */ -(function($) -{ - $(document).ready(function() - { - $('*[rel=tooltip]').tooltip(); +jQuery(function($) { + "use strict"; - // Turn radios into btn-group - $('.radio.btn-group label').addClass('btn'); + $(document) + .on('click', ".btn-group label:not(.active)", function() { + var $label = $(this); + var $input = $('#' + $label.attr('for')); - $(".btn-group label:not(.active)").click(function() - { - var label = $(this); - var input = $('#' + label.attr('for')); - - if (!input.prop('checked')) { - label.closest('.btn-group').find("label").removeClass('active btn-success btn-danger btn-primary'); - if (input.val() == '') { - label.addClass('active btn-primary'); - } else if (input.val() == 0) { - label.addClass('active btn-danger'); - } else { - label.addClass('active btn-success'); - } - input.prop('checked', true); - input.trigger('change'); + if ($input.prop('checked')) { + return; } - }); - $(".btn-group input[checked=checked]").each(function() - { - if ($(this).val() == '') { - $("label[for=" + $(this).attr('id') + "]").addClass('active btn-primary'); - } else if ($(this).val() == 0) { - $("label[for=" + $(this).attr('id') + "]").addClass('active btn-danger'); - } else { - $("label[for=" + $(this).attr('id') + "]").addClass('active btn-success'); + + $label.closest('.btn-group').find("label").removeClass('active btn-success btn-danger btn-primary'); + + var btnClass = 'primary'; + + + if ($input.val() != '') + { + var reversed = $label.closest('.btn-group').hasClass('btn-group-reversed'); + btnClass = ($input.val() == 0 ? !reversed : reversed) ? 'danger' : 'success'; } - }); - - $('#back-top').on('click', function(e) { + + $label.addClass('active btn-' + btnClass); + $input.prop('checked', true).trigger('change'); + }) + .on('click', '#back-top', function (e) { e.preventDefault(); $("html, body").animate({scrollTop: 0}, 1000); + }) + .on('subform-row-add', initButtonGroup) + .on('subform-row-add', initTooltip); + + initButtonGroup(); + initTooltip(); + + // Called once on domready, again when a subform row is added + function initTooltip(event, container) + { + $(container || document).find('*[rel=tooltip]').tooltip(); + } + + // Called once on domready, again when a subform row is added + function initButtonGroup(event, container) + { + var $container = $(container || document); + + // Turn radios into btn-group + $container.find('.radio.btn-group label').addClass('btn'); + + $container.find(".btn-group input:checked").each(function() + { + var $input = $(this); + var $label = $('label[for=' + $input.attr('id') + ']'); + var btnClass = 'primary'; + + if ($input.val() != '') + { + var reversed = $input.parent().hasClass('btn-group-reversed'); + btnClass = ($input.val() == 0 ? !reversed : reversed) ? 'danger' : 'success'; + } + + $label.addClass('active btn-' + btnClass); }); - }) -})(jQuery); \ No newline at end of file + } +}); From ff7addcb8a7eb1622182614a4b001af7cfa9b1d3 Mon Sep 17 00:00:00 2001 From: Dmitry Sakharuk Date: Wed, 16 May 2018 01:59:59 +0300 Subject: [PATCH 07/34] Bootstrap alert compatible (#18909) * Bootstrap alert compatible Alert compatibility with new Bootstrap versions. * Strict comparison * Bootstrap alert compatible minified file Alert compatibility with new Bootstrap versions. --- media/system/js/core-uncompressed.js | 5 +++-- media/system/js/core.js | 17 +---------------- 2 files changed, 4 insertions(+), 18 deletions(-) diff --git a/media/system/js/core-uncompressed.js b/media/system/js/core-uncompressed.js index 1ce038a081ecf..55b90d270b044 100644 --- a/media/system/js/core-uncompressed.js +++ b/media/system/js/core-uncompressed.js @@ -322,8 +322,9 @@ Joomla.editors.instances = Joomla.editors.instances || { messagesBox = document.createElement( 'div' ); // Message class - alertClass = (type == 'notice') ? 'alert-info' : 'alert-' + type; - alertClass = (type == 'message') ? 'alert-success' : alertClass; + alertClass = (type === 'notice') ? 'alert-info' : 'alert-' + type; + alertClass = (type === 'message') ? 'alert-success' : alertClass; + alertClass = (type === 'error') ? 'alert-error alert-danger' : alertClass; messagesBox.className = 'alert ' + alertClass; diff --git a/media/system/js/core.js b/media/system/js/core.js index 7bbab0352719a..ba21634af2194 100644 --- a/media/system/js/core.js +++ b/media/system/js/core.js @@ -1,16 +1 @@ -Joomla=window.Joomla||{};Joomla.editors=Joomla.editors||{};Joomla.editors.instances=Joomla.editors.instances||{}; -(function(c,g){c.submitform=function(a,b,e){b||(b=g.getElementById("adminForm"));a&&(b.task.value=a);b.noValidate=!e;e?b.hasAttribute("novalidate")&&b.removeAttribute("novalidate"):b.setAttribute("novalidate","");a=g.createElement("input");a.style.display="none";a.type="submit";b.appendChild(a).click();b.removeChild(a)};c.submitbutton=function(a){c.submitform(a)};c.JText={strings:{},_:function(a,b){var e=c.getOptions("joomla.jtext");e&&(this.load(e),c.loadOptions({"joomla.jtext":null}));b=void 0=== -b?"":b;a=a.toUpperCase();return void 0!==this.strings[a]?this.strings[a]:b},load:function(a){for(var b in a)a.hasOwnProperty(b)&&(this.strings[b.toUpperCase()]=a[b]);return this}};c.optionsStorage=c.optionsStorage||null;c.getOptions=function(a,b){c.optionsStorage||c.loadOptions();return void 0!==c.optionsStorage[a]?c.optionsStorage[a]:b};c.loadOptions=function(a){if(!a){for(var b=g.querySelectorAll(".joomla-script-options.new"),e,d,h=0,f=0,m=b.length;f"+a.responseJSON.message+""]:a.statusText?[c.JText._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",a.status)+" "+a.statusText+""]:[c.JText._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",a.status)];return e};c.isChecked=function(a,b){"undefined"===typeof b&&(b=g.getElementById("adminForm"));b.boxchecked.value=a?parseInt(b.boxchecked.value)+1:parseInt(b.boxchecked.value)-1;if(b.elements["checkall-toggle"]){var e= -!0,d;var c=0;for(d=b.elements.length;c";d=e==d;var h;for(h=0;h"+k[2]+""}}a+="";f?f.innerHTML=a:g.writeln(a)};window.changeDynaList=function(a,b,e,d,c){a=g.adminForm[a];d=e==d;for(var f,h,k,l;a.firstChild;)a.removeChild(a.firstChild);f=0;for(h in b)if(b.hasOwnProperty(h)&&(k=b[h],k[0]==e)){l=new Option;l.value=k[1];l.text= -k[2];if(d&&c==l.value||!d&&0===f)l.selected=!0;a.options[f++]=l}a.length=f};window.radioGetCheckedValue=function(a){if(!a)return"";var b=a.length,e;if(void 0===b)return a.checked?a.value:"";for(e=0;e=0;s--)(l=t.createElement("div")).innerHTML=r[s],i.appendChild(l);c.appendChild(i)}},e.removeMessages=function(){for(var e=t.getElementById("system-message-container");e.firstChild;)e.removeChild(e.firstChild);e.style.display="none",e.offsetHeight,e.style.display=""},e.ajaxErrorsMessages=function(t,o,n){var r={};if("parsererror"===o){for(var i=t.responseText.trim(),a=[],s=i.length-1;s>=0;s--)a.unshift(["&#",i[s].charCodeAt(),";"].join(""));i=a.join(""),r.error=[e.JText._("JLIB_JS_AJAX_ERROR_PARSE").replace("%s",i)]}else"nocontent"===o?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_NO_CONTENT")]:"timeout"===o?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_TIMEOUT")]:"abort"===o?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_CONNECTION_ABORT")]:t.responseJSON&&t.responseJSON.message?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)+" "+t.responseJSON.message+""]:t.statusText?r.error=[e.JText._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)+" "+t.statusText+""]:r.error=[e.JText._("JLIB_JS_AJAX_ERROR_OTHER").replace("%s",t.status)];return r},e.isChecked=function(e,o){if(void 0===o&&(o=t.getElementById("adminForm")),o.boxchecked.value=e?parseInt(o.boxchecked.value)+1:parseInt(o.boxchecked.value)-1,o.elements["checkall-toggle"]){var n,r,i,a=!0;for(n=0,i=o.elements.length;n",u=n==r,m=0;for(l in o)o.hasOwnProperty(l)&&(d=o[l])[0]==n&&(s="",(u&&i==d[1]||!u&&0===m)&&(s='selected="selected"'),c+='",m++);c+="",a?a.innerHTML=c:t.writeln(c)},window.changeDynaList=function(e,o,n,r,i){for(var a,s,l,d,c=t.adminForm[e],u=n==r;c.firstChild;)c.removeChild(c.firstChild);for(s in a=0,o)o.hasOwnProperty(s)&&(l=o[s])[0]==n&&((d=new Option).value=l[1],d.text=l[2],(u&&i==d.value||!u&&0===a)&&(d.selected=!0),c.options[a++]=d);c.length=a},window.radioGetCheckedValue=function(e){if(!e)return"";var t,o=e.length;if(void 0===o)return e.checked?e.value:"";for(t=0;t-1?n.options[r].value:null},window.listItemTask=function(t,o){return e.listItemTask(t,o)},e.listItemTask=function(e,o){var n,r=t.adminForm,i=0,a=r[e];if(!a)return!1;for(;n=r["cb"+i];)n.checked=!1,i++;return a.checked=!0,r.boxchecked.value=1,window.submitform(o),!1},window.submitbutton=function(t){e.submitbutton(t)},window.submitform=function(t){e.submitform(t)},window.saveorder=function(e,t){window.checkAll_button(e,t)},window.checkAll_button=function(o,n){var r,i;for(n=n||"saveorder",r=0;r<=o;r++){if(!(i=t.adminForm["cb"+r]))return void alert("You cannot change the order of items, as an item in the list is `Checked Out`");i.checked=!0}e.submitform(n)},e.loadingLayer=function(o,n){if(o=o||"show",n=n||t.body,"load"===o){var r=(e.getOptions("system.paths")||{}).root||"",i=t.createElement("div");i.id="loading-logo",i.style.position="fixed",i.style.top="0",i.style.left="0",i.style.width="100%",i.style.height="100%",i.style.opacity="0.8",i.style.filter="alpha(opacity=80)",i.style.overflow="hidden",i.style["z-index"]="10000",i.style.display="none",i.style["background-color"]="#fff",i.style["background-image"]='url("'+r+'/media/jui/images/ajax-loader.gif")',i.style["background-position"]="center",i.style["background-repeat"]="no-repeat",i.style["background-attachment"]="fixed",n.appendChild(i)}else t.getElementById("loading-logo")||e.loadingLayer("load",n),t.getElementById("loading-logo").style.display="show"==o?"block":"none";return t.getElementById("loading-logo")},e.extend=function(e,t){for(var o in t)t.hasOwnProperty(o)&&(e[o]=t[o]);return e},e.request=function(t){(t=e.extend({url:"",method:"GET",data:null,perform:!0},t)).method=t.data?"POST":t.method.toUpperCase();try{var o=window.XMLHttpRequest?new XMLHttpRequest:new ActiveXObject("MSXML2.XMLHTTP.3.0");if(o.open(t.method,t.url,!0),o.setRequestHeader("X-Requested-With","XMLHttpRequest"),o.setRequestHeader("X-Ajax-Engine","Joomla!"),"POST"===t.method){var n=e.getOptions("csrf.token","");n&&o.setRequestHeader("X-CSRF-Token",n),t.headers&&t.headers["Content-Type"]||o.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}if(t.headers)for(var r in t.headers)t.headers.hasOwnProperty(r)&&o.setRequestHeader(r,t.headers[r]);if(o.onreadystatechange=function(){4===o.readyState&&(200===o.status?t.onSuccess&&t.onSuccess.call(window,o.responseText,o):t.onError&&t.onError.call(window,o))},t.perform){if(t.onBefore&&!1===t.onBefore.call(window,o))return o;o.send(t.data)}}catch(e){return window.console&&console.log(e),!1}return o}}(Joomla,document); \ No newline at end of file From b9501077085e5ea0c650c31ebb9ec9360a91360e Mon Sep 17 00:00:00 2001 From: Michael Babker Date: Thu, 17 May 2018 14:46:53 -0500 Subject: [PATCH 08/34] Add PHP 7.3 polyfill (#20441) --- .gitignore | 2 + composer.json | 1 + composer.lock | 59 +- libraries/vendor/composer/ClassLoader.php | 4 +- .../vendor/composer/autoload_classmap.php | 29 - libraries/vendor/composer/autoload_files.php | 1 + libraries/vendor/composer/autoload_psr4.php | 1 + libraries/vendor/composer/autoload_static.php | 35 +- libraries/vendor/composer/installed.json | 1335 +++++++++-------- .../vendor/symfony/polyfill-php73/LICENSE | 19 + .../symfony/polyfill-php73/bootstrap.php | 16 + 11 files changed, 801 insertions(+), 701 deletions(-) create mode 100644 libraries/vendor/symfony/polyfill-php73/LICENSE create mode 100644 libraries/vendor/symfony/polyfill-php73/bootstrap.php diff --git a/.gitignore b/.gitignore index 90be3a9720be0..2ce18fd0cee68 100644 --- a/.gitignore +++ b/.gitignore @@ -150,6 +150,8 @@ Desktop.ini /libraries/vendor/symfony/polyfill-php55/README.md /libraries/vendor/symfony/polyfill-php56/composer.json /libraries/vendor/symfony/polyfill-php56/README.md +/libraries/vendor/symfony/polyfill-php73/composer.json +/libraries/vendor/symfony/polyfill-php73/README.md /libraries/vendor/symfony/polyfill-util/composer.json /libraries/vendor/symfony/polyfill-util/README.md /libraries/vendor/symfony/polyfill-util/TestListener.php diff --git a/composer.json b/composer.json index 503caf354f01b..f0b559dfc2278 100644 --- a/composer.json +++ b/composer.json @@ -40,6 +40,7 @@ "phpmailer/phpmailer": "^5.2.20", "symfony/polyfill-php55": "~1.2", "symfony/polyfill-php56": "~1.0", + "symfony/polyfill-php73": "~1.8", "symfony/yaml": "2.*", "simplepie/simplepie": "1.3.1" }, diff --git a/composer.lock b/composer.lock index ac93d84690a64..46f6d9dff572f 100644 --- a/composer.lock +++ b/composer.lock @@ -1,10 +1,10 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "7df3275195712f2be8cdf526269d16a1", + "content-hash": "b9e71c95d44dc23403e9461ebafa348b", "packages": [ { "name": "ircmaxell/password-compat", @@ -1294,6 +1294,61 @@ ], "time": "2017-10-11T12:05:26+00:00" }, + { + "name": "symfony/polyfill-php73", + "version": "v1.8.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "9841f6fc047725a8286ea986018355bbc9200383" + }, + "dist": { + "type": "zip", + "url": "https://github.com/gitapi/repos/symfony/polyfill-php73/zipball/9841f6fc047725a8286ea986018355bbc9200383", + "reference": "9841f6fc047725a8286ea986018355bbc9200383", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.8-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Polyfill\\Php73\\": "" + }, + "files": [ + "bootstrap.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Nicolas Grekas", + "email": "p@tchwork.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" + } + ], + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2018-04-26T06:22:38+00:00" + }, { "name": "symfony/polyfill-util", "version": "v1.6.0", diff --git a/libraries/vendor/composer/ClassLoader.php b/libraries/vendor/composer/ClassLoader.php index 2c72175e7723a..dc02dfb114fb6 100644 --- a/libraries/vendor/composer/ClassLoader.php +++ b/libraries/vendor/composer/ClassLoader.php @@ -379,9 +379,9 @@ private function findFileWithExtension($class, $ext) $subPath = substr($subPath, 0, $lastPos); $search = $subPath.'\\'; if (isset($this->prefixDirsPsr4[$search])) { + $pathEnd = DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $lastPos + 1); foreach ($this->prefixDirsPsr4[$search] as $dir) { - $length = $this->prefixLengthsPsr4[$first][$search]; - if (file_exists($file = $dir . DIRECTORY_SEPARATOR . substr($logicalPathPsr4, $length))) { + if (file_exists($file = $dir . $pathEnd)) { return $file; } } diff --git a/libraries/vendor/composer/autoload_classmap.php b/libraries/vendor/composer/autoload_classmap.php index c00b678d60467..f6b5443aa5966 100644 --- a/libraries/vendor/composer/autoload_classmap.php +++ b/libraries/vendor/composer/autoload_classmap.php @@ -35,11 +35,6 @@ 'Joomla\\Data\\DataObject' => $vendorDir . '/joomla/data/src/DataObject.php', 'Joomla\\Data\\DataSet' => $vendorDir . '/joomla/data/src/DataSet.php', 'Joomla\\Data\\DumpableInterface' => $vendorDir . '/joomla/data/src/DumpableInterface.php', - 'Joomla\\Data\\Tests\\DataObjectTest' => $vendorDir . '/joomla/data/Tests/DataObjectTest.php', - 'Joomla\\Data\\Tests\\DataSetTest' => $vendorDir . '/joomla/data/Tests/DataSetTest.php', - 'Joomla\\Data\\Tests\\JDataBuran' => $vendorDir . '/joomla/data/Tests/Stubs/buran.php', - 'Joomla\\Data\\Tests\\JDataCapitaliser' => $vendorDir . '/joomla/data/Tests/Stubs/capitaliser.php', - 'Joomla\\Data\\Tests\\JDataVostok' => $vendorDir . '/joomla/data/Tests/Stubs/vostok.php', 'Joomla\\Event\\AbstractEvent' => $vendorDir . '/joomla/event/src/AbstractEvent.php', 'Joomla\\Event\\DelegatingDispatcher' => $vendorDir . '/joomla/event/src/DelegatingDispatcher.php', 'Joomla\\Event\\Dispatcher' => $vendorDir . '/joomla/event/src/Dispatcher.php', @@ -51,17 +46,6 @@ 'Joomla\\Event\\EventInterface' => $vendorDir . '/joomla/event/src/EventInterface.php', 'Joomla\\Event\\ListenersPriorityQueue' => $vendorDir . '/joomla/event/src/ListenersPriorityQueue.php', 'Joomla\\Event\\Priority' => $vendorDir . '/joomla/event/src/Priority.php', - 'Joomla\\Event\\Tests\\AbstractEventTest' => $vendorDir . '/joomla/event/Tests/AbstractEventTest.php', - 'Joomla\\Event\\Tests\\DelegatingDispatcherTest' => $vendorDir . '/joomla/event/Tests/DelegatingDispatcherTest.php', - 'Joomla\\Event\\Tests\\DispatcherTest' => $vendorDir . '/joomla/event/Tests/DispatcherTest.php', - 'Joomla\\Event\\Tests\\EventImmutableTest' => $vendorDir . '/joomla/event/Tests/EventImmutableTest.php', - 'Joomla\\Event\\Tests\\EventTest' => $vendorDir . '/joomla/event/Tests/EventTest.php', - 'Joomla\\Event\\Tests\\ListenersPriorityQueueTest' => $vendorDir . '/joomla/event/Tests/ListenersPriorityQueueTest.php', - 'Joomla\\Event\\Tests\\Stubs\\EmptyListener' => $vendorDir . '/joomla/event/Tests/Stubs/EmptyListener.php', - 'Joomla\\Event\\Tests\\Stubs\\FirstListener' => $vendorDir . '/joomla/event/Tests/Stubs/FirstListener.php', - 'Joomla\\Event\\Tests\\Stubs\\SecondListener' => $vendorDir . '/joomla/event/Tests/Stubs/SecondListener.php', - 'Joomla\\Event\\Tests\\Stubs\\SomethingListener' => $vendorDir . '/joomla/event/Tests/Stubs/SomethingListener.php', - 'Joomla\\Event\\Tests\\Stubs\\ThirdListener' => $vendorDir . '/joomla/event/Tests/Stubs/ThirdListener.php', 'Joomla\\Filesystem\\Buffer' => $vendorDir . '/joomla/filesystem/src/Buffer.php', 'Joomla\\Filesystem\\Clients\\FtpClient' => $vendorDir . '/joomla/filesystem/src/Clients/FtpClient.php', 'Joomla\\Filesystem\\Exception\\FilesystemException' => $vendorDir . '/joomla/filesystem/src/Exception/FilesystemException.php', @@ -111,22 +95,11 @@ 'Joomla\\Session\\Storage\\None' => $vendorDir . '/joomla/session/Joomla/Session/Storage/None.php', 'Joomla\\Session\\Storage\\Wincache' => $vendorDir . '/joomla/session/Joomla/Session/Storage/Wincache.php', 'Joomla\\Session\\Storage\\Xcache' => $vendorDir . '/joomla/session/Joomla/Session/Storage/Xcache.php', - 'Joomla\\Session\\Tests\\Handler\\ApcuHandlerTest' => $vendorDir . '/joomla/session/tests/Handler/ApcuHandlerTest.php', - 'Joomla\\Session\\Tests\\Handler\\DatabaseHandlerTest' => $vendorDir . '/joomla/session/tests/Handler/DatabaseHandlerTest.php', - 'Joomla\\Session\\Tests\\Handler\\FilesystemHandlerTest' => $vendorDir . '/joomla/session/tests/Handler/FilesystemHandlerTest.php', - 'Joomla\\Session\\Tests\\Handler\\MemcachedHandlerTest' => $vendorDir . '/joomla/session/tests/Handler/MemcachedHandlerTest.php', - 'Joomla\\Session\\Tests\\Handler\\NativeStorageTest' => $vendorDir . '/joomla/session/tests/Storage/NativeStorageTest.php', - 'Joomla\\Session\\Tests\\Handler\\RedisHandlerTest' => $vendorDir . '/joomla/session/tests/Handler/RedisHandlerTest.php', - 'Joomla\\Session\\Tests\\Handler\\WincacheHandlerTest' => $vendorDir . '/joomla/session/tests/Handler/WincacheHandlerTest.php', - 'Joomla\\Session\\Tests\\SessionTest' => $vendorDir . '/joomla/session/tests/SessionTest.php', 'Joomla\\String\\Inflector' => $vendorDir . '/joomla/string/src/Inflector.php', 'Joomla\\String\\Normalise' => $vendorDir . '/joomla/string/src/Normalise.php', 'Joomla\\String\\String' => $vendorDir . '/joomla/string/src/String.php', 'Joomla\\String\\StringHelper' => $vendorDir . '/joomla/string/src/StringHelper.php', 'Joomla\\Uri\\AbstractUri' => $vendorDir . '/joomla/uri/src/AbstractUri.php', - 'Joomla\\Uri\\Tests\\UriHelperTest' => $vendorDir . '/joomla/uri/Tests/UriHelperTest.php', - 'Joomla\\Uri\\Tests\\UriImmuteableTest' => $vendorDir . '/joomla/uri/Tests/UriImmutableTest.php', - 'Joomla\\Uri\\Tests\\UriTest' => $vendorDir . '/joomla/uri/Tests/UriTest.php', 'Joomla\\Uri\\Uri' => $vendorDir . '/joomla/uri/src/Uri.php', 'Joomla\\Uri\\UriHelper' => $vendorDir . '/joomla/uri/src/UriHelper.php', 'Joomla\\Uri\\UriImmutable' => $vendorDir . '/joomla/uri/src/UriImmutable.php', @@ -145,8 +118,6 @@ 'Psr\\Log\\LoggerInterface' => $vendorDir . '/psr/log/Psr/Log/LoggerInterface.php', 'Psr\\Log\\LoggerTrait' => $vendorDir . '/psr/log/Psr/Log/LoggerTrait.php', 'Psr\\Log\\NullLogger' => $vendorDir . '/psr/log/Psr/Log/NullLogger.php', - 'Psr\\Log\\Test\\DummyTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'Psr\\Log\\Test\\LoggerInterfaceTest' => $vendorDir . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', 'SMTP' => $vendorDir . '/phpmailer/phpmailer/class.smtp.php', 'SimplePie' => $vendorDir . '/simplepie/simplepie/library/SimplePie.php', 'SimplePie_Author' => $vendorDir . '/simplepie/simplepie/library/SimplePie/Author.php', diff --git a/libraries/vendor/composer/autoload_files.php b/libraries/vendor/composer/autoload_files.php index 2702ae9181742..711d3b54a61ae 100644 --- a/libraries/vendor/composer/autoload_files.php +++ b/libraries/vendor/composer/autoload_files.php @@ -26,4 +26,5 @@ 'edc6464955a37aa4d5fbf39d40fb6ee7' => $vendorDir . '/symfony/polyfill-php55/bootstrap.php', 'bd9634f2d41831496de0d3dfe4c94881' => $vendorDir . '/symfony/polyfill-php56/bootstrap.php', '3109cb1a231dcd04bee1f9f620d46975' => $vendorDir . '/paragonie/sodium_compat/autoload.php', + '0d59ee240a4cd96ddbb4ff164fccea4d' => $vendorDir . '/symfony/polyfill-php73/bootstrap.php', ); diff --git a/libraries/vendor/composer/autoload_psr4.php b/libraries/vendor/composer/autoload_psr4.php index 012682e2bf817..de3e6f5bd5e1e 100644 --- a/libraries/vendor/composer/autoload_psr4.php +++ b/libraries/vendor/composer/autoload_psr4.php @@ -7,6 +7,7 @@ return array( 'Symfony\\Polyfill\\Util\\' => array($vendorDir . '/symfony/polyfill-util'), + 'Symfony\\Polyfill\\Php73\\' => array($vendorDir . '/symfony/polyfill-php73'), 'Symfony\\Polyfill\\Php56\\' => array($vendorDir . '/symfony/polyfill-php56'), 'Symfony\\Polyfill\\Php55\\' => array($vendorDir . '/symfony/polyfill-php55'), 'Symfony\\Component\\Yaml\\' => array($vendorDir . '/symfony/yaml'), diff --git a/libraries/vendor/composer/autoload_static.php b/libraries/vendor/composer/autoload_static.php index 84a7666a66bdd..0b20391e6ab76 100644 --- a/libraries/vendor/composer/autoload_static.php +++ b/libraries/vendor/composer/autoload_static.php @@ -27,12 +27,14 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe 'edc6464955a37aa4d5fbf39d40fb6ee7' => __DIR__ . '/..' . '/symfony/polyfill-php55/bootstrap.php', 'bd9634f2d41831496de0d3dfe4c94881' => __DIR__ . '/..' . '/symfony/polyfill-php56/bootstrap.php', '3109cb1a231dcd04bee1f9f620d46975' => __DIR__ . '/..' . '/paragonie/sodium_compat/autoload.php', + '0d59ee240a4cd96ddbb4ff164fccea4d' => __DIR__ . '/..' . '/symfony/polyfill-php73/bootstrap.php', ); public static $prefixLengthsPsr4 = array ( 'S' => array ( 'Symfony\\Polyfill\\Util\\' => 22, + 'Symfony\\Polyfill\\Php73\\' => 23, 'Symfony\\Polyfill\\Php56\\' => 23, 'Symfony\\Polyfill\\Php55\\' => 23, 'Symfony\\Component\\Yaml\\' => 23, @@ -69,6 +71,10 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-util', ), + 'Symfony\\Polyfill\\Php73\\' => + array ( + 0 => __DIR__ . '/..' . '/symfony/polyfill-php73', + ), 'Symfony\\Polyfill\\Php56\\' => array ( 0 => __DIR__ . '/..' . '/symfony/polyfill-php56', @@ -206,11 +212,6 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe 'Joomla\\Data\\DataObject' => __DIR__ . '/..' . '/joomla/data/src/DataObject.php', 'Joomla\\Data\\DataSet' => __DIR__ . '/..' . '/joomla/data/src/DataSet.php', 'Joomla\\Data\\DumpableInterface' => __DIR__ . '/..' . '/joomla/data/src/DumpableInterface.php', - 'Joomla\\Data\\Tests\\DataObjectTest' => __DIR__ . '/..' . '/joomla/data/Tests/DataObjectTest.php', - 'Joomla\\Data\\Tests\\DataSetTest' => __DIR__ . '/..' . '/joomla/data/Tests/DataSetTest.php', - 'Joomla\\Data\\Tests\\JDataBuran' => __DIR__ . '/..' . '/joomla/data/Tests/Stubs/buran.php', - 'Joomla\\Data\\Tests\\JDataCapitaliser' => __DIR__ . '/..' . '/joomla/data/Tests/Stubs/capitaliser.php', - 'Joomla\\Data\\Tests\\JDataVostok' => __DIR__ . '/..' . '/joomla/data/Tests/Stubs/vostok.php', 'Joomla\\Event\\AbstractEvent' => __DIR__ . '/..' . '/joomla/event/src/AbstractEvent.php', 'Joomla\\Event\\DelegatingDispatcher' => __DIR__ . '/..' . '/joomla/event/src/DelegatingDispatcher.php', 'Joomla\\Event\\Dispatcher' => __DIR__ . '/..' . '/joomla/event/src/Dispatcher.php', @@ -222,17 +223,6 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe 'Joomla\\Event\\EventInterface' => __DIR__ . '/..' . '/joomla/event/src/EventInterface.php', 'Joomla\\Event\\ListenersPriorityQueue' => __DIR__ . '/..' . '/joomla/event/src/ListenersPriorityQueue.php', 'Joomla\\Event\\Priority' => __DIR__ . '/..' . '/joomla/event/src/Priority.php', - 'Joomla\\Event\\Tests\\AbstractEventTest' => __DIR__ . '/..' . '/joomla/event/Tests/AbstractEventTest.php', - 'Joomla\\Event\\Tests\\DelegatingDispatcherTest' => __DIR__ . '/..' . '/joomla/event/Tests/DelegatingDispatcherTest.php', - 'Joomla\\Event\\Tests\\DispatcherTest' => __DIR__ . '/..' . '/joomla/event/Tests/DispatcherTest.php', - 'Joomla\\Event\\Tests\\EventImmutableTest' => __DIR__ . '/..' . '/joomla/event/Tests/EventImmutableTest.php', - 'Joomla\\Event\\Tests\\EventTest' => __DIR__ . '/..' . '/joomla/event/Tests/EventTest.php', - 'Joomla\\Event\\Tests\\ListenersPriorityQueueTest' => __DIR__ . '/..' . '/joomla/event/Tests/ListenersPriorityQueueTest.php', - 'Joomla\\Event\\Tests\\Stubs\\EmptyListener' => __DIR__ . '/..' . '/joomla/event/Tests/Stubs/EmptyListener.php', - 'Joomla\\Event\\Tests\\Stubs\\FirstListener' => __DIR__ . '/..' . '/joomla/event/Tests/Stubs/FirstListener.php', - 'Joomla\\Event\\Tests\\Stubs\\SecondListener' => __DIR__ . '/..' . '/joomla/event/Tests/Stubs/SecondListener.php', - 'Joomla\\Event\\Tests\\Stubs\\SomethingListener' => __DIR__ . '/..' . '/joomla/event/Tests/Stubs/SomethingListener.php', - 'Joomla\\Event\\Tests\\Stubs\\ThirdListener' => __DIR__ . '/..' . '/joomla/event/Tests/Stubs/ThirdListener.php', 'Joomla\\Filesystem\\Buffer' => __DIR__ . '/..' . '/joomla/filesystem/src/Buffer.php', 'Joomla\\Filesystem\\Clients\\FtpClient' => __DIR__ . '/..' . '/joomla/filesystem/src/Clients/FtpClient.php', 'Joomla\\Filesystem\\Exception\\FilesystemException' => __DIR__ . '/..' . '/joomla/filesystem/src/Exception/FilesystemException.php', @@ -282,22 +272,11 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe 'Joomla\\Session\\Storage\\None' => __DIR__ . '/..' . '/joomla/session/Joomla/Session/Storage/None.php', 'Joomla\\Session\\Storage\\Wincache' => __DIR__ . '/..' . '/joomla/session/Joomla/Session/Storage/Wincache.php', 'Joomla\\Session\\Storage\\Xcache' => __DIR__ . '/..' . '/joomla/session/Joomla/Session/Storage/Xcache.php', - 'Joomla\\Session\\Tests\\Handler\\ApcuHandlerTest' => __DIR__ . '/..' . '/joomla/session/tests/Handler/ApcuHandlerTest.php', - 'Joomla\\Session\\Tests\\Handler\\DatabaseHandlerTest' => __DIR__ . '/..' . '/joomla/session/tests/Handler/DatabaseHandlerTest.php', - 'Joomla\\Session\\Tests\\Handler\\FilesystemHandlerTest' => __DIR__ . '/..' . '/joomla/session/tests/Handler/FilesystemHandlerTest.php', - 'Joomla\\Session\\Tests\\Handler\\MemcachedHandlerTest' => __DIR__ . '/..' . '/joomla/session/tests/Handler/MemcachedHandlerTest.php', - 'Joomla\\Session\\Tests\\Handler\\NativeStorageTest' => __DIR__ . '/..' . '/joomla/session/tests/Storage/NativeStorageTest.php', - 'Joomla\\Session\\Tests\\Handler\\RedisHandlerTest' => __DIR__ . '/..' . '/joomla/session/tests/Handler/RedisHandlerTest.php', - 'Joomla\\Session\\Tests\\Handler\\WincacheHandlerTest' => __DIR__ . '/..' . '/joomla/session/tests/Handler/WincacheHandlerTest.php', - 'Joomla\\Session\\Tests\\SessionTest' => __DIR__ . '/..' . '/joomla/session/tests/SessionTest.php', 'Joomla\\String\\Inflector' => __DIR__ . '/..' . '/joomla/string/src/Inflector.php', 'Joomla\\String\\Normalise' => __DIR__ . '/..' . '/joomla/string/src/Normalise.php', 'Joomla\\String\\String' => __DIR__ . '/..' . '/joomla/string/src/String.php', 'Joomla\\String\\StringHelper' => __DIR__ . '/..' . '/joomla/string/src/StringHelper.php', 'Joomla\\Uri\\AbstractUri' => __DIR__ . '/..' . '/joomla/uri/src/AbstractUri.php', - 'Joomla\\Uri\\Tests\\UriHelperTest' => __DIR__ . '/..' . '/joomla/uri/Tests/UriHelperTest.php', - 'Joomla\\Uri\\Tests\\UriImmuteableTest' => __DIR__ . '/..' . '/joomla/uri/Tests/UriImmutableTest.php', - 'Joomla\\Uri\\Tests\\UriTest' => __DIR__ . '/..' . '/joomla/uri/Tests/UriTest.php', 'Joomla\\Uri\\Uri' => __DIR__ . '/..' . '/joomla/uri/src/Uri.php', 'Joomla\\Uri\\UriHelper' => __DIR__ . '/..' . '/joomla/uri/src/UriHelper.php', 'Joomla\\Uri\\UriImmutable' => __DIR__ . '/..' . '/joomla/uri/src/UriImmutable.php', @@ -316,8 +295,6 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe 'Psr\\Log\\LoggerInterface' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerInterface.php', 'Psr\\Log\\LoggerTrait' => __DIR__ . '/..' . '/psr/log/Psr/Log/LoggerTrait.php', 'Psr\\Log\\NullLogger' => __DIR__ . '/..' . '/psr/log/Psr/Log/NullLogger.php', - 'Psr\\Log\\Test\\DummyTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', - 'Psr\\Log\\Test\\LoggerInterfaceTest' => __DIR__ . '/..' . '/psr/log/Psr/Log/Test/LoggerInterfaceTest.php', 'SMTP' => __DIR__ . '/..' . '/phpmailer/phpmailer/class.smtp.php', 'SimplePie' => __DIR__ . '/..' . '/simplepie/simplepie/library/SimplePie.php', 'SimplePie_Author' => __DIR__ . '/..' . '/simplepie/simplepie/library/SimplePie/Author.php', diff --git a/libraries/vendor/composer/installed.json b/libraries/vendor/composer/installed.json index 401f84f789f53..041086adbfe02 100644 --- a/libraries/vendor/composer/installed.json +++ b/libraries/vendor/composer/installed.json @@ -1,68 +1,82 @@ [ { - "name": "joomla/uri", - "version": "1.1.1", - "version_normalized": "1.1.1.0", + "name": "ircmaxell/password-compat", + "version": "v1.0.4", + "version_normalized": "1.0.4.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/uri.git", - "reference": "980e532e4235bb8f1ada15b28822abbeb171da3f" + "url": "https://github.com/ircmaxell/password_compat.git", + "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/uri/zipball/980e532e4235bb8f1ada15b28822abbeb171da3f", - "reference": "980e532e4235bb8f1ada15b28822abbeb171da3f", + "url": "https://github.com/gitapi/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c", + "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c", "shasum": "" }, - "require": { - "php": ">=5.3.10" + "require-dev": { + "phpunit/phpunit": "4.*" }, - "time": "2014-02-09T02:57:17+00:00", - "type": "joomla-package", + "time": "2014-11-20T16:49:30+00:00", + "type": "library", "installation-source": "dist", "autoload": { - "psr-4": { - "Joomla\\Uri\\": "src/", - "Joomla\\Uri\\Tests\\": "Tests/" - } + "files": [ + "lib/password.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "MIT" ], - "description": "Joomla Uri Package", - "homepage": "https://github.com/joomla-framework/uri", + "authors": [ + { + "name": "Anthony Ferrara", + "email": "ircmaxell@php.net", + "homepage": "http://blog.ircmaxell.com" + } + ], + "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash", + "homepage": "https://github.com/ircmaxell/password_compat", "keywords": [ - "framework", - "joomla", - "uri" + "hashing", + "password" ] }, { - "name": "joomla/input", - "version": "1.2.0", - "version_normalized": "1.2.0.0", + "name": "joomla/application", + "version": "1.8.1", + "version_normalized": "1.8.1.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/input.git", - "reference": "b6098276043e2d627221fe54d3c91232e6679d0f" + "url": "https://github.com/joomla-framework/application.git", + "reference": "4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/input/zipball/b6098276043e2d627221fe54d3c91232e6679d0f", - "reference": "b6098276043e2d627221fe54d3c91232e6679d0f", + "url": "https://github.com/gitapi/repos/joomla-framework/application/zipball/4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e", + "reference": "4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e", "shasum": "" }, "require": { - "joomla/filter": "~1.0", - "php": ">=5.3.10" + "joomla/input": "~1.2|~2.0", + "joomla/registry": "^1.4.5|~2.0", + "php": "^5.3.10|~7.0", + "psr/log": "~1.0" }, "require-dev": { - "joomla/test": "~1.0", - "phpunit/phpunit": "4.*", + "joomla/event": "~1.2|~2.0", + "joomla/session": "^1.2.1|~2.0", + "joomla/test": "~1.1", + "joomla/uri": "~1.1", + "phpunit/phpunit": "~4.8|>=5.0 <5.4", "squizlabs/php_codesniffer": "1.*" }, - "time": "2014-10-12T18:01:36+00:00", + "suggest": { + "joomla/session": "To use AbstractWebApplication with session support, install joomla/session", + "joomla/uri": "To use AbstractWebApplication, install joomla/uri" + }, + "time": "2017-07-14T12:54:12+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -72,64 +86,73 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Input\\": "src/", - "Joomla\\Input\\Tests\\": "Tests/" + "Joomla\\Application\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla Input Package", - "homepage": "https://github.com/joomla-framework/input", + "description": "Joomla Application Package", + "homepage": "https://github.com/joomla-framework/application", "keywords": [ + "application", "framework", - "input", "joomla" ] }, { - "name": "ircmaxell/password-compat", - "version": "v1.0.4", - "version_normalized": "1.0.4.0", + "name": "joomla/archive", + "version": "1.1.5", + "version_normalized": "1.1.5.0", "source": { "type": "git", - "url": "https://github.com/ircmaxell/password_compat.git", - "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c" + "url": "https://github.com/joomla-framework/archive.git", + "reference": "2b5d645804c6af7c363716ba1956929f8b9665d3" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/ircmaxell/password_compat/zipball/5c5cde8822a69545767f7c7f3058cb15ff84614c", - "reference": "5c5cde8822a69545767f7c7f3058cb15ff84614c", + "url": "https://github.com/gitapi/repos/joomla-framework/archive/zipball/2b5d645804c6af7c363716ba1956929f8b9665d3", + "reference": "2b5d645804c6af7c363716ba1956929f8b9665d3", "shasum": "" }, + "require": { + "joomla/filesystem": "~1.3|~2.0", + "php": "^5.3.10|~7.0" + }, "require-dev": { - "phpunit/phpunit": "4.*" + "joomla/test": "~1.0", + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", + "squizlabs/php_codesniffer": "1.*" + }, + "suggest": { + "ext-bz2": "To extract bzip2 compressed packages", + "ext-zip": "To extract zip compressed packages", + "ext-zlib": "To extract gzip or zip compressed packages" + }, + "time": "2017-06-12T11:32:11+00:00", + "type": "joomla-package", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } }, - "time": "2014-11-20T16:49:30+00:00", - "type": "library", "installation-source": "dist", "autoload": { - "files": [ - "lib/password.php" - ] + "psr-4": { + "Joomla\\Archive\\": "src/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" - ], - "authors": [ - { - "name": "Anthony Ferrara", - "email": "ircmaxell@php.net", - "homepage": "http://blog.ircmaxell.com" - } + "GPL-2.0+" ], - "description": "A compatibility library for the proposed simplified password hashing algorithm: https://wiki.php.net/rfc/password_hash", - "homepage": "https://github.com/ircmaxell/password_compat", + "description": "Joomla Archive Package", + "homepage": "https://github.com/joomla-framework/archive", "keywords": [ - "hashing", - "password" + "archive", + "framework", + "joomla" ] }, { @@ -172,47 +195,105 @@ ] }, { - "name": "leafo/lessphp", - "version": "v0.5.0", - "version_normalized": "0.5.0.0", + "name": "joomla/data", + "version": "1.2.0", + "version_normalized": "1.2.0.0", "source": { "type": "git", - "url": "https://github.com/leafo/lessphp.git", - "reference": "0f5a7f5545d2bcf4e9fad9a228c8ad89cc9aa283" + "url": "https://github.com/joomla-framework/data.git", + "reference": "57ee292ba23307a6a6059e69b7b19ca5b624ab80" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/leafo/lessphp/zipball/0f5a7f5545d2bcf4e9fad9a228c8ad89cc9aa283", - "reference": "0f5a7f5545d2bcf4e9fad9a228c8ad89cc9aa283", + "url": "https://github.com/gitapi/repos/joomla-framework/data/zipball/57ee292ba23307a6a6059e69b7b19ca5b624ab80", + "reference": "57ee292ba23307a6a6059e69b7b19ca5b624ab80", "shasum": "" }, - "time": "2014-11-24T18:39:20+00:00", - "type": "library", + "require": { + "joomla/compat": "~1.0", + "joomla/registry": "~1.0", + "php": ">=5.3.10|>=7.0" + }, + "require-dev": { + "joomla/test": "~1.0", + "phpunit/phpunit": "~4.8|~5.0", + "squizlabs/php_codesniffer": "1.*" + }, + "time": "2016-04-02T22:20:43+00:00", + "type": "joomla-package", "extra": { "branch-alias": { - "dev-master": "0.4.x-dev" + "dev-master": "1.x-dev" } }, "installation-source": "dist", "autoload": { - "classmap": [ - "lessc.inc.php" - ] + "psr-4": { + "Joomla\\Data\\": "src/", + "Joomla\\Data\\Tests\\": "Tests/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT", - "GPL-3.0" + "GPL-2.0+" ], - "authors": [ - { - "name": "Leaf Corcoran", - "email": "leafot@gmail.com", - "homepage": "http://leafo.net" + "description": "Joomla Data Package", + "homepage": "https://github.com/joomla-framework/data", + "keywords": [ + "data", + "framework", + "joomla" + ] + }, + { + "name": "joomla/di", + "version": "1.4.0", + "version_normalized": "1.4.0.0", + "source": { + "type": "git", + "url": "https://github.com/joomla-framework/di.git", + "reference": "756c6eb4554b9007f69da66cf488a05308251ed8" + }, + "dist": { + "type": "zip", + "url": "https://github.com/gitapi/repos/joomla-framework/di/zipball/756c6eb4554b9007f69da66cf488a05308251ed8", + "reference": "756c6eb4554b9007f69da66cf488a05308251ed8", + "shasum": "" + }, + "require": { + "php": "^5.3.10|~7.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", + "squizlabs/php_codesniffer": "1.*" + }, + "time": "2017-11-12T15:35:19+00:00", + "type": "joomla-package", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, + "installation-source": "dist", + "autoload": { + "psr-4": { + "Joomla\\DI\\": "src/" } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "GPL-2.0+" ], - "description": "lessphp is a compiler for LESS written in PHP.", - "homepage": "http://leafo.net/lessphp/" + "description": "Joomla DI Package", + "homepage": "https://github.com/joomla-framework/di", + "keywords": [ + "container", + "dependency injection", + "di", + "framework", + "ioc", + "joomla" + ] }, { "name": "joomla/event", @@ -263,87 +344,32 @@ ] }, { - "name": "simplepie/simplepie", + "name": "joomla/filesystem", "version": "1.3.1", "version_normalized": "1.3.1.0", "source": { "type": "git", - "url": "https://github.com/simplepie/simplepie.git", - "reference": "ce53709778bc1e2e4deda1651b66e5081398d5cc" - }, - "dist": { - "type": "zip", - "url": "https://github.com/gitapi/repos/simplepie/simplepie/zipball/ce53709778bc1e2e4deda1651b66e5081398d5cc", - "reference": "ce53709778bc1e2e4deda1651b66e5081398d5cc", - "shasum": "" - }, - "require": { - "php": ">=5.2.0" - }, - "time": "2012-10-30T17:54:03+00:00", - "type": "library", - "installation-source": "dist", - "autoload": { - "psr-0": { - "SimplePie": "library" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD-3-Clause" - ], - "authors": [ - { - "name": "Ryan Parman", - "homepage": "http://ryanparman.com/", - "role": "Creator, alumnus developer" - }, - { - "name": "Geoffrey Sneddon", - "homepage": "http://gsnedders.com/", - "role": "Alumnus developer" - }, - { - "name": "Ryan McCue", - "email": "me@ryanmccue.info", - "homepage": "http://ryanmccue.info/", - "role": "Developer" - } - ], - "description": "A simple Atom/RSS parsing library for PHP", - "homepage": "http://simplepie.org/", - "keywords": [ - "atom", - "feeds", - "rss" - ] - }, - { - "name": "joomla/data", - "version": "1.2.0", - "version_normalized": "1.2.0.0", - "source": { - "type": "git", - "url": "https://github.com/joomla-framework/data.git", - "reference": "57ee292ba23307a6a6059e69b7b19ca5b624ab80" + "url": "https://github.com/joomla-framework/filesystem.git", + "reference": "6e2840a82a3958cf8f23ae869e2292d812cfa5d3" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/data/zipball/57ee292ba23307a6a6059e69b7b19ca5b624ab80", - "reference": "57ee292ba23307a6a6059e69b7b19ca5b624ab80", + "url": "https://github.com/gitapi/repos/joomla-framework/filesystem/zipball/6e2840a82a3958cf8f23ae869e2292d812cfa5d3", + "reference": "6e2840a82a3958cf8f23ae869e2292d812cfa5d3", "shasum": "" }, "require": { - "joomla/compat": "~1.0", - "joomla/registry": "~1.0", - "php": ">=5.3.10|>=7.0" + "php": "^5.3.10|~7.0" }, "require-dev": { - "joomla/test": "~1.0", + "paragonie/random_compat": "~1.0|~2.0", "phpunit/phpunit": "~4.8|~5.0", "squizlabs/php_codesniffer": "1.*" }, - "time": "2016-04-02T22:20:43+00:00", + "suggest": { + "paragonie/random_compat": "Required to use Joomla\\Filesystem\\Path::isOwner()" + }, + "time": "2016-12-10T17:45:15+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -353,53 +379,49 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Data\\": "src/", - "Joomla\\Data\\Tests\\": "Tests/" + "Joomla\\Filesystem\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla Data Package", - "homepage": "https://github.com/joomla-framework/data", + "description": "Joomla Filesystem Package", + "homepage": "https://github.com/joomla/joomla-framework-filesystem", "keywords": [ - "data", + "filesystem", "framework", "joomla" ] }, { - "name": "joomla/registry", - "version": "1.5.2", - "version_normalized": "1.5.2.0", + "name": "joomla/filter", + "version": "1.3.3", + "version_normalized": "1.3.3.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/registry.git", - "reference": "bd3592c6f0554a72811df52aeaea98c7815f6e5a" + "url": "https://github.com/joomla-framework/filter.git", + "reference": "1ee770b83790c02d0fbcef77ad0647153e1faf74" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/registry/zipball/bd3592c6f0554a72811df52aeaea98c7815f6e5a", - "reference": "bd3592c6f0554a72811df52aeaea98c7815f6e5a", + "url": "https://github.com/gitapi/repos/joomla-framework/filter/zipball/1ee770b83790c02d0fbcef77ad0647153e1faf74", + "reference": "1ee770b83790c02d0fbcef77ad0647153e1faf74", "shasum": "" }, "require": { - "joomla/compat": "~1.0", - "joomla/utilities": "~1.0", - "php": ">=5.3.10|>=7.0", - "symfony/polyfill-php55": "~1.0" + "joomla/string": "~1.3|~2.0", + "php": "^5.3.10|~7.0" }, "require-dev": { - "joomla/test": "~1.0", - "phpunit/phpunit": "~4.8|~5.0", - "squizlabs/php_codesniffer": "1.*", - "symfony/yaml": "~2.0|~3.0" + "joomla/language": "~1.3", + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", + "squizlabs/php_codesniffer": "1.*" }, "suggest": { - "symfony/yaml": "Install symfony/yaml if you require YAML support." + "joomla/language": "Required only if you want to use `OutputFilter::stringURLSafe`." }, - "time": "2016-05-14T20:42:05+00:00", + "time": "2017-07-04T15:07:30+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -409,97 +431,96 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Registry\\": "src/" + "Joomla\\Filter\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla Registry Package", - "homepage": "https://github.com/joomla-framework/registry", + "description": "Joomla Filter Package", + "homepage": "https://github.com/joomla-framework/filter", "keywords": [ + "filter", "framework", - "joomla", - "registry" + "joomla" ] }, { - "name": "psr/log", - "version": "1.0.2", - "version_normalized": "1.0.2.0", + "name": "joomla/image", + "version": "1.4.0", + "version_normalized": "1.4.0.0", "source": { "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + "url": "https://github.com/joomla-framework/image.git", + "reference": "d5a76037add34f95e970e9d8c8a449feeb781286" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", - "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "url": "https://github.com/gitapi/repos/joomla-framework/image/zipball/d5a76037add34f95e970e9d8c8a449feeb781286", + "reference": "d5a76037add34f95e970e9d8c8a449feeb781286", "shasum": "" }, "require": { - "php": ">=5.3.0" + "ext-gd": "*", + "php": "^5.3.10|~7.0", + "psr/log": "~1.0" }, - "time": "2016-10-10T12:19:37+00:00", - "type": "library", + "require-dev": { + "joomla/test": "~1.0", + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", + "squizlabs/php_codesniffer": "1.*" + }, + "time": "2017-06-28T14:14:15+00:00", + "type": "joomla-package", "extra": { "branch-alias": { - "dev-master": "1.0.x-dev" + "dev-master": "1.x-dev" } }, "installation-source": "dist", "autoload": { "psr-4": { - "Psr\\Log\\": "Psr/Log/" + "Joomla\\Image\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" - ], - "authors": [ - { - "name": "PHP-FIG", - "homepage": "http://www.php-fig.org/" - } + "GPL-2.0+" ], - "description": "Common interface for logging libraries", - "homepage": "https://github.com/php-fig/log", + "description": "Joomla Image Package", + "homepage": "https://github.com/joomla-framework/image", "keywords": [ - "log", - "psr", - "psr-3" + "framework", + "image", + "joomla" ] }, { - "name": "joomla/string", - "version": "1.4.1", - "version_normalized": "1.4.1.0", + "name": "joomla/input", + "version": "1.2.0", + "version_normalized": "1.2.0.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/string.git", - "reference": "66363d317e6c020f30a70265c129281c77c43ca0" + "url": "https://github.com/joomla-framework/input.git", + "reference": "b6098276043e2d627221fe54d3c91232e6679d0f" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/string/zipball/66363d317e6c020f30a70265c129281c77c43ca0", - "reference": "66363d317e6c020f30a70265c129281c77c43ca0", + "url": "https://github.com/gitapi/repos/joomla-framework/input/zipball/b6098276043e2d627221fe54d3c91232e6679d0f", + "reference": "b6098276043e2d627221fe54d3c91232e6679d0f", "shasum": "" }, "require": { - "php": "^5.3.10|~7.0" + "joomla/filter": "~1.0", + "php": ">=5.3.10" }, "require-dev": { "joomla/test": "~1.0", - "phpunit/phpunit": "~4.8|~5.0", + "phpunit/phpunit": "4.*", "squizlabs/php_codesniffer": "1.*" }, - "suggest": { - "ext-mbstring": "For improved processing" - }, - "time": "2016-12-10T18:13:42+00:00", + "time": "2014-10-12T18:01:36+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -509,62 +530,51 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\String\\": "src/" - }, - "files": [ - "src/phputf8/utf8.php", - "src/phputf8/ord.php", - "src/phputf8/str_ireplace.php", - "src/phputf8/str_pad.php", - "src/phputf8/str_split.php", - "src/phputf8/strcasecmp.php", - "src/phputf8/strcspn.php", - "src/phputf8/stristr.php", - "src/phputf8/strrev.php", - "src/phputf8/strspn.php", - "src/phputf8/trim.php", - "src/phputf8/ucfirst.php", - "src/phputf8/ucwords.php", - "src/phputf8/utils/ascii.php", - "src/phputf8/utils/validation.php" - ] + "Joomla\\Input\\": "src/", + "Joomla\\Input\\Tests\\": "Tests/" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla String Package", - "homepage": "https://github.com/joomla-framework/string", + "description": "Joomla Input Package", + "homepage": "https://github.com/joomla-framework/input", "keywords": [ "framework", - "joomla", - "string" + "input", + "joomla" ] }, { - "name": "joomla/utilities", - "version": "1.4.1", - "version_normalized": "1.4.1.0", + "name": "joomla/ldap", + "version": "1.3.0", + "version_normalized": "1.3.0.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/utilities.git", - "reference": "8913ca02aad7b929e0d52d78fd5a6961070bdbc6" + "url": "https://github.com/joomla-framework/ldap.git", + "reference": "4dce2db6a3d6d2b8c7847651ad011bb3ed7ba978" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/utilities/zipball/8913ca02aad7b929e0d52d78fd5a6961070bdbc6", - "reference": "8913ca02aad7b929e0d52d78fd5a6961070bdbc6", + "url": "https://github.com/gitapi/repos/joomla-framework/ldap/zipball/4dce2db6a3d6d2b8c7847651ad011bb3ed7ba978", + "reference": "4dce2db6a3d6d2b8c7847651ad011bb3ed7ba978", "shasum": "" }, "require": { - "joomla/string": "~1.3", + "ext-ldap": "*", "php": "^5.3.10|~7.0" }, "require-dev": { - "phpunit/phpunit": "~4.8|~5.0", - "squizlabs/php_codesniffer": "1.*" + "joomla/registry": "^1.4.5|~2.0", + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", + "squizlabs/php_codesniffer": "1.*", + "symfony/polyfill-php56": "~1.0" }, - "time": "2016-12-10T17:09:33+00:00", + "suggest": { + "symfony/polyfill-php56": "If using PHP 5.5 or earlier to use ldap_escape() function" + }, + "time": "2017-10-21T15:41:55+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -574,150 +584,155 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Utilities\\": "src/" + "Joomla\\Ldap\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla Utilities Package", - "homepage": "https://github.com/joomla-framework/utilities", + "description": "Joomla LDAP Package", + "homepage": "https://github.com/joomla-framework/ldap", "keywords": [ "framework", "joomla", - "utilities" + "ldap" ] }, { - "name": "joomla/session", - "version": "1.3.3", - "version_normalized": "1.3.3.0", - "target-dir": "Joomla/Session", + "name": "joomla/registry", + "version": "1.5.2", + "version_normalized": "1.5.2.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/session.git", - "reference": "1fb5df818998305fa5d4eaf18e530a388e69edc0" + "url": "https://github.com/joomla-framework/registry.git", + "reference": "bd3592c6f0554a72811df52aeaea98c7815f6e5a" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/session/zipball/1fb5df818998305fa5d4eaf18e530a388e69edc0", - "reference": "1fb5df818998305fa5d4eaf18e530a388e69edc0", + "url": "https://github.com/gitapi/repos/joomla-framework/registry/zipball/bd3592c6f0554a72811df52aeaea98c7815f6e5a", + "reference": "bd3592c6f0554a72811df52aeaea98c7815f6e5a", "shasum": "" }, "require": { - "joomla/event": "~1.1", - "joomla/filter": "~1.0", - "paragonie/random_compat": "~1.0|~2.0", - "php": "^5.3.10|~7.0" + "joomla/compat": "~1.0", + "joomla/utilities": "~1.0", + "php": ">=5.3.10|>=7.0", + "symfony/polyfill-php55": "~1.0" }, "require-dev": { - "joomla/database": "~1.0", "joomla/test": "~1.0", - "phpunit/dbunit": "~1.3", "phpunit/phpunit": "~4.8|~5.0", - "squizlabs/php_codesniffer": "1.*" + "squizlabs/php_codesniffer": "1.*", + "symfony/yaml": "~2.0|~3.0" }, "suggest": { - "joomla/database": "Install joomla/database if you want to use Database session storage." + "symfony/yaml": "Install symfony/yaml if you require YAML support." }, - "time": "2016-12-21T21:08:20+00:00", + "time": "2016-05-14T20:42:05+00:00", "type": "joomla-package", + "extra": { + "branch-alias": { + "dev-master": "1.x-dev" + } + }, "installation-source": "dist", "autoload": { - "psr-0": { - "Joomla\\Session": "" + "psr-4": { + "Joomla\\Registry\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla Session Package", - "homepage": "https://github.com/joomla-framework/session", + "description": "Joomla Registry Package", + "homepage": "https://github.com/joomla-framework/registry", "keywords": [ "framework", "joomla", - "session" + "registry" ] }, { - "name": "paragonie/random_compat", - "version": "v1.4.2", - "version_normalized": "1.4.2.0", + "name": "joomla/session", + "version": "1.3.3", + "version_normalized": "1.3.3.0", + "target-dir": "Joomla/Session", "source": { "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "965cdeb01fdcab7653253aa81d40441d261f1e66" + "url": "https://github.com/joomla-framework/session.git", + "reference": "1fb5df818998305fa5d4eaf18e530a388e69edc0" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/paragonie/random_compat/zipball/965cdeb01fdcab7653253aa81d40441d261f1e66", - "reference": "965cdeb01fdcab7653253aa81d40441d261f1e66", + "url": "https://github.com/gitapi/repos/joomla-framework/session/zipball/1fb5df818998305fa5d4eaf18e530a388e69edc0", + "reference": "1fb5df818998305fa5d4eaf18e530a388e69edc0", "shasum": "" }, "require": { - "php": ">=5.2.0" + "joomla/event": "~1.1", + "joomla/filter": "~1.0", + "paragonie/random_compat": "~1.0|~2.0", + "php": "^5.3.10|~7.0" }, "require-dev": { - "phpunit/phpunit": "4.*|5.*" + "joomla/database": "~1.0", + "joomla/test": "~1.0", + "phpunit/dbunit": "~1.3", + "phpunit/phpunit": "~4.8|~5.0", + "squizlabs/php_codesniffer": "1.*" }, "suggest": { - "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + "joomla/database": "Install joomla/database if you want to use Database session storage." }, - "time": "2017-03-13T16:22:52+00:00", - "type": "library", + "time": "2016-12-21T21:08:20+00:00", + "type": "joomla-package", "installation-source": "dist", "autoload": { - "files": [ - "lib/random.php" - ] + "psr-0": { + "Joomla\\Session": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "MIT" - ], - "authors": [ - { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com", - "homepage": "https://paragonie.com" - } + "GPL-2.0+" ], - "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", + "description": "Joomla Session Package", + "homepage": "https://github.com/joomla-framework/session", "keywords": [ - "csprng", - "pseudorandom", - "random" + "framework", + "joomla", + "session" ] }, { - "name": "joomla/filesystem", - "version": "1.3.1", - "version_normalized": "1.3.1.0", + "name": "joomla/string", + "version": "1.4.1", + "version_normalized": "1.4.1.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/filesystem.git", - "reference": "6e2840a82a3958cf8f23ae869e2292d812cfa5d3" + "url": "https://github.com/joomla-framework/string.git", + "reference": "66363d317e6c020f30a70265c129281c77c43ca0" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/filesystem/zipball/6e2840a82a3958cf8f23ae869e2292d812cfa5d3", - "reference": "6e2840a82a3958cf8f23ae869e2292d812cfa5d3", + "url": "https://github.com/gitapi/repos/joomla-framework/string/zipball/66363d317e6c020f30a70265c129281c77c43ca0", + "reference": "66363d317e6c020f30a70265c129281c77c43ca0", "shasum": "" }, "require": { "php": "^5.3.10|~7.0" }, "require-dev": { - "paragonie/random_compat": "~1.0|~2.0", + "joomla/test": "~1.0", "phpunit/phpunit": "~4.8|~5.0", "squizlabs/php_codesniffer": "1.*" }, "suggest": { - "paragonie/random_compat": "Required to use Joomla\\Filesystem\\Path::isOwner()" + "ext-mbstring": "For improved processing" }, - "time": "2016-12-10T17:45:15+00:00", + "time": "2016-12-10T18:13:42+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -727,101 +742,101 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Filesystem\\": "src/" - } + "Joomla\\String\\": "src/" + }, + "files": [ + "src/phputf8/utf8.php", + "src/phputf8/ord.php", + "src/phputf8/str_ireplace.php", + "src/phputf8/str_pad.php", + "src/phputf8/str_split.php", + "src/phputf8/strcasecmp.php", + "src/phputf8/strcspn.php", + "src/phputf8/stristr.php", + "src/phputf8/strrev.php", + "src/phputf8/strspn.php", + "src/phputf8/trim.php", + "src/phputf8/ucfirst.php", + "src/phputf8/ucwords.php", + "src/phputf8/utils/ascii.php", + "src/phputf8/utils/validation.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla Filesystem Package", - "homepage": "https://github.com/joomla/joomla-framework-filesystem", + "description": "Joomla String Package", + "homepage": "https://github.com/joomla-framework/string", "keywords": [ - "filesystem", "framework", - "joomla" + "joomla", + "string" ] }, { - "name": "joomla/archive", - "version": "1.1.5", - "version_normalized": "1.1.5.0", + "name": "joomla/uri", + "version": "1.1.1", + "version_normalized": "1.1.1.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/archive.git", - "reference": "2b5d645804c6af7c363716ba1956929f8b9665d3" + "url": "https://github.com/joomla-framework/uri.git", + "reference": "980e532e4235bb8f1ada15b28822abbeb171da3f" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/archive/zipball/2b5d645804c6af7c363716ba1956929f8b9665d3", - "reference": "2b5d645804c6af7c363716ba1956929f8b9665d3", + "url": "https://github.com/gitapi/repos/joomla-framework/uri/zipball/980e532e4235bb8f1ada15b28822abbeb171da3f", + "reference": "980e532e4235bb8f1ada15b28822abbeb171da3f", "shasum": "" }, "require": { - "joomla/filesystem": "~1.3|~2.0", - "php": "^5.3.10|~7.0" - }, - "require-dev": { - "joomla/test": "~1.0", - "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", - "squizlabs/php_codesniffer": "1.*" - }, - "suggest": { - "ext-bz2": "To extract bzip2 compressed packages", - "ext-zip": "To extract zip compressed packages", - "ext-zlib": "To extract gzip or zip compressed packages" + "php": ">=5.3.10" }, - "time": "2017-06-12T11:32:11+00:00", + "time": "2014-02-09T02:57:17+00:00", "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Archive\\": "src/" + "Joomla\\Uri\\": "src/", + "Joomla\\Uri\\Tests\\": "Tests/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla Archive Package", - "homepage": "https://github.com/joomla-framework/archive", + "description": "Joomla Uri Package", + "homepage": "https://github.com/joomla-framework/uri", "keywords": [ - "archive", "framework", - "joomla" + "joomla", + "uri" ] }, { - "name": "joomla/image", - "version": "1.4.0", - "version_normalized": "1.4.0.0", + "name": "joomla/utilities", + "version": "1.4.1", + "version_normalized": "1.4.1.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/image.git", - "reference": "d5a76037add34f95e970e9d8c8a449feeb781286" + "url": "https://github.com/joomla-framework/utilities.git", + "reference": "8913ca02aad7b929e0d52d78fd5a6961070bdbc6" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/image/zipball/d5a76037add34f95e970e9d8c8a449feeb781286", - "reference": "d5a76037add34f95e970e9d8c8a449feeb781286", + "url": "https://github.com/gitapi/repos/joomla-framework/utilities/zipball/8913ca02aad7b929e0d52d78fd5a6961070bdbc6", + "reference": "8913ca02aad7b929e0d52d78fd5a6961070bdbc6", "shasum": "" }, "require": { - "ext-gd": "*", - "php": "^5.3.10|~7.0", - "psr/log": "~1.0" + "joomla/string": "~1.3", + "php": "^5.3.10|~7.0" }, "require-dev": { - "joomla/test": "~1.0", - "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", + "phpunit/phpunit": "~4.8|~5.0", "squizlabs/php_codesniffer": "1.*" }, - "time": "2017-06-28T14:14:15+00:00", + "time": "2016-12-10T17:09:33+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -831,265 +846,379 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Image\\": "src/" + "Joomla\\Utilities\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "GPL-2.0+" ], - "description": "Joomla Image Package", - "homepage": "https://github.com/joomla-framework/image", + "description": "Joomla Utilities Package", + "homepage": "https://github.com/joomla-framework/utilities", "keywords": [ "framework", - "image", - "joomla" + "joomla", + "utilities" ] }, { - "name": "joomla/filter", - "version": "1.3.3", - "version_normalized": "1.3.3.0", + "name": "leafo/lessphp", + "version": "v0.5.0", + "version_normalized": "0.5.0.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/filter.git", - "reference": "1ee770b83790c02d0fbcef77ad0647153e1faf74" + "url": "https://github.com/leafo/lessphp.git", + "reference": "0f5a7f5545d2bcf4e9fad9a228c8ad89cc9aa283" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/filter/zipball/1ee770b83790c02d0fbcef77ad0647153e1faf74", - "reference": "1ee770b83790c02d0fbcef77ad0647153e1faf74", + "url": "https://github.com/gitapi/repos/leafo/lessphp/zipball/0f5a7f5545d2bcf4e9fad9a228c8ad89cc9aa283", + "reference": "0f5a7f5545d2bcf4e9fad9a228c8ad89cc9aa283", "shasum": "" }, - "require": { - "joomla/string": "~1.3|~2.0", - "php": "^5.3.10|~7.0" - }, - "require-dev": { - "joomla/language": "~1.3", - "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", - "squizlabs/php_codesniffer": "1.*" - }, - "suggest": { - "joomla/language": "Required only if you want to use `OutputFilter::stringURLSafe`." - }, - "time": "2017-07-04T15:07:30+00:00", - "type": "joomla-package", + "time": "2014-11-24T18:39:20+00:00", + "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "0.4.x-dev" } }, "installation-source": "dist", "autoload": { - "psr-4": { - "Joomla\\Filter\\": "src/" + "classmap": [ + "lessc.inc.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT", + "GPL-3.0" + ], + "authors": [ + { + "name": "Leaf Corcoran", + "email": "leafot@gmail.com", + "homepage": "http://leafo.net" } + ], + "description": "lessphp is a compiler for LESS written in PHP.", + "homepage": "http://leafo.net/lessphp/" + }, + { + "name": "paragonie/random_compat", + "version": "v1.4.2", + "version_normalized": "1.4.2.0", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "965cdeb01fdcab7653253aa81d40441d261f1e66" + }, + "dist": { + "type": "zip", + "url": "https://github.com/gitapi/repos/paragonie/random_compat/zipball/965cdeb01fdcab7653253aa81d40441d261f1e66", + "reference": "965cdeb01fdcab7653253aa81d40441d261f1e66", + "shasum": "" + }, + "require": { + "php": ">=5.2.0" + }, + "require-dev": { + "phpunit/phpunit": "4.*|5.*" + }, + "suggest": { + "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes." + }, + "time": "2017-03-13T16:22:52+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "files": [ + "lib/random.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "MIT" ], - "description": "Joomla Filter Package", - "homepage": "https://github.com/joomla-framework/filter", + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com", + "homepage": "https://paragonie.com" + } + ], + "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7", "keywords": [ - "filter", - "framework", - "joomla" + "csprng", + "pseudorandom", + "random" ] }, { - "name": "joomla/application", - "version": "1.8.1", - "version_normalized": "1.8.1.0", + "name": "paragonie/sodium_compat", + "version": "v1.3.1", + "version_normalized": "1.3.1.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/application.git", - "reference": "4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e" + "url": "https://github.com/paragonie/sodium_compat.git", + "reference": "6b3a59ef127445564a00e261eb1e960b6292f494" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/application/zipball/4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e", - "reference": "4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e", + "url": "https://github.com/gitapi/repos/paragonie/sodium_compat/zipball/6b3a59ef127445564a00e261eb1e960b6292f494", + "reference": "6b3a59ef127445564a00e261eb1e960b6292f494", "shasum": "" }, "require": { - "joomla/input": "~1.2|~2.0", - "joomla/registry": "^1.4.5|~2.0", - "php": "^5.3.10|~7.0", - "psr/log": "~1.0" + "paragonie/random_compat": "^1|^2", + "php": "^5.2.4|^5.3|^5.4|^5.5|^5.6|^7" }, "require-dev": { - "joomla/event": "~1.2|~2.0", - "joomla/session": "^1.2.1|~2.0", - "joomla/test": "~1.1", - "joomla/uri": "~1.1", - "phpunit/phpunit": "~4.8|>=5.0 <5.4", - "squizlabs/php_codesniffer": "1.*" + "phpunit/phpunit": "^3|^4|^5" }, "suggest": { - "joomla/session": "To use AbstractWebApplication with session support, install joomla/session", - "joomla/uri": "To use AbstractWebApplication, install joomla/uri" - }, - "time": "2017-07-14T12:54:12+00:00", - "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } + "ext-libsodium": "Better performance, password hashing (Argon2i), secure memory management (memzero), and better security." }, + "time": "2017-09-29T21:27:52+00:00", + "type": "library", "installation-source": "dist", "autoload": { - "psr-4": { - "Joomla\\Application\\": "src/" - } + "files": [ + "autoload.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "ISC" ], - "description": "Joomla Application Package", - "homepage": "https://github.com/joomla-framework/application", + "authors": [ + { + "name": "Paragon Initiative Enterprises", + "email": "security@paragonie.com" + }, + { + "name": "Frank Denis", + "email": "jedisct1@pureftpd.org" + } + ], + "description": "Pure PHP implementation of libsodium; uses the PHP extension if it exists", "keywords": [ - "application", - "framework", - "joomla" + "Authentication", + "BLAKE2b", + "ChaCha20", + "ChaCha20-Poly1305", + "Chapoly", + "Curve25519", + "Ed25519", + "EdDSA", + "Edwards-curve Digital Signature Algorithm", + "Elliptic Curve Diffie-Hellman", + "Poly1305", + "Pure-PHP cryptography", + "RFC 7748", + "RFC 8032", + "Salpoly", + "Salsa20", + "X25519", + "XChaCha20-Poly1305", + "XSalsa20-Poly1305", + "Xchacha20", + "Xsalsa20", + "aead", + "cryptography", + "ecdh", + "elliptic curve", + "elliptic curve cryptography", + "encryption", + "libsodium", + "php", + "public-key cryptography", + "secret-key cryptography", + "side-channel resistant" ] }, { - "name": "joomla/ldap", - "version": "1.3.0", - "version_normalized": "1.3.0.0", + "name": "phpmailer/phpmailer", + "version": "v5.2.26", + "version_normalized": "5.2.26.0", "source": { "type": "git", - "url": "https://github.com/joomla-framework/ldap.git", - "reference": "4dce2db6a3d6d2b8c7847651ad011bb3ed7ba978" + "url": "https://github.com/PHPMailer/PHPMailer.git", + "reference": "70362997bda4376378be7d92d81e2200550923f7" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/ldap/zipball/4dce2db6a3d6d2b8c7847651ad011bb3ed7ba978", - "reference": "4dce2db6a3d6d2b8c7847651ad011bb3ed7ba978", + "url": "https://github.com/gitapi/repos/PHPMailer/PHPMailer/zipball/70362997bda4376378be7d92d81e2200550923f7", + "reference": "70362997bda4376378be7d92d81e2200550923f7", "shasum": "" }, "require": { - "ext-ldap": "*", - "php": "^5.3.10|~7.0" + "ext-ctype": "*", + "php": ">=5.0.0" }, "require-dev": { - "joomla/registry": "^1.4.5|~2.0", - "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", - "squizlabs/php_codesniffer": "1.*", - "symfony/polyfill-php56": "~1.0" + "doctrine/annotations": "1.2.*", + "jms/serializer": "0.16.*", + "phpdocumentor/phpdocumentor": "2.*", + "phpunit/phpunit": "4.8.*", + "symfony/debug": "2.8.*", + "symfony/filesystem": "2.8.*", + "symfony/translation": "2.8.*", + "symfony/yaml": "2.8.*", + "zendframework/zend-cache": "2.5.1", + "zendframework/zend-config": "2.5.1", + "zendframework/zend-eventmanager": "2.5.1", + "zendframework/zend-filter": "2.5.1", + "zendframework/zend-i18n": "2.5.1", + "zendframework/zend-json": "2.5.1", + "zendframework/zend-math": "2.5.1", + "zendframework/zend-serializer": "2.5.*", + "zendframework/zend-servicemanager": "2.5.*", + "zendframework/zend-stdlib": "2.5.1" }, "suggest": { - "symfony/polyfill-php56": "If using PHP 5.5 or earlier to use ldap_escape() function" + "league/oauth2-google": "Needed for Google XOAUTH2 authentication" }, - "time": "2017-10-21T15:41:55+00:00", - "type": "joomla-package", + "time": "2017-11-04T09:26:05+00:00", + "type": "library", + "installation-source": "dist", + "autoload": { + "classmap": [ + "class.phpmailer.php", + "class.phpmaileroauth.php", + "class.phpmaileroauthgoogle.php", + "class.smtp.php", + "class.pop3.php", + "extras/EasyPeasyICS.php", + "extras/ntlm_sasl_client.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "LGPL-2.1" + ], + "authors": [ + { + "name": "Jim Jagielski", + "email": "jimjag@gmail.com" + }, + { + "name": "Marcus Bointon", + "email": "phpmailer@synchromedia.co.uk" + }, + { + "name": "Andy Prevost", + "email": "codeworxtech@users.sourceforge.net" + }, + { + "name": "Brent R. Matzelle" + } + ], + "description": "PHPMailer is a full-featured email creation and transfer class for PHP" + }, + { + "name": "psr/log", + "version": "1.0.2", + "version_normalized": "1.0.2.0", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d" + }, + "dist": { + "type": "zip", + "url": "https://github.com/gitapi/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "time": "2016-10-10T12:19:37+00:00", + "type": "library", "extra": { "branch-alias": { - "dev-master": "1.x-dev" + "dev-master": "1.0.x-dev" } }, "installation-source": "dist", "autoload": { "psr-4": { - "Joomla\\Ldap\\": "src/" + "Psr\\Log\\": "Psr/Log/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "MIT" ], - "description": "Joomla LDAP Package", - "homepage": "https://github.com/joomla-framework/ldap", + "authors": [ + { + "name": "PHP-FIG", + "homepage": "http://www.php-fig.org/" + } + ], + "description": "Common interface for logging libraries", + "homepage": "https://github.com/php-fig/log", "keywords": [ - "framework", - "joomla", - "ldap" + "log", + "psr", + "psr-3" ] }, { - "name": "paragonie/sodium_compat", - "version": "v1.3.1", + "name": "simplepie/simplepie", + "version": "1.3.1", "version_normalized": "1.3.1.0", "source": { "type": "git", - "url": "https://github.com/paragonie/sodium_compat.git", - "reference": "6b3a59ef127445564a00e261eb1e960b6292f494" + "url": "https://github.com/simplepie/simplepie.git", + "reference": "ce53709778bc1e2e4deda1651b66e5081398d5cc" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/paragonie/sodium_compat/zipball/6b3a59ef127445564a00e261eb1e960b6292f494", - "reference": "6b3a59ef127445564a00e261eb1e960b6292f494", + "url": "https://github.com/gitapi/repos/simplepie/simplepie/zipball/ce53709778bc1e2e4deda1651b66e5081398d5cc", + "reference": "ce53709778bc1e2e4deda1651b66e5081398d5cc", "shasum": "" }, "require": { - "paragonie/random_compat": "^1|^2", - "php": "^5.2.4|^5.3|^5.4|^5.5|^5.6|^7" - }, - "require-dev": { - "phpunit/phpunit": "^3|^4|^5" - }, - "suggest": { - "ext-libsodium": "Better performance, password hashing (Argon2i), secure memory management (memzero), and better security." + "php": ">=5.2.0" }, - "time": "2017-09-29T21:27:52+00:00", + "time": "2012-10-30T17:54:03+00:00", "type": "library", "installation-source": "dist", "autoload": { - "files": [ - "autoload.php" - ] + "psr-0": { + "SimplePie": "library" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "ISC" + "BSD-3-Clause" ], "authors": [ { - "name": "Paragon Initiative Enterprises", - "email": "security@paragonie.com" + "name": "Ryan Parman", + "homepage": "http://ryanparman.com/", + "role": "Creator, alumnus developer" }, { - "name": "Frank Denis", - "email": "jedisct1@pureftpd.org" + "name": "Geoffrey Sneddon", + "homepage": "http://gsnedders.com/", + "role": "Alumnus developer" + }, + { + "name": "Ryan McCue", + "email": "me@ryanmccue.info", + "homepage": "http://ryanmccue.info/", + "role": "Developer" } ], - "description": "Pure PHP implementation of libsodium; uses the PHP extension if it exists", + "description": "A simple Atom/RSS parsing library for PHP", + "homepage": "http://simplepie.org/", "keywords": [ - "Authentication", - "BLAKE2b", - "ChaCha20", - "ChaCha20-Poly1305", - "Chapoly", - "Curve25519", - "Ed25519", - "EdDSA", - "Edwards-curve Digital Signature Algorithm", - "Elliptic Curve Diffie-Hellman", - "Poly1305", - "Pure-PHP cryptography", - "RFC 7748", - "RFC 8032", - "Salpoly", - "Salsa20", - "X25519", - "XChaCha20-Poly1305", - "XSalsa20-Poly1305", - "Xchacha20", - "Xsalsa20", - "aead", - "cryptography", - "ecdh", - "elliptic curve", - "elliptic curve cryptography", - "encryption", - "libsodium", - "php", - "public-key cryptography", - "secret-key cryptography", - "side-channel resistant" + "atom", + "feeds", + "rss" ] }, { @@ -1151,22 +1280,23 @@ ] }, { - "name": "symfony/polyfill-util", + "name": "symfony/polyfill-php56", "version": "v1.6.0", "version_normalized": "1.6.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-util.git", - "reference": "6e719200c8e540e0c0effeb31f96bdb344b94176" + "url": "https://github.com/symfony/polyfill-php56.git", + "reference": "265fc96795492430762c29be291a371494ba3a5b" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/symfony/polyfill-util/zipball/6e719200c8e540e0c0effeb31f96bdb344b94176", - "reference": "6e719200c8e540e0c0effeb31f96bdb344b94176", + "url": "https://github.com/gitapi/repos/symfony/polyfill-php56/zipball/265fc96795492430762c29be291a371494ba3a5b", + "reference": "265fc96795492430762c29be291a371494ba3a5b", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.3", + "symfony/polyfill-util": "~1.0" }, "time": "2017-10-11T12:05:26+00:00", "type": "library", @@ -1178,8 +1308,11 @@ "installation-source": "dist", "autoload": { "psr-4": { - "Symfony\\Polyfill\\Util\\": "" - } + "Symfony\\Polyfill\\Php56\\": "" + }, + "files": [ + "bootstrap.php" + ] }, "notification-url": "https://packagist.org/downloads/", "license": [ @@ -1195,45 +1328,44 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony utilities for portability of PHP codes", + "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ - "compat", "compatibility", "polyfill", + "portable", "shim" ] }, { - "name": "symfony/polyfill-php56", - "version": "v1.6.0", - "version_normalized": "1.6.0.0", + "name": "symfony/polyfill-php73", + "version": "v1.8.0", + "version_normalized": "1.8.0.0", "source": { "type": "git", - "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "265fc96795492430762c29be291a371494ba3a5b" + "url": "https://github.com/symfony/polyfill-php73.git", + "reference": "9841f6fc047725a8286ea986018355bbc9200383" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/symfony/polyfill-php56/zipball/265fc96795492430762c29be291a371494ba3a5b", - "reference": "265fc96795492430762c29be291a371494ba3a5b", + "url": "https://github.com/gitapi/repos/symfony/polyfill-php73/zipball/9841f6fc047725a8286ea986018355bbc9200383", + "reference": "9841f6fc047725a8286ea986018355bbc9200383", "shasum": "" }, "require": { - "php": ">=5.3.3", - "symfony/polyfill-util": "~1.0" + "php": ">=5.3.3" }, - "time": "2017-10-11T12:05:26+00:00", + "time": "2018-04-26T06:22:38+00:00", "type": "library", "extra": { "branch-alias": { - "dev-master": "1.6-dev" + "dev-master": "1.8-dev" } }, "installation-source": "dist", "autoload": { "psr-4": { - "Symfony\\Polyfill\\Php56\\": "" + "Symfony\\Polyfill\\Php73\\": "" }, "files": [ "bootstrap.php" @@ -1253,7 +1385,7 @@ "homepage": "https://symfony.com/contributors" } ], - "description": "Symfony polyfill backporting some PHP 5.6+ features to lower PHP versions", + "description": "Symfony polyfill backporting some PHP 7.3+ features to lower PHP versions", "homepage": "https://symfony.com", "keywords": [ "compatibility", @@ -1263,83 +1395,58 @@ ] }, { - "name": "phpmailer/phpmailer", - "version": "v5.2.26", - "version_normalized": "5.2.26.0", + "name": "symfony/polyfill-util", + "version": "v1.6.0", + "version_normalized": "1.6.0.0", "source": { "type": "git", - "url": "https://github.com/PHPMailer/PHPMailer.git", - "reference": "70362997bda4376378be7d92d81e2200550923f7" + "url": "https://github.com/symfony/polyfill-util.git", + "reference": "6e719200c8e540e0c0effeb31f96bdb344b94176" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/PHPMailer/PHPMailer/zipball/70362997bda4376378be7d92d81e2200550923f7", - "reference": "70362997bda4376378be7d92d81e2200550923f7", + "url": "https://github.com/gitapi/repos/symfony/polyfill-util/zipball/6e719200c8e540e0c0effeb31f96bdb344b94176", + "reference": "6e719200c8e540e0c0effeb31f96bdb344b94176", "shasum": "" }, "require": { - "ext-ctype": "*", - "php": ">=5.0.0" - }, - "require-dev": { - "doctrine/annotations": "1.2.*", - "jms/serializer": "0.16.*", - "phpdocumentor/phpdocumentor": "2.*", - "phpunit/phpunit": "4.8.*", - "symfony/debug": "2.8.*", - "symfony/filesystem": "2.8.*", - "symfony/translation": "2.8.*", - "symfony/yaml": "2.8.*", - "zendframework/zend-cache": "2.5.1", - "zendframework/zend-config": "2.5.1", - "zendframework/zend-eventmanager": "2.5.1", - "zendframework/zend-filter": "2.5.1", - "zendframework/zend-i18n": "2.5.1", - "zendframework/zend-json": "2.5.1", - "zendframework/zend-math": "2.5.1", - "zendframework/zend-serializer": "2.5.*", - "zendframework/zend-servicemanager": "2.5.*", - "zendframework/zend-stdlib": "2.5.1" - }, - "suggest": { - "league/oauth2-google": "Needed for Google XOAUTH2 authentication" + "php": ">=5.3.3" }, - "time": "2017-11-04T09:26:05+00:00", + "time": "2017-10-11T12:05:26+00:00", "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.6-dev" + } + }, "installation-source": "dist", "autoload": { - "classmap": [ - "class.phpmailer.php", - "class.phpmaileroauth.php", - "class.phpmaileroauthgoogle.php", - "class.smtp.php", - "class.pop3.php", - "extras/EasyPeasyICS.php", - "extras/ntlm_sasl_client.php" - ] + "psr-4": { + "Symfony\\Polyfill\\Util\\": "" + } }, "notification-url": "https://packagist.org/downloads/", "license": [ - "LGPL-2.1" + "MIT" ], "authors": [ { - "name": "Jim Jagielski", - "email": "jimjag@gmail.com" - }, - { - "name": "Marcus Bointon", - "email": "phpmailer@synchromedia.co.uk" - }, - { - "name": "Andy Prevost", - "email": "codeworxtech@users.sourceforge.net" + "name": "Nicolas Grekas", + "email": "p@tchwork.com" }, { - "name": "Brent R. Matzelle" + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], - "description": "PHPMailer is a full-featured email creation and transfer class for PHP" + "description": "Symfony utilities for portability of PHP codes", + "homepage": "https://symfony.com", + "keywords": [ + "compat", + "compatibility", + "polyfill", + "shim" + ] }, { "name": "symfony/yaml", @@ -1391,55 +1498,5 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com" - }, - { - "name": "joomla/di", - "version": "1.4.0", - "version_normalized": "1.4.0.0", - "source": { - "type": "git", - "url": "https://github.com/joomla-framework/di.git", - "reference": "756c6eb4554b9007f69da66cf488a05308251ed8" - }, - "dist": { - "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/di/zipball/756c6eb4554b9007f69da66cf488a05308251ed8", - "reference": "756c6eb4554b9007f69da66cf488a05308251ed8", - "shasum": "" - }, - "require": { - "php": "^5.3.10|~7.0" - }, - "require-dev": { - "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", - "squizlabs/php_codesniffer": "1.*" - }, - "time": "2017-11-12T15:35:19+00:00", - "type": "joomla-package", - "extra": { - "branch-alias": { - "dev-master": "1.x-dev" - } - }, - "installation-source": "dist", - "autoload": { - "psr-4": { - "Joomla\\DI\\": "src/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "GPL-2.0+" - ], - "description": "Joomla DI Package", - "homepage": "https://github.com/joomla-framework/di", - "keywords": [ - "container", - "dependency injection", - "di", - "framework", - "ioc", - "joomla" - ] } ] diff --git a/libraries/vendor/symfony/polyfill-php73/LICENSE b/libraries/vendor/symfony/polyfill-php73/LICENSE new file mode 100644 index 0000000000000..ad399a798d6d2 --- /dev/null +++ b/libraries/vendor/symfony/polyfill-php73/LICENSE @@ -0,0 +1,19 @@ +Copyright (c) 2018 Fabien Potencier + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is furnished +to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all +copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. diff --git a/libraries/vendor/symfony/polyfill-php73/bootstrap.php b/libraries/vendor/symfony/polyfill-php73/bootstrap.php new file mode 100644 index 0000000000000..304b2deef2b7e --- /dev/null +++ b/libraries/vendor/symfony/polyfill-php73/bootstrap.php @@ -0,0 +1,16 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +if (PHP_VERSION_ID < 70300) { + if (!function_exists('is_countable')) { + function is_countable($var) { return is_array($var) || $var instanceof Countable || $var instanceof ResourceBundle || $var instanceof SimpleXmlElement; } + } +} From e7cda7f4ec8ad94dbf560a2a7f21e1a03270bc17 Mon Sep 17 00:00:00 2001 From: Quy Date: Fri, 18 May 2018 04:12:32 -0700 Subject: [PATCH 09/34] [com_finder] Fix regression #19969 (#20411) --- components/com_finder/helpers/html/filter.php | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/components/com_finder/helpers/html/filter.php b/components/com_finder/helpers/html/filter.php index 402959561e073..74eba0960e3d1 100644 --- a/components/com_finder/helpers/html/filter.php +++ b/components/com_finder/helpers/html/filter.php @@ -187,10 +187,9 @@ public static function slider($options = array()) // Build a node. $html .= '
'; $html .= '
'; - $html .= '
'; From c8d5db4134beba1916211ebb4acd6edd549a8ef6 Mon Sep 17 00:00:00 2001 From: Nicola Galgano Date: Fri, 18 May 2018 13:14:14 +0200 Subject: [PATCH 10/34] [com_finder] - fix update inner join syntax for postgres (#19964) * [com_finder] - fix update inner join syntax for postgres * drone fix cs * quoteName vs qn * cs --- .../components/com_finder/helpers/indexer/indexer.php | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/administrator/components/com_finder/helpers/indexer/indexer.php b/administrator/components/com_finder/helpers/indexer/indexer.php index d532d54cf9ae3..34af6698cf5a6 100644 --- a/administrator/components/com_finder/helpers/indexer/indexer.php +++ b/administrator/components/com_finder/helpers/indexer/indexer.php @@ -307,8 +307,10 @@ public function remove($linkId) // Update the link counts for the terms. $query->clear() ->update($db->quoteName('#__finder_terms', 't')) - ->join('INNER', $db->quoteName('#__finder_links_terms' . dechex($i), 'm') . ' ON m.term_id = t.term_id') - ->set('t.links = t.links - 1') + ->join('INNER', $db->quoteName('#__finder_links_terms' . dechex($i), 'm') . + ' ON ' . $db->quoteName('m.term_id') . ' = ' . $db->quoteName('t.term_id') + ) + ->set($db->quoteName('links') . ' = ' . $db->quoteName('links') . ' - 1') ->where($db->quoteName('m.link_id') . ' = ' . (int) $linkId); $db->setQuery($query)->execute(); From ad803a75b69c309f17096ca8342fa29e7b9cfa71 Mon Sep 17 00:00:00 2001 From: Xabi Spacebiker Date: Fri, 18 May 2018 13:14:43 +0200 Subject: [PATCH 11/34] Update tag.php (#19951) There is a bug in getItem, the function parameter is called $pk, but in code it is using $id, so whenever the parameter is passed it is not used in the function. --- components/com_tags/models/tag.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/components/com_tags/models/tag.php b/components/com_tags/models/tag.php index 80247d44bc000..147fb333fc7f3 100644 --- a/components/com_tags/models/tag.php +++ b/components/com_tags/models/tag.php @@ -258,15 +258,15 @@ public function getItem($pk = null) { $this->item = false; - if (empty($id)) + if (empty($pk)) { - $id = $this->getState('tag.id'); + $pk = $this->getState('tag.id'); } // Get a level row instance. $table = JTable::getInstance('Tag', 'TagsTable'); - $idsArray = explode(',', $id); + $idsArray = explode(',', $pk); // Attempt to load the rows into an array. foreach ($idsArray as $id) From c60da2b299f168179db00f9dc3de741ab3faee7b Mon Sep 17 00:00:00 2001 From: Michael Babker Date: Thu, 17 May 2018 21:47:46 -0500 Subject: [PATCH 12/34] Change the Administrator group's filtering to use the default blacklist --- installation/sql/mysql/joomla.sql | 2 +- installation/sql/postgresql/joomla.sql | 2 +- installation/sql/sqlazure/joomla.sql | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/installation/sql/mysql/joomla.sql b/installation/sql/mysql/joomla.sql index 764e32d3af954..ac40588568117 100644 --- a/installation/sql/mysql/joomla.sql +++ b/installation/sql/mysql/joomla.sql @@ -508,7 +508,7 @@ INSERT INTO `#__extensions` (`extension_id`, `package_id`, `name`, `type`, `elem (19, 0, 'com_search', 'component', 'com_search', '', 1, 1, 1, 0, '', '{"enabled":"0","search_phrases":"1","search_areas":"1","show_date":"1","opensearch_name":"","opensearch_description":""}', '', '', 0, '0000-00-00 00:00:00', 0, 0), (20, 0, 'com_templates', 'component', 'com_templates', '', 1, 1, 1, 1, '', '{"template_positions_display":"0","upload_limit":"10","image_formats":"gif,bmp,jpg,jpeg,png","source_formats":"txt,less,ini,xml,js,php,css,scss,sass","font_formats":"woff,ttf,otf","compressed_formats":"zip"}', '', '', 0, '0000-00-00 00:00:00', 0, 0), (22, 0, 'com_content', 'component', 'com_content', '', 1, 1, 0, 1, '', '{"article_layout":"_:default","show_title":"1","link_titles":"1","show_intro":"1","show_category":"1","link_category":"1","show_parent_category":"0","link_parent_category":"0","show_author":"1","link_author":"0","show_create_date":"0","show_modify_date":"0","show_publish_date":"1","show_item_navigation":"1","show_vote":"0","show_readmore":"1","show_readmore_title":"1","readmore_limit":"100","show_icons":"1","show_print_icon":"1","show_email_icon":"0","show_hits":"1","show_noauth":"0","show_publishing_options":"1","show_article_options":"1","save_history":"1","history_limit":10,"show_urls_images_frontend":"0","show_urls_images_backend":"1","targeta":0,"targetb":0,"targetc":0,"float_intro":"left","float_fulltext":"left","category_layout":"_:blog","show_category_title":"0","show_description":"0","show_description_image":"0","maxLevel":"1","show_empty_categories":"0","show_no_articles":"1","show_subcat_desc":"1","show_cat_num_articles":"0","show_base_description":"1","maxLevelcat":"-1","show_empty_categories_cat":"0","show_subcat_desc_cat":"1","show_cat_num_articles_cat":"1","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"0","show_subcategory_content":"0","show_pagination_limit":"1","filter_field":"hide","show_headings":"1","list_show_date":"0","date_format":"","list_show_hits":"1","list_show_author":"1","orderby_pri":"order","orderby_sec":"rdate","order_date":"published","show_pagination":"2","show_pagination_results":"1","show_feed_link":"1","feed_summary":"0"}', '', '', 0, '0000-00-00 00:00:00', 0, 0), -(23, 0, 'com_config', 'component', 'com_config', '', 1, 1, 0, 1, '', '{"filters":{"1":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"6":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"7":{"filter_type":"NONE","filter_tags":"","filter_attributes":""},"2":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"3":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"4":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"5":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"10":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"12":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"8":{"filter_type":"NONE","filter_tags":"","filter_attributes":""}}}', '', '', 0, '0000-00-00 00:00:00', 0, 0), +(23, 0, 'com_config', 'component', 'com_config', '', 1, 1, 0, 1, '', '{"filters":{"1":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"6":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"7":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"2":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"3":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"4":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"5":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"10":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"12":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"8":{"filter_type":"NONE","filter_tags":"","filter_attributes":""}}}', '', '', 0, '0000-00-00 00:00:00', 0, 0), (24, 0, 'com_redirect', 'component', 'com_redirect', '', 1, 1, 0, 1, '', '', '', '', 0, '0000-00-00 00:00:00', 0, 0), (25, 0, 'com_users', 'component', 'com_users', '', 1, 1, 0, 1, '', '{"allowUserRegistration":"0","new_usertype":"2","guest_usergroup":"9","sendpassword":"0","useractivation":"2","mail_to_admin":"1","captcha":"","frontend_userparams":"1","site_language":"0","change_login_name":"0","reset_count":"10","reset_time":"1","minimum_length":"4","minimum_integers":"0","minimum_symbols":"0","minimum_uppercase":"0","save_history":"1","history_limit":5,"mailSubjectPrefix":"","mailBodySuffix":""}', '', '', 0, '0000-00-00 00:00:00', 0, 0), (27, 0, 'com_finder', 'component', 'com_finder', '', 1, 1, 0, 0, '', '{"enabled":"0","show_description":"1","description_length":255,"allow_empty_query":"0","show_url":"1","show_autosuggest":"1","show_suggested_query":"1","show_explained_query":"1","show_advanced":"1","show_advanced_tips":"1","expand_advanced":"0","show_date_filters":"0","sort_order":"relevance","sort_direction":"desc","highlight_terms":"1","opensearch_name":"","opensearch_description":"","batch_size":"50","memory_table_limit":30000,"title_multiplier":"1.7","text_multiplier":"0.7","meta_multiplier":"1.2","path_multiplier":"2.0","misc_multiplier":"0.3","stem":"1","stemmer":"snowball","enable_logging":"0"}', '', '', 0, '0000-00-00 00:00:00', 0, 0), diff --git a/installation/sql/postgresql/joomla.sql b/installation/sql/postgresql/joomla.sql index 42f10d6b6d255..80d1e3e62846c 100644 --- a/installation/sql/postgresql/joomla.sql +++ b/installation/sql/postgresql/joomla.sql @@ -522,7 +522,7 @@ INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "elem (19, 0, 'com_search', 'component', 'com_search', '', 1, 1, 1, 0, '', '{"enabled":"0","search_phrases":"1","search_areas":"1","show_date":"1","opensearch_name":"","opensearch_description":""}', '', '', 0, '1970-01-01 00:00:00', 0, 0), (20, 0, 'com_templates', 'component', 'com_templates', '', 1, 1, 1, 1, '', '{"template_positions_display":"0","upload_limit":"10","image_formats":"gif,bmp,jpg,jpeg,png","source_formats":"txt,less,ini,xml,js,php,css,scss,sass","font_formats":"woff,ttf,otf","compressed_formats":"zip"}', '', '', 0, '1970-01-01 00:00:00', 0, 0), (22, 0, 'com_content', 'component', 'com_content', '', 1, 1, 0, 1, '', '{"article_layout":"_:default","show_title":"1","link_titles":"1","show_intro":"1","show_category":"1","link_category":"1","show_parent_category":"0","link_parent_category":"0","show_author":"1","link_author":"0","show_create_date":"0","show_modify_date":"0","show_publish_date":"1","show_item_navigation":"1","show_vote":"0","show_readmore":"1","show_readmore_title":"1","readmore_limit":"100","show_icons":"1","show_print_icon":"1","show_email_icon":"0","show_hits":"1","show_noauth":"0","show_publishing_options":"1","show_article_options":"1","save_history":"1","history_limit":10,"show_urls_images_frontend":"0","show_urls_images_backend":"1","targeta":0,"targetb":0,"targetc":0,"float_intro":"left","float_fulltext":"left","category_layout":"_:blog","show_category_title":"0","show_description":"0","show_description_image":"0","maxLevel":"1","show_empty_categories":"0","show_no_articles":"1","show_subcat_desc":"1","show_cat_num_articles":"0","show_base_description":"1","maxLevelcat":"-1","show_empty_categories_cat":"0","show_subcat_desc_cat":"1","show_cat_num_articles_cat":"1","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"0","show_subcategory_content":"0","show_pagination_limit":"1","filter_field":"hide","show_headings":"1","list_show_date":"0","date_format":"","list_show_hits":"1","list_show_author":"1","orderby_pri":"order","orderby_sec":"rdate","order_date":"published","show_pagination":"2","show_pagination_results":"1","show_feed_link":"1","feed_summary":"0"}', '', '', 0, '1970-01-01 00:00:00', 0, 0), -(23, 0, 'com_config', 'component', 'com_config', '', 1, 1, 0, 1, '', '{"filters":{"1":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"6":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"7":{"filter_type":"NONE","filter_tags":"","filter_attributes":""},"2":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"3":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"4":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"5":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"10":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"12":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"8":{"filter_type":"NONE","filter_tags":"","filter_attributes":""}}}', '', '', 0, '1970-01-01 00:00:00', 0, 0), +(23, 0, 'com_config', 'component', 'com_config', '', 1, 1, 0, 1, '', '{"filters":{"1":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"6":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"7":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"2":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"3":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"4":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"5":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"10":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"12":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"8":{"filter_type":"NONE","filter_tags":"","filter_attributes":""}}}', '', '', 0, '1970-01-01 00:00:00', 0, 0), (24, 0, 'com_redirect', 'component', 'com_redirect', '', 1, 1, 0, 1, '', '', '', '', 0, '1970-01-01 00:00:00', 0, 0), (25, 0, 'com_users', 'component', 'com_users', '', 1, 1, 0, 1, '', '{"allowUserRegistration":"0","new_usertype":"2","guest_usergroup":"9","sendpassword":"0","useractivation":"2","mail_to_admin":"1","captcha":"","frontend_userparams":"1","site_language":"0","change_login_name":"0","reset_count":"10","reset_time":"1","minimum_length":"4","minimum_integers":"0","minimum_symbols":"0","minimum_uppercase":"0","save_history":"1","history_limit":5,"mailSubjectPrefix":"","mailBodySuffix":""}', '', '', 0, '1970-01-01 00:00:00', 0, 0), (27, 0, 'com_finder', 'component', 'com_finder', '', 1, 1, 0, 0, '', '{"enabled":"0","show_description":"1","description_length":255,"allow_empty_query":"0","show_url":"1","show_autosuggest":"1","show_suggested_query":"1","show_explained_query":"1","show_advanced":"1","show_advanced_tips":"1","expand_advanced":"0","show_date_filters":"0","sort_order":"relevance","sort_direction":"desc","highlight_terms":"1","opensearch_name":"","opensearch_description":"","batch_size":"50","memory_table_limit":30000,"title_multiplier":"1.7","text_multiplier":"0.7","meta_multiplier":"1.2","path_multiplier":"2.0","misc_multiplier":"0.3","stem":"1","stemmer":"snowball","enable_logging":"0"}', '', '', 0, '1970-01-01 00:00:00', 0, 0), diff --git a/installation/sql/sqlazure/joomla.sql b/installation/sql/sqlazure/joomla.sql index 0bc5b3c0db071..993ca5edcd133 100644 --- a/installation/sql/sqlazure/joomla.sql +++ b/installation/sql/sqlazure/joomla.sql @@ -737,7 +737,7 @@ INSERT INTO "#__extensions" ("extension_id", "package_id", "name", "type", "elem (19, 0, 'com_search', 'component', 'com_search', '', 1, 1, 1, 0, '', '{"enabled":"0","search_phrases":"1","search_areas":"1","show_date":"1","opensearch_name":"","opensearch_description":""}', '', '', 0, '1900-01-01 00:00:00', 0, 0), (20, 0, 'com_templates', 'component', 'com_templates', '', 1, 1, 1, 1, '', '{"template_positions_display":"0","upload_limit":"10","image_formats":"gif,bmp,jpg,jpeg,png","source_formats":"txt,less,ini,xml,js,php,css,scss,sass","font_formats":"woff,ttf,otf","compressed_formats":"zip"}', '', '', 0, '1900-01-01 00:00:00', 0, 0), (22, 0, 'com_content', 'component', 'com_content', '', 1, 1, 0, 1, '', '{"article_layout":"_:default","show_title":"1","link_titles":"1","show_intro":"1","show_category":"1","link_category":"1","show_parent_category":"0","link_parent_category":"0","show_author":"1","link_author":"0","show_create_date":"0","show_modify_date":"0","show_publish_date":"1","show_item_navigation":"1","show_vote":"0","show_readmore":"1","show_readmore_title":"1","readmore_limit":"100","show_icons":"1","show_print_icon":"1","show_email_icon":"0","show_hits":"1","show_noauth":"0","show_publishing_options":"1","show_article_options":"1","save_history":"1","history_limit":10,"show_urls_images_frontend":"0","show_urls_images_backend":"1","targeta":0,"targetb":0,"targetc":0,"float_intro":"left","float_fulltext":"left","category_layout":"_:blog","show_category_title":"0","show_description":"0","show_description_image":"0","maxLevel":"1","show_empty_categories":"0","show_no_articles":"1","show_subcat_desc":"1","show_cat_num_articles":"0","show_base_description":"1","maxLevelcat":"-1","show_empty_categories_cat":"0","show_subcat_desc_cat":"1","show_cat_num_articles_cat":"1","num_leading_articles":"1","num_intro_articles":"4","num_columns":"2","num_links":"4","multi_column_order":"0","show_subcategory_content":"0","show_pagination_limit":"1","filter_field":"hide","show_headings":"1","list_show_date":"0","date_format":"","list_show_hits":"1","list_show_author":"1","orderby_pri":"order","orderby_sec":"rdate","order_date":"published","show_pagination":"2","show_pagination_results":"1","show_feed_link":"1","feed_summary":"0"}', '', '', 0, '1900-01-01 00:00:00', 0, 0), -(23, 0, 'com_config', 'component', 'com_config', '', 1, 1, 0, 1, '', '{"filters":{"1":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"6":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"7":{"filter_type":"NONE","filter_tags":"","filter_attributes":""},"2":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"3":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"4":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"5":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"10":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"12":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"8":{"filter_type":"NONE","filter_tags":"","filter_attributes":""}}}', '', '', 0, '1900-01-01 00:00:00', 0, 0), +(23, 0, 'com_config', 'component', 'com_config', '', 1, 1, 0, 1, '', '{"filters":{"1":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"6":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"7":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"2":{"filter_type":"NH","filter_tags":"","filter_attributes":""},"3":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"4":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"5":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"10":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"12":{"filter_type":"BL","filter_tags":"","filter_attributes":""},"8":{"filter_type":"NONE","filter_tags":"","filter_attributes":""}}}', '', '', 0, '1900-01-01 00:00:00', 0, 0), (24, 0, 'com_redirect', 'component', 'com_redirect', '', 1, 1, 0, 1, '', '', '', '', 0, '1900-01-01 00:00:00', 0, 0), (25, 0, 'com_users', 'component', 'com_users', '', 1, 1, 0, 1, '', '{"allowUserRegistration":"0","new_usertype":"2","guest_usergroup":"9","sendpassword":"0","useractivation":"2","mail_to_admin":"1","captcha":"","frontend_userparams":"1","site_language":"0","change_login_name":"0","reset_count":"10","reset_time":"1","minimum_length":"4","minimum_integers":"0","minimum_symbols":"0","minimum_uppercase":"0","save_history":"1","history_limit":5,"mailSubjectPrefix":"","mailBodySuffix":""}', '', '', 0, '1900-01-01 00:00:00', 0, 0), (27, 0, 'com_finder', 'component', 'com_finder', '', 1, 1, 0, 0, '', '{"enabled":"0","show_description":"1","description_length":255,"allow_empty_query":"0","show_url":"1","show_autosuggest":"1","show_suggested_query":"1","show_explained_query":"1","show_advanced":"1","show_advanced_tips":"1","expand_advanced":"0","show_date_filters":"0","sort_order":"relevance","sort_direction":"desc","highlight_terms":"1","opensearch_name":"","opensearch_description":"","batch_size":"50","memory_table_limit":30000,"title_multiplier":"1.7","text_multiplier":"0.7","meta_multiplier":"1.2","path_multiplier":"2.0","misc_multiplier":"0.3","stem":"1","stemmer":"snowball","enable_logging":"0"}', '', '', 0, '1900-01-01 00:00:00', 0, 0), From ef8fba968db22cdc1a954977ac708533148b1805 Mon Sep 17 00:00:00 2001 From: Michael Babker Date: Thu, 17 May 2018 21:48:20 -0500 Subject: [PATCH 13/34] Add postinstall message explaining revised default settings --- .../postinstall/updatedefaultsettings.php | 27 +++++++++++++++++++ .../sql/updates/mysql/3.8.8-2018-05-18.sql | 3 +++ .../updates/postgresql/3.8.8-2018-05-18.sql | 3 +++ .../sql/updates/sqlazure/3.8.8-2018-05-18.sql | 2 ++ .../language/en-GB/en-GB.com_cpanel.ini | 2 ++ 5 files changed, 37 insertions(+) create mode 100644 administrator/components/com_admin/postinstall/updatedefaultsettings.php create mode 100644 administrator/components/com_admin/sql/updates/mysql/3.8.8-2018-05-18.sql create mode 100644 administrator/components/com_admin/sql/updates/postgresql/3.8.8-2018-05-18.sql create mode 100644 administrator/components/com_admin/sql/updates/sqlazure/3.8.8-2018-05-18.sql diff --git a/administrator/components/com_admin/postinstall/updatedefaultsettings.php b/administrator/components/com_admin/postinstall/updatedefaultsettings.php new file mode 100644 index 0000000000000..d8fbd67d40901 --- /dev/null +++ b/administrator/components/com_admin/postinstall/updatedefaultsettings.php @@ -0,0 +1,27 @@ +Since Joomla! 3.5 a statistics plugin will submit anonymous data to the Joomla Project. This will only submit the Joomla version, PHP version, database engine and version, and server operating system.

This data is collected to ensure that future versions of Joomla can take advantage of the latest database and PHP features without affecting significant numbers of users. The need for this became clear when a minimum of PHP 5.3.10 was required when Joomla! 3.3 implemented the more secure Bcrypt passwords.

In the interest of full transparency and to help developers this data is publicly available. An API and graphs will show the Joomla version, PHP versions and database engines in use.

If you do not wish to provide the Joomla Project with this information you can disable the plugin called System - Joomla Statistics.

" COM_CPANEL_MSG_STATS_COLLECTION_TITLE="Stats Collection in Joomla" +COM_CPANEL_MSG_UPDATEDEFAULTSETTINGS_BODY="

As part of our security team's review, we have made some changes to the default settings in a new Joomla installation. As these changes are only applied to new installations, we strongly recommend that you review these changes and update your site.

The changed settings are:

  • Global Configuration > Text Filters: The default \"Administrator\" user group has changed from \"No Filtering\" to \"Default Blacklist\"
  • Users > Send Password: The option to send a user their password in plain text when an account is created is now disabled by default
  • Media Manager: Flash files (\"swf\" file extension and \"application/x-shockwave-flash\" MIME Type) are not allowed to be uploaded
  • Articles > Show Email: The option to show an email icon with articles is disabled by default

We have created a dedicated documentation page explaining these changes.

" +COM_CPANEL_MSG_UPDATEDEFAULTSETTINGS_TITLE="Updated site security recommendations" COM_CPANEL_WELCOME_BEGINNERS_MESSAGE="

Community resources are available for new users.

" COM_CPANEL_WELCOME_BEGINNERS_TITLE="Welcome to Joomla!" COM_CPANEL_XML_DESCRIPTION="Control Panel component" From 1979fe9b6077a938622d54571d50b0f50f59cdc9 Mon Sep 17 00:00:00 2001 From: Michael Babker Date: Thu, 17 May 2018 22:09:56 -0500 Subject: [PATCH 14/34] Prepare 3.8.8 Release Candidate --- .../com_admin/postinstall/updatedefaultsettings.php | 2 +- administrator/language/en-GB/en-GB.xml | 2 +- administrator/language/en-GB/install.xml | 2 +- administrator/manifests/files/joomla.xml | 4 ++-- administrator/manifests/packages/pkg_en-GB.xml | 2 +- installation/language/en-GB/en-GB.xml | 2 +- language/en-GB/en-GB.xml | 2 +- language/en-GB/install.xml | 2 +- libraries/src/Version.php | 10 +++++----- 9 files changed, 14 insertions(+), 14 deletions(-) diff --git a/administrator/components/com_admin/postinstall/updatedefaultsettings.php b/administrator/components/com_admin/postinstall/updatedefaultsettings.php index d8fbd67d40901..d111f4d50c799 100644 --- a/administrator/components/com_admin/postinstall/updatedefaultsettings.php +++ b/administrator/components/com_admin/postinstall/updatedefaultsettings.php @@ -19,7 +19,7 @@ * * @return boolean * - * @since __DEPLOY_VERSION__ + * @since 3.8.8 */ function admin_postinstall_updatedefaultsettings_condition() { diff --git a/administrator/language/en-GB/en-GB.xml b/administrator/language/en-GB/en-GB.xml index 1d8ca75326ebf..0275e7500d2a7 100644 --- a/administrator/language/en-GB/en-GB.xml +++ b/administrator/language/en-GB/en-GB.xml @@ -2,7 +2,7 @@ English (en-GB) 3.8.8 - April 2018 + May 2018 Joomla! Project admin@joomla.org www.joomla.org diff --git a/administrator/language/en-GB/install.xml b/administrator/language/en-GB/install.xml index 126f7f989dbbb..7c8918eb5447c 100644 --- a/administrator/language/en-GB/install.xml +++ b/administrator/language/en-GB/install.xml @@ -3,7 +3,7 @@ English (en-GB) en-GB 3.8.8 - April 2018 + May 2018 Joomla! Project admin@joomla.org www.joomla.org diff --git a/administrator/manifests/files/joomla.xml b/administrator/manifests/files/joomla.xml index 4732a3d2b1c4d..aded2aaff33e7 100644 --- a/administrator/manifests/files/joomla.xml +++ b/administrator/manifests/files/joomla.xml @@ -6,8 +6,8 @@ www.joomla.org (C) 2005 - 2018 Open Source Matters. All rights reserved GNU General Public License version 2 or later; see LICENSE.txt - 3.8.8-dev - April 2018 + 3.8.8-rc + May 2018 FILES_JOOMLA_XML_DESCRIPTION administrator/components/com_admin/script.php diff --git a/administrator/manifests/packages/pkg_en-GB.xml b/administrator/manifests/packages/pkg_en-GB.xml index e9ace5a0d62c2..8bbba178ecf75 100644 --- a/administrator/manifests/packages/pkg_en-GB.xml +++ b/administrator/manifests/packages/pkg_en-GB.xml @@ -3,7 +3,7 @@ English (en-GB) Language Pack en-GB 3.8.8.1 - April 2018 + May 2018 Joomla! Project admin@joomla.org www.joomla.org diff --git a/installation/language/en-GB/en-GB.xml b/installation/language/en-GB/en-GB.xml index 9255abb402761..abe079adad026 100644 --- a/installation/language/en-GB/en-GB.xml +++ b/installation/language/en-GB/en-GB.xml @@ -4,7 +4,7 @@ client="installation"> English (United Kingdom) 3.8.8 - April 2018 + May 2018 Joomla! Project Copyright (C) 2005 - 2018 Open Source Matters. All rights reserved. GNU General Public License version 2 or later; see LICENSE.txt diff --git a/language/en-GB/en-GB.xml b/language/en-GB/en-GB.xml index 73a8f36efebc3..b7b40dc1a054f 100644 --- a/language/en-GB/en-GB.xml +++ b/language/en-GB/en-GB.xml @@ -2,7 +2,7 @@ English (en-GB) 3.8.8 - April 2018 + May 2018 Joomla! Project admin@joomla.org www.joomla.org diff --git a/language/en-GB/install.xml b/language/en-GB/install.xml index 93a9455f520a9..b2a7fdb24aab8 100644 --- a/language/en-GB/install.xml +++ b/language/en-GB/install.xml @@ -3,7 +3,7 @@ English (en-GB) en-GB 3.8.8 - April 2018 + May 2018 Joomla! Project admin@joomla.org www.joomla.org diff --git a/libraries/src/Version.php b/libraries/src/Version.php index dbf257d03d6fe..468196263f3f8 100644 --- a/libraries/src/Version.php +++ b/libraries/src/Version.php @@ -60,7 +60,7 @@ final class Version * @var string * @since 3.8.0 */ - const EXTRA_VERSION = 'dev'; + const EXTRA_VERSION = 'rc'; /** * Release version. @@ -78,7 +78,7 @@ final class Version * @since 3.5 * @deprecated 4.0 Use separated version constants instead */ - const DEV_LEVEL = '8-dev'; + const DEV_LEVEL = '8-rc'; /** * Development status. @@ -86,7 +86,7 @@ final class Version * @var string * @since 3.5 */ - const DEV_STATUS = 'Development'; + const DEV_STATUS = 'Release Candidate'; /** * Build number. @@ -111,7 +111,7 @@ final class Version * @var string * @since 3.5 */ - const RELDATE = '18-April-2018'; + const RELDATE = '18-May-2018'; /** * Release time. @@ -119,7 +119,7 @@ final class Version * @var string * @since 3.5 */ - const RELTIME = '14:00'; + const RELTIME = '12:30'; /** * Release timezone. From 4077a744908fa4488ce260886204445f9446735a Mon Sep 17 00:00:00 2001 From: Michael Babker Date: Fri, 18 May 2018 07:46:27 -0500 Subject: [PATCH 15/34] Reset for dev --- administrator/manifests/files/joomla.xml | 2 +- libraries/src/Version.php | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/administrator/manifests/files/joomla.xml b/administrator/manifests/files/joomla.xml index aded2aaff33e7..2181807c027e2 100644 --- a/administrator/manifests/files/joomla.xml +++ b/administrator/manifests/files/joomla.xml @@ -6,7 +6,7 @@ www.joomla.org (C) 2005 - 2018 Open Source Matters. All rights reserved GNU General Public License version 2 or later; see LICENSE.txt - 3.8.8-rc + 3.8.8-dev May 2018 FILES_JOOMLA_XML_DESCRIPTION diff --git a/libraries/src/Version.php b/libraries/src/Version.php index 468196263f3f8..5daf457ee58b9 100644 --- a/libraries/src/Version.php +++ b/libraries/src/Version.php @@ -60,7 +60,7 @@ final class Version * @var string * @since 3.8.0 */ - const EXTRA_VERSION = 'rc'; + const EXTRA_VERSION = 'dev'; /** * Release version. @@ -78,7 +78,7 @@ final class Version * @since 3.5 * @deprecated 4.0 Use separated version constants instead */ - const DEV_LEVEL = '8-rc'; + const DEV_LEVEL = '8-dev'; /** * Development status. @@ -86,7 +86,7 @@ final class Version * @var string * @since 3.5 */ - const DEV_STATUS = 'Release Candidate'; + const DEV_STATUS = 'Development'; /** * Build number. From c396b5c201aae00add01fe1c5c67fa563e651825 Mon Sep 17 00:00:00 2001 From: Thomas Hunziker Date: Sat, 19 May 2018 17:54:41 +0200 Subject: [PATCH 16/34] Typo in nl-NL installation language file (#20460) --- installation/language/nl-NL/nl-NL.ini | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/installation/language/nl-NL/nl-NL.ini b/installation/language/nl-NL/nl-NL.ini index 6220768955908..f4320a28fecdd 100644 --- a/installation/language/nl-NL/nl-NL.ini +++ b/installation/language/nl-NL/nl-NL.ini @@ -32,7 +32,7 @@ INSTL_DATABASE_ERROR_POSTGRESQL_QUERY="PostgreSQL database-query is mislukt." INSTL_DATABASE_HOST_DESC="Dit is meestal "_QQ_"localhost"_QQ_" of een naam die door de webhost is doorgegeven." INSTL_DATABASE_HOST_LABEL="Naam host" INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_CREATE_FILE="We waren niet in staat om het bestand aan te maken. Maak handmatig een bestand genaamd "_QQ_"%1$s"_QQ_" aan en upload het naar de "_QQ_"%2$s"_QQ_" map van uw Joomla site." -INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_DELETE_FILE="Verwijder, om te bevestigen dat u de eigenaar van deze website bent, het bestand genaamd "_QQ_"%1$s"_QQ_" dat we zojuist aangemaakt hebben in de map "_QQ_"%2$s"_QQ_" van uw Joomla site." +INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_DELETE_FILE="Verwijder, om te bevestigen dat u de eigenaar van deze website bent, het bestand genaamd "_QQ_"%1$s"_QQ_" dat we aangemaakt hebben in de map "_QQ_"%2$s"_QQ_" van uw Joomla site." INSTL_DATABASE_HOST_IS_NOT_LOCALHOST_GENERAL_MESSAGE="U probeert gebruik te maken van een database-host die niet op uw lokale server staat. Om veiligheidsredenen moet u het eigendom van uw web hosting account controleren. Lees de documentatie voor meer informatie." INSTL_DATABASE_NAME_DESC="Sommige hostingproviders staan slechts één databasenaam toe per account. In dat geval kunt u een ander tabelvoorvoegsel gebruiken om onderscheid te maken tussen verschillende Joomla! installaties." INSTL_DATABASE_NAME_LABEL="Naam database" @@ -41,7 +41,7 @@ INSTL_DATABASE_OLD_PROCESS_DESC=""_QQ_"Backup"_QQ_" of "_QQ_"Verwijder"_QQ_" eve INSTL_DATABASE_OLD_PROCESS_LABEL="Oude database verwerking" INSTL_DATABASE_PASSWORD_DESC="Voor de veiligheid van uw website is het verplicht een wachtwoord te gebruiken voor de database account" INSTL_DATABASE_PASSWORD_LABEL="Wachtwoord" -INSTL_DATABASE_PREFIX_DESC="Maak een tabelvoorvoegsel of gebruik het de willekeurig gegenereerde. Bij voorkeur drie of vier tekens lang, alleen alfanumerieke tekens en het MOET eindigen met een onderstrepingsteken. Zorg dat het gekozen voorvoegsel niet door andere tabellen wordt gebruikt." +INSTL_DATABASE_PREFIX_DESC="Maak een tabelvoorvoegsel of gebruik het de willekeurig gegenereerde. Bij voorkeur vier of vijf tekens lang, alleen alfanumerieke tekens en het MOET eindigen met een onderstrepingsteken. Zorg dat het gekozen voorvoegsel niet door andere tabellen wordt gebruikt." INSTL_DATABASE_PREFIX_LABEL="Tabelvoorvoegsel" INSTL_DATABASE_PREFIX_MSG="Het voorvoegsel van de database moet beginnen met een letter gevolgd door optioneel alfanumerieke tekens en een onderstrepingsteken" INSTL_DATABASE_TYPE_DESC="Dit is waarschijnlijk "_QQ_"MySQLi"_QQ_"" @@ -53,7 +53,7 @@ INSTL_DATABASE_USER_LABEL="Gebruikersnaam" ;FTP view INSTL_AUTOFIND_FTP_PATH="Automatisch FTP pad zoeken" INSTL_FTP="FTP configuratie" -INSTL_FTP_DESC="

Mogelijk is het op sommige servers noodzakelijk uw FTP-gegevens in te vullen voor het voltooien van de installatie. Indien u problemen ondervindt bij het voltooien van de installatie zonder deze gegevens, controleer dan bij uw webhost of het instellen van de FTP-laag nodig is.

Om veiligheidsredenen is het het beste om (als deze optie voor u beschikbaar is) een aparte FTP-gebruikersaccount aan te maken die alleen toegang heeft tot de Joomla! installatie en niet de gehele server. Uw webhost kan u hierbij behulpzaam zijn.

Opmerking: Wanneer de installatie op een Windows-systeem wordt geïnstalleerd is de FTP-laag niet vereist.

" +INSTL_FTP_DESC="

Mogelijk is het op sommige servers noodzakelijk uw FTP-gegevens in te vullen voor het voltooien van de installatie. Indien u problemen ondervindt bij het voltooien van de installatie zonder deze gegevens, controleer dan bij uw webhost of het instellen van de FTP-laag nodig is.

Om veiligheidsredenen is het het beste om, als deze optie voor u beschikbaar is, een aparte FTP-gebruikersaccount aan te maken die alleen toegang heeft tot de Joomla! installatie en niet de gehele server. Uw webhost kan u hierbij behulpzaam zijn.

Opmerking: Wanneer de installatie op een Windows-systeem wordt geïnstalleerd is de FTP-laag niet vereist.

" INSTL_FTP_ENABLE_LABEL="FTP-laag inschakelen" INSTL_FTP_HOST_LABEL="FTP host" INSTL_FTP_PASSWORD_LABEL="FTP wachtwoord" @@ -90,7 +90,7 @@ INSTL_SAMPLE_BROCHURE_SET="Brochure Engelse (GB) voorbeelddata" INSTL_SAMPLE_DATA_SET="Standaard Engelse (GB) voorbeelddata" INSTL_SAMPLE_LEARN_SET="Leer Joomla Engelse (GB) voorbeelddata" INSTL_SAMPLE_TESTING_SET="Test Engelse (GB) voorbeelddata" -INSTL_SITE_INSTALL_SAMPLE_NONE_DESC="Installeer Joomla met slechts één menu en inlogformulier en zonder verdere content." +INSTL_SITE_INSTALL_SAMPLE_NONE_DESC="Installeer Joomla met één menu en inlogformulier en zonder verdere content." INSTL_SAMPLE_BLOG_SET_DESC="Installeer Joomla met enkele artikelen en blog gerelateerde modules zoals Oudere artikelen, Bloglijst, Meest gelezen artikelen." INSTL_SAMPLE_BROCHURE_SET_DESC="Installeer Joomla met enkele pagina's (een menu met de pagina's Home, Over ons, Nieuws, Contact) en modules zoals Zoeken, Speciaal, Inlogformulier." INSTL_SAMPLE_DATA_SET_DESC="Installeer Joomla met één pagina (een menu met een link) en modules zoals Nieuwste artikel, Inlogformulier." @@ -204,7 +204,7 @@ INSTL_DATABASE_INVALID_SQLSRV_VERSION="SQL Server 2008 R2 (10.50.1600.1) of hoge INSTL_DATABASE_INVALID_SQLZURE_VERSION="SQL Server 2008 R2 (10.50.1600.1) of hoger is vereist om de installatie te vervolgen. Uw versie is: %s" INSTL_DATABASE_INVALID_TYPE="Selecteer een databasetype" INSTL_DATABASE_NAME_TOO_LONG="De MySQL databasenaam mag maximaal 64 tekens bevatten." -INSTL_DATABASE_INVALID_NAME="In MySQL versies ouder dan 5.1.6 mag de naam geen punten of andere "_QQ_"speciale"_QQ_" tekens bevatten. Uw versie is: %s" +INSTL_DATABASE_INVALID_NAME="In MySQL versies ouder dan 5.1.6 mogen in de naam geen punten of andere "_QQ_"speciale"_QQ_" tekens bevatten. Uw versie is: %s" INSTL_DATABASE_NAME_INVALID_SPACES="MySQL databasenamen en tabelnamen mogen niet beginnen of eindigen met een spatie." INSTL_DATABASE_NAME_INVALID_CHAR="Een MySQL identifier kan geen NULL ASCII(0x00) bevatten." INSTL_DATABASE_FILE_DOES_NOT_EXIST="Bestand %s bestaat niet" @@ -250,10 +250,8 @@ INSTL_MAGIC_QUOTES_GPC="Magic Quotes GPC uitgeschakeld" INSTL_MAGIC_QUOTES_RUNTIME="Magic Quotes Runtime" INSTL_MB_LANGUAGE_IS_DEFAULT="MB taal is standaard" INSTL_MB_STRING_OVERLOAD_OFF="MB string overload uitgeschakeld" -INSTL_MCRYPT_SUPPORT_AVAILABLE="Mcrypt ondersteuning" INSTL_NOTICEMBLANGNOTDEFAULT="PHP mbstring taal is niet ingesteld op neutral. Voeg de regel php_value mbstring.language neutral toe aan uw .htaccess bestand." INSTL_NOTICEMBSTRINGOVERLOAD="PHP mbstring function overload is ingesteld. Dit kan lokaal uitgeschakeld worden door de regel php_value mbstring.func_overload 0 in het .htaccess bestand op te nemen." -INSTL_NOTICEMCRYPTNOTAVAILABLE="Waarschuwing! PHP-mcrypt extensie moet geïnstalleerd of ingeschakeld zijn. Indien dit niet het geval is zullen sommige functies van Joomla niet beschikbaar zijn." INSTL_NOTICEYOUCANSTILLINSTALL="
U kunt nog steeds de installatie voortzetten. Aan het einde van de installatie zullen de configuratie instellingen weergegeven worden. U dient enkel de code handmatig te uploaden. Klik in het tekstveld om de gehele weergegeven code te selecteren en kopieer en plak deze in een nieuw tekstbestand. Noem dit bestand 'configuration.php' en upload het naar de rootmap van uw website." INSTL_OUTPUT_BUFFERING="Gebufferde uitvoer" INSTL_PARSE_INI_FILE_AVAILABLE="INI Parser ondersteuning" From e624b6c8c44133533e6080c8638907151981650e Mon Sep 17 00:00:00 2001 From: Allon Moritz Date: Sun, 20 May 2018 16:30:11 +0200 Subject: [PATCH 17/34] Fix import in fs stream class --- libraries/src/Filesystem/Stream.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/libraries/src/Filesystem/Stream.php b/libraries/src/Filesystem/Stream.php index a9bb53af955f6..a56d417de6158 100644 --- a/libraries/src/Filesystem/Stream.php +++ b/libraries/src/Filesystem/Stream.php @@ -11,8 +11,7 @@ defined('JPATH_PLATFORM') or die; use Joomla\CMS\Object\CMSObject; -use Joomla\CMS\Filesystem\FilesystemHelper; -use Joomla\Language\Text; +use Joomla\CMS\Language\Text; /** * Joomla! Stream Interface From cf4c5df286815c9c343372c7210d3aedccb6e3cb Mon Sep 17 00:00:00 2001 From: Michael Babker Date: Sun, 20 May 2018 10:24:28 -0500 Subject: [PATCH 18/34] Update joomla/filter package --- composer.lock | 16 ++--- .../vendor/composer/autoload_classmap.php | 15 +++++ libraries/vendor/composer/autoload_static.php | 15 +++++ libraries/vendor/composer/installed.json | 18 ++--- .../vendor/joomla/filter/src/InputFilter.php | 65 +++++++++++-------- .../vendor/joomla/filter/src/OutputFilter.php | 20 +++--- 6 files changed, 95 insertions(+), 54 deletions(-) diff --git a/composer.lock b/composer.lock index 46f6d9dff572f..bf6cf7cf53e1d 100644 --- a/composer.lock +++ b/composer.lock @@ -387,16 +387,16 @@ }, { "name": "joomla/filter", - "version": "1.3.3", + "version": "1.3.4", "source": { "type": "git", "url": "https://github.com/joomla-framework/filter.git", - "reference": "1ee770b83790c02d0fbcef77ad0647153e1faf74" + "reference": "6ec4c6020f7ef12c57a015410bdd11031620d952" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/filter/zipball/1ee770b83790c02d0fbcef77ad0647153e1faf74", - "reference": "1ee770b83790c02d0fbcef77ad0647153e1faf74", + "url": "https://github.com/gitapi/repos/joomla-framework/filter/zipball/6ec4c6020f7ef12c57a015410bdd11031620d952", + "reference": "6ec4c6020f7ef12c57a015410bdd11031620d952", "shasum": "" }, "require": { @@ -404,9 +404,9 @@ "php": "^5.3.10|~7.0" }, "require-dev": { + "joomla/coding-standards": "~2.0@alpha", "joomla/language": "~1.3", - "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", - "squizlabs/php_codesniffer": "1.*" + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0" }, "suggest": { "joomla/language": "Required only if you want to use `OutputFilter::stringURLSafe`." @@ -424,7 +424,7 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "description": "Joomla Filter Package", "homepage": "https://github.com/joomla-framework/filter", @@ -433,7 +433,7 @@ "framework", "joomla" ], - "time": "2017-07-04T15:07:30+00:00" + "time": "2018-05-20T15:17:26+00:00" }, { "name": "joomla/image", diff --git a/libraries/vendor/composer/autoload_classmap.php b/libraries/vendor/composer/autoload_classmap.php index f6b5443aa5966..2e6b35fa4a07c 100644 --- a/libraries/vendor/composer/autoload_classmap.php +++ b/libraries/vendor/composer/autoload_classmap.php @@ -76,6 +76,13 @@ 'Joomla\\Input\\Files' => $vendorDir . '/joomla/input/src/Files.php', 'Joomla\\Input\\Input' => $vendorDir . '/joomla/input/src/Input.php', 'Joomla\\Input\\Json' => $vendorDir . '/joomla/input/src/Json.php', + 'Joomla\\Input\\Tests\\CliTest' => $vendorDir . '/joomla/input/Tests/CliTest.php', + 'Joomla\\Input\\Tests\\CookieTest' => $vendorDir . '/joomla/input/Tests/CookieTest.php', + 'Joomla\\Input\\Tests\\FilesTest' => $vendorDir . '/joomla/input/Tests/FilesTest.php', + 'Joomla\\Input\\Tests\\FilterInputMock' => $vendorDir . '/joomla/input/Tests/Stubs/FilterInputMock.php', + 'Joomla\\Input\\Tests\\InputMocker' => $vendorDir . '/joomla/input/Tests/InputMocker.php', + 'Joomla\\Input\\Tests\\InputTest' => $vendorDir . '/joomla/input/Tests/InputTest.php', + 'Joomla\\Input\\Tests\\JsonTest' => $vendorDir . '/joomla/input/Tests/JsonTest.php', 'Joomla\\Ldap\\LdapClient' => $vendorDir . '/joomla/ldap/src/LdapClient.php', 'Joomla\\Registry\\AbstractRegistryFormat' => $vendorDir . '/joomla/registry/src/AbstractRegistryFormat.php', 'Joomla\\Registry\\Factory' => $vendorDir . '/joomla/registry/src/Factory.php', @@ -95,6 +102,14 @@ 'Joomla\\Session\\Storage\\None' => $vendorDir . '/joomla/session/Joomla/Session/Storage/None.php', 'Joomla\\Session\\Storage\\Wincache' => $vendorDir . '/joomla/session/Joomla/Session/Storage/Wincache.php', 'Joomla\\Session\\Storage\\Xcache' => $vendorDir . '/joomla/session/Joomla/Session/Storage/Xcache.php', + 'Joomla\\Session\\Tests\\Handler\\ApcuHandlerTest' => $vendorDir . '/joomla/session/tests/Handler/ApcuHandlerTest.php', + 'Joomla\\Session\\Tests\\Handler\\DatabaseHandlerTest' => $vendorDir . '/joomla/session/tests/Handler/DatabaseHandlerTest.php', + 'Joomla\\Session\\Tests\\Handler\\FilesystemHandlerTest' => $vendorDir . '/joomla/session/tests/Handler/FilesystemHandlerTest.php', + 'Joomla\\Session\\Tests\\Handler\\MemcachedHandlerTest' => $vendorDir . '/joomla/session/tests/Handler/MemcachedHandlerTest.php', + 'Joomla\\Session\\Tests\\Handler\\NativeStorageTest' => $vendorDir . '/joomla/session/tests/Storage/NativeStorageTest.php', + 'Joomla\\Session\\Tests\\Handler\\RedisHandlerTest' => $vendorDir . '/joomla/session/tests/Handler/RedisHandlerTest.php', + 'Joomla\\Session\\Tests\\Handler\\WincacheHandlerTest' => $vendorDir . '/joomla/session/tests/Handler/WincacheHandlerTest.php', + 'Joomla\\Session\\Tests\\SessionTest' => $vendorDir . '/joomla/session/tests/SessionTest.php', 'Joomla\\String\\Inflector' => $vendorDir . '/joomla/string/src/Inflector.php', 'Joomla\\String\\Normalise' => $vendorDir . '/joomla/string/src/Normalise.php', 'Joomla\\String\\String' => $vendorDir . '/joomla/string/src/String.php', diff --git a/libraries/vendor/composer/autoload_static.php b/libraries/vendor/composer/autoload_static.php index 0b20391e6ab76..e9131afecc631 100644 --- a/libraries/vendor/composer/autoload_static.php +++ b/libraries/vendor/composer/autoload_static.php @@ -253,6 +253,13 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe 'Joomla\\Input\\Files' => __DIR__ . '/..' . '/joomla/input/src/Files.php', 'Joomla\\Input\\Input' => __DIR__ . '/..' . '/joomla/input/src/Input.php', 'Joomla\\Input\\Json' => __DIR__ . '/..' . '/joomla/input/src/Json.php', + 'Joomla\\Input\\Tests\\CliTest' => __DIR__ . '/..' . '/joomla/input/Tests/CliTest.php', + 'Joomla\\Input\\Tests\\CookieTest' => __DIR__ . '/..' . '/joomla/input/Tests/CookieTest.php', + 'Joomla\\Input\\Tests\\FilesTest' => __DIR__ . '/..' . '/joomla/input/Tests/FilesTest.php', + 'Joomla\\Input\\Tests\\FilterInputMock' => __DIR__ . '/..' . '/joomla/input/Tests/Stubs/FilterInputMock.php', + 'Joomla\\Input\\Tests\\InputMocker' => __DIR__ . '/..' . '/joomla/input/Tests/InputMocker.php', + 'Joomla\\Input\\Tests\\InputTest' => __DIR__ . '/..' . '/joomla/input/Tests/InputTest.php', + 'Joomla\\Input\\Tests\\JsonTest' => __DIR__ . '/..' . '/joomla/input/Tests/JsonTest.php', 'Joomla\\Ldap\\LdapClient' => __DIR__ . '/..' . '/joomla/ldap/src/LdapClient.php', 'Joomla\\Registry\\AbstractRegistryFormat' => __DIR__ . '/..' . '/joomla/registry/src/AbstractRegistryFormat.php', 'Joomla\\Registry\\Factory' => __DIR__ . '/..' . '/joomla/registry/src/Factory.php', @@ -272,6 +279,14 @@ class ComposerStaticInit205c915b9c7d3e718e7c95793ee67ffe 'Joomla\\Session\\Storage\\None' => __DIR__ . '/..' . '/joomla/session/Joomla/Session/Storage/None.php', 'Joomla\\Session\\Storage\\Wincache' => __DIR__ . '/..' . '/joomla/session/Joomla/Session/Storage/Wincache.php', 'Joomla\\Session\\Storage\\Xcache' => __DIR__ . '/..' . '/joomla/session/Joomla/Session/Storage/Xcache.php', + 'Joomla\\Session\\Tests\\Handler\\ApcuHandlerTest' => __DIR__ . '/..' . '/joomla/session/tests/Handler/ApcuHandlerTest.php', + 'Joomla\\Session\\Tests\\Handler\\DatabaseHandlerTest' => __DIR__ . '/..' . '/joomla/session/tests/Handler/DatabaseHandlerTest.php', + 'Joomla\\Session\\Tests\\Handler\\FilesystemHandlerTest' => __DIR__ . '/..' . '/joomla/session/tests/Handler/FilesystemHandlerTest.php', + 'Joomla\\Session\\Tests\\Handler\\MemcachedHandlerTest' => __DIR__ . '/..' . '/joomla/session/tests/Handler/MemcachedHandlerTest.php', + 'Joomla\\Session\\Tests\\Handler\\NativeStorageTest' => __DIR__ . '/..' . '/joomla/session/tests/Storage/NativeStorageTest.php', + 'Joomla\\Session\\Tests\\Handler\\RedisHandlerTest' => __DIR__ . '/..' . '/joomla/session/tests/Handler/RedisHandlerTest.php', + 'Joomla\\Session\\Tests\\Handler\\WincacheHandlerTest' => __DIR__ . '/..' . '/joomla/session/tests/Handler/WincacheHandlerTest.php', + 'Joomla\\Session\\Tests\\SessionTest' => __DIR__ . '/..' . '/joomla/session/tests/SessionTest.php', 'Joomla\\String\\Inflector' => __DIR__ . '/..' . '/joomla/string/src/Inflector.php', 'Joomla\\String\\Normalise' => __DIR__ . '/..' . '/joomla/string/src/Normalise.php', 'Joomla\\String\\String' => __DIR__ . '/..' . '/joomla/string/src/String.php', diff --git a/libraries/vendor/composer/installed.json b/libraries/vendor/composer/installed.json index 041086adbfe02..597b332a098b9 100644 --- a/libraries/vendor/composer/installed.json +++ b/libraries/vendor/composer/installed.json @@ -396,17 +396,17 @@ }, { "name": "joomla/filter", - "version": "1.3.3", - "version_normalized": "1.3.3.0", + "version": "1.3.4", + "version_normalized": "1.3.4.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/filter.git", - "reference": "1ee770b83790c02d0fbcef77ad0647153e1faf74" + "reference": "6ec4c6020f7ef12c57a015410bdd11031620d952" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/filter/zipball/1ee770b83790c02d0fbcef77ad0647153e1faf74", - "reference": "1ee770b83790c02d0fbcef77ad0647153e1faf74", + "url": "https://github.com/gitapi/repos/joomla-framework/filter/zipball/6ec4c6020f7ef12c57a015410bdd11031620d952", + "reference": "6ec4c6020f7ef12c57a015410bdd11031620d952", "shasum": "" }, "require": { @@ -414,14 +414,14 @@ "php": "^5.3.10|~7.0" }, "require-dev": { + "joomla/coding-standards": "~2.0@alpha", "joomla/language": "~1.3", - "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0", - "squizlabs/php_codesniffer": "1.*" + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0" }, "suggest": { "joomla/language": "Required only if you want to use `OutputFilter::stringURLSafe`." }, - "time": "2017-07-04T15:07:30+00:00", + "time": "2018-05-20T15:17:26+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -436,7 +436,7 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "description": "Joomla Filter Package", "homepage": "https://github.com/joomla-framework/filter", diff --git a/libraries/vendor/joomla/filter/src/InputFilter.php b/libraries/vendor/joomla/filter/src/InputFilter.php index 6aa5368a3a3fe..3dccca490b728 100644 --- a/libraries/vendor/joomla/filter/src/InputFilter.php +++ b/libraries/vendor/joomla/filter/src/InputFilter.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Filter Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -113,6 +113,7 @@ class InputFilter 'bgsound', 'base', 'basefont', + 'canvas', 'embed', 'frame', 'frameset', @@ -172,7 +173,8 @@ class InputFilter * @since 1.0 */ public function __construct($tagsArray = array(), $attrArray = array(), $tagsMethod = self::TAGS_WHITELIST, $attrMethod = self::ATTR_WHITELIST, - $xssAuto = 1) + $xssAuto = 1 + ) { // Make sure user defined arrays are in lowercase $tagsArray = array_map('strtolower', (array) $tagsArray); @@ -598,49 +600,49 @@ protected function cleanTags($source) $attr = ''; // Is there a tag? If so it will certainly start with a '<'. - $tagOpen_start = StringHelper::strpos($source, '<'); + $tagOpenStart = StringHelper::strpos($source, '<'); - while ($tagOpen_start !== false) + while ($tagOpenStart !== false) { // Get some information about the tag we are processing - $preTag .= StringHelper::substr($postTag, 0, $tagOpen_start); - $postTag = StringHelper::substr($postTag, $tagOpen_start); + $preTag .= StringHelper::substr($postTag, 0, $tagOpenStart); + $postTag = StringHelper::substr($postTag, $tagOpenStart); $fromTagOpen = StringHelper::substr($postTag, 1); - $tagOpen_end = StringHelper::strpos($fromTagOpen, '>'); + $tagOpenEnd = StringHelper::strpos($fromTagOpen, '>'); // Check for mal-formed tag where we have a second '<' before the first '>' - $nextOpenTag = (StringHelper::strlen($postTag) > $tagOpen_start) ? StringHelper::strpos($postTag, '<', $tagOpen_start + 1) : false; + $nextOpenTag = (StringHelper::strlen($postTag) > $tagOpenStart) ? StringHelper::strpos($postTag, '<', $tagOpenStart + 1) : false; - if (($nextOpenTag !== false) && ($nextOpenTag < $tagOpen_end)) + if (($nextOpenTag !== false) && ($nextOpenTag < $tagOpenEnd)) { // At this point we have a mal-formed tag -- remove the offending open - $postTag = StringHelper::substr($postTag, 0, $tagOpen_start) . StringHelper::substr($postTag, $tagOpen_start + 1); - $tagOpen_start = StringHelper::strpos($postTag, '<'); + $postTag = StringHelper::substr($postTag, 0, $tagOpenStart) . StringHelper::substr($postTag, $tagOpenStart + 1); + $tagOpenStart = StringHelper::strpos($postTag, '<'); continue; } // Let's catch any non-terminated tags and skip over them - if ($tagOpen_end === false) + if ($tagOpenEnd === false) { - $postTag = StringHelper::substr($postTag, $tagOpen_start + 1); - $tagOpen_start = StringHelper::strpos($postTag, '<'); + $postTag = StringHelper::substr($postTag, $tagOpenStart + 1); + $tagOpenStart = StringHelper::strpos($postTag, '<'); continue; } // Do we have a nested tag? - $tagOpen_nested = StringHelper::strpos($fromTagOpen, '<'); + $tagOpenNested = StringHelper::strpos($fromTagOpen, '<'); - if (($tagOpen_nested !== false) && ($tagOpen_nested < $tagOpen_end)) + if (($tagOpenNested !== false) && ($tagOpenNested < $tagOpenEnd)) { - $preTag .= StringHelper::substr($postTag, 0, ($tagOpen_nested + 1)); - $postTag = StringHelper::substr($postTag, ($tagOpen_nested + 1)); - $tagOpen_start = StringHelper::strpos($postTag, '<'); + $preTag .= StringHelper::substr($postTag, 0, ($tagOpenNested + 1)); + $postTag = StringHelper::substr($postTag, ($tagOpenNested + 1)); + $tagOpenStart = StringHelper::strpos($postTag, '<'); continue; } // Let's get some information about our tag and setup attribute pairs - $tagOpen_nested = (StringHelper::strpos($fromTagOpen, '<') + $tagOpen_start + 1); - $currentTag = StringHelper::substr($fromTagOpen, 0, $tagOpen_end); + $tagOpenNested = (StringHelper::strpos($fromTagOpen, '<') + $tagOpenStart + 1); + $currentTag = StringHelper::substr($fromTagOpen, 0, $tagOpenEnd); $tagLength = StringHelper::strlen($currentTag); $tagLeft = $currentTag; $attrSet = array(); @@ -671,7 +673,7 @@ protected function cleanTags($source) || ((in_array(strtolower($tagName), $this->tagBlacklist)) && ($this->xssAuto))) { $postTag = StringHelper::substr($postTag, ($tagLength + 2)); - $tagOpen_start = StringHelper::strpos($postTag, '<'); + $tagOpenStart = StringHelper::strpos($postTag, '<'); // Strip tag continue; @@ -804,7 +806,7 @@ protected function cleanTags($source) // Find next tag's start and continue iteration $postTag = StringHelper::substr($postTag, ($tagLength + 2)); - $tagOpen_start = StringHelper::strpos($postTag, '<'); + $tagOpenStart = StringHelper::strpos($postTag, '<'); } // Append any code after the end of tags and return @@ -844,8 +846,8 @@ protected function cleanAttributes($attrSet) $attrSubSet = explode('=', trim($attrSet[$i]), 2); // Take the last attribute in case there is an attribute with no value - $attrSubSet_0 = explode(' ', trim($attrSubSet[0])); - $attrSubSet[0] = array_pop($attrSubSet_0); + $attrSubSet0 = explode(' ', trim($attrSubSet[0])); + $attrSubSet[0] = array_pop($attrSubSet0); $attrSubSet[0] = strtolower($attrSubSet[0]); $quoteStyle = version_compare(PHP_VERSION, '5.4', '>=') ? ENT_QUOTES | ENT_HTML401 : ENT_QUOTES; @@ -855,12 +857,15 @@ protected function cleanAttributes($attrSet) $attrSubSet[0] = preg_replace('/^[\pZ\pC]+|[\pZ\pC]+$/u', '', $attrSubSet[0]); $attrSubSet[0] = preg_replace('/\s+/u', '', $attrSubSet[0]); - // Replace special blacklisted chars here + // Remove blacklisted chars from the attribute name foreach ($this->blacklistedChars as $blacklistedChar) { - $attrSubSet[0] = str_replace($blacklistedChar, '', $attrSubSet[0]); + $attrSubSet[0] = str_ireplace($blacklistedChar, '', $attrSubSet[0]); } + // Remove all symbols + $attrSubSet[0] = preg_replace('/[^\p{L}\p{N}\s]/u', '', $attrSubSet[0]); + // Remove all "non-regular" attribute names // AND blacklisted attributes if ((!preg_match('/[a-z]*$/i', $attrSubSet[0])) @@ -876,6 +881,12 @@ protected function cleanAttributes($attrSet) continue; } + // Remove blacklisted chars from the attribute value + foreach ($this->blacklistedChars as $blacklistedChar) + { + $attrSubSet[1] = str_ireplace($blacklistedChar, '', $attrSubSet[1]); + } + // Trim leading and trailing spaces $attrSubSet[1] = trim($attrSubSet[1]); diff --git a/libraries/vendor/joomla/filter/src/OutputFilter.php b/libraries/vendor/joomla/filter/src/OutputFilter.php index c6ba9708deb0c..8ca20e4e8c87a 100644 --- a/libraries/vendor/joomla/filter/src/OutputFilter.php +++ b/libraries/vendor/joomla/filter/src/OutputFilter.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Filter Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -24,15 +24,15 @@ class OutputFilter * Object parameters that are non-string, array, object or start with underscore * will be converted * - * @param object &$mixed An object to be parsed - * @param integer $quote_style The optional quote style for the htmlspecialchars function - * @param mixed $exclude_keys An optional string single field name or array of field names not to be parsed (eg, for a textarea) + * @param object $mixed An object to be parsed + * @param integer $quoteStyle The optional quote style for the htmlspecialchars function + * @param mixed $excludeKeys An optional string single field name or array of field names not to be parsed (eg, for a textarea) * * @return void * * @since 1.0 */ - public static function objectHtmlSafe(&$mixed, $quote_style = ENT_QUOTES, $exclude_keys = '') + public static function objectHtmlSafe(&$mixed, $quoteStyle = ENT_QUOTES, $excludeKeys = '') { if (is_object($mixed)) { @@ -43,16 +43,16 @@ public static function objectHtmlSafe(&$mixed, $quote_style = ENT_QUOTES, $exclu continue; } - if (is_string($exclude_keys) && $k == $exclude_keys) + if (is_string($excludeKeys) && $k == $excludeKeys) { continue; } - elseif (is_array($exclude_keys) && in_array($k, $exclude_keys)) + elseif (is_array($excludeKeys) && in_array($k, $excludeKeys)) { continue; } - $mixed->$k = htmlspecialchars($v, $quote_style, 'UTF-8'); + $mixed->$k = htmlspecialchars($v, $quoteStyle, 'UTF-8'); } } } @@ -72,7 +72,7 @@ public static function linkXhtmlSafe($input) return preg_replace_callback( "#$regex#i", - function($m) + function ($m) { return preg_replace('#&(?!amp;)#', '&', $m[0]); }, @@ -163,7 +163,7 @@ public static function ampReplace($text) /** * Cleans text of all formatting and scripting code * - * @param string &$text Text to clean + * @param string $text Text to clean * * @return string Cleaned text. * From f4d38ece13c27f027b6645986f43c8131023b906 Mon Sep 17 00:00:00 2001 From: Michael Babker Date: Sun, 20 May 2018 10:42:59 -0500 Subject: [PATCH 19/34] Update joomla/application package --- composer.lock | 16 +- libraries/vendor/composer/installed.json | 18 +- .../application/src/AbstractApplication.php | 2 +- .../src/AbstractCliApplication.php | 5 +- .../src/AbstractDaemonApplication.php | 4 +- .../src/AbstractWebApplication.php | 180 ++++++++++-------- .../joomla/application/src/Cli/CliInput.php | 5 +- .../joomla/application/src/Cli/CliOutput.php | 5 +- .../application/src/Cli/ColorProcessor.php | 4 +- .../joomla/application/src/Cli/ColorStyle.php | 5 +- .../Cli/Output/Processor/ColorProcessor.php | 5 +- .../Output/Processor/ProcessorInterface.php | 5 +- .../application/src/Cli/Output/Stdout.php | 5 +- .../joomla/application/src/Cli/Output/Xml.php | 5 +- .../joomla/application/src/Web/WebClient.php | 2 +- 15 files changed, 147 insertions(+), 119 deletions(-) diff --git a/composer.lock b/composer.lock index bf6cf7cf53e1d..cb01862353286 100644 --- a/composer.lock +++ b/composer.lock @@ -50,16 +50,16 @@ }, { "name": "joomla/application", - "version": "1.8.1", + "version": "1.9.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/application.git", - "reference": "4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e" + "reference": "f32371fc988356bbf052396dcfd782effdd74b6d" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/application/zipball/4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e", - "reference": "4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e", + "url": "https://github.com/gitapi/repos/joomla-framework/application/zipball/f32371fc988356bbf052396dcfd782effdd74b6d", + "reference": "f32371fc988356bbf052396dcfd782effdd74b6d", "shasum": "" }, "require": { @@ -69,12 +69,12 @@ "psr/log": "~1.0" }, "require-dev": { + "joomla/coding-standards": "~2.0@alpha", "joomla/event": "~1.2|~2.0", "joomla/session": "^1.2.1|~2.0", "joomla/test": "~1.1", "joomla/uri": "~1.1", - "phpunit/phpunit": "~4.8|>=5.0 <5.4", - "squizlabs/php_codesniffer": "1.*" + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0" }, "suggest": { "joomla/session": "To use AbstractWebApplication with session support, install joomla/session", @@ -93,7 +93,7 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "description": "Joomla Application Package", "homepage": "https://github.com/joomla-framework/application", @@ -102,7 +102,7 @@ "framework", "joomla" ], - "time": "2017-07-14T12:54:12+00:00" + "time": "2018-05-20T15:35:58+00:00" }, { "name": "joomla/archive", diff --git a/libraries/vendor/composer/installed.json b/libraries/vendor/composer/installed.json index 597b332a098b9..c385548d794fc 100644 --- a/libraries/vendor/composer/installed.json +++ b/libraries/vendor/composer/installed.json @@ -45,17 +45,17 @@ }, { "name": "joomla/application", - "version": "1.8.1", - "version_normalized": "1.8.1.0", + "version": "1.9.0", + "version_normalized": "1.9.0.0", "source": { "type": "git", "url": "https://github.com/joomla-framework/application.git", - "reference": "4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e" + "reference": "f32371fc988356bbf052396dcfd782effdd74b6d" }, "dist": { "type": "zip", - "url": "https://github.com/gitapi/repos/joomla-framework/application/zipball/4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e", - "reference": "4abf6ba23fc4454c6d9b2efd6290db0ffe6f424e", + "url": "https://github.com/gitapi/repos/joomla-framework/application/zipball/f32371fc988356bbf052396dcfd782effdd74b6d", + "reference": "f32371fc988356bbf052396dcfd782effdd74b6d", "shasum": "" }, "require": { @@ -65,18 +65,18 @@ "psr/log": "~1.0" }, "require-dev": { + "joomla/coding-standards": "~2.0@alpha", "joomla/event": "~1.2|~2.0", "joomla/session": "^1.2.1|~2.0", "joomla/test": "~1.1", "joomla/uri": "~1.1", - "phpunit/phpunit": "~4.8|>=5.0 <5.4", - "squizlabs/php_codesniffer": "1.*" + "phpunit/phpunit": "^4.8.35|^5.4.3|~6.0" }, "suggest": { "joomla/session": "To use AbstractWebApplication with session support, install joomla/session", "joomla/uri": "To use AbstractWebApplication, install joomla/uri" }, - "time": "2017-07-14T12:54:12+00:00", + "time": "2018-05-20T15:35:58+00:00", "type": "joomla-package", "extra": { "branch-alias": { @@ -91,7 +91,7 @@ }, "notification-url": "https://packagist.org/downloads/", "license": [ - "GPL-2.0+" + "GPL-2.0-or-later" ], "description": "Joomla Application Package", "homepage": "https://github.com/joomla-framework/application", diff --git a/libraries/vendor/joomla/application/src/AbstractApplication.php b/libraries/vendor/joomla/application/src/AbstractApplication.php index f01ca5fc75d59..7eef7610e3df9 100644 --- a/libraries/vendor/joomla/application/src/AbstractApplication.php +++ b/libraries/vendor/joomla/application/src/AbstractApplication.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ diff --git a/libraries/vendor/joomla/application/src/AbstractCliApplication.php b/libraries/vendor/joomla/application/src/AbstractCliApplication.php index ef2aa64264516..04998c7f4a772 100644 --- a/libraries/vendor/joomla/application/src/AbstractCliApplication.php +++ b/libraries/vendor/joomla/application/src/AbstractCliApplication.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -14,7 +14,8 @@ /** * Base class for a Joomla! command line application. * - * @since 1.0 + * @since 1.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ abstract class AbstractCliApplication extends AbstractApplication { diff --git a/libraries/vendor/joomla/application/src/AbstractDaemonApplication.php b/libraries/vendor/joomla/application/src/AbstractDaemonApplication.php index 7a7f479266ae6..d09ec74d32bf7 100644 --- a/libraries/vendor/joomla/application/src/AbstractDaemonApplication.php +++ b/libraries/vendor/joomla/application/src/AbstractDaemonApplication.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -908,7 +908,7 @@ protected function pcntlSignal($signal , $handler, $restart = true) /** * Method to wait on or return the status of a forked child. * - * @param integer &$status Status information. + * @param integer $status Status information. * @param integer $options If wait3 is available on your system (mostly BSD-style systems), * you can provide the optional options parameter. * diff --git a/libraries/vendor/joomla/application/src/AbstractWebApplication.php b/libraries/vendor/joomla/application/src/AbstractWebApplication.php index 5e703d4a5b996..6453ed437269c 100644 --- a/libraries/vendor/joomla/application/src/AbstractWebApplication.php +++ b/libraries/vendor/joomla/application/src/AbstractWebApplication.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -36,6 +36,14 @@ abstract class AbstractWebApplication extends AbstractApplication */ public $mimeType = 'text/html'; + /** + * HTTP protocol version. + * + * @var string + * @since 1.9.0 + */ + public $httpVersion = '1.1'; + /** * The body modified date for response headers. * @@ -69,74 +77,74 @@ abstract class AbstractWebApplication extends AbstractApplication private $session; /** - * A map of integer HTTP 1.1 response codes to the full HTTP Status for the headers. + * A map of integer HTTP response codes to the full HTTP Status for the headers. * * @var array * @since 1.6.0 * @link https://www.iana.org/assignments/http-status-codes/http-status-codes.xhtml */ private $responseMap = array( - 100 => 'HTTP/1.1 100 Continue', - 101 => 'HTTP/1.1 101 Switching Protocols', - 102 => 'HTTP/1.1 102 Processing', - 200 => 'HTTP/1.1 200 OK', - 201 => 'HTTP/1.1 201 Created', - 202 => 'HTTP/1.1 202 Accepted', - 203 => 'HTTP/1.1 203 Non-Authoritative Information', - 204 => 'HTTP/1.1 204 No Content', - 205 => 'HTTP/1.1 205 Reset Content', - 206 => 'HTTP/1.1 206 Partial Content', - 207 => 'HTTP/1.1 207 Multi-Status', - 208 => 'HTTP/1.1 208 Already Reported', - 226 => 'HTTP/1.1 226 IM Used', - 300 => 'HTTP/1.1 300 Multiple Choices', - 301 => 'HTTP/1.1 301 Moved Permanently', - 302 => 'HTTP/1.1 302 Found', - 303 => 'HTTP/1.1 303 See other', - 304 => 'HTTP/1.1 304 Not Modified', - 305 => 'HTTP/1.1 305 Use Proxy', - 306 => 'HTTP/1.1 306 (Unused)', - 307 => 'HTTP/1.1 307 Temporary Redirect', - 308 => 'HTTP/1.1 308 Permanent Redirect', - 400 => 'HTTP/1.1 400 Bad Request', - 401 => 'HTTP/1.1 401 Unauthorized', - 402 => 'HTTP/1.1 402 Payment Required', - 403 => 'HTTP/1.1 403 Forbidden', - 404 => 'HTTP/1.1 404 Not Found', - 405 => 'HTTP/1.1 405 Method Not Allowed', - 406 => 'HTTP/1.1 406 Not Acceptable', - 407 => 'HTTP/1.1 407 Proxy Authentication Required', - 408 => 'HTTP/1.1 408 Request Timeout', - 409 => 'HTTP/1.1 409 Conflict', - 410 => 'HTTP/1.1 410 Gone', - 411 => 'HTTP/1.1 411 Length Required', - 412 => 'HTTP/1.1 412 Precondition Failed', - 413 => 'HTTP/1.1 413 Payload Too Large', - 414 => 'HTTP/1.1 414 URI Too Long', - 415 => 'HTTP/1.1 415 Unsupported Media Type', - 416 => 'HTTP/1.1 416 Range Not Satisfiable', - 417 => 'HTTP/1.1 417 Expectation Failed', - 418 => 'HTTP/1.1 418 I\'m a teapot', - 421 => 'HTTP/1.1 421 Misdirected Request', - 422 => 'HTTP/1.1 422 Unprocessable Entity', - 423 => 'HTTP/1.1 423 Locked', - 424 => 'HTTP/1.1 424 Failed Dependency', - 426 => 'HTTP/1.1 426 Upgrade Required', - 428 => 'HTTP/1.1 428 Precondition Required', - 429 => 'HTTP/1.1 429 Too Many Requests', - 431 => 'HTTP/1.1 431 Request Header Fields Too Large', - 451 => 'HTTP/1.1 451 Unavailable For Legal Reasons', - 500 => 'HTTP/1.1 500 Internal Server Error', - 501 => 'HTTP/1.1 501 Not Implemented', - 502 => 'HTTP/1.1 502 Bad Gateway', - 503 => 'HTTP/1.1 503 Service Unavailable', - 504 => 'HTTP/1.1 504 Gateway Timeout', - 505 => 'HTTP/1.1 505 HTTP Version Not Supported', - 506 => 'HTTP/1.1 506 Variant Also Negotiates', - 507 => 'HTTP/1.1 507 Insufficient Storage', - 508 => 'HTTP/1.1 508 Loop Detected', - 510 => 'HTTP/1.1 510 Not Extended', - 511 => 'HTTP/1.1 511 Network Authentication Required', + 100 => 'HTTP/{version} 100 Continue', + 101 => 'HTTP/{version} 101 Switching Protocols', + 102 => 'HTTP/{version} 102 Processing', + 200 => 'HTTP/{version} 200 OK', + 201 => 'HTTP/{version} 201 Created', + 202 => 'HTTP/{version} 202 Accepted', + 203 => 'HTTP/{version} 203 Non-Authoritative Information', + 204 => 'HTTP/{version} 204 No Content', + 205 => 'HTTP/{version} 205 Reset Content', + 206 => 'HTTP/{version} 206 Partial Content', + 207 => 'HTTP/{version} 207 Multi-Status', + 208 => 'HTTP/{version} 208 Already Reported', + 226 => 'HTTP/{version} 226 IM Used', + 300 => 'HTTP/{version} 300 Multiple Choices', + 301 => 'HTTP/{version} 301 Moved Permanently', + 302 => 'HTTP/{version} 302 Found', + 303 => 'HTTP/{version} 303 See other', + 304 => 'HTTP/{version} 304 Not Modified', + 305 => 'HTTP/{version} 305 Use Proxy', + 306 => 'HTTP/{version} 306 (Unused)', + 307 => 'HTTP/{version} 307 Temporary Redirect', + 308 => 'HTTP/{version} 308 Permanent Redirect', + 400 => 'HTTP/{version} 400 Bad Request', + 401 => 'HTTP/{version} 401 Unauthorized', + 402 => 'HTTP/{version} 402 Payment Required', + 403 => 'HTTP/{version} 403 Forbidden', + 404 => 'HTTP/{version} 404 Not Found', + 405 => 'HTTP/{version} 405 Method Not Allowed', + 406 => 'HTTP/{version} 406 Not Acceptable', + 407 => 'HTTP/{version} 407 Proxy Authentication Required', + 408 => 'HTTP/{version} 408 Request Timeout', + 409 => 'HTTP/{version} 409 Conflict', + 410 => 'HTTP/{version} 410 Gone', + 411 => 'HTTP/{version} 411 Length Required', + 412 => 'HTTP/{version} 412 Precondition Failed', + 413 => 'HTTP/{version} 413 Payload Too Large', + 414 => 'HTTP/{version} 414 URI Too Long', + 415 => 'HTTP/{version} 415 Unsupported Media Type', + 416 => 'HTTP/{version} 416 Range Not Satisfiable', + 417 => 'HTTP/{version} 417 Expectation Failed', + 418 => 'HTTP/{version} 418 I\'m a teapot', + 421 => 'HTTP/{version} 421 Misdirected Request', + 422 => 'HTTP/{version} 422 Unprocessable Entity', + 423 => 'HTTP/{version} 423 Locked', + 424 => 'HTTP/{version} 424 Failed Dependency', + 426 => 'HTTP/{version} 426 Upgrade Required', + 428 => 'HTTP/{version} 428 Precondition Required', + 429 => 'HTTP/{version} 429 Too Many Requests', + 431 => 'HTTP/{version} 431 Request Header Fields Too Large', + 451 => 'HTTP/{version} 451 Unavailable For Legal Reasons', + 500 => 'HTTP/{version} 500 Internal Server Error', + 501 => 'HTTP/{version} 501 Not Implemented', + 502 => 'HTTP/{version} 502 Bad Gateway', + 503 => 'HTTP/{version} 503 Service Unavailable', + 504 => 'HTTP/{version} 504 Gateway Timeout', + 505 => 'HTTP/{version} 505 HTTP Version Not Supported', + 506 => 'HTTP/{version} 506 Variant Also Negotiates', + 507 => 'HTTP/{version} 507 Insufficient Storage', + 508 => 'HTTP/{version} 508 Loop Detected', + 510 => 'HTTP/{version} 510 Not Extended', + 511 => 'HTTP/{version} 511 Network Authentication Required', ); /** @@ -262,6 +270,7 @@ protected function compress() // Set the encoding headers. $this->setHeader('Content-Encoding', $encoding); + $this->setHeader('Vary', 'Accept-Encoding'); $this->setHeader('X-Content-Encoded-By', 'Joomla'); // Replace the output with the encoded data. @@ -325,7 +334,7 @@ protected function respond() * sent this will be accomplished using a JavaScript statement. * * @param string $url The URL to redirect to. Can only be http/https URL - * @param integer $status The HTTP 1.1 status code to be provided. 303 is assumed by default. + * @param integer $status The HTTP status code to be provided. 303 is assumed by default. * * @return void * @@ -375,16 +384,16 @@ public function redirect($url, $status = 303) // If the headers have already been sent we need to send the redirect statement via JavaScript. if ($this->checkHeadersSent()) { - echo "\n"; + echo "\n"; } else { // We have to use a JavaScript redirect here because MSIE doesn't play nice with utf-8 URLs. - if (($this->client->engine == Web\WebClient::TRIDENT) && !$this::isAscii($url)) + if (($this->client->engine == Web\WebClient::TRIDENT) && !static::isAscii($url)) { $html = ''; $html .= ''; - $html .= ''; + $html .= ''; $html .= ''; echo $html; @@ -400,7 +409,7 @@ public function redirect($url, $status = 303) if (!is_int($status) && !$this->isRedirectState($status)) { - throw new \InvalidArgumentException('You have not supplied a valid HTTP 1.1 status code'); + throw new \InvalidArgumentException('You have not supplied a valid HTTP status code'); } // All other cases use the more efficient HTTP header for redirection. @@ -617,9 +626,9 @@ public function getSession() * * @param string|int $value The given status as int or string * - * @return string + * @return string * - * @since 1.8.0 + * @since 1.8.0 */ protected function getHttpStatusValue($value) { @@ -627,20 +636,24 @@ protected function getHttpStatusValue($value) if (array_key_exists($code, $this->responseMap)) { - return $this->responseMap[$code]; + $value = $this->responseMap[$code]; + } + else + { + $value = 'HTTP/{version} ' . $code; } - return 'HTTP/1.1 ' . $code; + return str_replace('{version}', $this->httpVersion, $value); } /** - * Check if the value is a valid HTTP 1.1 status code + * Check if the value is a valid HTTP status code * - * @param int $code The potential status code + * @param integer $code The potential status code * - * @return bool + * @return boolean * - * @since 1.8.1 + * @since 1.8.1 */ public function isValidHttpStatus($code) { @@ -752,11 +765,11 @@ protected function header($string, $replace = true, $code = null) /** * Checks if a state is a redirect state * - * @param integer $state The HTTP 1.1 status code. + * @param integer $state The HTTP status code. * - * @return bool + * @return boolean * - * @since 1.8.0 + * @since 1.8.0 */ protected function isRedirectState($state) { @@ -776,7 +789,14 @@ public function isSslConnection() { $serverSSLVar = $this->input->server->getString('HTTPS', ''); - return (!empty($serverSSLVar) && strtolower($serverSSLVar) != 'off'); + if (!empty($serverSSLVar) && strtolower($serverSSLVar) !== 'off') + { + return true; + } + + $serverForwarderProtoVar = $this->input->server->getString('HTTP_X_FORWARDED_PROTO', ''); + + return !empty($serverForwarderProtoVar) && strtolower($serverForwarderProtoVar) === 'https'; } /** diff --git a/libraries/vendor/joomla/application/src/Cli/CliInput.php b/libraries/vendor/joomla/application/src/Cli/CliInput.php index e4fe34dd0f123..1ae4e43e147c3 100644 --- a/libraries/vendor/joomla/application/src/Cli/CliInput.php +++ b/libraries/vendor/joomla/application/src/Cli/CliInput.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -11,7 +11,8 @@ /** * Class CliInput * - * @since 1.6.0 + * @since 1.6.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ class CliInput { diff --git a/libraries/vendor/joomla/application/src/Cli/CliOutput.php b/libraries/vendor/joomla/application/src/Cli/CliOutput.php index 93c62b9d8c117..46054545914ac 100644 --- a/libraries/vendor/joomla/application/src/Cli/CliOutput.php +++ b/libraries/vendor/joomla/application/src/Cli/CliOutput.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -13,7 +13,8 @@ /** * Class CliOutput * - * @since 1.0 + * @since 1.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ abstract class CliOutput { diff --git a/libraries/vendor/joomla/application/src/Cli/ColorProcessor.php b/libraries/vendor/joomla/application/src/Cli/ColorProcessor.php index 4d8c29cbd786b..1d9f5703b01b8 100644 --- a/libraries/vendor/joomla/application/src/Cli/ColorProcessor.php +++ b/libraries/vendor/joomla/application/src/Cli/ColorProcessor.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -14,7 +14,7 @@ * Class ColorProcessor. * * @since 1.0 - * @deprecated 2.0 Use \Joomla\Application\Cli\Output\Processor\ColorProcessor + * @deprecated 2.0 Use the `joomla/console` package instead */ class ColorProcessor extends RealColorProcessor { diff --git a/libraries/vendor/joomla/application/src/Cli/ColorStyle.php b/libraries/vendor/joomla/application/src/Cli/ColorStyle.php index 831f3e892dbb0..e599c5dbebc85 100644 --- a/libraries/vendor/joomla/application/src/Cli/ColorStyle.php +++ b/libraries/vendor/joomla/application/src/Cli/ColorStyle.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -11,7 +11,8 @@ /** * Class ColorStyle * - * @since 1.0 + * @since 1.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ final class ColorStyle { diff --git a/libraries/vendor/joomla/application/src/Cli/Output/Processor/ColorProcessor.php b/libraries/vendor/joomla/application/src/Cli/Output/Processor/ColorProcessor.php index 22e686cbb891a..b3521ea2378fb 100644 --- a/libraries/vendor/joomla/application/src/Cli/Output/Processor/ColorProcessor.php +++ b/libraries/vendor/joomla/application/src/Cli/Output/Processor/ColorProcessor.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -14,7 +14,8 @@ /** * Class ColorProcessor. * - * @since 1.0 + * @since 1.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ class ColorProcessor implements ProcessorInterface { diff --git a/libraries/vendor/joomla/application/src/Cli/Output/Processor/ProcessorInterface.php b/libraries/vendor/joomla/application/src/Cli/Output/Processor/ProcessorInterface.php index 995a058989c95..924543ac6c0db 100644 --- a/libraries/vendor/joomla/application/src/Cli/Output/Processor/ProcessorInterface.php +++ b/libraries/vendor/joomla/application/src/Cli/Output/Processor/ProcessorInterface.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -11,7 +11,8 @@ /** * Class ProcessorInterface. * - * @since 1.1.0 + * @since 1.1.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ interface ProcessorInterface { diff --git a/libraries/vendor/joomla/application/src/Cli/Output/Stdout.php b/libraries/vendor/joomla/application/src/Cli/Output/Stdout.php index fc8b979e4a0d6..82ae6aa917318 100644 --- a/libraries/vendor/joomla/application/src/Cli/Output/Stdout.php +++ b/libraries/vendor/joomla/application/src/Cli/Output/Stdout.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -13,7 +13,8 @@ /** * Class Stdout. * - * @since 1.0 + * @since 1.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ class Stdout extends CliOutput { diff --git a/libraries/vendor/joomla/application/src/Cli/Output/Xml.php b/libraries/vendor/joomla/application/src/Cli/Output/Xml.php index 2350052245373..4666cb1a941bb 100644 --- a/libraries/vendor/joomla/application/src/Cli/Output/Xml.php +++ b/libraries/vendor/joomla/application/src/Cli/Output/Xml.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ @@ -13,7 +13,8 @@ /** * Class Xml. * - * @since 1.0 + * @since 1.0 + * @deprecated 2.0 Use the `joomla/console` package instead */ class Xml extends CliOutput { diff --git a/libraries/vendor/joomla/application/src/Web/WebClient.php b/libraries/vendor/joomla/application/src/Web/WebClient.php index 1b64bbe20592e..80ec8aed52c2f 100644 --- a/libraries/vendor/joomla/application/src/Web/WebClient.php +++ b/libraries/vendor/joomla/application/src/Web/WebClient.php @@ -2,7 +2,7 @@ /** * Part of the Joomla Framework Application Package * - * @copyright Copyright (C) 2005 - 2016 Open Source Matters, Inc. All rights reserved. + * @copyright Copyright (C) 2005 - 2018 Open Source Matters, Inc. All rights reserved. * @license GNU General Public License version 2 or later; see LICENSE */ From 1d8a06468bb6185eead9a0ed0fdd4b5e986b5001 Mon Sep 17 00:00:00 2001 From: Michael Babker Date: Sun, 20 May 2018 11:02:57 -0500 Subject: [PATCH 20/34] Store plaintext passwords in a separate options key, do not display passwords on summary page --- installation/controller/install/email.php | 6 +++--- installation/controller/removefolder.php | 2 +- installation/model/configuration.php | 16 ++++++++------- installation/model/database.php | 4 ++-- installation/model/ftp.php | 4 ++-- installation/model/setup.php | 13 ++++++++++++ installation/view/summary/tmpl/default.php | 24 ---------------------- 7 files changed, 30 insertions(+), 39 deletions(-) diff --git a/installation/controller/install/email.php b/installation/controller/install/email.php index 424eb23d146b5..c4ddce6a4b4f0 100644 --- a/installation/controller/install/email.php +++ b/installation/controller/install/email.php @@ -68,7 +68,7 @@ public function execute() if ($options['summary_email_passwords']) { - $body[] = array(JText::_('INSTL_ADMIN_PASSWORD_LABEL'), $options['admin_password']); + $body[] = array(JText::_('INSTL_ADMIN_PASSWORD_LABEL'), $options['admin_password_plain']); } $body[] = $this->emailTitle(JText::_('INSTL_DATABASE')); @@ -78,7 +78,7 @@ public function execute() if ($options['summary_email_passwords']) { - $body[] = array(JText::_('INSTL_DATABASE_PASSWORD_LABEL'), $options['db_pass']); + $body[] = array(JText::_('INSTL_DATABASE_PASSWORD_LABEL'), $options['db_pass_plain']); } $body[] = array(JText::_('INSTL_DATABASE_NAME_LABEL'), $options['db_name']); @@ -91,7 +91,7 @@ public function execute() if ($options['summary_email_passwords']) { - $body[] = array( JText::_('INSTL_FTP_PASSWORD_LABEL'), $options['ftp_pass']); + $body[] = array( JText::_('INSTL_FTP_PASSWORD_LABEL'), $options['ftp_pass_plain']); } $body[] = array(JText::_('INSTL_FTP_HOST_LABEL'), $options['ftp_host']); diff --git a/installation/controller/removefolder.php b/installation/controller/removefolder.php index 56bf13f5ebd98..4e9f2eb1805bc 100644 --- a/installation/controller/removefolder.php +++ b/installation/controller/removefolder.php @@ -64,7 +64,7 @@ public function execute() { // Connect the FTP client. $ftp = JClientFtp::getInstance($options->ftp_host, $options->ftp_port); - $ftp->login($options->ftp_user, $options->ftp_pass); + $ftp->login($options->ftp_user, $options->ftp_pass_plain); // Translate path for the FTP account. $file = JPath::clean(str_replace(JPATH_CONFIGURATION, $options->ftp_root, $path), '/'); diff --git a/installation/model/configuration.php b/installation/model/configuration.php index c31a544911a76..44e080f7f5bce 100644 --- a/installation/model/configuration.php +++ b/installation/model/configuration.php @@ -59,6 +59,8 @@ public function setup($options) */ public function createConfiguration($options) { + $saveFtp = isset($options->ftp_save) && $options->ftp_save; + // Create a new registry to build the configuration options. $registry = new Registry; @@ -81,7 +83,7 @@ public function createConfiguration($options) $registry->set('dbtype', $options->db_type); $registry->set('host', $options->db_host); $registry->set('user', $options->db_user); - $registry->set('password', $options->db_pass); + $registry->set('password', $options->db_pass_plain); $registry->set('db', $options->db_name); $registry->set('dbprefix', $options->db_prefix); @@ -93,9 +95,9 @@ public function createConfiguration($options) $registry->set('helpurl', $options->helpurl); $registry->set('ftp_host', isset($options->ftp_host) ? $options->ftp_host : ''); $registry->set('ftp_port', isset($options->ftp_host) ? $options->ftp_port : ''); - $registry->set('ftp_user', (isset($options->ftp_save) && $options->ftp_save && isset($options->ftp_user)) ? $options->ftp_user : ''); - $registry->set('ftp_pass', (isset($options->ftp_save) && $options->ftp_save && isset($options->ftp_pass)) ? $options->ftp_pass : ''); - $registry->set('ftp_root', (isset($options->ftp_save) && $options->ftp_save && isset($options->ftp_root)) ? $options->ftp_root : ''); + $registry->set('ftp_user', ($saveFtp && isset($options->ftp_user)) ? $options->ftp_user : ''); + $registry->set('ftp_pass', ($saveFtp && isset($options->ftp_pass_plain)) ? $options->ftp_pass_plain : ''); + $registry->set('ftp_root', ($saveFtp && isset($options->ftp_root)) ? $options->ftp_root : ''); $registry->set('ftp_enable', isset($options->ftp_host) ? $options->ftp_enable : 0); // Locale settings. @@ -192,7 +194,7 @@ public function createConfiguration($options) { // Connect the FTP client. $ftp = JClientFtp::getInstance($options->ftp_host, $options->ftp_port); - $ftp->login($options->ftp_user, $options->ftp_pass); + $ftp->login($options->ftp_user, $options->ftp_pass_plain); // Translate path for the FTP account. $file = JPath::clean(str_replace(JPATH_CONFIGURATION, $options->ftp_root, $path), '/'); @@ -241,7 +243,7 @@ private function createRootUser($options) $options->db_type, $options->db_host, $options->db_user, - $options->db_pass, + $options->db_pass_plain, $options->db_name, $options->db_prefix ); @@ -253,7 +255,7 @@ private function createRootUser($options) return false; } - $cryptpass = JUserHelper::hashPassword($options->admin_password); + $cryptpass = JUserHelper::hashPassword($options->admin_password_plain); // Take the admin user id. $userId = InstallationModelDatabase::getUserId(); diff --git a/installation/model/database.php b/installation/model/database.php index 22a90ca811eda..271366371c3ed 100644 --- a/installation/model/database.php +++ b/installation/model/database.php @@ -280,7 +280,7 @@ public function initialise($options) $options->db_type, $options->db_host, $options->db_user, - $options->db_pass, + $options->db_pass_plain, $options->db_name, $options->db_prefix, $options->db_select @@ -350,7 +350,7 @@ public function createDatabase($options) 'driver' => $options->db_type, 'host' => $options->db_host, 'user' => $options->db_user, - 'password' => $options->db_pass, + 'password' => $options->db_pass_plain, 'prefix' => $options->db_prefix, 'select' => $options->db_select, ); diff --git a/installation/model/ftp.php b/installation/model/ftp.php index 44af989665cf2..d376108f03fa2 100644 --- a/installation/model/ftp.php +++ b/installation/model/ftp.php @@ -46,7 +46,7 @@ public function detectFtpRoot($options) return false; } - if (!$ftp->login($options->get('ftp_user'), $options->get('ftp_pass'))) + if (!$ftp->login($options->get('ftp_user'), $options->get('ftp_pass_plain'))) { JFactory::getApplication()->enqueueMessage(JText::_('INSTL_FTP_NOLOGIN'), 'error'); @@ -162,7 +162,7 @@ public function verifyFtpSettings($options) return false; } - if (!$ftp->login($options->get('ftp_user'), $options->get('ftp_pass'))) + if (!$ftp->login($options->get('ftp_user'), $options->get('ftp_pass_plain'))) { $ftp->quit(); JFactory::getApplication()->enqueueMessage(JText::_('INSTL_FTP_NOLOGIN'), 'error'); diff --git a/installation/model/setup.php b/installation/model/setup.php index adfd24a6c967a..a90bd98e2908a 100644 --- a/installation/model/setup.php +++ b/installation/model/setup.php @@ -48,6 +48,19 @@ public function storeOptions($options) $options['language'] = JFactory::getLanguage()->getTag(); } + // Store passwords as a separate key that is not used in the forms + foreach (array('admin_password', 'db_pass', 'ftp_pass') as $passwordField) + { + if (isset($options[$passwordField])) + { + $plainTextKey = $passwordField . '_plain'; + + $options[$plainTextKey] = $options[$passwordField]; + + unset($options[$passwordField]); + } + } + // Get the session $session = JFactory::getSession(); $options['helpurl'] = $session->get('setup.helpurl', null); diff --git a/installation/view/summary/tmpl/default.php b/installation/view/summary/tmpl/default.php index 32227981a1e0c..9d961ea6c6e49 100644 --- a/installation/view/summary/tmpl/default.php +++ b/installation/view/summary/tmpl/default.php @@ -119,14 +119,6 @@ options['admin_user']; ?> - - - - - - options['admin_password'] ? '***': ''; ?> - - @@ -164,14 +156,6 @@ options['db_user']; ?> - - - - - - options['db_pass'] ? '***': ''; ?> - - @@ -233,14 +217,6 @@ options['ftp_user']; ?> - - - - - - options['ftp_pass'] ? '***': ''; ?> - - From 99ed72d8f191325eba012e3c590b8626d9daed54 Mon Sep 17 00:00:00 2001 From: Michael Babker Date: Sun, 20 May 2018 11:04:48 -0500 Subject: [PATCH 21/34] Prepare 3.8.8 release --- .../com_media/views/images/tmpl/default.php | 2 +- .../views/imageslist/tmpl/default_folder.php | 4 +- .../views/imageslist/tmpl/default_image.php | 6 +- .../com_media/views/media/tmpl/default.php | 8 +-- .../views/media/tmpl/default_folders.php | 4 +- .../views/medialist/tmpl/details.php | 4 +- .../views/medialist/tmpl/details_doc.php | 12 ++-- .../views/medialist/tmpl/details_docs.php | 12 ++-- .../views/medialist/tmpl/details_folder.php | 6 +- .../views/medialist/tmpl/details_folders.php | 8 +-- .../views/medialist/tmpl/details_img.php | 8 +-- .../views/medialist/tmpl/details_imgs.php | 10 +-- .../views/medialist/tmpl/details_up.php | 4 +- .../views/medialist/tmpl/details_video.php | 10 +-- .../views/medialist/tmpl/details_videos.php | 12 ++-- .../com_media/views/medialist/tmpl/thumbs.php | 4 +- .../views/medialist/tmpl/thumbs_docs.php | 12 ++-- .../views/medialist/tmpl/thumbs_folders.php | 10 +-- .../views/medialist/tmpl/thumbs_imgs.php | 14 ++-- .../views/medialist/tmpl/thumbs_up.php | 4 +- .../views/medialist/tmpl/thumbs_videos.php | 10 +-- .../com_users/controllers/level.php | 41 +++++++++++ .../components/com_users/models/level.php | 71 ++++++++++++++++++- .../com_users/views/level/tmpl/edit.php | 2 +- .../com_users/views/levels/tmpl/default.php | 14 +++- administrator/manifests/files/joomla.xml | 2 +- .../com_media/imageslist/default_folder.php | 2 +- .../com_media/imageslist/default_image.php | 6 +- .../com_media/medialist/thumbs_folders.php | 10 +-- .../html/com_media/medialist/thumbs_imgs.php | 12 ++-- components/com_tags/controllers/tags.php | 11 ++- libraries/joomla/session/handler/joomla.php | 8 ++- libraries/legacy/application/application.php | 4 +- libraries/src/Application/WebApplication.php | 4 +- libraries/src/Filter/InputFilter.php | 2 +- libraries/src/Version.php | 10 +-- modules/mod_random_image/tmpl/default.php | 2 +- plugins/fields/editor/editor.xml | 1 + plugins/fields/editor/params/editor.xml | 1 + plugins/fields/text/params/text.xml | 1 + plugins/fields/text/text.xml | 1 + plugins/fields/textarea/params/textarea.xml | 1 + plugins/fields/textarea/textarea.xml | 1 + .../com_media/imageslist/default_image.php | 6 +- .../cms/application/JApplicationCmsTest.php | 4 +- .../application/JApplicationWebTest.php | 4 +- 46 files changed, 262 insertions(+), 123 deletions(-) diff --git a/administrator/components/com_media/views/images/tmpl/default.php b/administrator/components/com_media/views/images/tmpl/default.php index 1e2dd7a602cea..4baf462ad6479 100644 --- a/administrator/components/com_media/views/images/tmpl/default.php +++ b/administrator/components/com_media/views/images/tmpl/default.php @@ -91,7 +91,7 @@
- +
diff --git a/administrator/components/com_media/views/imageslist/tmpl/default_folder.php b/administrator/components/com_media/views/imageslist/tmpl/default_folder.php index e3e503a054b00..c7acd2bfed2be 100644 --- a/administrator/components/com_media/views/imageslist/tmpl/default_folder.php +++ b/administrator/components/com_media/views/imageslist/tmpl/default_folder.php @@ -12,12 +12,12 @@ $input = JFactory::getApplication()->input; ?>
  • - +
    - _tmp_folder->name, 10, false); ?> + escape($this->_tmp_folder->name), 10, false); ?>
  • diff --git a/administrator/components/com_media/views/imageslist/tmpl/default_image.php b/administrator/components/com_media/views/imageslist/tmpl/default_image.php index 06dec4b41d7f6..543c003fd8cd2 100644 --- a/administrator/components/com_media/views/imageslist/tmpl/default_image.php +++ b/administrator/components/com_media/views/imageslist/tmpl/default_image.php @@ -17,12 +17,12 @@ ?>
  • - +
    - baseURL . '/' . $this->_tmp_img->path_relative, JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_60, 'height' => $this->_tmp_img->height_60)); ?> + baseURL . '/' . $this->escape($this->_tmp_img->path_relative), JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->escape($this->_tmp_img->title), JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_60, 'height' => $this->_tmp_img->height_60)); ?>
    - _tmp_img->name, 10, false); ?> + escape($this->_tmp_img->name), 10, false); ?>
  • diff --git a/administrator/components/com_media/views/media/tmpl/default.php b/administrator/components/com_media/views/media/tmpl/default.php index 800cdd9e73620..bc1488dd82779 100644 --- a/administrator/components/com_media/views/media/tmpl/default.php +++ b/administrator/components/com_media/views/media/tmpl/default.php @@ -77,7 +77,7 @@
    - +
    authorise('core.create', 'com_media')) : ?> @@ -94,7 +94,7 @@

    - + set('com_media.return_url', 'index.php?option=com_media'); ?>
    @@ -104,7 +104,7 @@
    - +
    @@ -115,7 +115,7 @@
    - +
    diff --git a/administrator/components/com_media/views/media/tmpl/default_folders.php b/administrator/components/com_media/views/media/tmpl/default_folders.php index 1d10cdf07cc3c..9bf6e6b91b96e 100644 --- a/administrator/components/com_media/views/media/tmpl/default_folders.php +++ b/administrator/components/com_media/views/media/tmpl/default_folders.php @@ -19,9 +19,9 @@ // Get a sanitised name for the target $target = str_replace('/', '-', $folder['data']->relative); ?>
  • - + - name; ?> + escape($folder['data']->name); ?> getFolderLevel($folder); ?>
  • diff --git a/administrator/components/com_media/views/medialist/tmpl/details.php b/administrator/components/com_media/views/medialist/tmpl/details.php index 1c5d498db897f..716751309c475 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details.php +++ b/administrator/components/com_media/views/medialist/tmpl/details.php @@ -81,13 +81,13 @@ " ); ?> - +

    get($path, 'images'), - ($this->state->folder != '') ? '/' . $this->state->folder : ''; + ($this->escape($this->state->folder) != '') ? '/' . $this->escape($this->state->folder) : ''; ?>

    diff --git a/administrator/components/com_media/views/medialist/tmpl/details_doc.php b/administrator/components/com_media/views/medialist/tmpl/details_doc.php index 9dda134d5ba70..51d30eee1c50c 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_doc.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_doc.php @@ -20,11 +20,11 @@ - - _tmp_doc->icon_16, $this->_tmp_doc->title, null, true, true) ? JHtml::_('image', $this->_tmp_doc->icon_16, $this->_tmp_doc->title, array('width' => 16, 'height' => 16), true) : JHtml::_('image', 'media/con_info.png', $this->_tmp_doc->title, array('width' => 16, 'height' => 16), true);?> + + _tmp_doc->icon_16, $this->escape($this->_tmp_doc->title), null, true, true) ? JHtml::_('image', $this->_tmp_doc->icon_16, $this->_tmp_doc->title, array('width' => 16, 'height' => 16), true) : JHtml::_('image', 'media/con_info.png', $this->escape($this->_tmp_doc->title), array('width' => 16, 'height' => 16), true);?> - - _tmp_doc->title; ?> + + escape($this->_tmp_doc->title); ?>   @@ -34,8 +34,8 @@ authorise('core.delete', 'com_media')):?> - - + + diff --git a/administrator/components/com_media/views/medialist/tmpl/details_docs.php b/administrator/components/com_media/views/medialist/tmpl/details_docs.php index ad13877202b17..83ef738833736 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_docs.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_docs.php @@ -21,18 +21,18 @@ canDelete) : ?> - name, false, 'rm', 'cb-document'); ?> + escape($doc->name), false, 'rm', 'cb-document'); ?> - - icon_16, $doc->title, null, true, true) ? JHtml::_('image', $doc->icon_16, $doc->title, array('width' => 16, 'height' => 16), true) : JHtml::_('image', 'media/con_info.png', $doc->title, array('width' => 16, 'height' => 16), true); ?> + + icon_16, $this->escape($doc->title), null, true, true) ? JHtml::_('image', $doc->icon_16, $this->escape($doc->title), array('width' => 16, 'height' => 16), true) : JHtml::_('image', 'media/con_info.png', $this->escape($doc->title), array('width' => 16, 'height' => 16), true); ?> - - title; ?> + + escape($doc->title); ?>   @@ -43,7 +43,7 @@ canDelete) : ?> - + diff --git a/administrator/components/com_media/views/medialist/tmpl/details_folder.php b/administrator/components/com_media/views/medialist/tmpl/details_folder.php index 52999c9580161..6514c8e82d512 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_folder.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_folder.php @@ -14,11 +14,11 @@ ?> - + - _tmp_folder->name; ?> + escape($this->_tmp_folder->name); ?>   @@ -28,7 +28,7 @@ authorise('core.delete', 'com_media')):?> - + diff --git a/administrator/components/com_media/views/medialist/tmpl/details_folders.php b/administrator/components/com_media/views/medialist/tmpl/details_folders.php index 078fd93c2aa75..8971eba4073cb 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_folders.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_folders.php @@ -12,11 +12,11 @@ ?> folders as $i => $folder) : ?> - path_relative; ?> + path_relative); ?> canDelete) : ?> - name, false, 'rm', 'cb-folder'); ?> + escape($folder->name), false, 'rm', 'cb-folder'); ?> @@ -24,7 +24,7 @@ - name; ?> + escape($folder->name); ?>   @@ -33,7 +33,7 @@ canDelete) : ?> - + diff --git a/administrator/components/com_media/views/medialist/tmpl/details_img.php b/administrator/components/com_media/views/medialist/tmpl/details_img.php index 82ef0681e4c45..c4c2090f3203d 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_img.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_img.php @@ -21,10 +21,10 @@ - _tmp_img->path_relative, JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_16, 'height' => $this->_tmp_img->height_16)); ?> + escape($this->_tmp_img->path_relative), JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_16, 'height' => $this->_tmp_img->height_16)); ?> - escape($this->_tmp_img->title); ?> + escape($this->_tmp_img->title); ?> _tmp_img->width, $this->_tmp_img->height); ?> @@ -34,8 +34,8 @@ authorise('core.delete', 'com_media')):?> - - + + diff --git a/administrator/components/com_media/views/medialist/tmpl/details_imgs.php b/administrator/components/com_media/views/medialist/tmpl/details_imgs.php index 635fb7efb8551..58ec9a8316750 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_imgs.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_imgs.php @@ -23,18 +23,18 @@ canDelete) : ?> - name, false, 'rm', 'cb-image'); ?> + escape($image->name), false, 'rm', 'cb-image'); ?> - - path_relative, JText::sprintf('COM_MEDIA_IMAGE_TITLE', $image->title, JHtml::_('number.bytes', $image->size)), array('width' => $image->width_16, 'height' => $image->height_16)); ?> + + escape($image->path_relative), JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->escape($image->title), JHtml::_('number.bytes', $image->size)), array('width' => $image->width_16, 'height' => $image->height_16)); ?> - + escape($image->title); ?> @@ -49,7 +49,7 @@ canDelete) : ?> - + diff --git a/administrator/components/com_media/views/medialist/tmpl/details_up.php b/administrator/components/com_media/views/medialist/tmpl/details_up.php index 27dbe632dcd2c..8e5adb2c5adb0 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_up.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_up.php @@ -17,11 +17,11 @@   - + - .. + ..     diff --git a/administrator/components/com_media/views/medialist/tmpl/details_video.php b/administrator/components/com_media/views/medialist/tmpl/details_video.php index 305ae3077839b..e19ed665b96dd 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_video.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_video.php @@ -29,11 +29,11 @@ - _tmp_video->icon_16, $this->_tmp_video->title, null, true); ?> + _tmp_video->icon_16, $this->escape($this->_tmp_video->title), null, true); ?> - - _tmp_video->name, 10, false); ?> + + escape($this->_tmp_video->name), 10, false); ?> @@ -44,8 +44,8 @@ authorise('core.delete', 'com_media')):?> - - + + diff --git a/administrator/components/com_media/views/medialist/tmpl/details_videos.php b/administrator/components/com_media/views/medialist/tmpl/details_videos.php index 420d7621eb0cf..358dbcc5c3d6e 100644 --- a/administrator/components/com_media/views/medialist/tmpl/details_videos.php +++ b/administrator/components/com_media/views/medialist/tmpl/details_videos.php @@ -30,19 +30,19 @@ canDelete) : ?> - name, false, 'rm', 'cb-video'); ?> + escape($video->name), false, 'rm', 'cb-video'); ?> - - icon_16, $video->title, null, true); ?> + + icon_16, $this->escape($video->title), null, true); ?> - - name, 10, false); ?> + + escape($video->name), 10, false); ?> @@ -56,7 +56,7 @@ canDelete) : ?> - + diff --git a/administrator/components/com_media/views/medialist/tmpl/thumbs.php b/administrator/components/com_media/views/medialist/tmpl/thumbs.php index f1428a664f209..95c88e028fa4b 100644 --- a/administrator/components/com_media/views/medialist/tmpl/thumbs.php +++ b/administrator/components/com_media/views/medialist/tmpl/thumbs.php @@ -81,13 +81,13 @@ " ); ?> - + diff --git a/administrator/components/com_media/views/medialist/tmpl/thumbs_docs.php b/administrator/components/com_media/views/medialist/tmpl/thumbs_docs.php index 22854c73ed844..e9ff7cf7f548a 100644 --- a/administrator/components/com_media/views/medialist/tmpl/thumbs_docs.php +++ b/administrator/components/com_media/views/medialist/tmpl/thumbs_docs.php @@ -19,21 +19,21 @@ trigger('onContentBeforeDisplay', array('com_media.file', &$doc, &$params)); ?>
  • canDelete) : ?> - × + ×
    - name, false, 'rm', 'cb-document'); ?> + escape($doc->name), false, 'rm', 'cb-document'); ?>
    -
    - name, 10, false); ?> +
    + escape($doc->name), 10, false); ?>
  • trigger('onContentAfterDisplay', array('com_media.file', &$doc, &$params)); ?> diff --git a/administrator/components/com_media/views/medialist/tmpl/thumbs_folders.php b/administrator/components/com_media/views/medialist/tmpl/thumbs_folders.php index 34e678046a4b1..03483e24eb673 100644 --- a/administrator/components/com_media/views/medialist/tmpl/thumbs_folders.php +++ b/administrator/components/com_media/views/medialist/tmpl/thumbs_folders.php @@ -13,22 +13,22 @@ folders as $i => $folder) : ?>
  • canDelete) : ?> - × + ×
    - name, false, 'rm', 'cb-folder'); ?> + escape($folder->name), false, 'rm', 'cb-folder'); ?>
  • diff --git a/administrator/components/com_media/views/medialist/tmpl/thumbs_imgs.php b/administrator/components/com_media/views/medialist/tmpl/thumbs_imgs.php index 61ad6807862fb..079137da1cfb7 100644 --- a/administrator/components/com_media/views/medialist/tmpl/thumbs_imgs.php +++ b/administrator/components/com_media/views/medialist/tmpl/thumbs_imgs.php @@ -20,23 +20,23 @@
  • canDelete) : ?> × + href="index.php?option=com_media&task=file.delete&tmpl=index&=1&folder=state->folder); ?>&rm[]=escape($img->name); ?>" + rel="escape($img->name); ?>" title="">×
    - name, false, 'rm', 'cb-image'); ?> + escape($img->name), false, 'rm', 'cb-image'); ?>
  • diff --git a/administrator/components/com_media/views/medialist/tmpl/thumbs_up.php b/administrator/components/com_media/views/medialist/tmpl/thumbs_up.php index eec7f167ad902..89c53d0b606f3 100644 --- a/administrator/components/com_media/views/medialist/tmpl/thumbs_up.php +++ b/administrator/components/com_media/views/medialist/tmpl/thumbs_up.php @@ -13,7 +13,7 @@
  • @@ -21,7 +21,7 @@  
  • - .. + ..
    diff --git a/administrator/components/com_media/views/medialist/tmpl/thumbs_videos.php b/administrator/components/com_media/views/medialist/tmpl/thumbs_videos.php index 6b9502eb04883..b3b40e249804a 100644 --- a/administrator/components/com_media/views/medialist/tmpl/thumbs_videos.php +++ b/administrator/components/com_media/views/medialist/tmpl/thumbs_videos.php @@ -26,20 +26,20 @@ trigger('onContentBeforeDisplay', array('com_media.file', &$video, &$params)); ?>
  • canDelete) : ?> - × + ×
    - name, false, 'rm', 'cb-video'); ?> + escape($video->name), false, 'rm', 'cb-video'); ?>
    - icon_32, $video->title, null, true); ?> + icon_32, $this->escape($video->title), null, true); ?>
  • diff --git a/administrator/components/com_users/controllers/level.php b/administrator/components/com_users/controllers/level.php index 7f1fb6a48c70f..e5a518d1e5782 100644 --- a/administrator/components/com_users/controllers/level.php +++ b/administrator/components/com_users/controllers/level.php @@ -41,6 +41,47 @@ protected function allowSave($data, $key = 'id') return (JFactory::getUser()->authorise('core.admin', $this->option) && parent::allowSave($data, $key)); } + /** + * Overrides JControllerForm::allowEdit + * + * Checks that non-Super Admins are not editing Super Admins. + * + * @param array $data An array of input data. + * @param string $key The name of the key for the primary key. + * + * @return boolean + * + * @since 3.8.8 + */ + protected function allowEdit($data = array(), $key = 'id') + { + // Get user instance + $user = JFactory::getUser(); + + // Check for if Super Admin can edit + $db = JFactory::getDbo(); + $query = $db->getQuery(true) + ->select('*') + ->from($db->quoteName('#__viewlevels')) + ->where($db->quoteName('id') . ' = ' . (int) $data['id']); + $db->setQuery($query); + + $viewlevel = $db->loadAssoc(); + + // Decode level groups + $groups = json_decode($viewlevel['rules']); + + // If this group is super admin and this user is not super admin, canEdit is false + if (!$user->authorise('core.admin') && JAccess::checkGroup($groups[0], 'core.admin')) + { + $this->setError(JText::sprintf('JLIB_APPLICATION_ERROR_EDIT_NOT_PERMITTED')); + + return false; + } + + return parent::allowEdit($data, $key); + } + /** * Removes an item. * diff --git a/administrator/components/com_users/models/level.php b/administrator/components/com_users/models/level.php index 5bcdb8860e6bf..3a0f763a0ff85 100644 --- a/administrator/components/com_users/models/level.php +++ b/administrator/components/com_users/models/level.php @@ -9,12 +9,20 @@ defined('_JEXEC') or die; + +use Joomla\CMS\Access\Access; +use Joomla\CMS\Factory; +use Joomla\CMS\Helper\UserGroupsHelper; +use Joomla\CMS\Language\Text; +use Joomla\CMS\MVC\Model\AdminModel; +use Joomla\Utilities\ArrayHelper; + /** * User view level model. * * @since 1.6 */ -class UsersModelLevel extends JModelAdmin +class UsersModelLevel extends AdminModel { /** * @var array A list of the access levels in use. @@ -217,4 +225,65 @@ public function save($data) return parent::save($data); } + + /** + * Method to validate the form data. + * + * @param \JForm $form The form to validate against. + * @param array $data The data to validate. + * @param string $group The name of the field group to validate. + * + * @return array|boolean Array of filtered data if valid, false otherwise. + * + * @see \JFormRule + * @see \JFilterInput + * @since 3.8.8 + */ + public function validate($form, $data, $group = null) + { + $isSuperAdmin = Factory::getUser()->authorise('core.admin'); + + // Non Super user should not be able to change the access levels of super user groups + if (!$isSuperAdmin) + { + if (!isset($data['rules']) || !is_array($data['rules'])) + { + $data['rules'] = array(); + } + + $groups = array_values(UserGroupsHelper::getInstance()->getAll()); + + $rules = array(); + + if (!empty($data['id'])) + { + $table = $this->getTable(); + + $table->load($data['id']); + + $rules = json_decode($table->rules); + } + + $rules = ArrayHelper::toInteger($rules); + + for ($i = 0, $n = count($groups); $i < $n; ++$i) + { + if (Access::checkGroup((int) $groups[$i]->id, 'core.admin')) + { + if (in_array($groups[$i]->id, $rules) && !in_array($groups[$i]->id, $data['rules'])) + { + $data['rules'][] = (int) $groups[$i]->id; + } + elseif (!in_array($groups[$i]->id, $rules) && in_array($groups[$i]->id, $data['rules'])) + { + $this->setError(Text::_('JLIB_USER_ERROR_NOT_SUPERADMIN')); + + return false; + } + } + } + } + + return parent::validate($form, $data, $group); + } } diff --git a/administrator/components/com_users/views/level/tmpl/edit.php b/administrator/components/com_users/views/level/tmpl/edit.php index 61aec7df4b292..2c081a34c79a9 100644 --- a/administrator/components/com_users/views/level/tmpl/edit.php +++ b/administrator/components/com_users/views/level/tmpl/edit.php @@ -40,7 +40,7 @@
    - item->rules); ?> + item->rules, true); ?>
    diff --git a/administrator/components/com_users/views/levels/tmpl/default.php b/administrator/components/com_users/views/levels/tmpl/default.php index 14b6e6d60bb36..98c69bc613279 100644 --- a/administrator/components/com_users/views/levels/tmpl/default.php +++ b/administrator/components/com_users/views/levels/tmpl/default.php @@ -78,6 +78,16 @@ $canCreate = $user->authorise('core.create', 'com_users'); $canEdit = $user->authorise('core.edit', 'com_users'); $canChange = $user->authorise('core.edit.state', 'com_users'); + + // Decode level groups + $groups = json_decode($item->rules); + + // If this group is super admin and this user is not super admin, $canEdit is false + if (!JFactory::getUser()->authorise('core.admin') && JAccess::checkGroup($groups[0], 'core.admin')) + { + $canEdit = false; + $canChange = false; + } ?> @@ -100,7 +110,9 @@ - id); ?> + + id); ?> + diff --git a/administrator/manifests/files/joomla.xml b/administrator/manifests/files/joomla.xml index 2181807c027e2..989ba3179e47f 100644 --- a/administrator/manifests/files/joomla.xml +++ b/administrator/manifests/files/joomla.xml @@ -6,7 +6,7 @@ www.joomla.org (C) 2005 - 2018 Open Source Matters. All rights reserved GNU General Public License version 2 or later; see LICENSE.txt - 3.8.8-dev + 3.8.8 May 2018 FILES_JOOMLA_XML_DESCRIPTION diff --git a/administrator/templates/isis/html/com_media/imageslist/default_folder.php b/administrator/templates/isis/html/com_media/imageslist/default_folder.php index 6fd2b12f53dd1..fb0b77403e6f6 100644 --- a/administrator/templates/isis/html/com_media/imageslist/default_folder.php +++ b/administrator/templates/isis/html/com_media/imageslist/default_folder.php @@ -12,7 +12,7 @@ $input = JFactory::getApplication()->input; ?>
  • - +
    diff --git a/administrator/templates/isis/html/com_media/imageslist/default_image.php b/administrator/templates/isis/html/com_media/imageslist/default_image.php index 6a5eea836df14..5f1597b350b21 100644 --- a/administrator/templates/isis/html/com_media/imageslist/default_image.php +++ b/administrator/templates/isis/html/com_media/imageslist/default_image.php @@ -17,14 +17,14 @@ ?>
  • - +
    - baseURL . '/' . $this->_tmp_img->path_relative, JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_60, 'height' => $this->_tmp_img->height_60)); ?> + baseURL . '/' . $this->escape($this->_tmp_img->path_relative), JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_60, 'height' => $this->_tmp_img->height_60)); ?>
    - _tmp_img->name, 10, false); ?> + escape($this->_tmp_img->name), 10, false); ?>
  • diff --git a/administrator/templates/isis/html/com_media/medialist/thumbs_folders.php b/administrator/templates/isis/html/com_media/medialist/thumbs_folders.php index 2a62670982838..192c4f14abb6b 100644 --- a/administrator/templates/isis/html/com_media/medialist/thumbs_folders.php +++ b/administrator/templates/isis/html/com_media/medialist/thumbs_folders.php @@ -13,22 +13,22 @@ folders as $i => $folder) : ?>
  • canDelete):?> - × + ×
    - name, false, 'rm', 'cb-folder'); ?> + escape($folder->name), false, 'rm', 'cb-folder'); ?>
  • diff --git a/administrator/templates/isis/html/com_media/medialist/thumbs_imgs.php b/administrator/templates/isis/html/com_media/medialist/thumbs_imgs.php index ae1afdcc39ea2..6297e67ab6466 100644 --- a/administrator/templates/isis/html/com_media/medialist/thumbs_imgs.php +++ b/administrator/templates/isis/html/com_media/medialist/thumbs_imgs.php @@ -22,23 +22,23 @@ canDelete):?>
    + href="index.php?option=com_media&task=file.delete&tmpl=index&=1&folder=state->folder); ?>&rm[]=escape($img->name); ?>" + rel="escape($img->name); ?>" title="">
    canDelete):?> - name, false, 'rm', 'cb-image'); ?> + escape($img->name), false, 'rm', 'cb-image'); ?>
    diff --git a/components/com_tags/controllers/tags.php b/components/com_tags/controllers/tags.php index effd2fd57e2cc..397a05cf5d378 100644 --- a/components/com_tags/controllers/tags.php +++ b/components/com_tags/controllers/tags.php @@ -25,6 +25,7 @@ public function searchAjax() { // Required objects $app = JFactory::getApplication(); + $user = JFactory::getUser(); // Receive request data $filters = array( @@ -35,7 +36,15 @@ public function searchAjax() 'parent_id' => $app->input->get('parent_id', 0, 'int'), ); - if ($results = JHelperTags::searchTags($filters)) + if ((!$user->authorise('core.edit.state', 'com_tags')) && (!$user->authorise('core.edit', 'com_tags'))) + { + // Filter on published for those who do not have edit or edit.state rights. + $filters['published'] = 1; + } + + $results = JHelperTags::searchTags($filters); + + if ($results) { // Output a JSON object echo json_encode($results); diff --git a/libraries/joomla/session/handler/joomla.php b/libraries/joomla/session/handler/joomla.php index e9128baaaf4b5..db669395e67e6 100644 --- a/libraries/joomla/session/handler/joomla.php +++ b/libraries/joomla/session/handler/joomla.php @@ -97,7 +97,7 @@ public function start() */ public function clear() { - $session_name = $this->getName(); + $sessionName = $this->getName(); /* * In order to kill the session altogether, such as to log the user out, the session id @@ -105,9 +105,11 @@ public function clear() * then the session cookie must be deleted. * We need to use setcookie here or we will get a warning in some session handlers (ex: files). */ - if (isset($_COOKIE[$session_name])) + if (isset($_COOKIE[$sessionName])) { - setcookie($session_name, '', 1); + $cookie = session_get_cookie_params(); + + setcookie($sessionName, '', 1, $cookie['path'], $cookie['domain'], $cookie['secure'], true); } parent::clear(); diff --git a/libraries/legacy/application/application.php b/libraries/legacy/application/application.php index 6543519dc7a56..2b25277e87633 100644 --- a/libraries/legacy/application/application.php +++ b/libraries/legacy/application/application.php @@ -388,7 +388,7 @@ public function redirect($url, $msg = '', $msgType = 'message', $moved = false) // so we will output a javascript redirect statement. if (headers_sent()) { - echo "\n"; + echo "\n"; } else { @@ -400,7 +400,7 @@ public function redirect($url, $msg = '', $msgType = 'message', $moved = false) { // MSIE type browser and/or server cause issues when URL contains utf8 character,so use a javascript redirect method echo '' - . ''; + . ''; } else { diff --git a/libraries/src/Application/WebApplication.php b/libraries/src/Application/WebApplication.php index ca71bc5ec0b04..afac65dac0c8b 100644 --- a/libraries/src/Application/WebApplication.php +++ b/libraries/src/Application/WebApplication.php @@ -585,7 +585,7 @@ public function redirect($url, $status = 303) // If the headers have already been sent we need to send the redirect statement via JavaScript. if ($this->checkHeadersSent()) { - echo "\n"; + echo "\n"; } else { @@ -594,7 +594,7 @@ public function redirect($url, $status = 303) { $html = ''; $html .= ''; - $html .= ''; + $html .= ''; $html .= ''; echo $html; diff --git a/libraries/src/Filter/InputFilter.php b/libraries/src/Filter/InputFilter.php index d6449b42def75..3f80fc28c52b4 100644 --- a/libraries/src/Filter/InputFilter.php +++ b/libraries/src/Filter/InputFilter.php @@ -509,7 +509,7 @@ public static function isSafeFile($file, $options = array()) // Forbidden string in extension (e.g. php matched .php, .xxx.php, .php.xxx and so on) 'forbidden_extensions' => array( - 'php', 'phps', 'pht', 'phtml', 'php3', 'php4', 'php5', 'php6', 'php7', 'inc', 'pl', 'cgi', 'fcgi', 'java', 'jar', 'py', + 'php', 'phps', 'pht', 'phtml', 'php3', 'php4', 'php5', 'php6', 'php7', 'phar', 'inc', 'pl', 'cgi', 'fcgi', 'java', 'jar', 'py', ), // - folder . '/' . $image->name, $image->name, array('width' => $image->width, 'height' => $image->height)); ?> + folder . '/' . $this->escape($image->name), $this->escape($image->name), array('width' => $image->width, 'height' => $image->height)); ?> diff --git a/plugins/fields/editor/editor.xml b/plugins/fields/editor/editor.xml index fe27f3180b7ee..8d12bfbe5e0b2 100644 --- a/plugins/fields/editor/editor.xml +++ b/plugins/fields/editor/editor.xml @@ -67,6 +67,7 @@ description="PLG_FIELDS_EDITOR_PARAMS_FILTER_DESC" class="btn-group" default="JComponentHelper::filterText" + validate="options" > diff --git a/plugins/fields/editor/params/editor.xml b/plugins/fields/editor/params/editor.xml index 7760c78e87a7e..5cf55f5c3cbf0 100644 --- a/plugins/fields/editor/params/editor.xml +++ b/plugins/fields/editor/params/editor.xml @@ -44,6 +44,7 @@ label="PLG_FIELDS_TEXT_PARAMS_FILTER_LABEL" description="PLG_FIELDS_TEXT_PARAMS_FILTER_DESC" class="btn-group" + validate="options" > diff --git a/plugins/fields/text/params/text.xml b/plugins/fields/text/params/text.xml index 59d42793ac958..ad7e0317a3595 100644 --- a/plugins/fields/text/params/text.xml +++ b/plugins/fields/text/params/text.xml @@ -8,6 +8,7 @@ label="PLG_FIELDS_TEXT_PARAMS_FILTER_LABEL" description="PLG_FIELDS_TEXT_PARAMS_FILTER_DESC" class="btn-group" + validate="options" > diff --git a/plugins/fields/text/text.xml b/plugins/fields/text/text.xml index bb7f36cf738cc..f36219b92f5cd 100644 --- a/plugins/fields/text/text.xml +++ b/plugins/fields/text/text.xml @@ -28,6 +28,7 @@ description="PLG_FIELDS_TEXT_PARAMS_FILTER_DESC" class="btn-group" default="JComponentHelper::filterText" + validate="options" > diff --git a/plugins/fields/textarea/params/textarea.xml b/plugins/fields/textarea/params/textarea.xml index 8fceb3cf0c7df..f562be1cc8115 100644 --- a/plugins/fields/textarea/params/textarea.xml +++ b/plugins/fields/textarea/params/textarea.xml @@ -32,6 +32,7 @@ label="PLG_FIELDS_TEXTAREA_PARAMS_FILTER_LABEL" description="PLG_FIELDS_TEXTAREA_PARAMS_FILTER_DESC" class="btn-group" + validate="options" > diff --git a/plugins/fields/textarea/textarea.xml b/plugins/fields/textarea/textarea.xml index da39ed7f27956..8d2d238d9adaf 100644 --- a/plugins/fields/textarea/textarea.xml +++ b/plugins/fields/textarea/textarea.xml @@ -54,6 +54,7 @@ description="PLG_FIELDS_TEXTAREA_PARAMS_FILTER_DESC" class="btn-group" default="JComponentHelper::filterText" + validate="options" > diff --git a/templates/protostar/html/com_media/imageslist/default_image.php b/templates/protostar/html/com_media/imageslist/default_image.php index 6a5eea836df14..5f1597b350b21 100644 --- a/templates/protostar/html/com_media/imageslist/default_image.php +++ b/templates/protostar/html/com_media/imageslist/default_image.php @@ -17,14 +17,14 @@ ?>
  • - +
    - baseURL . '/' . $this->_tmp_img->path_relative, JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_60, 'height' => $this->_tmp_img->height_60)); ?> + baseURL . '/' . $this->escape($this->_tmp_img->path_relative), JText::sprintf('COM_MEDIA_IMAGE_TITLE', $this->_tmp_img->title, JHtml::_('number.bytes', $this->_tmp_img->size)), array('width' => $this->_tmp_img->width_60, 'height' => $this->_tmp_img->height_60)); ?>
    - _tmp_img->name, 10, false); ?> + escape($this->_tmp_img->name), 10, false); ?>
  • diff --git a/tests/unit/suites/libraries/cms/application/JApplicationCmsTest.php b/tests/unit/suites/libraries/cms/application/JApplicationCmsTest.php index b6093f4c56496..8ca16803e5333 100644 --- a/tests/unit/suites/libraries/cms/application/JApplicationCmsTest.php +++ b/tests/unit/suites/libraries/cms/application/JApplicationCmsTest.php @@ -638,7 +638,7 @@ public function testRedirectWithHeadersSent() $buffer = ob_get_contents(); ob_end_clean(); - $this->assertEquals("\n", $buffer); + $this->assertEquals("\n", $buffer); } /** @@ -670,7 +670,7 @@ public function testRedirectWithJavascriptRedirect() $this->assertEquals( '' - . "", + . "", trim($buffer) ); } diff --git a/tests/unit/suites/libraries/joomla/application/JApplicationWebTest.php b/tests/unit/suites/libraries/joomla/application/JApplicationWebTest.php index d70eb39b12ecb..683f363ccc68b 100644 --- a/tests/unit/suites/libraries/joomla/application/JApplicationWebTest.php +++ b/tests/unit/suites/libraries/joomla/application/JApplicationWebTest.php @@ -1270,7 +1270,7 @@ public function testRedirectWithHeadersSent() $this->class->redirect('index.php'); $buffer = ob_get_clean(); - $this->assertEquals("\n", $buffer); + $this->assertEquals("\n", $buffer); } /** @@ -1299,7 +1299,7 @@ public function testRedirectWithJavascriptRedirect() $buffer = ob_get_clean(); $this->assertEquals( - '', + '', trim($buffer) ); } From 28aef911901979246d398f0580c436c87dfec59d Mon Sep 17 00:00:00 2001 From: Michael Babker Date: Tue, 22 May 2018 07:39:50 -0500 Subject: [PATCH 22/34] When JFeed was moved, old files were never deleted --- administrator/components/com_admin/script.php | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/administrator/components/com_admin/script.php b/administrator/components/com_admin/script.php index 4b2b2739f6fc1..b2822bf8aeb9e 100644 --- a/administrator/components/com_admin/script.php +++ b/administrator/components/com_admin/script.php @@ -755,6 +755,17 @@ public function deleteUnexistingFiles() '/media/plg_quickicon_extensionupdate/extensionupdatecheck.js', '/media/plg_quickicon_joomlaupdate/jupdatecheck.js', // Joomla! 3.1 + '/libraries/cms/feed/entry.php', + '/libraries/cms/feed/factory.php', + '/libraries/cms/feed/feed.php', + '/libraries/cms/feed/link.php', + '/libraries/cms/feed/parser.php', + '/libraries/cms/feed/parser/atom.php', + '/libraries/cms/feed/parser/namespace.php', + '/libraries/cms/feed/parser/rss.php', + '/libraries/cms/feed/parser/rss/itunes.php', + '/libraries/cms/feed/parser/rss/media.php', + '/libraries/cms/feed/person.php', '/libraries/joomla/application/router.php', '/libraries/joomla/form/rules/boolean.php', '/libraries/joomla/form/rules/color.php', @@ -1982,6 +1993,9 @@ public function deleteUnexistingFiles() '/libraries/joomla/image/filters', '/libraries/joomla/log/loggers', // Joomla! 3.1 + '/libraries/cms/feed/parser/rss', + '/libraries/cms/feed/parser', + '/libraries/cms/feed', '/libraries/joomla/form/rules', '/libraries/joomla/html/language/en-GB', '/libraries/joomla/html/language', From f23b67996bb6178f3117e1b855bcc2453ec8f965 Mon Sep 17 00:00:00 2001 From: Michael Babker Date: Tue, 22 May 2018 08:51:38 -0500 Subject: [PATCH 23/34] Reset for dev --- administrator/language/en-GB/en-GB.xml | 2 +- administrator/language/en-GB/install.xml | 2 +- administrator/manifests/files/joomla.xml | 2 +- administrator/manifests/packages/pkg_en-GB.xml | 2 +- installation/language/en-GB/en-GB.xml | 2 +- language/en-GB/en-GB.xml | 2 +- language/en-GB/install.xml | 2 +- libraries/src/Version.php | 8 ++++---- 8 files changed, 11 insertions(+), 11 deletions(-) diff --git a/administrator/language/en-GB/en-GB.xml b/administrator/language/en-GB/en-GB.xml index 0275e7500d2a7..ae7779a97f78b 100644 --- a/administrator/language/en-GB/en-GB.xml +++ b/administrator/language/en-GB/en-GB.xml @@ -1,7 +1,7 @@ English (en-GB) - 3.8.8 + 3.8.9 May 2018 Joomla! Project admin@joomla.org diff --git a/administrator/language/en-GB/install.xml b/administrator/language/en-GB/install.xml index 7c8918eb5447c..d77e981081318 100644 --- a/administrator/language/en-GB/install.xml +++ b/administrator/language/en-GB/install.xml @@ -2,7 +2,7 @@ English (en-GB) en-GB - 3.8.8 + 3.8.9 May 2018 Joomla! Project admin@joomla.org diff --git a/administrator/manifests/files/joomla.xml b/administrator/manifests/files/joomla.xml index 989ba3179e47f..1f135961beb39 100644 --- a/administrator/manifests/files/joomla.xml +++ b/administrator/manifests/files/joomla.xml @@ -6,7 +6,7 @@ www.joomla.org (C) 2005 - 2018 Open Source Matters. All rights reserved GNU General Public License version 2 or later; see LICENSE.txt - 3.8.8 + 3.8.9-dev May 2018 FILES_JOOMLA_XML_DESCRIPTION diff --git a/administrator/manifests/packages/pkg_en-GB.xml b/administrator/manifests/packages/pkg_en-GB.xml index 8bbba178ecf75..31061e948c195 100644 --- a/administrator/manifests/packages/pkg_en-GB.xml +++ b/administrator/manifests/packages/pkg_en-GB.xml @@ -2,7 +2,7 @@ English (en-GB) Language Pack en-GB - 3.8.8.1 + 3.8.9.1 May 2018 Joomla! Project admin@joomla.org diff --git a/installation/language/en-GB/en-GB.xml b/installation/language/en-GB/en-GB.xml index abe079adad026..0712df6ae6d4f 100644 --- a/installation/language/en-GB/en-GB.xml +++ b/installation/language/en-GB/en-GB.xml @@ -3,7 +3,7 @@ version="3.8" client="installation"> English (United Kingdom) - 3.8.8 + 3.8.9 May 2018 Joomla! Project Copyright (C) 2005 - 2018 Open Source Matters. All rights reserved. diff --git a/language/en-GB/en-GB.xml b/language/en-GB/en-GB.xml index b7b40dc1a054f..64a5a57becd3b 100644 --- a/language/en-GB/en-GB.xml +++ b/language/en-GB/en-GB.xml @@ -1,7 +1,7 @@ English (en-GB) - 3.8.8 + 3.8.9 May 2018 Joomla! Project admin@joomla.org diff --git a/language/en-GB/install.xml b/language/en-GB/install.xml index b2a7fdb24aab8..0accffed07606 100644 --- a/language/en-GB/install.xml +++ b/language/en-GB/install.xml @@ -2,7 +2,7 @@ English (en-GB) en-GB - 3.8.8 + 3.8.9 May 2018 Joomla! Project admin@joomla.org diff --git a/libraries/src/Version.php b/libraries/src/Version.php index c1ee190290a79..51863dafff484 100644 --- a/libraries/src/Version.php +++ b/libraries/src/Version.php @@ -49,7 +49,7 @@ final class Version * @var integer * @since 3.8.0 */ - const PATCH_VERSION = 8; + const PATCH_VERSION = 9; /** * Extra release version info. @@ -60,7 +60,7 @@ final class Version * @var string * @since 3.8.0 */ - const EXTRA_VERSION = ''; + const EXTRA_VERSION = 'dev'; /** * Release version. @@ -78,7 +78,7 @@ final class Version * @since 3.5 * @deprecated 4.0 Use separated version constants instead */ - const DEV_LEVEL = '8'; + const DEV_LEVEL = '9-dev'; /** * Development status. @@ -86,7 +86,7 @@ final class Version * @var string * @since 3.5 */ - const DEV_STATUS = 'Stable'; + const DEV_STATUS = 'Development'; /** * Build number. From a294f66ade1c7d522a22890eefc8867f25944d67 Mon Sep 17 00:00:00 2001 From: Michael Babker Date: Tue, 22 May 2018 12:17:52 -0500 Subject: [PATCH 24/34] Correctly escape the random image module output (#20533) --- modules/mod_random_image/tmpl/default.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/mod_random_image/tmpl/default.php b/modules/mod_random_image/tmpl/default.php index 0bd5435b47dfd..87d73b10418e5 100644 --- a/modules/mod_random_image/tmpl/default.php +++ b/modules/mod_random_image/tmpl/default.php @@ -13,7 +13,7 @@ - folder . '/' . $this->escape($image->name), $this->escape($image->name), array('width' => $image->width, 'height' => $image->height)); ?> + folder . '/' . htmlspecialchars($image->name, ENT_COMPAT, 'UTF-8'), htmlspecialchars($image->name, ENT_COMPAT, 'UTF-8'), array('width' => $image->width, 'height' => $image->height)); ?> From d188e8a7ef446c62d33c8e85b130c429aac88025 Mon Sep 17 00:00:00 2001 From: zero-24 Date: Thu, 24 May 2018 01:53:05 +0200 Subject: [PATCH 25/34] Finally com_mailto allow the usage of a captcha by using JForm (#20265) * finaly com_mailto allow the usage of a captach by using JForm * remove unused $session variable * Line ending to LF * fix typo thanks @brianteeman * no need to use set and get thanks @mbabker * expend the popup & fix the auto population thanks @quy * captcha handling * fix the captcha check * commit header check thanks for reporting @brianteeman @mbabaker and for the improved code @quy * style changes affected hight thanks @brianteeman * line ending again * close
    thanks @quy * make the iframe a bit bigger thnks @quy * commit proposed changes by @quy * implement suggested improvments * use renderField(); ?> thanks @laoneo --- components/com_content/helpers/icon.php | 3 +- components/com_mailto/controller.php | 93 +++++++++------- components/com_mailto/models/forms/mailto.xml | 51 +++++++++ components/com_mailto/models/mailto.php | 104 ++++++++++++++++++ .../com_mailto/views/mailto/tmpl/default.php | 70 ++++-------- .../com_mailto/views/mailto/view.html.php | 57 +--------- language/en-GB/en-GB.com_mailto.ini | 1 + 7 files changed, 230 insertions(+), 149 deletions(-) create mode 100644 components/com_mailto/models/forms/mailto.xml create mode 100644 components/com_mailto/models/mailto.php diff --git a/components/com_content/helpers/icon.php b/components/com_content/helpers/icon.php index e3b730003f467..4e570c328e679 100644 --- a/components/com_content/helpers/icon.php +++ b/components/com_content/helpers/icon.php @@ -73,7 +73,8 @@ public static function email($article, $params, $attribs = array(), $legacy = fa $link = $base . JRoute::_(ContentHelperRoute::getArticleRoute($article->slug, $article->catid, $article->language), false); $url = 'index.php?option=com_mailto&tmpl=component&template=' . $template . '&link=' . MailtoHelper::addLink($link); - $status = 'width=400,height=350,menubar=yes,resizable=yes'; + $height = JFactory::getApplication()->get('captcha', '0') === '0' ? 450 : 550; + $status = 'width=400,height=' . $height . ',menubar=yes,resizable=yes'; $text = JLayoutHelper::render('joomla.content.icons.email', array('params' => $params, 'legacy' => $legacy)); diff --git a/components/com_mailto/controller.php b/components/com_mailto/controller.php index 3f2b861feab1d..9d82d9ce74556 100644 --- a/components/com_mailto/controller.php +++ b/components/com_mailto/controller.php @@ -12,9 +12,7 @@ /** * Mailer Component Controller. * - * @package Joomla.Site - * @subpackage com_mailto - * @since 1.5 + * @since 1.5 */ class MailtoController extends JControllerLegacy { @@ -23,12 +21,10 @@ class MailtoController extends JControllerLegacy * * @return void * - * @since 1.5 + * @since 1.5 */ public function mailto() { - $session = JFactory::getSession(); - $session->set('com_mailto.formtime', time()); $this->input->set('view', 'mailto'); $this->display(); } @@ -46,24 +42,34 @@ public function send() $this->checkToken(); $app = JFactory::getApplication(); - $session = JFactory::getSession(); - $timeout = $session->get('com_mailto.formtime', 0); + $model = $this->getModel('mailto'); + $data = $model->getData(); - if ($timeout == 0 || time() - $timeout < 20) + // Validate the posted data. + $form = $model->getForm(); + + if (!$form) { - JError::raiseNotice(500, JText::_('COM_MAILTO_EMAIL_NOT_SENT')); + JError::raiseError(500, $model->getError()); - return $this->mailto(); + return false; } - $SiteName = $app->get('sitename'); - $link = MailtoHelper::validateHash($this->input->get('link', '', 'post')); - - // Verify that this is a local link - if (!$link || !JUri::isInternal($link)) + if (!$model->validate($form, $data)) { - // Non-local url... - JError::raiseNotice(500, JText::_('COM_MAILTO_EMAIL_NOT_SENT')); + $errors = $model->getErrors(); + + foreach ($errors as $error) + { + $errorMessage = $error; + + if ($error instanceof Exception) + { + $errorMessage = $error->getMessage(); + } + + $app->enqueueMessage($errorMessage, 'error'); + } return $this->mailto(); } @@ -77,24 +83,16 @@ public function send() 'cc:' ); - // An array of the input fields to scan for injected headers - $fields = array( - 'mailto', - 'sender', - 'from', - 'subject', - ); - /* * Here is the meat and potatoes of the header injection test. We * iterate over the array of form input and check for header strings. * If we find one, send an unauthorized header and die. */ - foreach ($fields as $field) + foreach ($data as $key => $value) { foreach ($headers as $header) { - if (strpos($_POST[$field], $header) !== false) + if (strpos($value, $header) !== false) { JError::raiseError(403, ''); } @@ -106,25 +104,36 @@ public function send() */ unset($headers, $fields); - $email = $this->input->post->getString('mailto', ''); - $sender = $this->input->post->getString('sender', ''); - $from = $this->input->post->getString('from', ''); - $subject_default = JText::sprintf('COM_MAILTO_SENT_BY', $sender); - $subject = $this->input->post->getString('subject', '') !== '' ? $this->input->post->getString('subject') : $subject_default; + $siteName = $app->get('sitename'); + $link = MailtoHelper::validateHash($this->input->post->get('link', '', 'post')); + + // Verify that this is a local link + if (!$link || !JUri::isInternal($link)) + { + // Non-local url... + JError::raiseNotice(500, JText::_('COM_MAILTO_EMAIL_NOT_SENT')); + + return $this->mailto(); + } + + $subject_default = JText::sprintf('COM_MAILTO_SENT_BY', $data['sender']); + $subject = $data['subject'] !== '' ? $data['subject'] : $subject_default; // Check for a valid to address $error = false; - if (!$email || !JMailHelper::isEmailAddress($email)) + if (!$data['emailto'] || !JMailHelper::isEmailAddress($data['emailto'])) { - $error = JText::sprintf('COM_MAILTO_EMAIL_INVALID', $email); + $error = JText::sprintf('COM_MAILTO_EMAIL_INVALID', $data['emailto']); + JError::raiseWarning(0, $error); } // Check for a valid from address - if (!$from || !JMailHelper::isEmailAddress($from)) + if (!$data['emailfrom'] || !JMailHelper::isEmailAddress($data['emailfrom'])) { - $error = JText::sprintf('COM_MAILTO_EMAIL_INVALID', $from); + $error = JText::sprintf('COM_MAILTO_EMAIL_INVALID', $data['emailfrom']); + JError::raiseWarning(0, $error); } @@ -135,19 +144,19 @@ public function send() // Build the message to send $msg = JText::_('COM_MAILTO_EMAIL_MSG'); - $body = sprintf($msg, $SiteName, $sender, $from, $link); + $body = sprintf($msg, $siteName, $data['sender'], $data['emailfrom'], $link); // Clean the email data $subject = JMailHelper::cleanSubject($subject); $body = JMailHelper::cleanBody($body); // To send we need to use punycode. - $from = JStringPunycode::emailToPunycode($from); - $from = JMailHelper::cleanAddress($from); - $email = JStringPunycode::emailToPunycode($email); + $data['emailfrom'] = JStringPunycode::emailToPunycode($data['emailfrom']); + $data['emailfrom'] = JMailHelper::cleanAddress($data['emailfrom']); + $data['emailto'] = JStringPunycode::emailToPunycode($data['emailto']); // Send the email - if (JFactory::getMailer()->sendMail($from, $sender, $email, $subject, $body) !== true) + if (JFactory::getMailer()->sendMail($data['emailfrom'], $data['sender'], $data['emailto'], $subject, $body) !== true) { JError::raiseNotice(500, JText::_('COM_MAILTO_EMAIL_NOT_SENT')); diff --git a/components/com_mailto/models/forms/mailto.xml b/components/com_mailto/models/forms/mailto.xml new file mode 100644 index 0000000000000..0469129f7f509 --- /dev/null +++ b/components/com_mailto/models/forms/mailto.xml @@ -0,0 +1,51 @@ + + +
    + + + + + + + + + +
    + diff --git a/components/com_mailto/models/mailto.php b/components/com_mailto/models/mailto.php new file mode 100644 index 0000000000000..428c157456367 --- /dev/null +++ b/components/com_mailto/models/mailto.php @@ -0,0 +1,104 @@ +loadForm('com_mailto.mailto', 'mailto', array('load_data' => $loadData)); + + if (empty($form)) + { + return false; + } + + return $form; + } + + /** + * Method to get the data that should be injected in the form. + * + * @return array The default data is an empty array. + * + * @since __DEPLOY_VERSION__ + */ + protected function loadFormData() + { + $user = JFactory::getUser(); + $app = JFactory::getApplication(); + $data = $app->getUserState('mailto.mailto.form.data', array()); + + $data['link'] = urldecode($app->input->get('link', '', 'BASE64')); + + if ($data['link'] == '') + { + JError::raiseError(403, JText::_('COM_MAILTO_LINK_IS_MISSING')); + + return false; + } + + // Load with previous data, if it exists + $data['sender'] = $app->input->post->getString('sender', ''); + $data['subject'] = $app->input->post->getString('subject', ''); + $data['emailfrom'] = JStringPunycode::emailToPunycode($app->input->post->getString('emailfrom', '')); + $data['emailto'] = JStringPunycode::emailToPunycode($app->input->post->getString('emailto', '')); + + if (!$user->guest) + { + $data['sender'] = $user->name; + $data['emailfrom'] = $user->email; + } + + $app->setUserState('mailto.mailto.form.data', $data); + + $this->preprocessData('com_mailto.mailto', $data); + + return $data; + } + + /** + * Get the request data + * + * @return array The requested data + * + * @since __DEPLOY_VERSION__ + */ + public function getData() + { + $input = JFactory::getApplication()->input; + + $data['emailto'] = $input->get('emailto', '', 'string'); + $data['sender'] = $input->get('sender', '', 'string'); + $data['emailfrom'] = $input->get('emailfrom', '', 'string'); + $data['subject'] = $input->get('subject', '', 'string'); + + return $data; + } +} diff --git a/components/com_mailto/views/mailto/tmpl/default.php b/components/com_mailto/views/mailto/tmpl/default.php index dce72c893fc78..5a828e75112eb 100644 --- a/components/com_mailto/views/mailto/tmpl/default.php +++ b/components/com_mailto/views/mailto/tmpl/default.php @@ -12,23 +12,6 @@ JHtml::_('behavior.core'); JHtml::_('behavior.keepalive'); -$data = $this->get('data'); - -JFactory::getDocument()->addScriptDeclaration(" - Joomla.submitbutton = function(pressbutton) - { - var form = document.getElementById('mailtoForm'); - - // do field validation - if (form.mailto.value == '' || form.from.value == '') - { - alert('" . JText::_('COM_MAILTO_EMAIL_ERR_NOINFO', true) . "'); - return false; - } - form.submit(); - } -"); - ?>

    @@ -41,44 +24,29 @@

    -
    -
    - - -
    -
    - - -
    -
    - - -
    -
    - - -
    -

    - - -

    + +
    + form->getFieldset('') as $field) : ?> + hidden) : ?> + renderField(); ?> + + +
    +
    + + +
    +
    +
    - +
    diff --git a/components/com_mailto/views/mailto/view.html.php b/components/com_mailto/views/mailto/view.html.php index 893a3faa956be..0514789e4e78b 100644 --- a/components/com_mailto/views/mailto/view.html.php +++ b/components/com_mailto/views/mailto/view.html.php @@ -27,62 +27,9 @@ class MailtoViewMailto extends JViewLegacy */ public function display($tpl = null) { - $data = $this->getData(); - - if ($data === false) - { - return false; - } - - $this->set('data', $data); + $this->form = $this->get('Form'); + $this->link = urldecode(JFactory::getApplication()->input->get('link', '', 'BASE64')); return parent::display($tpl); } - - /** - * Get the form data - * - * @return object - * - * @since 1.5 - */ - protected function &getData() - { - $user = JFactory::getUser(); - $app = JFactory::getApplication(); - $data = new stdClass; - - $input = $app->input; - $method = $input->getMethod(); - $data->link = urldecode($input->$method->get('link', '', 'BASE64')); - - if ($data->link == '') - { - JError::raiseError(403, JText::_('COM_MAILTO_LINK_IS_MISSING')); - - return false; - } - - // Load with previous data, if it exists - $mailto = $app->input->post->getString('mailto', ''); - $sender = $app->input->post->getString('sender', ''); - $from = $app->input->post->getString('from', ''); - $subject = $app->input->post->getString('subject', ''); - - if ($user->get('id') > 0) - { - $data->sender = $user->get('name'); - $data->from = $user->get('email'); - } - else - { - $data->sender = $sender; - $data->from = JStringPunycode::emailToPunycode($from); - } - - $data->subject = $subject; - $data->mailto = JStringPunycode::emailToPunycode($mailto); - - return $data; - } } diff --git a/language/en-GB/en-GB.com_mailto.ini b/language/en-GB/en-GB.com_mailto.ini index 8eb5596a54100..16c6fd1f15712 100644 --- a/language/en-GB/en-GB.com_mailto.ini +++ b/language/en-GB/en-GB.com_mailto.ini @@ -5,6 +5,7 @@ COM_MAILTO="Mailto" COM_MAILTO_CANCEL="Cancel" +COM_MAILTO_CAPTCHA="Captcha" COM_MAILTO_CLOSE_WINDOW="Close Window" COM_MAILTO_EMAIL_ERR_NOINFO="Please provide a valid email address." COM_MAILTO_EMAIL_INVALID="The address '%s' does not appear to be a valid email address." From bb5a446b0d40854b4b61807948a5803974877428 Mon Sep 17 00:00:00 2001 From: zero-24 Date: Thu, 24 May 2018 01:53:33 +0200 Subject: [PATCH 26/34] Remove check for a valid form from two places in plugins (#20277) * If that is not a valid form our system is broken at all * Typehint the form argument --- plugins/system/languagecode/languagecode.php | 10 +--------- plugins/user/profile/profile.php | 9 +-------- 2 files changed, 2 insertions(+), 17 deletions(-) diff --git a/plugins/system/languagecode/languagecode.php b/plugins/system/languagecode/languagecode.php index 9826fc01cd519..b10bb5d6d19a3 100644 --- a/plugins/system/languagecode/languagecode.php +++ b/plugins/system/languagecode/languagecode.php @@ -113,16 +113,8 @@ public function onAfterRender() * * @since 2.5 */ - public function onContentPrepareForm($form, $data) + public function onContentPrepareForm(JForm $form, $data) { - // Check we have a form. - if (!($form instanceof JForm)) - { - $this->_subject->setError('JERROR_NOT_A_FORM'); - - return false; - } - // Check we are manipulating the languagecode plugin. if ($form->getName() !== 'com_plugins.plugin' || !$form->getField('languagecodeplugin', 'params')) { diff --git a/plugins/user/profile/profile.php b/plugins/user/profile/profile.php index e9b2253945caa..0bc82ca8657a2 100644 --- a/plugins/user/profile/profile.php +++ b/plugins/user/profile/profile.php @@ -224,15 +224,8 @@ public static function tos($value) * * @since 1.6 */ - public function onContentPrepareForm($form, $data) + public function onContentPrepareForm(JForm $form, $data) { - if (!($form instanceof JForm)) - { - $this->_subject->setError('JERROR_NOT_A_FORM'); - - return false; - } - // Check we are manipulating a valid form. $name = $form->getName(); From 5e423b6b1ab0ccdce87e2909be9a964086c13164 Mon Sep 17 00:00:00 2001 From: SharkyKZ Date: Thu, 24 May 2018 02:54:24 +0300 Subject: [PATCH 27/34] Fallback to integer (#20338) --- plugins/authentication/cookie/cookie.php | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/plugins/authentication/cookie/cookie.php b/plugins/authentication/cookie/cookie.php index 9a611ec67b98b..9a2effc87ff71 100644 --- a/plugins/authentication/cookie/cookie.php +++ b/plugins/authentication/cookie/cookie.php @@ -133,7 +133,8 @@ public function onUserAuthenticate($credentials, $options, &$response) if (!JUserHelper::verifyPassword($cookieArray[0], $results[0]->token)) { /* - * This is a real attack! Either the series was guessed correctly or a cookie was stolen and used twice (once by attacker and once by victim). + * This is a real attack! + * Either the series was guessed correctly or a cookie was stolen and used twice (once by attacker and once by victim). * Delete all tokens for this user! */ $query = $this->db->getQuery(true) @@ -294,8 +295,8 @@ public function onUserAfterLogin($options) } // Get the parameter values - $lifetime = $this->params->get('cookie_lifetime', '60') * 24 * 60 * 60; - $length = $this->params->get('key_length', '16'); + $lifetime = $this->params->get('cookie_lifetime', 60) * 24 * 60 * 60; + $length = $this->params->get('key_length', 16); // Generate new cookie $token = JUserHelper::genRandomPassword($length); @@ -334,9 +335,9 @@ public function onUserAfterLogin($options) ->where($this->db->quoteName('uastring') . ' = ' . $this->db->quote($cookieName)); } - $hashed_token = JUserHelper::hashPassword($token); + $hashedToken = JUserHelper::hashPassword($token); - $query->set($this->db->quoteName('token') . ' = ' . $this->db->quote($hashed_token)); + $query->set($this->db->quoteName('token') . ' = ' . $this->db->quote($hashedToken)); try { From 39620fcf4ac5abab5f51af63c027594fe669ed3d Mon Sep 17 00:00:00 2001 From: SharkyKZ Date: Thu, 24 May 2018 02:59:45 +0300 Subject: [PATCH 28/34] [plg_user_profile] Misc fixes (#20412) * Update profile.xml * Update profile.xml * Update profile.php * Update tos.php --- plugins/user/profile/field/tos.php | 38 +++++++++++-------- plugins/user/profile/profile.php | 14 +++---- plugins/user/profile/profile.xml | 46 +++++++++++++++++++++++ plugins/user/profile/profiles/profile.xml | 1 + 4 files changed, 76 insertions(+), 23 deletions(-) diff --git a/plugins/user/profile/field/tos.php b/plugins/user/profile/field/tos.php index 4c167c7d589e5..1a714d87cab40 100644 --- a/plugins/user/profile/field/tos.php +++ b/plugins/user/profile/field/tos.php @@ -59,7 +59,7 @@ protected function getLabel() JHtml::_('behavior.modal'); // Build the class for the label. - $class = !empty($this->description) ? 'hasTooltip' : ''; + $class = !empty($this->description) ? 'hasPopover' : ''; $class = $class . ' required'; $class = !empty($this->labelClass) ? $class . ' ' . $this->labelClass : $class; @@ -69,16 +69,17 @@ protected function getLabel() // If a description is specified, use it to build a tooltip. if (!empty($this->description)) { - $label .= ' title="' - . htmlspecialchars( - trim($text, ':') . '
    ' . ($this->translateDescription ? JText::_($this->description) : $this->description), - ENT_COMPAT, 'UTF-8' - ) . '"'; + $label .= ' title="' . htmlspecialchars(trim($text, ':'), ENT_COMPAT, 'UTF-8') . '"'; + $label .= ' data-content="' . htmlspecialchars( + $this->translateDescription ? JText::_($this->description) : $this->description, + ENT_COMPAT, + 'UTF-8' + ) . '"'; } - $tosarticle = $this->element['article'] > 0 ? (int) $this->element['article'] : 0; + $tosArticle = $this->element['article'] > 0 ? (int) $this->element['article'] : 0; - if ($tosarticle) + if ($tosArticle) { JLoader::register('ContentHelperRoute', JPATH_BASE . '/components/com_content/helpers/route.php'); @@ -90,27 +91,32 @@ protected function getLabel() $query = $db->getQuery(true); $query->select('id, alias, catid, language') ->from('#__content') - ->where('id = ' . $tosarticle); + ->where('id = ' . $tosArticle); $db->setQuery($query); $article = $db->loadObject(); if (JLanguageAssociations::isEnabled()) { - $tosassociated = JLanguageAssociations::getAssociations('com_content', '#__content', 'com_content.item', $tosarticle); + $tosAssociated = JLanguageAssociations::getAssociations('com_content', '#__content', 'com_content.item', $tosArticle); } - $current_lang = JFactory::getLanguage()->getTag(); + $currentLang = JFactory::getLanguage()->getTag(); - if (isset($tosassociated) && $current_lang !== $article->language && array_key_exists($current_lang, $tosassociated)) + if (isset($tosAssociated) && $currentLang !== $article->language && array_key_exists($currentLang, $tosAssociated)) { - $url = ContentHelperRoute::getArticleRoute($tosassociated[$current_lang]->id, $tosassociated[$current_lang]->catid); - $link = JHtml::_('link', JRoute::_($url . '&tmpl=component&lang=' . $tosassociated[$current_lang]->language), $text, $attribs); + $url = ContentHelperRoute::getArticleRoute( + $tosAssociated[$currentLang]->id, + $tosAssociated[$currentLang]->catid, + $tosAssociated[$currentLang]->language + ); + + $link = JHtml::_('link', JRoute::_($url . '&tmpl=component'), $text, $attribs); } else { $slug = $article->alias ? ($article->id . ':' . $article->alias) : $article->id; - $url = ContentHelperRoute::getArticleRoute($slug, $article->catid); - $link = JHtml::_('link', JRoute::_($url . '&tmpl=component&lang=' . $article->language), $text, $attribs); + $url = ContentHelperRoute::getArticleRoute($slug, $article->catid, $article->language); + $link = JHtml::_('link', JRoute::_($url . '&tmpl=component'), $text, $attribs); } } else diff --git a/plugins/user/profile/profile.php b/plugins/user/profile/profile.php index 0bc82ca8657a2..fed1b8e94581b 100644 --- a/plugins/user/profile/profile.php +++ b/plugins/user/profile/profile.php @@ -272,11 +272,11 @@ public function onContentPrepareForm(JForm $form, $data) $form->setFieldAttribute('tos', 'description', 'PLG_USER_PROFILE_FIELD_TOS_DESC_SITE', 'profile'); } - $tosarticle = $this->params->get('register_tos_article'); - $tosenabled = $this->params->get('register-require_tos', 0); + $tosArticle = $this->params->get('register_tos_article'); + $tosEnabled = $this->params->get('register-require_tos', 0); // We need to be in the registration form and field needs to be enabled - if ($name !== 'com_users.registration' || !$tosenabled) + if ($name !== 'com_users.registration' || !$tosEnabled) { // We only want the TOS in the registration form $form->removeField('tos', 'profile'); @@ -284,7 +284,7 @@ public function onContentPrepareForm(JForm $form, $data) else { // Push the TOS article ID into the TOS field. - $form->setFieldAttribute('tos', 'article', $tosarticle, 'profile'); + $form->setFieldAttribute('tos', 'article', $tosArticle, 'profile'); } foreach ($fields as $field) @@ -381,11 +381,11 @@ public function onUserBeforeSave($user, $isnew, $data) // Check that the tos is checked if required ie only in registration from frontend. $task = JFactory::getApplication()->input->getCmd('task'); $option = JFactory::getApplication()->input->getCmd('option'); - $tosarticle = $this->params->get('register_tos_article'); - $tosenabled = ($this->params->get('register-require_tos', 0) == 2); + $tosArticle = $this->params->get('register_tos_article'); + $tosEnabled = ($this->params->get('register-require_tos', 0) == 2); // Check that the tos is checked. - if ($task === 'register' && $tosenabled && $tosarticle && $option === 'com_users' && !$data['profile']['tos']) + if ($task === 'register' && $tosEnabled && $tosArticle && $option === 'com_users' && !$data['profile']['tos']) { throw new InvalidArgumentException(JText::_('PLG_USER_PROFILE_FIELD_TOS_DESC_SITE')); } diff --git a/plugins/user/profile/profile.xml b/plugins/user/profile/profile.xml index 57227ca6e41ca..e478d6837c6cb 100644 --- a/plugins/user/profile/profile.xml +++ b/plugins/user/profile/profile.xml @@ -33,6 +33,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_ADDRESS1_LABEL" description="PLG_USER_PROFILE_FIELD_ADDRESS1_DESC" + default="1" + filter="integer" > @@ -44,6 +46,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_ADDRESS2_LABEL" description="PLG_USER_PROFILE_FIELD_ADDRESS2_DESC" + default="1" + filter="integer" > @@ -55,6 +59,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_CITY_LABEL" description="PLG_USER_PROFILE_FIELD_CITY_DESC" + default="1" + filter="integer" > @@ -66,6 +72,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_REGION_LABEL" description="PLG_USER_PROFILE_FIELD_REGION_DESC" + default="1" + filter="integer" > @@ -77,6 +85,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_COUNTRY_LABEL" description="PLG_USER_PROFILE_FIELD_COUNTRY_DESC" + default="1" + filter="integer" > @@ -88,6 +98,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_POSTAL_CODE_LABEL" description="PLG_USER_PROFILE_FIELD_POSTAL_CODE_DESC" + default="1" + filter="integer" > @@ -99,6 +111,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_PHONE_LABEL" description="PLG_USER_PROFILE_FIELD_PHONE_DESC" + default="1" + filter="integer" > @@ -110,6 +124,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_WEB_SITE_LABEL" description="PLG_USER_PROFILE_FIELD_WEB_SITE_DESC" + default="1" + filter="integer" > @@ -121,6 +137,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_FAVORITE_BOOK_LABEL" description="PLG_USER_PROFILE_FIELD_FAVORITE_BOOK_DESC" + default="1" + filter="integer" > @@ -132,6 +150,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_ABOUT_ME_LABEL" description="PLG_USER_PROFILE_FIELD_ABOUT_ME_DESC" + default="1" + filter="integer" > @@ -144,6 +164,7 @@ label="PLG_USER_PROFILE_FIELD_TOS_LABEL" description="PLG_USER_PROFILE_FIELD_TOS_DESC" default="0" + filter="integer" > @@ -158,6 +179,7 @@ new="true" edit="true" clear="true" + filter="integer" /> @@ -189,6 +213,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_ADDRESS1_LABEL" description="PLG_USER_PROFILE_FIELD_ADDRESS1_DESC" + default="1" + filter="integer" > @@ -200,6 +226,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_ADDRESS2_LABEL" description="PLG_USER_PROFILE_FIELD_ADDRESS2_DESC" + default="1" + filter="integer" > @@ -211,6 +239,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_CITY_LABEL" description="PLG_USER_PROFILE_FIELD_CITY_DESC" + default="1" + filter="integer" > @@ -222,6 +252,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_REGION_LABEL" description="PLG_USER_PROFILE_FIELD_REGION_DESC" + default="1" + filter="integer" > @@ -233,6 +265,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_COUNTRY_LABEL" description="PLG_USER_PROFILE_FIELD_COUNTRY_DESC" + default="1" + filter="integer" > @@ -244,6 +278,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_POSTAL_CODE_LABEL" description="PLG_USER_PROFILE_FIELD_POSTAL_CODE_DESC" + default="1" + filter="integer" > @@ -255,6 +291,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_PHONE_LABEL" description="PLG_USER_PROFILE_FIELD_PHONE_DESC" + default="1" + filter="integer" > @@ -266,6 +304,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_WEB_SITE_LABEL" description="PLG_USER_PROFILE_FIELD_WEB_SITE_DESC" + default="1" + filter="integer" > @@ -277,6 +317,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_FAVORITE_BOOK_LABEL" description="PLG_USER_PROFILE_FIELD_FAVORITE_BOOK_DESC" + default="1" + filter="integer" > @@ -288,6 +330,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_ABOUT_ME_LABEL" description="PLG_USER_PROFILE_FIELD_ABOUT_ME_DESC" + default="1" + filter="integer" > @@ -299,6 +343,8 @@ type="list" label="PLG_USER_PROFILE_FIELD_DOB_LABEL" description="PLG_USER_PROFILE_FIELD_DOB_DESC" + default="1" + filter="integer" > diff --git a/plugins/user/profile/profiles/profile.xml b/plugins/user/profile/profiles/profile.xml index 77b0e96c82c46..c548885463234 100644 --- a/plugins/user/profile/profiles/profile.xml +++ b/plugins/user/profile/profiles/profile.xml @@ -121,6 +121,7 @@ label="PLG_USER_PROFILE_FIELD_TOS_LABEL" description="PLG_USER_PROFILE_FIELD_TOS_DESC" default="0" + filter="integer" > From e25596eb4939fa51aa050ae5d431fe5606adebee Mon Sep 17 00:00:00 2001 From: SharkyKZ Date: Thu, 24 May 2018 03:01:05 +0300 Subject: [PATCH 29/34] [plg_fields] Manifest cleanup, filters, Editor plugin fix (#20422) * Update calendar.xml * Update checkboxes.xml * Update checkboxes.xml * Update editor.xml * Update editor.xml * Update editor.php * Update imagelist.xml * Update imagelist.xml * Update integer.xml * Update integer.xml * Update list.xml * Update list.xml * Update media.xml * Update radio.xml * Update radio.xml * Update checkboxes.xml * Update list.xml * Update sql.xml * Update sql.xml * Update textarea.xml * Update textarea.xml * Update url.xml * Update url.xml * Update usergrouplist.xml * Update usergrouplist.xml * Restore empty value --- plugins/fields/calendar/params/calendar.xml | 2 +- plugins/fields/checkboxes/checkboxes.xml | 6 +++--- plugins/fields/checkboxes/params/checkboxes.xml | 6 +++--- plugins/fields/editor/editor.php | 2 +- plugins/fields/editor/editor.xml | 1 + plugins/fields/editor/params/editor.xml | 1 + plugins/fields/imagelist/imagelist.xml | 5 +++-- plugins/fields/imagelist/params/imagelist.xml | 1 + plugins/fields/integer/integer.xml | 10 +++++++--- plugins/fields/integer/params/integer.xml | 4 ++++ plugins/fields/list/list.xml | 7 ++++--- plugins/fields/list/params/list.xml | 5 +++-- plugins/fields/media/media.xml | 4 ++-- plugins/fields/radio/params/radio.xml | 4 ++-- plugins/fields/radio/radio.xml | 6 +++--- plugins/fields/sql/params/sql.xml | 1 + plugins/fields/sql/sql.xml | 3 ++- plugins/fields/textarea/params/textarea.xml | 2 ++ plugins/fields/textarea/textarea.xml | 2 ++ plugins/fields/url/params/url.xml | 1 + plugins/fields/url/url.xml | 3 ++- plugins/fields/usergrouplist/params/usergrouplist.xml | 1 + plugins/fields/usergrouplist/usergrouplist.xml | 1 + 23 files changed, 51 insertions(+), 27 deletions(-) diff --git a/plugins/fields/calendar/params/calendar.xml b/plugins/fields/calendar/params/calendar.xml index 161568b39bb64..85f90459246d1 100644 --- a/plugins/fields/calendar/params/calendar.xml +++ b/plugins/fields/calendar/params/calendar.xml @@ -8,8 +8,8 @@ label="PLG_FIELDS_CALENDAR_PARAMS_SHOWTIME_LABEL" description="PLG_FIELDS_CALENDAR_PARAMS_SHOWTIME_DESC" class="btn-group btn-group-yesno" - size="20" default="0" + filter="integer" > diff --git a/plugins/fields/checkboxes/checkboxes.xml b/plugins/fields/checkboxes/checkboxes.xml index bf922346b9b99..2628fceb9c779 100644 --- a/plugins/fields/checkboxes/checkboxes.xml +++ b/plugins/fields/checkboxes/checkboxes.xml @@ -23,11 +23,11 @@
    diff --git a/plugins/fields/integer/params/integer.xml b/plugins/fields/integer/params/integer.xml index 07b70807a3645..90a7e09c163a0 100644 --- a/plugins/fields/integer/params/integer.xml +++ b/plugins/fields/integer/params/integer.xml @@ -7,6 +7,7 @@ type="list" label="PLG_FIELDS_INTEGER_PARAMS_MULTIPLE_LABEL" description="PLG_FIELDS_INTEGER_PARAMS_MULTIPLE_DESC" + filter="integer" > @@ -18,6 +19,7 @@ type="number" label="PLG_FIELDS_INTEGER_PARAMS_FIRST_LABEL" description="PLG_FIELDS_INTEGER_PARAMS_FIRST_DESC" + filter="integer" size="5" /> @@ -26,6 +28,7 @@ type="number" label="PLG_FIELDS_INTEGER_PARAMS_LAST_LABEL" description="PLG_FIELDS_INTEGER_PARAMS_LAST_DESC" + filter="integer" size="5" /> @@ -34,6 +37,7 @@ type="number" label="PLG_FIELDS_INTEGER_PARAMS_STEP_LABEL" description="PLG_FIELDS_INTEGER_PARAMS_STEP_DESC" + filter="integer" size="5" />
    diff --git a/plugins/fields/list/list.xml b/plugins/fields/list/list.xml index 7bea9c7d12632..3cffb96621c59 100644 --- a/plugins/fields/list/list.xml +++ b/plugins/fields/list/list.xml @@ -26,6 +26,7 @@ description="PLG_FIELDS_LIST_PARAMS_MULTIPLE_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > @@ -33,11 +34,11 @@ @@ -47,7 +48,7 @@ label="PLG_FIELDS_LIST_PARAMS_OPTIONS_NAME_LABEL" size="30" /> - + @@ -15,11 +16,11 @@ diff --git a/plugins/fields/media/media.xml b/plugins/fields/media/media.xml index 52477a7a2938b..9f531f2c6f162 100644 --- a/plugins/fields/media/media.xml +++ b/plugins/fields/media/media.xml @@ -30,7 +30,7 @@ hide_none="true" recursive="true" /> - + PLG_FIELDS_MEDIA_PARAMS_PREVIEW_INLINE - + diff --git a/plugins/fields/radio/radio.xml b/plugins/fields/radio/radio.xml index 3ea7d9112e0ca..186158aea75b0 100644 --- a/plugins/fields/radio/radio.xml +++ b/plugins/fields/radio/radio.xml @@ -23,11 +23,11 @@
    @@ -37,7 +37,7 @@ label="PLG_FIELDS_RADIO_PARAMS_OPTIONS_NAME_LABEL" size="30" /> - + diff --git a/plugins/fields/sql/sql.xml b/plugins/fields/sql/sql.xml index e7dd0dd8a9e9b..54486662df468 100644 --- a/plugins/fields/sql/sql.xml +++ b/plugins/fields/sql/sql.xml @@ -30,7 +30,7 @@ filter="raw" required="true" /> - + diff --git a/plugins/fields/textarea/params/textarea.xml b/plugins/fields/textarea/params/textarea.xml index f562be1cc8115..ee3d3a6feba21 100644 --- a/plugins/fields/textarea/params/textarea.xml +++ b/plugins/fields/textarea/params/textarea.xml @@ -7,6 +7,7 @@ type="number" label="PLG_FIELDS_TEXTAREA_PARAMS_ROWS_LABEL" description="PLG_FIELDS_TEXTAREA_PARAMS_ROWS_DESC" + filter="integer" size="5" /> @@ -15,6 +16,7 @@ type="number" label="PLG_FIELDS_TEXTAREA_PARAMS_COLS_LABEL" description="PLG_FIELDS_TEXTAREA_PARAMS_COLS_DESC" + filter="integer" size="5" /> diff --git a/plugins/fields/textarea/textarea.xml b/plugins/fields/textarea/textarea.xml index 8d2d238d9adaf..277930df0e116 100644 --- a/plugins/fields/textarea/textarea.xml +++ b/plugins/fields/textarea/textarea.xml @@ -27,6 +27,7 @@ label="PLG_FIELDS_TEXTAREA_PARAMS_ROWS_LABEL" description="PLG_FIELDS_TEXTAREA_PARAMS_ROWS_DESC" default="10" + filter="integer" size="5" /> @@ -36,6 +37,7 @@ label="PLG_FIELDS_TEXTAREA_PARAMS_COLS_LABEL" description="PLG_FIELDS_TEXTAREA_PARAMS_COLS_DESC" default="10" + filter="integer" size="5" /> diff --git a/plugins/fields/url/params/url.xml b/plugins/fields/url/params/url.xml index c158742ba9e3c..d844ab6ba0769 100644 --- a/plugins/fields/url/params/url.xml +++ b/plugins/fields/url/params/url.xml @@ -22,6 +22,7 @@ type="list" label="PLG_FIELDS_URL_PARAMS_RELATIVE_LABEL" description="PLG_FIELDS_URL_PARAMS_RELATIVE_DESC" + filter="integer" > diff --git a/plugins/fields/url/url.xml b/plugins/fields/url/url.xml index 5baf5899b9f54..9d815e3fa9709 100644 --- a/plugins/fields/url/url.xml +++ b/plugins/fields/url/url.xml @@ -35,7 +35,7 @@ - + diff --git a/plugins/fields/usergrouplist/params/usergrouplist.xml b/plugins/fields/usergrouplist/params/usergrouplist.xml index 8dae8d0d4cb26..eb3d0d7a9cea2 100644 --- a/plugins/fields/usergrouplist/params/usergrouplist.xml +++ b/plugins/fields/usergrouplist/params/usergrouplist.xml @@ -7,6 +7,7 @@ type="list" label="PLG_FIELDS_USERGROUPLIST_PARAMS_MULTIPLE_LABEL" description="PLG_FIELDS_USERGROUPLIST_PARAMS_MULTIPLE_DESC" + filter="integer" > diff --git a/plugins/fields/usergrouplist/usergrouplist.xml b/plugins/fields/usergrouplist/usergrouplist.xml index 73ee52a931384..690ce51262d7b 100644 --- a/plugins/fields/usergrouplist/usergrouplist.xml +++ b/plugins/fields/usergrouplist/usergrouplist.xml @@ -28,6 +28,7 @@ description="PLG_FIELDS_USERGROUPLIST_PARAMS_MULTIPLE_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > From bf700a4b3eb95d8c3a370a0e1bc1767427e1aa89 Mon Sep 17 00:00:00 2001 From: SharkyKZ Date: Thu, 24 May 2018 03:02:30 +0300 Subject: [PATCH 30/34] [plg_system] Manifest file filters (#20456) --- plugins/system/cache/cache.php | 4 ++-- plugins/system/cache/cache.xml | 4 ++-- plugins/system/debug/debug.php | 12 ++++++------ plugins/system/debug/debug.xml | 17 ++++++++++++++++- .../system/languagefilter/languagefilter.php | 4 ++-- .../system/languagefilter/languagefilter.xml | 7 +++++++ plugins/system/log/log.xml | 1 + plugins/system/redirect/form/excludes.xml | 1 + plugins/system/redirect/redirect.php | 2 +- plugins/system/redirect/redirect.xml | 2 ++ plugins/system/sef/sef.php | 2 +- 11 files changed, 41 insertions(+), 15 deletions(-) diff --git a/plugins/system/cache/cache.php b/plugins/system/cache/cache.php index 53e53008ad142..a8671f349e9f3 100644 --- a/plugins/system/cache/cache.php +++ b/plugins/system/cache/cache.php @@ -55,7 +55,7 @@ public function __construct(& $subject, $config) // Set the language in the class. $options = array( 'defaultgroup' => 'page', - 'browsercache' => $this->params->get('browsercache', false), + 'browsercache' => $this->params->get('browsercache', 0), 'caching' => false, ); @@ -188,7 +188,7 @@ protected function isExcluded() // Get the current menu item $active = $this->app->getMenu()->getActive(); - if ($active && $active->id && in_array($active->id, (array) $exclusions, true)) + if ($active && $active->id && in_array((int) $active->id, (array) $exclusions)) { return true; } diff --git a/plugins/system/cache/cache.xml b/plugins/system/cache/cache.xml index 1552bdc6f93ef..5ffe5bf89442c 100644 --- a/plugins/system/cache/cache.xml +++ b/plugins/system/cache/cache.xml @@ -26,6 +26,7 @@ description="PLG_CACHE_FIELD_BROWSERCACHE_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > @@ -36,8 +37,8 @@ type="menuitem" label="PLG_CACHE_FIELD_EXCLUDE_MENU_ITEMS_LABEL" description="PLG_CACHE_FIELD_EXCLUDE_MENU_ITEMS_DESC" - default="" multiple="multiple" + filter="int_array" />
    @@ -50,7 +51,6 @@ class="input-xxlarge" rows="15" filter="raw" - default="" /> diff --git a/plugins/system/debug/debug.php b/plugins/system/debug/debug.php index 9f46cb9b68688..e1989e945ae00 100644 --- a/plugins/system/debug/debug.php +++ b/plugins/system/debug/debug.php @@ -111,13 +111,13 @@ public function __construct(&$subject, $config) parent::__construct($subject, $config); // Log the deprecated API. - if ($this->params->get('log-deprecated')) + if ($this->params->get('log-deprecated', 0)) { JLog::addLogger(array('text_file' => 'deprecated.php'), JLog::ALL, array('deprecated')); } // Log everything (except deprecated APIs, these are logged separately with the option above). - if ($this->params->get('log-everything')) + if ($this->params->get('log-everything', 0)) { JLog::addLogger(array('text_file' => 'everything.php'), JLog::ALL, array('deprecated', 'databasequery'), true); } @@ -331,7 +331,7 @@ public function onAfterRespond() $html[] = $this->display('language_files_loaded'); } - if ($this->params->get('language_strings')) + if ($this->params->get('language_strings', 1)) { $html[] = $this->display('untranslated_strings'); } @@ -404,7 +404,7 @@ private function isAuthorisedDisplayDebug() } // If the user is not allowed to view the output then end here. - $filterGroups = (array) $this->params->get('filter_groups', null); + $filterGroups = (array) $this->params->get('filter_groups', array()); if (!empty($filterGroups)) { @@ -772,7 +772,7 @@ protected function displayProfileInformation() sprintf('%.2f ms', $totalQueryTime) ) . ''; - if ($this->params->get('log-executed-sql', '0')) + if ($this->params->get('log-executed-sql', 0)) { $this->writeToFile(); } @@ -1621,7 +1621,7 @@ protected function displayLanguageFilesLoaded() */ protected function displayUntranslatedStrings() { - $stripFirst = $this->params->get('strip-first'); + $stripFirst = $this->params->get('strip-first', 1); $stripPref = $this->params->get('strip-prefix'); $stripSuff = $this->params->get('strip-suffix'); diff --git a/plugins/system/debug/debug.xml b/plugins/system/debug/debug.xml index 232d4eaa59ed5..c557968897357 100644 --- a/plugins/system/debug/debug.xml +++ b/plugins/system/debug/debug.xml @@ -25,6 +25,7 @@ label="PLG_DEBUG_FIELD_ALLOWED_GROUPS_LABEL" description="PLG_DEBUG_FIELD_ALLOWED_GROUPS_DESC" multiple="true" + filter="int_array" size="10" /> @@ -35,6 +36,7 @@ description="PLG_DEBUG_FIELD_SESSION_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -47,6 +49,7 @@ description="PLG_DEBUG_FIELD_PROFILING_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -59,6 +62,7 @@ description="PLG_DEBUG_FIELD_QUERIES_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -71,6 +75,7 @@ description="PLG_DEBUG_FIELD_QUERY_TYPES_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -83,6 +88,7 @@ description="PLG_DEBUG_FIELD_MEMORY_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -95,6 +101,7 @@ description="PLG_DEBUG_FIELD_LOGS_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -125,7 +132,6 @@ label="PLG_DEBUG_FIELD_LOG_CATEGORIES_LABEL" description="PLG_DEBUG_FIELD_LOG_CATEGORIES_DESC" size="60" - default="" /> @@ -147,6 +154,7 @@ description="PLG_DEBUG_FIELD_REFRESH_ASSETS_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -165,6 +173,7 @@ description="PLG_DEBUG_FIELD_LANGUAGE_ERRORFILES_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -177,6 +186,7 @@ description="PLG_DEBUG_FIELD_LANGUAGE_FILES_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -189,6 +199,7 @@ description="PLG_DEBUG_FIELD_LANGUAGE_STRING_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -201,6 +212,7 @@ description="PLG_DEBUG_FIELD_STRIP_FIRST_DESC" class="btn-group btn-group-yesno" default="1" + filter="integer" > @@ -236,6 +248,7 @@ description="PLG_DEBUG_FIELD_LOG_DEPRECATED_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > @@ -248,6 +261,7 @@ description="PLG_DEBUG_FIELD_LOG_EVERYTHING_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > @@ -260,6 +274,7 @@ description="PLG_DEBUG_FIELD_EXECUTEDSQL_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > diff --git a/plugins/system/languagefilter/languagefilter.php b/plugins/system/languagefilter/languagefilter.php index 9d5bf41b7d003..2076cad1df514 100644 --- a/plugins/system/languagefilter/languagefilter.php +++ b/plugins/system/languagefilter/languagefilter.php @@ -519,7 +519,7 @@ public function parseRule(&$router, &$uri) */ public function onUserBeforeSave($user, $isnew, $new) { - if (array_key_exists('params', $user) && $this->params->get('automatic_change', '1') == '1') + if (array_key_exists('params', $user) && $this->params->get('automatic_change', 1) == 1) { $registry = new Registry($user['params']); $this->user_lang_code = $registry->get('language'); @@ -547,7 +547,7 @@ public function onUserBeforeSave($user, $isnew, $new) */ public function onUserAfterSave($user, $isnew, $success, $msg) { - if ($success && array_key_exists('params', $user) && $this->params->get('automatic_change', '1') == '1') + if ($success && array_key_exists('params', $user) && $this->params->get('automatic_change', 1) == 1) { $registry = new Registry($user['params']); $lang_code = $registry->get('language'); diff --git a/plugins/system/languagefilter/languagefilter.xml b/plugins/system/languagefilter/languagefilter.xml index 02c0564d42e9b..065b714812c42 100644 --- a/plugins/system/languagefilter/languagefilter.xml +++ b/plugins/system/languagefilter/languagefilter.xml @@ -25,6 +25,7 @@ label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_DETECT_BROWSER_LABEL" description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_DETECT_BROWSER_DESC" default="0" + filter="integer" > @@ -36,6 +37,7 @@ label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_AUTOMATIC_CHANGE_LABEL" description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_AUTOMATIC_CHANGE_DESC" default="1" + filter="integer" class="btn-group btn-group-yesno" > @@ -48,6 +50,7 @@ label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_ITEM_ASSOCIATIONS_LABEL" description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_ITEM_ASSOCIATIONS_DESC" default="1" + filter="integer" class="btn-group btn-group-yesno" > @@ -60,6 +63,7 @@ label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_ALTERNATE_META_LABEL" description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_ALTERNATE_META_DESC" default="1" + filter="integer" class="btn-group btn-group-yesno" > @@ -72,6 +76,7 @@ label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_XDEFAULT_LABEL" description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_XDEFAULT_DESC" default="1" + filter="integer" class="btn-group btn-group-yesno" showon="alternate_meta:1" > @@ -96,6 +101,7 @@ label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_REMOVE_DEFAULT_PREFIX_LABEL" description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_REMOVE_DEFAULT_PREFIX_DESC" default="0" + filter="integer" class="btn-group btn-group-yesno" > @@ -108,6 +114,7 @@ label="PLG_SYSTEM_LANGUAGEFILTER_FIELD_COOKIE_LABEL" description="PLG_SYSTEM_LANGUAGEFILTER_FIELD_COOKIE_DESC" default="0" + filter="integer" > diff --git a/plugins/system/log/log.xml b/plugins/system/log/log.xml index 9e0b1e5131b7a..b23e46e845779 100644 --- a/plugins/system/log/log.xml +++ b/plugins/system/log/log.xml @@ -26,6 +26,7 @@ description="PLG_SYSTEM_LOG_FIELD_LOG_USERNAME_DESC" class="btn-group btn-group-yesno" default="0" + filter="integer" > diff --git a/plugins/system/redirect/form/excludes.xml b/plugins/system/redirect/form/excludes.xml index 1e77e45afaaaf..3f4eae2ce9a7d 100644 --- a/plugins/system/redirect/form/excludes.xml +++ b/plugins/system/redirect/form/excludes.xml @@ -13,6 +13,7 @@ type="checkbox" label="PLG_SYSTEM_REDIRECT_FIELD_EXCLUDE_URLS_REGEXP_LABEL" description="PLG_SYSTEM_REDIRECT_FIELD_EXCLUDE_URLS_REGEXP_DESC" + filter="integer" /> diff --git a/plugins/system/redirect/redirect.php b/plugins/system/redirect/redirect.php index 3983bd9f40014..deebe6c2ed031 100644 --- a/plugins/system/redirect/redirect.php +++ b/plugins/system/redirect/redirect.php @@ -295,7 +295,7 @@ private static function doErrorHandling($error) { $params = new Registry(JPluginHelper::getPlugin('system', 'redirect')->params); - if ((bool) $params->get('collect_urls', true)) + if ((bool) $params->get('collect_urls', 1)) { if (!$params->get('includeUrl', 1)) { diff --git a/plugins/system/redirect/redirect.xml b/plugins/system/redirect/redirect.xml index 8e4c04a4fe8ce..6438fb1950aaf 100644 --- a/plugins/system/redirect/redirect.xml +++ b/plugins/system/redirect/redirect.xml @@ -26,6 +26,7 @@ label="PLG_SYSTEM_REDIRECT_FIELD_COLLECT_URLS_LABEL" description="PLG_SYSTEM_REDIRECT_FIELD_COLLECT_URLS_DESC" default="1" + filter="integer" class="btn-group btn-group-yesno" > @@ -37,6 +38,7 @@ label="PLG_SYSTEM_REDIRECT_FIELD_STORE_FULL_URL_LABEL" description="PLG_SYSTEM_REDIRECT_FIELD_STORE_FULL_URL_DESC" default="1" + filter="integer" class="btn-group btn-group-yesno" > diff --git a/plugins/system/sef/sef.php b/plugins/system/sef/sef.php index e68993b55876e..dfe2eedafd10e 100644 --- a/plugins/system/sef/sef.php +++ b/plugins/system/sef/sef.php @@ -40,7 +40,7 @@ public function onAfterDispatch() return; } - $sefDomain = $this->params->get('domain', ''); + $sefDomain = $this->params->get('domain', false); // Don't add a canonical html tag if no alternative domain has added in SEF plugin domain field. if (empty($sefDomain)) From 8b49838b88d1acd3aea1bfee53c026775012a736 Mon Sep 17 00:00:00 2001 From: Walt Sorensen Date: Wed, 23 May 2018 18:03:39 -0600 Subject: [PATCH 31/34] [CS] fix some doc comment types (#20522) * PHPCS2 manual fixes - Variables passed by reference should not have the `&` prefixed in the doc comment - Joomla.Commenting.FunctionComment.MissingParamTag - Joomla.Commenting.FunctionComment.ParamNameNoMatch - correct return statement * exclude administrator/components/ folder "Having a "&" in the docblock (whether it's in front of the type or name) is not valid. References are to be expressed solely by the function/method declaration." so we need to exclude this sniff while we trasition to the PHPCS 2.x version --- administrator/components/com_banners/helpers/banners.php | 4 ++-- administrator/components/com_banners/models/banner.php | 2 +- administrator/components/com_banners/tables/banner.php | 2 +- administrator/components/com_banners/tables/client.php | 2 +- .../components/com_categories/controllers/categories.php | 2 +- administrator/components/com_categories/models/categories.php | 2 +- administrator/components/com_categories/models/category.php | 4 ++-- administrator/components/com_contact/helpers/contact.php | 4 ++-- administrator/components/com_contact/tables/contact.php | 2 +- administrator/components/com_content/helpers/content.php | 4 ++-- administrator/components/com_content/models/article.php | 2 +- administrator/components/com_content/tables/featured.php | 2 +- .../components/com_contenthistory/models/history.php | 4 ++-- administrator/components/com_fields/helpers/fields.php | 2 +- administrator/components/com_fields/models/field.php | 2 +- build/phpcs/Joomla/ruleset.xml | 1 + 16 files changed, 21 insertions(+), 20 deletions(-) diff --git a/administrator/components/com_banners/helpers/banners.php b/administrator/components/com_banners/helpers/banners.php index 951a364fe93c2..1af52a92149f2 100644 --- a/administrator/components/com_banners/helpers/banners.php +++ b/administrator/components/com_banners/helpers/banners.php @@ -188,7 +188,7 @@ public static function getClientOptions() /** * Adds Count Items for Category Manager. * - * @param stdClass[] &$items The banner category objects + * @param stdClass[] $items The banner category objects * * @return stdClass[] * @@ -242,7 +242,7 @@ public static function countItems(&$items) /** * Adds Count Items for Tag Manager. * - * @param stdClass[] &$items The banner tag objects + * @param stdClass[] $items The banner tag objects * @param string $extension The name of the active view. * * @return stdClass[] diff --git a/administrator/components/com_banners/models/banner.php b/administrator/components/com_banners/models/banner.php index 001353023eef8..bf1e662526716 100644 --- a/administrator/components/com_banners/models/banner.php +++ b/administrator/components/com_banners/models/banner.php @@ -373,7 +373,7 @@ protected function loadFormData() /** * Method to stick records. * - * @param array &$pks The ids of the items to publish. + * @param array $pks The ids of the items to publish. * @param integer $value The value of the published state * * @return boolean True on success. diff --git a/administrator/components/com_banners/tables/banner.php b/administrator/components/com_banners/tables/banner.php index eadd70c12f4b7..c83b502792bdb 100644 --- a/administrator/components/com_banners/tables/banner.php +++ b/administrator/components/com_banners/tables/banner.php @@ -22,7 +22,7 @@ class BannersTableBanner extends JTable /** * Constructor * - * @param JDatabaseDriver &$db Database connector object + * @param JDatabaseDriver $db Database connector object * * @since 1.5 */ diff --git a/administrator/components/com_banners/tables/client.php b/administrator/components/com_banners/tables/client.php index fe8a820488abf..38540cdf0b55c 100644 --- a/administrator/components/com_banners/tables/client.php +++ b/administrator/components/com_banners/tables/client.php @@ -21,7 +21,7 @@ class BannersTableClient extends JTable /** * Constructor * - * @param JDatabaseDriver &$db Database connector object + * @param JDatabaseDriver $db Database connector object * * @since 1.5 */ diff --git a/administrator/components/com_categories/controllers/categories.php b/administrator/components/com_categories/controllers/categories.php index c501c16677ccd..08ea45974674b 100644 --- a/administrator/components/com_categories/controllers/categories.php +++ b/administrator/components/com_categories/controllers/categories.php @@ -68,7 +68,7 @@ public function rebuild() /** * Save the manual order inputs from the categories list page. * - * @return void + * @return boolean True on success * * @since 1.6 * @see JControllerAdmin::saveorder() diff --git a/administrator/components/com_categories/models/categories.php b/administrator/components/com_categories/models/categories.php index 9f04ecae1e5df..f19ba56073061 100644 --- a/administrator/components/com_categories/models/categories.php +++ b/administrator/components/com_categories/models/categories.php @@ -366,7 +366,7 @@ public function getItems() /** * Method to load the countItems method from the extensions * - * @param stdClass[] &$items The category items + * @param stdClass[] $items The category items * @param string $extension The category extension * * @return void diff --git a/administrator/components/com_categories/models/category.php b/administrator/components/com_categories/models/category.php index 144ecd09e0a82..458b01eb22740 100644 --- a/administrator/components/com_categories/models/category.php +++ b/administrator/components/com_categories/models/category.php @@ -359,7 +359,7 @@ protected function loadFormData() * @param mixed $data The data expected for the form. * @param string $group The name of the plugin group to import. * - * @return void + * @return mixed * * @see JFormField * @since 1.6 @@ -695,7 +695,7 @@ public function save($data) /** * Method to change the published state of one or more records. * - * @param array &$pks A list of the primary keys to change. + * @param array $pks A list of the primary keys to change. * @param integer $value The value of the published state. * * @return boolean True on success. diff --git a/administrator/components/com_contact/helpers/contact.php b/administrator/components/com_contact/helpers/contact.php index fd345ef6dd42f..fa33ca7b492e4 100644 --- a/administrator/components/com_contact/helpers/contact.php +++ b/administrator/components/com_contact/helpers/contact.php @@ -57,7 +57,7 @@ public static function addSubmenu($vName) /** * Adds Count Items for Category Manager. * - * @param stdClass[] &$items The contact category objects + * @param stdClass[] $items The contact category objects * * @return stdClass[] * @@ -111,7 +111,7 @@ public static function countItems(&$items) /** * Adds Count Items for Tag Manager. * - * @param stdClass[] &$items The banner tag objects + * @param stdClass[] $items The banner tag objects * @param string $extension The name of the active view. * * @return stdClass[] diff --git a/administrator/components/com_contact/tables/contact.php b/administrator/components/com_contact/tables/contact.php index 6b837e791f510..d34d46d49f6e6 100644 --- a/administrator/components/com_contact/tables/contact.php +++ b/administrator/components/com_contact/tables/contact.php @@ -30,7 +30,7 @@ class ContactTableContact extends JTable /** * Constructor * - * @param JDatabaseDriver &$db Database connector object + * @param JDatabaseDriver $db Database connector object * * @since 1.0 */ diff --git a/administrator/components/com_content/helpers/content.php b/administrator/components/com_content/helpers/content.php index 42b73b5b9ed7a..a8a0b62e72c7c 100644 --- a/administrator/components/com_content/helpers/content.php +++ b/administrator/components/com_content/helpers/content.php @@ -91,7 +91,7 @@ public static function filterText($text) /** * Adds Count Items for Category Manager. * - * @param stdClass[] &$items The banner category objects + * @param stdClass[] $items The banner category objects * * @return stdClass[] * @@ -145,7 +145,7 @@ public static function countItems(&$items) /** * Adds Count Items for Tag Manager. * - * @param stdClass[] &$items The content objects + * @param stdClass[] $items The content objects * @param string $extension The name of the active view. * * @return stdClass[] diff --git a/administrator/components/com_content/models/article.php b/administrator/components/com_content/models/article.php index 6d64bf25c1b63..868182bd67f2e 100644 --- a/administrator/components/com_content/models/article.php +++ b/administrator/components/com_content/models/article.php @@ -970,7 +970,7 @@ private function canCreateCategory() /** * Delete #__content_frontpage items if the deleted articles was featured * - * @param object &$pks The primary key related to the contents that was deleted. + * @param object $pks The primary key related to the contents that was deleted. * * @return boolean * diff --git a/administrator/components/com_content/tables/featured.php b/administrator/components/com_content/tables/featured.php index 2fd7614778fb7..2a1d4808afefd 100644 --- a/administrator/components/com_content/tables/featured.php +++ b/administrator/components/com_content/tables/featured.php @@ -19,7 +19,7 @@ class ContentTableFeatured extends JTable /** * Constructor * - * @param JDatabaseDriver &$db Database connector object + * @param JDatabaseDriver $db Database connector object * * @since 1.6 */ diff --git a/administrator/components/com_contenthistory/models/history.php b/administrator/components/com_contenthistory/models/history.php index 41d032eb7ba5b..17325ecf9c648 100644 --- a/administrator/components/com_contenthistory/models/history.php +++ b/administrator/components/com_contenthistory/models/history.php @@ -104,7 +104,7 @@ protected function canDelete($record) /** * Method to delete one or more records from content history table. * - * @param array &$pks An array of record primary keys. + * @param array $pks An array of record primary keys. * * @return boolean True if successful, false if an error occurs. * @@ -243,7 +243,7 @@ public function getTable($type = 'Contenthistory', $prefix = 'JTable', $config = /** * Method to toggle on and off the keep forever value for one or more records from content history table. * - * @param array &$pks An array of record primary keys. + * @param array $pks An array of record primary keys. * * @return boolean True if successful, false if an error occurs. * diff --git a/administrator/components/com_fields/helpers/fields.php b/administrator/components/com_fields/helpers/fields.php index 5dfbd03a8703a..0f5849612f9c0 100644 --- a/administrator/components/com_fields/helpers/fields.php +++ b/administrator/components/com_fields/helpers/fields.php @@ -591,7 +591,7 @@ public static function displayFieldOnForm($field) /** * Adds Count Items for Category Manager. * - * @param stdClass[] &$items The field category objects + * @param stdClass[] $items The field category objects * * @return stdClass[] * diff --git a/administrator/components/com_fields/models/field.php b/administrator/components/com_fields/models/field.php index 6cf51090da0f1..1179b6250ce9c 100644 --- a/administrator/components/com_fields/models/field.php +++ b/administrator/components/com_fields/models/field.php @@ -433,7 +433,7 @@ protected function generateNewTitle($category_id, $name, $title) /** * Method to delete one or more records. * - * @param array &$pks An array of record primary keys. + * @param array $pks An array of record primary keys. * * @return boolean True if successful, false if an error occurs. * diff --git a/build/phpcs/Joomla/ruleset.xml b/build/phpcs/Joomla/ruleset.xml index ac4a3d675b0bd..7e094ee1fdf63 100644 --- a/build/phpcs/Joomla/ruleset.xml +++ b/build/phpcs/Joomla/ruleset.xml @@ -157,6 +157,7 @@ templates/* layouts/* tests/* + administrator/components/* From c18e3da7c6e074edf51b940947df29b8f55a316e Mon Sep 17 00:00:00 2001 From: Quy Date: Wed, 23 May 2018 17:04:07 -0700 Subject: [PATCH 32/34] [styles] Fix checkboxes/buttons not clickable under Menu Assignment in Chrome (#20542) * Remove css * Remove css * Remove css rtl * cs --- administrator/templates/isis/css/template-rtl.css | 2 -- administrator/templates/isis/css/template.css | 2 -- administrator/templates/isis/less/pages/_com_templates.less | 2 -- 3 files changed, 6 deletions(-) diff --git a/administrator/templates/isis/css/template-rtl.css b/administrator/templates/isis/css/template-rtl.css index 4e1ee9fe69113..d5820fc5dbf64 100644 --- a/administrator/templates/isis/css/template-rtl.css +++ b/administrator/templates/isis/css/template-rtl.css @@ -9088,8 +9088,6 @@ input:focus, margin-bottom: 15px; width: 100%; list-style: none; - -webkit-column-break-inside: avoid; - -webkit-backface-visibility: hidden; } #menu-assignment .menu-links-block { background-color: #fafafa; diff --git a/administrator/templates/isis/css/template.css b/administrator/templates/isis/css/template.css index c7ae130221745..2e2ec4a34e187 100644 --- a/administrator/templates/isis/css/template.css +++ b/administrator/templates/isis/css/template.css @@ -9088,8 +9088,6 @@ input:focus, margin-bottom: 15px; width: 100%; list-style: none; - -webkit-column-break-inside: avoid; - -webkit-backface-visibility: hidden; } #menu-assignment .menu-links-block { background-color: #fafafa; diff --git a/administrator/templates/isis/less/pages/_com_templates.less b/administrator/templates/isis/less/pages/_com_templates.less index 69d17fc920a14..7f8d76e7a99df 100644 --- a/administrator/templates/isis/less/pages/_com_templates.less +++ b/administrator/templates/isis/less/pages/_com_templates.less @@ -17,8 +17,6 @@ margin-bottom: 15px; width: 100%; list-style: none; - -webkit-column-break-inside: avoid; - -webkit-backface-visibility: hidden; } } .menu-links-block { From cb775ed5d03d042cb73e8a08694287cb6f97dce7 Mon Sep 17 00:00:00 2001 From: Devportobello Date: Thu, 24 May 2018 02:05:22 +0200 Subject: [PATCH 33/34] [Regression] Menu item type url with rel attribute nofollow (#19949) * Menu item url attribute rel nofollow with target blank * logic * cs * cs fix - thx Quy * concat --- modules/mod_menu/tmpl/default_url.php | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/modules/mod_menu/tmpl/default_url.php b/modules/mod_menu/tmpl/default_url.php index 67cc32a2443d4..166189a73b95e 100644 --- a/modules/mod_menu/tmpl/default_url.php +++ b/modules/mod_menu/tmpl/default_url.php @@ -50,6 +50,11 @@ { $attributes['target'] = '_blank'; $attributes['rel'] = 'noopener noreferrer'; + + if ($item->anchor_rel == 'nofollow') + { + $attributes['rel'] .= ' nofollow'; + } } elseif ($item->browserNav == 2) { From 56b89cedb6b9df3a7f07e25b04a0d5a0b36efcdd Mon Sep 17 00:00:00 2001 From: Tomasz Stach Date: Thu, 24 May 2018 02:06:23 +0200 Subject: [PATCH 34/34] To many elements to index (#13868) * To many elements to index I don't know why in the query `#__tags` is twice. Once as a `a` and second time as a `b`. For me it works perfectly when we remove `b`. I had a problem with this - for 1100 tags on my websites, Smart Search Indexer found more than 1233000 items to index. * Mistake with query I corrected a bug with calling the `#__tags` table in the query. --- plugins/finder/tags/tags.php | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/plugins/finder/tags/tags.php b/plugins/finder/tags/tags.php index 179c7a622f637..ab17a4405c7b5 100644 --- a/plugins/finder/tags/tags.php +++ b/plugins/finder/tags/tags.php @@ -315,8 +315,7 @@ protected function getListQuery($query = null) // Join the #__users table $query->select('u.name AS author') - ->join('LEFT', '#__users AS u ON u.id = b.created_user_id') - ->from('#__tags AS b'); + ->join('LEFT', '#__users AS u ON u.id = a.created_user_id'); // Exclude the ROOT item $query->where($db->quoteName('a.id') . ' > 1');