Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
45 commits
Select commit Hold shift + click to select a range
a8df0ac
Menu Items overview - Filter on Component - v2
pe7er Apr 27, 2020
aaf4ce3
Update administrator/components/com_menus/forms/filter_items.xml
pe7er Apr 27, 2020
608bc75
prepared statement
alikon Apr 30, 2020
d951e96
Merge pull request #1 from alikon/patch-109
pe7er Apr 30, 2020
d2745b6
Merge branch '4.0-dev' of github.com:pe7er/joomla-cms into menu-items…
pe7er May 12, 2020
1bd1c75
Menu Items overview - Filter on Component - v3
pe7er May 12, 2020
d62ff87
Menu Items overview - Filter on Component - v4
pe7er May 12, 2020
d01d134
Menu Items overview - Filter on Component - fix
pe7er May 12, 2020
9c7e460
Update administrator/components/com_menus/src/Model/ItemsModel.php
pe7er May 13, 2020
63a8feb
Update administrator/components/com_menus/src/Model/ItemsModel.php
pe7er May 13, 2020
5c65f1f
removed unnecessary if statement
pe7er May 13, 2020
5c79bab
fixed the removal of language file loading
pe7er May 13, 2020
fb902a4
fixed missing semicolon
pe7er May 13, 2020
585c185
Added currentMenuType context to the component filter
pe7er May 28, 2020
2f81c14
Update administrator/components/com_menus/src/Field/MenuItemByCompone…
pe7er Jun 2, 2020
459030d
Update administrator/components/com_menus/src/Field/MenuItemByCompone…
pe7er Jun 2, 2020
ff934de
Merge branch '4.0-dev' of https://github.com/joomla/joomla-cms into m…
pe7er Jun 2, 2020
6e60bd9
Merge remote-tracking branch 'origin/menu-items-overview-filter-on-co…
pe7er Jun 2, 2020
db564c5
Update administrator/components/com_menus/src/Field/MenuItemByCompone…
pe7er Aug 23, 2021
d7c0400
Update administrator/components/com_menus/src/Field/MenuItemByCompone…
pe7er Aug 23, 2021
ce3433d
Update administrator/components/com_menus/src/Field/MenuItemByCompone…
pe7er Aug 23, 2021
00b60d9
Update administrator/components/com_menus/src/Field/MenuItemByCompone…
pe7er Aug 23, 2021
f3baefd
fix update requested
alikon Mar 18, 2022
167b6dd
Merge pull request #2 from alikon/patch-2
pe7er Mar 19, 2022
8773bc9
Merge branch 'joomla:4.1-dev' into menu-items-overview-filter-on-comp…
pe7er Mar 19, 2022
438e91d
Merge branch '4.1-dev' into menu-items-overview-filter-on-component
richard67 Mar 20, 2022
f5f0e27
Merge branch '4.2-dev' into menu-items-overview-filter-on-component
richard67 Mar 20, 2022
11bca7e
Fix copyright year
richard67 Mar 20, 2022
3fd1c46
Merge branch '4.2-dev' into menu-items-overview-filter-on-component
roland-d Mar 24, 2022
40e3f99
Merge branch '4.2-dev' into menu-items-overview-filter-on-component
roland-d Mar 24, 2022
1a1dd62
Merge branch '4.2-dev' of github.com:pe7er/joomla-cms into menu-items…
pe7er Apr 26, 2022
2e1e1a9
[4.2] Menu Items overview - fix for uninstalled components #28832
pe7er Apr 26, 2022
ba915c0
Merge tag 'psr12anchor' into psr12/merge/28832
joomla-bot Jun 27, 2022
9cf5e0d
Phase 1 convert BRANCH to PSR-12
joomla-bot Jun 27, 2022
6a04c60
Phase 2 convert BRANCH to PSR-12
joomla-bot Jun 27, 2022
5c04b1d
Merge tag 'psr12final' into psr12/merge/28832
joomla-bot Jun 27, 2022
4412f3c
Merge branch '4.3-dev' into menu-items-overview-filter-on-component
obuisard Oct 23, 2022
68d25dd
Merge branch '4.3-dev' into menu-items-overview-filter-on-component
obuisard Oct 26, 2022
5436b5f
Update administrator/components/com_menus/src/Field/MenuItemByCompone…
obuisard Nov 8, 2022
cdb8e91
Update administrator/components/com_menus/src/Field/MenuItemByCompone…
obuisard Nov 8, 2022
85f9e23
Update administrator/components/com_menus/src/Field/MenuItemByCompone…
obuisard Nov 8, 2022
3f85c9e
Update administrator/components/com_menus/src/Field/MenuItemByCompone…
obuisard Nov 8, 2022
c58da43
Merge branch '4.3-dev' into menu-items-overview-filter-on-component
obuisard Nov 12, 2022
6e15f37
Merge branch '4.3-dev' into menu-items-overview-filter-on-component
rdeutz Nov 15, 2022
c01389d
Merge branch '4.3-dev' into menu-items-overview-filter-on-component
obuisard Jan 12, 2023
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions administrator/components/com_menus/forms/filter_items.xml
Original file line number Diff line number Diff line change
Expand Up @@ -79,6 +79,14 @@
>
<option value="">COM_MENUS_FILTER_SELECT_PARENT_MENU_ITEM</option>
</field>
<field
name="componentName"
type="MenuItemByComponent"
label="COM_MENUS_FILTER_COMPONENT_LABEL"
onchange="this.form.submit();"
>
<option value="">COM_MENUS_OPTION_SELECT_COMPONENT</option>
</field>
</fields>
<fields name="list">
<field
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,89 @@
<?php

