Новости Joomla

0 Пользователей и 1 Гость просматривают эту тему.
  • 19 Ответов
  • 4692 Просмотров
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Open graph без плагина
« : 08.11.2015, 14:34:07 »
Хочу без использования сторонних плагинов вывести Open Graph protocol, чтобы данные генерировались в файле шаблона.
<meta property="og:title" content="" />
<meta property="og:type" content="website" />
<meta property="og:url" content="" />
<meta property="og:description" content=""/>
<meta property="og:image" content="" />

Подскажите как правильно заполнить  ^-^
И как сделать, чтобы выбиралось либо имеющееся изображение из материала, либо лого, если оно отсутствует?
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #1 : 08.11.2015, 14:58:47 »
Первые 4 тега можно вывести через шаблон. С изображением сложнее, но можно тоже через шаблон: название изображения привязать к Id, например img_115
« Последнее редактирование: 08.11.2015, 15:10:34 от Филипп Сорокин »
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #2 : 08.11.2015, 15:57:51 »
Нашел только такой вариант http://joomlaforum.ru/index.php/topic,275868.msg1545495.html#msg1545495
head.php ведь может быть заменен при обновлении?
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #3 : 08.11.2015, 17:08:25 »
Нашел только такой вариант http://joomlaforum.ru/index.php/topic,275868.msg1545495.html#msg1545495
head.php ведь может быть заменен при обновлении?
Обязательно будет заменён.
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #4 : 08.11.2015, 17:27:15 »
Обязательно будет заменён.
Подскажите, как правильно прописать переменные в шаблоне?
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #5 : 08.11.2015, 17:38:29 »
Подскажите, как правильно прописать переменные в шаблоне?
Вы с изображением определились? Вам подходит вариант с привязкой к имени изображения ID материала?
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #6 : 08.11.2015, 18:17:30 »
Вы с изображением определились? Вам подходит вариант с привязкой к имени изображения ID материала?
Да http://joxi.ru/12Mp9EOIpl99mJ. А если изображений нет, то подставить логотип.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #7 : 08.11.2015, 19:38:55 »
Да http://joxi.ru/12Mp9EOIpl99mJ. А если изображений нет, то подставить логотип.
Что именно да? Привязать имя файла изображения к ID?
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #8 : 08.11.2015, 20:41:14 »
Код: php
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$page_title = $doc->getTitle();
$page_uri = JURI::current();
$page_description = $doc->getDescription();
$article_id = $app->input->getInt('id', '');
$img_source = "images/img_{$article_id}.jpg";
$logo_source = "images/logo.jpg";

// Получаем компонент и его представление
$option = $app->input->getString('option', '');
$view = $app->input->getString('view', '');

// Проверяем, если изображение существует, и что текущая страница является именно материалом com_content
if ($option === "com_content" && $view === "article" && file_exists(JPATH_ROOT . DIRECTORY_SEPARATOR . $img_source)) {
    $meta_source = JURI::root(). $img_source;
} else {
    $meta_source = JURI::root(). $logo_source;
}
« Последнее редактирование: 07.03.2016, 12:45:25 от Филипп Сорокин »
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #9 : 09.11.2015, 10:04:51 »
Спс, работает, но с изображением не получается, как в выводе добавить две переменные: либо лого, либо изображение из материала?
<meta property="og:image" content="<?php echo $logo_source ?>" />
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #10 : 09.11.2015, 10:37:16 »
Код
$meta_source
Перед этим определите $logo_source и img_source
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #11 : 09.11.2015, 14:22:06 »
Можно еще глупый вопрос, $img_source = "images/stati/img_{$article_id}.jpg"; Т.е. мне в эту папку надо помещать изображения с названием img_idматериала.jpg?
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #12 : 09.11.2015, 14:43:27 »
Ну да! По крайней мере так задумано :)
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #13 : 10.11.2015, 16:37:41 »
удалено
« Последнее редактирование: 07.03.2016, 12:29:44 от Филипп Сорокин »
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #14 : 06.03.2016, 20:18:19 »
Нужна ваша помощь, хочу добавить проверку на наличие "Изображение полного текста материала", т.е. если оно есть, то подставляем его для OG, если нет, то $logo_source = "images/logo.jpg";
Спасибо  ^-^
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #15 : 07.03.2016, 12:31:10 »
Код: php
$app = JFactory::getApplication();
$doc = JFactory::getDocument();
$option = $app->input->getCmd('option');
$view = $app->input->getCmd('view');

if($option === "com_content" && $view === "article")
{
    $id = $app->input->getCmd('id');
    $article = JTable::getInstance("content");
    $article->load($id);
    $images = json_decode($article->get('images'));
    
    if (!empty(images->image_fulltext)) {
        // раз
    } else {
        // два
    }
}
« Последнее редактирование: 07.03.2016, 12:45:09 от Филипп Сорокин »
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #16 : 07.03.2016, 13:15:44 »
Пробую совместить ваш код с кодом от effrit из этой темы http://joomlaforum.ru/index.php/topic,322786.msg1614553.html#msg1614553, но пока лишь ошибка 500 на последнее условие проверки image_fulltext

Код
$article_id = (JRequest::getVar('option')==='com_content' && JRequest::getVar('view')==='article')? JRequest::getInt('id') : 0;
if($article_id){
$db = JFactory::getDbo();
$query = $db->getQuery(true)
->select($db->quoteName('images'))
->from($db->quoteName('#__content'))
->where('id = '. $db->Quote($article_id));

$db->setQuery($query);
$data = $db->loadResult();
$pics = json_decode($data);
echo $pics->image_fulltext;
}

$option = $app->input->getCmd('option');
$view = $app->input->getCmd('view');
if($option === "com_content" && $view === "article")
{
    $id = $app->input->getCmd('id');
    $article = JTable::getInstance("content");
    $article->load($id);
    $images = json_decode($article->get('images'));
    if (!empty(images->image_fulltext)) {
$logo_source = "images/sn.png";
    } else {
$images->image_fulltext;
    }
}
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #17 : 07.03.2016, 13:23:30 »
Ничего не понял. Что нужно сделать-то?
*

kik84

  • Завсегдатай
  • 1350
  • 64 / 4
Re: Open graph без плагина
« Ответ #18 : 07.03.2016, 13:50:59 »
Ничего не понял. Что нужно сделать-то?

Вытянуть изображение из fulltext материала и, если оно существует, подставить вместо $img_source = "images/img_{$article_id}.jpg";, если нет, то $logo_source.
*

Филипп Сорокин

  • Завсегдатай
  • 1918
  • 160 / 4
  • разработчик.москва
Re: Open graph без плагина
« Ответ #19 : 07.03.2016, 14:34:01 »
Решение я написал выше.
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

При обновлении плагина helix3 слетает сендвич в мобильном шаблоне

Автор gorbi_U

Ответов: 0
Просмотров: 1032
Последний ответ 25.01.2023, 10:55:44
от gorbi_U
Helix 3 : Open Graph - не та подпись к ссылке на сайт в FB и не отражается картинка и в ВК, и в FB

Автор lesovik

Ответов: 1
Просмотров: 1405
Последний ответ 23.01.2021, 18:46:15
от gorbi_U
Facebook игнорирует Open Graph

Автор Chez

Ответов: 4
Просмотров: 1135
Последний ответ 28.06.2016, 16:18:34
от kik84
Разметка Open Graph

Автор Mnojitell

Ответов: 6
Просмотров: 6897
Последний ответ 08.05.2016, 09:14:28
от Viktop
Не работает код плагина в Custom module

Автор marynel1548

Ответов: 3
Просмотров: 839
Последний ответ 02.04.2016, 14:33:55
от zikkuratvk