В продолжении постов про Facebook, адаптация компонента объявления

+27
2.31K
И так продолжаем.
В тему оформления вы уже внесли изменения как в данном посте:Первый шаг отсюда делать

Иллюстрация
Переходим к главному:

Открываем файл в компоненте доски объявлений \components\board\frontend.php
Ищем строку 192
  1. /////////////////////////////// VIEW ITEM ///////////////////////////////////////////////////////////////////////////////////////////
  2. if($do=='read'){
Это мы перешли к месту которое отвечает за чтение объявления.

ищем
  1. $inPage->addPathway($item['title']);
  2. $inPage->setTitle($item['title']);
  3. $inPage->setDescription($item['title']);
Сразу после вставляем:

  1.  
  2. //facebook og start
  3. //Данная функция обрезает слова по заданному лимиту до первого пробела.
  4. function crop_str($string, $limit)
  5. {
  6. $substring_limited = substr($string,0, $limit); //режем строку от 0 до limit
  7. return substr($substring_limited, 0, strrpos($substring_limited, ' ' )); //берем часть обрезанной строки от 0 до последнего пробела
  8. }
  9. $inPage->addHead('<meta property="og:type" content="website" />');
  10. $inPage->addHead('<meta property="og:title" content="'.htmlspecialchars($item['title']).'"/>');
  11. $inPage->addHead('<meta property="og:description" content="'.crop_str(htmlspecialchars(strip_tags($item['content'])),200).'"/>');
  12. $inPage->addHead('<meta property="og:url" content="'.HOST.'/board/read'.$item['id'].'.html" />');
  13. $inPage->addHead('<meta property="og:image" content="'.HOST.'/images/board/medium/'.$item['file'].'"/>');
  14. //facebok og end
  15.  
Сохраняем файл и как всегда тестим =)

Обратите внимание на функцию crop_str, она обрезает строку до N-символов не разрывая слов. Автор функции

Зато так посты содержательнее получаются :)

Если есть вопросы задавайте!
0
asa asa 10 лет назад #
Спасибо, огромное.

Данная функция обрезает слова по заданному лимиту до первого пробела.
А $limit где задается?
0
kirkr kirkr 10 лет назад #
200 это сколько символов, можно и в переменную превратить.
0
asa asa 10 лет назад #
Спасибо, увидел тут:
Код PHP:
  1. $inPage->addHead('<meta property="og:description" content="'.crop_str(htmlspecialchars(strip_tags($item['content'])),200).'"/>');
+3
lokanaft lokanaft 10 лет назад #
Морально поддержал первым плюсом за 2 часа v
0
lezginka.ru lezginka.ru 10 лет назад #
+
0
Dorimen Dorimen 10 лет назад #
Друзья, подскажите, пожалуйста, а как сделать, чтобы эти теги для фейсбука отображались и на главной странице сайта? Только так, чтобы на главной они были свои, а уже для внутренних страниц исходя из того, что мы тут выше написали. Спасибо.
0
Endroid Endroid 10 лет назад #
Свой template.php для главной
0
O3OH O3OH 10 лет назад #
По аналогии сделал для компонента "Фото" кому нужно забирайте..

Спойлер

Только остался вопрос, как сделать, что бы эти теги прописывало и на странице с фотографиями клубов??

Помогите решить эту задачку..
0
O3OH O3OH 10 лет назад #
Ой, забыл... та строчка, что закомменчена выглядет вот так..

Код PHP:
  1. $inPage->addHead('<meta property="og:url" content="'.HOST.'/photos/photo'.$photo['id'].'.html" />');
0
kirkr kirkr 10 лет назад #
смотрите функцию вывода одной фотки, туда и добавляйте по аналогии

Еще от автора

Политика безопасности и соглашение
Много споров было что в текст публиковать.
Google & Yandex баннеры в компоненты Banners
Добрый день! Была поставлена задача добавить возможность выводить через позиции {Баннер=номер позиции} баннеры гугла и яндекса.
Готовим сервер VDS Nginx + php7.0-fpm +MySQL для Inst2
Добрый день! Данная записка более чем напоминание о том, что не забыть при установке и настройке VDS Nginx + php7.0-fpm +MySQL для Inst2.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.