/**
* @package Joomla.Administrator
* @subpackage com_menus
*
* @copyright (C) 2022 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/

namespace Joomla\Component\Menus\Administrator\Field;

use Joomla\CMS\Factory;
use Joomla\CMS\Form\Field\ListField;
use Joomla\CMS\Language\Text;
use Joomla\Utilities\ArrayHelper;

/**
* MenuItem by Component field.
*
* @since __DEPLOY_VERSION__
*/
class MenuItemByComponentField extends ListField
{
/**
* The form field type.
*
* @var string
* @since __DEPLOY_VERSION__
*/
protected $type = 'MenuItemByComponent';

/**
* Method to get a list of options for a list input.
*
* @return array An array of JHtml options.
*
* @since __DEPLOY_VERSION__
*/
protected function getOptions()
{
// Initialise variable.
$db = $this->getDatabase();
$options = [];

$query = $db->getQuery(true);
$query->select('DISTINCT ' . $db->quoteName('extensions.element'))
->from($db->quoteName('#__menu', 'menu'))
->join(
'INNER',
$db->quoteName('#__extensions', 'extensions'),
$db->quoteName('extensions.extension_id') . ' = ' . $db->quoteName('menu.component_id')
)
->where($db->quoteName('menu.client_id') . ' = 0')
->where($db->quoteName('menu.type') . ' = ' . $db->quote('component'))
->where($db->quoteName('extensions.extension_id') . ' IS NOT NULL');

$app = Factory::getApplication();
$currentMenuType = $app->getInput()->getString('menutype', $app->getUserState($this->context . '.menutype', ''));

if ($currentMenuType) {
$query->where($db->quoteName('menu.menutype') . ' = :currentMenuType')
->bind(':currentMenuType', $currentMenuType);
}

$db->setQuery($query);
$components = $db->loadColumn();

foreach ($components as $component) {
// Load component language files
$lang = $app->getLanguage();
$lang->load($component, JPATH_BASE)
|| $lang->load($component, JPATH_ADMINISTRATOR . '/components/' . $component);

$option = new \stdClass();
$option->value = $component;
$option->text = Text::_(strtoupper($component));
$options[] = $option;
}

// Sort by name
$options = ArrayHelper::sortObjects($options, 'text', 1, true, true);

// Merge any additional options in the XML definition.
$options = array_merge(parent::getOptions(), $options);

return $options;
}
}
7 changes: 7 additions & 0 deletions administrator/components/com_menus/src/Model/ItemsModel.php
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,7 @@ public function __construct($config = array(), MVCFactoryInterface $factory = nu
'parent_id', 'a.parent_id',
'publish_up', 'a.publish_up',
'publish_down', 'a.publish_down',
'e.element', 'componentName',
'a.ordering'
);

Expand Down Expand Up @@ -479,6 +480,12 @@ protected function getListQuery()
->bind(':language', $language);
}

// Filter on componentName
if ($componentName = $this->getState('filter.componentName')) {
$query->where($db->quoteName('e.element') . ' = :component')
->bind(':component', $componentName);
}

// Add the list ordering clause.
$query->order($db->escape($this->getState('list.ordering', 'a.lft')) . ' ' . $db->escape($this->getState('list.direction', 'ASC')));

Expand Down
1 change: 1 addition & 0 deletions administrator/language/en-GB/com_menus.ini
Original file line number Diff line number Diff line change
Expand Up @@ -45,6 +45,7 @@ COM_MENUS_FIELD_VALUE_NEW_WITH_NAV="New Window With Navigation"
COM_MENUS_FIELD_VALUE_NEW_WITHOUT_NAV="New Window Without Navigation"
COM_MENUS_FIELD_VALUE_PARENT="Parent"
COM_MENUS_FIELDSET_RULES="Permissions"
COM_MENUS_FILTER_COMPONENT_LABEL="Component"
COM_MENUS_FILTER_PARENT_MENU_ITEM_LABEL="Parent Menu Item"
COM_MENUS_FILTER_SELECT_PARENT_MENU_ITEM="- Select Parent Menu Item -"
COM_MENUS_GRID_UNSET_LANGUAGE="Unset %s Default"
Expand Down