Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Custom Fields toggle display on read only rights #20068

Merged
merged 10 commits into from
Apr 7, 2018
Merged

Custom Fields toggle display on read only rights #20068

merged 10 commits into from
Apr 7, 2018

Conversation

Ruud68
Copy link
Contributor

@Ruud68 Ruud68 commented Apr 3, 2018

Pull Request for New Feature.

This PR is part of Jomla! 3.8.7. Use instructions can be found here: https://onlinecommunityhub.nl/community-tools/improved-handling-of-read-only-field-data-in-com-fields

Summary of Changes

previous discussion of several approaches that led to this solution:

Summary of Changes

This RFC proposes to extend the configuration of com_fields to better control the displaying of Fields on (component edit / create) Forms. This functionality will greatly extend the use cases for com_fields (and therefore for Joomla!) in ‘real-life’ implementations.

In this PR, #19884 is 'cherry picked' (currently in staging) as this is a required bug fix for com_fields.

Current Limitations

This RFC proposes to extend the configuration of com_fields to better control the displaying of Fields on (component edit / create) Forms. This functionality will greatly extend the use cases for com_fields in ‘real-life’ implementations.

Use Case com_fields and com_content:

I run a large blog site where the blogs are ‘enriched’ with custom fields to add credits, opengraph image / title / description, twitter card image / title / description to the blogs. The access to these field values must be set to public in order for visitors / facebook / twitter etc. to ‘see’ the given values.

These filling of these fields must be limited to the publisher role to avoid mis usage and to comply to site standards (for images).

The fields should be invisible to authors in order to avoid ‘support calls’: what are these fields for, why can't I edit them, etc.

With the current configuration settings this is not possible:

  • Setting the Access to publisher will prevent the fields from displaying on the article editing / creation form, but will also only display the values set in these fields to publisher only: public / guest will not see the values set.
  • using show on administrator will partly work, but the publishers need to be able to login via the back-end. The show on parameter is ACL independent (simple toggle). Publishers do not have access to the back-end but need access to these fields via the front-end.
  • setting the ACL to only allow publishers to Edit Custom Field Value, will display the fields on everybody’s article edit / creation form (including authors) as read-only except for the groups that have the correct permissions. This will clutter the article edit / creation form with a lot of read-only fields with the possibility that in the long list of fields some fields are read-only and some are editable.

Use Case com_fields and com_users:

I run a membership site where users subscribe to a service. Depending on their subscription, values can be set in their user profile via com_fields. The amount of fields for all subscriptions total up to 50 fields.

The values set in these fields should be visible on the front-end (via a special view that reads the user’s set value (via com_fields api)), the access to these fields must be set to public in order for public and guests to see the values for a specific user.

Specific fields should only be visible when the user can edit (has Edit Custom Field Value' permission set to aloowed)

  • Setting access to a field to the specific group that the fields belongs to does not work as this will also make the values set in these fields inaccessible to public. The values can only be seen by the users that have group membership the field access is set to
  • using show on administrator will now work, because it is a generic toggle that is independent of group ACL membership: They are either all shown or all invisible. Furthermore no users have access to the back-end.
  • Setting the ACL to only have specific user groups Edit Custom Field Value rights will display all fields on the user profile edit form: most read-only and some where values can be set. Only the fields where values can be set should be shown on the user edit profile form.

Furthermore: because the fields access is set to public, when a new user registers on the site, all (!) 50 fields are shown in the registration form as read-only, where the registering user needs to scroll down past all the read-only fields to reach the actual register button. Only the fields that are necessary in the form should be displayed.

Proposed Change

The current limitation lies in the fact that the access field is used for both the form AND for the values.

I propose to extend com_fields with an additional parameter: 'Display when read-only'

The 'Display when read-only' setting toggles whether to display the field on the form when the field is read-only or not.

The 'Display when read-only' setting can be set on field level AND on group level, making the maintenance of large field sets easier as not every field needs to be modified when the 'Display when read-only' setting value changes (can be set on fields group level).
Setting the value on field level has authority over the setting in the fields group!

Use Case com_fields and com_content:

With the proposed change, the following configuration can be set for the com_content fields:

  1. Access = Public (as the values set need to be displayed to visitors)
  2. Show on: both (as the fields should be BOTH editable via the back-end AND front-end)
  3. ACL permission: set Edit Custom Field Value permission to publisher (only members of the publisher ACL can set and edit the field values)
  4. (proposed setting) 'Display when read-only': set to 'No'.

Users that do not have sufficient Access rights to edit the fields will also not see these fields on the article edit / creation form. This will make the edit / create form very UX friendly as only relevant fields are displayed on the form!

Use Case com_fields and com_users:

With the proposed change, the following configuration can be set for the com_users fields:

  1. Access = Public (as the values set need to be displayed to visitors)
  2. Config setting Show on: both (as the fields should be BOTH editable via the back-end AND front-end)
  3. ACL permission: set Edit Custom Field Value permission to public (only members of the public acl can set and edit the field values)
  4. (proposed config setting) 'Display when read-only': set to 'No'.

The benefit here is that users that do not have sufficient Access rights to edit the fields will also not see these fields on their user profile edit form. This will make the edit form very UX friendly as only relevant fields are displayed on the form!

Testing Instructions

Test Case: com_users

  1. in com_users create a fields group:
  • title: user details
  • permissions: Edit Custom Field Value > Registered > allowed
  • 'Display when read-only' (new field): Yes
  1. in Com_users create 3 new fields:
  • title: address, type text, 'Display when read-only': No, field group: user details
  • title: town, type text, 'Display when read-only': No, field group: user details
  • title: country, type: text, 'Display when read-only': Inherit, field group: user details
  1. In the front-end: register a new user account
    Without this PR: fields address, town and country are visible on registration form
    With this PR: only field country is visible on registration form
  2. In the front-end: login with user account and edit user profile
    all fields: address, town, country are visible
  3. try changing the field group 'Display when read-only' setting and the field 'Display when read-only' setting and see if the displaying or not of read-only values is as expected

Test Case: com_content

  1. in com_user: create Viewing Access Levels for Author and Publisher
  2. in com_content create a fields group:
  • title: Blog info
  • permissions: Edit Custom Field Value > Publisher > allowed
  • 'Display when read-only' (new field): Yes
  1. in com_content create 3 new fields:
  • title: opengraph image, type: media, 'Display when read-only' (new field): No, field group: Blog info
  • title: opengraph description, type: editor, 'Display when read-only' (new field): No, field group: Blog info
  • title: credits, type: editor, 'Display when read-only' (new field): Inherit, field group: Blog info
  1. Login on the front-end with a user account with author (no editor/ publisher etc.) rights and edit an article created by this user
    Without this PR, a tab Blog Info will be shown with all fields on it (read-only)
    With this PR, a tab Blog Info will be shown with only the field 'Credits' shown (read-only)
  2. In the back-end change the group for the user to publisher
  3. Repeat step 4
    A tab Blog info is shown with all three fields on it.
  4. try changing the field group 'Display when read-only' setting and the field 'Display when read-only' setting and see if the displaying or not of read-only values is as expected

Expected result

in italics described above

Actual result

Fields are always displayed write or read-only

Documentation Changes Required

yes, com_fields gets new configuration field

laoneo and others added 2 commits April 3, 2018 13:59
* Normalise the request com_fields data

* CS

* PHP 5.3 compat

* Fields in com_fields array (#9)

Fields should be set in com_fields array and not direcly in $data

* Spelling

* Also normalise request data on front-end user profile save (#10)

* Also normalise request data on front-end user profile save

* correct context and option

* Handle 0 properly in empty check

* Simplify

* allowing value 0 to be saved (#11)

when setting a value of 0 in a text field the function empty will return true > setting the value to null

* correct needsUpdate when strlen (or count) = 1 which incorrectly equa… (#12)

* correct needsUpdate when strlen (or count) = 1 which incorrectly equaled to 'true'

* Update field.php

* Update field.php
@laoneo
Copy link
Member

laoneo commented Apr 3, 2018

This is for me the approach which brings in less confusion. +1 from me.

@Ruud68
Copy link
Contributor Author

Ruud68 commented Apr 3, 2018

@laoneo Cool :) can you test if it works? that would be really a +1 :))

@ot2sen
Copy link
Contributor

ot2sen commented Apr 3, 2018

I have tested this item 🔴 unsuccessfully on 8c87352

First part of testing went fine, read only did show the country on reg as read only and then all 3 field on edit user and they could be edited.

At second part I bumped into an issue when wanting to create an article for author in backend to be able to edit that in front. Article->New is broken with the patch


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/20068.

@ot2sen
Copy link
Contributor

ot2sen commented Apr 3, 2018

Screenshot of the error
03-04-2018_togle_field_readonly_newarticle_error

*/
public static function displayReadOnlyFieldOnForm($field)
{
if (!JFactory::getApplication()->isClient('administrator') || !$user->authorise('core.admin'))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

JFactory::getUser()-> instead of $user ?

Also why are you disabling this feature in backend ?

@Ruud68
Copy link
Contributor Author

Ruud68 commented Apr 4, 2018

Goodmorning all :)

At second part I bumped into an issue when wanting to create an article for author in backend to be able to edit that in front. Article->New is broken with the patch

@ot2sen fixed :)

@ggppdk also removed he administrator check, so now also it displays / hides fields on back-end as well (not sure what I was thinking here :)).

@laoneo can you advice?

  1. I can add show_on: site / administrator / both also on field group (currently only on field)
  2. I can move the check for show_on from fieldsplugin.php into helper function where we now do the read-only check. That way we have one helper function that handles the display on forms (yes / no) instead of having this in multiple places (rename displayReadOnlyFieldOnForm to displayFieldonForm).
  3. would an additional setting on field level of 'inverse' (yes, no, inverse) be a good idea? Inverse would inverse the group setting. So that you can set all fields in a group to No via the group setting except the field(s) that have set inverse? So when group = no, inverse would make field yes?
group | field   = display?
------------------------
yes   | yes     = yes
no    | yes     = no
yes   | no      = no
no    | no      = no
yes   | inverse = no
no    | inverse = yes

$groupDisplayReadOnly = $groupModel->getItem($field->group_id)->params->get('display_readonly', '1');
$fieldDisplayReadOnly = $field->params->get('display_readonly', '1');

if (($groupDisplayReadOnly == 0 || $fieldDisplayReadOnly == 0) && !FieldsHelper::canEditFieldValue($field))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about wrapping lines 556 to 564 with an if statement to check !FieldsHelper::canEditFieldValue($field)?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Top! done :)

@Ruud68
Copy link
Contributor Author

Ruud68 commented Apr 4, 2018

Just refactored code to have generic helper function displayFieldOnForm that handles both the show_on parameter and the display_readonly parameter.

@ggppdk
Copy link
Contributor

ggppdk commented Apr 4, 2018

Just refactored code to have generic helper function displayFieldOnForm ...

Now looks like a much cleaner implementation

$groupDisplayReadOnly = $groupModel->getItem($field->group_id)->params->get('display_readonly', '1');
$fieldDisplayReadOnly = $field->params->get('display_readonly', '1');

