__ __ __ __ _____ _ _ _____ _ _ _ | \/ | \ \ / / | __ \ (_) | | / ____| | | | | | \ / |_ __\ V / | |__) | __ ___ ____ _| |_ ___ | (___ | |__ ___| | | | |\/| | '__|> < | ___/ '__| \ \ / / _` | __/ _ \ \___ \| '_ \ / _ \ | | | | | | |_ / . \ | | | | | |\ V / (_| | || __/ ____) | | | | __/ | | |_| |_|_(_)_/ \_\ |_| |_| |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1 if you need WebShell for Seo everyday contact me on Telegram Telegram Address : @jackleetFor_More_Tools:
<?php
/**
* Joomla! Content Management System
*
* @copyright (C) 2018 Open Source Matters, Inc. <https://www.joomla.org>
* @license GNU General Public License version 2 or later; see LICENSE.txt
*/
namespace Joomla\CMS\Toolbar\Button;
use Joomla\CMS\Toolbar\ToolbarButton;
// phpcs:disable PSR1.Files.SideEffects
\defined('_JEXEC') or die;
// phpcs:enable PSR1.Files.SideEffects
/**
* Render dropdown buttons.
*
* @method self toggleSplit(bool $value)
* @method self toggleButtonClass(string $value)
* @method bool getToggleSplit()
* @method string getToggleButtonClass()
*
* @since 4.0.0
*/
class DropdownButton extends AbstractGroupButton
{
/**
* Property layout.
*
* @var string
* @since 4.0.0
*/
protected $layout = 'joomla.toolbar.dropdown';
/**
* Prepare options for this button.
*
* @param array $options The options about this button.
*
* @return void
*
* @since 4.0.0
* @throws \Exception
*/
protected function prepareOptions(array &$options)
{
parent::prepareOptions($options);
$childToolbar = $this->getChildToolbar();
$options['hasButtons'] = \count($childToolbar->getItems()) > 0;
$buttons = $childToolbar->getItems();
if ($options['hasButtons']) {
if ($this->getOption('toggleSplit', true)) {
/** @var ToolbarButton $button */
$button = array_shift($buttons);
$childToolbar->setItems($buttons);
$options['button'] = $button->render();
$options['caretClass'] = $options['toggleButtonClass'] ?? $button->getButtonClass();
$options['dropdownItems'] = $childToolbar->render(['is_child' => true]);
} else {
$options['dropdownItems'] = $childToolbar->render(['is_child' => true]);
$button = new BasicButton($this->getName(), $this->getText(), $options);
$options['button'] = $button
->setParent($this->parent)
->buttonClass($button->getButtonClass() . ' dropdown-toggle')
->attributes(
[
'data-bs-toggle' => 'dropdown',
'data-bs-target' => '#' . $this->fetchId(),
'aria-haspopup' => 'true',
'aria-expanded' => 'false',
]
)
->render();
}
}
}
/**
* Get the button CSS Id.
*
* @return string Button CSS Id
*
* @since 4.0.0
*/
protected function fetchId()
{
return $this->parent->getName() . '-dropdown-' . $this->getName();
}
/**
* Method to configure available option accessors.
*
* @return array
*
* @since 4.0.0
*/
protected static function getAccessors(): array
{
return array_merge(
parent::getAccessors(),
[
'toggleSplit',
'toggleButtonClass',
]
);
}
}
| Name | Type | Size | Permission | Actions |
|---|---|---|---|---|
| AbstractGroupButton.php | File | 1.55 KB | 0664 |
|
| BasicButton.php | File | 1.06 KB | 0664 |
|
| ConfirmButton.php | File | 3.02 KB | 0664 |
|
| CustomButton.php | File | 1.67 KB | 0664 |
|
| DropdownButton.php | File | 3.14 KB | 0664 |
|
| HelpButton.php | File | 3.23 KB | 0664 |
|
| InlinehelpButton.php | File | 2.67 KB | 0664 |
|
| LinkButton.php | File | 2.08 KB | 0664 |
|
| PopupButton.php | File | 7.39 KB | 0664 |
|
| SeparatorButton.php | File | 915 B | 0664 |
|
| StandardButton.php | File | 3.61 KB | 0664 |
|