Новости Joomla

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

Wak

  • Захожу иногда
  • 95
  • 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

  • Завсегдатай
  • 1492
  • 24 / 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

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

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 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

  • Захожу иногда
  • 118
  • 1 / 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

  • Захожу иногда
  • 118
  • 1 / 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

  • Захожу иногда
  • 118
  • 1 / 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

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

Mnojitell

  • Захожу иногда
  • 118
  • 1 / 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

  • Захожу иногда
  • 118
  • 1 / 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

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

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 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

  • Захожу иногда
  • 118
  • 1 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #17 : 15.09.2017, 12:03:08 »
$og_image =  JRoute::_($images->image_introext);
*

Stasweb

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

Mnojitell

  • Захожу иногда
  • 118
  • 1 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #19 : 15.09.2017, 12:10:09 »
Сейчас попробую.
*

Mnojitell

  • Захожу иногда
  • 118
  • 1 / 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

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

Stasweb

  • Завсегдатай
  • 1492
  • 24 / 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;
Разжевано, на мой взгляд, так, что только проглотить осталось..
Каждый ваш клик помогает заработать сыну на конфеты
Не дайте ребенку остаться без сладкого! Сделай ТЫЦ!
*

Mnojitell

  • Захожу иногда
  • 118
  • 1 / 0
Re: Вопрос по плагину Easy Open Graph
« Ответ #24 : 27.01.2018, 18:21:21 »
Дело в том, что у меня вкладка "Изображения и ссылки" отключёна с самого начала, а изображения вставлены прямо в текст, поэтому переменные image_fulltext и image_intro не подходят.
« Последнее редактирование: 28.01.2018, 05:32:16 от Mnojitell »
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как решить вопрос мультиязычности заголовка модуля?

Автор donvincento

Ответов: 2
Просмотров: 1406
Последний ответ 13.09.2019, 12:26:00
от Eholov
News-Show-Pro-GK5 - Вопрос по Module Mode

Автор IlyaJom

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

Автор Tavol

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

Автор suor

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

Автор STA

Ответов: 2
Просмотров: 2596
Последний ответ 03.09.2015, 15:29:04
от White_Tiger