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

Correctly redirect after logging into the multilingual joomla with association enabled #19295

Merged
merged 3 commits into from
Jan 19, 2018

Conversation

csthomas
Copy link
Contributor

@csthomas csthomas commented Jan 4, 2018

Pull Request for Issue #19289 .

Summary of Changes

Do not lose menu item id in form action login.

Revert a part of code introduced in #19099: The URL from $active->params['login_redirect_url'] should not use association.

Testing Instructions

Configuration.

  1. Install multilingual joomla staging (with merged Do not add default or active Itemid to every link without own menu item #19099) with (en-GB) as default for website and another language for a test user (ex. fr-FR).
  2. Create/use categories with menu association (Categories in EN, Categories in FR)
    • Categories in EN index.php?option=com_content&view=categories&id=0&Itemid=102&lang=en
    • Categories in FR index.php?option=com_content&view=categories&id=0&Itemid=104&lang=fr
  3. Create or use existed menu item for login view/form in com_users (/login-form) and set language en-GB
    No SEF address: index.php?option=com_users&view=login&Itemid=106&lang=en.

Test 1. PR enables association when SEF is off

  1. Turn off SEF.
  2. Set "Menu Item Login Redirect" to:
    • a menu item, ex "Categories in en_GB". (this should use menu item association)
    • Note: only internal URL should not use any association.
  3. Go to login form from users component - use above login menu item.
    (index.php?option=com_users&view=login&Itemid=106&lang=en)
  4. After login:
    Before PR you will go to ex index.php?option=com_content&view=categories&id=0&Itemid=102&lang=en.
    Association did not work.
    After PR you will go to ex index.php?option=com_content&view=categories&id=0&Itemid=104&lang=fr.
    Association works.
  5. IMO when the SEF is OFF, before PR, the whole association does not work.

Test 2. PR enables association when SEF is on

  1. Turn on SEF.
  2. Set "Menu Item Login Redirect" to:
    • a menu item, ex "Categories in en_GB". (this should use menu item association)
      Note: only internal URL should not use any association.
  3. Go to login form (ex index.php/en/login-form).
  4. After login:
    Before PR you will go to ex index.php/en/allcategories-en-gb.
    Association did not work.
    After PR you will go to ex index.php/fr/allcategories-fr-fr.
    Association works.

Test 3. Use redirection to preferred home page - issue mentioned by infograf768

  1. Do not use any login redirections in module mod_login.
  2. Go to Home in EN (index.php/en)
  3. Login by mod_login
  4. You will be (before and after PR) redirected to user language preferred home page index.php/fr

Test 4. Use association on active page

  1. Do not use any login redirections in module mod_login.
  2. Go to Categories in EN (index.php/en/allcategories-en-gb)
  3. Login by mod_login
  4. You will be (before and after PR) redirected to index.php/fr/allcategories-fr-fr
  5. You can set access to Registered to test association after log in too.
  6. --- No menu item ---
  7. Logout and go to /index.php/en/component/content/categories (no menu item)
  8. Login and check redirection: before and after PR you stay on the same page.

Test 5. Use association on module with "Login Redirection Page"

  1. Go to the module mod_login on backend and in configuration set option "Login Redirection Page" to menu item Categories in EN.
  2. Go to front/home page and log in:
    • Before PR you will be redirected to index.php/en/allcategories-en-gb (association does not work)
    • After PR you will be redirected to index.php/pl/allcategories-fr-fr (association works)

Test 6. Restricted article with "readmore" and enabled association on login page

  1. Follow the instruction at Correctly redirect after logging into the multilingual joomla with association enabled #19295 (comment)

Expected result

Association works.

Actual result

Association did not work in a few mentioned tests.

@csthomas csthomas changed the title Revert to plugin system languageflter and fix form login action link Undo the change in plugin system languageflter and correct the form action link for login Jan 4, 2018
@jsubri
Copy link
Contributor

jsubri commented Jan 4, 2018

I've updated my menu items with "Protostar Default" to benefit the debugging info, this is a bit odd:

with current Staging (3.8.4-dev) I'm not getting the stack dump , only "URL Invalid" from

throw new RouteNotFoundException('URL invalid');

Router.php at line 238 "URL invalid"
print_r gives:
$uri = Joomla\CMS\Uri\Uri Object ( [uri:protected] => index.php?Itemid=171&lang=fr-FR [scheme:protected] => [host:protected] => [port:protected] => [user:protected] => [pass:protected] => [path:protected] => p [query:protected] => Itemid=171&lang=fr-FR [fragment:protected] => [vars:protected] => Array ( [Itemid] => 171 [lang] => fr-FR ) )

Staging + 19295, I'm getting the stack dump with the same $uri:

1 | () | JROOT\libraries\src\Router\Router.php:238
2 | Joomla\CMS\Router\Router->parse() | JROOT\libraries\src\Router\SiteRouter.php:138
3 | Joomla\CMS\Router\SiteRouter->parse() | JROOT\plugins\system\languagefilter\languagefilter.php:639
4 | PlgSystemLanguageFilter->onUserLogin() |  
5 | call_user_func_array() | JROOT\libraries\joomla\event\event.php:70
6 | JEvent->update() | JROOT\libraries\joomla\event\dispatcher.php:160
7 | JEventDispatcher->trigger() | JROOT\libraries\src\Application\BaseApplication.php:108
8 | Joomla\CMS\Application\BaseApplication->triggerEvent() | JROOT\libraries\src\Application\CMSApplication.php:908
9 | Joomla\CMS\Application\CMSApplication->login() | JROOT\libraries\src\Application\SiteApplication.php:729
10 | Joomla\CMS\Application\SiteApplication->login() | JROOT\components\com_users\controllers\user.php:113
11 | UsersControllerUser->login() | JROOT\libraries\src\MVC\Controller\BaseController.php:710
12 | Joomla\CMS\MVC\Controller\BaseController->execute() | JROOT\components\com_users\users.php:15
13 | require_once() | JROOT\libraries\src\Component\ComponentHelper.php:381
14 | Joomla\CMS\Component\ComponentHelper::executeComponent() | JROOT\libraries\src\Component\ComponentHelper.php:356
15 | Joomla\CMS\Component\ComponentHelper::renderComponent() | JROOT\libraries\src\Application\SiteApplication.php:194
16 | Joomla\CMS\Application\SiteApplication->dispatch() | JROOT\libraries\src\Application\SiteApplication.php:233
17 | Joomla\CMS\Application\SiteApplication->doExecute() | JROOT\libraries\src\Application\CMSApplication.php:267
18 | Joomla\CMS\Application\CMSApplication->execute() | JROOT\index.php:49

Note: Itemid=171 relates to the "Menu Item Login Redirect".

Removing Login Redirect do not help, and getting:
Router.php at line 238 "URL invalid" and $uri = Joomla\CMS\Uri\Uri Object ( [uri:protected] => index.php?option=com_users&view=profile [scheme:protected] => [host:protected] => [port:protected] => [user:protected] => [pass:protected] => [path:protected] => p [query:protected] => option=com_users&view=profile [fragment:protected] => [vars:protected] => Array ( [option] => com_users [view] => profile ) )

However removing the "Associations" from the languagefilter plugin works like a charm. Guessing their is glitch somewhere.

@csthomas
Copy link
Contributor Author

csthomas commented Jan 4, 2018

Do you have ~ character in your test joomla address?

@jsubri
Copy link
Contributor

jsubri commented Jan 4, 2018

Do you have ~ character in your test joomla address?

No, and running on Windows :-(

Update on nailing down the issue: The error seems only triggered when I've "Yes" for both Automatic Language Change + Associations

image

working fine with:

image

working fine with:

image

working fine with:

image

@csthomas
Copy link
Contributor Author

csthomas commented Jan 4, 2018

Can you check what value of return field is send when you log in?

@csthomas
Copy link
Contributor Author

csthomas commented Jan 4, 2018

It would be good to close a browser in order to refresh cookies/session.

@joomla joomla deleted a comment from jsubri Jan 5, 2018
@infograf768
Copy link
Member

Sorry folks, I still can't reproduce the original issue with Associations & Automatic Language Change
@jsubri Please explain in details how you get a pure http://localhost/staging/index.php/fr/?option=com_users&view=login as referrer. Also where you redirect to.
I suppose you have set Modern Routing for the User Manager

@jsubri
Copy link
Contributor

jsubri commented Jan 5, 2018

I've a Menu with a single entry , zero redirect used.
image

Both http://localhost/staging/index.php/fr/mon-acces and http://localhost/staging/index.php/fr/?option=com_users&view=login give me the below, their is no pure ?option=com_users&view=login used :

Wihout 19295
image

With 19265
image

I suppose you have set Modern Routing for the User Manager

Hoops, no it was on Legacy, turned to Modern, no change.

I've a workaround by turning off "Automatic Language Change"

I can't replicate with the Sample site !!! Not sure how I can help further.

Any idea how to trap/debug the below mentioned by @csthomas ?

Can you check what value of return field is send when you log in?

@csthomas
Copy link
Contributor Author

csthomas commented Jan 5, 2018

@jsubri
After you enabled Automatic Language Change + Associations and you got "URL Invalid".
Can you show me the value of "return" field from the source code of page where you are trying to log in.

Example <input type="hidden" name="return" value="aHR0cDovL2xvY2FsaG9zdC9zdGFnaW5nL2luZGV4LnBocC9lbi8=" />

The error you get is generated by unexpected value of $this->app->getUserState('users.login.form.return') at line 636

https://github.com/csthomas/joomla-cms/blob/fbc245b53371f5ad6b72cf9da781de2b227019e0/plugins/system/languagefilter/languagefilter.php#L636-L639

@jsubri
Copy link
Contributor

jsubri commented Jan 5, 2018

Staging 3.8.4-dev => "URL invalid"

<input type="hidden" name="return" value="MTcx" />
<input type="hidden" name="b003b985dd5244d286f183af8c98fcb9" value="1" />	

Staging 3.8.4-dev + patch 19295 => "URL invalid"

<input type="hidden" name="task" value="user.login" />
<input type="hidden" name="return" value="MTcx" />
<input type="hidden" name="82216a4fe3fcfee7a360b7023467385b" value="1" />

Staging 3.8.4-dev + languagefilter.php from 3.8.3 => WORKING FINE

<input type="hidden" name="return" value="MTcx" />
<input type="hidden" name="bbb71b793afa63f15f60897e9dfba795" value="1" />

@csthomas
Copy link
Contributor Author

csthomas commented Jan 5, 2018

@infograf768 I have updated the test instruction.

@infograf768
Copy link
Member

Folks, as I said, I cannot reproduce the issue here.
My login form menu item(en-GB) with redirection to a Categories menu item(en-GB).

screen shot 2018-01-06 at 08 13 38

Then I log in frontend using the login form menu item:

login

All is fine.

* Correctly get Itemid from non SEF return page
* Only for users component login view set active Itemid
@csthomas
Copy link
Contributor Author

csthomas commented Jan 9, 2018

@jsubri I changed the code. Maybe this time it will work for you. I do not know why you previously had an exception, it may be related somehow to the Windows platform.

@jsubri
Copy link
Contributor

jsubri commented Jan 9, 2018

I have tested this item ✅ successfully on 57e5088

My specific login issue (multilingual + languagefilter) is resolved with Staging + this PR.

I'm tagging #19099 as I can't exclude a side effect from it. In case 19099 would be reverted this PR would need retesting or withdrawn.

Thank you


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

@infograf768
Copy link
Member

I have tested this item 🔴 unsuccessfully on 57e5088

ONCE MORE!!
This breaks Automatic Language Change.
Use the Login form Module with no redirect when the language is NOT the preferred user site language and you are not redirected to that language but remain on the same language.


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

@csthomas
Copy link
Contributor Author

At now I am writing a new test instruction and retesting everything once again.
After that I will add my results.

@csthomas
Copy link
Contributor Author

@infograf768 Please take a look at my tests. Remember to use fresh staging with merged #19099.
this PR also got fresh commit 57e5088.

@joomdonation You might be interested in the code review compared to 3.8.3 for languagefilter.php.
I added the result of the comparison at the top in the PR description.

@infograf768
Copy link
Member

The problem is not solved.
User has French as preferred site language:
screen shot 2018-01-11 at 07 44 41
Default site language is English
screen shot 2018-01-11 at 07 45 07

The Login module has no redirection (uses Default).
The language filter Automatic Language Change is set to Yes
screen shot 2018-01-11 at 07 53 42

When the user logs in, for example on the English Home page, he should be redirected to the French Home page. It does NOT work.
login2

@csthomas
Copy link
Contributor Author

@infograf768 I have found the difference. I had an association between the home pages.
After I removed it I got your result.

@infograf768
Copy link
Member

home pages do not need to be associated for this feature to work, and it should also work when they are associated. that is a basic core mulingual feature.

@csthomas
Copy link
Contributor Author

csthomas commented Jan 11, 2018

Now this should work.

@infograf768
Copy link
Member

It breaks Register to Read More
login3

@infograf768
Copy link
Member

infograf768 commented Jan 12, 2018

@csthomas
I am thinking more and more that we have to revert #19099 (and evidently #19267)
as we are here going into issues (maybe only for @jsubri as I can't reproduce the problem).
And start again from fresh to solve #15730

@joomdonation @mbabker
What do you think?

Note: As it is now, without this PR, I could not find any error.

@csthomas
Copy link
Contributor Author

I can not reproduce.

Can you show me what URL do you have on "Read more"?
What is home page? Which menu item?
What is the link to article?
Do you have a menu item for login, which language?
What routing modern or stable for users/content component?

@infograf768
Copy link
Member

infograf768 commented Jan 12, 2018

  1. Home Menu item is a featured Menu item with Show Unauthorized Links set to Yes.
  2. The featured article is set to registered.
  3. The issue is the same if routing is set to modern or legacy
  4. The register to read more url is
    http://localhost:8888/installmulti/trunkgitnew/en/login-form?return=aW5kZXgucGhwP29wdGlvbj1jb21fY29udGVudCZ2aWV3PWFydGljbGUmaWQ9MTphcnRpY2xlLWVuLWdiJmNhdGlkPTgmbGFuZz1lbi1HQg==
  5. I do have some login form menu item with NO redirection set for each language, i.e. Default.
  6. Both login form menu items were associated, which created the issue. Before your PR, that association had no impact, which was the correct behaviour.

@csthomas
Copy link
Contributor Author

I tested J3.8.3, and the above example did not work in 3.8.3. It works in the same way as in this PR.

@infograf768
Copy link
Member

@csthomas
This is possible, but before this PR (which again does not solve anything here afaik), that issue was solved, I guess by your former PRs post 3.8.3.

I will test again this PR asap.

@jsubri
Copy link
Contributor

jsubri commented Jan 15, 2018

@infograf768 , I'll try to re-produce the issue in the coming day(s) and I'll post back.

@csthomas
Copy link
Contributor Author

Yes, my previous PR solved that (but broke something else) and I reverted it.

I would like to leave it for another PR but if you ready want I will try do it on this PR.
I am worried that this may be a never-ending story.

I have some idea how to fix it but explain me what effect do you want. See on example below.

At start:

  1. Article(EN) does not have own menu item, it uses category(EN) menu item that has association to category(FR).
  2. As a guest I click on "read more" of article(EN)

Results/Solutions:

  1. Then I will be redirected to associated category-FR (NOT to article-FR) because article does not have own menu item. For me this is not the best behaviour.

  2. Back me to article-EN and do not use any association for "readmore" at all, when user has to login to see the article.

The general solution could be:

  • use return URL without Itemid if we do not need language redirection.
  • add Itemid to return URL if we want to use language redirection. Then you will be redirected to menu item association, not to the page association.
  • use login menu item (/login) with association to FR only if user go to direct login page, and do not use any associations if we go from readmore or mod_login.

@infograf768
Copy link
Member

Article(EN) does not have own menu item, it uses category(EN) menu item that has association to category(FR).
As a guest I click on "read more" of article(EN)

Results/Solutions:
Then I will be redirected to associated category-FR (NOT to article-FR) because article does not have own menu item. For me this is not the best behaviour.

With or without your patch, logging to read more to get the full article does not redirect me to fr-FR but to the full en-GB article.

@csthomas
Copy link
Contributor Author

With or without your patch, logging to read more to get the full article does not redirect me to fr-FR but to the full en-GB article.

I assume that you does not have enabled association between login EN and login FR.

@csthomas
Copy link
Contributor Author

When you enable association between login pages then the result is different to above but the same as in 3.8.3.

Do you see any more issues, which has to be fixed in this PR?

@csthomas
Copy link
Contributor Author

@infograf768 I fixed your issue. Now it pass all six tests.

If both login pages are associated and "Menu Item Login Redirect" is not set (default) then redirection to login in FR does not work. To fix it admin has to set some menu item (to login page) in order to use association.

Please test.

@jsubri
Copy link
Contributor

jsubri commented Jan 18, 2018

UPDATE: key strokes send the message before I finished to type in. full content in the next entry

I created from scratch a site and I'm able to reproduce the "action link for login" that currently breaks in 3.8.4-dev (17-Jan-2018).
This PR solve it.

@ghost
Copy link

ghost commented Jan 18, 2018

@jsubri please mark your Test as successfully:

  • open Issue Tracker
  • Login with your github-Account
  • Click on blue "Test this"-Button above Authors-Picture
  • mark your Test as successfully
  • hit "submit test result"

@jsubri
Copy link
Contributor

jsubri commented Jan 18, 2018

I have tested this item ✅ successfully on e9a5db0

I created from scratch a site and I'm able to reproduce the "action link for login" that currently breaks in 3.8.4-dev. If someone want a copy/backup of that site let me know.

There is still 1 issue for a URL that was working with 3.8.3 with modern router and breaking with staging (simple menu, registered, language ALL). As this is language all this can't be associated.
http://localhost/testing/index.php/fr/my-documents-registered-all-languages (OK)
http://localhost/testing/index.php/en/my-documents-registered-all-languages (404 when using the language switcher). "Remove IDs from URLs" is causing the issue, however adding #19280 on top of this PR clear the remaining issue.

Summary, this PR:

  • Solve the login issue.
  • Language Switcher tested successfully with: categories, articles, menu items,
  • PR 19280 to be merged to remove broken piece introduced in 3.8.4-dev

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

@csthomas csthomas changed the title Undo the change in plugin system languageflter and correct the form action link for login Correctly redirect after logging into the multilingual joomla with association enabled Jan 18, 2018
@infograf768
Copy link
Member

I have tested this item 🔴 unsuccessfully on e9a5db0

Login form menu items in both languages, not associated.
No redirection set.
Logging via the logging form menu item in the language which is NOT the user preferred language when Automatic change is set to Yes does NOT redirect to the other language as should.


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

@csthomas
Copy link
Contributor Author

Login form menu items in both languages, not associated.
No redirection set.
Logging via the logging form menu item in the language which is NOT the user preferred language when Automatic change is set to Yes does NOT redirect to the other language as should.

But it never worked.
If there is no redirection set and no association set for login page then it does not work.

When you enable association for login pages and:

  • set some redirection to ex. login page
  • or do some code changes like below:
diff --git a/components/com_users/controllers/user.php b/components/com_users/controllers/user.php
index 0912f4b664..934e8e63d2 100644
--- a/components/com_users/controllers/user.php
+++ b/components/com_users/controllers/user.php
@@ -92,7 +92,7 @@ class UsersControllerUser extends UsersController
                // Set the return URL if empty.
                if (empty($data['return']))
                {
-                       $data['return'] = 'index.php?option=com_users&view=profile';
+                       $data['return'] = JRoute::_('index.php?option=com_users&view=login', false);
                }
 
                // Set the return URL in the user state to allow modification by plugins

then it start working but only when association is enabled for login pages.

I can add this change to PR it will be helpful.

@csthomas
Copy link
Contributor Author

There are my all menu items
obraz

@jsubri
Copy link
Contributor

jsubri commented Jan 19, 2018

@csthomas , @infograf768 , happy to test the « login redirection based on user profile and/or association » on a separate pr.

@infograf768
Copy link
Member

I have tested this item ✅ successfully on e9a5db0

OK. Let's go for it as we are now at RC.

Note: I still think that when there is no redirection set for the login forms, the user should be redirected to the Profile in his preferred site language. Let's say it is for another PR


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

@infograf768
Copy link
Member

RTC @mbabker


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

@joomla-cms-bot joomla-cms-bot added the RTC This Pull Request is Ready To Commit label Jan 19, 2018
@infograf768 infograf768 added this to the Joomla 3.8.4 milestone Jan 19, 2018
@mbabker mbabker merged commit 5994eb1 into joomla:staging Jan 19, 2018
@joomla-cms-bot joomla-cms-bot removed the RTC This Pull Request is Ready To Commit label Jan 19, 2018
@csthomas csthomas deleted the login_menu_redirect branch January 19, 2018 18:08
csthomas pushed a commit to csthomas/joomla-cms that referenced this pull request Jan 31, 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

* &nbsp; 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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants