|
sharp
|
 |
« : 16.01.2011, 11:20:50 » |
|
Задача: Интегрировать JComments в VirtueMart 1.1.х и добавить систему рейтинга товаров! Как интегрировать JComments в VirtueMart 1.1.х есть хорошая статья на сайте разработчика JComments и на нашем форумеРейтинг мы будем реализовывать испоьзуя плагин Extravote. Итак: ЧАСТЬ ПЕРВАЯ Extravote 1.4 Идея взята отсюда отсюда1.1. устанавливаем Extravote, включаем его, отключаем стандартный плагин рейтинга. 1.2. В настройках VirtueMart разрешаем использовать мамботов / плагинов( “Компоненты->virtuemart“, “Настройки“, “Общие настройки“, ставим галочку “Разрешить использование мамботов / плагинов в описании товара и категории?”). 1.3. Открываем файл plugins/content/ extravote.php Найдите функцию “onPrepareContent” и после её открытием вставьте код: if(!isset($article->id)) { $regex = "#{extravote\s*([0-9]+)}#s"; $article->id = preg_replace_callback( $regex, array($this,'plgGetProductId'), $article->text ); } вконце файла добавте еще одну функцию function plgGetProductId(&$matches) { $id = (int)$matches[1]; return $id; } 1.4. Откройте файл administrator/components/com_virtuemart/html/ shop.browse.phpнаходим строку $product_rating = ps_reviews::allvotes( $db_browse->f('product_id') ); и заменяем ее на $product_rating = JHTML::_('content.prepare', '{extravote '.$db_browse->f("product_id").'}'); готовый extravote.php во вложении. 1.5 В шаблоне товара Flypage* втавляем код на место, где вы хотите сделать вывод рейтинга: <?php $product_rating = JHTML::_('content.prepare', '{extravote '.$product_id.'}'); echo $product_rating; ?> ЧАСТЬ ВТОРАЯ VirtueMart 1.1.х JComments2.1 Откройте файл /administrator/components/com_virtuemart/html/ shop.product_details.phpНайдите строки: /*** Show all reviews available ***/ $product_reviews = ps_reviews::product_reviews( $product_id ); /*** Show a form for writing a review ***/ $product_reviewform = ps_reviews::reviewform( $product_id ); и замените их на: $comments = $mosConfig_absolute_path . '/components/com_jcomments/jcomments.php'; if (file_exists($comments)) { require_once($comments); $product_reviews = JComments::showComments($product_id, 'com_virtuemart', $product_name); $product_reviewform = ""; } 2.2 Откройте файл /administrator/components/com_virtuemart/html/ shop.browse.phpНайдите и удалите или закомментируйте следующую строку: $product_rating = $VM_LANG->_PHPSHOP_CUSTOMER_RATING .": <br />";
|
|
|
|
« Последнее редактирование: 31.03.2011, 16:45:54 от sharp »
|
Записан
|
|
|
|
|
sharp
|
 |
« Ответ #1 : 16.01.2011, 11:25:17 » |
|
МОДЕРАТОРЫ, это всетаки в большей степени относиться к ветке VirtueMart 
|
|
|
|
|
Записан
|
|
|
|
kunev
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 93
|
 |
« Ответ #2 : 16.01.2011, 13:53:08 » |
|
extravote к JComments никакого отношения не имеет. он сам по себе. к тому же на сайте косяк
<!-- ����������� JComments Добавить комментарий
|
|
|
|
« Последнее редактирование: 16.01.2011, 13:57:42 от kunev »
|
Записан
|
|
|
|
|
sharp
|
 |
« Ответ #3 : 16.01.2011, 14:17:41 » |
|
все работает. а никто и не говорил что extravote имеет какое то отношение к JComments
|
|
|
|
« Последнее редактирование: 17.01.2011, 00:18:37 от sharp »
|
Записан
|
|
|
|
kunev
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 93
|
 |
« Ответ #4 : 16.01.2011, 19:59:08 » |
|
это ваш сайт? в дополнительных картинках очередные косяки
|
|
|
|
|
Записан
|
|
|
|
step09
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 65
|
 |
« Ответ #5 : 20.01.2011, 05:42:21 » |
|
Все отлично получилось, спасибо, полезно!
Есть вопрос: возможно ли данный рейтинг вставлять в отображение товаров в категории? (таблица товаров)
|
|
|
|
« Последнее редактирование: 20.01.2011, 07:50:18 от step09 »
|
Записан
|
|
|
|
|
sharp
|
 |
« Ответ #6 : 20.01.2011, 09:38:50 » |
|
да, конечно! <?php $product_rating = JHTML::_('content.prepare', '{extravote '.$product_id.'}'); echo $product_rating; ?> необходимо дабавить в шаблон который отвечает за отображение товаров в категории
|
|
|
|
|
Записан
|
|
|
|
step09
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 65
|
 |
« Ответ #7 : 20.01.2011, 16:43:56 » |
|
Дело в том, что у меня отображение в виде таблицы. За это как я понимаю отвечает файл browse_listtable.tpl.php. А там все устроено немного не так как в browse1.php. Не могу сообразить куда вставить ваш кусок кода. Код browse_listtable.tpl.php: <?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); mm_showMyFileName(__FILE__); ?>
<?php echo $buttons_header // The PDF, Email and Print buttons ?> <?php echo $browsepage_header // The heading, the category description ?> <?php echo $parameter_form // The Parameter search form ?> <?php echo $orderby_form // The sort-by, order-by form PLUS top page navigation ?>
<?php $data =array(); // Holds the rows of products $i = 1; $row = 0; // Counters
// Table header $tableheader[] = $VM_LANG->_('PHPSHOP_CART_NAME'); if( _SHOW_PRICES && $auth['show_prices'] ) { $tableheader[] = $VM_LANG->_('PHPSHOP_CART_PRICE'); } $tableheader[] = $VM_LANG->_('PHPSHOP_PRODUCT_FORM_THUMB_IMAGE'); $tableheader[] = $VM_LANG->_('PHPSHOP_PRODUCT_DESC_TITLE'); //if( _SHOW_PRICES && $auth['show_prices'] && USE_AS_CATALOGUE != '1' ) { // $tableheader[] = $VM_LANG->_('PHPSHOP_CART_ACTION'); //}
// Creates a new HTML_Table object that will help us // to build a table holding all the products $table = new HTML_Table('width="100%"');
$table->addRow( $tableheader, 'class="sectiontableheader"', 'th', true );
foreach( $products as $product ) { foreach( $product as $attr => $val ) { // Using this we make all the variables available in the template // translated example: $this->set( 'product_name', $product_name ); $this->set( $attr, $val ); } $data[$row][] = '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">'.$product['product_name'].'</a><h3 class="browseProductTitle"><a title="<?php echo $product_name ?>" href="<?php echo $product_flypage ?>">';
if( _SHOW_PRICES && $auth['show_prices'] ) { $data[$row][] = '<div style="width:150px">'.$product['product_price'].'</span></div>'; } $img_cell = "<div style='position: relative; '>"; $img_cell .= '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">' . ps_product::image_tag( $product['product_thumb_image'] ) . '</a>'; $img_cell .= "<div style='position: absolute; left: 0; top: 0;'>".$product['new_img']."</div><div style='position: absolute; right: 0; bottom: 0;'>".$product['leader_img']."</div></div>"; $data[$row][] = $img_cell; $data[$row][] = '<div style="width:220px">'.$product['product_s_desc'].'</div>'; //if( $product['has_addtocart'] ) { // $data[$row][] = $product['form_addtocart']; //} //else { // $data[$row][] = '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">' // . $product['product_details'] // . '</a>'; //} $row++; }
// Loop through each row and build the table foreach($data as $key => $value) { $table->addRow( $data[$key], 'class="sectiontableentry'.$i.'"', 'td', true ); $i = $i == 1 ? 2 : 1; } // Display the table echo $table->toHtml(); ?> <br class="clr" /><br /> <?php echo $browsepage_footer ?> <?php // Show Featured Products //if( $this->get_cfg( 'showFeatured', 1 )) { /* featuredproducts(random, no_of_products,category_based) no_of_products 0 = all else numeric amount edit featuredproduct.tpl.php to edit layout */ // echo $ps_product->featuredProducts(true,10,true); //} ?> <?php echo $recent_products ?>
|
|
|
|
|
Записан
|
|
|
|
|
sharp
|
 |
« Ответ #8 : 20.01.2011, 23:54:37 » |
|
а вот так ? <?php echo $product_rating; ?>
|
|
|
|
|
Записан
|
|
|
|
Pashtetdiz
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Пол: 
Сообщений: 83
|
 |
« Ответ #9 : 02.02.2011, 20:41:02 » |
|
Спасибо за решение, но у меня звезды появились и не работают, может версия extravote не такая, выложите какой пользовались !
|
|
|
|
|
Записан
|
|
|
|
|
sharp
|
 |
« Ответ #10 : 02.02.2011, 21:01:37 » |
|
extravote, тут не причем проверте все ли правильно сделали!?
|
|
|
|
|
Записан
|
|
|
|
Pashtetdiz
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Пол: 
Сообщений: 83
|
 |
« Ответ #11 : 02.02.2011, 21:36:04 » |
|
extravote, тут не причем проверте все ли правильно сделали!?
Вы правы, нашел и исправил. Все работает на УРА, спасибо за решение давно искал
|
|
|
|
|
Записан
|
|
|
|
-TroY-
Новичок
Репутация: +0/-0
Offline
Сообщений: 2
|
 |
« Ответ #12 : 04.02.2011, 20:43:01 » |
|
Pashtetdiz, в чем была у тебя проблема, подскажи, может меня на мысль каку наведет. Тоже самое - звезды появились, но не работают ... перепроверил уже раз 10, не могу понять в чем дело.
|
|
|
|
|
Записан
|
|
|
|
Pashtetdiz
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Пол: 
Сообщений: 83
|
 |
« Ответ #13 : 04.02.2011, 20:57:25 » |
|
Pashtetdiz, в чем была у тебя проблема, подскажи, может меня на мысль каку наведет. Тоже самое - звезды появились, но не работают ... перепроверил уже раз 10, не могу понять в чем дело.
После установки плагина скачай файл из темы и им замени свой в папке твой сайт\plugins\content\extrovote.php
|
|
|
|
|
Записан
|
|
|
|
-TroY-
Новичок
Репутация: +0/-0
Offline
Сообщений: 2
|
 |
« Ответ #14 : 05.02.2011, 13:02:03 » |
|
Все заработало после того как скачал версию плагина extravote с сайта http://joomla.vargas.co.cr/index.php?option=com_docman&task=cat_view&gid=23&Itemid=17. Все-таки от версии зависит. В любом случае, sharp, огромное тебе спасибо, что нашел такое решение и поделился с людьми.
|
|
|
|
|
Записан
|
|
|
|
|
sharp
|
 |
« Ответ #15 : 05.02.2011, 21:35:16 » |
|
Пользуйтесь на здоровье!
|
|
|
|
|
Записан
|
|
|
|
htline
Новичок
Репутация: +0/-0
Offline
Сообщений: 2
|
 |
« Ответ #16 : 15.03.2011, 10:05:31 » |
|
Помогите пожалуйста, у меня вместо звёзд выводится {extravote 50157} где 50157 - id товара  , 100 раз проверил, куда копать не пойму
|
|
|
|
|
Записан
|
|
|
|
htline
Новичок
Репутация: +0/-0
Offline
Сообщений: 2
|
 |
« Ответ #17 : 15.03.2011, 11:10:05 » |
|
Так, вощем починил, касяк был с правами на хостинге, т.е. файлики не перезаписывались, говорит что перезаписывается, а на самом деле нет, удалил вручную всё из папки плагина и записал заново, так же делал и с карточкой вывода, т.е. старый файл удалил, новый записал, НЕ ПЕРЕЗАПИСЫВАЛ! и всё заработало пример: ___expert-cm.ru
|
|
|
|
|
Записан
|
|
|
|
vano3d
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 13
|
 |
« Ответ #18 : 30.03.2011, 14:03:46 » |
|
Спасибо автору за тему - все заработало. Разместил нужный код в нужном месте Flypage - работает нормально. Но оценку товара нужно видеть не только в карточке товара, а и в списке товаров в категории. Разместил этот же код в browse_X.php - звездочки отображаются работают, но живут своей жизнью!  То есть, проголосовав за товар в категории, этот рейтинг не учитывается в самом товаре, в карточке товара и наоборот. При этом вылазит еще баг: если проголосовать за товар в категории, то после обновления страницы такой же рейтинг проставляется всем товарам в данной категории! Сталкивался кто-нибудь с такой проблемой? Как жить дальше? Делал все по инструкции, Joomla 1.5.22 + VM 1.1.5
|
|
|
|
« Последнее редактирование: 30.03.2011, 14:09:50 от vano3d »
|
Записан
|
|
|
|
|
Infosakh
|
 |
« Ответ #19 : 30.03.2011, 14:10:13 » |
|
кто нибудь киньте ссылку что получилось поглядеть 
|
|
|
|
|
Записан
|
|
|
|
Stim_ka
Осваиваюсь на форуме
 
Репутация: +9/-0
Offline
Пол: 
Сообщений: 38
|
 |
« Ответ #20 : 30.03.2011, 17:17:18 » |
|
Здравствуйте. На локалке все работает на ура! А вот на хостинге, все выглядит нормально, но при попытке оценить товар - ничего не происходит. т.е. бегунок крутится, но в итоге оценка не запоминается. В чем может быть проблема?
Помогите, пожалуйста!
|
|
|
|
« Последнее редактирование: 30.03.2011, 19:21:48 от Stim_ka »
|
Записан
|
|
|
|
Stim_ka
Осваиваюсь на форуме
 
Репутация: +9/-0
Offline
Пол: 
Сообщений: 38
|
 |
« Ответ #21 : 30.03.2011, 17:18:23 » |
|
для Спасибо автору за тему - все заработало. Разместил нужный код в нужном месте Flypage - работает нормально. Но оценку товара нужно видеть не только в карточке товара, а и в списке товаров в категории. Разместил этот же код в browse_X.php - звездочки отображаются работают, но живут своей жизнью!  То есть, проголосовав за товар в категории, этот рейтинг не учитывается в самом товаре, в карточке товара и наоборот. При этом вылазит еще баг: если проголосовать за товар в категории, то после обновления страницы такой же рейтинг проставляется всем товарам в данной категории! Сталкивался кто-нибудь с такой проблемой? Как жить дальше? Делал все по инструкции, Joomla 1.5.22 + VM 1.1.5 в файле shop.browse надо добавить в переменные шаблона значение product_id
|
|
|
|
|
Записан
|
|
|
|
Stim_ka
Осваиваюсь на форуме
 
Репутация: +9/-0
Offline
Пол: 
Сообщений: 38
|
 |
« Ответ #22 : 30.03.2011, 18:02:01 » |
|
Снимаю свой вопрос! Причина была в том, что в базе почему-то не создалась таблица плагина. Добавила ее вручную и все заработало! Спасибо огромное за описанный метод! +1
|
|
|
|
|
Записан
|
|
|
|
|
Infosakh
|
 |
« Ответ #23 : 31.03.2011, 02:39:26 » |
|
ну так что, кто нибудь кинет ссылку у кого что получилось? В шапке топа есть ДЕМО но там я не вижу никакого рейтинга 
|
|
|
|
|
Записан
|
|
|
|
|
sharp
|
 |
« Ответ #24 : 31.03.2011, 07:46:29 » |
|
ну так что, кто нибудь кинет ссылку у кого что получилось? В шапке топа есть ДЕМО но там я не вижу никакого рейтинга  на том сайте рейтинг отключил, по просьбе заказчика.
|
|
|
|
|
Записан
|
|
|
|
|
Infosakh
|
 |
« Ответ #25 : 31.03.2011, 08:03:18 » |
|
просто я давно уже говорил в теме про рейтинги на счет компонента jlvotes, хорошо было бы его прикрутить к VM, но так и нет еще интеграции, вот решил поглядеть что даст extrovote, но хотелось бы увидеть результат, я то знаю чего я хочу, хочется сравнить с моими ожиданиями 
|
|
|
|
|
Записан
|
|
|
|
|
sharp
|
 |
« Ответ #26 : 31.03.2011, 08:12:50 » |
|
|
|
|
|
|
Записан
|
|
|
|
vano3d
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 13
|
 |
« Ответ #27 : 31.03.2011, 09:18:32 » |
|
для в файле shop.browse надо добавить в переменные шаблона значение product_id
А точнее? как это сделать?
|
|
|
|
|
Записан
|
|
|
|
|
Infosakh
|
 |
« Ответ #28 : 31.03.2011, 09:56:10 » |
|
эээ, а в чём принципиальная разница рейтинга родного VMовского и вот этого? ))
|
|
|
|
|
Записан
|
|
|
|
|
sharp
|
 |
« Ответ #29 : 31.03.2011, 10:18:25 » |
|
если тебя устраивает родной, зачем тогда пытался что то другое прикрутить?))
|
|
|
|
|
Записан
|
|
|
|
|