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

Wak

  • Осваиваюсь на форуме
  • 58
  • 0 / 0
Есть такой плагин Easy OG. Вроде не плохой, работает, но есть один косяк:
На страницах категорий в теге og title пишет название одной и той же статьи. На страницах статей всё ок -- в этом теге отображаются заголовки этих статей. Полез в код
Спойлер
[свернуть]
Насколько я понял, за заголовок там отвечает вот этот код:
Код
$article_title = JTable::getInstance("content");
$article_title->load(JRequest::getInt("id"));
$easyopengraphTitle = $article_title->title;
$document->addCustomTag('<meta property="og:title" content="'.$easyopengraphTitle.'"/>');
Как его заставить правильно работать на категориях, а не только на статьях?
*

Tuzemec

  • Давно я тут
  • 246
  • 28 / 0
  • Ня!
Re: Вопрос по плагину Easy Open Graph
« Ответ #1 : 08.09.2017, 13:51:56 »
ИМХО лучше отказаться от плагина и прописать эти теги в шаблоне ручками, т.к. работает плагин только с "com_content". Для пользователей "com_k2", "com_virtuemart", "com_jshopping" плагин будет бесполезен. По этой причине, лучше не лениться и прописать всё в шаблоне каждого компонента.
Каждый ваш клик помогает заработать сыну на конфеты
Не дайте ребенку остаться без сладкого! Сделай ТЫЦ!
*

Stasweb

  • Живу я здесь
  • 1113
  • 19 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #2 : 08.09.2017, 14:04:27 »
лучше отказаться от плагина и прописать эти теги в шаблоне ручками
Согласен
Вот делал для вирта
Код

$og_title = $this->product->customtitle;
$og_price_amount = $this->product->prices['salesPrice'];
$og_url = JURI::current();
$og_desc = $this->product->metadesc;
$og_image =  JRoute::_(JURI::base().$this->product->images[0]->file_url);
$app =& JFactory::getApplication();
$doc = JFactory::getDocument();
$doc->addCustomTag('<meta property="og:type" content="product"/>');
$doc->addCustomTag('<meta property="og:title" content="'.$og_title.'"/>');
$doc->addCustomTag('<meta property="og:price:amount" content="'.$og_price_amount.'"/>');
$doc->addCustomTag('<meta property="og:price:currency" content="тенге ₸"/>');
$doc->addCustomTag('<meta property="og:site_name" content="site_name"/>');
$doc->addCustomTag('<meta property="og:url" content="'.$og_url.'"/>');
$doc->addCustomTag('<meta property="og:description" content="'.$og_desc.'"/>');
$doc->addCustomTag('<meta property="og:image" content="'.$og_image.'"/>');

Все просто и работает
*

Mnojitell

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #3 : 10.09.2017, 11:24:59 »
ИМХО лучше отказаться от плагина и прописать эти теги в шаблоне ручками
Если вы такой умный, то подскажите, как прописать код для og:image? Дело то вовсе не в лени.
Чем дальше в лес, тем больше дров!
*

Stasweb

  • Живу я здесь
  • 1113
  • 19 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #4 : 11.09.2017, 06:21:33 »
Вот же последняя строчка для og:image
Код
$doc->addCustomTag('<meta property="og:image" content="'.$og_image.'"/>');
Вот ее переменная
Код
$og_image =  JRoute::_(JURI::base().$this->product->images[0]->file_url);
Смотрите как у вас выводится картинка и замените на свое.
Вместо $this->product->images[0]->file_url ваша переменная
Картинка скорее всего в $this вот и поставьте в /components/com_content/views/category/tmpl/default.php
Код
<?php
echo '<pre>';
 print_r($this);
echo '</pre>';
?>
Посмотрите что отдаст, там и картинка будет.
« Последнее редактирование: 11.09.2017, 06:26:48 от Stasweb »
*

Tuzemec

  • Давно я тут
  • 246
  • 28 / 0
  • Ня!
Re: Вопрос по плагину Easy Open Graph
« Ответ #5 : 14.09.2017, 22:24:32 »
...там и картинка будет.
Если она в параметрах категории указана... ::)
Каждый ваш клик помогает заработать сыну на конфеты
Не дайте ребенку остаться без сладкого! Сделай ТЫЦ!
*

Mnojitell

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #6 : 15.09.2017, 04:34:17 »
Не получается. В браузере выводится ссылка на главную. В переменной заменял product на item, потому что разметка нужна для templates/шаблон/html/com_content/article/default.php
Код файла страницы есть в этой теме:
Код PHP для заполнения тега meta property og:image
Чем дальше в лес, тем больше дров!
*

Tuzemec

  • Давно я тут
  • 246
  • 28 / 0
  • Ня!