if (($groupDisplayReadOnly == 0 || $fieldDisplayReadOnly == 0))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Remove inner ()

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

top, good catch :)

$groupDisplayReadOnly = $groupModel->getItem($field->group_id)->params->get('display_readonly', '1');
$fieldDisplayReadOnly = $field->params->get('display_readonly', '1');

if (($groupDisplayReadOnly == 0 || $fieldDisplayReadOnly == 0))
Copy link
Member

@laoneo laoneo Apr 4, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The field value should always win. So if you want to implement inheritance to the group, then you need to add a third option like "Inherit". Only then should the group value being considered.

Copy link
Contributor Author

@Ruud68 Ruud68 Apr 4, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

okay, agree (that sounds like my 'inverse' option. So the default value for the field should be 'Inherit', But what will happen when the field is NOT part of a group? There is nothing to inherit from I guess... need to figure that out. Any clues? When no group set, the value defaults in the code to yes :)

@@ -203,6 +203,8 @@ JFIELD_BASIS_LOGOUT_DESCRIPTION_LABEL="Logout Description Text"
JFIELD_BASIS_LOGOUT_DESCRIPTION_SHOW_DESC="Show or hide logout description."
JFIELD_BASIS_LOGOUT_DESCRIPTION_SHOW_LABEL="Logout Description"
JFIELD_CATEGORY_DESC="The category that this item is assigned to. You may select an existing category or enter a new category by typing the name in the field and pressing enter."
JFIELD_DISPLAY_READONLY_DESC="Select whether to display the field on forms when read-only."
JFIELD_DISPLAY_READONLY_LABEL="Display when read-only"
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Labels are capitalized. Display When Read-Only

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

and again learned something :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, here is a new Joomla expert born 😄

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

And I thought that learning PHP was the hard part :)))


if (!FieldsHelper::canEditFieldValue($field))
{
$groupModel = JModelLegacy::getInstance('Group', 'FieldsModel', array('ignore_request' => true));
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Small performance improvement, load the model in the if below.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, in next PR

@Ruud68
Copy link
Contributor Author

Ruud68 commented Apr 4, 2018

Added 'Inherit' value in field. So now you can select yes / no / inherit. Inherit is the default value.
Inherit takes the value from the field's group (and if no group the defaults to 'yes')
this way the value set in the field always has the authority over the value set in the group parameter.
thanks @laoneo :)

Now one more question left: should the show_on parameter also have a group setting or do we leave that as is (only field setting)?

@laoneo
Copy link
Member

laoneo commented Apr 4, 2018

If you consider to add a group setting for show_on, then please do it in a new pr.

@Ruud68
Copy link
Contributor Author

Ruud68 commented Apr 4, 2018

f you consider to add a group setting for show_on, then please do it in a new pr.

I will not use that setting myself (the display_readonly does it all for me), was just thinking in terms of consistency with this PR.
Let's wait and see how the testing and feedback on this PR rolls, if asked for then we can decide to do it (in separate PR)

{
// Inherit from field group display read-only setting
$groupModel = JModelLegacy::getInstance('Group', 'FieldsModel', array('ignore_request' => true));
$groupDisplayReadOnly = $groupModel->getItem($field->group_id)->params->get('display_readonly', '1');
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does that here not crash when the field is not connected to a group?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nope: no crash, no error. the group_id is 0, getItem returns an object with all values set to null and a params object in it (with no display_readonly thus defaulting to 1)

return false;
}

if (!FieldsHelper::canEditFieldValue($field))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

please change FieldsHelper::canEditFieldValue to self::canEditFieldValue

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Done! Thanks Robert :)

@ot2sen
Copy link
Contributor

ot2sen commented Apr 4, 2018

I have tested this item ✅ successfully on 41df5e9

Works fine now. Well done :)


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/20068.

@Ruud68
Copy link
Contributor Author

Ruud68 commented Apr 4, 2018

@ot2sen thanks for re-testing and reporting back! Appreciate it :)

@Quy
Copy link
Contributor

Quy commented Apr 6, 2018

I have tested this item ✅ successfully on 41df5e9


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/20068.

@Quy
Copy link
Contributor

Quy commented Apr 6, 2018

RTC


This comment was created with the J!Tracker Application at issues.joomla.org/tracker/joomla-cms/20068.

@joomla-cms-bot joomla-cms-bot added the RTC This Pull Request is Ready To Commit label Apr 6, 2018
@mbabker mbabker added this to the Joomla 3.8.7 milestone Apr 7, 2018
@mbabker mbabker merged commit 0c82311 into joomla:staging Apr 7, 2018
@joomla-cms-bot joomla-cms-bot removed the RTC This Pull Request is Ready To Commit label Apr 7, 2018
@@ -314,6 +321,11 @@ public function getItem($pk = null)
$item->context = $this->getState('filter.context');
}

