Проблема мета тега при добавления имя блога

На моём header.tpl файле код так:

{if $oTopic}
<meta property="og:url" content="{$oTopic->getUrl()}" />              
<meta property="og:title" content="{$oTopic->getTitle()|escape:'html'}</a>  " />
<meta property="og:image" content="{$oTopic->getPreviewImageWebPath('100crop')}" />
{/if}


И на фасебук видно имя топика.

А хотел бы был видно как "имя топика / имя блога / имя сайта"

Изменил код так.

{if $oTopic}
<meta property="og:url" content="{$oTopic->getUrl()}" />              
<meta property="og:title" content="{$oTopic->getTitle()|escape:'html'}</a> / {$oBlog->getTitle()|escape:'html'} / имя сайта " />
<meta property="og:image" content="{$oTopic->getPreviewImageWebPath('100crop')}" />
{/if}


При входе на топик дает ошибку header.tpl файла и не откроется сам топик.

Как сделать что бы фейсбук прочитал топики как имя топика / имя блога / имя сайта?

20 комментариев

avatar
<meta property=«og:title» content="{$oTopic->getTitle()|escape:'html'}

Что закрывает тег ?
avatar
</a>
avatar
да, там явно не к месту, но косяки html-разметки не вызывают ошибок, при которых топик вообще не открывается
avatar
И как сделать что бы был имя топика / имя блога / имя сайта?
avatar
Подозреваю, что $oBlog в tpl-ке не определена, ее надо передать из экшена так же, как передается туда $oTopic
avatar
Его можно получить из $oTopic
avatar
Как получить?
avatar
$oTopic->getBlog()
avatar
для имени сайта лучше
<meta property="og:site_name" content="{cfg name='view.name'}"/>
avatar
preview лучше обернуть в:
{if $oTopic->getPreviewImageWebPath()}...</if>
avatar
спосиба за ответ.
avatar
Код написал так:
/>

Выдает такой ошибка на фейсбуке.
Имя топика / Warning: htmlspecialchars() expects parameter 1 to be string,…
avatar
Код написал так:
<meta property="og:title" content="{$oTopic->getTitle()|escape:'html'} / {$oTopic->getBlog()|escape:'html'}   " />


Выдает такой ошибка на фейсбуке.
Имя топика / Warning: htmlspecialchars() expects parameter 1 to be string,…
avatar
уберите |escape:'html'
avatar
Убирал |escape:'html'. Но не сработало.
Код вставил так.

<meta property="og:title" content="{$oTopic->getTitle()|escape:'html'} / {$oTopic->getBlog()}   " />


Пост не откравлся. Белый страница. Потом изменил код так.
<meta property="og:title" content="{$oTopic->getTitle()|escape:'html'} / $oTopic->getBlog()   " />


Пост открылся. Но на фейсбуке пост вглядеть так.

Имя топика / $oTopic->getBlog()
avatar
Экранируйте — {$oTopic->getBlog()}
avatar
<meta property="og:title" content="{$oTopic->getTitle()|escape:'html'} / {$oTopic->getBlog()}   " />


Пост не откравлся. Белый страница.
avatar
Оу, пардон — это же только объект. Вот так должно работать:
{$oTopic->getBlog()->getTitle()}
avatar
Спосиба за ответ! Сейчас сработало.
avatar
lifecom то что ты сказал сделал. Все ок. Работает хорошо.
Но после добавление етого мета тега на форуме не видно посты.
<meta property="og:title" content="{$oTopic->getTitle()|escape:'html'} / {$oTopic->getBlog()->getTitle()} blogu  " />


Одним словом. Конфликтуют етот мета тег с форумом.
Ошибка видно тоько на топиках форума.

<meta property="og:title" content="Sözlük / <br />
<b>Fatal error</b>:  Call to a member function getTitle() on a non-object in <b>/.../templates/compiled/atlass/e7c2b18c2895ba5083a5a974ddef3a1df312933b.file.header.tpl.php</b> on line <b>99</b><br />


Как удалил етот мета тег на форуме топики видно без проблем.

Как исправить? Что надо сделать что бы етот мета тег не конфликтовал с форумом.
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.