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

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Ссылка на "product_full_image" в "productsnapshot.tpl.php"  (Прочитано 1570 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
Chifu
Осваиваюсь на форуме
***

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

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



« : 02.02.2011, 07:08:50 »

Собственно сабж.

Как внедрить переменную в файл "productsnapshot.tpl.php" которая отвечала бы за ссылку на полное изображение выводимого товара?
Задача проста, при клике на уменьшенное изображение товара (product_thumb_image) в lightbox'e выводилась бы большая картинка, что-бы это можно было использовать не только в "сопутствующих товарах" но и в "mod_virtuemart_randomprod", "mod_virtuemart_lastomprod" и других.

Может уже где-то здесь это обсуждалось, но я не нашёл Sad

Помогите решить эту задачку  !
Записан
 
abc_ua
Захожу иногда
**

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

Сообщений: 8


« Ответ #1 : 16.05.2011, 16:13:31 »

поддерживаю, меня также интересует данная проблема, хелп!
Записан
beagler
Moderator
*****

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

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


http://beagler.ru/


« Ответ #2 : 16.05.2011, 16:18:51 »

ну так в фукции productsnapshot в ps_product.php
Записан
abc_ua
Захожу иногда
**

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

Сообщений: 8


« Ответ #3 : 16.05.2011, 16:32:37 »

beagler, спс за направление, где копать


Кажется разобрался:
1) в файле /administrator/components/com_virtuemart/classes/ps_product.php ищем function product_snapshot,
2) далее ищем строку $q = "SELECT product_id, product_name, product_parent_id, product_thumb_image FROM #__{vm}_product WHERE product_sku='$product_sku'";, дописываем туда product_full_image, получается $q = "SELECT product_id, product_name, product_parent_id, product_thumb_image, product_full_image FROM #__{vm}_product WHERE product_sku='$product_sku'";
3) после строки $tpl->set( 'product_thumb_image', $db->f("product_thumb_image"), "alt=\"".$db->f("product_name")."\""); я дописал $tpl->set( 'product_full_image', $db->f("product_full_image"));, как я понял с помощью $tpl->set вводится новая переменная product_full_image, в которую пишется ответ запроса из бд $db->f("product_full_image")
« Последнее редактирование: 16.05.2011, 19:58:29 от abc_ua » Записан
Chifu
Осваиваюсь на форуме
***

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

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



« Ответ #4 : 30.05.2011, 11:18:26 »

Решил написать в темку, чтобы закрыть вопрос так сказать Azn

Открываем ps_product.php который лежит в administrator/components/com_virtuemart/classes/ и меняем код функции product_snapshot строка приблизительно 2410. Можете заменить функцию полностью.
Код
	function product_snapshot( $product_sku, $show_price=true, $show_addtocart=true, $show_product_name = true ) {
 
global $sess, $mm_action_url;
 
$db = new ps_DB;
 
require_once(CLASSPATH.'ps_product_category.php');
$ps_product_category = new ps_product_category;
 
$q = "SELECT product_id, product_name, product_parent_id, product_thumb_image, product_full_image FROM #__{vm}_product WHERE product_sku='$product_sku'";
$db->query( $q );
 
if ($db->next_record()) {
$product_id = $db->f("product_id" );
$tpl = new $GLOBALS['VM_THEMECLASS']();
 
$cid = $ps_product_category->get_cid( $product_id );
 
$tpl->set( 'product_id', $product_id);
$tpl->set( 'product_name', $db->f("product_name") );
$tpl->set( 'show_product_name', $show_product_name );
 
if ($db->f("product_parent_id")) {
$url = "?page=shop.product_details&category_id=$cid&flypage=".$this->get_flypage($db->f("product_parent_id"));
$url .= "&product_id=" . $db->f("product_parent_id");
} else {
$url = "?page=shop.product_details&category_id=$cid&flypage=".$this->get_flypage($db->f("product_id"));
$url .= "&product_id=" . $db->f("product_id");
}
$product_link = $sess->url($mm_action_url. "index.php" . $url);
$tpl->set( 'product_link', $product_link );
$tpl->set( 'product_thumb_image', $db->f("product_thumb_image"), "alt=\"".$db->f("product_name")."\"");
$tpl->set( 'product_full_image', $db->f("product_full_image"), "alt=\"".$db->f("product_name")."\"");
 
if (_SHOW_PRICES == '1' && $show_price) {
// Show price, but without "including X% tax"
$price = $this->show_price( $db->f("product_id"), true );
$tpl->set( 'price', $price );
}
if (USE_AS_CATALOGUE != 1 && $show_addtocart
&& isset( $GLOBALS['product_info'][$product_id]['price']['product_price_id'] ) // Product must have a price to add it to cart
&& !$this->product_has_attributes($product_id, true)  // Parent Products and Products with attributes can't be added to cart this way
) {
$url = "?page=shop.cart&func=cartAdd&product_id=" .  $db->f("product_id");
$addtocart_link = $sess->url($mm_action_url. "index.php" . $url);
$tpl->set( 'addtocart_link', $addtocart_link );
}
return $tpl->fetch( 'common/productsnapshot.tpl.php');
}
 
return '';
 
}
 
 


Далее открываем productsnapshot.tpl.php что в components/com_virtuemart/themes/ваш_шаблон/templates/common и вписываем три строки:
Код
$link = 'components/com_virtuemart/shop_image/product/'.$product_full_image;
$text = ps_product::image_tag( $product_thumb_image, "alt=\"".$product_name."\"");
 
echo vmCommonHTML::getLightboxImageLink( $link, $text, $product_name, $product_id );
Последнюю строчку вставляем туда где должна быть картинка.


Работает вроде как нормально, хотя может и коряво как-то, но всё же. Если кто не сможет изменить файлы, тогда наймите человека знающего или учите PHP.
Записан
denn70
Осваиваюсь на форуме
***

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

Сообщений: 71


« Ответ #5 : 10.09.2011, 13:40:00 »

Благодарствую, реально помогло!
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@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