Skip to content

Performance 3 (layouts)#12225

Merged
rdeutz merged 13 commits intojoomla:stagingfrom
frankmayer:Performance_3
Oct 18, 2016
Merged

Performance 3 (layouts)#12225
rdeutz merged 13 commits intojoomla:stagingfrom
frankmayer:Performance_3

Conversation

@frankmayer
Copy link
Copy Markdown
Contributor

@frankmayer frankmayer commented Sep 30, 2016

Performance (and a bit of cleanup) Batch #3

The changes in this batch are all in files under layouts.
This PR modifies code to be a bit more performant and also does some cleanup.

I have mostly done work on low hanging fruit. There are still other ways of improving, but whose involve more deep research in the code and probably more drastic changes in order to be implemented.

Copy link
Copy Markdown
Contributor

@wilsonge wilsonge left a comment

Choose a reason for hiding this comment

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

This looks largely fine to me. A few things that I'd like to see changed first tho because I think that code readability is largely preferable to the micro-optimisations that you have done here...

</dt>

<?php if ($displayData['params']->get('show_author') && !empty($displayData['item']->author )) : ?>
<?php if (!empty($displayData['item']->author ) && $displayData['params']->get('show_author')) : ?>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Can we revert this one please. It might be a micro-optimisation but to me from a readability perspective it makes far more sense to check the parameter for display before we check whether the property is empty or not

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

OK, will change those checks back to the previous way.
Though I believe that even from a readability standpoint it does make sense. Why check if we want to show something that is not existent?

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Different opinions, different workflows. 99% of the time my workflow is checking the parameter before checking if the data exists.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

OK 😄 , as I said, I will change those specfic cases in all PR's

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

While looking over some of the code for other stuff, I noticed that there are a few of those types of conditions out there (where the existence of a value is checked before the parameter to output it). I guess that whoever wrote them, had the same thing in mind as me.
Maybe it's worth giving it a little more thought?
If you think about it, it does make sense to not check for outputting something that is not there...

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

I definitely see where you're going with it, but I don't think we're going to come up with a "this is the preferred way" answer. I think I've always written code where it checks the parameter then checks for the data, it's just one of those habits. Same as those who prefer Yoda arguments over the other direction.

Honestly, even if you look throughout much of the project's code repositories, you can somewhat extrapolate who wrote what sections. One of the devs I work with on the issue tracker prefers Yoda conditionals and shorter line lengths whereas I write them the other way and push the limits of our 150 character line length restrictions. Both pass the guidelines and are functional, but there isn't anything specifying do it only one way.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

