Форум русской поддержки Joomla!® CMS
05.12.2016, 18:39:46 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

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

 (Прочитано 922 раз)
0 Пользователей и 1 Гость смотрят эту тему.
h.vitaly
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 37


« : 11.07.2015, 15:49:13 »

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

Репутация: +0/-0
Offline Offline

Сообщений: 37


« Ответ #1 : 11.07.2015, 16:20:54 »

Код:
<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
Захожу иногда
**

Репутация: +1/-0
Offline Offline

Сообщений: 14


« Ответ #2 : 28.08.2015, 20:43:31 »

Хай  Smiley

сразу скажу надо сделать переопределение шаблона вывода 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 не силен говорю сразу и пинать можно но слегка  Grin
« Последнее редактирование: 28.08.2015, 23:38:01 от levi.german » Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet