LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
27.05.2012, 00:38:55 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: 1 2 3 4   Вниз
  Добавить закладку  |  Печать  
Автор Тема: VirtueMart 1.1.х JComments + Рейтинг  (Прочитано 15382 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
sharp
Живу я здесь
******

Репутация: +94/-1
Offline Offline

Пол: Мужской
Сообщений: 1436


СМС рассылка от 10 коп


« : 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.х    JComments

2.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 />";


* extravote.zip (2.38 Кб - загружено 520 раз.)
« Последнее редактирование: 31.03.2011, 16:45:54 от sharp » Записан
sharp
Живу я здесь
******

Репутация: +94/-1
Offline Offline

Пол: Мужской
Сообщений: 1436


СМС рассылка от 10 коп


« Ответ #1 : 16.01.2011, 11:25:17 »

МОДЕРАТОРЫ, это всетаки в большей степени относиться к ветке  VirtueMart Azn
Записан
kunev
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 93


« Ответ #2 : 16.01.2011, 13:53:08 »

extravote к JComments никакого отношения не имеет. он сам по себе. к тому же на сайте косяк

<!-- ����������� JComments
Добавить комментарий
« Последнее редактирование: 16.01.2011, 13:57:42 от kunev » Записан
sharp
Живу я здесь
******

Репутация: +94/-1
Offline Offline

Пол: Мужской
Сообщений: 1436


СМС рассылка от 10 коп


« Ответ #3 : 16.01.2011, 14:17:41 »

все работает.
а никто и не говорил что extravote имеет какое то отношение к  JComments
« Последнее редактирование: 17.01.2011, 00:18:37 от sharp » Записан
kunev
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 93


« Ответ #4 : 16.01.2011, 19:59:08 »

это ваш сайт? в дополнительных картинках очередные косяки
Записан
step09
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Сообщений: 65


« Ответ #5 : 20.01.2011, 05:42:21 »

Все отлично получилось, спасибо, полезно!

Есть вопрос: возможно ли данный рейтинг вставлять в отображение товаров в категории? (таблица товаров)
« Последнее редактирование: 20.01.2011, 07:50:18 от step09 » Записан
sharp
Живу я здесь
******

Репутация: +94/-1
Offline Offline

Пол: Мужской
Сообщений: 1436


СМС рассылка от 10 коп


« Ответ #6 : 20.01.2011, 09:38:50 »

да, конечно!
Код:
<?php
$product_rating = JHTML::_('content.prepare', '{extravote '.$product_id.'}');
echo $product_rating;
?>
необходимо дабавить в шаблон который отвечает за  отображение товаров в категории
Записан
step09
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline 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
Живу я здесь
******

Репутация: +94/-1
Offline Offline

Пол: Мужской
Сообщений: 1436


СМС рассылка от 10 коп


« Ответ #8 : 20.01.2011, 23:54:37 »

а вот так ?
Код:
<?php echo $product_rating; ?>
Записан
Pashtetdiz
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 83


« Ответ #9 : 02.02.2011, 20:41:02 »

Спасибо за решение, но у меня звезды появились и не работают, может версия extravote не такая, выложите какой пользовались  !
Записан
sharp
Живу я здесь
******

Репутация: +94/-1
Offline Offline

Пол: Мужской
Сообщений: 1436


СМС рассылка от 10 коп


« Ответ #10 : 02.02.2011, 21:01:37 »

extravote, тут не причем проверте все ли правильно сделали!?
Записан
Pashtetdiz
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 83


« Ответ #11 : 02.02.2011, 21:36:04 »

extravote, тут не причем проверте все ли правильно сделали!?
Вы правы, нашел и исправил. Все работает на УРА, спасибо за решение давно искал
Записан
-TroY-
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #12 : 04.02.2011, 20:43:01 »

Pashtetdiz, в чем была у тебя проблема, подскажи, может меня на мысль каку наведет. Тоже самое - звезды появились, но не работают ... перепроверил уже раз 10, не могу понять в чем дело.
Записан
Pashtetdiz
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 83


« Ответ #13 : 04.02.2011, 20:57:25 »

Pashtetdiz, в чем была у тебя проблема, подскажи, может меня на мысль каку наведет. Тоже самое - звезды появились, но не работают ... перепроверил уже раз 10, не могу понять в чем дело.
После установки плагина скачай файл из темы и им замени свой в папке твой сайт\plugins\content\extrovote.php
Записан
-TroY-
Новичок
*

Репутация: +0/-0
Offline 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
Живу я здесь
******

Репутация: +94/-1
Offline Offline

Пол: Мужской
Сообщений: 1436


СМС рассылка от 10 коп


« Ответ #15 : 05.02.2011, 21:35:16 »

Пользуйтесь на здоровье!
Записан
htline
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #16 : 15.03.2011, 10:05:31 »

Помогите пожалуйста, у меня вместо звёзд выводится {extravote 50157} где 50157 - id товара  Sad , 100 раз проверил, куда копать не пойму
Записан
htline
Новичок
*

Репутация: +0/-0
Offline Offline

Сообщений: 2


« Ответ #17 : 15.03.2011, 11:10:05 »

Так, вощем починил, касяк был с правами на хостинге, т.е. файлики не перезаписывались, говорит что перезаписывается, а на самом деле нет, удалил вручную всё из папки плагина и записал заново, так же делал и с карточкой вывода, т.е. старый файл удалил, новый записал, НЕ ПЕРЕЗАПИСЫВАЛ! и всё заработало пример: ___expert-cm.ru
Записан
vano3d
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 13


« Ответ #18 : 30.03.2011, 14:03:46 »

Спасибо автору за тему - все заработало.

Разместил нужный код в нужном месте Flypage - работает нормально.

Но оценку товара нужно видеть не только в карточке товара, а и в списке товаров в категории.
Разместил этот же код в browse_X.php - звездочки отображаются работают, но живут своей жизнью!  Shocked То есть, проголосовав за товар в категории, этот рейтинг не учитывается в самом товаре, в карточке товара и наоборот.
При этом вылазит еще баг: если проголосовать за товар в категории, то после обновления страницы такой же рейтинг проставляется всем товарам в данной категории!

Сталкивался кто-нибудь с такой проблемой? Как жить дальше?

Делал все по инструкции, Joomla 1.5.22 + VM 1.1.5
« Последнее редактирование: 30.03.2011, 14:09:50 от vano3d » Записан
Infosakh
Живу я здесь
******

Репутация: +66/-0
Offline Offline

Сообщений: 1331



« Ответ #19 : 30.03.2011, 14:10:13 »

кто нибудь киньте ссылку что получилось поглядеть  Smiley
Записан
Stim_ka
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Пол: Женский
Сообщений: 38



« Ответ #20 : 30.03.2011, 17:17:18 »

Здравствуйте.
На локалке все работает на ура!
А вот на хостинге, все выглядит нормально, но при попытке оценить товар - ничего не происходит.
т.е. бегунок крутится, но в итоге оценка не запоминается.
В чем может быть проблема?

Помогите, пожалуйста!
« Последнее редактирование: 30.03.2011, 19:21:48 от Stim_ka » Записан
Stim_ka
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Пол: Женский
Сообщений: 38



« Ответ #21 : 30.03.2011, 17:18:23 »

для
Спасибо автору за тему - все заработало.

Разместил нужный код в нужном месте Flypage - работает нормально.

Но оценку товара нужно видеть не только в карточке товара, а и в списке товаров в категории.
Разместил этот же код в browse_X.php - звездочки отображаются работают, но живут своей жизнью!  Shocked То есть, проголосовав за товар в категории, этот рейтинг не учитывается в самом товаре, в карточке товара и наоборот.
При этом вылазит еще баг: если проголосовать за товар в категории, то после обновления страницы такой же рейтинг проставляется всем товарам в данной категории!

Сталкивался кто-нибудь с такой проблемой? Как жить дальше?

Делал все по инструкции, Joomla 1.5.22 + VM 1.1.5


в файле shop.browse надо добавить в переменные шаблона значение product_id
Записан
Stim_ka
Осваиваюсь на форуме
***

Репутация: +9/-0
Offline Offline

Пол: Женский
Сообщений: 38



« Ответ #22 : 30.03.2011, 18:02:01 »

Снимаю свой вопрос!
Причина была в том, что в базе почему-то не создалась таблица плагина. Добавила ее вручную и все заработало!
Спасибо огромное за описанный метод!
+1
Записан
Infosakh
Живу я здесь
******

Репутация: +66/-0
Offline Offline

Сообщений: 1331



« Ответ #23 : 31.03.2011, 02:39:26 »

ну так что, кто нибудь кинет ссылку у кого что получилось? В шапке топа есть ДЕМО но там я не вижу никакого рейтинга  Grin
Записан
sharp
Живу я здесь
******

Репутация: +94/-1
Offline Offline

Пол: Мужской
Сообщений: 1436


СМС рассылка от 10 коп


« Ответ #24 : 31.03.2011, 07:46:29 »

ну так что, кто нибудь кинет ссылку у кого что получилось? В шапке топа есть ДЕМО но там я не вижу никакого рейтинга  Grin
на том сайте рейтинг отключил, по просьбе заказчика.
Записан
Infosakh
Живу я здесь
******

Репутация: +66/-0
Offline Offline

Сообщений: 1331



« Ответ #25 : 31.03.2011, 08:03:18 »

просто я давно уже говорил в теме про рейтинги на счет компонента jlvotes, хорошо было бы его прикрутить к VM, но так и нет еще интеграции, вот решил поглядеть что даст extrovote, но хотелось бы увидеть результат, я то знаю чего я хочу, хочется сравнить с моими ожиданиями  Smiley
Записан
sharp
Живу я здесь
******

Репутация: +94/-1
Offline Offline

Пол: Мужской
Сообщений: 1436


СМС рассылка от 10 коп


« Ответ #26 : 31.03.2011, 08:12:50 »

Пожалуйста Azn
http://vashkaprise.ru/component/virtuemart/category/11-kosmetika-dlya-mugchin.html
Записан
vano3d
Захожу иногда
**

Репутация: +0/-0
Offline Offline

Пол: Мужской
Сообщений: 13


« Ответ #27 : 31.03.2011, 09:18:32 »

для
в файле shop.browse надо добавить в переменные шаблона значение product_id
А точнее? как это сделать?
Записан
Infosakh
Живу я здесь
******

Репутация: +66/-0
Offline Offline

Сообщений: 1331



« Ответ #28 : 31.03.2011, 09:56:10 »

эээ, а в чём принципиальная разница рейтинга родного VMовского и вот этого? ))
Записан
sharp
Живу я здесь
******

Репутация: +94/-1
Offline Offline

Пол: Мужской
Сообщений: 1436


СМС рассылка от 10 коп


« Ответ #29 : 31.03.2011, 10:18:25 »

если тебя устраивает родной, зачем тогда пытался что то другое прикрутить?))
Записан
Страниц: 1 2 3 4   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.16 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet