floor12/yii2-metamaster Быстрое добавление и редактирование SEO и OpenGraph мета-тегов.
Этот компонент генерирует мета-теги, Open Graph и Twitter-card теги в темплейте вашего Yii2 приложения.
Список генерируемых тегов:
- canonical
- head title
- meta description
- meta keywords
- og:sitename
- og:type
- og:url
- og:title
- og:description
- og:image
- og:image:width
- og:image:height
- twitter:card
- twitter:domain
- twitter:site
- twitter:description
- twitter:image:src
- itemprop:name
- itemprop:image
Установка
Просто выполните команду:
$ composer require floor12/yii2-metamaster
или допишите руками в секцию require вашего composer.json.
"floor12/yii2-metamaster": "dev-master"
После этого, необходимо подключить и сконфигурировать компонент в соответствующую секцию конфига приложения:
'components' => [
'metamaster' => [
'class' => 'floor12\metamaster\MetaMaster',
'siteName' => 'My cool new Web Site',
'defaultImage' => '/design/export_logo.png',
],
...
Аттрибуты:
siteName
- название проекта для Open Graph тегов;defaultImage
- относительный путь к дефолтной картинки для Open Graph тегов;web
- yii2 алиас к веб-директории приложения (по-умолчанию@app/web
)
Использование
Компонент можно вызвать в любом месте приложения через сервис-локатор Yii2, с помощью сеттеров установить необходимые данные и зарегистрировать методом
register(View $view)
, передав туда объект View.
Доступные сеттеры:
Metamaster::setSiteName(string $value)
Metamaster::setTitle(string $value)
Metamaster::setUrl(string $value)
Metamaster::setType(string $value)
Metamaster::setDescription(string $value)
Metamaster::setImage(string $relativePath, string $absolutePath = null)
Пример использования в контроллере:
public function actionIndex()
{
Yii::$app->metamaster
->setTitle("This is test page")
->setDescription("This is page description")
->setImage('/images/article/image.png')
->register(Yii::$app->getView());
return $this->render('index');
}
Вышеуказанный код сгенерируеют следующий код в темплейте:
<title>This is test page</title>
<link href="https://your-domain.com/site/index" rel="canonical">
<meta name="description" content="This is page description">
<meta property="og:site_name" content="My cool new Web Site">
<meta property="og:type" content="article">
<meta property="og:url" content="https://your-domain.com/site/index">
<meta name="twitter:card" content="summary">
<meta name="twitter:domain" content="https://your-domain.com">
<meta name="twitter:site" content="My cool new Web Site">
<meta property="og:title" content="This is test page">
<meta itemprop="name" content="This is test page">
<meta property="og:description" content="This is page description">
<meta name="twitter:description" content="This is page description">
<meta property="og:image" content="https://your-domain.com/images/article/image.png">
<meta property="twitter:image:src" content="https://your-domain.com/images/article/image.png">
<meta itemprop="image" content="https://your-domain.com/images/article/image.png">