Version History

1.3.1.0

[v1.3.0 (2024-02-04)] Enhancements

Add an ability to filter by multiple page types. Add an option to change the condition (AND or OR) selectable for keyword search. Add an ability to filter by public date range. Add an ability to filter by select attribute. Pass the number of total pages to the view. Fixed

Fixed an error when sorting by modified date. Fixed not enable to sort by attribute value. Fixed an error when using APL search block on PHP8. [v1.2.0 (2023-11-17)] Enhancements

Add "Display sort options for visitors." option to show pull down menu for changing sort order. Add an option to choose "OR" or "AND" for multiple topic filtering. Add an option to exclude by topics. Simplify default view.php template of advanced page list block Keep filtering by year and month Add an option to exclude pages that attribute value is empty if you want to order by attribute value Add an option to switch pagination to pager (faster than default pagination) Fixed

Fixed an issue on select multiple parent page. If you select current page's parent page, other parent pages are cleared. [v1.1.0 (2022-04-11)] Added

Add a Search Form block to show just a form to post to another page. Add "Filter by Related Topic" option Fixed

Fix some errors on PHP8.0 [v1.0.0 (2022-01-27)] Added

Add multiple topics filtering feature. Add multiple topics search feature. Fixed

Add the block types to Navigation category. Rebranding: Eeplace C5J with Macareux. Fix quotation marks in "defined('C5_EXECUTE') or die('Access Denied.');". Fix blocks' icon size. Move filters and search button to the top of the view. Support Concrete CMS version 9. Clean auto.js file. Fix the preview pane. Add PHP version check before package installation. Remove deprecated code. Set input size constraint for all text entries. Resize package icon to 97x97. Fix Sort By feature. Use PHP long tags instead of short tags. Use controller instead of this->controller. Handle the edge case where the user sets the APL on a page that has no parent page (the home page for instance). Avoid using aliases. Remove unused variables and parameters. Use strict comparison. Add return type to methods. Add methods parameters type. Fix "Call to a member function getAttributeType() on null" error. Fix upgrade() function since parent::upgrade() returns void. Set includeBody parameter to true by default. Install Year Navigation block type on package update, if necessary. Fix the APL Year Navigation block type installation error. [v0.1.14 (2021-07-01)] Added

Add "Highlight keyword(s) in single and multiple keyword search results" feature. The APL block will highlight specified keyword(s) found in result pages. Add "Display truncated body" feature. Allows the user to specify whether each result page's body should be truncated and displayed or not. The user can specify how many characters the truncated page's body should be; the default value is 128 characters. Add test cases for "Highlight keyword(s) in single and multiple keyword search results" feature. Add autoloader registries to the package controller. Add a keyword filtering function. Add more test cases. Changed

Move testable methods to a trait. Update composer.json file to handle autoloaded classes. Replace strlen() with mb_strlen() to support multi-bytes characters. Fixed

Fix test cases. Remove useless classes. [v0.1.13 (2021-06-28)] Added

Add "Filter by navigation year" feature. Allows the user to display pages filtered by a selected year and other filters if specified. The user can select a year using a Year Navigation block installed on the same page as the APL block. Add the Year Navigation block type. Changed

Avoid storing navigation year in session. Replace "yearNavigation" with "year" to reduce variable name size. Change Year Navigation block type's name and description. Prepend apl_ to Year Navigation block type handle to guarantee its unicity. Fixed

Simplify pages URL by removing /all_years part. Fix isSelectedYear() method, so it responds to get parameter. Pass null instead of all_years to getYearLink() for the sake of simplicity. [v0.1.12 (2021-06-25)] Added

Add "Filter by locale" feature. Allows the user to display pages filtered by any available locale. The user can select any available locale and result pages are filtered by the default locale if no specific locale is selected. Changed

Make "Filter by locale" feature, optional. [v0.1.11 (2021-01-12)] Added

Add "Redirect results to another page" feature. Allows the user to have result pages displayed by an APL block that is installed on another page. The user has to specify the page to display results installed on. Results are displayed on the current page in case the specified page could not be accessed. Make "postToCID" database column exportable by adding it to "btExportPageColumns" array. Changed

Use URL resolver to resolve the URL of the page to redirect results to, instead of facade. Change "postTo_cID" into "postToCID". Fixed

Sanitize the URL of the page to redirect results to. Remove useless ID from the view, for ID conflict reasons when several APL blocks are added to the same page. [v0.1.10 (2020-12-17)] Added

Add "Display results from another APL block, or a search block" feature. The APL block can display result pages from another APL block (installed on another page) or from a search block. Changed

Modify orderBy field comment in db.xml file. Fixed

Restore backward compatibility. Add checks for deleted attribute keys. [v0.1.9 (2020-12-11)] Added

Add "Sort by attribute keys" feature. Allows the user to sort result pages by any searchable attribute key. Make attribute keys display order modifiable. Allows the user to modify searchable attribute keys display order by dragging and dropping them upward or downward. Changed

Make "Search by multiple keywords" feature, optional. Use only the pagelist query builder to build up the search SQL query. Use setParameters() function to set SQL query parameters instead of str_replace() function. Replace "search_pages_by_keywords_attribute" with "search_pages_by_keyword_attribute" for backward compatibility reasons. Fixed

Restore "Enable Other Blocks to Filter This Page List" filtering option to the block type's form. Remove the CSRF token check. Check block ID parameter only when it's provided. Fix filterByKeywordArray() function. Fix "Search By Keywords" feature. Handle empty value for boolean attribute keys. Sanitize search keyword in the view. Fix filtering by two or more topics attribute keys. [v0.1.8 (2020-11-13)] Added

Add "Search by multiple keywords" feature. Allows the user to find pages that contains specified keywords (case-insensitive search). The user can specify whether they want the result pages to contain all keywords (conjunction AND) or any of them (disjunction OR). Changed

Save parent collection IDs as comma separated values instead of json arrays. [v0.1.7 (2020-11-04)] Added

Add "Filter by multiple parent pages" feature. Allows the user to find pages that are located beneath any of the specified parent pages. The user can specify several parent pages and remove them at will, but at least one parent page has to remain. [v0.1.6 (2020-10-01)] Fixed

Handle cross site scripting vulnerability. Fix cache settings. [v0.1.5 (2020-09-08)] Added

Add "Search by single keyword" feature. Allows the user to find pages that contains a specified keyword (case-insensitive search). Changed

Capitalize result pages title. Pass search keyword as a get parameter instead of post parameter. Fixed

Handle empty value for topics attribute keys. Remove unrelated dependencies.