Re: Вопрос по плагину Easy Open Graph
« Ответ #7 : 15.09.2017, 06:06:14 »
Так og выводит или выводит не правильно? По ссылке приведен код страницы материала, а не категории.
Вот вам код который вставить нужно в "ваш_шаблон/html/com_content/category/blog.php" ну или "components/com_content/view/category/blog.php"
В админке, в параметрах категории нужно указывать фото, чтоб оно подхватывалось!
Код
$doc = JFactory::getDocument();
$app = JFactory::getApplication();

$og_title = $this->category->title;
$og_url = JURI::current();
$og_desc = $this->metadesc;
$og_image =  JRoute::_($this->category->getParams()->get('image'));

$doc->addCustomTag('<meta property="og:type" content="category"/>');
$doc->addCustomTag('<meta property="og:title" content="'.$og_title.'"/>');
$doc->addCustomTag('<meta property="og:site_name" content="site_name"/>');
$doc->addCustomTag('<meta property="og:url" content="'.$og_url.'"/>');
$doc->addCustomTag('<meta property="og:description" content="'.$og_desc.'"/>');
$doc->addCustomTag('<meta property="og:image" content="'.$og_image.'"/>');
Каждый ваш клик помогает заработать сыну на конфеты
Не дайте ребенку остаться без сладкого! Сделай ТЫЦ!
*

Mnojitell

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #8 : 15.09.2017, 07:26:28 »
Разметка Open Graph нужна именно для материалов, а не для категорий. Чтобы посты материалов в соц.сетях отображались с изображениями. Плагин Easy Open Graph с этим прекрасно справляется, но создаёт теги open graph на всех страницах, при чём в категориях и на главной неправильные. Поэтому и необходимо прописать теги разметки вручную только для templates/шаблон/html/com_content/article/default.php, тогда плагин можно будет удалить вообще.   
« Последнее редактирование: 15.09.2017, 07:30:34 от Mnojitell »
Чем дальше в лес, тем больше дров!
*

Mnojitell

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #9 : 15.09.2017, 07:48:00 »
Я не могу задать переменную только для og:image. Все остальные параметры соц. сети берут правильно, но урл изображения не видят вообще.
Создать правильную переменную нужно из этого куска кода:
   <?php // Content is generated by content plugin event "onContentBeforeDisplay" ?>
   <?php echo $this->item->event->beforeDisplayContent; ?>

   <?php if (isset($urls) && ((!empty($urls->urls_position) && ($urls->urls_position == '0')) || ($params->get('urls_position') == '0' && empty($urls-
        >urls_position)))
      || (empty($urls->urls_position) && (!$params->get('urls_position')))) : ?>
   <?php echo $this->loadTemplate('links'); ?>
   <?php endif; ?>
        <?php if ($params->get('access-view')) : ?>
        <?php echo JLayoutHelper::render('joomla.content.full_image', $this->item); ?>
        <?php
        if (!empty($this->item->pagination) && $this->item->pagination && !$this->item->paginationposition && !$this->item->paginationrelative) :
        echo $this->item->pagination;
        endif;
        ?>
Чем дальше в лес, тем больше дров!
*

Tuzemec

  • Давно я тут
  • 246
  • 28 / 0
  • Ня!
Re: Вопрос по плагину Easy Open Graph
« Ответ #10 : 15.09.2017, 09:00:43 »
Ну так переопределите переменную $og_image на значение интро_текста или фулл_текста.
Писали же выше... вывести значения всех переменных материала через
Код
<?php
echo '<pre>';
 print_r($this);
echo '</pre>';
?>
Из полученного увидим объект, в котором хранится ссылка на фото и вообще, узнаем определено значение для фото материала.
Код
$og_image =  JRoute::_($images->image_fulltext);
или
Код
$og_image =  JRoute::_($images->image_intro);
Да и вообще в материале на вкладке "Изображения и ссылки" указаны "Изображение полного текста материала" или "Изображение для вступительного текста материала"? Откуда будет браться изображение? Из текста материала что ли?
Каждый ваш клик помогает заработать сыну на конфеты
Не дайте ребенку остаться без сладкого! Сделай ТЫЦ!
*

Mnojitell

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #11 : 15.09.2017, 09:09:27 »
А куда этот код вставить ?
<?php
echo '<pre>';
 print_r($this);
echo '</pre>';
?>
Перед значением переменной?
Чем дальше в лес, тем больше дров!
*

Mnojitell

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #12 : 15.09.2017, 09:16:45 »
Спойлер
[свернуть]
« Последнее редактирование: 15.09.2017, 10:02:21 от Mnojitell »
Чем дальше в лес, тем больше дров!
*

Tuzemec

  • Давно я тут
  • 246
  • 28 / 0
  • Ня!
