Микроразметка данных schema.org (вносим изменения в шаблоны)

Тема в разделе "Инструкции и FAQ", создана пользователем Zlata Jesen, 12 ноя 2015.

  1. mr_eas

    mr_eas Новичок

    Сообщения:
    11
    Симпатии:
    13
    Разметка статей:
    catalog/view/theme/default/template/information/information.tpl
    перед:
    Код:
    <?php echo $footer; ?> 
    вставить:
    Код:
    <div itemscope itemtype="http://schema.org/NewsArticle" style="display:none;position:absolute;opacity:0;left:-9999px;bottom:-9999px;">
              <meta itemscope itemprop="mainEntityOfPage"  itemType="https://schema.org/WebPage" itemid="<?php echo $breadcrumb['href']; ?>"/>
              <meta itemprop="headline" content="<?php echo $heading_title; ?>" />
              <div itemprop="author" itemscope itemtype="https://schema.org/Person"><meta itemprop="name" content="<?php echo $author; ?>" /></div>
               <meta itemprop="description" content="<?php echo $information_info; ?>">
               <div itemprop="image" itemscope itemtype="https://schema.org/ImageObject">
                   <link itemprop="contentUrl" href="<?php echo $logo; ?>" />
                   <link itemprop="url" href="<?php echo $logo; ?>">
                   <meta itemprop="width" content="<?php echo $image_width; ?>">
                   <meta itemprop="height" content="<?php echo $image_height; ?>">
                </div>
                <div itemprop="publisher" itemscope itemtype="https://schema.org/Organization">               
                    <meta itemprop="telephone" content="<?php echo $telephone; ?>" />
                    <div itemprop="logo" itemscope itemtype="https://schema.org/ImageObject">
                        <link itemprop="url" href="<?php echo $logo; ?>">
                        <link itemprop="contentUrl" href="<?php echo $logo; ?>" />
                    </div>
                    <meta itemprop="name" content="<?php echo $store_name; ?>" />
                </div>
                <meta itemprop="datePublished" content="<?php echo $date_published; ?>" />
                <meta itemprop="dateModified" content="<?php echo $date_published; ?>" />
            </div>
    в контроллер /catalog/controller/information/information.php
    например после :
    Код:
      $data['header'] = $this->load->controller('common/header');
    дописать:
    Код:
            
                $data['date_published'] = date("Y-m-d");
                $data['author'] = $this->config->get('config_name');
    
                if ($this->request->server['HTTPS']) {
                    $server = $this->config->get('config_ssl');
                } else {
                    $server = $this->config->get('config_url');
                }
                if (is_file(DIR_IMAGE . $this->config->get('config_logo'))) {
                    $data['logo'] = $server . 'image/' . $this->config->get('config_logo');
                } else {
                    $data['logo'] = '';
                }
                $info_img_size_arr = @getimagesize($data['logo']);
                $data['image_width'] = isset($info_img_size_arr[0])?$info_img_size_arr[0]:'200';
                $data['image_height'] = isset($info_img_size_arr[1])?$info_img_size_arr[1]:'200';
    
                $data['store_name'] = $this->config->get('config_name');
                $data['telephone'] = $this->config->get('config_telephone');
                $data['address']  = nl2br($this->config->get('config_address'));
    
    Если у магазина есть адрес, то можно добавить после:
    Код:
    <div itemprop="publisher" itemscope itemtype="https://schema.org/Organization">
    
    страну, индекс и адрес:
    Код:
    <div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
                <meta itemprop="addressLocality" content="Москва, Россия" />
                <meta itemprop="postalCode" content="индекс" />
                <meta itemprop="streetAddress" content="<?php echo $address; ?>" />
            </div>
    
    p.s. У моего магазина нету адреса, поэтому я особо не разбирался как вывести в переменные Страну и откуда брать индекс, но если кто подскажет как это реализовать - будет круто.
     
    Zlata Jesen и Romans нравится это.
  2. partner2000

    partner2000 Новичок

    Сообщения:
    7
    Симпатии:
    0
    <div id=content class="col-md-9 col-sm-8 product" itemscope itemtype="http://data-vocabulary.org/Product">
    </div>
    Пишет
    name (fn)
    Необходимо указать значение для поля name (fn).
    Что не так. Подскажите новичку.
     
  3. hastar

    hastar Новичок

    Сообщения:
    15
    Симпатии:
    0
    здравствуйте
    в части инструкции 1 поста касающейся разметки цены произошел затык
    в последней версии нет такого кода для замены. вот часть кода содержащая price
    Код:
    <?php if ($price) { ?>
              <ul class="list-unstyled">
                <?php if (!$special) { ?>
                <li>
                  <h2><?php echo $price; ?></h2>
                </li>
                <?php } else { ?>
                <li><span style="text-decoration: line-through;"><?php echo $price; ?></span></li>
                <li>
    
    подскажите пожалуйста что нужно менять
     
  4. vikaharkov

    vikaharkov Продвинутый пользователь

    Сообщения:
    676
    Симпатии:
    71
    А у меня, например, этот плагин не становится. Поэтому нашла другие способы, может даже и лучшие.

    Папки сравнивать - Total Commander (как описано тут, о нюансах подскажу кому надо отдельно)
    Файлы сравнивать - можно тем же Total Commander (там эта функция в стандарте), но лучше этим - Araxis.Merge (версия портабле.про)(версии с установкой)
     
    Последнее редактирование модератором: 23 янв 2017
    Zlata Jesen и Ecsiron нравится это.
  5. Митяй

    Митяй Новичок

    Сообщения:
    11
    Симпатии:
    3
     
    Zlata Jesen нравится это.
  6. mars1an

    mars1an Специалист

    Сообщения:
    629
    Симпатии:
    516
    Немного оффтопа.
    фигасе, 70мб программка для сравнения текстовых файлов О_о ещё и платная, и ссылки на варез!
    WinMerge - 6Мб инсталлер, 2,5Мб бинарь в зипе, и беспатно.
     
    nssoft96 и Zlata Jesen нравится это.
  7. Zlata Jesen

    Zlata Jesen Продвинутый пользователь

    Сообщения:
    165
    Симпатии:
    98
    Добралась, наконец, снова до разметки. Да, изменения нужно вносить, сейчас буду разбираться, что и как, потом подправлю первый пост и откомментирую, что где исправить.
    Сейчас пока ответы:
    Спасибо. Да, так будет правильнее, исправлю. Просто руководствовалась тем, что h1-h6 все-таки блочные элементы (http://htmlbook.ru/html/type/block), а в валидаторе не проверила.
    Тоже сейчас столкнулась с этим, вижу дальше уже выложили решение, попробую аккуратненько сослаться на него в инструкции.
    Обратите внимание на разделы. В "Общих вопросах" планировалась тема-обсуждение и вопросы, а тут, в разделе "Инструкции и FAQ" хотелось выкладывать только готовые решения... Не получилось. Вопросы стали писать тут, пошло полноценное обсуждение.
    Это нормальный дефолтный шаблон. Обновлю инструкцию, поменяете.
     
  8. Zlata Jesen

    Zlata Jesen Продвинутый пользователь

    Сообщения:
    165
    Симпатии:
    98
    Поправила инструкцию разметки товара. Шаблон 2.3.0.2 практически аналогичен тому, что был (по крайней мере, для целей разметки). Для решения проблемы с названием валюты не придумала ничего умнее, чем
    Во-первых, не хочу трогать контроллер, во-вторых, решение, предложенное выше, у меня почему-то не сработало.
    Пока так. Тему не забрасываю, буду дальше размечать на версии 2.3.0.2.
     
    Последнее редактирование: 19 янв 2017
  9. hardcorych

    hardcorych Новичок

    Сообщения:
    2
    Симпатии:
    0
    Разметил категории как в этом посте - http://forum.opencart-russia.ru/thr...-izmenenija-v-shablony.1665/page-3#post-24671

    Гугловский валидатор выдает следующие ошибки:
    position Необходимо указать значение для поля position.
    url Необходимо указать значение для поля url.

    Как быть?
     
  10. Митяй

    Митяй Новичок

    Сообщения:
    11
    Симпатии:
    3
    Добавьте: <meta itemprop="url" href="<?php echo $product['href']; ?>" />

    на Необходимо указать значение для поля position. вроде как можно не обращать внимание (пока). Влепили требование но пока сами голову ломают зачем.
     
  11. Romans

    Romans Administrator Команда форума

    Сообщения:
    1.438
    Симпатии:
    780
    Ребята. Напоминаю, это всего лишь инструкция, где находят решения люди которые заинтересованны в этом. Т.е им достаточно показать пару приемов как это сделала @Zlata Jesen а дальше они сами.
    Но если вы ничего в этом не понимаете, но сделать что то с разметкой нужно, то предлагаю просто купить модуль
    http://shop.opencart-russia.ru/microdata-applicationldjson-pro
    Все же 600р. это не так много, но получите проверенные решения, гарантированную разметку без исправлений в шаблоне.
     
    Zlata Jesen нравится это.
  12. hardcorych

    hardcorych Новичок

    Сообщения:
    2
    Симпатии:
    0
    Попробовал, но не помогло, к сожалению. Попробовал так же добавить itemprop="url" везде, где есть ссылка $product['href'], эффект тоже нулевой. Тоже уж забить что ли, через яндекс все нормально проходит.
     
  13. Митяй

    Митяй Новичок

    Сообщения:
    11
    Симпатии:
    3
    скиньте свой файл tpl в личку.
     
    hardcorych нравится это.
  14. sansan

    sansan Пользователь

    Сообщения:
    53
    Симпатии:
    1
    Дошел до момента

    "Так же придется подправить еще несколько шаблонов, принудительно дописав туда название валюты. У меня это bestseller.tpl, featured.tpl, category.tpl, latest.tpl, у вас могут быть и другие."

    тут не понятно как и куда дописать название валюты. У меня шаблон дефолтовый, валюта одна.
    Гугл при проверке выдает:
    price 1890.00 (Свойство price недопустимо для объекта типа Product.)
    priceCurrency RUB (Свойство priceCurrency недопустимо для объекта типа Product.)
     
    Последнее редактирование: 27 фев 2017
  15. Zlata Jesen

    Zlata Jesen Продвинутый пользователь

    Сообщения:
    165
    Симпатии:
    98
    Значит, еще пока в исходном коде шаблонов не ориентируетесь.
    Просто допишите название валюты после самой цены.
    Например, так:
    Код:
     <?php echo $product['price']; ?>&nbsp;руб
    .
    вместо
    Код:
    <?php echo $product['price']; ?>
    Но это при условии, что вы отключили символ валюты в админке, как написано в п. 3, иначе Вы просто его продублируете!

    Ошибок у меня валидатор не выдает.
     
  16. Dmitriy10

    Dmitriy10 Новичок

    Сообщения:
    29
    Симпатии:
    1
    Сделал как написано в инструкции, не работают звездочки, гугл ругается, что не найден объект отзыва http://joxi.ru/12MVOzeIM7jXNA
    Единственное в файле catalog\controller\product\product.php
    прописал так
    $data['tab_review'] = sprintf($this->language->get('tab_review'), $product_info['reviews']);
    $data['review_count'] = $product_info['reviews'];
    без int перед $product_info в другом случае ошибка.
    Опенкарт 2.0.1.1
     
  17. Zlata Jesen

    Zlata Jesen Продвинутый пользователь

    Сообщения:
    165
    Симпатии:
    98
    Последнее редактирование: 4 апр 2017
    mario512 и Ален нравится это.
  18. mario512

    mario512 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Валидатор не корректно отображает стоимость. Если цена указанна 80.00 то валидатор ее отображает как 8000. Как решить?
     
  19. mario512

    mario512 Новичок

    Сообщения:
    10
    Симпатии:
    0
    Еще вариант разметки хлебных крошек, который подсмотрел здесь. Результат:
    BreadcrumbList.jpg
     
  20. grey0207

    grey0207 Активный пользователь

    Сообщения:
    126
    Симпатии:
    33
    Аналогичная проблема. Как решить?
    И как избавится от в Яндексе от:
    "ОШИБКА: поле http://ogp.me/ns#url отсутствует или пусто"