Magento 2 Documentation  2.3
Documentation for Magento 2 CMS v2.3 (December 2018)
Public Member Functions | Data Fields | Protected Member Functions | Protected Attributes
Config Class Reference

Public Member Functions

 __construct (View\Asset\Repository $assetRepo, View\Asset\GroupedCollection $pageAssets, App\Config\ScopeConfigInterface $scopeConfig, View\Page\FaviconInterface $favicon, Title $title, \Magento\Framework\Locale\ResolverInterface $localeResolver, $isIncludesAvailable=true)
 
 setBuilder (View\Layout\BuilderInterface $builder)
 
 publicBuild ()
 
 getTitle ()
 
 setMetadata ($name, $content)
 
 getMetadata ()
 
 setContentType ($contentType)
 
 getContentType ()
 
 setMediaType ($mediaType)
 
 getMediaType ()
 
 setCharset ($charset)
 
 getCharset ()
 
 setDescription ($description)
 
 getDescription ()
 
 setMetaTitle ($title)
 
 getMetaTitle ()
 
 setKeywords ($keywords)
 
 getKeywords ()
 
 setRobots ($robots)
 
 getRobots ()
 
 getAssetCollection ()
 
 addPageAsset ($file, array $properties=[], $name=null)
 
 addRemotePageAsset ($url, $contentType, array $properties=[], $name=null)
 
 addRss ($title, $href)
 
 addBodyClass ($className)
 
 setElementAttribute ($elementType, $attribute, $value)
 
 getElementAttribute ($elementType, $attribute)
 
 getElementAttributes ($elementType)
 
 setPageLayout ($handle)
 
 getPageLayout ()
 
 getFaviconFile ()
 
 getDefaultFavicon ()
 
 getIncludes ()
 

Data Fields

const ELEMENT_TYPE_BODY = 'body'
 
const ELEMENT_TYPE_HTML = 'html'
 
const ELEMENT_TYPE_HEAD = 'head'
 
const META_DESCRIPTION = 'description'
 
const META_CONTENT_TYPE = 'content_type'
 
const META_MEDIA_TYPE = 'media_type'
 
const META_CHARSET = 'charset'
 
const META_TITLE = 'title'
 
const META_KEYWORDS = 'keywords'
 
const META_ROBOTS = 'robots'
 
const META_X_UI_COMPATIBLE = 'x_ua_compatible'
 
const BODY_ATTRIBUTE_CLASS = 'class'
 
const HTML_ATTRIBUTE_LANG = 'lang'
 

Protected Member Functions

 build ()
 

Protected Attributes

 $allowedTypes
 
 $title
 
 $assetRepo
 
 $pageAssets
 
 $elements = []
 
 $pageLayout
 
 $scopeConfig
 
 $favicon
 
 $localeResolver
 
 $builder
 
 $includes
 
 $metadata
 

Detailed Description

An API for page configuration

Has methods for managing properties specific to web pages:

@SuppressWarnings(PHPMD.CouplingBetweenObjects) @SuppressWarnings(PHPMD.TooManyFields)

@api

Since
100.0.2

Definition at line 29 of file Config.php.

Constructor & Destructor Documentation

◆ __construct()

__construct ( View\Asset\Repository  $assetRepo,
View\Asset\GroupedCollection  $pageAssets,
App\Config\ScopeConfigInterface  $scopeConfig,
View\Page\FaviconInterface  $favicon,
Title  $title,
\Magento\Framework\Locale\ResolverInterface  $localeResolver,
  $isIncludesAvailable = true 
)
Parameters
\Magento\Framework\View\Asset\Repository$assetRepo
\Magento\Framework\View\Asset\GroupedCollection$pageAssets
\Magento\Framework\App\Config\ScopeConfigInterface$scopeConfig
\Magento\Framework\View\Page\FaviconInterface$favicon
Title$title
\Magento\Framework\Locale\ResolverInterface$localeResolver
bool$isIncludesAvailable

Definition at line 169 of file Config.php.

177  {
178  $this->assetRepo = $assetRepo;
179  $this->pageAssets = $pageAssets;
180  $this->scopeConfig = $scopeConfig;
181  $this->favicon = $favicon;
182  $this->title = $title;
183  $this->localeResolver = $localeResolver;
184  $this->isIncludesAvailable = $isIncludesAvailable;
185  $this->setElementAttribute(
186  self::ELEMENT_TYPE_HTML,
187  self::HTML_ATTRIBUTE_LANG,
188  strstr($this->localeResolver->getLocale(), '_', true)
189  );
190  }
$title
Definition: default.phtml:14
setElementAttribute($elementType, $attribute, $value)
Definition: Config.php:554

Member Function Documentation

◆ addBodyClass()

addBodyClass (   $className)

Add CSS class to page body tag

Parameters
string$className
Returns
$this

Definition at line 530 of file Config.php.

531  {
532  $className = preg_replace('#[^a-z0-9-_]+#', '-', strtolower($className));
533  $bodyClasses = $this->getElementAttribute(self::ELEMENT_TYPE_BODY, self::BODY_ATTRIBUTE_CLASS);
534  $bodyClasses = $bodyClasses ? explode(' ', $bodyClasses) : [];
535  $bodyClasses[] = $className;
536  $bodyClasses = array_unique($bodyClasses);
537  $this->setElementAttribute(
538  self::ELEMENT_TYPE_BODY,
539  self::BODY_ATTRIBUTE_CLASS,
540  implode(' ', $bodyClasses)
541  );
542  return $this;
543  }
setElementAttribute($elementType, $attribute, $value)
Definition: Config.php:554
getElementAttribute($elementType, $attribute)
Definition: Config.php:573
if($currentSelectedMethod==$_code) $className
Definition: form.phtml:31

◆ addPageAsset()

addPageAsset (   $file,
array  $properties = [],
  $name = null 
)

Add asset to page content

Parameters
string$file
array$properties
string | null$name
Returns
$this

Definition at line 478 of file Config.php.

479  {
480  $asset = $this->assetRepo->createAsset($file);
481  $name = $name ?: $file;
482  $this->pageAssets->add($name, $asset, $properties);
483 
484  return $this;
485  }
$properties
Definition: categories.php:26
if(!isset($_GET['name'])) $name
Definition: log.php:14

◆ addRemotePageAsset()

addRemotePageAsset (   $url,
  $contentType,
array  $properties = [],
  $name = null 
)

Add remote page asset

Parameters
string$url
string$contentType
array$properties
string | null$name
Returns
$this

Definition at line 496 of file Config.php.

497  {
498  $remoteAsset = $this->assetRepo->createRemoteAsset($url, $contentType);
499  $name = $name ?: $url;
500  $this->pageAssets->add($name, $remoteAsset, $properties);
501 
502  return $this;
503  }
$properties
Definition: categories.php:26
if(!isset($_GET['name'])) $name
Definition: log.php:14

◆ addRss()

addRss (   $title,
  $href 
)

Add RSS element

Parameters
string$title
string$href
Returns
$this

Definition at line 512 of file Config.php.

513  {
514  $remoteAsset = $this->assetRepo->createRemoteAsset((string)$href, 'unknown');
515  $this->pageAssets->add(
516  "link/{$href}",
517  $remoteAsset,
518  ['attributes' => 'rel="alternate" type="application/rss+xml" title="' . $title . '"']
519  );
520 
521  return $this;
522  }
$title
Definition: default.phtml:14

◆ build()

build ( )
protected

Build page config from page configurations

Returns
void

Definition at line 209 of file Config.php.

210  {
211  if (!empty($this->builder)) {
212  $this->builder->build();
213  }
214  }

◆ getAssetCollection()

getAssetCollection ( )

Returns collection of the assets

Returns
\Magento\Framework\View\Asset\GroupedCollection

Definition at line 464 of file Config.php.

465  {
466  $this->build();
467  return $this->pageAssets;
468  }

◆ getCharset()

getCharset ( )

Retrieve Charset

Returns
string

Definition at line 332 of file Config.php.

333  {
334  $this->build();
335  if (empty($this->metadata[self::META_CHARSET])) {
336  $this->metadata[self::META_CHARSET] = $this->scopeConfig->getValue(
337  'design/head/default_charset',
338  \Magento\Store\Model\ScopeInterface::SCOPE_STORE
339  );
340  }
341  return $this->metadata[self::META_CHARSET];
342  }