Re: Вопрос по плагину Easy Open Graph
« Ответ #13 : 15.09.2017, 09:57:11 »
Ну во-первых, код, что в предыдущем сообщении поместите в спойлер (кнопочка [Sp] над смайлами). Уж больно много букв в сообщении - не красиво так делать.
Во-вторых, в коде что выше все указали верно.
В третьих, ответьте на вопрос:
на вкладке "Изображения и ссылки" указаны "Изображение полного текста материала" или "Изображение для вступительного текста материала"?
Каждый ваш клик помогает заработать сыну на конфеты
Не дайте ребенку остаться без сладкого! Сделай ТЫЦ!
*

Mnojitell

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #14 : 15.09.2017, 11:14:23 »
Вообще ничего не указано. Показано только, что изображение находится в  [introtext] => <img src="/images/
А параметры указаны эти:
[show_urls_images_frontend] => 0
[show_urls_images_backend] => 0
Чем дальше в лес, тем больше дров!
*

Mnojitell

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #15 : 15.09.2017, 11:55:18 »
Пробовал приписывать image_fulltext и image_introext. Бесполезно. Причём плагин правильно берёт картинку, когда указан вариант introtext image. Вод код файла easyopengraph.php:
Спойлер
[свернуть]
Чем дальше в лес, тем больше дров!
*

Stasweb

  • Живу я здесь
  • 1113
  • 19 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #16 : 15.09.2017, 11:59:59 »
В самый низ документа поставьте
Цитировать
<?php
echo '<pre>';
 print_r($this);
echo '</pre>';
?>

Пробовал приписывать image_fulltext и image_introext. Бесполезно
а как писали покажите
*

Mnojitell

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #17 : 15.09.2017, 12:03:08 »
$og_image =  JRoute::_($images->image_introext);
Чем дальше в лес, тем больше дров!
*

Stasweb

  • Живу я здесь
  • 1113
  • 19 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #18 : 15.09.2017, 12:08:50 »
А так
Код
$og_image = $this->item->introtext;
*

Mnojitell

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #19 : 15.09.2017, 12:10:09 »
Сейчас попробую.
Чем дальше в лес, тем больше дров!
*

Mnojitell

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #20 : 15.09.2017, 12:18:56 »
В браузере показывается ="og:image" content="<img src="/images/" alt="" itemprop="image" style="width: 100%;" /> дальше весь текст.
Чем дальше в лес, тем больше дров!
*

Mnojitell

  • Осваиваюсь на форуме
  • 43
  • 0 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #21 : 15.09.2017, 12:20:21 »
Сейчас попробую вариант $og_image = $this->item->introtext->image;
Чем дальше в лес, тем больше дров!
*

Stasweb

  • Живу я здесь
  • 1113
  • 19 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #22 : 15.09.2017, 12:32:42 »
Попробуйте поискать в
Код
<?php
echo '<pre>';
 print_r($this->item);
echo '</pre>';
?>
Может там есть

*

Tuzemec

  • Давно я тут
  • 246
  • 28 / 0
  • Ня!
Re: Вопрос по плагину Easy Open Graph
« Ответ #23 : 15.09.2017, 14:40:12 »

Еще раз спрашиваю. Вот как на фото подчеркнуто, в этом поле в материале что-нибудь есть? Ссылка на фото материала указана в материале?
У меня print_r($this) выводит
Код
.......
[publish_down] => 0000-00-00 00:00:00
           [images] => {"image_intro":"\/images\/articles\/20170830\/0fc50a030cdd26b9f76c5ca4e2fdd403.jpg"}
            [urls] => {}
            [attribs] => {}
            [version] => 1
........
С помощью $images = json_decode($this->item->images); разбираем эту запись. И в моем случае, для переменной $og_image (это логично) присваиваем $images->image_intro;
Получается $og_image = $images->image_intro;
Разжевано, на мой взгляд, так, что только проглотить осталось..
Каждый ваш клик помогает заработать сыну на конфеты
Не дайте ребенку остаться без сладкого! Сделай ТЫЦ!
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

News-Show-Pro-GK5 - Вопрос по Module Mode

Автор IlyaJom

Ответов: 0
Просмотров: 252
Последний ответ 28.01.2017, 12:57:53
от IlyaJom
вопрос по RokSprocket Module Tabs Joomla3

Автор Tavol

Ответов: 0
Просмотров: 315
Последний ответ 04.05.2016, 11:55:48
от Tavol
BT Login - вопрос по защите... Есть сомнения

Автор suor

Ответов: 3
Просмотров: 489
Последний ответ 05.10.2015, 05:44:16
от suor
Вопрос по DirectPHP.

Автор STA

Ответов: 2
Просмотров: 1719
Последний ответ 03.09.2015, 15:29:04
от White_Tiger
Языковой вопрос модуля News Calendar

Автор Igoritaly

Ответов: 0
Просмотров: 416
Последний ответ 21.07.2015, 14:52:41
от Igoritaly