![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/rentpix.corals.io/Corals/modules/CMS/Classes/ |
<?php namespace Corals\Modules\CMS\Classes; use Corals\Modules\CMS\Contracts\TwitterCards as TwitterCardsContract; class TwitterCards implements TwitterCardsContract { /** * @var string */ protected $prefix = 'twitter:'; /** * @var array */ protected $html = []; /** * @var array */ protected $values = []; /** * @var array */ protected $images = []; /** * @param array $defaults */ public function __construct(array $defaults = []) { $this->values = $defaults; } /** * @param bool $minify * @return string */ public function generate($minify = false) { $this->eachValue($this->values); $this->eachValue($this->images, 'images'); return ($minify) ? implode('', $this->html) : implode(PHP_EOL, $this->html); } /** * Make tags. * * @param array $values * @param null|string $prefix * * @internal param array $properties */ protected function eachValue(array $values, $prefix = null) { foreach ($values as $key => $value) { if (is_array($value)) { $this->eachValue($value, $key); } else { if (is_numeric($key)) { $key = $prefix.$key; } elseif (is_string($prefix)) { $key = $prefix.':'.$key; } $this->html[] = $this->makeTag($key, $value); } } } /** * @param string $key * @param $value * @return string * * @internal param string $values */ private function makeTag($key, $value) { return '<meta name="'.$this->prefix.strip_tags($key).'" content="'.strip_tags($value).'" />'; } /** * @param string $key * @param string|array $value * @return TwitterCardsContract */ public function addValue($key, $value) { $this->values[$key] = $value; return $this; } /** * @param string $title * @return TwitterCardsContract */ public function setTitle($title) { return $this->addValue('title', $title); } /** * @param string $type * @return TwitterCardsContract */ public function setType($type) { return $this->addValue('card', $type); } /** * @param string $site * @return TwitterCardsContract */ public function setSite($site) { return $this->addValue('site', $site); } /** * @param string $description * @return TwitterCardsContract */ public function setDescription($description) { return $this->addValue('description', htmlentities($description, ENT_COMPAT, 'UTF-8')); } /** * @param string $url * @return TwitterCardsContract */ public function setUrl($url) { return $this->addValue('url', $url); } /** * @param string|array $image * @return TwitterCardsContract * * @deprecated use setImage($image) instead */ public function addImage($image) { foreach ((array) $image as $url) { $this->images[] = $url; } return $this; } /** * @param string|array $images * @return TwitterCardsContract * * @deprecated use setImage($image) instead */ public function setImages($images) { $this->images = []; return $this->addImage($images); } /** * @param $image * @return TwitterCardsContract */ public function setImage($image) { return $this->addValue('image', $image); } }