if (property_exists($item, 'params'))
{
$item->params = new Registry($item->params);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a bit hesitant to approve the pr, because this here is a minor BC break. Are we sure that it breaks nothing.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi @laoneo , have you tested this? Do you have any scenario's in which this would break?
Hi have tested extensively, but that is of course no guarantee as I only test on my own sites / combinations with 3rd party extensions.
Who in your opinion could / should have a go / say / test in this?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

In core I guess it should be fine. But if an extension is using the params of a group, loaded through the model it has now a different behavior. But this chance is relative small and the pr got merged, so I guess the discussion is superfluous.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

but there was no params of a group, I created that in this PR. So the only thing that could break is if an extension developer created its own params for a group and 'forgot' to share that back to Joomla. And then it would only break if the implementation is different. If the developer followed joomla guidelines, then it should not break. But then again... maybe I am a bit naive :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What I'm talking about is the following code $group->params returns before the pr a string and after a Registry. Which can be counted as a minir BC break.

{
foreach ($result as $group)
{
$group->params = new Registry($group->params);
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See above.

@Quy Quy mentioned this pull request Apr 7, 2018
zero-24 added a commit to zero-24/joomla that referenced this pull request Apr 7, 2018
wilsonge pushed a commit that referenced this pull request Jun 14, 2018
* Prepare 3.8.4 Release Candidate

* Reset for dev

* Regression in the ISIS backed css

PR for #19411

* Regression: Isis RTL forgotten in 19417 (#19423)

* [com_content] - archived legacy SEF fix (#19397)

* [com_content] - archived legacy sef fix

* cs

* Fix media manager 'up' button (#19443)

* Regression at createUri from #19099 (#19415)

* [installer] - sanitize extensions type as lower case (#18416)

* Fix filter by multiple categories (#19450)

* Fix filter by multiple categories

* Remove debug code

* 2nd Release Candidate for 3.8.4

* Do not add unnecessary parameters in the archive link (#19447)

* Do not add unnecessary parameters in the archive link

* Remove php notice

* Unset parameter month=0 when year is not set

* Prepare 3.8.4 release

* Reset for development

* Move from protocol relative links to https for google fonts imports (#19488)

* move to protocol relative links to https

* fix one broken font link

* Revert "Regression at createUri from #19099 (#19415)"

This reverts commit 128a4d4.

* Revert "Correctly redirect after logging into the multilingual joomla with association enabled (#19295)"

This reverts commit 5994eb1.

* Revert "Fix parser error in plugin languagefilter on php5 (#19268)"

This reverts commit 05fd1d9.

* Revert "Do not add default or active Itemid to every link without own menu item (#19099)"

This reverts commit d068868.

* Update CMSApplication.php (#19514)

* CodeMirror Updated to 5.34.0 (#19533)

* Prepare 3.8.5 release candidate

* Reset to dev

* Revert "Do not add unnecessary parameters in the archive link (#19447)"

This reverts commit 0155f35.

* Revert "[com_content] - archived legacy SEF fix (#19397)"

This reverts commit 01a9147.

* Prepare 3.8.5 release

* Reset for dev

* Changed parameter to bool (#19573)

* Removed orphan weblinks languages (#19495)

* Changing loading order for between Redirect and Logout system plugins at (#19489)

install time

* mod_articles_news. Define $item_heading only if needed (#19439)

* mod_articles_news. Define $item_heading only if needed

* Update _item.php

* Update _item.php

* Fix count() in PHP 7.2 (#19396)

* Fix count()

* Simplify check

* [CS] Code style Tabs must be used to indent lines; round 1 (#19350)

* Tabs must be used to indent lines; round 1

Tabs must be used to indent lines; spaces are not allowed

* Fix some indent issues not fixed by the auto fixer

nothing is perfect, sometimes we need to make some minor adjustments.

* fix line issue

* Make suggested changes to reflect general code style

* Add space after ;

- correct indenting
- remove extra ;
- correct spaces

*   was on it's own line

* fix missing semicolon

* align equals

replace tab with spaces on line 25

* remove extra space

* fix missing semicolons

fix some spacing around operators

* com_mailto remove unused params (#19290)

I was checking to see why we had an untranslated string and as far as i can tell this entire params section is not used

To test apply pr and make sure that the send to friend functionality works as before

* [com_fields] Fields are not copied when batch duplicating an article (#16958)

* [#16740] - [com_fields] Fields are not copied when batch duplicating an article

* user deploy version over the wrong since tag ;)

* [#16740] - [com_fields] Fields are not copied when batch duplicating an article

* Handle modified date in Document objects consistently (#19592)

* Delete existing user_keys, if password is changed (#17827)

* Delete existing user_keys, if password is changed

* corrected styling issues

* deploy version - as I said, this is my first pr

* pushing to patch-2

* newline after }

* push to patch-2

* push to patch-2

* Update en-GB.com_users.ini

* Update remember.php

* Update remember.xml

* configuration option in XML file

radio button option to activate/deactivate the "reset RememberMe" functionality on password-change.

* Update en-GB.plg_system_remember.ini

* hm...

* Update remember.php

* Update remember.php

* XML styles

* commenting out the user message

* Update remember.php

* Update en-GB.plg_system_remember.ini

* btn-group-yesno

* Update remember.php

* Update remember.php

* reference to Alice Ruggles removed!

* making it mandatory

* Update remember.php

* making it mandatory

* making it mandatory

* making it mandatory

* as per the remarks of Quy

changed

* changed as per Quy's remarks

* [CS] Code style Tabs must be used to indent lines; round 2 (#19351)

* [CS] Code style Tabs must be used to indent lines; round 2

- Tabs must be used to indent lines; spaces are not allowed

* fix some indenting not fixed by the auto fixer

* Fix some more indenting and spacing

* use and/or in template mixed HTML/PHP files

For consistancy, Until a decision is made on joomla/coding-standards#191
use `and`/`or` in template mixed HTML/PHP files rather than our normal
required `&&`/`||` requierment that we have for full PHP files

* Use the && and || operators

preferences to Use the && and || operators

* Remove space indent exceptions (#19609)

* remove space indent exceptions

* tab indent not spaces

* Tabs must be used to indent lines; spaces are not allowed

* Tabs must be used to indent lines; spaces are not allowed

try using the concatenation to fix space indent strangeness

* Tabs must be used to indent lines; spaces are not allowed

* [3.9] Tweak update percentage message to include %-sign (#19628)

* Tweak update percentage message to include %-sign

* Add minified version.

* Typo Joomla is vegetarian (#19649)

Quick fix to the spelling of meet

* Plain English cont. (#19654)

The accessibility standard Web Content Accessibility Guidelines (WCAG) 2.0 Section 3 states https://www.w3.org/TR/WCAG20/#understandable

>### 3. Understandable
> Information and the operation of user interface must be understandable.

>#### Guideline 3.1 Readable
> Make text content readable and understandable.

> #### Success Criterion 3.1.5 Reading Level
> When text requires reading ability more advanced than the lower secondary education level after removal of proper names and titles, supplemental content, or a version that does not require reading ability more advanced than the lower secondary education level, is available.

To achieve this we should use "plain language" wherever possible

1. Word choice: use the simplest word that conveys your meaning.
http://plainlanguagenetwork.org/plain-language/what-is-plain-language/

2. Prefer the short word to the long.
https://www.plainlanguage.gov/guidelines/words/

This PR continues the work and removes the superfluous text " to make it possible"

* Plain English (#19629)

* accordingly

* advised => recommended

* assist => help

* attempt=>try

* concerning => relevant

* contains => has

* containing -> with

* contains=-> has

* Currently -> (omit)

* designated -> marked

* initial -> first

* initialise->start

* in order to -> to

* it is -> (omit)

* optimal -> best

* regarding->on

* remain -> stay

* terminated -> stopped

* word order

* Fix PHP Warning for Session on PHP 7.2 (#19199)

* Fix PHP Warning for Session on PHP 7.2

* CS

* Correctly call function with the parameter by reference (#19233)

* Better code for set category view layout (#19238)

* [Modern Routing] make a simpler loop in StandardRules::build (#19271)

* Simpler loop in build method of StandardRules

* Now use last_id only

* Remove useless code

* Remove support for new router configuration

* Improve performance of the com_content category view for a huge number of articles (#19284)

* Multilingual: Associated categories should display only when published (#19551)

* Multilingual: Associated categories should display only when published

* cs

* cs

* [CS] Array list style (#19610)

* array list style

* array list style

* array list style

* array list style

* Prevent compounding inputmode attribute (#19632)

* Fix user profile plugin (#19633)

* Update pagebreak plugin description (#19653)

Simple PR to update the very outdated text suggesting that the page break button is normally found under the article text area.

* Chinese calendar js files don't load on Linux because they are not (#19662)

lowercase.

* Typo (#19675)

Simple PR to fix a typo in a string

* Implement Session GC Cli (#19548)

* Implement Session GC Cli

* CS add new line

* Add deprecate log message for the pathway name attribute (#19700)

* Add deprecate log message for the name attribute

* Spelling

* typo (#19691)

* typo

can be merged on review

* more

* Possible misprint (#19688)

I think $ids array stores articles ids, because $articleModel->getItem()->id. Maybe copy-paste from line 159/line 206?
Also, this possible misprint can be found in  4.0 branch.

* Add the missing import in the application (#19709)

* Add the missing import in the application

* Use the local logger

* fix 404 on github dokukmentation links (#19775)

* Articles - Latest (#19664)

The descriptions says "This module shows a list of the most recently published and current Articles."

So if they are "current" then they cant also "may have expired"

Simple PR to correct that on the front end

For the admin version of the module the change is a little different as here the list will show all the articles irrespective of their current published state so the string change is different and is just a simplification and not a correction

* reCAPTCHA V1 stops on March 31 (#19648)

* reCAPTCHA V1 stops on March 31

Google have emailed directly anyone using v1 reCAPTCHA keys but users don't read their email.

This PR adds a post-installation message IF they have the reCAPTCHA plugin enabled AND they are using v1 keys.

This PR also updates the messages in the plugin informing them that V1 will not work after march 31

@mbabker already completely refactored the plugin for J4 to remove V1 etc this PR is ust for the messages

* CS - new lines

* use query to find the extension_id and not haardcoded

* docblock

* 3.8.6

* Update actions.php

* System Information (#19764)

* System Information

We had the db version and the db collation but not the type
This PR adds the database type eg postgresql, mysql etc

* Update sysinfo.php

* rename and move

* rename

* Overrides do not find 3rd party plugins languages when files are in the (#19740)

plugin

* Com_redirect: Differentiating utf8 old_url (#19734)

* TinyMCE: uglify the inline XTD-btns script (#19731)

* remove tabs and returns and spaces

* more compression

* Add some comments so others can follow the code

* Doh, this code was for J4

* reninitialise the array 😡

* Update bootstrap-rtl.css (#19715)

* Update bootstrap-rtl.css

Duplicate entry .radio.btn-group > label:first-of-type

* Update bootstrap-rtl.less

Removed 2nd occurrence of  .btn-group > .btn:first-child, .radio.btn-group > label:first-of-type

* Hide global configuration and system information from non super users (#19697)

* Hide global configuration and system information from non super users

* Use identical operator

* [a11y] Cache toolbar (#19686)

We use the icon name to populate the ID. This toolbar has the same icon for both buttons so we have two buttons with the same id which is an accessibility failure

This pr ensures every id attribute value is unique

Because the icon has multiple names we can simply use one of the alternative names as a quick and dirty fix.

There is no visual change

* Wrong desc fixed. Changed title to document! (#19685)

* Wrong desc fixed. Changed title to document!

* Update Document.php

* Move custom buttons to the other buttons in TinyMCE (#19656)

* Proxy to a higher error handler if there is one available (#19645)

* Correct output_buffering check in 3.8.x (#19611)

* correct output_buffering check in 3.8.x

* simplified the check @Quy

* this is why we can not have nice things.. fixing the check for output_buffering

* Pass the configuration tmp_path to the archive package for extension installations (#19608)

* pass the configuration tmp_path to the archive package for extension installations

* add missing \

* Improve header handling in PageController cache (#19591)

* Defining typeAlias (#19647)

* Fix JRoute('&var=...') not adding current URL variables when current URL is the home page (#19582)

* Fix loosing current URL vars when in home page

* Update SiteRouter.php

* Test units

* Test units

* [TemplateAdapter.php] Rewrote hardcoded SQL to query object (#17923)

* rewrote hardcoded SQL to query object

* correction in SQL for home field is declared as char/varchar

* correction in SQL for home field is declared as char/varchar + ->q()

* the requested change from @Quy

* added microdata (#17689)

* [Schema checker] (Database FIX) Add support for checking NULL and DEFAULT column attributes (#17351)

* [Schema checker] (Database FIX) Add support for checking NULL and DEFAULT column attributes

* CS

* Update en-GB.com_installer.ini

* english

* The One Right Session Management Configuration For Joomla! 3 (#19687)

* Session garbage collection plugin

* Session metadata manager

* Expand metadata manager to allow all apps, CLI for metadata cleaner

* Move metadata cleanup to the plugin

* Misc fixes from feedback

* Language tweaks

* Change to uint filter, if it'll get people to review and accept the damn PR...

* Fix mssql installation (#19796)

* Prepare 3.8.6 RC1 Release

* Reset for dev

* Update Greek Installation language files (#19806)

* Another typo in Greek (#19816)

* checksum extensions light (#17619)

* [3.8] - checksum extensions

porting checksum extensions from 4.0

* install checksum

add install checksum

* update checksum

add update checksum

* lang

add lang string

* doc block

add missing parameter

* tab

tab

* PHP cs

* PHP CS

* return integer

return integer instead of mixed

* switch

switch inteder

* switch

switch integer

* add CONST and remove sha1/md5

add CONST and remove sha1/md5

* hash algos

hash algos

* sha256,sh384,sha512

hash algos

* alpha order

alpha order

* fix docbloc

fix docbloc

* Revert "checksum extensions light (#17619)" (#19873)

This reverts commit 4d79fe2.

* Update spanish installation language (#19878)

* implement check provided by @ggppdk (#19791)

* Fix undefined index: password_clear (#19892)

* Prepare 3.8.6 release

* Reset for development

* Fix appveyor builds and bump driver dll version (#19805)

* bump driver dll version and add php 7.2

* remove php 7.2 until drivers are available

* Use powershell 'Invoke-WebRequest' Workaround

When you use appveyor command-line utility to download, its user-agent is empty, 
Some sites do not allow empty user-agents to download. 
Use powershell 'Invoke-WebRequest' Workaround until appveyor fixes their command-line utility to have a user agent

* Don't have a metadataManager class property to avoid circular dependency problem when instantiating multiple applications (#19912)

* typo (#19910)

typo

* Clear button in article publish date (#17809)

* For clear button issue

* Update calendar.js

* Update module.php

* Remove commented line

* [com_templates] Rewrote hardcoded SQL to query object (#17921)

* rewrote hardcoded SQL to query object

* correction in SQL for home field is declared as char/varchar

* correction in SQL for home field is declared as char/varchar + ->q()

* Break where clauses up

* Fix Help URLs and update to Help38 (#19181)

* Fix Help URLs

* Update to Help38

* Fixed trig on change event (#19538)

* [com_content] - fix link when layout and association (#19681)

* Date format localise (#19690)

* Add new date format LC6

* LC6

* commit 2

* [behavior.formvalidator] - pattern attribute behaviour fix (#19771)

* [behavior.formvalidator] - pattern behaviour fix

* minify

* Fix a subform table layout to be more strict to rows container (#19774)

* mod_breadcrumbs. remove JHtml::bootstrap.tooltip (#19787)

* Debug plugin style (#19790)

* Debug plugin style

Wrong css on the buttons for Log Category Mode

It should be green for the positive action (include) and red for the negative action (exclude)

This simple PR ensures that is the case

* oops

* Front end menu items translated in error (#19802)

* Front end menu items translated in error

PR #13606 introduced translatable admin menu item creation but the code didnt check if the menu item was for the frontend or the admin before doing the translation

### Test Instructions
1. Install any additional language eg italian
2. Create a menu item called "Sun"
3. On the list of all the menu items you will see it is displayed as "Dom" - the italian translation
4. Enable language debug
5. On the list of all the menu items you will see all your menu item titles are surrounded by ?? - to indicate no translation found -  except for "Dom" which has ** instead to show it has been translated
6. Apply this PR
7. Sun still says Sun
8. There are NO ?? or ** when in language debug mode
9. Bonus - check a custom admin menu item and you will see it can be translated

* code style

* cs

* CodeMirror 5.35.0 (#19809)

* Correcting finder feeds items date when language is not English (#19815)

* Correcting finder feeds items date when language is not English

* typo

* [com_ajax] Change modules check (#19818)

* Add com_ajax check in getModuleList query

* Restore getModuleList query

* Change module check inside com_ajax

* Categories: Allow sorting by Associations (#19821)

* Categories: Allow sorting by Associations

* moving assoc sorting after access

* Article and contact modal should not use addslashes (#19826)

* Menu tems select field: no need to escape string value (#19828)

* Allow limiting calendar field to current year (#19846)

* Allow locking to min and / or max year to current year

* Update calendar.php

* Cleared non-set variable notices

* Update JHtml::calendar to support relative years limits (#19847)

* Simplify switch statement (#19849)

* [CS] Code style Fix some inline doc blocks for IDE hinting - round 1 (#19862)

* Fix Operator Spacing

* Fix inline doc blocks for IDE hinting

* Fix some docblocks and comments (#19863)

* Custom admin menus: Translating menu items titles (#19900)

* adapt default values (#19924)

* Use getter method (#19925)

* Custom Admin menu item edit: Display Title, Parent Item and Ordering translations (#19916)

* Admin menu item edit: Display Title, Parent Item and Ordering
translations

* Modifs suggested by izharaazmi

* cs

* display translated title only when item exists

* Correcting label alignment

* Cosmetic changes

* In theory, you may not always be working with the default database. So use the correct one. (#19474)

* [plugin][content] - loadmodule by id (#19362)

* [plugin][content] - loadmodule by id

* [plugin][content] - loadmodule by id

* getModuleById

* getModuleById

* id not found

* id not found

* simple syntax

* js side

* modal

* minify js

* regex only digits

* remove title

* use static load()

* regex

* cs

* return

* cs tabs removed

* simplify code

* clean code

* no style

* replace loadmodule with loadmoduleid

* cs

* replace loadmodule with loadmoduleid

* replace

* missed echo

* moved back

* Update loadmodule.php

fixed cs

* Revert "[plugin][content] - loadmodule by id (#19362)" (#19931)

This reverts commit 4172f79.

* Category Modal - add notes (#19131)

* Category Modal - add notes

If you add a note to a category then it is displayed in the category list but not displayed in the category modal (eg when you select a category for a blog menu item)

This PR adds the note, alias, and full path (on hover) to the modal to make it consistent with the list view

* space

* Please consider a blank line preceding your comment (#19936)

* Fix typo in editor field (#19938)

* [CS] long form function return types; round 1 (#19934)

* PHPCS2 - fixes

* 2 spaces after

* Expected 2 spaces after the longest param type

* [libraries][legacy][request] - fix php 7.1 warning not numeric (#19710)

* [libraries][legacy][request] - fix php 7.1 warning not numeric

* dry

* [com_fields] Normalise the request com_fields data (#19884)

* Normalise the request com_fields data

* CS

* PHP 5.3 compat

* Fields in com_fields array (#9)

Fields should be set in com_fields array and not direcly in $data

* Spelling

* Also normalise request data on front-end user profile save (#10)

* Also normalise request data on front-end user profile save

* correct context and option

* Handle 0 properly in empty check

* Simplify

* allowing value 0 to be saved (#11)

when setting a value of 0 in a text field the function empty will return true > setting the value to null

* correct needsUpdate when strlen (or count) = 1 which incorrectly equa… (#12)

* correct needsUpdate when strlen (or count) = 1 which incorrectly equaled to 'true'

* Update field.php

* Update field.php

* [event dispatcher]  - use strict comparison (#19907)

* [com_users] Fix display of custom field of value 0 (#19933)

* [CS] long form function return types; round 2 (#19935)

* PHPCS2 Auto Fixes

- Expected "boolean" but found "bool" for function return type
- Expected "integer" but found "int" for function return type

* Manual correction of docBlock spacing

* Manual correction of docBlock spacing

* Manual correction of docBlock spacing

* Manual correction of docBlock spacing

* Add some Member var comments

* Manual correction of docBlock spacing

* Add some Member Var comments

* return tag after access tag

* 3 spaces after var tag before the type

* add tag since 3.1 to Class Properties and align var tags

* add tag since 3.1 and align var tag

* adjust some tag alignments

* Two spaces after type

* integer not int

* Redirects Plugin - Make Relative or Absolute. (#19942)

* Redirects Plugin - Make Relative or Absolute.

* Orderiing and capital I.

* Update en-GB.plg_system_redirect.ini

* Update en-GB.plg_system_redirect.ini

updated as per @quys comment.

* Update en-GB.plg_system_redirect.ini

* Make calendar output usable in other css-frameworks (#19944)

* Revert changes expect css

* Make calendar output usable in other css-frameworks

* A min-width makes look better

* Fix for duplicate url check bug introduced by #19734 and support utf8… (#19950)

* Fix for duplicate url check bug introduced by #19734 and support utf8 on old_urls.
Couldn't find a solution to handle this within mysql. So a simple foreach handles it perfectly.

* Update link.php

* solved issue number #19930 (#19969)

corrected typo to ensure proper checkbox functionality

* Removed text-output and enabled a disabled tick box for consistency (#19974)

* Change to allow str_pos to match when the exclude term is at the root… (#19979)

* Change to allow str_pos to match when the exclude term is at the root of the path

* updated redirect.php - clearly I was tired with the first pr.

* Fix for #11070 (tag-category) - Improve also views newsfeed-category … (#16627)

* Fix for #11070 (tag-category) - Improve also views newsfeed-category and category-list

* Correctly modifying .LESS and regenerate .CSS (#16627)

* Simple enhancement to allow the user to make all Post Install Messages read (#19958)

* Simple enhancement to allow the user to make all Post Install Messages as read.

* Update message.php

* Update messages.php

* Update messages.php

* Added onDisplay function for handling the display of the button.

* removed blank lines.

* updated quotes around ints.

As per @alikon comments

* Added (int) just to be safe.

* Update messages.php

* Update messages.php

* Update messages.php

* [com_mailto] Add missing placeholder (#19999)

* Make sure items is an array. (#20000)

* Make sure items is an array.

Resolved #19998

* Update default_items.php

* Update tag.php

* Update tag.php

* Update tag.php

* Update tag.php

* [com_fields] Fix fields display HTML prepared 4 or 5 times per article, make it be prepared only twice (#17895)

* Pass field displayType (aka event type) to getFields

* Update getFields to respect the 'display' parameter of every field

* Update onContentPrepare to respect 'display' parameter of every field

* Prepare for manual display

* Do not create $item->jcfields multiple times

* Revert the code for manual display to always prepare the field value

* Wrong function name

* Fix docblock

* Better comment for parameter of getFields method

* fix media field in ISIS Template (#17205)

* fix media field in ISIS Template

* fix media field in ISIS Template

* [3.x] New sessiongc plugin is not declared as core plugin for manifest cache refresh (#20038)

* add sessiongc plugin to the core plugins

* alphasorting thanks @brianteeman

* [module] [articles category] filter by multiple tags (#19983)

* [module] [articles category] filter by multiple tags

* multiple tags

* spelling

* [com_finder] Remove unused params (#20009)

* [com_finder] Unused params

* Update en-GB.com_finder.ini

* Update sample_learn.sql

* Update sample_testing.sql

* Update sample_learn.sql

* Update sample_testing.sql

* Update sample_learn.sql

* Update sample_testing.sql

* Update jos_menu.csv

* Restore and deprecate strings

* Two new fonts for CodeMirror: IBM Plex Mono, Nanum Gothic Coding (#20017)

* CategoryEdit field published filter (#20018)

* Smart Search: Highlighting terms also in fulltext when using readmore (#20019)

* Smart Search: Highlighting terms also in fulltext when using readmore

* parsing summary + body to get text only

* Escape full query in NestedTable debug mode (#20024)

* Changed viewname filter in RouteHelper (#20031)

* Fix GMail plugin so it doesn't crash and burn on 4.0 upgrades (#20043)

* Tweak build script for added flexibility (#19848)

* Refresh Manifest Cache failed: Extension is not currently installed (#19560)

* Refresh Manifest Cache failed: Extension is not currently installed

PR for #17604

Change the message to include the name of the extension.

I have no idea how to test this - sorry - only code review - unless someone knows how?

* partial revert

* revert comment

* Remove rtrim() since it allows invalid emails (#20080)

* Custom Fields toggle display on read only rights (#20068)

* [com_fields] Normalise the request com_fields data (#19884)

* Normalise the request com_fields data

* CS

* PHP 5.3 compat

* Fields in com_fields array (#9)

Fields should be set in com_fields array and not direcly in $data

* Spelling

* Also normalise request data on front-end user profile save (#10)

* Also normalise request data on front-end user profile save

* correct context and option

* Handle 0 properly in empty check

* Simplify

* allowing value 0 to be saved (#11)

when setting a value of 0 in a text field the function empty will return true > setting the value to null

* correct needsUpdate when strlen (or count) = 1 which incorrectly equa… (#12)

* correct needsUpdate when strlen (or count) = 1 which incorrectly equaled to 'true'

* Update field.php

* Update field.php

* Custom fields view on form via toggle on read-only rights

* fix back-end new article

* first / seperate check on read-only access

* refactor code so show_on parameter is part of helper function

* implement inherit value in fields + language things

* loadmodel only when needed

* changed function comment

* change values order so default value (inherit) is displayed first

* Must use self:: for local static member reference

* Fixed page with multiple codemirror editors fields with different syntax highlighting (#20063)

* Fix for: Can't choose module using editor plugin if you search first (#20005)

* fixit

* cs

* Update modal.php

* Basic check to make sure the bulk import seperator is being used. (#19982)

* Basic check to make sure the bulk import seperator is being used.
Added Import State function as to how the urls should be imported, enabled or disabled.

* force int.

* Update config.xml

* Update links.php

* Update en-GB.com_redirect.ini

* Update config.xml

* Update links.php

* Update en-GB.com_redirect.ini

* Update config.xml

As per standards i.e:
https://github.com/joomla/joomla-cms/blob/staging/administrator/components/com_config/model/form/application.xml

i.e. endtag inline with options and closing tag inline with opening tag.

* Update links.php

* Changed none selected to none, to be used when there are none availab… (#19977)

* Changed none selected to none, to be used when there are none available to select and when none are selected.
Set select to be readonly is they cannot select any options

* Update plugins.php

* Update plugins.php

* Update en-GB.ini

* Update en-GB.ini

* Update plugins.php

* Update plugins.php

* Update plugins.php

* Update plugins.php

* Update plugins.php

Space/tabbing for drone.

* Update plugins.php

* Corrected bug on empty subject of com_mailto (#19956)

* Corrected bug on empty subject

If the subject is empty, the posted value is an empty string (exists) so the default value is never added.

* Updated code to include null value

* text corrections (#20111)

* Typo and copy paste error (#20123)

Someone couldn't spell and then someone else must have copy pasted the error

No idea how to test but this has been wrong since 3.5

* correct the use of the use command and move it below the defined command (#20130)

* Prepare 3.8.7 RC

* Reset for dev

* Add a security policy (#20163)

* Add a security policy

Many projects now add a SECURITY.md document to their repository. Often this is related to using HackerOne but not always.

This PR adds a policy to our github repo. It is based on the existing policy on the d.j.o web site

The file doesn't need to be distributed so it has been added to the exclude list in the github repo.

* tweek

* copy paste

* Update SECURITY.md

* Update SECURITY.md

* Prepare 3.8.7 release

* Reset for dev

* Introduce CODEOWNERS (#20137)

* Tidy writeDynaList() (#12184)

* Cleaned writeDynaList() in core.js

* Removed explanation comments

* removed all API changes

* updated compressed core.js

* [fix] publish/unpublish does not work with tables using null as default checked_out value (#20204)

* Fix overwrite by .table-striped (#20180)

Fix overwrite by administrator/templates/isis/css/template.css line 1787

table.table-striped tbody > tr:nth-child(odd) > td,
table.table-striped tbody > tr:nth-child(odd) > th {
	background-color: #f9f9f9;
}

* Fix overwrite by .table-striped (#20179)

Fix overwrite by administrator/templates/isis/css/template.css line 1787

table.table-striped tbody > tr:nth-child(odd) > td,
table.table-striped tbody > tr:nth-child(odd) > th {
	background-color: #f9f9f9;
}

* Tooltips not loading com_users (#20177)

The edit profile form is not loading the bootstrap tooltip code. So any tooltip (not popovers) are displayed as html as seen in the screenshot below when TFA is enabled.

This was spotted by @o2tsen and @sandewt while testing #20051 but as it is a bug effecting more than that PR I have created a new PR. (a pr should only fix one problem)

* [a11y] Headings consecutive order Debug Console (#20167)

> Headings communicate the organization of the content on the page. Web browsers, plug-ins, and assistive technologies can use them to provide in-page navigation.

> Skipping heading ranks can be confusing and should be avoided where possible: Make sure that a < h2> is not followed directly by an < h4>, for example.

Source (https://www.w3.org/WAI/tutorials/page-structure/headings/)

The headings were probably chosen for cosmetic reasons and not structural reasons which they should have been

This PR changes the heading in the debug console from h1 to h2

There is a very small visual change as a result but imho the benefits outweigh the small cost

* [a11y] Headings consecutive order (#20166)

* [WIP] [a11y] Headings consecutive order

> Headings communicate the organization of the content on the page. Web browsers, plug-ins, and assistive technologies can use them to provide in-page navigation.

> Skipping heading ranks can be confusing and should be avoided where possible: Make sure that a <h2> is not followed directly by an <h4>, for example.

Source (https://www.w3.org/WAI/tutorials/page-structure/headings/)

This PR changes the heading in the plugin and modules from h3 to h2 and in the template styles to h4

### todo
joomla.edit.item_title layout uses h4 but before I change it I need to check everywhere that it is being used

* layout

* Fix typos in InstallerControllerUpdate (#20154)

* Fix typos in InstallerControllerUpdate

* Fix same error on other places. Thanks @Quy

* Remove similar unnecessary code

* Revert "Remove similar unnecessary code"

This reverts commit 56410c0.

* One more

* Revert "One more"

This reverts commit aa1b101.

* [com_contact] Don't hide contact filter form (#20126)

* Update default_items.php

* Correct implode order.

* Codestyle

* More codestyle

* Fix for JUserHelper::addUserToGroup() when user group title is a number. (#20091)

* Update UserHelper.php

* Update UserHelper.php

* Fix count() in PHP 7.2 (#20044)

* [com_content][Multilanguage] - remove duplicated queries (#19683)

* [com_content][Multilanguage] - remove duplicated queries

* cs

* add $db->qn()

* removed ()

* Make CodeMirror work in repeatable subforms (#12542)

* One function to initialize any and all CodeMirror instances rather than individual functions to initialize one-by-one. Call on page load and also on subform-row-add

* Minor js changes

* Codemirror fullscreen modifier message (do we still need this?)

* Call the popover init function when creating new subform rows. (#20222)

* Call the popover init function when creating new subform rows.

* Update teh popover test

* [a11y] post-installation message in control panel (#20220)

> Headings communicate the organization of the content on the page. Web browsers, plug-ins, and assistive technologies can use them to provide in-page navigation.

> Skipping heading ranks can be confusing and should be avoided where possible: Make sure that a < h2> is not followed directly by an < h4>, for example.

Source (https://www.w3.org/WAI/tutorials/page-structure/headings/)

The heading was probably chosen for cosmetic reasons and not structural reasons which they should have been

This PR changes the heading for the post-installtion message i the control panel from h4 to h3

There is a very small visual change as a result but imho the benefits outweigh the small cost

* Solves issue #20195 (#20214)

* [plugin][search][content] give priority on result when title is matched (#20197)

* [plugin][search][content] give priority on result when title is matched

* Missed comma

* Add relevance weighting according to number of words

* Relevance by number of words in title only, removed introtext relevance

* Fix order string concatenation

* You've Got Mail (#20162)

* You've Got Mail

Since 2003 the internet has changed. We no longer get a message to say that we have a message. Instead we just give you the message. You probably never use the messages component (especially for private message to a specific user) as they are the equivalent of https://www.youtube.com/watch?v=gFBLiHpkcOk

The Joomla com_messages component is used in two instances

1. Notification of a new article
2. Sending a message to another user

### Current email for Notification of a new article
Subject: A new private message has arrived from [sitename]
Body:
> Please log in to [link] to read your message.

### New email for Notification of a new article
Subject: New message from [user] at [sitename]
Body:
> New Article
A new Article has been submitted by 'user' entitled 'blog post'.
> Please log in to [link] to read your message.

### Current email when sending a message to another user
Subject: A new private message has arrived from [sitename]
Body:
> Please log in to [link] to read your message.

### New email when sending a message to another user
Subject: New message from [user] at [sitename]
Body:
> [subject]
 [message]
[login link]

## Backwards Compatibility
No issues. The message contains the old login message PLUS the content of the message. So if you were using this message in a custom workflow there is no change required to that workflow

* subj

* cs

* add new string and mark existing string for deprecation

* Support Codemirror's included key mappings (#19833)

* Support Codemirror's included key mappings

* Use a list instead of radio buttons

* Don't expose LDAP authentication usage. (#18531)

* Don't expose LDAP authentication usage.

* Use new language strings for LDAP authentication.

* remove bind string

* remove bind string

* use connect string

* alpha order

* alpha order

* Handle the case that JFolder::files returns 'false' (#11715)

* Initialize tooltips when a new a row is added in a subform (#12996)

* Initialize tooltips when a new a row is added in a subform

* Fix a test since the init function has changed

* Replace htaccess which was removed inexplicably

* Missing space (#20260)

* Tiny JLanguage::loadLanguage() code improvement (#20257)

* [com_content] Remove redundant check (#20254)

* Update articles.php (#20245)

* [com_config] Capitalize label (#20299)

* Implement Issue Templates as discussen in #20298

#20298

* [fix] openbase_dir processing (#20280)

* CodeMirror updated to version 5.37.0 (#20269)

* Use title from menu item (#20267)

* Change the defaults for new installs to disable com_mailto in articles (#20266)

* change the defaults for new installs to disable com_mailto in articles

* change more defaults to 0 thanks @Quy

* Don't enable sending the PW on new installs (#20247)

* disable plaun pw sending per default on new installs

* make sure we have to set a PW when we dont send the plain pw via mail

* chagne the default in the xml to thanks @Quy

* update the sample data thanks @Quy

* make sure the mail to user does not include the PW too

* Revert "make sure the mail to user does not include the PW too"

This reverts commit 9095819.

* address comments by @Bakual thanks

* Optimization and fix of multilingual associations and add layouts to com_content links (#20229)

* Revert #19681

* Revert #19683

* Remove addition query and check after #19314

* Add layout to com_content links

* Add layout to com_content article associations

* Add layout to category associations

* add advanced where clause param

* add advanced where clause for com_content article associations

* drone code formatting fix

* drone code formatting fix

* drone code formatting fix

* Line exceeds 150 characters

* PHPCS rules

* Remove parenthesis

* Change queryKey

* Fix typo

* Improve description

* Add checksum generation to the build script

* Replace "label" classes with the new "badge" ones

* Replace "label" classes with the new "badge" ones

* Siwtch back comment about labels

* Revert "Merge branch 'staging' into 4.0-dev"

This reverts commit 831e986, reversing
changes made to b8c7f7f.

* Replace label classes on js files

* Replace missing label classes

* Use the "danger" to replace "important" in badges

* Use the "danger" to replace "important" in badges

* Replace label classes on a language file
joomlabeat added a commit to joomlabeat/joomla-cms that referenced this pull request Aug 2, 2018
* [com_ajax] Change modules check (joomla#19818)

* Add com_ajax check in getModuleList query

* Restore getModuleList query

* Change module check inside com_ajax

* Categories: Allow sorting by Associations (joomla#19821)

* Categories: Allow sorting by Associations

* moving assoc sorting after access

* Article and contact modal should not use addslashes (joomla#19826)

* Menu tems select field: no need to escape string value (joomla#19828)

* Allow limiting calendar field to current year (joomla#19846)

* Allow locking to min and / or max year to current year

* Update calendar.php

* Cleared non-set variable notices

* Update JHtml::calendar to support relative years limits (joomla#19847)

* Simplify switch statement (joomla#19849)

* [CS] Code style Fix some inline doc blocks for IDE hinting - round 1 (joomla#19862)

* Fix Operator Spacing

* Fix inline doc blocks for IDE hinting

* Fix some docblocks and comments (joomla#19863)

* Custom admin menus: Translating menu items titles (joomla#19900)

* adapt default values (joomla#19924)

* Use getter method (joomla#19925)

* Custom Admin menu item edit: Display Title, Parent Item and Ordering translations (joomla#19916)

* Admin menu item edit: Display Title, Parent Item and Ordering
translations

* Modifs suggested by izharaazmi

* cs

* display translated title only when item exists

* Correcting label alignment

* Cosmetic changes

* In theory, you may not always be working with the default database. So use the correct one. (joomla#19474)

* [plugin][content] - loadmodule by id (joomla#19362)

* [plugin][content] - loadmodule by id

* [plugin][content] - loadmodule by id

* getModuleById

* getModuleById

* id not found

* id not found

* simple syntax

* js side

* modal

* minify js

* regex only digits

* remove title

* use static load()

* regex

* cs

* return

* cs tabs removed

* simplify code

* clean code

* no style

* replace loadmodule with loadmoduleid

* cs

* replace loadmodule with loadmoduleid

* replace

* missed echo

* moved back

* Update loadmodule.php

fixed cs

* Revert "[plugin][content] - loadmodule by id (joomla#19362)" (joomla#19931)

This reverts commit 4172f79.

* Category Modal - add notes (joomla#19131)

* Category Modal - add notes

If you add a note to a category then it is displayed in the category list but not displayed in the category modal (eg when you select a category for a blog menu item)

This PR adds the note, alias, and full path (on hover) to the modal to make it consistent with the list view

* space

* Please consider a blank line preceding your comment (joomla#19936)

* Fix typo in editor field (joomla#19938)

* [CS] long form function return types; round 1 (joomla#19934)

* PHPCS2 - fixes

* 2 spaces after

* Expected 2 spaces after the longest param type

* [libraries][legacy][request] - fix php 7.1 warning not numeric (joomla#19710)

* [libraries][legacy][request] - fix php 7.1 warning not numeric

* dry

* [com_fields] Normalise the request com_fields data (joomla#19884)

* Normalise the request com_fields data

* CS

* PHP 5.3 compat

* Fields in com_fields array (joomla#9)

Fields should be set in com_fields array and not direcly in $data

* Spelling

* Also normalise request data on front-end user profile save (joomla#10)

* Also normalise request data on front-end user profile save

* correct context and option

* Handle 0 properly in empty check

* Simplify

* allowing value 0 to be saved (joomla#11)

when setting a value of 0 in a text field the function empty will return true > setting the value to null

* correct needsUpdate when strlen (or count) = 1 which incorrectly equa… (joomla#12)

* correct needsUpdate when strlen (or count) = 1 which incorrectly equaled to 'true'

* Update field.php

* Update field.php

* [event dispatcher]  - use strict comparison (joomla#19907)

* [com_users] Fix display of custom field of value 0 (joomla#19933)

* [CS] long form function return types; round 2 (joomla#19935)

* PHPCS2 Auto Fixes

- Expected "boolean" but found "bool" for function return type
- Expected "integer" but found "int" for function return type

* Manual correction of docBlock spacing

* Manual correction of docBlock spacing

* Manual correction of docBlock spacing

* Manual correction of docBlock spacing

* Add some Member var comments

* Manual correction of docBlock spacing

* Add some Member Var comments

* return tag after access tag

* 3 spaces after var tag before the type

* add tag since 3.1 to Class Properties and align var tags

* add tag since 3.1 and align var tag

* adjust some tag alignments

* Two spaces after type

* integer not int

* Redirects Plugin - Make Relative or Absolute. (joomla#19942)

* Redirects Plugin - Make Relative or Absolute.

* Orderiing and capital I.

* Update en-GB.plg_system_redirect.ini

* Update en-GB.plg_system_redirect.ini

updated as per @quys comment.

* Update en-GB.plg_system_redirect.ini

* Make calendar output usable in other css-frameworks (joomla#19944)

* Revert changes expect css

* Make calendar output usable in other css-frameworks

* A min-width makes look better

* Fix for duplicate url check bug introduced by joomla#19734 and support utf8… (joomla#19950)

* Fix for duplicate url check bug introduced by joomla#19734 and support utf8 on old_urls.
Couldn't find a solution to handle this within mysql. So a simple foreach handles it perfectly.

* Update link.php

* solved issue number joomla#19930 (joomla#19969)

corrected typo to ensure proper checkbox functionality

* Removed text-output and enabled a disabled tick box for consistency (joomla#19974)

* Change to allow str_pos to match when the exclude term is at the root… (joomla#19979)

* Change to allow str_pos to match when the exclude term is at the root of the path

* updated redirect.php - clearly I was tired with the first pr.

* Fix for joomla#11070 (tag-category) - Improve also views newsfeed-category … (joomla#16627)

* Fix for joomla#11070 (tag-category) - Improve also views newsfeed-category and category-list

* Correctly modifying .LESS and regenerate .CSS (joomla#16627)

* Simple enhancement to allow the user to make all Post Install Messages read (joomla#19958)

* Simple enhancement to allow the user to make all Post Install Messages as read.

* Update message.php

* Update messages.php

* Update messages.php

* Added onDisplay function for handling the display of the button.

* removed blank lines.

* updated quotes around ints.

As per @alikon comments

* Added (int) just to be safe.

* Update messages.php

* Update messages.php

* Update messages.php

* [com_mailto] Add missing placeholder (joomla#19999)

* Make sure items is an array. (joomla#20000)

* Make sure items is an array.

Resolved joomla#19998

* Update default_items.php

* Update tag.php

* Update tag.php

* Update tag.php

* Update tag.php

* [com_fields] Fix fields display HTML prepared 4 or 5 times per article, make it be prepared only twice (joomla#17895)

* Pass field displayType (aka event type) to getFields

* Update getFields to respect the 'display' parameter of every field

* Update onContentPrepare to respect 'display' parameter of every field

* Prepare for manual display

* Do not create $item->jcfields multiple times

* Revert the code for manual display to always prepare the field value

* Wrong function name

* Fix docblock

* Better comment for parameter of getFields method

* fix media field in ISIS Template (joomla#17205)

* fix media field in ISIS Template

* fix media field in ISIS Template

* [3.x] New sessiongc plugin is not declared as core plugin for manifest cache refresh (joomla#20038)

* add sessiongc plugin to the core plugins

* alphasorting thanks @brianteeman

* [module] [articles category] filter by multiple tags (joomla#19983)

* [module] [articles category] filter by multiple tags

* multiple tags

* spelling

* [com_finder] Remove unused params (joomla#20009)

* [com_finder] Unused params

* Update en-GB.com_finder.ini

* Update sample_learn.sql

* Update sample_testing.sql

* Update sample_learn.sql

* Update sample_testing.sql

* Update sample_learn.sql

* Update sample_testing.sql

* Update jos_menu.csv

* Restore and deprecate strings

* Two new fonts for CodeMirror: IBM Plex Mono, Nanum Gothic Coding (joomla#20017)

* CategoryEdit field published filter (joomla#20018)

* Smart Search: Highlighting terms also in fulltext when using readmore (joomla#20019)

* Smart Search: Highlighting terms also in fulltext when using readmore

* parsing summary + body to get text only

* Escape full query in NestedTable debug mode (joomla#20024)

* Changed viewname filter in RouteHelper (joomla#20031)

* Fix GMail plugin so it doesn't crash and burn on 4.0 upgrades (joomla#20043)

* Tweak build script for added flexibility (joomla#19848)

* Refresh Manifest Cache failed: Extension is not currently installed (joomla#19560)

* Refresh Manifest Cache failed: Extension is not currently installed

PR for joomla#17604

Change the message to include the name of the extension.

I have no idea how to test this - sorry - only code review - unless someone knows how?

* partial revert

* revert comment

* Remove rtrim() since it allows invalid emails (joomla#20080)

* Custom Fields toggle display on read only rights (joomla#20068)

* [com_fields] Normalise the request com_fields data (joomla#19884)

* Normalise the request com_fields data

* CS

* PHP 5.3 compat

* Fields in com_fields array (joomla#9)

Fields should be set in com_fields array and not direcly in $data

* Spelling

* Also normalise request data on front-end user profile save (joomla#10)

* Also normalise request data on front-end user profile save

* correct context and option

* Handle 0 properly in empty check

* Simplify

* allowing value 0 to be saved (joomla#11)

when setting a value of 0 in a text field the function empty will return true > setting the value to null

* correct needsUpdate when strlen (or count) = 1 which incorrectly equa… (joomla#12)

* correct needsUpdate when strlen (or count) = 1 which incorrectly equaled to 'true'

* Update field.php

* Update field.php

* Custom fields view on form via toggle on read-only rights

* fix back-end new article

* first / seperate check on read-only access

* refactor code so show_on parameter is part of helper function

* implement inherit value in fields + language things

* loadmodel only when needed

* changed function comment

* change values order so default value (inherit) is displayed first

* Must use self:: for local static member reference

* Fixed page with multiple codemirror editors fields with different syntax highlighting (joomla#20063)

* Fix for: Can't choose module using editor plugin if you search first (joomla#20005)

* fixit

* cs

* Update modal.php

* Basic check to make sure the bulk import seperator is being used. (joomla#19982)

* Basic check to make sure the bulk import seperator is being used.
Added Import State function as to how the urls should be imported, enabled or disabled.

* force int.

* Update config.xml

* Update links.php

* Update en-GB.com_redirect.ini

* Update config.xml

* Update links.php

* Update en-GB.com_redirect.ini

* Update config.xml

As per standards i.e:
https://github.com/joomla/joomla-cms/blob/staging/administrator/components/com_config/model/form/application.xml

i.e. endtag inline with options and closing tag inline with opening tag.

* Update links.php

* Changed none selected to none, to be used when there are none availab… (joomla#19977)

* Changed none selected to none, to be used when there are none available to select and when none are selected.
Set select to be readonly is they cannot select any options

* Update plugins.php

* Update plugins.php

* Update en-GB.ini

* Update en-GB.ini

* Update plugins.php

* Update plugins.php

* Update plugins.php

* Update plugins.php

* Update plugins.php

Space/tabbing for drone.

* Update plugins.php

* Corrected bug on empty subject of com_mailto (joomla#19956)

* Corrected bug on empty subject

If the subject is empty, the posted value is an empty string (exists) so the default value is never added.

* Updated code to include null value

* text corrections (joomla#20111)

* Typo and copy paste error (joomla#20123)

Someone couldn't spell and then someone else must have copy pasted the error

No idea how to test but this has been wrong since 3.5

* correct the use of the use command and move it below the defined command (joomla#20130)

* Prepare 3.8.7 RC

* Reset for dev

* Add a security policy (joomla#20163)

* Add a security policy

Many projects now add a SECURITY.md document to their repository. Often this is related to using HackerOne but not always.

This PR adds a policy to our github repo. It is based on the existing policy on the d.j.o web site

The file doesn't need to be distributed so it has been added to the exclude list in the github repo.

* tweek

* copy paste

* Update SECURITY.md

* Update SECURITY.md

* Prepare 3.8.7 release

* Reset for dev

* Introduce CODEOWNERS (joomla#20137)

* Tidy writeDynaList() (joomla#12184)

* Cleaned writeDynaList() in core.js

* Removed explanation comments

* removed all API changes

* updated compressed core.js

* [fix] publish/unpublish does not work with tables using null as default checked_out value (joomla#20204)

* Fix overwrite by .table-striped (joomla#20180)

Fix overwrite by administrator/templates/isis/css/template.css line 1787

table.table-striped tbody > tr:nth-child(odd) > td,
table.table-striped tbody > tr:nth-child(odd) > th {
	background-color: #f9f9f9;
}

* Fix overwrite by .table-striped (joomla#20179)

Fix overwrite by administrator/templates/isis/css/template.css line 1787

table.table-striped tbody > tr:nth-child(odd) > td,
table.table-striped tbody > tr:nth-child(odd) > th {
	background-color: #f9f9f9;
}

* Tooltips not loading com_users (joomla#20177)

The edit profile form is not loading the bootstrap tooltip code. So any tooltip (not popovers) are displayed as html as seen in the screenshot below when TFA is enabled.

This was spotted by @o2tsen and @sandewt while testing joomla#20051 but as it is a bug effecting more than that PR I have created a new PR. (a pr should only fix one problem)

* [a11y] Headings consecutive order Debug Console (joomla#20167)

> Headings communicate the organization of the content on the page. Web browsers, plug-ins, and assistive technologies can use them to provide in-page navigation.

> Skipping heading ranks can be confusing and should be avoided where possible: Make sure that a < h2> is not followed directly by an < h4>, for example.

Source (https://www.w3.org/WAI/tutorials/page-structure/headings/)

The headings were probably chosen for cosmetic reasons and not structural reasons which they should have been

This PR changes the heading in the debug console from h1 to h2

There is a very small visual change as a result but imho the benefits outweigh the small cost

* [a11y] Headings consecutive order (joomla#20166)

* [WIP] [a11y] Headings consecutive order

> Headings communicate the organization of the content on the page. Web browsers, plug-ins, and assistive technologies can use them to provide in-page navigation.

> Skipping heading ranks can be confusing and should be avoided where possible: Make sure that a <h2> is not followed directly by an <h4>, for example.

Source (https://www.w3.org/WAI/tutorials/page-structure/headings/)

This PR changes the heading in the plugin and modules from h3 to h2 and in the template styles to h4

### todo
joomla.edit.item_title layout uses h4 but before I change it I need to check everywhere that it is being used

* layout

* Fix typos in InstallerControllerUpdate (joomla#20154)

* Fix typos in InstallerControllerUpdate

* Fix same error on other places. Thanks @Quy

* Remove similar unnecessary code

* Revert "Remove similar unnecessary code"

This reverts commit 56410c0.

* One more

* Revert "One more"

This reverts commit aa1b101.

* [com_contact] Don't hide contact filter form (joomla#20126)

* Update default_items.php

* Correct implode order.

* Codestyle

* More codestyle

* Fix for JUserHelper::addUserToGroup() when user group title is a number. (joomla#20091)

* Update UserHelper.php

* Update UserHelper.php

* Fix count() in PHP 7.2 (joomla#20044)

* [com_content][Multilanguage] - remove duplicated queries (joomla#19683)

* [com_content][Multilanguage] - remove duplicated queries

* cs

* add $db->qn()

* removed ()

* Make CodeMirror work in repeatable subforms (joomla#12542)

* One function to initialize any and all CodeMirror instances rather than individual functions to initialize one-by-one. Call on page load and also on subform-row-add

* Minor js changes

* Codemirror fullscreen modifier message (do we still need this?)

* Call the popover init function when creating new subform rows. (joomla#20222)

* Call the popover init function when creating new subform rows.

* Update teh popover test

* [a11y] post-installation message in control panel (joomla#20220)

> Headings communicate the organization of the content on the page. Web browsers, plug-ins, and assistive technologies can use them to provide in-page navigation.

> Skipping heading ranks can be confusing and should be avoided where possible: Make sure that a < h2> is not followed directly by an < h4>, for example.

Source (https://www.w3.org/WAI/tutorials/page-structure/headings/)

The heading was probably chosen for cosmetic reasons and not structural reasons which they should have been

This PR changes the heading for the post-installtion message i the control panel from h4 to h3

There is a very small visual change as a result but imho the benefits outweigh the small cost

* Solves issue joomla#20195 (joomla#20214)

* [plugin][search][content] give priority on result when title is matched (joomla#20197)

* [plugin][search][content] give priority on result when title is matched

* Missed comma

* Add relevance weighting according to number of words

* Relevance by number of words in title only, removed introtext relevance

* Fix order string concatenation

* You've Got Mail (joomla#20162)

* You've Got Mail

Since 2003 the internet has changed. We no longer get a message to say that we have a message. Instead we just give you the message. You probably never use the messages component (especially for private message to a specific user) as they are the equivalent of https://www.youtube.com/watch?v=gFBLiHpkcOk

The Joomla com_messages component is used in two instances

1. Notification of a new article
2. Sending a message to another user

### Current email for Notification of a new article
Subject: A new private message has arrived from [sitename]
Body:
> Please log in to [link] to read your message.

### New email for Notification of a new article
Subject: New message from [user] at [sitename]
Body:
> New Article
A new Article has been submitted by 'user' entitled 'blog post'.
> Please log in to [link] to read your message.

### Current email when sending a message to another user
Subject: A new private message has arrived from [sitename]
Body:
> Please log in to [link] to read your message.

### New email when sending a message to another user
Subject: New message from [user] at [sitename]
Body:
> [subject]
 [message]
[login link]

## Backwards Compatibility
No issues. The message contains the old login message PLUS the content of the message. So if you were using this message in a custom workflow there is no change required to that workflow

* subj

* cs

* add new string and mark existing string for deprecation

* Support Codemirror's included key mappings (joomla#19833)

* Support Codemirror's included key mappings

* Use a list instead of radio buttons

* Don't expose LDAP authentication usage. (joomla#18531)

* Don't expose LDAP authentication usage.

* Use new language strings for LDAP authentication.

* remove bind string

* remove bind string

* use connect string

* alpha order

* alpha order

* Handle the case that JFolder::files returns 'false' (joomla#11715)

* Initialize tooltips when a new a row is added in a subform (joomla#12996)

* Initialize tooltips when a new a row is added in a subform

* Fix a test since the init function has changed

* Replace htaccess which was removed inexplicably

* Missing space (joomla#20260)

* Tiny JLanguage::loadLanguage() code improvement (joomla#20257)

* [com_content] Remove redundant check (joomla#20254)

* Update articles.php (joomla#20245)

* [com_config] Capitalize label (joomla#20299)

* Implement Issue Templates as discussen in joomla#20298

joomla#20298

* [fix] openbase_dir processing (joomla#20280)

* CodeMirror updated to version 5.37.0 (joomla#20269)

* Use title from menu item (joomla#20267)

* Change the defaults for new installs to disable com_mailto in articles (joomla#20266)

* change the defaults for new installs to disable com_mailto in articles

* change more defaults to 0 thanks @Quy

* Don't enable sending the PW on new installs (joomla#20247)

* disable plaun pw sending per default on new installs

* make sure we have to set a PW when we dont send the plain pw via mail

* chagne the default in the xml to thanks @Quy

* update the sample data thanks @Quy

* make sure the mail to user does not include the PW too

* Revert "make sure the mail to user does not include the PW too"

This reverts commit 9095819.

* address comments by @Bakual thanks

* Optimization and fix of multilingual associations and add layouts to com_content links (joomla#20229)

* Revert joomla#19681

* Revert joomla#19683

* Remove addition query and check after joomla#19314

* Add layout to com_content links

* Add layout to com_content article associations

* Add layout to category associations

* add advanced where clause param

* add advanced where clause for com_content article associations

* drone code formatting fix

* drone code formatting fix

* drone code formatting fix

* Line exceeds 150 characters

* PHPCS rules

* Remove parenthesis

* Change queryKey

* Fix typo

* Improve description

* Add checksum generation to the build script

* Hide Enabled/Disabled users column headers and be a11y compliant (joomla#20279)

* Code mirror autofocus issue (joomla#20270)

* Pass the autofocus param to the plugin.

While we're at it, pretty up this function a little.

* Get autofocus from $params, not $this->params.

Also, make sure we only autofocus one CodeMirror per page.

* We won't be needing these things anymore.

* Keep the unused strings.

* Add a deprecated flag in database query for a few union/unionAll/unionDistinct (joomla#20219)

* Add showon attribute (joomla#20156)

* [com_contact] Display 0 value with custom field (joomla#20124)

* Display 0 value

* Display 0 value

* fix custom fields with tab format (joomla#20023)

* Show a sample editor on the CodeMirror plugin config page. (joomla#17042)

* Show a sample editor on the CodeMirror plugin config page.

* Call it a 'Preview'

* Reordered attributes as per the Joomla coding standards for xml

* hiddenFieldsets & configFieldsets needs to be defined (joomla#16856)

* hiddenFieldsets & configFieldsets needs to be defined

* use getter

* Fix subform repeat counter. (joomla#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

* Fixing so that editors-xtd plugins works with com_ajax (joomla#17939)

* Fixing so that editors-xtd plugins works with com_ajax

* Code formatting fix

* [Plugins] Add filters to manifest files. (joomla#20410)

* URL Menu Item Type link should be required. (joomla#20392)

* Fix up the protostar template.js (joomla#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

* Bootstrap alert compatible (joomla#18909)

* Bootstrap alert compatible

Alert compatibility with new Bootstrap versions.

* Strict comparison

* Bootstrap alert compatible minified file

Alert compatibility with new Bootstrap versions.

* Add PHP 7.3 polyfill (joomla#20441)

* [com_finder] Fix regression joomla#19969 (joomla#20411)

* [com_finder] - fix update inner join syntax for postgres (joomla#19964)

* [com_finder] - fix update inner join syntax for postgres

* drone fix

cs

* quoteName vs qn

* cs

* Update tag.php (joomla#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.

* Change the Administrator group's filtering to use the default blacklist

* Add postinstall message explaining revised default settings

* Prepare 3.8.8 Release Candidate

* Reset for dev

* Typo in nl-NL installation language file (joomla#20460)

* Update joomla/filter package

* Update joomla/application package

* Store plaintext passwords in a separate options key, do not display passwords on summary page

* Prepare 3.8.8 release

* When JFeed was moved, old files were never deleted

* Reset for dev

* Correctly escape the random image module output (joomla#20533)

* Finally com_mailto allow the usage of a captcha by using JForm (joomla#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 <fieldset> thanks @Quy

* make the iframe a bit bigger  thnks @Quy

* commit proposed changes by @Quy

* implement suggested improvments

* use <?php echo $field->renderField(); ?> thanks @laoneo

* Remove check for a valid form from two places in plugins (joomla#20277)

* If that is not a valid form our system is broken at all

* Typehint the form argument

* Fallback to integer (joomla#20338)

* [plg_user_profile] Misc fixes (joomla#20412)

* Update profile.xml

* Update profile.xml

* Update profile.php

* Update tos.php

* [plg_fields] Manifest cleanup, filters, Editor plugin fix (joomla#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

* [plg_system] Manifest file filters (joomla#20456)

* [CS] fix some doc comment types (joomla#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

* [styles] Fix checkboxes/buttons not clickable under Menu Assignment in Chrome (joomla#20542)

* Remove css

* Remove css

* Remove css rtl

* cs

* [Regression] Menu item type url with rel attribute nofollow (joomla#19949)

* Menu item url attribute rel nofollow with target blank

* logic

* cs

* cs fix - thx Quy

* concat

* To many elements to index (joomla#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.

* Update joomla/filter package (joomla#20579 and joomla#20580)

* Fix folder browsing and file upload that broke in 3.8.8 due to escaping (joomla#20586)

* Fix de-escaping of slash in folder name

* code style

* Update popup-imagemanager.js

* standardise contact strings (joomla#20577)

as spotted by @MartijnMaandag

* Enable to change FormData in com_menu (joomla#20313)

* Set as object to allow for alterations

* Cast to object directly

* fix typo in installation string (joomla#20607)

It is IN each catefgory not ON each category

INSTL_DEFAULTLANGUAGE_INSTALL_LOCALISED_CONTENT_DESC="If active, Joomla will automatically create one content category per each installed language. Also, one featured article with dummy content will be created in each category."

* Resync deleted files list back to 1.7.3 tag (joomla#20564)

* Add additional check that view exists before proceeding (joomla#18757)

* Add additional check that view exists before proceeding

We assume the array key exists with view but not ID. I have come across some installations where view does not exist and it causes php warnings. So just check it does exist before actually proceeding further as we do with ID.

* Update legacyrouter.php

* Update legacyrouter.php

* Default installation value in configuration.php-dist (joomla#20655)

* Default installation value in configuration.php-dist

The config file to use in manual installs has incorrect advice and paths for tmp and logs as they are referring to server paths and not paths within a joomla installation

* oops

* CodeMirror updated to 5.38.0 (joomla#20636)

* Bump Composer dependencies (joomla#20583)

* Bump Composer dependencies

* Bad user data

* Try changing test to fix PHP 5.3 behavior

* Another attempt at fixing this

* Try upstream changes without tag yet

* Back to empty array

* Now with release tag

* Update app package with UA fix

* [fix] Error decoding JSON data: Syntax error (joomla#20663)

* [fix] Error decoding JSON data: Syntax error

* [test] ensure that empty params do not cause user loading issues

* Don't try to json_decode() a null value (joomla#20675)

* Don't try to json_decode() a null value

* Add Registry package fix to make sure broken code can continue to work

* Joomla\CMS\Categories\Categories fix (joomla#20680)

A constructor can't return a value.

* [CS] fix some doc comment types (round 2) (joomla#20647)

* PHPCS2 manual changes

- Doc comment for parameter does not match actual variable name
- Comment closer must be on a new line (just convert to single line comment)
- be more specific with the rules we want to exclude

* fix spaces

Expected only 2 spaces after the longest variable name

* one more fix for doc comment

- Doc comment for parameter does not match actual variable name

* [Newsfeeds] Use item link instead of guid. (joomla#20717)

* Feed links

* Restore http check for now

* CS

* Some cleanups

* Verb wrong tense (joomla#20708)

* Verb wrong tense

Clearly using the present tense is incorrect for an error message and it should be the past tense

* no error

* Replace UCMType::getType() by UCMType::getTypeByAlias($this->alias) (joomla#20672)

* JTableAsset::loadByName(): replace two sql queries by one (joomla#20671)

* Display 404 page if banner not found (joomla#20664)

* Update strings (joomla#20591)

* Fix stale session data wrongly overriding configuration file when editing global configuration (joomla#20590)

* Fix stale session data wrongly overriding configuration file when editing global configuration

* Use $this variable

* [com_menus] - fix php warning (joomla#18471)

* Singular not plural (joomla#20751)

* Singular not plural

Obvious correction. sorry I dont know what I did to display the error.

* Update en-GB.mod_sampledata.ini

* [com_tags] Image caption in Tags view (joomla#20648)

* Put all build packages in one directory (joomla#20745)

* [com_tags] Tagged item link in feed (joomla#20723)

* [com_tags] Tagged item feed links

* Nesting error

* [mod_tags_similar] Link cleanup (joomla#20730)

* [mod_tags_similar] Link cleanup

* CS

* Com_finder meta data (joomla#20772)

* Com_finder meta data

com_finder aka smart search was not following any meta data set in the menu item

#### to test

 - setup and configure smart search
 - create a menu item for smart search and set the meta description and meta keywords
 - open the menu item on the front end - check source and the meta data set in the menu is not present
 - do a search
 - check source and the meta data has been generated from the search

Apply this PR
 - open the menu item on the front end - check source and the meta data set in the menu is present
 - do a search
 - check source and the meta data has been generated from the search

* remove copy paste error

* Add UTF-8 encoding to phpcs in .drone.yml (joomla#20769)

* Login to view the article redirect fix (joomla#20732)

Without the view=login parameter JRoute can not resolve the Itemid. 
So the menu item assigned to 'login' is not active.

Seems there is a related hack here:
/com_content/views/article/tmpl/default.php ~line 143

This can also cause problems with third party extensions like sh404sef.

* Mouse over edit - rename (joomla#20743)

At the time this feature was introduced we weren't happy with the name "Mouse over edit" but couldn't really think of anything else.

I believe that today the term "inline editing" is far more understood and is a more appropriate name

* Better mode autoloading. (joomla#20746)

* Respect access of editor plugin inside profile form (joomla#20713)

* Respect access of editor plugin inside profile form

* Use value string 'true', '*' instead of integer for useaccess parameter

* Additional Escaping Of Paths In com_media (joomla#20616)

* Additional Escaping Of Paths In com_media

* Additional Override Escaping

* carefully revert some escaping (security)

* more specific and special reverse encoding of slash

* C&P Error

* [com_tags] Images in Tagged Items view (joomla#20601)

* [com_contenthistory] - fix for not delete keep forever items (joomla#20430)

* [com_contenthistory] - fix for not delete kepp forever items

* don't stop delete

* cs

* cs removed spaces at end of line

* Fixing com_fields integration in com_contact (joomla#20413)

* Fixing com_fields integration

Custom fields in com_contact currently doesnt work propertly. Chosing a category on which they should appear doesn't work cause fields plugin has no informations about contact catid as not data is passed to form when contact form is displayed. This fixes it.

* Fixing code style

* Removing whitespace, fixing spelling

* enable mod_sampledata extension

* [ModuleHelper] owncache param as integer (joomla#20626)

* Changed return 0 to continue

To prevent the entire function to quit, it just needs to go to the next file.
Fix joomla#17954

* [mod_articles_category] Fatal error (joomla#20834)

* Prepare 3.8.9 Release Candidate

* Reset for dev

* Very small language file cs (joomla#20844)

* Whitelist allowed global access

* Bump joomla/input package

* Use new method for dynamically resolving Input based on request method

* Prepare 3.8.9 release

* Reset for development

* Fix the autoloader for Windows platforms (joomla#20877)

* Prepare 3.8.10 release

* Reset for dev, again

* Don't delete file that is still in use (Fix joomla#20881)

* [plg_user_profile] Add RTL check to ToS field

* FIX: Install Languages Manager language badges wrongly set to not match since upgrade to 3.8.10 (joomla#20906)

* FIX: Install Languages Manager language badges wrongly set to not match
since upgrade to 3.8.10

* Correcting Installed languages too

* Replace the URL parameter "limitstart=0" with "start=0" if the SEF mode is on (joomla#19452)

* Replace &limitstart=0 to &start=0 if SEF is ON

* Replace URL param start=x to limitstart=x even if start is 0

* Remove non callable array items from field categories (joomla#20093)

* Update default.php

* Update fields.php

* Update default.php

* Update fields.php

* Update fields.php

* Update fields.php

* [Site Modules] Manifest file filters, part 1 (joomla#20845)

* [Modules] Manifest file filters

* Chosen placeholders

* [cs] leading spaces (joomla#20858)

* [cs]leading spaces

While checking joomla#20844 I saw that these strings all have a leading space which should not be there

* oops

* [Site Modules] Manifest file filters, part 2 (joomla#20856)

* [Site Modules] Manifest file filters, part 2

* Update default.php

* Update default.php

* Update default.php

* [Site Modules] Manifest file filters, part 3 (joomla#20857)

* [Admin Modules] Manifest file filters (joomla#20868)

* [Admin Modules] Manifest file filters

* Default values

* Fix OpenSearch implementation

* [mod_articles_category] Showon

* Add showon to levels

* Update string

* Remove CSS

* Add security issue template

* Formatting

* Let the table check the data before storing.

* [Templates] Escape sitename (joomla#21008)

* Checking return value and catching whole stuff

* Updating Bosnian installation language files

* Updated 3.9-dev and added 3.10-dev (joomla#21097)

* Exceptions in Joomla\CMS\Table\Usergroup refer to categories (joomla#21098)

* Exceptions in Joomla\CMS\Table\Usergroup refer to categories

Pull Request for Issue joomla#21092 .

### Summary of Changes
remove todo that is clearly a copy paste error from somewhere else
change exception message to usergroups from catergory

NOTE the first exception` if ($this->id == 0)`
I am not sure if that should even be present - doesn't look like it to me - please advise

* Update Usergroup.php

* Deprecate sef_advanced strings (joomla#21116)

* [com_content] Featured articles tag filtering (joomla#21138)

* Update ModuleHelper.php (joomla#20273)

* The JPATH_ constants are not magic strings (joomla#21151)

* Remove if/else in user debug models that can never hit else conditions (joomla#21188)

* [com_content] Featured articles access filter (joomla#21168)

* Media manager doesn't obey relative pathes for video files (joomla#21156)

* correct video url

fixes joomla#21145 (comment)

* fix

* Speed up regex in emailcloak plugin (joomla#20956)

* Speed up regex in emailcloak plugin

* Fix comment

* Fix subform.repeatable-table multi field styling (joomla#20209)

* Fix subform.repeatable-table multi field styling

* Fix staging less/css

* revert previous

* Update FormField.php (joomla#20168)

* Update HTMLHelper.php (joomla#19770)

* Fix a problem with older Joomla versions language packs registration and update sites rebuild (joomla#16355)

* Fix a problem with older language packs

Language packs installed under older Joomla versions are registered in the database under their package name, not under their name and since rebuild function fails on them.

e.g. package with 
  <name>Afrikaans (South Africa)</name>
  <packagename>af-ZA</packagename>

has name column in #_extensions table set as 	af-ZA and since existing query fails.

* Update updatesites.php

* missing single quote (joomla#21213)

* Add a note field from the #__fields_groups table to the field list query

* [3.x FIX] Getting the correct associations in sidebyside view for contact and newsfeeds (joomla#21180)

* [3.x FIX] Getting the correct associations in sidebyside view for
contact and newsfeeds

* undefined property

* correction in js

* [com_menus] Remove useglobal (joomla#21095)

* [fix] fixed PluginHelper import of xtd-editors plugins (joomla#17907)

* [fix] fixed PluginHelper import of xtd-editors plugins

* [imp] small adjustment and comment

* Fix errors exposed by strict (joomla#12544)

* Don't need a closure, jQuery ready function is enough. Use strict.

* Fix errors exposed by strict. Undeclared variables. wrong regex backreference

* Fix some undeclared/wrongly declared variables

* Avoid some redundant calls of $(this)

* Remove some redundant (also wrong) code.

* [3.8] Make the text clearer (joomla#20940)

* make the text clealer

Make the PLG_TWOFACTORAUTH_TOTP_STEP3_TEXT text clealer.

* thans @brianteeman

* Adding lithuan language files.

* Updating lithuanian language strings for TinyMCE

* Appended input fields (joomla#21257)

PR for joomla#12448

## Steps to reproduce the issue

Effects all appended input fields. Eg. Navigate to a single article menu item (Menus -> MainMenu -> Home) and resize the screen below 767px. Input fields extend outside the viewport.

* CSS for flags (joomla#21254)

Fix for joomla#13678 reported by @gwsdesk

* Add "Reviewed by Hound" badge (joomla#21263)

* Adjust doc block to ensure file is included in patch packages due to accidental deletion with last release's post-update script

* Prepare 3.8.11 release candidate

* Reset to dev

* Prepare 3.8.11 release

* Bump to 3.8.12-dev

* Added security scan tool to CI setup (joomla#20796)

* Added security scan tool to CI setup

* Updated ordering

* fixed command name
@Ruud68 Ruud68 deleted the CustomFieldsToggleDisplayReadOnly branch January 24, 2019 16:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Language Change This is for Translators
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants