Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Protected Attributes
Filter Class Reference
Inheritance diagram for Filter:
Filter Filter Template Zend_Filter_Interface FilterEmulate Filter

Public Member Functions

 __construct (\Magento\Framework\Stdlib\StringUtils $string, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Escaper $escaper, \Magento\Framework\View\Asset\Repository $assetRepo, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Variable\Model\VariableFactory $coreVariableFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\View\LayoutInterface $layout, \Magento\Framework\View\LayoutFactory $layoutFactory, \Magento\Framework\App\State $appState, \Magento\Framework\UrlInterface $urlModel, \Pelago\Emogrifier $emogrifier, \Magento\Variable\Model\Source\Variables $configVariables, \Magento\Widget\Model\ResourceModel\Widget $widgetResource, \Magento\Widget\Model\Widget $widget)
 
 generateWidget ($construction)
 
 widgetDirective ($construction)
 
 mediaDirective ($construction)
 
- Public Member Functions inherited from Filter
 setUseSessionInUrl ($flag)
 
 mediaDirective ($construction)
 
- Public Member Functions inherited from Filter
 __construct (\Magento\Framework\Stdlib\StringUtils $string, \Psr\Log\LoggerInterface $logger, \Magento\Framework\Escaper $escaper, \Magento\Framework\View\Asset\Repository $assetRepo, \Magento\Framework\App\Config\ScopeConfigInterface $scopeConfig, \Magento\Variable\Model\VariableFactory $coreVariableFactory, \Magento\Store\Model\StoreManagerInterface $storeManager, \Magento\Framework\View\LayoutInterface $layout, \Magento\Framework\View\LayoutFactory $layoutFactory, \Magento\Framework\App\State $appState, \Magento\Framework\UrlInterface $urlModel, \Pelago\Emogrifier $emogrifier, \Magento\Variable\Model\Source\Variables $configVariables, $variables=[], \Magento\Framework\Css\PreProcessor\Adapter\CssInliner $cssInliner=null)
 
 setUseAbsoluteLinks ($flag)
 
 setUseSessionInUrl ($flag)
 
 setPlainTemplateMode ($plainTemplateMode)
 
 isPlainTemplateMode ()
 
 setIsChildTemplate ($isChildTemplate)
 
 isChildTemplate ()
 
 setStoreId ($storeId)
 
 setDesignParams (array $designParams)
 
 getDesignParams ()
 
 getStoreId ()
 
 blockDirective ($construction)
 
 layoutDirective ($construction)
 
 viewDirective ($construction)
 
 mediaDirective ($construction)
 
 storeDirective ($construction)
 
 setUrlModel (\Magento\Framework\UrlInterface $urlModel)
 
 transDirective ($construction)
 
 varDirective ($construction)
 
 modifierEscape ($value, $type='html')
 
 protocolDirective ($construction)
 
 configDirective ($construction)
 
 customvarDirective ($construction)
 
 cssDirective ($construction)
 
 inlinecssDirective ($construction)
 
 getCssFilesContent (array $files)
 
 applyInlineCss ($html)
 
 filter ($value)
 
- Public Member Functions inherited from Template
 __construct (\Magento\Framework\Stdlib\StringUtils $string, $variables=[])
 
 setVariables (array $variables)
 
 setTemplateProcessor (callable $callback)
 
 getTemplateProcessor ()
 
 filter ($value)
 
 addAfterFilterCallback (callable $afterFilterCallback)
 
 varDirective ($construction)
 
 templateDirective ($construction)
 
 dependDirective ($construction)
 
 ifDirective ($construction)
 

Protected Attributes

 $_widgetResource
 
 $_widget
 
- Protected Attributes inherited from Filter
 $_useSessionInUrl
 
- Protected Attributes inherited from Filter
 $_useAbsoluteLinks = false
 
 $_useSessionInUrl = false
 
 $_modifiers = ['nl2br' => '']
 
 $_storeId
 
 $_assetRepo
 
 $_logger
 
 $_escaper
 
 $_variableFactory
 
 $_storeManager
 
 $_layout
 
 $_layoutFactory
 
 $_scopeConfig
 
 $_directiveParams
 
 $_appState
 
 $urlModel
 
 $emogrifier
 
 $configVariables
 
- Protected Attributes inherited from Template
 $templateVars = []
 
 $templateProcessor = null
 
 $string
 

Additional Inherited Members

- Data Fields inherited from Filter
const TRANS_DIRECTIVE_NAME = 'trans'
 
const TRANS_DIRECTIVE_REGEX = '/^\s*([\'"])([^\1]*?)(?<!\\\)\1(\s.*)?$/si'
 
- Data Fields inherited from Template
const CONSTRUCTION_PATTERN = '/{{([a-z]{0,10})(.*?)}}/si'
 
const CONSTRUCTION_DEPEND_PATTERN = '/{{depend\s*(.*?)}}(.*?){{\\/depend\s*}}/si'
 
const CONSTRUCTION_IF_PATTERN = '/{{if\s*(.*?)}}(.*?)({{else}}(.*?))?{{\\/if\s*}}/si'
 
const CONSTRUCTION_TEMPLATE_PATTERN = '/{{(template)(.*?)}}/si'
 
const LOOP_PATTERN = '/{{for(?P<loopItem>.*? )(in)(?P<loopData>.*?)}}(?P<loopBody>.*?){{\/for}}/si'
 
