Основной курс по Joomla
0 Пользователей и 1 Гость просматривают эту тему.
  • 18 Ответов
  • 4490 Просмотров
*

intcorp

  • Завсегдатай
  • *****
  • 417
  • 12
Open Graph metadata
« : 20.09.2013, 16:08:35 »
Кто как реализовал у себя Open Graph metadata для товаров и категорий?
Нашел классный плагин HD-OG для Joomla 2.5, но он не поддерживает картинки магазина  :dry:
*

Igorenia

  • Осваиваюсь на форуме
  • ***
  • 156
  • 6
Re: Open Graph metadata
« Ответ #1 : 25.10.2013, 03:18:06 »
А зачем реализовывать Open Graph для JoomShopping? Яндекс в своих расширенных сниппетах для товаров ими не руководствуется, а использует YML.
Для Google же это реализовывается через Schema.org. Для JoomShopping это не раз обсуждалось, например тут.
*

nevigen

  • Moderator
  • *****
  • 8832
  • 754
  • http://n*****n.com
Re: Open Graph metadata
« Ответ #2 : 25.10.2013, 10:11:13 »
Open Graph metadata для фейсбук
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

intcorp

  • Завсегдатай
  • *****
  • 417
  • 12
Re: Open Graph metadata
« Ответ #3 : 25.10.2013, 14:01:34 »
Не только фейсбук, а все нормальные соцсети.
Open Graph отображается в коде структурированных данных RDFa в обычных результатах поиска http://www.google.com/webmasters/tools/richsnippets?q=http%3A%2F%2Flr-company.com.ua%2Fkatalog%2Ftelo%2Faloe-vera-nabor-dlya-ukhoda-za-volosami-i-telom - вместо картики товара URL сайта как и в значении Open Graph
*

dmitry_stas

  • Профи
  • ********
  • 9679
  • 932
Re: Open Graph metadata
« Ответ #4 : 25.10.2013, 14:06:59 »
ну судя по тому, что JoomShopping - нормальная соцсеть, то в нем конечно надо Open Graph metadata использовать обязательно :)
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

intcorp

  • Завсегдатай
  • *****
  • 417
  • 12
Re: Open Graph metadata
« Ответ #5 : 25.10.2013, 14:10:30 »
ну судя по тому, что JoomShopping - нормальная соцсеть, то в нем конечно надо Open Graph metadata использовать обязательно :)
Это абы что отписать?)
Киньте ссылку с Open Graph и без таковой на страницу соц сети и поймете о чем речь.
Яндекс тоже приветствует данную разметку особенно в видео каталогах http://help.yandex.ru/webmaster/video/open-graph-markup.xml
« Последнее редактирование: 25.10.2013, 14:14:07 от intcorp »
*

dmitry_stas

  • Профи
  • ********
  • 9679
  • 932
Re: Open Graph metadata
« Ответ #6 : 25.10.2013, 15:00:31 »
Цитировать
Это абы что отписать?)
сори. вчитался. не понял сразу что надо. думал вы об выдаче поисковой.

intcorp, есть предложение. вы описываете подробно, так сказать, цели и задачи, чтобы было понятно всем, а не только вам, что за плагин такой, и на кой оно надо. а мы в свою очередь адаптируем его для ЖШ. как вам?

и кстати по поводу
Цитировать
Не только фейсбук, а все нормальные соцсети.
что то я так сходу не нашел, кто еще кроме фейсбука. в частности, наши какие понимают?
« Последнее редактирование: 25.10.2013, 15:20:23 от dmitry_stas »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

intcorp

  • Завсегдатай
  • *****
  • 417
  • 12
