Расширенные сниппеты Google для JoomShopping

  • 141 Ответов
  • 24843 Просмотров

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

*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
Знаю, тема избита, сам уже поставил несколько, только вот с рейтингом не разобрался, там для изображений одно, для чего-то еще другое, в общем так и не понял. + Хотелось бы массово поставить на все товары рейтинг в 5 звезд. Может есть какой запрос к бд, или плагин?

Делюсь своими сниппетами ( что б не парится всем product_default). Здесь сниппет автора (нужно заменить), цена, категория, название, изображение. Кто поможет вывести рейтинг, а еще его дефаултом на 5 поставить, тот получит плюсик в репу)
Спойлер
[свернуть]
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"

*

Оффлайн nevigen

  • *****
  • 8831
  • [+]771 / [-]17
  • http://n*****n.com
    • Просмотр профиля
    • Nevigen.com -разработки для Joomla
Хотелось бы массово поставить на все товары рейтинг в 5 звезд. Может есть какой запрос к бд, или плагин?
Смотрите в ФАКе массовое изменение значений в БД.
Аналогия для поля ретйин. название поля в базе найдете без проблем :)
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !

*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
Смотрите в ФАКе массовое изменение значений в БД.
Аналогия для поля ретйин. название поля в базе найдете без проблем :)

Это-то - ОК
А вот как это все вывести в сниппете, в выдаче Google
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"


*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
Смотрите в ФАКе массовое изменение значений в БД.
Аналогия для поля ретйин. название поля в базе найдете без проблем :)

Апдейт-то сделал, но значения изменились для существующих отзывов....хотелось бы что б дефаултом было 5 звезд...

Если кому интересно, вот сам апдейт:
update jy9so_jshopping_products_reviews set mark = 5

(кол-во меняйте под свои нужды)
« Последнее редактирование: 18.09.2012, 01:49:33 от pepeto »
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"

*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
для примера - http://joomlaforum.ru/index.php/topic,197079.msg1075234.html#msg1075234

Пробовал.....я слишком ленив, что бы догонять, как решение для старого вирта ставить на новый js, в плане установки extravote
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"

*

Оффлайн ELLE

ну извините, у меня пока чисто физически не хватает времени всем разжевывать

*

Оффлайн v-v

Хотелось бы массово поставить на все товары рейтинг в 5 звезд.

Думаете что Google не подумал о том что все захотят выставить рейтинг товара 5 звезд?

*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
Думаете что Google не подумал о том что все захотят выставить рейтинг товара 5 звезд?
На это есть
update Префикс_jshopping_products_reviews set mark = 5
« Последнее редактирование: 18.09.2012, 02:10:40 от pepeto »
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"

*

Оффлайн v-v

На это есть
update jy9so_jshopping_products_reviews set mark = 5
в гугле где то есть правила использования расширенного описания (снипетов), в т.ч и требования к рейтингам товара и отзывам. Хочу сказать то что для Googleябудет мало того что вы поставите всем товарам 5 звезд...

*

Оффлайн v-v

таким способом вы будете обманывать только посетителя, а не поисковик

*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
Вот

А вот и апдейт

update jy9so_jshopping_products set average_rating = 10

таким способом вы будете обманывать только посетителя, а не поисковик

Ну попробуем потестить)))
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"

*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
таким способом вы будете обманывать только посетителя, а не поисковик
Неужели у меня не может быть такого замечательного сайта, который торгует исключительно выдающимися товарами))))?

Хотя конечно я согласен, что это не совсем честно.
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"

*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
В довесок можно еще

update jy9so_jshopping_products set reviews_count = 1

Изменит кол-во отзывов к товару
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"

*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
эх....не получается вывести сниппет звездочек. Поможет кто? *DRINK*
« Последнее редактирование: 18.09.2012, 04:59:03 от pepeto »
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"

*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
ну у меня почти готово
только если кто скажет как получить общее кол-во голосов или общее кол-во отзывов...нашла уже

А решением поделишься? ^-^
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"

Поделись решением пожалуйста.
Я писал в теме что нужно доделать, чтобы сделали расширенные сниппеты в базовой поставке магазина. Имхо это уже просто необходимость.

Кстати для тех кто пытается обмануть Google и выставить всем максимальный ретинг. Google распознает все отзывы и если их не находит просто вырубает у вас всю систему рейтингов, почитайте форумы. Не ройте своему сайту могилку, на крайняк сами пишите левые отзывы своим товарам, если хочется темной стороны силы. Но покупателя тоже не обманешь.

*

Оффлайн ELLE

Да разработчики не обязаны вам внедрять микроразметку, это вообще больше к верстке и к SEO относится. Разработчики должны отвечать за функционал, а дополнительные хотелки у каждого свои - кто как хочет, так и решает.
вечером оформлю решение

в двух словах

Код: (php) [Выделить]
<div itemprop="aggregateRating"
    itemscope itemtype="http://schema.org/AggregateRating">
<?php if ($this->allow_review || $this->config->show_hits){?>
<div class="raiting">
    <?php if ($this->config->show_hits){?>
    <?php print _JSHOP_HITS?>:
    <?php print $this->product->hits;?>
    <?php ?>
    <?php if ($this->allow_review && $this->config->show_hits){?>
     |
    <?php ?>
    <?php if ($this->allow_review){?>
   <?php print showMarkStar($this->product->average_rating);?>                   
    <?php ?>
</div>
<?php ?>
<div style="display:none">
<span itemprop="ratingValue"><?php print $this->product->average_rating;?></span>
<span itemprop="bestRating">10</span>
<span itemprop="reviewCount"><?php print $this->product->reviews_count;?></span>
</div>
</div>
файл сами знаете какой :)

Тут никто ничего не требует. Ну раз уж написано в описании что магазин делали люди разбирающиеся в seo...
Спасибо Вам большое за помощь.

*

Оффлайн ELLE

кому нужно подробнее - Микроразметка рейтинга (звезд) в Joomshopping расписала во всех подробностях для последней версии Jshop 3.10, думаю для ранних версий особой разницы не будет. Если будут вопросы спрашивайте тут.

*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
кому нужно подробнее - Микроразметка рейтинга (звезд) в Joomshopping расписала во всех подробностях для последней версии Jshop 3.10, думаю для ранних версий особой разницы не будет. Если будут вопросы спрашивайте тут.
ELLE! Просто золото! Настаиваю  на добавлении в FAQ!
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"

*

Оффлайн ELLE

по поводу добавления в фак - это nevigen решает, я только за  ^-^
если руки дойдут, то сделаю еще разметку отзывов - тоже полезно будет.
« Последнее редактирование: 18.09.2012, 20:31:57 от ELLE »

*

Оффлайн nevigen

  • *****
  • 8831
  • [+]771 / [-]17
  • http://n*****n.com
    • Просмотр профиля
    • Nevigen.com -разработки для Joomla
Многократное и однозначное ДА !
Добавлено в FAQ!
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !

*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
Вот такая вот выдача у меня получилась:
http://www.google.com/webmasters/tools/richsnippets?url=http%3A%2F%2Fdeco-gallery.ru%2Ftovary%2Fkrupnye-predmety-interera%2Fstul-kvadr-azhur-so-spinkoj-zol-8122

Правда не факт, что Google добавит что либо из этого))
На deco-gallery.ru попробую со сгенерированным рейтингом, а на s-tyres.ru пусть будет естественный.
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"

Elle, интересно будет почитать как еще review правильно добавить. Я полазил в Google и сложилось ощущение, что рейтинг появляется там, где он находит реальные размеченные отзывы.
Я добавил сам ревью, только reviewrating вывести не смог, так как оценка ставится звездами, не знаю как число получить.
« Последнее редактирование: 19.09.2012, 18:48:33 от PhoenixRime »

Рабочий код с изменением от 3.11.1 тут:
http://joomlaforum.ru/index.php/topic,228722.msg1199647.html#msg1199647
« Последнее редактирование: 23.09.2012, 20:52:31 от PhoenixRime »

*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
В общем, как я сделал беспалевные (по моему мнению) для ПС отзывы к каждому товару.  

Делаем экспорт товара в цсв, что бы получить список id товаров. Вместо строки, к примеру, ean вставляем
Код: (sql) [Выделить]
INSERT INTO `префикс_jshopping_products_reviews` SET `product_id` = , вместо date вставляем символ ";", в строке C пишем формулу "=B2:B(последняя строчка в прайсе(у меня 3228(т.е. B2:B3228)) & A2:A3228 &E2
(без лишнего она получается такой =B2:B3228 & & A2:A3228 &E2)
Копируем ее, в вставляем в весь столбец, получаем текст вида INSERT INTO `префикс_jshopping_products_reviews` SET `product_id` =46631;
Код: (sql) [Выделить]
INSERT INTO `префикс_jshopping_products_reviews` SET `product_id` =46632;
INSERT INTO `префикс_jshopping_products_reviews` SET `product_id` =46633;
INSERT INTO `префикс_jshopping_products_reviews` SET `product_id` =46634;
Если понадобится изменить id отзыва (хотя это не обязательно), просто замените в выше указанной формуле  `product_id` на 'review_id',
Вставляем в sql

Делаем всем товарам рейтинг, я поставил 8
Код: (sql) [Выделить]
update jy9so_jshopping_products_reviews set mark = 8
Дальше назовем нашего ревьюера к примеру "Степан"
Код: (sql) [Выделить]
update jy9so_jshopping_products_reviews set user_name = 'Степан'
Теперь добавляем текст отзыву
Код: (sql) [Выделить]
update jy9so_jshopping_products_reviews set review = 'Это именно то, что было нужно! спасибо Deco gallery!'

Вот и все.....посмотрим, что это даст через 2 недели. Если выдача изменится, сразу отпишу
 
« Последнее редактирование: 20.09.2012, 15:21:17 от pepeto »
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"

*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
Вот мой код,
Код: (php) [Выделить]
<div itemscope itemtype="http://schema.org/Product">
<?php $product $this->product?>
<?php include(dirname(__FILE__)."/load.js.php");?>
<div class="jshop productfull">
<form name = "product" method = "post" action = "<?php print $this->action?>" enctype="multipart/form-data">
    
    <span itemprop="name">
<h1><?php print $this->product->name?><?php if ($this->config->show_product_code){?> <span class="jshop_code_prod">(<?php print _JSHOP_EAN?>: <span id="product_code"><?php print $this->product->getEan();?></span>)</span><?php }?></h1>
</span>  
    <?php print $this->_tmp_product_html_start;?>
    <?php if ($this->config->display_button_print) print printContent();?>
    
    <?php include(dirname(__FILE__)."/ratingandhits.php");?>
        
    <table class = "jshop">
    <tr>
        <td width = "100">
            <?php print $this->_tmp_product_html_before_image;?>            
            <?php if ($product->label_id){?>
                <div class="product_label">
                    <?php if ($product->_label_image){?>
                        <img src="<?php print $product->_label_image?>" alt="<?php print htmlspecialchars($product->_label_name)?>" />
                    <?php }else{?>
                        <span class="label_name"><?php print $product->_label_name;?></span>
                    <?php }?>
                </div>
            <?php }?>
            <?php if (count($this->videos)){?>
                <?php foreach($this->videos as $k=>$video){?>
                    <a style = "display:none" class = "video_full" id = "hide_video_<?php print $k;?>" href = ""></a>
                <?php ?>
            <?php }?>
            
            <span id='list_product_image_middle'>
            <?php if(!count($this->images)){?>
                <img id = "main_image" src = "<?php print $this->image_product_path?>/<?php print $this->noimage?>" alt = "<?php print htmlspecialchars($this->product->name)?>" />
            <?php }?>
            <?php foreach($this->images as $k=>$image){?>
            <a class="lightbox" id="main_image_full_<?php print $image->image_id?>" href="<?php print $this->image_product_path?>/<?php print $image->image_full;?>" <?php if ($k!=0){?>style="display:none"<?php }?>>
                <img id = "main_image_<?php print $image->image_id?>" src = "<?php print $this->image_product_path?>/<?php print $image->image_name;?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" />
            </a>
            <?php }?>
            </span>
            <?php print $this->_tmp_product_html_after_image;?>
            
            <?php if ($this->config->product_show_manufacturer_logo && $this->product->manufacturer_info->manufacturer_logo!=""){?>
            <div class="manufacturer_logo">
                <a href="<?php print SEFLink('index.php?option=com_jshopping&controller=manufacturer&task=view&manufacturer_id='.$this->product->product_manufacturer_id2);?>">
                    <img src="<?php print $this->config->image_manufs_live_path."/".$this->product->manufacturer_info->manufacturer_logo?>" alt="<?php print htmlspecialchars($this->product->manufacturer_info->name);?>" title="<?php print htmlspecialchars($this->product->manufacturer_info->name);?>" border="0" />
                </a>
            </div>
            <?php }?>
        </td>
        <td class = "jshop_img_description" style = "padding-left: 10px;">
            <?php print $this->_tmp_product_html_before_image_thumb;?>
            <span id='list_product_image_thumb'>
            <?php if ( (count($this->images)>1) || (count($this->videos) && count($this->images)) ) {?>
                <?php foreach($this->images as $k=>$image){?>
                    <img class="jshop_img_thumb" src="<?php print $this->image_product_path?>/<?php print $image->image_thumb?>" alt="<?php print htmlspecialchars($image->_title)?>" title="<?php print htmlspecialchars($image->_title)?>" onclick="showImage(<?php print $image->image_id?>)" />
                <?php }?>
            <br />
            <?php }?>
            </span>
            <?php print $this->_tmp_product_html_after_image_thumb;?>
            <?php if (count($this->videos)){?>
                <?php foreach($this->videos as $k=>$video){?>                
                    <a href="<?php print $this->video_product_path?>/<?php print $video->video_name?>" id="video_<?php print $k?>" onclick = "showVideo(this.id, '<?php print $this->config->video_product_width;?>', '<?php print $this->config->video_product_height;?>'); return false;"><img class="jshop_video_thumb" src = "<?php print $this->video_image_preview_path."/"; if ($video->video_preview) print $video->video_preview; else print 'video.gif'?>" alt = "video" /></a>
                <?php ?>
            <?php }?>
            <?php print $this->_tmp_product_html_after_video;?>
        </td>
    </tr>
    </table>

    <div class = "jshop_prod_description">
<span itemprop="description">
        <?php print $this->product->description?>
</span>
    </div>        
    
    <?php if ($this->product->product_url!=""){?>
    <div class="prod_url">
        <a target="_blank" href="<?php print $this->product->product_url;?>"><?php print _JSHOP_READ_MORE?></a>
    </div>
    <?php }?>    
    <br />
    
    <?php if ($this->config->product_show_manufacturer_logo && $this->product->manufacturer_info->name!=""){?>
    <div class="manufacturer_name">
        <?php print _JSHOP_MANUFACTURER;?>: <?php print $this->product->manufacturer_info->name;?>
    </div>
    <?php }?>
    
    <?php if (count($this->attributes)){?>
    <div class = "jshop_prod_attributes">
        <table class = "jshop">
        <?php foreach($this->attributes as $attribut){?>
        <tr>
            <td width = "50">
                <?php print $attribut->attr_name?>:
            </td>
            <td>
                <span id='block_attr_sel_<?php print $attribut->attr_id?>'>
                <?php print $attribut->selects?>
                </span>
            </td>
        </tr>
        <?php }?>
        </table>
    </div>
    <br />
    <?php }?>
    
    <?php if (count($this->product->freeattributes)){?>
    <div class="prod_free_attribs">
        <table class = "jshop">
        <?php foreach($this->product->freeattributes as $freeattribut){?>
        <tr>
            <td class="name" width="80"><?php print $freeattribut->name;?> <?php if ($freeattribut->required){?><span>*</span><?php }?></td>
            <td class="field"><?php print $freeattribut->input_field;?></td>
        </tr>
        <?php }?>
        </table>
        <?php if ($this->product->freeattribrequire) {?>
        <div class="requiredtext">* <?php print _JSHOP_REQUIRED?></div>
        <?php }?>
    </div>
    <br/>
    <?php }?>
    
    <?php if ($this->product->product_is_add_price){?>
    <div class="price_prod_qty_list_head"><?php print _JSHOP_PRICE_FOR_QTY?></div>
    <table class="price_prod_qty_list">
    <?php foreach($this->product->product_add_prices as $k=>$add_price){?>
        <tr>
            <td class="qty_from" <?php if ($add_price->product_quantity_finish==0){?>colspan="3"<?php ?>>
                <?php if ($add_price->product_quantity_finish==0) print _JSHOP_FROM?>
                <?php print $add_price->product_quantity_start?> <?php print $this->product->product_add_price_unit?>
            </td>
            <?php if ($add_price->product_quantity_finish 0){?>
            <td class="qty_line"> - </td>
            <?php ?>
            <?php if ($add_price->product_quantity_finish 0){?>
            <td class="qty_to">
                <?php print $add_price->product_quantity_finish?> <?php print $this->product->product_add_price_unit?>
            </td>
            <?php ?>
            <td class="qty_price">            
                <span id="pricelist_from_<?php print $add_price->product_quantity_start?>"><?php print formatprice($add_price->price)?><?php print $add_price->ext_price?></span> <span class="per_piece">/ <?php print $this->product->product_add_price_unit?></span>
            </td>
        </tr>
    <?php }?>
    </table>
    <br/>
    <?php }?>
    
    <?php if ($this->product->product_old_price 0){?>
    <div class="old_price">
        <?php print _JSHOP_OLD_PRICE?> <span class="old_price" id="old_price"><?php print formatprice($this->product->product_old_price)?></span>
    </div>
    <?php }?>
    
    <?php if ($this->product->product_price_default && $this->config->product_list_show_price_default){?>
        <div class="default_price"><?php print _JSHOP_DEFAULT_PRICE;?>: <span id="pricedefault"><?php print formatprice($this->product->product_price_default)?></span></div>
    <?php }?>        
    
    <?php if ($this->product->_display_price){?>
    <div class="prod_price">
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<span itemprop="price">
        <?php print _JSHOP_PRICE?>: <span id="block_price"><?php print formatprice($this->product->getPriceCalculate())?><?php print $this->product->_tmp_var_price_ext;?></span>
    </span></div><div>
    <?php }?>
    <?php print $this->product->_tmp_var_bottom_price;?>
    
    <?php if ($this->config->show_tax_in_product && $this->product->product_tax 0){?>
        <span class="taxinfo"><?php print productTaxInfo($this->product->product_tax);?></span>
    <?php }?>
    <?php if ($this->config->show_plus_shipping_in_product){?>
        <span class="plusshippinginfo"><?php print sprintf(_JSHOP_PLUS_SHIPPING$this->shippinginfo);?></span>
    <?php }?>
    <?php if ($this->product->delivery_time != ''){?>
        <div class="deliverytime"><?php print _JSHOP_DELIVERY_TIME?>: <?php print $this->product->delivery_time?></div>
    <?php }?>
    <?php if ($this->config->product_show_weight && $this->product->product_weight 0){?>
        <div class="productweight"><?php print _JSHOP_WEIGHT?>: <span id="block_weight"><?php print formatweight($this->product->getWeight())?></span></div>
    <?php }?>
    
    <?php if ($this->product->product_basic_price_show){?>
        <div class="prod_base_price"><?php print _JSHOP_BASIC_PRICE?>: <span id="block_basic_price"><?php print formatprice($this->product->product_basic_price_calculate)?></span> / <?php print $this->product->product_basic_price_unit_name;?></div>
    <?php }?>
    
    <?php if (is_array($this->product->extra_field)){?>
        <div class="extra_fields">
        <?php $extra_field_group "";
        foreach(
$this->product->extra_field as $extra_field){
            if (
$extra_field_group!=$extra_field['groupname']){ 
                
$extra_field_group $extra_field['groupname'];
            
?>

            <div class='extra_fields_group'><?php print $extra_field_group?></div>
            <?php }?>
            <div><?php print $extra_field['name'];?>: <?php print $extra_field['value'];?></div>
        <?php }?>
        </div>
    <?php }?>
    
    <?php if ($this->product->vendor_info){?>
        <div class="vendorinfo">
            <?php print _JSHOP_VENDOR?>: <?php print $this->product->vendor_info->shop_name?> (<?php print $this->product->vendor_info->l_name." ".$this->product->vendor_info->f_name;?>),
            (
            <?php if ($this->config->product_show_vendor_detail){?><a href="<?php print $this->product->vendor_info->urlinfo?>"><?php print _JSHOP_ABOUT_VENDOR?></a>,<?php }?>
            <a href="<?php print $this->product->vendor_info->urllistproducts?>"><?php print _JSHOP_VIEW_OTHER_VENDOR_PRODUCTS?></a> )
        </div>
    <?php }?>
    
    <?php if (!$this->config->hide_text_product_not_available){ ?>
        <div class = "not_available" id="not_available"><?php print $this->available?></div>
    <?php }?>
    
    <?php if ($this->config->product_show_qty_stock){?>
        <div class="qty_in_stock"><?php print _JSHOP_QTY_IN_STOCK?>: <span id="product_qty"><?php print sprintQtyInStock($this->product->qty_in_stock);?></span></div>
    <?php }?>
    
    <?php print $this->_tmp_product_html_before_buttons;?>
    <?php if (!$this->hide_buy){?>                        
        <table class="prod_buttons">
        <tr>
            <td class="prod_qty">
                <?php print _JSHOP_QUANTITY?>:&nbsp;
            </td>
            <td class="prod_qty_input">
                <input type = "text" name = "quantity" id = "quantity" onkeyup="reloadPrices();" class = "inputbox" style = "width: 20px" value = "<?php print $this->default_count_product?>" /><?php print $this->_tmp_qty_unit;?>
            </td>        
            <td class = "buttons">            
                <input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_CART?>" onclick="jQuery('#to').val('cart');" />
                <?php if ($this->enable_wishlist){?>
                    <input type = "submit" class = "button" value = "<?php print _JSHOP_ADD_TO_WISHLIST?>" onclick="jQuery('#to').val('wishlist');" />
                <?php }?>
                <?php print $this->_tmp_product_html_buttons;?>
            </td>
            <td id = "jshop_image_loading" style = "display:none"></td>
        </tr>
        </table>
    <?php }?>
    <?php print $this->_tmp_product_html_after_buttons;?>

<input type="hidden" name="to" id='to' value="cart" />
<input type = "hidden" name = "product_id" id = "product_id" value = "<?php print $this->product->product_id?>" />
<input type = "hidden" name = "category_id" id = "category_id" value = "<?php print $this->category_id?>" />
</form>
<?php

if (count ($this->demofiles)){?>

<div class="list_product_demo">
<table>
    <?php foreach($this->demofiles as $demo){?>
    <tr>
        <td class="descr"><?php print $demo->demo_descr?></td>            
        <?php if ($this->config->demo_type == 1) { ?>
            <td class="download"><a target="_blank" href="<?php print $this->config->demo_product_live_path."/".$demo->demo;?>" onClick="popupWin = window.open('<?php print SEFLink("index.php?option=com_jshopping&controller=product&task=showmedia&media_id=".$demo->id);?>', 'video', 'width=<?php print $this->config->video_product_width;?>,height=<?php print $this->config->video_product_height;?>,top=0,resizable=no,location=no'); popupWin.focus(); return false;"><img src = "<?php print $this->config->live_path.'images/play.gif'?>" alt = "play" title = "play"/></a></td>
        <?php } else { ?>
            <td class="download"><a target="_blank" href="<?php print $this->config->demo_product_live_path."/".$demo->demo;?>"><?php print _JSHOP_DOWNLOAD;?></a></td>
        <?php }?>
    </tr>
    <?php }?>
</table>
</div>
<?php ?>

<?php if ($this->config->product_show_button_back){?>
<br/>
<input type="button" class = "button" value="<?php print _JSHOP_BACK;?>" onclick="<?php print $this->product->button_back_js_click;?>" />
<?php }?>
<?php
    
print $this->_tmp_product_html_before_related;
    include(
dirname(__FILE__)."/related.php");
    print 
$this->_tmp_product_html_before_review;
    include(
dirname(__FILE__)."/review.php");
?>

<a href="https://plus.google.com/108255161352031913155" rel="publisher">Мы в Google+</a>
<?php print $this->_tmp_product_html_end;?>
</div>
</div>
[/code=php]

Прошу обратить внимание на то, как я вывел цену
<div class="prod_price">
<div itemprop="offers" itemscope itemtype="http://schema.org/Offer">
<span itemprop="price">
        <?php print _JSHOP_PRICE?>: <span id="block_price"><?php print formatprice($this->product->getPriceCalculate())?><?php print $this->product->_tmp_var_price_ext;?></span>
    </span></div><div>
« Последнее редактирование: 20.09.2012, 15:18:38 от pepeto »
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"

*

Оффлайн ELLE

Elle, интересно будет почитать как еще review правильно добавить. Я полазил в Google и сложилось ощущение, что рейтинг появляется там, где он находит реальные размеченные отзывы.
у меня на старом сайте, где стоит вообще VM размечены только звезды - в сниппете, в выдаче, рейтинг есть

PS: ребята, когда BB-код [ code ] используете, приписывайте пожалуйста php, так - [ code=php ], ибо подсветки кода нет - глаза сломать можно

*

Оффлайн pepeto

  • ***
  • 181
  • [+]18 / [-]1
  • E-commerce God
    • Просмотр профиля
    • Интернет магазин предметов декора и интерьера
Все работает. Содержание файла ревью. Что не так ELLE поправит я думаю
Код: (php) [Выделить]
<div itemprop="review" itemscope itemtype="http://schema.org/Review">
<?php if ($this->allow_review){?>
    <h2><?php print _JSHOP_REVIEWS?><?php print $this->product->name?></h2>
    <?php foreach($this->reviews as $curr){?>
        <div class="review_item">
        <div><span itemprop="author"><span class="review_user"><?php print $curr->user_name?></span></span>, <span class='review_time'><?php print formatdate($curr->time);?></span></div>
        <span itemprop="reviewBody"><div class="review_text"><?php print $curr->review?></div></span>
        <?php if ($curr->mark) {?>
            <div class="review_mark"><?php print showMarkStar($curr->mark);?></div>
        <?php ?>
<div class="none">
<span itemprop="reviewRating"><?php print $curr->mark;?></span>
<meta itemprop="datePublished" content="<?php print $curr->time;?>">
</div>
        </div>
    <?php }?>
    <?php if ($this->display_pagination){?>
    <table class="jshop_pagination">
    <tr>
        <td><div class="pagination"><?php print $this->pagination?></div></td>
    </tr>
    </table>
    <?php }?>
    <?php if ($this->allow_review 0){?>
        <?php JHTML::_('behavior.formvalidation'); ?>
        <span  class = "review"><?php print _JSHOP_ADD_REVIEW_PRODUCT?></span>
        <form action="<?php print SEFLink('index.php?option=com_jshopping&controller=product&task=reviewsave');?>" name = "add_review" method = "post" class="form-validate">
        <input type = "hidden" name = "product_id" value = "<?php print $this->product->product_id?>" />
        <input type = "hidden" name = "back_link" value = "<?php print $_SERVER['REQUEST_URI']?>" />
        <table id="jshop_review_write" >
            <tr>
                <td>
                    <?php print _JSHOP_REVIEW_USER_NAME?>
                </td>
                <td>
                    <input type = "text" name = "user_name" class = "inputbox required" value = "<?php print $this->user->username?>"/>
                </td>
            </tr>
            <tr>
                <td>
                    <?php print _JSHOP_REVIEW_USER_EMAIL?>
                </td>
                <td>
                    <input type = "text" name = "user_email" class = "inputbox required validate-email" value = "<?php print $this->user->email?>" />
                </td>
            </tr>
            <tr>
                <td>
                    <?php print _JSHOP_REVIEW_REVIEW?>
                </td>
                <td>
                    <textarea name = "review" rows="4" cols="40" class = "jshop inputbox required" style="width:320px;"></textarea>
                </td>
            </tr>
            <tr>
                <td>
                    <?php print _JSHOP_REVIEW_MARK_PRODUCT?>
                </td>
                <td>
                    <?php  for($i 1$i<=$this->stars_count*$this->parts_count$i++){ ?>
                        <input name="mark" type="radio" class="star {split:<?php print $this->parts_count?>}" value="<?php print $i?>"/>
                    <?php ?>                   
                </td>
            </tr>
            <tr>
                <td></td>
                <td>
                    <input type="submit" class="button validate" value="<?php print _JSHOP_REVIEW_SUBMIT?>" />
                </td>
            </tr>
        </table>
        </form>
    <?php }else{?>
        <div class="review_text_not_login"><?php print $this->text_review?></div>
    <?php ?>
<?php }?>
</div>
Пробельчик бы поставить
Код: (php) [Выделить]
<h2><?php print _JSHOP_REVIEWS?> <?php print $this->product->name?></h2>
"Если задать мне вопрос, на который я не знаю ответа, я отвечу, что не знаю. Но, поверьте, я знаю как его найти, этот ответ, и я его найду. Разве это не главное?" -Х/Ф "В поисках счастья"