Файловый менеджер - Редактировать - /home/harasnat/www/horse/wp-content/plugins/admin-menu-editor/customizables/Controls/ControlGroup.php
Назад
<?php namespace YahnisElsts\AdminMenuEditor\Customizable\Controls; /** * A group of closely related controls. * * Often has only a single control for which it serves as a named wrapper. * This is particularly useful when controls are rendered in a two-column layout * like "title | control", or in a vertical layout that shows a title above each * control. */ class ControlGroup extends Container { use Toggleable; /** * @var string|null|false The ID of the HTML input element that should * be focused when the user clicks the title of this group. */ protected $labelFor = null; /** * @var bool Indicates if the control group wants its children to be rendered * in a vertical layout, stacked on top of each other. It's up to * the renderer to decide how to implement that. */ protected $isStacked = false; /** * @var bool|null Whether the control group wants its children to be wrapped in * a fieldset element. Set this to NULL to let the renderer decide. */ protected $wantsFieldset = null; protected $declinesExternalLineBreaks = true; /** * @var bool Whether the group wants to cover the entire width of the row * when using two-column "label | content" layout. */ protected $isFullWidth = false; public function __construct($title, $children = [], $params = []) { parent::__construct($title, $children, $params); if ( isset($params['stacked']) ) { $this->isStacked = boolval($params['stacked']); } if ( array_key_exists('fieldset', $params) ) { $this->wantsFieldset = $params['fieldset']; } if ( isset($params['fullWidth']) ) { $this->isFullWidth = boolval($params['fullWidth']); } $this->parseEnabledParam($params); } public function add($child) { if ( $child instanceof Section ) { throw new \InvalidArgumentException('Control groups cannot contain sections.'); } parent::add($child); } /** * @return string|null */ public function getLabelFor() { if ( $this->labelFor === null ) { //Automatically choose a target for the label only if there is exactly //one control that wants a label, and it is the first child. $target = null; $childNumber = 0; foreach ($this->children as $child) { $childNumber++; if ( ($child instanceof Control) && $child->parentLabelEnabled() ) { if ( $childNumber === 1 ) { $target = $child; } else { //Either this is not the first child, or more than one //child wants a label. $target = null; break; } } } if ( $target instanceof Control ) { $this->labelFor = $target->getPrimaryInputId(); } else { $this->labelFor = false; } } return $this->labelFor ?: null; } public function isStacked() { return $this->isStacked; } public function wantsFieldset() { return $this->wantsFieldset; } /** * @return bool */ public function isFullWidth() { return $this->isFullWidth; } protected function getJsUiElementType() { return 'control-group'; } public function serializeForJs() { $result = parent::serializeForJs(); $labelFor = $this->getLabelFor(); if ( $labelFor !== null ) { $result['labelFor'] = $labelFor; } return $result; } protected function getKoComponentParams() { $params = parent::getKoComponentParams(); $params['enabled'] = $this->serializeConditionForJs(); //The "full width" flag is not directly relevant to group components because they //are usually already full width, but it is sometimes used to disable the title //(e.g. for groups that contain only a single checkbox). if ( $this->isFullWidth() ) { $params['isFullWidth'] = true; $params['titleDisabled'] = true; } return $params; } }
| ver. 1.4 |
Github
|
.
| PHP 8.1.33 | Генерация страницы: 0 |
proxy
|
phpinfo
|
Настройка