Re: Open Graph metadata
« Ответ #7 : 25.10.2013, 15:44:52 »
Open Graph поддерживают: Фейсбук, Твиттер, Вконтакте, LinkedIn, Google+, по идее и одноклассники
Плагин HD-OG генерирует Open Graph для обычных материалов (по идее и других компонентов без поддержки og:image)на основе их мета тегов + берет интро картинку. Для джумшоппинга так же работает, за исключением og:image изображений товара и категории, которые плагин вытаскивать не умеет, вставляя URL главной страницы вместо ссылки на картинку.
Генерируемые мета:
Цитировать
<meta property="og:title" content="Heidi Klum Парфюмерная серия - Компания LR Украина "/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="http://lr-company.com.ua/katalog/heidi-klum/heidi-klum-parfyumernaya-seriya"/>
<meta property="og:image" content="http://lr-company.com.ua/" />
<meta property="og:description" content="Heidi Klum Парфюмерная серия" />
<meta property="og:site_name" content="Компания LR Украина " />
<meta property="og:locale" content="ru_RU"/>
*

dmitry_stas

  • Профи
  • ********
  • 9679
  • 932
Re: Open Graph metadata
« Ответ #8 : 25.10.2013, 17:06:27 »
если можно еще вот этой фразы
Цитировать
Киньте ссылку с Open Graph ... на страницу соц сети
раскройте смысл на примере например ВКонтакте или Одноклассники. или ссылку просто, если у них это описано
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

intcorp

  • Завсегдатай
  • *****
  • 417
  • 12
Re: Open Graph metadata
« Ответ #9 : 25.10.2013, 17:21:15 »
если можно еще вот этой фразы раскройте смысл на примере например ВКонтакте или Одноклассники. или ссылку просто, если у них это описано
Суть в том, что если запостить на стену (к примеру) вконтакте ссылку на страницу с Open Graph, то отобразится блок с заголовком страницы, описанием и картинкой, которые прописаны в Open Graph. Иначе, там отображается не всегда то, что хотелось бы, особенно это касается картинок. Это же касается добавления ссылок с группу и когда люди ставят лайки с рекомендациями страницы.
Вкратце, Open Graph - основа успешного продвижения сайта через соц сети.
*

instalator_

  • Новичок
  • *
  • 4
  • 0
Re: Open Graph metadata
« Ответ #10 : 31.10.2013, 17:52:57 »
Не решил вопрос с отображением картинок? сейчас пытаюсь покапать HD_OG.php для добавления пути картинки в теги, пока без результатно.

Вот на что наткнулся, но не ясно куда вставлять
http://stackoverflow.com/questions/12939909/get-images-from-article-in-joomla-with-php
« Последнее редактирование: 31.10.2013, 18:08:08 от instalator_ »
*

instalator_

  • Новичок
  • *
  • 4
  • 0
Re: Open Graph metadata
« Ответ #11 : 31.10.2013, 18:25:31 »
Вообщем вот что получилось, если что не так поправте. Ссылка вроде на кртинку в теге появилась.
подправленный файл HD_OG.php
Код
<?php
# HD-OG   3                                       
# Copyright (C) 2013 by Hyde-Design                 
# Homepage   : www.hyde-design.co.uk            
# Author     : Hyde-Design                   
# Email      : sales@hyde-design.co.uk            
# Version    : 3.2                               
# License    : http://www.gnu.org/copyleft/gpl.html GNU/GPL 

// no direct access
defined('_JEXEC') or die('Restricted access');
$buffer = JResponse::getBody();
jimport('joomla.plugin.plugin');
jimport('joomla.application.component.model');