@mbabker sorry, I missed your answer somehow.
As you might 😁 have noticed, my OCD is with optimizing stuff.
And in most of these marked cases (and other like those throughout Joomla's codebase), the condition to check if we want to show some parameter data, is 5 to 10 times or even more expensive, than to check first, if it makes any sense to do said check at all (aka: check if there is any data to use). to begin with. And by the looks of it, most of those conditions are often part of a loop, which adds up to even even more wasted cpu power.
So, my argument for that, is "It's not just the 'preferred way'. It's the much less expensive way.
And while there are arguments that say, the user won't notice it, there are two counterarguments for that:

  1. Under extreme load, optimized code most probably will make a difference.
  2. When Joomla has several tens of thousands installations, the energy footprint for non-optimized code is huge. That's why it's important to try to apply Green Computing aka Sustainable Software Engineering to our coding styles/principles or whatever one might call it. It might be that Green Computing is not that widely spread, accepted or thought about as "FILL THIS WITH YOUR FAVORITE
    BUZZWORD FLOATING AROUND THE WEB AT THIS TIME", but why not do it anyways and sleep a tiny bit better at night 😄 ...
    .

<?php endif; ?>

<?php if ($displayData['params']->get('show_parent_category') && !empty($displayData['item']->parent_slug)) : ?>
<?php if (!empty($displayData['item']->parent_slug) && $displayData['params']->get('show_parent_category')) : ?>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ditto with the check here. I'd rather check the params first from a readability perspective

<dd class="category-name">
<?php $title = $this->escape($displayData['item']->category_title); ?>
<?php if ($displayData['params']->get('link_category') && $displayData['item']->catslug) : ?>
<?php if ($displayData['item']->catslug && $displayData['params']->get('link_category')) : ?>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ditto with the check here. I'd rather check the params first from a readability perspective

<dd class="parent-category-name">
<?php $title = $this->escape($displayData['item']->parent_title); ?>
<?php if ($displayData['params']->get('link_parent_category') && !empty($displayData['item']->parent_slug)) : ?>
<?php if (!empty($displayData['item']->parent_slug) && $displayData['params']->get('link_parent_category')) : ?>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Ditto with the check here. I'd rather check the params first from a readability perspective

"
jQuery(document).ready(function (){
jQuery('" . $selector . "').chosen(" . $options_str . ");
jQuery('" . $selector . "').chosen(" . $options_str . ');
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

This feels super counterintuitive. If we are going to do strings with single quotes then do all the strings in single quotes and use double quote for the jQuery selector. Or just revert this part of the string :/

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

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

You're right. Will see what fits best and act appropriately.

$script[] = " var attr = $(this).attr('data-placement');";
$script[] = " if ( attr === undefined || attr === false ) $(this).attr('data-placement', 'auto-dir top-left')";
$script[] = " });";
$script[] = ' });';
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same here - having a bunch of lines of strings with double quotes and then one line of single quotes is pretty counter intuitive!

// Set max-height for iframe if needed, to adapt to viewport height.
$script[] = " var iframeHeight = $('.iframe').height();";
$script[] = " if (iframeHeight > maxModalBodyHeight){;";
$script[] = ' if (iframeHeight > maxModalBodyHeight){;';
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same here - having a bunch of lines of strings with double quotes and then one line of single quotes is pretty counter intuitive!

{
// Set max-height for modal-body if needed, to adapt to viewport height.
$script[] = " if (modalHeight > maxModalHeight){;";
$script[] = ' if (modalHeight > maxModalHeight){;';
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same here - having a bunch of lines of strings with double quotes and then one line of single quotes is pretty counter intuitive!

$script[] = " });";
$script[] = "});";
$script[] = ' });';
$script[] = '});';
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Same here - having a bunch of lines of strings with double quotes and then one line of single quotes is pretty counter intuitive!

@wilsonge wilsonge added this to the Joomla! 3.6.4 milestone Sep 30, 2016
@wilsonge
Copy link
Copy Markdown
Contributor

OK. I'll leave this for 3.6.4 just to be safe and as we are in RC anyhow. But this looks fine to me. RTC

@wilsonge wilsonge added the RTC This Pull Request is Ready To Commit label Sep 30, 2016
@brianteeman
Copy link
Copy Markdown
Contributor

Milestone changed to 3.7 as it is now not planned to have a 3.6.4 release

@@ -38,7 +38,7 @@

if ($currentPage >= $step)
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

just ?

if ($currentPage >= $step)
{
    $range = ceil($currentPage / $step);

    if ($currentPage % $step === 0)
    {
        $range += 1;
    }
}

<dd class="createdby" itemprop="author" itemscope itemtype="https://schema.org/Person">
<?php $author = ($displayData['item']->created_by_alias ? $displayData['item']->created_by_alias : $displayData['item']->author); ?>
<?php $author = ($displayData['item']->created_by_alias ?: $displayData['item']->author); ?>
<?php $author = '<span itemprop="name">' . $author . '</span>'; ?>
Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

just?

<?php $author = '<span itemprop="name">' . ($displayData['item']->created_by_alias ?: $displayData['item']->author) . '</span>'; ?>

@andrepereiradasilva
Copy link
Copy Markdown
Contributor

oh this is already RTC forget it

@rdeutz rdeutz merged commit d82a2be into joomla:staging Oct 18, 2016
@brianteeman brianteeman removed the RTC This Pull Request is Ready To Commit label Oct 18, 2016
jjaracz pushed a commit to joomla-projects/GSoC17_publishing_workflow that referenced this pull request Aug 27, 2017
* consistent/valid status codes

* fix test

a bit revert and make sure that all values are checked

* status code ordering

* check redirection state in redirect function

* correct the tab indentation

* Add status code 418

* typos and indentation

* cs fix

* cs fix2

* Namespace document

* Fix class load

* Merge with upstream

* Fix Joomla 4 deprecated classes

* Change of renderers names

* Change document name formats

* Fix deprecated versions

* Fix class name

* Undeprecate and namespace unsupported session store exception

* Split Opensearch classes to files

* Catch up deleted files

* Rename file to use camel casing

* Correct doc block reference in Categories, use namespaced factory

* Rename Exception class to be a bit more clear, fix reference to root Exception class

* Missed file from last commit

* UCM is an acronym, make it all caps

* Namespace crypt (#16825)

* Namespace crypt

* Rename to Key

* Rename interface

* CS

* single p

* only key

* Fix merge conflicts errors

* Use the Archive package from framework and deprecate JArchive (#14157)

* Add archive package

* Deprecate JArchive

* Deprecate JArchive

* Use the Archive class instead of JArchive

* Wrong indents

* Wrong indents second part

* Setting tmp path correct

* adapt the extract dir based on file extension

* remove debug code

* Use the latest code from the archive class till version 1.1.5 is released

* Revert workaround

* Adapt installer

* Use the archive

* Deprecate the adapters

* CS

* CS

* CS

* CS

* Use version 1.1.5

* zero 24 cs

* CS on classmap file (#16898)

* Namespace CMS fields

* Add css class option to image element of menu items (#16456)

* Add css style option to menu image

* Add css image for all menu item types

* Language typo

* Fix indentation

* Fix language strings

* Use tabs indentation in *.xml

* cs

* Capitalize 'S'

* No need for front slash

* Catch up deleted files

* Namespace punicode (#16931)

* Namespace punicode class

* Deprecate wrappers

* Move to string namespace

* Namespace utility classes (#16934)

* Namespace utility classes

* Correct name of the folder

* Move register function to the top of the file

* Deleted files update

* [3.8] Namespace Http classes (#16445)

* Namespace Http classes

* Fix class name

* Fix class namespace name

* Fix wrapper namespace name

* Fix transport filename

* Fix codestyle

* Fix codestyle

* Solve unit test for J4

* Fix BC break

* Ups

* Correct logic to match names

* Rename class to match Framework

* Rename interface to match the Framework

* Namespace Input and deprecate it in favor of the framework package (#16939)

* Apply patch #12532, move to the fw package classes

* Namespace input classes

* Change application classes

* Compile correct class name

* Restore unit test

* Fix document render in legacy mode

* Deleted files update

* Update string in fields (#17119)

It was a bit ambiguous so I updated the string to be more explicit

### Before

### After

* Deprecated notice (#17094)

Update the deprecated notice on an unused file to indicate that it will be removed in J4

* [Plugins/system/debug] Some improvements and cleanups in plugins/system/debug (#16674)

* Some improvements and cleanups in plugins/system/debug
- Make use of $this->db instead of JFactory::getDbo()();
- Added missing docblocks
- Type-safety
- replace unnecessary strlen() call with simple check
- CS

* A few more changes

* A few more changes

* Changes based on reviewer's comment

* cs

* cs

* cs

* cs

* cs

* Change vote plugin to disabled (#17106)

On new installs this changes the vote plugin to be disabled by default. It is not used that often and by disabling it we also benefit from a simpler article list view in the admin

* Banned text strings consistency (#17108)

The text used for the banned fields in com_contacts is different in the commponent options and the individual contact options. Irrelevant of if the information is needed or not we should be consistent. So on the basis that it is important to have the extra information I have updated the individual contact strings to match the global ones.

* Refactor database drivers - push up desctructor (#10962)

* Push up the destructor from various database drivers to their parent abstract class JDatabaseDriver as it almost every time just does one thing viz disconnect(). Otherwise it can always be overridden.
Never `unset` class property. $this->connection  set to null in disconnect methods.
Nosql connect return is void not bool.

* Use version macro now

* put multiple versions of the same  tag (#16583)

* put multiple versions of the same <meta> tag

* fixed code-style errors

* remove tabs

* cs: Remove tabs

* Work on com_finder (both admin and site) (#12254)

* Case mismatch in function call

* Elvis

* Fix nested positive ifs

* Fix static method invocation via ->

* " to '

* Remove unnecessary parentheses

* Merged isset()

* Inline redundant value

* Move disconnected code outside the foreach loop.

* Fixed Docblocks

* Replaced preg_replace() with str_replace()

* Replaced PHP4 type-casting

* Type-safe string comparisons

* More type-safe comparisons

* Removed unused call and variable.
Also Todo'd two things for someone to check

* Reverse preg_replace() replacement because there was a limit in preg and it might cause trouble...

* Codesniffer

* Fix integer

*  Changes proposed by @andrepereiradasilva and two more by me, to get function calls out of the loop or reduce calls inside the loop.

* Shouldn't this be written this way?

* Some extra work according to @andrepereiradasilva's notes

* Some more changes from @andrepereiradasilva's comments

* Some more changes from @andrepereiradasilva's comments

* Reverted removal of duplicate key entries, added TODO's

* Code formatting fixes

* More code formatting fixes

* Fix merge introduced problem.

* Additional changes according to reviewer's comments

* Additional changes according to reviewer's comments

* Changes, according to @andrepereiradasilva's suggestions

* Forgot to commit this one

* set 3.8.0 Dev State

* Update phpDocumentor build

* remove the never working limitstart call (#17184)

* fix joomla.content.options_default (#17123)

* com_banners incorret tooltip (#17157)

The tooltip says that the images must be in the images/banners folder but this isnt true they can be in any folder

* mod_login showon option (#17153)

As seen below the option for Show Name is in the wrong place

* Text Filters layout (#17113)

* Text Filters layout

At some point in the past when layouts were added the design of the global configuration text filters  was changed and it looks odd

This PR adds a new layoout just for text filters without the big empty space

* updated as requested by @zero-24

* Menu items list parent filter (#17060)

* removed duplicate parentId state

* New feature - Filter menu items by parent item. For issues #16882

* pre-select menu item parent if filtered by parent when creating a new menu item

* fixed slack tabbing

* Language changes as per @brianteeman

* Added parent_id to constructor so the search tools stay open when in use.

* Added new field filter for menu items which is filter dynamically by Menu Type if is filtered by Menu Type.

* Code style changes

* Code style changes

* Code style changes - Codesniffer auto

* Reverted CodeSniffer auto fix and applied single fix.

* Made changes requested by @Quy

* Moved to alpha ordering.

* Updated as oer @Quy 's comments

* Updated changes as per @mbabker 's comments.

* Version placeholder, not new in 1.6 ;-)

* Fix the path for the ajax-loader.gif (#16701)

* Fix for: Repeatable field is no longer rendered with Chosen layout (#16471)

* Fixed typehint (#16425)

Fixed the typehint for quote functions in `JDatabaseDriver`

* Performance 6 (templates) (#12233)

* Type-safe string comparisons

* More type-safe comparisons

* Replace is_null with ===

* Use Elvis instead of complete ternary

* Merge nested if

* Replace single quotes with double quotes

* Remove unnecessary parentheses

* Optimize non-optimal if conditions.

* Reverted some condition flips as requested in changes of other PR (joomla/joomla-cms#12225)

* Reverted some more condition flips as requested in changes of other PR (joomla/joomla-cms#12225)

* Reverted even more condition flips as requested in changes of other PR (joomla/joomla-cms#12225)

* Reverted one  more condition flips as requested in changes of other PR (joomla/joomla-cms#12225)

* Replaced and, or with &&, ||

* Comply to change request in PR discussion:  Leave 'or' and 'and' alone

* Missed a spot...

* This way, this JS is much easier to read...

* Another HEREDOC

* Changes that were pointed out in PR discussion

* Hopefully this fixes CS...

* Formatting... ARGH!

* Reverted HEREDOC modifications. (maybe in some other PR?)

* Reverted a prior change, which was on hold, as no decision was made up to now, on if we could use HEREDOC to construct JS and CSS instead.

* Minor change

* Template code-style fix

* Replace unneeded strlen() call with cheaper is-not-empty-string check

* Changes:
- Replaced AND's and OR's with && and ||
- Modified alias function to use correct function
- Optimization: Extracted variable from multiple calls to do only one call
- Rearranged some conditions in if statements, which cost less than the ones on their left. Logic is still the same.

* Reversed AND OR to && || as per discussion in early comments of this PR..

* Corrections according to reviewer's comment

* Corrections according to reviewer's comment

* Corrections according to reviewer's comment

* Some more changes + changes according to reviewer's comments

* Changes according to reviewer's comments

* Changes according to reviewer's comments

* Changes according to reviewer's comment

* Changes according to reviewer's comment

* Performance 2 (libraries/legacy) (#12220)

* Fixed misuses of array_push()

* Replace is_null() with ... === null

* Shortened syntax for applied operations

* Don't use strlen() to check if string is empty.

* Replace some cases of substr() with strpos()

* Merge unset() calls

* Remove unnecessary reference operator

* Remove useless return

* Optimize non-optimal if conditions.

* Inline one-time use variables

* Removed unnecessary ternary operators

* Ternary to Elvis..

* Optimize non-optimal if conditions.

* Replace doublequotes with quotes

* Remove unnecessary parentheses

* Compare strings type-safely

* Optimize non-optimal if conditions.

* Removed unnecessary ternary operators

* Compare strings type-safely

* Replaced non-optimal regular expression

* Removed unused variable

* Fix formating

* Fix strpos inversion mistake

* Fix codesniffer complaints

* A few more changes

* - Remove some parentheses
- Codestyle

* Changes according to reviewer's comment + a few more changes

* Changes according to reviewer's comment

* Add JCryptCipherSodium to support libsodium (#16754)

* Fix fatal error in the Chrome Style Field

* Fix classMap alias

* Fix typehint

* New Feature: Implements a modal to edit the Redirect plugin settings when needed (#16844)

* Redo of #7259 and implements a modal to edit the Redirect plugin settings when needed

* Fixed CSS class and copyright
Changed reload of parent page

* Removed label class

* Make location generic

* Changed amp usage

* Updated after feedback

* Updated the language constants and RTL issue

* Fixed invalid markup in Hathor

* Fixed the URLs for Hathor

* More Hathor massaging

* RTL support in Hathor #16844 Redo

* Add J4 file to ignore

* Add test for Firefox, add JBrowser tests (#17140)

* Unit Test CS (#13433)

* Whats going on now

* Some exclusions

* Remove function comment

* Add some more excludes

* Remove for now

* Add another exception

* Lots of small tweaks to codestyle in tests

* Fix some the plugins CS

* More plugin cs fixing

* Uppercase

* Couple of extra fixes

* empty lines around control structure

* PHPCS autofixers

* Apply PHPCS2.x autofixers to JRouter tests

* Apply PHPCS2.x autofixers to JComponentRouter

* Fix null lowercase

* Code style in application tests

* Fix JApplicationWeb tests

* Remove non-PHP files from tests

* Clean up email cloak unit test

* Remove commented code

* Fix tests failing after merging in develop

* Fix code style issues

* Namespace mismatch fix (#17273)

Please make this quick. We need to fix these all over the CMS, 3.8 branch has lot of similar conflicts and not they are all in staging.

* Namespace and datatype mismatch in namespace joomla library (#17280)

* Namespace and datatype mismatch part 2 (#17279)

* Namespace and datatype mismatch part 2

* Revert changes to 3rd party library idea-convert

* Capitalise headings (#17296)

All headings in Joomla are capitalised but these three were not. This simple PR for consistency corrects that

* Allow disabling the Joomla! localhost database security check. (#17298)

As Joomla! provides a Docker image, the chance of using "localhost" is never. Therefore if the container is scheduled in an environment where you cannot access the container (not that you should ever need to) then you need to be able to bypass this check. This environment variable can be placed in the containers build file and will disable checks meaning you can install hassle free.

This check still keeps the installation secure as you'd need the same access to the server to delete the file.

* Update code coverage filter

* Simple change from str_ireplace to pref_replace for matching case sen… (#17303)

* Simple change from str_ireplace to pref_replace for matching case sensitive and insensitive word replacements within the results.

* Added unicode support i.e. المستقبل is now highlightable.

* [New Feature] Implementing filtering admin modules per admin languages (including custom menu modules) (#17215)

* Implementing multilingual custom backend menus

* Implementing multilingual custom backend menus

* Alignment

* Correcting grammar and alpha order

* Improving Warning. Thanks @izharaazmi

* Modifyimg patch to allow language filtering per module when modules
Option is set such.

* uppercase

* module lang field exchange

* fix xml cs ;)

* Update adminlanguage.php

since version

* Update adminlanguage.php

* required = false is nnot required (#17309)

Looks like some commits included this in the xml definition fr a field when it is not needed (and doesnt do anything).

You can confirm this by checking the markup of the content rights field in the article edit form before and after the PR - there will be no change

* [CS] Required=true (#17313)

Reviewing the cookie plugin I see that it has required=required - for consistency and code style it should be required=true

* Namespace feed (#17278)

* Namespace feed

* CS

* Restore old function name with _

* Deleted files for #17278

* Correct class name logic

* Split feed data object classes to separate files

* Rename the document renderer base class

* Deleted files updated

* Fix deleted files listing

* Cleanup and optimization in FinderIndexerDrivers (#13511)

* Cleanup and optimization in FinderIndexerDrivers
- Pulled up same methods to abstract class. These can still be overridden in inheriting drivers to provide a different functionality.
- Save a few cycles by introducing a query template to clone
- Save a few cycles by introducing by instantiating and using a dbCache property

* Forgot PHPDoc for constructor

* Renamed dbCache property to db.

* Comment fix

* Changes, according to @andrepereiradasilva's suggestions

* cs

* - Revert quoteName(array) as it seems it cannot be used with columns
- changes, according to @Quy's suggestions

* cs

* remove duplicate

* CS - Fixes

* Don't load unexisting paths

* Class mappings for internal classes that apparently aren't internal

* Various doc block fixes and removing unneeded imports

* Fix namespace use and class casing

* Namespace sodium cipher, use compat API

* Fix tests

* Moved JLanguageMultilang::isAdminEnabled() to JModuleHelper::isAdminMultilang() (#17314)

* Moved JLanguageMultilang::isAdminEnabled() to JModuleHelper::isAdminMultilang()

* Use namespace version of the classes

* Implement component params for fieldgroups (#17317)

* implement component params for fieldgroup

* changing the installation sql to add the params field

* rename files and add a newline at the end of the file

* Change links

* Add filter by Tag to mod_article_category (#16945)

* add filteroption to select tag to filter

* all php logic to get selected filter option

* add nice lines to separate fitler by tag from the rest.

* fix code style

* conditional load tags. Only load when filter is used

* Update jQuery Autocomplete to 1.4.1 (#15078)

* Update jQuery Autocomplete to 1.4.0

* Update jQuery Autocomplete to 1.4.1

* Use namespaced classes in build scripts

* isset query[id] (#16889)

* fix whitespace error from the last commit.

* Add CSRF token for Ajax (#14952)

* Add CSRF token for Ajax

* Add CSRF token to hathor

* CS

* call jquery first

* Use server->get()

* Loaded once

* Add CSRF to core.js request method

* Use CSRF instead Csrf

* Use scriptOption

* Fix test

* MISC update

* Use $name variable in JS

* Use string as script option directly and fix tests

* Pull Request for Issue #15542. Replaces PR #15576

* Remote file check comments (#17347)

Just a small tidy up of the comments for clarity and to avoid any confusion

* Correct the parameter name

* Add Redis Session Support (#15390)

* Added Redis session handler support

* fix doc blocks and basic cs

* drone

* Removing dead code and renaming variable

* Fix default value

* Admin modules: no need to sort by language when filtering is enabled (#17355)

* Update calendar.js (#17183)

* Update calendar.js

Proposed fix for issue #17171.

* Update calendar.js

Implementing @DGT41's solution.

* Update calendar.min.js

Minified changes for joomla/joomla-cms#17183

* Admin Menu custom presets, import/export a preset into/from database driven menu (#16451)

* Implement preset xml and the menuHelper class to load them.

* Export a menu (menutype) as a preset xml

* Import/load a preset xml into a database driven menu (menutype)

* Menu Tree and Node classes implemented for menu module menu item hierarchy.

* Update menu module to use new Menu Tree and Node class. Move the HTML rendering to layout files to facilitate template overrides.

* Remove unused files.

* CodeStyle fixes

* Include exception message string in error message.

* Add filter by Tag to mod_article_category (#16945)

* add filteroption to select tag to filter

* all php logic to get selected filter option

* add nice lines to separate fitler by tag from the rest.

* fix code style

* conditional load tags. Only load when filter is used

* File mode fixed

* Using JLayout for combo field (#16293)

* Using JLayout for combo field

### Summary of Changes

Please make sure that combo field still work

### Usage

See [Combo form field type](https://docs.joomla.org/Combo_form_field_type) on Joomla!

### Expected result

the combo filed can be overwritten using a layout

### Actual result

No usage of a layout

### Documentation Changes Required

None

* spaces to tabs ;)

* use deploy version

* the default value is 1 (#17307)

* Fix browser / version detection for firefox (#17051)

* Fix browser / version detection for firefox

* Re-add mozilla regex condition as the last in the browser check queue

* Remove markTestSkipped instruction in browser test

* Change firefox test cases to reflect changes in browser class

* Correct Admin modules warning when nativeName is not defined in language (#17359)

pack.

* fix not installing on remote databases (#17248)

* fix not installing remote databases

* Update database.php

* general remove database message

* Update database.php

* Mark unused file as deprecated (#17392)

* Mark unused file as deprecated

PR for #17382

This file is not used in the core and hasnt been for a very long time as it was replaced by categoryedit. This simple PR add a deprecated notice that this will be removed in J4

* oops

* [fix] nested mode for tags field (#17396)

* PHPCS fix

* CodeMirror 5.28.0 (#17393)

* Added comment: title should not be escaped (#17401)

As per issue #17324: joomla/joomla-cms#17324

* Removed timezone setter - We want to use Global as default, not set for every user. (#17388)

* Category select list indent (#17383)

* Category select list indent

* Category select list indent (reverted from commit 4af9648382ecd921db451687d35ecdde66554188)

* Make the change in the category select instead of the filter

* Remove line

* URLS Position Content global options (#17371)

This is a currently a list but as there are only two options it should be a radio btn-group

* [Plugins/system/cache] Some improvements and cleanups in plugins/system/cache (#16673)

* Some improvements and cleanups in plugins/system/cache
- Make use of $this->app instead of JFactory::getApplication();
- Added missing docblocks
- Type-safety
- replace unnecessary strlen() call with simple check

* Changes based on reviewer's comment

* Changed Update Notification Version compare (#17387)

* Changed Update Notification Version compare to use le = Less than or Equal to. In some cases the users have updated the site before they have been notified within Joomla! i.e. a 3rd part component. Then the localised Joomla! install is stuck in the past and given it no longer equals to it informs the users constantly.

* Updated note about compare

* add flip ordering batch process to category manager (#11529)

* add flip ordering batch process to category manager

* better wording

thanks @brianteeman

* Build query only if 'select' and 'from' attributes are set and don't execute blank query (#10087)

* Build query only if 'select' and 'from' are set

Build query only if 'select' and 'from' attributes are set. Minor code cleanup.

* Don't execute blank query

* Fix codestyle for the not reviewed merge of #17401

* Rename Page to Menu Item (#17409)

* Removed timezone setter - We want to use Global as default, not set for every user.

* Changed - Select Page - to - Select Menu Item - given 'Page' is not a term used in Joomla! Natively.

* Alpha ordering adjusting for super bot @Quy pleasing.

* Added old language strings and put deprecated notice

* Merge remote-tracking branch 'origin/page-naming-fix' into staging-user-time-zone-fix

# Conflicts:
#	administrator/language/en-GB/en-GB.com_modules.ini
#	administrator/language/en-GB/en-GB.com_templates.ini

* [RFC] Mod sample data (#7680)

* [imp] Adding SampleData Module with SampleData Plugins.

* Improvements on JavaScript side by Fedik. Closes Bakual/joomla-cms#5

* Adding some language strings

* Blog sampledata

* Removing plugin files which are not yet ready.

* Updating SQL installation files for all DBs

* Fixing missing language string

* Fixing "The request gave an invalid response." when the menutype was duplicated.

* Adjusting the menutype titles so they don't clash between different sampledata sets

* Fixing blog sampledata.

* Fixing some errors in strict mode.

* Adjusted title of "Home" menuitem to avoid alias clashing.

* Fix for mssql database, add missing defaults, catch exceptions

* Fixing two small issues in testing sample data

* Changing fatal error message in sampledata JS

* Fixing typo

* SampleData -> Sample Data

* proper @SInCE tags

* Use JLoader and don't pass undefined $params

* template_style -> template_style_id and browsernav -> browserNav

* Fix #__asset nesting (lft and rgt)

* It's "sample data"

* Alphaorder strings and remove duplicate one.

* Fixing assets lft and rgt

* Changing Sample Module viewlevel to "Super User"

* Fixing root level rgt value for other databases

* Adjusting access level for other databases.

* Adding update SQL files to install the module and plugins unpublished.

* add the checked attribute (#17336)

* Don't use array merge here. (#17391)

Instead of:
  create array
  merge new array into old array to create another array
  replace old array with newly merged array

Just:
  push item onto old array

* System URL menu link (#17419)

At some point in time this has changed from being only an external url to any url. It makes no sense to have a menu type of "External URL" with a description of "An external or internal URL"

This simple PR resolves that by changing the name of the menu type to simply "URL"

* Enforce array for subform values (#16733)

* PHP 7.2 count warning (#16840)

* PHP 7.2 warning:

Warning: count(): Parameter must be an array or an object that implements Countable in \libraries\cms\application\cms.php on line 470

* fix

* PHP 7.2 has branched, update Travis config to reflect

* Adjusting copyright and versions and two remaining "sampledata" (#17435)

* [3.8] Restructure version constants (#16169)

* Restructure version constants

* Replace uses of the deprecated constants

* PHP 5.3 support, sigh...

* Fix Drone before the commentary begins ;-)

* Fix version in script

* Updates for build script

* Set new constants in version bump script

* Extra piece needs to be aware of something like beta2-dev

* Fix bad merge

* Add a default empty array for the session queue (#16943)

* Move library files to just libraries/src as it should be (#17441)

* Move library files to just libraries/src as it should be

* Fix path expectation

* Fix file paths

* Fix covers tags

* Prepare 3.8 Beta release

* Reset for dev

* Adding russian calendar language file (#17443)

* Correcting Jalali/Persian calendar popup (#17432)

* Correct namespace reference (Fix #17448)

* Correcting non-escaped double quotes in en-GB.plg_sampledata_testing.ini (#17455)

* Add deprecate messages to JError (#16952)

* Add deprecate messages to JError

* Remove to irritating message

* Make the comment as possible solution for UI notification

* Compress JS

* Fix extra conflict

* Fix two more conflicts

* Fix libsodium

* Fix batch modal not closing (#17564)

* Unset the modified value in the group form (#16962)

* One class to make things half work

* Changes archive view to select which state you want, Changes mod article archive to select states

* Fix travis

* Fix travis version 2

* Improve ugly part

* Multi select states in com_content Archived Articles view

* Add CSS grid track for debug (#17597)

* Create a service registry for JHtml (#17328)

* Bump to PHP 7 minimum (#17548)

* Fix PHP Warning

* Fix extension column conflicts

* Fix caps in first item in backend menu

* Fix administrator module view

* fixing front-end issue again (#77)

* Fix submenus

* Add back close button

* correcting fatal error in TemplatestyleField.php (#17618)

* [4.0] Correcting mod_sampledata trigger event (#17617)

* Correcting mod_sampledata trigger event

* namespace pluginhelper

* Fix #17611

* Changing unordered list to ordered list (#16313)

Un unordered list seems to be semantically wrong an ordered list could be better
https://css-tricks.com/markup-for-breadcrumbs/
https://developers.google.com/search/docs/data-types/breadcrumbs
http://schema.org/BreadcrumbList

* Fix Module Position form field

* Another fix for Module Position field

* Remove archive package (#16632)

* Fix drone and a merge conflict

* More drone fixes

* More drone fixes

* Fix RTL

* Add missing default view for com_menus. Fixes #17581

* [4.0] Displaying Client and Menus filters in Menu Items manager (#17630)

* [4.0] Displaying Client and Menus filters in Menu Items manager

* Moving filters before basic bar

* Div missing

* correcting JToolbar error in menu manager

* Menu searchtools consistent with module search tools. Fixes #17633

* [4.0] Start fixing sidebar menu after 3.8 merge (#17622)

* Fix one last part of admin menu module

* Fix keepalive (#17623)

* Rename UCM folder to upper case (#17641)

* fix the drone error Line exceeds 150 characters error (#17639)

* Optimize legacy listener dispatching (#17643)

* [4.0] Make JHtml::_() final and variadic (#17642)

* Make JHtml loader final

* Make JHtml loader variadic

* Since this is now final, we can typehint the key

* Drop version comparisons for unsupported environments (#17644)

* Fix com_modules admin filtering

* Further admin menu module fix

* Fix undefined class

* Fixed SQL queries (#17651)

* Delete the deprecated string classes (#16932)

* [4.0] Namespace form fields (#17657)

* Initial form fields namespaces

* Namespace legacy fields

* Whitespace

* Add radiobasic field

* Move to correct folder

* cs

* cs

* Namespace legacy fields

* [4.0] Remove JError::raise code (#17013)

* Replace raiseNotice

* Replace raiseWarning

* Replace raiseError

* Merge remote-tracking branch 'remotes/upstream/4.0-dev' into j4/jerror-remove

# Conflicts:
#	administrator/components/com_contact/Field/Modal/ContactField.php

* Fix namespaced form fields (#17662)

* [4.0] Fix namespaced form fields Part 2 (#17664)

* Fix namespaced form fields

* Fix tests and improve doc blocks

* Fix Sql field class name (#17666)

* Add back class that got deleted somewhere

* [4.0] Cleanup classmap and include it properly for stubs generation (#17667)

* Cleanup classmap and include it properly for stubs generation

* Replace import.legacy.php with bootstrap.php

* Remove cms.php

* Add back NotAllowed

* Move files

* [4.0] Update Bootstrap to beta-1 (#17496)

* Initial update to BS4

* Call Popper instead of Tether

* Trailing new line

* Start cards and badges

* Finish badge colours

* Colour migration + import correct popper.js file

* remove tab files

* Colour migration for Aurora

* Update classes in SQL files

* Update to new font-size variables

* Toolbar fixes

* Gutter fix

* Fix nav in Aurora

* Fix content top margin

* fix class in sample data

* Move to popper.js in unit tests

* fix conflict on debugger

* Grid fixes (thanks Ciaran)

* Changes plugins, modules to com_workflow and adds select with available transitions to edit view of article

* Fix publishing fields in edit view

* Fix menu workflow item

* Fix transition select field, Adds acl checking in that field

* Fix plugin

* This trying to fix module issue with passing states

* Add states to archive model

* Fix all bugs
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.

7 participants