Основной курс по Joomla

Как встроить микроразметку schema.org в материалы K2?

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

h.vitaly

  • Осваиваюсь на форуме
  • ***
  • 37
  • 0
Подскажите как встроить микроразметку schema.org в материалы K2. http://ruschema.org/NewsArticle
Как я понимаю нужно править в шаблоне К2 файл item.php так как в php не силен может кто подскажет как это сделать правильно.
« Последнее редактирование: 11.07.2015, 17:52:00 от h.vitaly »

*

h.vitaly

  • Осваиваюсь на форуме
  • ***
  • 37
  • 0
Код
<h2 class="itemTitle">
            <?php if(isset($this->item->editLink)): ?>
            <!-- Item edit link -->
            <span class="itemEditLink">
                <a class="modal" rel="{handler:'iframe',size:{x:990,y:550}}" href="<?php echo $this->item->editLink; ?>">
                    <?php echo JText::_('K2_EDIT_ITEM'); ?>
                </a>
            </span>
            <?php endif; ?>

          <?php echo $this->item->title; ?>

          <?php if($this->item->params->get('itemFeaturedNotice') && $this->item->featured): ?>
          <!-- Featured flag -->
          <span>
              <sup>
                  <?php echo JText::_('K2_FEATURED'); ?>
              </sup>
          </span>
          <?php endif; ?>

      </h2>
Код заголовка статьи
Код
<?php if(!empty($this->item->fulltext)): ?>
      <?php if($this->item->params->get('itemIntroText')): ?>
      <!-- Item introtext -->
      <div class="itemIntroText">
          <?php echo $this->item->introtext; ?>
      </div>
      <?php endif; ?>
      <?php if($this->item->params->get('itemFullText')): ?>
      <!-- Item fulltext -->
      <div class="itemFullText">
          <?php echo $this->item->fulltext; ?>
      </div>
      <?php endif; ?>
      <?php else: ?>
      <!-- Item text -->
      <div class="itemFullText">
          <?php echo $this->item->introtext; ?>
      </div>
      <?php endif; ?>
Код превью и полного текста статьи

*

levi.german

  • Захожу иногда
  • **
  • 14
  • 1
Хай  ^-^

сразу скажу надо сделать переопределение шаблона вывода k2 и в категории его поменять, если она не одна по типу контента и обозвать его newarticle например.

строка 26-27 файла item.php меняем на вот это тут основной div и его не забыть закрыть в конце

Код
<!-- Start K2 Item Layout --> 
<div itemscope itemtype="http://schema.org/NewsArticle">
  <meta itemprop="inLanguage" content="ru-RU">

строка 52-54

Код
      <!-- Item Image -->
      <div class="itemImageBlock" style="width:<?php echo $this->item->imageWidth; ?>px; height:auto;"> <span class="itemImage"> <a class="modal" rel="{handler: 'image'}" href="<?php echo $this->item->imageXLarge; ?>" title="<?php echo JText::_('K2_CLICK_TO_PREVIEW_IMAGE'); ?>"> <span class="yj_hover"> <img src="<?php echo $this->item->image; ?>" alt="<?php if(!empty($this->item->image_caption)) echo K2HelperUtilities::cleanHtml($this->item->image_caption); else echo K2HelperUtilities::cleanHtml($this->item->title); ?>" style="width:<?php echo $this->item->imageWidth; ?>px; height:auto;" /> </span> </a> </span>
        <img class="mdf" itemprop="image" src="<?php echo $this->item->image; ?>" alt="<?php if(!empty($this->item->image_caption)) echo K2HelperUtilities::cleanHtml($this->item->image_caption); else echo K2HelperUtilities::cleanHtml($this->item->title); ?>"/>

строка 80-81 заголовок материала добавляем в h1 itemprop="headline"

Код
      <!-- Item title -->
      <h1 itemprop="headline" class="itemTitle">

строка 168-169 текст статьи добавляем <span itemprop="articleBody"> и закрывем </span>

Код
    <!-- Item fulltext -->
    <div class="itemFullText"><span itemprop="articleBody"> <?php echo $this->item->fulltext; ?> </span></div>

строка 197-200 тут форматируем дату по стандарту (я брал дату последнего изменения и в настройках она у меня включена)

Код
            <!-- Item date modified --> 
      <span class="itemDateModified"> <?php echo JText::_('K2_LAST_MODIFIED_ON'); ?> <?php echo JHTML::_('date', $this->item->modified, JText::_('K2_DATE_FORMAT_LC2')); ?> </span>
      <?php $date_mod = str_replace(" ","T",$this->item->modified)."+03:00"; ?> //+03:00 здесь поправка времени думаю объяснять не нужно
      <meta itemprop="datePublished" content="<?php echo $date_mod; ?>"/>


если необходим рейтинг общий статьи строка 229-243 (использовал стандартный k2 рейтинг в материале)

Код
 <!-- microdata description and rating -->
  <div class="mdf" itemprop="description"><?php echo $this->item->title; ?></div>
  <div class="mdf" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
    <div>Рейтинг:
      <?php $rating_value = $this->item->votingPercentage; ?>
      <?php
      $pattern = array("(",")"," ","Голосовать","голосов"); // здесь вырезание подстроки а именно лишнего и оставляем только число
      $rating_count = str_replace($pattern,"",$this->item->numOfvotes);
      ?>
      <span itemprop="ratingValue"><?php echo $rating_value * 0.05; ?></span> из
      <span itemprop="bestRating">5</span> Голосов:
      <span itemprop="ratingCount"><?php echo $rating_count; ?></span>
    </div>
  </div>

даллее не забываем закрыть всю конструкцию <div itemscope itemtype="http://schema.org/NewsArticle"> тегом </div>

P.s. в PHP не силен говорю сразу и пинать можно но слегка  ;D
« Последнее редактирование: 29.08.2015, 00:38:01 от levi.german »

*

yrygvay

  • Живу я здесь
  • ******
  • 1281
  • 32
День добрый. Столкнулся с тем, что на странице с материалом присутствует товар, хочу вывести в поисковике его цену, подскажете как реализовать? 
Смотрю....

*

ProtectYourSite

  • Живу я здесь
  • ******
  • 857
  • 48
Редактируете шаблон и добавляете необходимые параметры. Или цена забита напрямую в тексте?

*

yrygvay

  • Живу я здесь
  • ******
  • 1281
  • 32
Редактируете шаблон и добавляете необходимые параметры. Или цена забита напрямую в тексте?
она просто текстом указанна в материале : https://tkkart.ru/karty/karta-voditelya-skzi
Смотрю....

*

ProtectYourSite

  • Живу я здесь
  • ******
  • 857
  • 48
ТОгда в текст и прописывайте микроразметку

*

yrygvay

  • Живу я здесь
  • ******
  • 1281
  • 32
ТОгда в текст и прописывайте микроразметку
Код
<!--Указывается схема Product.-->
<div itemscope itemtype="http://schema.org/Product">

<!--В поле name указывается наименование товара.-->
  <h1 itemprop="name">Iphone 6 plus 16 GB</h1>

<!--В поле description дается описание товара.-->
  <span itemprop="description">iPhone 6 не просто больше. Он лучше во всех отношениях. Больше, но при этом значительно тоньше. Мощнее, но при этом исключительно экономичный. Его гладкая металлическая поверхность плавно переходит в стекло нового HD-дисплея Retina, образуя цельный, законченный дизайн. Его аппаратная часть идеально работает с программным обеспечением. Это новое поколение iPhone, улучшенное во всём</span>

<!--В поле image указывается ссылка на картинку товара.-->
  <img src="http://imageexample.com/iphone6plus.jpg" itemprop="image">

<!--Указывается схема Offer.-->
  <div itemprop="offers" itemscope itemtype="http://schema.org/Offer">

<!--В поле price указывается цена товара.-->
    <span itemprop="price">36990</span>

<!--В поле priceCurrency указывается валюта.-->
    <span itemprop="priceCurrency">RUB</span>
  </div>
</div>

Яндексу понравится если я добавлю такой кусок кода в описание на страницу?
Смотрю....

*

ProtectYourSite

  • Живу я здесь
  • ******
  • 857
  • 48
Почему нет? И это не код, это разметка - присваиваете параметры определенным участкам в тексте.

*

yrygvay

  • Живу я здесь
  • ******
  • 1281
  • 32
Установил Google Structured Data Markup. В разы легче и проще добавить любой параметр (плюс оказалось много удобных плюшек внутри)
Смотрю....