- Protected Member Functions inherited from Filter
 _getBlockParameters ($value)
 
 getTransParameters ($value)
 
 explodeModifiers ($value, $default=null)
 
 applyModifiers ($value, $modifiers)
 
 addInlineCssFile ($file)
 
 getInlineCssFiles ()
 
- Protected Member Functions inherited from Template
 afterFilter ($value)
 
 resetAfterFilterCallbacks ()
 
 getParameters ($value)
 
 getVariable ($value, $default='{no_value_defined}')
 
 getStackArgs ($stack)
 

Detailed Description

Template Filter Model @SuppressWarnings(PHPMD.CouplingBetweenObjects)

Definition at line 12 of file Filter.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( \Magento\Framework\Stdlib\StringUtils  $string,
\Psr\Log\LoggerInterface  $logger,
\Magento\Framework\Escaper  $escaper,
\Magento\Framework\View\Asset\Repository  $assetRepo,
\Magento\Framework\App\Config\ScopeConfigInterface  $scopeConfig,
\Magento\Variable\Model\VariableFactory  $coreVariableFactory,
\Magento\Store\Model\StoreManagerInterface  $storeManager,
\Magento\Framework\View\LayoutInterface  $layout,
\Magento\Framework\View\LayoutFactory  $layoutFactory,
\Magento\Framework\App\State  $appState,
\Magento\Framework\UrlInterface  $urlModel,
\Pelago\Emogrifier  $emogrifier,
\Magento\Variable\Model\Source\Variables  $configVariables,
\Magento\Widget\Model\ResourceModel\Widget  $widgetResource,
\Magento\Widget\Model\Widget  $widget 
)
Parameters
\Magento\Framework\Stdlib\StringUtils$string
\Psr\Log\LoggerInterface$logger
\Magento\Framework\Escaper$escaper
\Magento\Framework\View\Asset\Repository$assetRepo
\Magento\Framework\App\Config\ScopeConfigInterface$scopeConfig
\Magento\Variable\Model\VariableFactory$coreVariableFactory
\Magento\Store\Model\StoreManagerInterface$storeManager
\Magento\Framework\View\LayoutInterface$layout
\Magento\Framework\View\LayoutFactory$layoutFactory
\Magento\Framework\App\State$appState
\Magento\Framework\UrlInterface$urlModel
\Pelago\Emogrifier$emogrifier
\Magento\Variable\Model\Source\Variables$configVariables
\Magento\Widget\Model\ResourceModel\Widget$widgetResource
\Magento\Widget\Model\Widget$widget@SuppressWarnings(PHPMD.ExcessiveParameterList)

Definition at line 42 of file Filter.php.

58  {
59  $this->_widgetResource = $widgetResource;
60  $this->_widget = $widget;
61  parent::__construct(
62  $string,
63  $logger,
64  $escaper,
65  $assetRepo,
66  $scopeConfig,
67  $coreVariableFactory,
69  $layout,
70  $layoutFactory,
71  $appState,
72  $urlModel,
75  );
76  }
$storeManager
$logger

Member Function Documentation

◆ generateWidget()

generateWidget (   $construction)

General method for generate widget

Parameters
string[]$construction
Returns
string

Definition at line 84 of file Filter.php.

85  {
86  $params = $this->getParameters($construction[2]);
87 
88  // Determine what name block should have in layout
89  $name = null;
90  if (isset($params['name'])) {
91  $name = $params['name'];
92  }
93 
94  // validate required parameter type or id
95  if (!empty($params['type'])) {
96  $type = $params['type'];
97  } elseif (!empty($params['id'])) {
98  $preConfigured = $this->_widgetResource->loadPreconfiguredWidget($params['id']);
99  $type = $preConfigured['widget_type'];
100  $params = $preConfigured['parameters'];
101  } else {
102  return '';
103  }
104 
105  // we have no other way to avoid fatal errors for type like 'cms/widget__link', '_cms/widget_link' etc.
106  $xml = $this->_widget->getWidgetByClassType($type);
107  if ($xml === null) {
108  return '';
109  }
110 
111  // define widget block and check the type is instance of Widget Interface
112  $widget = $this->_layout->createBlock($type, $name, ['data' => $params]);
113  if (!$widget instanceof \Magento\Widget\Block\BlockInterface) {
114  return '';
115  }
116 
117  return $widget->toHtml();
118  }
elseif(isset( $params[ 'redirect_parent']))
Definition: iframe.phtml:17
$type
Definition: item.phtml:13
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]
Definition: website.php:18
if(!isset($_GET['name'])) $name
Definition: log.php:14

◆ mediaDirective()

mediaDirective (   $construction)

Retrieve media file URL directive

Parameters
string[]$construction
Returns
string

Definition at line 137 of file Filter.php.

138  {
139  $params = $this->getParameters(html_entity_decode($construction[2], ENT_QUOTES));
140  return $this->_storeManager->getStore()
141  ->getBaseUrl(\Magento\Framework\UrlInterface::URL_TYPE_MEDIA) . $params['url'];
142  }
$params[\Magento\Store\Model\StoreManager::PARAM_RUN_CODE]
Definition: website.php:18

◆ widgetDirective()

widgetDirective (   $construction)

Generate widget

Parameters
string[]$construction
Returns
string

Definition at line 126 of file Filter.php.

127  {
128  return $this->generateWidget($construction);
129  }

Field Documentation

◆ $_widget

$_widget
protected

Definition at line 22 of file Filter.php.

◆ $_widgetResource

$_widgetResource
protected

Definition at line 17 of file Filter.php.


The documentation for this class was generated from the following file: