Open Graph в MSE как реализовать?

fox

Новичок
Сообщения
10
Реакции
1
Баллы
3
Привет всем!
Возник вопрос разметки Open Graph в MSE, но не совсем понимаю как это реализовать, может кто-то поможет?
 

MSE-Script

Developer
Команда форума
Сообщения
861
Реакции
307
Баллы
63
Выложите код разметки, который нужно интегрировать.
 

fox

Новичок
Сообщения
10
Реакции
1
Баллы
3
Самую простую

<meta property="og:url" content="???" />
<meta property="og:type" content="website" />
<meta property="og:title" content="{$seo.title}" />
<meta property="og:description" content="{$seo.description}" />
<meta property="og:image" content="???" />
<meta property="vk:image" content="???" />
<meta name="twitter:image" content="???" />
 

fox

Новичок
Сообщения
10
Реакции
1
Баллы
3
Не пойму какую переменную использовать в <meta property="og:url" content="???" /> и <meta property="og:image" content="???" />
 

MSE-Script

Developer
Команда форума
Сообщения
861
Реакции
307
Баллы
63
HTML:
<meta property="og:url" content="https://{$smarty.server.HTTP_HOST}{$smarty.server.REQUEST_URI}" />
HTML:
{if $mse.controller === 'track'}
    <meta property="og:image" content="{$track.poster}" />
{elseif $mse.controller === 'search'}
    <meta property="og:image" content="{$results.tracks.0.poster_big}" />
{else}
    <meta property="og:image" content="/uploads/noalbum.png" />
{/if}
 
  • Like
Реакции: fox

ushkom

Активист
Клиент
Сообщения
125
Реакции
10
Баллы
18
Подскажите пожалуйста как реализовать тоже самое с статистическими страницами. Например:
Код:
{elseif $mse.controller === 'pages/radio'}
  <meta property="og:image" content="{$radio.poster}" />
И второе как указать использовать первое изображение если на страницах их несколько. Пример
Код:
{elseif $mse.controller === 'search'}
  <meta property="og:image" content="{$album.image.src|regex_replace:'#{size}#':'126x126'|regex_replace:'#http:#':''}" />
Большое спасибо.
 

MSE-Script

Developer
Команда форума
Сообщения
861
Реакции
307
Баллы
63
В статической страницы, при подключении файла header.tpl передайте URL вашей страницы:
PHP:
{include
      file="header.tpl"
      page_meta_title='ТОП-100 треков'
      page_meta_description='ТОП-100 треков бесплатно и без регистрации'
      page_meta_keywords=''
      canonical='https://{$smarty.server.HTTP_HOST}/page/top-100'
}
Внутри header.tpl используйте тег {$canonical|default:''}, в котором будет находится переданный при подключении URL.
 

ushkom

Активист
Клиент
Сообщения
125
Реакции
10
Баллы
18
Всем привет, подскажите пожалуйста в чем может быть причина. У меня в последней версии скрипта не срабатывает конструкция, хотя раньше работала:

Код:
{if $mse.controller === 'main'}
  <meta property="og:image" content="{$mse.template}/img/musicat.png" />
{elseif $mse.controller === 'track'}
  <meta property="og:image" content="{$track.poster}" />
{elseif $mse.controller === 'artist'}
  <meta property="og:image" content="{$artist.poster}" />
{elseif $mse.controller === 'album'}
  <meta property="og:image" content="{$album.poster}" />
{elseif $mse.controller === 'radio'}
  <meta property="og:image" content="{$radio.poster}" />
{elseif $mse.controller === 'search'}
  <meta property="og:image" content="{$results.tracks.0.poster_big}" />
{else}
  <meta property="og:image" content="/uploads/noalbum.png" />
{/if}
На всех страницах выводится <meta property="og:image" content="/uploads/noalbum.png" />

В чем может быть причина? Спасибо.
 
Последнее редактирование:

MSE-Script

Developer
Команда форума
Сообщения
861
Реакции
307
Баллы
63
Пропишите в любой файл шаблона, например footer.tpl тег $mse.controller и сверьте результат вывода с указанными в шаблоне данными. Скорее всего, дело в регистре.
 

ushkom

Активист
Клиент
Сообщения
125
Реакции
10
Баллы
18
На главной тег {$mse.controller} выводит Main


На странице трека выводит Track
 

MSE-Script

Developer
Команда форума
Сообщения
861
Реакции
307
Баллы
63
Нужно добавить в условие модификатор lower.

{$mse.controller|lower}

Или изменить регистр во второй части условия.
 

ushkom

Активист
Клиент
Сообщения
125
Реакции
10
Баллы
18
Большое спасибо, так {if $mse.controller|lower === 'main'} все отлично работает
 
Сверху