class plgSystemHD_OG extends JPlugin
{function plgSystemHD_OG(&$subject, $config) {parent::__construct($subject, $config);
$this->_plugin = JPluginHelper::getPlugin( 'system', 'HD_OG' );
}

function onAfterRender()
{ $element_url = '/administrator/'; $current_url = $_SERVER['REQUEST_URI'];
global $mainframe;
$buffer = JResponse::getBody();
if (strstr($current_url, $element_url)) {;} else {

$document = &JFactory::getDocument();
$app = JFactory::getApplication();

$hdog_title_tmp = $document->getTitle();
$hdog_title = '
<meta property="og:title" content="'.$hdog_title_tmp.'"/>
';
$hdog_type_tmp = $this->params->get( 'hdog_type' );
$hdog_type =  '<meta property="og:type" content="'.$hdog_type_tmp.'"/>
';
$hdog_base = $document->getBase();
$hdog_url =   '<meta property="og:url" content="'.$hdog_base.'"/>
';

//get thumbnail image
$doc = new DOMDocument();
@$doc->loadHTML($buffer);
$images = $doc->getElementsByTagName('img');
if (strlen($hdog_base) <= 26)
{
    $image = $images->item(0)->getAttribute('src');
}
else
{
    $image = $images->item(1)->getAttribute('src');
}
if (substr($image, 0, 4)!= 'http') $image = JURI::base().$image;
$hdog_image =   '<meta property="og:image" content="'.$image.'" />
';


        //check article view

        $view =JRequest::getVar('view');
        if ($view == "article") {
        $articlesModel = JModel::getInstance('ContentModelArticle');
        $articleId = JRequest::getInt('id', 0);
        $hdog_image_thumb = '<meta property="og:image" content="'.$articleId.'" />
';            $article = $articlesModel->getItem($articleId);
              $imagesCode = $article->images; $thumbCode = str_replace("\/", "/", $imagesCode); $thumb = explode('"', $thumbCode); $thumb_img = $thumb[03];
              if (!empty($thumb_img)) {$hdog_image_thumb = '<meta property="og:image" content="'.JURI::base().$thumb_img.'" />
';}           else {$hdog_image_thumb = '<meta property="og:image" content="'.JURI::base().$hdog_image_tmp.'" />
';}}         
        //check category view
        if ($view == "category") {
        $categoriesModel = JModel::getInstance('ContentModelCategories');
        $category = JRequest::getVar('id');
        $category = '9';
        $db = JFactory::getDbo();
        $query = $db->getQuery(true);
         $query->select ('alias');
         $query->from('#__categories');
         $query->where('id=$category');

             $db->setQuery($query);
             $results = $db->loadObjectList();

             
//       echo 'xx '.$results.' xx';
                 
        };
         $hdog_image_thumb = '<meta property="og:image" content="'.$categoryId.'" />
';           
             
  if (!empty($thumb_img)) {$hdog_image_thumb = '<meta property="og:image" content="'.JURI::base().$thumb_img.'" />
';}           else {$hdog_image_thumb = ''.$hdog_image.'
';};

        //get meta description
$hdog_desc_tmp = $document->getDescription();
$hdog_desc =   '<meta property="og:description" content="'.$hdog_desc_tmp.'" />
';

        //get site name
$hdog_name_tmp = $app->getCfg('sitename');
        $hdog_name =   '<meta property="og:site_name" content="'.$hdog_name_tmp.'" />
';

        //get locale
        $lang =& JFactory::getLanguage(); $sitelanguage = $lang->getTag(); $oglanguage = str_replace ('-', '_', $sitelanguage);
$hdog_locale = '<meta property="og:locale" content="'.$oglanguage.'"/>
';
       
        //get admin id
$hdog_admins_tmp = $this->params->get( 'hdog_admins' );
        $hdog_admins =   '<meta property="fb:admins" content="'.$hdog_admins_tmp.'"/>
';

        // render all to screen
$hdog_all = $hdog_title.$hdog_type.$hdog_url.$hdog_image_thumb.$hdog_desc.$hdog_name.$hdog_locale;
$use_admin = $this->params->get( 'use_admin' );
if ($use_admin == '1') {$hdog_all = $hdog_all.$hdog_admins;}
        $buffer = str_replace ('<html xmlns="http://www.w3.org/1999/xhtml"', '<html xmlns="http://www.w3.org/1999/xhtml"
      xmlns:og="http://ogp.me/ns#"
      xmlns:fb="http://www.facebook.com/2008/fbml" ', $buffer);
    $buffer = str_replace ('</title>', '</title>'.$hdog_all, $buffer);

JResponse::setBody($buffer);
return true;
}}}
*

intcorp

  • Завсегдатай
  • *****
  • 417
  • 12
Re: Open Graph metadata
« Ответ #12 : 31.10.2013, 20:43:01 »
У меня с этим кодом вытаскивает картинку из слайдшоу, что в категории шопа, что в карточке товара.
*

Exciter

  • Осваиваюсь на форуме
  • ***
  • 153
  • 8
  • Теория + практика
Re: Open Graph metadata
« Ответ #13 : 18.12.2014, 20:21:19 »
Стандартными средствами Joomla этого не сделать.
Код
public function fetchHead
выводит только
Код
meta name
meta property не вывести

Надо либо код Joomla допиливать, либо искать третью сторону для решения.
Теория без практики мертва, а практика без теории слепа (с).
*

EGGroup_CCTV

  • Новичок
  • *
  • 5
  • 2
Re: Open Graph metadata
« Ответ #14 : 30.03.2015, 20:16:39 »
У меня реализовано все, что бы картинку вытащить (из товара) нужно плагин устанавливать отдельно. Если ссылку не удалят http://videonabludenie26.ru/katalog-tovarov/ip-kamery/dlya-vnutrenney-ustanovki/vc-8241-2-8-12-ir.htmlможете перейти и посмотреть как работает все это. Да и кстати, так же реализовано и "twitter:image:src" 
*

ViktorMah

  • Давно я тут
  • ****
  • 251
  • 27
Re: Open Graph metadata
« Ответ #15 : 31.03.2015, 11:49:07 »
я вот думаю, а что мешает разместить сей код прямо в шаблоне карточки товара? как это делается для разметки schema.org
что позволит прямо из объекта подхватывать картинки
Код: html4strict
<meta property="og:title" content="Heidi Klum Парфюмерная серия - Компания LR Украина "/>
<meta property="og:type" content="website"/>
<meta property="og:url" content="http://lr-company.com.ua/katalog/heidi-klum/heidi-klum-parfyumernaya-seriya"/>
<meta property="og:image" content="http://lr-company.com.ua/" />
<meta property="og:description" content="Heidi Klum Парфюмерная серия" />
<meta property="og:site_name" content="Компания LR Украина " />
<meta property="og:locale" content="ru_RU"/>
« Последнее редактирование: 01.04.2015, 00:01:18 от ViktorMah »
*

EGGroup_CCTV

  • Новичок
  • *
  • 5
  • 2
Re: Open Graph metadata
« Ответ #16 : 31.03.2015, 12:56:31 »
Что бы более менее это все автоматизировать я сделал к примеру так: добавил в файл http://ваш сайт.ru/libraries/joomla/document/html/renderer/head.php
Код
$buffer .= $tab . '<meta property="og:description" content="' . htmlspecialchars($documentDescription). '" />' . $lnEnd;
$buffer .= $tab . '<meta property="og:title" content="' . htmlspecialchars($document->getTitle(), ENT_COMPAT, 'UTF-8'). '"/>' . $lnEnd;
$buffer .= $tab . '<meta property="og:url" content="' . $document->getBase(). '" />' . $lnEnd;
$buffer .= $tab . '<meta property="og:site_name" content="EGGoup CCTV" />' . $lnEnd;
$buffer .= $tab . '<meta property="og:type" content="website" />' . $lnEnd;

в принципе этого достаточно, а что бы с картинкой неразберихи не было нужно плагин дополнительно установить и наступит счастье))))
*

alex_volkhov

  • Захожу иногда
  • **
  • 13
  • 0
Re: Open Graph metadata
« Ответ #17 : 25.06.2015, 14:24:51 »
в принципе этого достаточно, а что бы с картинкой неразберихи не было нужно плагин дополнительно установить и наступит счастье))))
А какой именно плагин еще надо установить? Есть ли вообще что-то чтобы настроить всю микроразметку, Open Graph и т.п. для Joomla и VirtueMart?
*

Linfuby

  • Живу я здесь
  • ******
  • 1240
  • 174
  • Всё просто...
Re: Open Graph metadata
« Ответ #18 : 10.07.2015, 09:34:40 »
А какой именно плагин еще надо установить? Есть ли вообще что-то чтобы настроить всю микроразметку, Open Graph и т.п. для Joomla и VirtueMart?
С такими вопросами обращайтесь в раздел VirtueMart. Данный раздел относится к JoomShopping
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054