◆ getContentType()

getContentType ( )

Retrieve Content Type

Returns
string

Definition at line 279 of file Config.php.

280  {
281  $this->build();
282  if (strtolower($this->metadata[self::META_CONTENT_TYPE]) === 'auto') {
283  $this->metadata[self::META_CONTENT_TYPE] = $this->getMediaType() . '; charset=' . $this->getCharset();
284  }
285  return $this->metadata[self::META_CONTENT_TYPE];
286  }

◆ getDefaultFavicon()

getDefaultFavicon ( )

Returns default favicon

Returns
string

Definition at line 628 of file Config.php.

629  {
630  return $this->favicon->getDefaultFavicon();
631  }

◆ getDescription()

getDescription ( )

Retrieve content for description tag

Returns
string

Definition at line 360 of file Config.php.

361  {
362  $this->build();
363  if (empty($this->metadata[self::META_DESCRIPTION])) {
364  $this->metadata[self::META_DESCRIPTION] = $this->scopeConfig->getValue(
365  'design/head/default_description',
366  \Magento\Store\Model\ScopeInterface::SCOPE_STORE
367  );
368  }
369  return $this->metadata[self::META_DESCRIPTION];
370  }

◆ getElementAttribute()

getElementAttribute (   $elementType,
  $attribute 
)

Retrieve additional element attribute

Parameters
string$elementType
string$attribute
Returns
null

Definition at line 573 of file Config.php.

574  {
575  $this->build();
576  return $this->elements[$elementType][$attribute] ?? null;
577  }

◆ getElementAttributes()

getElementAttributes (   $elementType)

Returns element attributes

Parameters
string$elementType
Returns
string[]

Definition at line 585 of file Config.php.

586  {
587  $this->build();
588  return $this->elements[$elementType] ?? [];
589  }

◆ getFaviconFile()

getFaviconFile ( )

Returns favicon file

Returns
string

Definition at line 618 of file Config.php.

619  {
620  return $this->favicon->getFaviconFile();
621  }

◆ getIncludes()

getIncludes ( )

Get miscellaneous scripts/styles to be included in head before head closing tag

Returns
string

Definition at line 638 of file Config.php.

639  {
640  if (empty($this->includes) && $this->isIncludesAvailable) {
641  $this->includes = $this->scopeConfig->getValue(
642  'design/head/includes',
643  \Magento\Store\Model\ScopeInterface::SCOPE_STORE
644  );
645  }
646  return $this->includes;
647  }

◆ getKeywords()

getKeywords ( )

Retrieve content for keywords tag

Returns
string

Definition at line 415 of file Config.php.

416  {
417  $this->build();
418  if (empty($this->metadata[self::META_KEYWORDS])) {
419  $this->metadata[self::META_KEYWORDS] = $this->scopeConfig->getValue(
420  'design/head/default_keywords',
421  \Magento\Store\Model\ScopeInterface::SCOPE_STORE
422  );
423  }
424  return $this->metadata[self::META_KEYWORDS];
425  }

◆ getMediaType()

getMediaType ( )

Retrieve Media Type

Returns
string

Definition at line 304 of file Config.php.

305  {
306  $this->build();
307  if (empty($this->metadata[self::META_MEDIA_TYPE])) {
308  $this->metadata[self::META_MEDIA_TYPE] = $this->scopeConfig->getValue(
309  'design/head/default_media_type',
310  \Magento\Store\Model\ScopeInterface::SCOPE_STORE
311  );
312  }
313  return $this->metadata[self::META_MEDIA_TYPE];
314  }

◆ getMetadata()

getMetadata ( )

Returns metadata

Returns
array

Definition at line 257 of file Config.php.

258  {
259  $this->build();
260  return $this->metadata;
261  }

◆ getMetaTitle()

getMetaTitle ( )

Retrieve meta title

Returns
string
Since
101.0.6

Definition at line 389 of file Config.php.

390  {
391  $this->build();
392  if (empty($this->metadata[self::META_TITLE])) {
393  return '';
394  }
395 
396  return $this->metadata[self::META_TITLE];
397  }

◆ getPageLayout()

getPageLayout ( )

Return current page layout

Returns
string

Definition at line 608 of file Config.php.

609  {
610  return $this->pageLayout;
611  }

◆ getRobots()

getRobots ( )

Retrieve URL to robots file

Returns
string
Exceptions

Definition at line 444 of file Config.php.

445  {
446  if ($this->getAreaResolver()->getAreaCode() !== Area::AREA_FRONTEND) {
447  return 'NOINDEX,NOFOLLOW';
448  }
449  $this->build();
450  if (empty($this->metadata[self::META_ROBOTS])) {
451  $this->metadata[self::META_ROBOTS] = $this->scopeConfig->getValue(
452  'design/search_engine_robots/default_robots',
453  \Magento\Store\Model\ScopeInterface::SCOPE_STORE
454  );
455  }
456  return $this->metadata[self::META_ROBOTS];
457  }

◆ getTitle()

getTitle ( )

Retrieve title element text (encoded)

Returns
Title

Definition at line 233 of file Config.php.

234  {
235  $this->build();
236  return $this->title;
237  }
$title
Definition: default.phtml:14

◆ publicBuild()

publicBuild ( )

Public build action

TODO Will be eliminated in MAGETWO-28359

Returns
void

Definition at line 223 of file Config.php.

224  {
225  $this->build();
226  }

◆ setBuilder()

setBuilder ( View\Layout\BuilderInterface  $builder)

Set builder.

Parameters
View\Layout\BuilderInterface$builder
Returns
$this

Definition at line 198 of file Config.php.

199  {
200  $this->builder = $builder;
201  return $this;
202  }

◆ setCharset()

setCharset (   $charset)

Set charset

Parameters
string$charset
Returns
void

Definition at line 322 of file Config.php.

323  {
324  $this->setMetadata(self::META_CHARSET, $charset);
325  }
setMetadata($name, $content)
Definition: Config.php:246

◆ setContentType()

setContentType (   $contentType)

Set content type

Parameters
string$contentType
Returns
void

Definition at line 269 of file Config.php.

270  {
271  $this->setMetadata(self::META_CONTENT_TYPE, $contentType);
272  }
setMetadata($name, $content)
Definition: Config.php:246

◆ setDescription()

setDescription (   $description)

Set description

Parameters
string$description
Returns
void

Definition at line 350 of file Config.php.

351  {
352  $this->setMetadata(self::META_DESCRIPTION, $description);
353  }
setMetadata($name, $content)
Definition: Config.php:246

◆ setElementAttribute()

setElementAttribute (   $elementType,
  $attribute,
  $value 
)

Set additional element attribute

Parameters
string$elementType
string$attribute
mixed$value
Returns
$this
Exceptions

Definition at line 554 of file Config.php.

555  {
556  $this->build();
557  if (array_search($elementType, $this->allowedTypes) === false) {
558  throw new \Magento\Framework\Exception\LocalizedException(
559  new \Magento\Framework\Phrase('%1 isn\'t allowed', [$elementType])
560  );
561  }
562  $this->elements[$elementType][$attribute] = $value;
563  return $this;
564  }
$value
Definition: gender.phtml:16

◆ setKeywords()

setKeywords (   $keywords)

Set keywords

Parameters
string$keywords
Returns
void

Definition at line 405 of file Config.php.

406  {
407  $this->setMetadata(self::META_KEYWORDS, $keywords);
408  }
setMetadata($name, $content)
Definition: Config.php:246

◆ setMediaType()

setMediaType (   $mediaType)

Set media type

Parameters
string$mediaType
Returns
void

Definition at line 294 of file Config.php.

295  {
296  $this->setMetadata(self::META_MEDIA_TYPE, $mediaType);
297  }
setMetadata($name, $content)
Definition: Config.php:246

◆ setMetadata()

setMetadata (   $name,
  $content 
)

Set metadata.

Parameters
string$name
string$content
Returns
void

Definition at line 246 of file Config.php.

247  {
248  $this->build();
249  $this->metadata[$name] = htmlspecialchars($content);
250  }
if(!isset($_GET['name'])) $name
Definition: log.php:14

◆ setMetaTitle()

setMetaTitle (   $title)

Set meta title

Parameters
string$title
Since
101.0.6

Definition at line 378 of file Config.php.

379  {
380  $this->setMetadata(self::META_TITLE, $title);
381  }
$title
Definition: default.phtml:14
setMetadata($name, $content)
Definition: Config.php:246

◆ setPageLayout()

setPageLayout (   $handle)

Set page layout

Parameters
string$handle
Returns
$this

Definition at line 597 of file Config.php.

598  {
599  $this->pageLayout = $handle;
600  return $this;
601  }
$handle

◆ setRobots()

setRobots (   $robots)

Set robots content

Parameters
string$robots
Returns
void

Definition at line 433 of file Config.php.

434  {
435  $this->setMetadata(self::META_ROBOTS, $robots);
436  }
setMetadata($name, $content)
Definition: Config.php:246

Field Documentation

◆ $allowedTypes

$allowedTypes
protected
Initial value:
= [
self::ELEMENT_TYPE_BODY,
self::ELEMENT_TYPE_HTML,
self::ELEMENT_TYPE_HEAD,
]

Definition at line 63 of file Config.php.

◆ $assetRepo

$assetRepo
protected

Definition at line 79 of file Config.php.

◆ $builder

$builder
protected

Definition at line 114 of file Config.php.

◆ $elements

$elements = []
protected

Definition at line 89 of file Config.php.

◆ $favicon

$favicon
protected

Definition at line 104 of file Config.php.

◆ $includes

$includes
protected

Definition at line 119 of file Config.php.

◆ $localeResolver

$localeResolver
protected

Definition at line 109 of file Config.php.

◆ $metadata

$metadata
protected
Initial value:
= [
'charset' => null,
'media_type' => null,
'content_type' => null,
'description' => null,
'keywords' => null,
'robots' => null,
'title' => null,
]

Definition at line 124 of file Config.php.

◆ $pageAssets

$pageAssets
protected

Definition at line 84 of file Config.php.

◆ $pageLayout

$pageLayout
protected

Definition at line 94 of file Config.php.

◆ $scopeConfig

$scopeConfig
protected

Definition at line 99 of file Config.php.

◆ $title

$title
protected

Definition at line 72 of file Config.php.

◆ BODY_ATTRIBUTE_CLASS

const BODY_ATTRIBUTE_CLASS = 'class'

Constant body attribute class

Definition at line 51 of file Config.php.

◆ ELEMENT_TYPE_BODY

const ELEMENT_TYPE_BODY = 'body'

#+ Constants of available types

Definition at line 34 of file Config.php.

◆ ELEMENT_TYPE_HEAD

const ELEMENT_TYPE_HEAD = 'head'

Definition at line 36 of file Config.php.

◆ ELEMENT_TYPE_HTML

const ELEMENT_TYPE_HTML = 'html'

Definition at line 35 of file Config.php.

◆ HTML_ATTRIBUTE_LANG

const HTML_ATTRIBUTE_LANG = 'lang'

Constant html language attribute

Definition at line 56 of file Config.php.

◆ META_CHARSET

const META_CHARSET = 'charset'

Definition at line 42 of file Config.php.

◆ META_CONTENT_TYPE

const META_CONTENT_TYPE = 'content_type'

Definition at line 40 of file Config.php.

◆ META_DESCRIPTION

const META_DESCRIPTION = 'description'

#-

Definition at line 39 of file Config.php.

◆ META_KEYWORDS

const META_KEYWORDS = 'keywords'

Definition at line 44 of file Config.php.

◆ META_MEDIA_TYPE

const META_MEDIA_TYPE = 'media_type'

Definition at line 41 of file Config.php.

◆ META_ROBOTS

const META_ROBOTS = 'robots'

Definition at line 45 of file Config.php.

◆ META_TITLE

const META_TITLE = 'title'

Definition at line 43 of file Config.php.

◆ META_X_UI_COMPATIBLE

const META_X_UI_COMPATIBLE = 'x_ua_compatible'

Definition at line 46 of file Config.php.


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