Как объединить файлы

Аватар пользователя nick-seo nick-seo 25 июня 2018 в 16:54

Приветствую, стоит задача объединить мой текущий файл node--article.tpl.php и файл из интернета с микроразметкой.

Мне нужно оставить все старые элементы из моего шаблона, а из нового выдернуть только элементы с микроразметкой. Пытался методом тыка вставить, но не работает.

Мой шаблон:

<?php if($view_mode == 'teaser'):?>
  <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;?>

Шаблон с микроразметкой:

<?php
 
// 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 два раза выводится, поэтому нужно как-то компоновать

Комментарии

Аватар пользователя bumble bumble 25 июня 2018 в 18:11
4

Второй шаблон - отвратителен с т.з. Drupal-way'ности.
Помогать в использовании такого - преступление против Дриса!