127 $this->actionPool = $actionPoolFactory->
create([
'context' => $this]);
144 if (!isset($this->componentsDefinitions[
$name])) {
147 $this->componentsDefinitions[
$name] = array_merge(
148 $this->componentsDefinitions[
$name],
167 return $this->contentTypeFactory->get($this->
getAcceptType());
191 return $this->request->getParams();
199 return $this->request->getParam($key, $defaultValue);
216 return $filter[$key] ?? $defaultValue;
237 'type' =>
'dataSource',
240 'config' => array_replace_recursive(
241 array_merge($dataSource, $dataProviderConfig),
265 if (!empty($buttons)) {
266 foreach ($buttons as $buttonId => $buttonData) {
267 if (is_array($buttonData)) {
268 $buttons[$buttonId] = $buttonData;
272 $button = $this->buttonProviderFactory->create($buttonData);
273 $buttonData = $button->getButtonData();
275 unset($buttons[$buttonId]);
278 $buttons[$buttonId] = $buttonData;
280 uasort($buttons, [$this,
'sortButtons']);
282 foreach ($buttons as $buttonId => $buttonData) {
283 if (isset($buttonData[
'url'])) {
284 $buttonData[
'url'] = $this->
getUrl($buttonData[
'url']);
286 $this->actionPool->add($buttonId, $buttonData, $component);
300 $sortOrderA = isset($itemA[
'sort_order']) ? intval($itemA[
'sort_order']) : 0;
301 $sortOrderB = isset($itemB[
'sort_order']) ? intval($itemB[
'sort_order']) : 0;
303 return $sortOrderA - $sortOrderB;
312 if (!empty($htmlBlocks)) {
313 foreach ($htmlBlocks as $htmlBlock => $blockData) {
314 $this->actionPool->addHtmlBlock($blockData[
'type'], $blockData[
'name'], $blockData[
'arguments']);
326 $this->acceptType =
'html';
328 $rawAcceptType = $this->request->getHeader(
'Accept');
329 if (strpos($rawAcceptType,
'json') !==
false) {
330 $this->acceptType =
'json';
331 }
elseif (strpos($rawAcceptType,
'html') !==
false) {
332 $this->acceptType =
'html';
333 }
elseif (strpos($rawAcceptType,
'xml') !==
false) {
334 $this->acceptType =
'xml';
351 return $this->urlBuilder->getUrl($route,
$params);
364 if (!empty($childComponents)) {
365 foreach ($childComponents as $child) {
__construct(PageLayoutInterface $pageLayout, RequestInterface $request, ButtonProviderFactory $buttonProviderFactory, ActionPoolFactory $actionPoolFactory, ContentTypeFactory $contentTypeFactory, UrlInterface $urlBuilder, Processor $processor, UiComponentFactory $uiComponentFactory, DataProviderInterface $dataProvider=null, $namespace=null)
prepareDataSource(array $dataSource)
getRequestParam($key, $defaultValue=null)
elseif(isset( $params[ 'redirect_parent']))
addButtons(array $buttons, UiComponentInterface $component)
addComponentDefinition($name, array $config)
setDataProvider(DataProviderInterface $dataProvider)
getUrl($route='', $params=[])
sortButtons(array $itemA, array $itemB)
prepareDataSource(array & $data, UiComponentInterface $component)
getFilterParam($key, $defaultValue=null)
getComponentsDefinitions()
getDataSourceData(UiComponentInterface $component)
create(array $arguments=[])
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]
addHtmlBlocks(array $htmlBlocks, UiComponentInterface $component)
if(!isset($_GET['name'])) $name