Приветствую, стоит задача объединить мой текущий файл node--article.tpl.php и файл из интернета с микроразметкой.
Мне нужно оставить все старые элементы из моего шаблона, а из нового выдернуть только элементы с микроразметкой. Пытался методом тыка вставить, но не работает.
Мой шаблон:
<article id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> clearfix"<?php print $attributes; ?>>
<?php echo render($title_prefix)?>
<a href="<?php echo $node_url?>" class="image">
<?php echo render($content['field_image'])?>
</a>
<div class="annotation">
<h2><?php echo $title?></h2>
<?php echo render($content['field_annotation'])?>
</div>
<?php echo render($title_suffix)?>
</article>
<?php else:?>
<article id="node-<?php print $node->nid; ?>" class="<?php print $classes; ?> full clearfix"<?php print $attributes; ?>>
<?php echo render($content)?>
</article>
<?php endif;?>
Шаблон с микроразметкой:
// View full node.
if (!$teaser) {
//выводим дополнительные элементы
$h1 = '<h1 itemprop="name">' . drupal_get_title() . '</h1>';
$date = '<p class="date">' . format_date($node->created, 'custom', 'j.m.y') . '</p><meta itemprop="datePublished" content="' . format_date($node->created, 'custom', 'Y-m-d') . '" />';
$social = '<div class="social"><script type="text/javascript" src="//yastatic.net/es5-shims/0.0.2/es5-shims.min.js" charset="utf-8"></script><script type="text/javascript" src="//yastatic.net/share2/share.js" charset="utf-8"></script><div class="ya-share2" data-services="vkontakte,facebook,odnoklassniki,moimir,gplus,twitter,viber,whatsapp"></div></div>';
//делаем обертку ноде
print '<div class="node-blog" itemscope itemtype="http://schema.org/Article">';
//темизируем ноду
print '<div class="titleGroup">' . $h1 . $date . $social . '</div>';
$content['body']['#prefix'] = '<div itemprop="articleBody">';
//сделаем микроразметку для звезд
$votes = fivestar_get_votes('node', $node->nid);
$stars = variable_get('fivestar_stars_' . $node->type, 5);
define('average', 'average');
define('value', 'value');
$average_stars = round(($votes['average']['value'] * $stars) / 100, 1);
$votes_html = '<div class="microRating" itemprop="aggregateRating" itemscope itemtype="http://schema.org/AggregateRating">
<meta itemprop="ratingCount" content="' . $votes['count']['value'] . '" />
<meta itemprop="ratingValue" content="' . $average_stars . '" />
<meta itemprop="bestRating" content="5" />
</div>';
//выведем дополнительные элементы для полноценной микроразметки
global $base_url;
$advanced_microrazmeka = '<meta itemprop="author" content="' . $node->name . '" />'
. '<meta itemprop="headline" content="' . drupal_get_title() . '" />'
. '<div style="display:none;" itemprop="image" itemscope itemtype="http://schema.org/ImageObject"><meta itemprop="url" content="' . file_create_url($node->field_image['und'][0]['uri']) . '" /><meta itemprop="height" content="400" /><meta itemprop="width" content="600" /></div>'
. '<meta itemprop="name" content="' . $node->name . '" />'
. '<div style="display:none;" itemprop="publisher" itemscope itemtype="http://schema.org/Organization"><meta itemprop="name" content="' . variable_get('site_name') . '" /><div itemprop="logo" itemscope itemtype="http://schema.org/ImageObject"><meta itemprop="url" content="' . $base_url . '/sites/all/themes/mytheme/css/image/logo.png"" /><meta itemprop="height" content="100" /><meta itemprop="width" content="200" /></div></div>'
. '<meta itemprop="dateModified" content="' . format_date($node->changed, 'custom', 'Y-m-d') . '" />'
. '<meta itemprop="mainEntityOfPage" content="' . $base_url . request_uri() . '" />';
$content['body']['#suffix'] = '</div>' . $votes_html . $advanced_microrazmeka . $social;
//dpm($content);
print render($content);
//закрываем обертку ноды
print '</div>';
}
Если заменить второй файл первым, то ломается вывод аннотации и h1 два раза выводится, поэтому нужно как-то компоновать
Комментарии
Второй шаблон - отвратителен с т.з. Drupal-way'ности.
Помогать в использовании такого - преступление против Дриса!
посмотрите лучше модули Microdata и Schema.org вместе с Metatag.
Корявую разметку создает модуль Schema.org