ButuzOFF
Осваиваюсь на форуме
 
Репутация: +22/-2
Offline
Пол: 
Сообщений: 177
|
 |
« : 01.10.2006, 22:37:19 » |
|
Ребята подскажите плиз как убрать количество товаров в наличии Тоесть не показывать само количество 1,2 а например "есть в наличии" "нет в наличии" Заранее спасибо
|
|
|
|
« Последнее редактирование: 06.06.2009, 09:36:43 от beagler »
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #1 : 01.10.2006, 22:41:48 » |
|
я просто в shop.browse проверяю - если наличие больше 0, то ставлю картинку "есть в наличии" и позволяю добавить в корзину, если нет, то ничего не ставлю. с учетом ежечасного обновления покупатель делает заказ по реальному наличию
|
|
|
|
« Последнее редактирование: 01.10.2006, 22:44:59 от beagler »
|
Записан
|
|
|
|
ButuzOFF
Осваиваюсь на форуме
 
Репутация: +22/-2
Offline
Пол: 
Сообщений: 177
|
 |
« Ответ #2 : 01.10.2006, 22:57:47 » |
|
спасибо +
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #3 : 02.10.2006, 09:36:52 » |
|
Как вывести картинку "в наличие" в список товаров и в карточку товара.Для того, чтобы "наличие" появилось в списке товаров: 1. в файле /administrator/components/com_virtuemart/html/shop.browse.php добавить перед кодом $product_cell = str_replace( "{product_name}", shopMakeHtmlSafe( $product_name ), $product_cell );
следующие строчки: $quantaty=$db_browse->f("product_in_stock" ); // Получаем остаток товара //Если товар есть - ставим картинку if ($quantaty>0){ $quantaty="<img src=\"/images/nal_3.gif\" alt=\" есть в наличие на складе.\" border=\"0\"/>\n"; } //Если нет - ставим другую картинку и убиваем корзину else { $quantaty="<img src=\"/images/nal_0.gif\" alt=\" нет в наличие на складе. Можете сделать заказ.\" border=\"0\"/>\n"; $form_addtocart=""; } $product_cell = str_replace( "{quantaty}", $quantaty, $product_cell ); 2. В свой файл /administrator/components/com_virtuemart/html/templates/browse/browse*.php добавляем заглушку в нужное место {quantaty} Все. Для того, чтобы "наличие" появилось в карточке товара (флаере) : 3. Добавляем в файл /administrator/components/com_virtuemart/html/shop.product_detailes.php после $product_description = $db_product->f("product_desc"); добавить $quantaty=$db_product->f("product_in_stock"); if ($quantaty>0){ $product_quantaty="<img src=\"/images/nal_3.gif\" alt=\"есть в наличии на складе.\" border=\"0\"/> Есть в наличии на складе.\n"; } else { $product_quantaty="<img src=\"/images/nal_0.gif\" alt=\"нет в наличии на складе.\" border=\"0\"/> Нет в наличии.\n"; } перед /* LIST ALL REVIEWS **/ добавить if ($quantaty=='0'){ $addtocart="";} после /** NOW LET'S BEGIN AND FILL THE TEMPLATE **/ добавить $template = str_replace( "{product_quantaty}", $product_quantaty, $template ); 4. и заглушка, соответсвенно, в свой файл /administrator/components/com_virtuemart/html/templates/product_details/flypage*.php - {product_quantaty}
|
|
|
|
« Последнее редактирование: 17.11.2006, 18:28:20 от beagler »
|
Записан
|
|
|
|
|
nafka
Гость
|
 |
« Ответ #4 : 17.11.2006, 16:16:36 » |
|
так и не получилось это сделать...выводит {product_quantaty}... если можно....поподобнее... пасибо
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #5 : 17.11.2006, 16:25:17 » |
|
Где выводит? в списке товаров или во флаере? Где что меняли?
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #6 : 17.11.2006, 18:22:37 » |
|
привел в более понятный вид
|
|
|
|
|
Записан
|
|
|
|
|
nafka
Гость
|
 |
« Ответ #7 : 18.11.2006, 01:43:54 » |
|
Огромное спасибо:)))всё заработало:)не знаю почему не получалось..вроде всё тоже самое делала...
|
|
|
|
|
Записан
|
|
|
|
matrix-ukr
Захожу иногда

Репутация: +0/-0
Offline
Пол: 
Сообщений: 24
|
 |
« Ответ #8 : 14.04.2008, 00:29:52 » |
|
а как сделать чтоб картинка " нет в наличие на складе. Можете сделать заказ." была кнопкой ну скажем на контакты или форму заказа? Думаю что здеся надо прописывать код $quantaty="<img src=\"/images/nal_0.gif\" alt=\" нет в наличие на складе. Можете сделать заказ.\" border=\"0\"/>\n"; только какой? и еще как добавить в сортировку наличие товара ({quantaty})?
|
|
|
|
« Последнее редактирование: 14.04.2008, 00:47:36 от matrix-ukr »
|
Записан
|
|
|
|
olegkgd
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 12
|
 |
« Ответ #9 : 06.04.2009, 18:05:37 » |
|
Как это организовать в virtuemart 1.1.3? многих строк нет. например в файле /administrator/components/com_virtuemart/html/shop.browse.php нет $product_cell = str_replace( "{product_name}", shopMakeHtmlSafe( $product_name ), $product_cell ); или нет строки в файле /administrator/components/com_virtuemart/html/shop.product_detailes.php /** NOW LET'S BEGIN AND FILL THE TEMPLATE **/
|
|
|
|
|
Записан
|
|
|
|
olegkgd
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 12
|
 |
« Ответ #10 : 08.04.2009, 21:59:17 » |
|
никто не делал на 1.1.3?
|
|
|
|
|
Записан
|
|
|
|
olegkgd
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 12
|
 |
« Ответ #11 : 21.04.2009, 02:24:19 » |
|
Перегоните пожалуйста несколько верхних строк для virtuemart 1.1.3 )
|
|
|
|
|
Записан
|
|
|
|
ibrogim
Захожу иногда

Репутация: +3/-0
Offline
Сообщений: 18
|
 |
« Ответ #12 : 08.05.2009, 10:19:11 » |
|
Как это организовать в virtuemart 1.1.3?
незнаю как в 1.1.3 но вот как я организовал в 1.1.2 (может быть тупо, но работает) В shop.browse.php Например после if( empty($product_name) && $product_parent_id!=0 ) { $product_name = $dbp->f("product_name"); } Пишем $quantaty=$db_browse->f("product_in_stock" ); if ($quantaty>0){ $quantaty="<span style=\"color: green;\">Есть в наличии</span>"; } else { $quantaty="<span style=\"color: red;\">Нет в наличии</span>"; } После $products[$i]['product_name'] = shopMakeHtmlSafe( $product_name ); Пишем $products[$i]['quantaty'] = $quantaty; Если есть шапка для таблицы товаров, то добавляем колонку в шапку В components\com_virtuemart\themes\default\templates\browse\browse_.php вставляем в таблицу с товаром новую колонку <td align="center" width="5%"> <div> <?php echo $quantaty ?> </div> </a> </td>
|
|
|
|
« Последнее редактирование: 06.04.2010, 10:22:37 от beagler »
|
Записан
|
|
|
|
Megos
Осваиваюсь на форуме
 
Репутация: +2/-2
Offline
Сообщений: 161
|
 |
« Ответ #13 : 05.06.2009, 14:54:22 » |
|
А как в 1.1.3 можно в поле наличия вывести текст, например "под заказ"?
|
|
|
|
« Последнее редактирование: 05.06.2009, 14:58:57 от Megos »
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #14 : 06.06.2009, 09:36:19 » |
|
в приведённом коде вместо "Нет в наличии" напиши "Под заказ"
|
|
|
|
|
Записан
|
|
|
|
Megos
Осваиваюсь на форуме
 
Репутация: +2/-2
Offline
Сообщений: 161
|
 |
« Ответ #15 : 06.06.2009, 13:16:52 » |
|
Нужно, чтобы функция была опцией, то есть выводила разные варианты текста
|
|
|
|
|
Записан
|
|
|
|
zvolle
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 193
|
 |
« Ответ #16 : 08.06.2009, 12:09:52 » |
|
А как сделать чтобы количество товаров вообще не показывалось в товарах,
|
|
|
|
|
Записан
|
|
|
|
|
kpk17
|
 |
« Ответ #17 : 12.07.2009, 12:06:27 » |
|
Как вывести картинку "в наличие" в список товаров и в карточку товара.2. В свой файл /administrator/components/com_VirtueMart/html/templates/browse/browse*.php добавляем заглушку в нужное место {quantaty} Все. можно поподробнее куда ставить заглушку, в какое место файла и что за файл?
|
|
|
|
|
Записан
|
|
|
|
RaftKorn
Осваиваюсь на форуме
 
Репутация: +0/-1
Offline
Сообщений: 54
|
 |
« Ответ #18 : 02.08.2009, 10:14:42 » |
|
В версии 1.1.3 нету /** NOW LET'S BEGIN AND FILL THE TEMPLATE **/ Куда там нужно всавить код $template = str_replace( "{product_quantaty}", $product_quantaty, $template ); ? Потому что как ни пробовал, выводит просто {product_quantaty}.
|
|
|
|
|
Записан
|
|
|
|
suxo
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 7
|
 |
« Ответ #19 : 22.12.2009, 12:25:26 » |
|
Спасибо большое. на странице с товарами все супер. А вот в страницу конкретного товара когда вставляешь <?php echo $quantaty ?> ничего не происходит. где надо дописать что то? использовал метод: В shop.browse.php Например после Код:
if( empty($product_name) && $product_parent_id!=0 ) { $product_name = $dbp->f("product_name"); }
Пишем Код:
$quantaty=$db_browse->f("product_in_stock" ); if ($quantaty>0){ $quantaty="<span style=\"color: green;\">Есть в наличии</span>"; } else { $quantaty="<span style=\"color: red;\">Нет в наличии</span>";
После Код:
$products[$i]['product_name'] = shopMakeHtmlSafe( $product_name );
Пишем Код:
$products[$i]['quantaty'] = $quantaty;
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #20 : 22.12.2009, 12:46:08 » |
|
для страницы товара всё это формируется в /administrator/components/com_virtuemart/html/shop.product_detailes.php
|
|
|
|
|
Записан
|
|
|
|
suxo
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 7
|
 |
« Ответ #21 : 22.12.2009, 12:51:20 » |
|
да, я уже туда попробовал все выше написанное запихнуть =) но видимо с пунктуацией проблемы и тупо вышла ошибка. можете подсказать в каком виде все это надо вставить в этот файл?
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #22 : 22.12.2009, 12:58:43 » |
|
всё как в 3 посте, только вместо $template = str_replace( "{product_quantaty}", $product_quantaty, $template ); должно быть $tpl->set( "product_quantaty", $product_quantaty );
|
|
|
|
|
Записан
|
|
|
|
suxo
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 7
|
 |
« Ответ #23 : 22.12.2009, 13:01:15 » |
|
Т.е. вс еэто можно просто подряд написать? или надо все же в опредленные места вставлять? в другом файлике как то все по другому ведь
|
|
|
|
|
Записан
|
|
|
|
suxo
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 7
|
 |
« Ответ #24 : 22.12.2009, 13:08:48 » |
|
пишу следующее, выдает ошибку $product_description = $db_product->f("product_desc"); if( (str_replace("<br />", "" , $product_description)=='') && ($product_parent_id!=0) ) { $product_description = $dbp->f("product_desc"); // Use product_desc from Parent Product
}
// my code start
$quantaty=$db_browse->f("product_in_stock" ); if ($quantaty>0){ $quantaty="<img src=\"images/24h.gif\" alt=\" 111\" border=\"0\"/>\n"; } else { $quantaty="<img src=\"images/14d.gif\" alt=\"000\" border=\"0\"/>\n";
//my code end
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #25 : 23.12.2009, 21:59:53 » |
|
y наверное можно понять, что не $db_browse , а $db_product
|
|
|
|
|
Записан
|
|
|
|
Dobryak
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 116
|
 |
« Ответ #26 : 05.04.2010, 04:01:32 » |
|
Второй день пытаюсь впихнуть картинки "Есть в наличии" и "Нет в наличии". Вставил в: shop.browse.phpКод: $product_name = $db_browse->f("product_name"); if( $db_browse->f("product_publish") == "N" ) { $product_name .= " (". $VM_LANG->_('CMN_UNPUBLISHED',false).")"; }
if( empty($product_name) && $product_parent_id!=0 ) { $product_name = $dbp->f("product_name"); // Use product_name from Parent Product } $quantaty=$db_browse->f("product_in_stock" ); // Получаем остаток товара //Если товар есть - ставим картинку if ($quantaty>0){ $quantaty="<img src=\"/images/nal_3.gif\" alt=\" есть в наличие на складе.\" border=\"0\"/>\n"; } //Если нет - ставим другую картинку и убиваем корзину else { $quantaty="<img src=\"/images/nal_0.gif\" alt=\" нет в наличие на складе. Можете сделать
заказ.\" border=\"0\"/>\n"; $form_addtocart="";После: $products[$i]['product_name'] = shopMakeHtmlSafe( $product_name ); Вставил код: $products[$i]['product_s_desc'] = $product_s_desc; В свой шаблон tp.browse.phpвставил заглушку: {quantaty}На странице товара выводится {quantaty} (прям там где и надо) и все, далее дело не идет....  Может картинок не видит? Картинки вставлял и в папку images в корень сайта и в папку images шаблона. Помогите разобраться 
|
|
|
|
« Последнее редактирование: 05.04.2010, 08:46:26 от Dobryak »
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #27 : 05.04.2010, 11:14:39 » |
|
вместо $products[$i]['product_s_desc'] = $product_s_desc; должно быть $products[$i]['quantaty'] = $quantaty;
|
|
|
|
|
Записан
|
|
|
|
Dobryak
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 116
|
 |
« Ответ #28 : 05.04.2010, 17:25:53 » |
|
вместо $products[$i]['product_s_desc'] = $product_s_desc; должно быть $products[$i]['quantaty'] = $quantaty;
Никаких изменений... Я уж и в дефолтный шаблон все запихивал. VM 1.1.4 Ну где-же этот косяк?! Упс, на флаер тоже вывел но отображается как {product_quantaty} !
|
|
|
|
« Последнее редактирование: 05.04.2010, 19:12:08 от Dobryak »
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #29 : 05.04.2010, 20:27:10 » |
|
прикрепите свой shop.browse.php
|
|
|
|
|
Записан
|
|
|
|
sett
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 59
|
 |
« Ответ #30 : 05.04.2010, 22:37:57 » |
|
у меня VirtueMart 1.1.4 stable. делаю все по инструкции - ошибка в 510 строке... посмотрите пожалуйста, очень нужна ваша помощь... файл чистый выкладываю, не правленный.
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #31 : 05.04.2010, 23:02:47 » |
|
лови
|
|
|
|
|
Записан
|
|
|
|
sett
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 59
|
 |
« Ответ #32 : 05.04.2010, 23:20:02 » |
|
ООоооо огроменное спасибо!
|
|
|
|
|
Записан
|
|
|
|
Dobryak
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 116
|
 |
« Ответ #33 : 06.04.2010, 03:23:33 » |
|
прикрепите свой shop.browse.php
|
|
|
|
|
Записан
|
|
|
|
|
|
Dobryak
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 116
|
 |
« Ответ #35 : 06.04.2010, 15:05:41 » |
|
beagler Ну хоть убей.... не катит ни так никак..... Да и убивать не надо - сам застрелюсь... Второй вариант без картинок тоже не работает! Вот еще мой файл, чистый, не переделанный! Картинки как в твоем посте nal_3.gif nal_0.gif
|
|
|
|
« Последнее редактирование: 06.04.2010, 15:27:31 от Dobryak »
|
Записан
|
|
|
|
sett
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 59
|
 |
« Ответ #36 : 06.04.2010, 19:36:13 » |
|
beagler, спасибо)))
|
|
|
|
|
Записан
|
|
|
|
Dobryak
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 116
|
 |
« Ответ #37 : 07.04.2010, 19:11:23 » |
|
Ну что ж склоняюсь к мысли, что не работает это с 1.1.4...  Кто сделал это на Joomla 1.5.15 и VM 1.1.4 ? Еще раз посмотрите пожалуйста мои действия, может откопается собака.... Для страницы списка товаров: В shop.browse.phpпосле кода: if( empty($product_name) && $product_parent_id!=0 ) { $product_name = $dbp->f("product_name"); }Пишем код: $quantaty=$db_browse->f("product_in_stock" ); if ($quantaty>0){ $quantaty="<span style=\"color: green;\">Есть в наличии</span>"; } else { $quantaty="<span style=\"color: red;\">Нет в наличии</span>"; }После: $products[$i]['product_name'] = shopMakeHtmlSafe( $product_name );Пишем: $products[$i]['quantaty'] = $quantaty;Ставим заглушку {quantaty}в удобное место в файл своего шаблона tpbrowse.phpДля страницы товара (флаер): В shop.product_details.phpПосле кода: $product_description = $db_product->f("product_desc");Пишем код: $quantaty=$db_product->f("product_in_stock" ); if ($quantaty>0){ $quantaty="<span style=\"color: green;\">Есть в наличии</span>"; } else { $quantaty="<span style=\"color: red;\">Нет в наличии</span>"; }Перед: /* LIST ALL REVIEWS **/Пишем: if ($quantaty=='0'){ $addtocart="";}Далее перед: $tpl->set( "product_id", $product_id );Я вставил: $tpl->set( "product_quantaty", $product_quantaty );И наконец заглушка: {product_quantaty}В удобное место в файл своего шаблона tpflypage.tpl.php(tp - template plazza, шаблон лицензионный) Все! На страничке списка отображается {quantaty}На страничке товара {product_quantaty}Народ, помогите, ну голову уже поломал... Может что в шаблоне вкл или выкл? Выложу все файлы, может уважаемый beagler подскажет что!
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #38 : 07.04.2010, 21:23:43 » |
|
вместо $tpl->set( "product_quantaty", $product_quantaty ); должно быть $tpl->set( "product_quantaty", $quantaty ); в tpbrowse.php вместо заглушки {quantaty} используйте просто <?php echo $quantaty ?> в tpflypage.tpl.php вместо {product_quantaty} используйте <?php echo $quantaty ?> в browse может не сработать - надо смотреть какой у Вас ещё тип вывода. Кстати, заметили? Как только описали задачу в полном объеме - получили полный ответ.
|
|
|
|
|
Записан
|
|
|
|
Dobryak
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Сообщений: 116
|
 |
« Ответ #39 : 08.04.2010, 03:13:39 » |
|
beagler, вы и впрям волшебник!  На страничке списка товаров заработало сразу, а вот на флай пришлось все таки вставить: $tpl->set( "product_quantaty", $product_quantaty );и заглушку: <?php echo $product_quantaty ?>И о чудо все заработало! С меня  Кошелек в личку!
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #40 : 08.04.2010, 09:54:15 » |
|
кошельки в профиле. Обращайтесь 
|
|
|
|
|
Записан
|
|
|
|
sett
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 59
|
 |
« Ответ #41 : 23.04.2010, 00:08:12 » |
|
не понял только, как на страничке товара вставить "в наличие"... ((( что куда прописать
|
|
|
|
|
Записан
|
|
|
|
sett
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 59
|
 |
« Ответ #42 : 25.04.2010, 19:07:58 » |
|
все сделал по инструкции, во флаере так ни чего не появилось... (((
|
|
|
|
|
Записан
|
|
|
|
sett
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 59
|
 |
« Ответ #43 : 25.04.2010, 21:14:46 » |
|
крутил-крутил, в итоге получилось, всем спасибо))
|
|
|
|
|
Записан
|
|
|
|
terr
Завсегдатай
   
Репутация: +10/-4
Offline
Пол: 
Сообщений: 750
Ученик html-я
|
 |
« Ответ #44 : 27.04.2010, 09:44:24 » |
|
Почему када щас написано под заказ , умерла ссылка на корзину, как вернуть корзину?
|
|
|
|
|
Записан
|
|
|
|
terr
Завсегдатай
   
Репутация: +10/-4
Offline
Пол: 
Сообщений: 750
Ученик html-я
|
 |
« Ответ #45 : 27.04.2010, 09:53:18 » |
|
Все нашол, смысла убивавть корзину нет))) задумка шла если под заказ то чтобы ее могли заказать
|
|
|
|
|
Записан
|
|
|
|
FT
Новичок
Репутация: +0/-0
Offline
Сообщений: 2
|
 |
« Ответ #46 : 02.06.2010, 19:55:40 » |
|
Здравствуйте! Сделал все как описано, везде все показывает, но только в место русских букв ромбики с вопросом  . Подскажите пожалуйста, как сделать чтобы правильно отображались русские буквы? Спасибо!
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #47 : 02.06.2010, 22:59:42 » |
|
те файлы, в которых делали изменения, нужно сохранить в кодировке UTF-8 без VOM
|
|
|
|
|
Записан
|
|
|
|
FT
Новичок
Репутация: +0/-0
Offline
Сообщений: 2
|
 |
« Ответ #48 : 04.06.2010, 12:18:31 » |
|
те файлы, в которых делали изменения, нужно сохранить в кодировке UTF-8 без VOM
Супер! Работает! Спасибо большое! 
|
|
|
|
|
Записан
|
|
|
|
shemrock
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 6
|
 |
« Ответ #49 : 30.06.2010, 00:39:09 » |
|
Делаю все по инструкции, остановился на месте где "Ставим заглушку <?php echo $quantaty ?> в удобное место в файл своего шаблона tpbrowse.php " Где этот файл!(((
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #50 : 01.07.2010, 22:31:42 » |
|
\components\com_virtuemart\themes\default\templates\browse\browse_1.php
|
|
|
|
|
Записан
|
|
|
|
shemrock
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 6
|
 |
« Ответ #51 : 03.07.2010, 23:37:06 » |
|
В shop.browse.php после кода: if( empty($product_name) && $product_parent_id!=0 ) { $product_name = $dbp->f("product_name"); } Пишем код: $quantaty=$db_browse->f("product_in_stock" ); if ($quantaty>0){ $quantaty="<span style=\"color: green;\">Есть в наличии</span>"; } else { $quantaty="<span style=\"color: red;\">Нет в наличии</span>"; }
После: $products[$i]['product_name'] = shopMakeHtmlSafe( $product_name ); Пишем: $products[$i]['quantaty'] = $quantaty;
Ставим заглушку <?php echo $quantaty ?> в удобное место в файл своего шаблона tpbrowse.php
Для страницы товара (флаер):
В shop.product_details.php После кода: $product_description = $db_product->f("product_desc"); Пишем код: $quantaty=$db_product->f("product_in_stock" ); if ($quantaty>0){ $quantaty="<span style=\"color: green;\">Есть в наличии</span>"; } else { $quantaty="<span style=\"color: red;\">Нет в наличии</span>"; } Перед: /* LIST ALL REVIEWS **/ Пишем: if ($quantaty=='0'){ $addtocart="";}
Далее перед: $tpl->set( "product_id", $product_id ); Я вставил: $tpl->set( "product_quantaty", $quantaty ); И наконец заглушка: <?php echo $quantaty ?> В удобное место в файл своего шаблона flypage.tpl.php
Проделал все выше перечисленное... вообще ни каких изменений( как выдавал кол-во так и выдает..
|
|
|
|
« Последнее редактирование: 04.07.2010, 10:16:08 от shemrock »
|
Записан
|
|
|
|
|
i0n0ff
Гость
|
 |
« Ответ #52 : 08.08.2010, 16:18:54 » |
|
Здравствуйте такая проблема.. вообщем, у меня почему-то shop.browse.php [VirtueMart 1.1.2 stable(сайт сделан с готовой сборки)] хотя я ковырялся в виртумарте 1.1.3, но там тоже некоторых строчек не было.. мне нужно сделать как и всем в прошлых постах: точно так же как сделал beagler.. но дело в том, что /administrator/components/com_virtuemart/html/shop.browse.php<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); /** * This is the Main Product Listing File! * * @version $Id: shop.browse.php 1489 2008-07-30 19:38:04Z gregdev $ * @package VirtueMart * @subpackage html * @copyright Copyright (C) 2004-2008 soeren - All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php * VirtueMart is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See /administrator/components/com_virtuemart/COPYRIGHT.php for copyright notices and details. * * http://virtuemart.net */ mm_showMyFileName( __FILE__ );
// load important class files require_once (CLASSPATH."ps_product.php"); $ps_product = new ps_product; require_once (CLASSPATH."ps_product_category.php"); $ps_product_category = new ps_product_category; require_once (CLASSPATH."ps_product_files.php"); require_once (CLASSPATH."ps_reviews.php"); require_once (CLASSPATH."imageTools.class.php"); require_once (CLASSPATH."PEAR/Table.php"); require_once(CLASSPATH . 'ps_product_attribute.php' ); $ps_product_attribute = new ps_product_attribute;
$Itemid = $sess->getShopItemid(); $keyword1 = $vmInputFilter->safeSQL( urldecode(vmGet( $_REQUEST, 'keyword1', null ))); $keyword2 = $vmInputFilter->safeSQL( urldecode(vmGet( $_REQUEST, 'keyword2', null )));
$search_op= $vmInputFilter->safeSQL( vmGet( $_REQUEST, 'search_op', null )); $search_limiter= $vmInputFilter->safeSQL( vmGet( $_REQUEST, 'search_limiter', null ));
if (empty($category_id)) $category_id = $search_category;
$default['category_flypage'] = FLYPAGE;
$db_browse = new ps_DB; $dbp = new ps_DB; // NEW: Include the query section from an external file require_once( PAGEPATH. "shop_browse_queries.php" );
$db_browse->query( $count );
$num_rows = $db_browse->f("num_rows");
if( $limitstart > 0 && $limit >= $num_rows) { $list = str_replace( 'LIMIT '.$limitstart, 'LIMIT 0', $list ); } if( $category_id ) { /** * CATEGORY DESCRIPTION */ $db->query( "SELECT category_id, category_name FROM #__{vm}_category WHERE category_id='$category_id'"); $db->next_record(); $category_name = shopMakeHtmlSafe( $db->f('category_name') ); /* Set Dynamic Page Title */ $mainframe->setPageTitle( $db->f("category_name") ); $desc = $ps_product_category->get_description($category_id); $desc = vmCommonHTML::ParseContentByPlugins( $desc ); /* Prepend Product Short Description Meta Tag "description" when applicable */ $mainframe->prependMetaTag( "description", substr(strip_tags($desc ), 0, 255) ); } // when nothing has been found we tell this here and say goodbye if ($num_rows == 0 && (!empty($keyword)||!empty($keyword1))) { echo $VM_LANG->_('PHPSHOP_NO_SEARCH_RESULT'); } elseif( $num_rows == 0 && empty($product_type_id) && !empty($child_list)) { echo $VM_LANG->_('EMPTY_CATEGORY'); }
elseif( $num_rows == 1 && ( !empty($keyword) || !empty($keyword1) ) ) { // If just one product has been found, we directly show the details page of it $db_browse->query( $list ); $db_browse->next_record(); $flypage = $db_browse->sf("category_flypage")? $db_browse->sf("category_flypage") : FLYPAGE; $url_parameters = "page=shop.product_details&flypage=$flypage&product_id=" . $db_browse->f("product_id"). "&category_id=" . $db_browse->f("category_id"); vmRedirect( $sess->url($url_parameters, true, false ) ); } else { // NOW START THE PRODUCT LIST $tpl = vmTemplate::getInstance(); if( $category_id ) { /** * CATEGORY DESCRIPTION */ $browsepage_lbl = $category_name; $tpl->set( 'browsepage_lbl', $browsepage_lbl ); $tpl->set( 'desc', $desc ); $category_childs = $ps_product_category->get_child_list($category_id); $tpl->set( 'categories', $category_childs ); $navigation_childlist = $tpl->fetch( 'common/categoryChildlist.tpl.php'); $tpl->set( 'navigation_childlist', $navigation_childlist );
// Set up the CMS pathway $category_list = array_reverse( $ps_product_category->get_navigation_list($category_id) ); $pathway = $ps_product_category->getPathway( $category_list ); $vm_mainframe->vmAppendPathway( $pathway );
$tpl->set( 'category_id', $category_id ); $tpl->set( 'category_name', $category_name ); $browsepage_header = $tpl->fetch( 'browse/includes/browse_header_category.tpl.php' ); } elseif( $manufacturer_id) { $db->query( "SELECT manufacturer_id, mf_name FROM #__{vm}_manufacturer WHERE manufacturer_id='$manufacturer_id'"); $db->next_record(); $mainframe->setPageTitle( $db->f("mf_name") ); $browsepage_lbl = shopMakeHtmlSafe( $db->f("mf_name") ); $tpl->set( 'browsepage_lbl', $browsepage_lbl ); $browsepage_lbltext = $db->f("mf_desc"); $tpl->set( 'browsepage_lbltext', $browsepage_lbltext ); $browsepage_header = $tpl->fetch( 'browse/includes/browse_header_manufacturer.tpl.php' ); } elseif( $keyword ) { $mainframe->setPageTitle( $VM_LANG->_('PHPSHOP_SEARCH_TITLE',false) ); $browsepage_lbl = $VM_LANG->_('PHPSHOP_SEARCH_TITLE').': '.shopMakeHtmlSafe( $keyword ); $tpl->set( 'browsepage_lbl', $browsepage_lbl ); $browsepage_header = $tpl->fetch( 'browse/includes/browse_header_keyword.tpl.php' ); } else { $mainframe->setPageTitle( $VM_LANG->_('PHPSHOP_BROWSE_LBL',false) );# $browsepage_lbl = $VM_LANG->_('PHPSHOP_BROWSE_LBL'); $tpl->set( 'browsepage_lbl', $browsepage_lbl ); $browsepage_header = $tpl->fetch( 'browse/includes/browse_header_all.tpl.php' ); } $tpl->set( 'browsepage_header', $browsepage_header ); if (!empty($product_type_id) && @$_REQUEST['output'] != "pdf") { $tpl->set( 'ps_product_type', $ps_product_type); $tpl->set( 'product_type_id', $product_type_id); $parameter_form = $tpl->fetch( 'browse/includes/browse_searchparameter_form.tpl.php' ); } else { $parameter_form = ''; } $tpl->set( 'parameter_form', $parameter_form ); // Decide whether to show the limit box $show_limitbox = ( $num_rows > 5 && @$_REQUEST['output'] != "pdf" ); $tpl->set( 'show_limitbox', $show_limitbox );
// Decide whether to show the top navigation $show_top_navigation = ( PSHOP_SHOW_TOP_PAGENAV =='1' && $num_rows > $limit ); $tpl->set( 'show_top_navigation', $show_top_navigation );
// Prepare Page Navigation require_once( CLASSPATH . 'pageNavigation.class.php' ); $pagenav = new vmPageNav( $num_rows, $limitstart, $limit ); $tpl->set( 'pagenav', $pagenav );
$search_string = ''; if ( $num_rows > 1 && @$_REQUEST['output'] != "pdf") { if ( $num_rows > $limit || $num_rows > 5 ) { $search_string = $mm_action_url."index.php?option=com_virtuemart&page=$modulename.browse&category_id=$category_id&keyword=".urlencode( $keyword )."&manufacturer_id=$manufacturer_id&Itemid=$Itemid"; $search_string .= !empty($orderby)? "&orderby=".urlencode($orderby) : "";
if (!empty($keyword1)) { $search_string.="&keyword1=".urlencode($keyword1); $search_string.="&search_category=$search_category"; $search_string.="&search_limiter=$search_limiter"; if (!empty($keyword2)) { $search_string.="&keyword2=".urlencode($keyword2); $search_string.="&search_op=$search_op"; } }
if (!empty($product_type_id)){ foreach($_REQUEST as $key => $value){ if (substr($key, 0,13) == "product_type_"){ $val = vmGet($_REQUEST, $key ); if( is_array( $val )) { foreach( $val as $var ) { $search_string .="&".$key."[]=".urlencode($var); } } else { $search_string .="&".$key."=".urlencode($val); } } } }
}
$tpl->set( 'VM_BROWSE_ORDERBY_FIELDS', $VM_BROWSE_ORDERBY_FIELDS); if ($DescOrderBy == "DESC") { $icon = "sort_desc.png"; $selected = Array( "selected=\"selected\"", "" ); $asc_desc = Array( "DESC", "ASC" ); } else { $icon = "sort_asc.png"; $selected = Array( "", "selected=\"selected\"" ); $asc_desc = Array( "ASC", "DESC" ); } $tpl->set( 'orderby', $orderby ); $tpl->set( 'icon', $icon ); $tpl->set( 'selected', $selected ); $tpl->set( 'asc_desc', $asc_desc ); $tpl->set( 'category_id', $category_id ); $tpl->set( 'manufacturer_id', $manufacturer_id ); $tpl->set( 'keyword', urlencode( $keyword ) ); $tpl->set( 'keyword1', urlencode( $keyword1 ) ); $tpl->set( 'keyword2', urlencode( $keyword2 ) ); $tpl->set( 'Itemid', $Itemid ); if( $show_top_navigation ) { $tpl->set( 'search_string', $search_string ); }
$orderby_form = $tpl->fetch( 'browse/includes/browse_orderbyform.tpl.php' ); $tpl->set( 'orderby_form', $orderby_form ); } else { $tpl->set( 'orderby_form', '' ); } $db_browse->query( $list ); $db_browse->next_record();
$products_per_row = (!empty($category_id))? $db_browse->f("products_per_row") : PRODUCTS_PER_ROW;
if( $products_per_row < 1 ) { $products_per_row = 1; } $buttons_header = ''; /** * Start caching all product details for a later loop * **/ if(@$_REQUEST['output'] != "pdf") { // Show the PDF, Email and Print buttons $tpl->set('option', $option); $tpl->set('category_id', $category_id ); $tpl->set('product_id', $product_id ); $buttons_header = $tpl->fetch( 'common/buttons.tpl.php' ); $templatefile = (!empty($category_id))? $db_browse->f("category_browsepage") : CATEGORY_TEMPLATE; if( $templatefile == 'managed' ) { // automatically select the browse template with the best match for the number of products per row $templatefile = file_exists(VM_THEMEPATH.'templates/browse/browse_'.$products_per_row.'.php' ) ? 'browse_'.$products_per_row : 'browse_5'; } elseif( !file_exists(VM_THEMEPATH.'templates/browse/'.$templatefile.'.php')) { $templatefile = 'browse_5'; } } else { $templatefile = "browse_lite_pdf"; } $tpl->set( 'buttons_header', $buttons_header ); $tpl->set('products_per_row', $products_per_row ); $tpl->set('templatefile', $templatefile ); $db_browse->reset(); $products = array(); $counter = 0; /*** Start printing out all products (in that category) ***/ while ($db_browse->next_record()) {
// If it is item get parent: $product_parent_id = $db_browse->f("product_parent_id"); if ($product_parent_id != 0) { $dbp->query("SELECT product_full_image,product_thumb_image,product_name,product_s_desc FROM #__{vm}_product WHERE product_id='$product_parent_id'" ); $dbp->next_record(); }
// Set the flypage for this product based on the category. // If no flypage is set then use the default as set in VirtueMart.cfg.php $flypage = $db_browse->sf("category_flypage"); if (empty($flypage)) { $flypage = FLYPAGE; } $url_parameters = "page=shop.product_details&flypage=$flypage&product_id=" . $db_browse->f("product_id"). "&category_id=" . $db_browse->f("category_id"); if( $manufacturer_id ) { $url_parameters .= "&manufacturer_id=" . $manufacturer_id; } if( $keyword != '') { $url_parameters .= "&keyword=".urlencode($keyword); } $url = $sess->url( $url_parameters );
// Price: xx.xx EUR if (_SHOW_PRICES == '1' && $auth['show_prices']) { $product_price = $ps_product->show_price( $db_browse->f("product_id") ); } else { $product_price = ""; } // @var array $product_price_raw The raw unformatted Product Price in Float Format $product_price_raw = $ps_product->get_adjusted_attribute_price($db_browse->f('product_id')); // i is the index for the array holding all products, we need to show. to allow sorting by discounted price, // we need to use the price as first part of the index name! $i = $product_price_raw['product_price'] . '_' . ++$counter; if( $db_browse->f("product_thumb_image") ) { $product_thumb_image = $db_browse->f("product_thumb_image"); } else { if( $product_parent_id != 0 ) { $product_thumb_image = $dbp->f("product_thumb_image"); // Use product_thumb_image from Parent Product } else { $product_thumb_image = 0; } } if( $product_thumb_image ) { if( substr( $product_thumb_image, 0, 4)!= "http" ) { if(PSHOP_IMG_RESIZE_ENABLE == '1') { $product_thumb_image = $mosConfig_live_site."/components/com_virtuemart/show_image_in_imgtag.php?filename=".urlencode($product_thumb_image)."&newxsize=".PSHOP_IMG_WIDTH."&newysize=".PSHOP_IMG_HEIGHT."&fileout="; } elseif( !file_exists( IMAGEPATH."product/".$product_thumb_image )) { $product_thumb_image = VM_THEMEURL.'images/'.NO_IMAGE; } } } else { $product_thumb_image = VM_THEMEURL.'images/'.NO_IMAGE; }
// Get the full image path, or URL if set, or the no_image if( $db_browse->f("product_full_image") ) { $product_full_image = $db_browse->f("product_full_image"); } elseif( $product_parent_id != 0 ) { $product_full_image = $dbp->f("product_full_image"); // Use product_full_image from Parent Product } else { $product_full_image = VM_THEMEURL . 'images/' . NO_IMAGE;
// Get the size information for the no_image if( file_exists( VM_THEMEPATH . 'images/' . NO_IMAGE ) ) { $full_image_info = getimagesize( VM_THEMEPATH . 'images/' . NO_IMAGE ); $full_image_width = $full_image_info[0]+40; $full_image_height = $full_image_info[1]+40; } }
// Get image size information and add the full URL if( substr( $product_full_image, 0, 4)!= 'http' ) { // This is a local image if( file_exists( IMAGEPATH . 'product/' . $product_full_image ) ) { $full_image_info = getimagesize( IMAGEPATH . 'product/' . $product_full_image ); $full_image_width = $full_image_info[0]+40; $full_image_height = $full_image_info[1]+40; } $product_full_image = IMAGEURL . 'product/' . $product_full_image; } elseif( !isset( $full_image_width ) || !isset( $full_image_height ) ) { // This is a URL image $full_image_info = getimagesize( $product_full_image ); $full_image_width = $full_image_info[0]+40; $full_image_height = $full_image_info[1]+40; } $files = ps_product_files::getFilesForProduct( $db_browse->f('product_id') ); $products[$i]['files'] = $files['files']; $products[$i]['images'] = $files['images']; $product_name = $db_browse->f("product_name"); if( $db_browse->f("product_publish") == "N" ) { $product_name .= " (". $VM_LANG->_('CMN_UNPUBLISHED',false).")"; }
if( empty($product_name) && $product_parent_id!=0 ) { $product_name = $dbp->f("product_name"); // Use product_name from Parent Product } $product_s_desc = $db_browse->f("product_s_desc"); if( empty($product_s_desc) && $product_parent_id!=0 ) { $product_s_desc = $dbp->f("product_s_desc"); // Use product_s_desc from Parent Product } $product_details = $VM_LANG->_('PHPSHOP_FLYPAGE_LBL');
if (PSHOP_ALLOW_REVIEWS == '1' && @$_REQUEST['output'] != "pdf") { // Average customer rating: xxxxx // Total votes: x $product_rating = ps_reviews::allvotes( $db_browse->f("product_id") ); } else { $product_rating = ""; } // Add-to-Cart Button if (USE_AS_CATALOGUE != '1' && $product_price != "" && !stristr( $product_price, $VM_LANG->_('PHPSHOP_PRODUCT_CALL') ) && !ps_product::product_has_attributes( $db_browse->f('product_id'), true ) && $tpl->get_cfg( 'showAddtocartButtonOnProductList' ) ) { $tpl->set( 'i', $i ); $tpl->set( 'product_id', $db_browse->f('product_id') ); $tpl->set( 'product_in_stock', $db_browse->f('product_in_stock') ); $tpl->set( 'ps_product_attribute', $ps_product_attribute ); $products[$i]['form_addtocart'] = $tpl->fetch( 'browse/includes/addtocart_form.tpl.php' ); $products[$i]['has_addtocart'] = true; } else { $products[$i]['form_addtocart'] = ''; $products[$i]['has_addtocart'] = false; }
$products[$i]['product_flypage'] = $url; $products[$i]['product_thumb_image'] = $product_thumb_image; $products[$i]['product_full_image'] = $product_full_image; $products[$i]['full_image_width'] = $full_image_width; $products[$i]['full_image_height'] = $full_image_height; // Unset these for the next product unset($full_image_width); unset($full_image_height);
$products[$i]['product_name'] = shopMakeHtmlSafe( $product_name ); $products[$i]['product_s_desc'] = $product_s_desc; $products[$i]['product_details'] = $product_details; $products[$i]['product_rating'] = $product_rating; $products[$i]['product_price'] = $product_price; $products[$i]['product_price_raw'] = $product_price_raw; $products[$i]['product_sku'] = $db_browse->f("product_sku"); $products[$i]['product_weight'] = $db_browse->f("product_weight"); $products[$i]['product_weight_uom'] = $db_browse->f("product_weight_uom"); $products[$i]['product_length'] = $db_browse->f("product_length"); $products[$i]['product_width'] = $db_browse->f("product_width"); $products[$i]['product_height'] = $db_browse->f("product_height"); $products[$i]['product_lwh_uom'] = $db_browse->f("product_lwh_uom"); $products[$i]['product_in_stock'] = $db_browse->f("product_in_stock"); $products[$i]['product_available_date'] = $VM_LANG->convert( vmFormatDate($db_browse->f("product_available_date"), $VM_LANG->_('DATE_FORMAT_LC') )); $products[$i]['product_availability'] = $db_browse->f("product_availability"); $products[$i]['cdate'] = $VM_LANG->convert( vmFormatDate($db_browse->f("cdate"), $VM_LANG->_('DATE_FORMAT_LC') )); $products[$i]['mdate'] = $VM_LANG->convert( vmFormatDate($db_browse->f("mdate"), $VM_LANG->_('DATE_FORMAT_LC') )); $products[$i]['product_url'] = $db_browse->f("product_url");
} // END OF while loop // Need to re-order here, because the browse query doesn't fetch discounts if( $orderby == 'product_price' ) { if ($DescOrderBy == "DESC") { // using krsort when the Array must be sorted reverse (Descending Order) krsort($products, SORT_NUMERIC); } else { // using ksort when the Array must be sorted in ascending order ksort($products, SORT_NUMERIC); } } $tpl->set( 'products', $products ); $tpl->set( 'search_string', $search_string );
if ( $num_rows > 1 ) { $browsepage_footer = $tpl->fetch( 'browse/includes/browse_pagenav.tpl.php' ); $tpl->set( 'browsepage_footer', $browsepage_footer ); } else { $tpl->set( 'browsepage_footer', '' ); } $recent_products = $ps_product->recentProducts(null,$tpl->get_cfg('showRecent', 5)); $tpl->set('recent_products',$recent_products); $tpl->set('ps_product',$ps_product); echo $tpl->fetch( $tpl->config->get( 'productListStyle' ) ); } ?>
/administrator/components/com_virtuemart/html/shop.product_detailes.php<?php if( !defined( '_VALID_MOS' ) && !defined( '_JEXEC' ) ) die( 'Direct Access to '.basename(__FILE__).' is not allowed.' ); /** * * @version $Id: shop.product_details.php 1364 2008-04-09 16:44:28Z soeren_nb $ * @package VirtueMart * @subpackage html * @copyright Copyright (C) 2004-2008 soeren - All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL, see LICENSE.php * VirtueMart is free software. This version may have been modified pursuant * to the GNU General Public License, and as distributed it includes or * is derivative of works licensed under the GNU General Public License or * other free or open source software licenses. * See /administrator/components/com_virtuemart/COPYRIGHT.php for copyright notices and details. * * http://virtuemart.net */ mm_showMyFileName( __FILE__ );
require_once(CLASSPATH . 'ps_product_files.php' ); require_once(CLASSPATH . 'imageTools.class.php' ); require_once(CLASSPATH . 'ps_product.php' ); $ps_product = $GLOBALS['ps_product'] = new ps_product;
require_once(CLASSPATH . 'ps_product_category.php' ); $ps_product_category = new ps_product_category;
require_once(CLASSPATH . 'ps_product_attribute.php' ); $ps_product_attribute = new ps_product_attribute;
require_once(CLASSPATH . 'ps_product_type.php' ); $ps_product_type = new ps_product_type; require_once(CLASSPATH . 'ps_reviews.php' );
$product_id = intval( vmGet($_REQUEST, "product_id", null) ); $product_sku = $db->getEscaped( vmGet($_REQUEST, "sku", '' ) ); $category_id = vmGet($_REQUEST, "category_id", null); $pop = (int)vmGet($_REQUEST, "pop", 0); $manufacturer_id = vmGet($_REQUEST, "manufacturer_id", null); $Itemid = $sess->getShopItemid(); $db_product = new ps_DB;
// Get the product info from the database $q = "SELECT * FROM `#__{vm}_product` WHERE "; if( !empty($product_id)) { $q .= "`product_id`=$product_id"; } elseif( !empty($product_sku )) { $q .= "`product_sku`='$product_sku'"; } else { vmRedirect( $sess->url( $_SERVER['PHP_SELF']."?keyword=".urlencode($keyword)."&category_id={$_SESSION['session_userstate']['category_id']}&limitstart={$_SESSION['limitstart']}&page=shop.browse", false, false ), $VM_LANG->_('PHPSHOP_PRODUCT_NOT_FOUND') ); }
if( !$perm->check("admin,storeadmin") ) { $q .= " AND `product_publish`='Y'"; if( CHECK_STOCK && PSHOP_SHOW_OUT_OF_STOCK_PRODUCTS != "1") { $q .= " AND `product_in_stock` > 0 "; } } $db_product->query( $q );
// Redirect back to Product Browse Page on Error if( !$db_product->next_record() ) { $vmLogger->err( $VM_LANG->_('PHPSHOP_PRODUCT_NOT_FOUND',false) ); return; } if( empty($product_id)) { $product_id = $db_product->f('product_id'); } $product_parent_id = (int)$db_product->f("product_parent_id"); if ($product_parent_id != 0) { $dbp= new ps_DB; $dbp->query('SELECT * FROM `#__{vm}_product` WHERE `product_id`='.$product_parent_id ); $dbp->next_record(); }
// Create the template object $tpl = vmTemplate::getInstance();
// Let's have a look wether the product has related products. $q = "SELECT product_sku, related_products FROM #__{vm}_product,#__{vm}_product_relations "; $q .= "WHERE #__{vm}_product_relations.product_id='$product_id' AND product_publish='Y' "; $q .= "AND FIND_IN_SET(#__{vm}_product.product_id, REPLACE(related_products, '|', ',' )) LIMIT 0, 4"; $db->query( $q ); /*// This shows randomly selected products from the products table // if you don't like to set up related products for each product $q = "SELECT product_sku FROM #__{vm}_product "; $q .= "WHERE product_publish='Y' AND product_id != $product_id "; $q .= "ORDER BY RAND() LIMIT 0, 4"; $db->query( $q );*/ $related_products = ''; if( $db->num_rows() > 0 ) { $tpl->set( 'ps_product', $ps_product ); $tpl->set( 'products', $db ); $related_products = $tpl->fetch( '/common/relatedProducts.tpl.php' ); }
// GET THE PRODUCT NAME $product_name = shopMakeHtmlSafe( $db_product->f("product_name") ); if( $db_product->f("product_publish") == "N" ) { $product_name .= " (".$VM_LANG->_('CMN_UNPUBLISHED').")"; } $product_description = $db_product->f("product_desc"); if( (str_replace("<br />", "" , $product_description)=='') && ($product_parent_id!=0) ) { $product_description = $dbp->f("product_desc"); // Use product_desc from Parent Product } $product_description = vmCommonHTML::ParseContentByPlugins( $product_description );
// Get the CATEGORY NAVIGATION $navigation_pathway = ""; $navigation_childlist = ""; $pathway_appended = false;
$flypage = vmGet($_REQUEST, "flypage" );
// Each Product is assigned to one or more Categories, if category_id was omitted, we must fetch it here if (empty($category_id) || empty( $flypage )) { $q = "SELECT cx.category_id, category_flypage FROM #__{vm}_category c, #__{vm}_product_category_xref cx WHERE product_id = '$product_id' AND c.category_id=cx.category_id LIMIT 0,1"; $db->query( $q ); $db->next_record(); if( !$db->f("category_id") ) { // The Product Has no category entry and must be a Child Product // So let's get the Parent Product $q = "SELECT product_id FROM #__{vm}_product WHERE product_id = '".$db_product->f("product_parent_id")."' LIMIT 0,1"; $db->query( $q ); $db->next_record();
$q = "SELECT cx.category_id, category_flypage FROM #__{vm}_category c, #__{vm}_product_category_xref cx WHERE product_id = '".$db->f("product_id")."' AND c.category_id=cx.category_id LIMIT 0,1"; $db->query( $q ); $db->next_record(); } $_GET['category_id'] = $category_id = $db->f("category_id"); } $ps_product->addRecentProduct($product_id,$category_id,$tpl->get_cfg('showRecent', 5)); if( empty( $flypage )) { $flypage = $db->f('category_flypage')? $db->f('category_flypage') : FLYPAGE; } // Flypage Parameter has old page syntax: shop.flypage // so let's get the second part - flypage $flypage = str_replace( 'shop.', '', $flypage); $flypage = stristr( $flypage, '.tpl')? $flypage : $flypage . '.tpl';
// Set up the pathway // Retrieve the pathway items for this product's category $category_list = array_reverse( $ps_product_category->get_navigation_list( $category_id ) ); $pathway = $ps_product_category->getPathway( $category_list );
// Add this product's name to the pathway, with no link $item = new stdClass(); $item->name = $product_name; $item->link = ''; $pathway[] = $item;
// Set the CMS pathway $vm_mainframe->vmAppendPathway( $pathway );
// Set the pathway for our template $tpl->set( 'pathway', $pathway );
$tpl->set( 'product_name', $product_name );
// Get the neighbor Products to allow navigation on product level $neighbors = $ps_product->get_neighbor_products( !empty( $product_parent_id )? $product_parent_id : $product_id ); $next_product = $neighbors['next']; $previous_product = $neighbors['previous']; $next_product_url = $previous_product_url = ''; if( !empty($next_product) ) { $url_parameters = 'page=shop.product_details&product_id='.$next_product['product_id'].'&flypage='.$ps_product->get_flypage($next_product['product_id']).'&pop='.$pop; if( $manufacturer_id ) { $url_parameters .= "&manufacturer_id=" . $manufacturer_id; } if( $keyword != '') { $url_parameters .= "&keyword=".urlencode($keyword); } if( $pop == 1 ) { $next_product_url = $sess->url( $_SERVER['PHP_SELF'].'?'.$url_parameters ); } else { $next_product_url = str_replace("index2","index",$sess->url( $url_parameters )); } } if( !empty($previous_product) ) { $url_parameters = 'page=shop.product_details&product_id='.$previous_product['product_id'].'&flypage='.$ps_product->get_flypage($previous_product['product_id']).'&pop='.$pop; if( $manufacturer_id ) { $url_parameters .= "&manufacturer_id=" . $manufacturer_id; } if( $keyword != '') { $url_parameters .= "&keyword=".urlencode($keyword); } if( $pop == 1 ) { $previous_product_url = $sess->url( $_SERVER['PHP_SELF'].'?'.$url_parameters ); } else { $previous_product_url = str_replace("index2","index",$sess->url( $url_parameters )); } }
$tpl->set( 'next_product', $next_product ); $tpl->set( 'next_product_url', $next_product_url ); $tpl->set( 'previous_product', $previous_product ); $tpl->set( 'previous_product_url', $previous_product_url );
$parent_id_link = $db_product->f("product_parent_id"); $return_link = ""; if ($parent_id_link <> 0 ) { $q = "SELECT product_name FROM #__{vm}_product WHERE product_id = '$product_parent_id' LIMIT 0,1"; $db->query( $q ); $db->next_record(); $product_parent_name = $db->f("product_name"); $return_link = " <a class=\"pathway\" href=\""; $return_link .= $sess->url($_SERVER['PHP_SELF'] . "?page=shop.product_details&product_id=$parent_id_link"); $return_link .= "\">"; $return_link .= $product_parent_name; $return_link .= "</a>"; $return_link .= " ".vmCommonHTML::pathway_separator()." "; } $tpl->set( 'return_link', $return_link );
// Create the pathway for our template $navigation_pathway = $tpl->fetch( 'common/pathway.tpl.php');
if ($ps_product_category->has_childs($category_id) ) { $category_childs = $ps_product_category->get_child_list($category_id); $tpl->set( 'categories', $category_childs ); $navigation_childlist = $tpl->fetch( 'common/categoryChildlist.tpl.php'); }
// Set Dynamic Page Title $vm_mainframe->setPageTitle( html_entity_decode( substr($product_name, 0, 60 ), ENT_QUOTES ));
// Prepend Product Short Description Meta Tag "description" if( vmIsJoomla('1.5')) { $document = JFactory::getDocument(); $document->setDescription(strip_tags( $db_product->f("product_s_desc"))); } else { $mainframe->prependMetaTag( "description", strip_tags( $db_product->f("product_s_desc")) ); }
// Show an "Edit PRODUCT"-Link if ($perm->check("admin,storeadmin")) { $edit_link = '<a href="'. $sess->url( 'index2.php?page=product.product_form&next_page=shop.product_details&product_id='.$product_id).'"> <img src="images/M_images/edit.png" width="16" height="16" alt="'. $VM_LANG->_('PHPSHOP_PRODUCT_FORM_EDIT_PRODUCT').'" border="0" /></a>'; } else { $edit_link = ""; }
// LINK TO MANUFACTURER POP-UP $manufacturer_id = $ps_product->get_manufacturer_id($product_id); $manufacturer_name = $ps_product->get_mf_name($product_id); $manufacturer_link = ""; if( $manufacturer_id && !empty($manufacturer_name) ) { $link = "$mosConfig_live_site/index2.php?page=shop.manufacturer_page&manufacturer_id=$manufacturer_id&output=lite&option=com_virtuemart&Itemid=".$Itemid; $text = '( '.$manufacturer_name.' )'; $manufacturer_link .= vmPopupLink( $link, $text );
// Avoid JavaScript on PDF Output if( @$_REQUEST['output'] == "pdf" ) $manufacturer_link = "<a href=\"$link\" target=\"_blank\" title=\"$text\">$text</a>"; } // PRODUCT PRICE if (_SHOW_PRICES == '1') { if( $db_product->f("product_unit") && VM_PRICE_SHOW_PACKAGING_PRICELABEL) { $product_price_lbl = "<strong>". $VM_LANG->_('PHPSHOP_CART_PRICE_PER_UNIT').' ('.$db_product->f("product_unit")."):</strong>"; } else { $product_price_lbl = "<strong>". $VM_LANG->_('PHPSHOP_CART_PRICE'). ": </strong>"; } $product_price = $ps_product->show_price( $product_id ); } else { $product_price_lbl = ""; $product_price = ""; } // @var array $product_price_raw The raw unformatted Product Price in Float Format $product_price_raw = $ps_product->get_adjusted_attribute_price($product_id); // Change Packaging - Begin // PRODUCT PACKAGING if ( $db_product->f("product_packaging") ) { $packaging = $db_product->f("product_packaging") & 0xFFFF; $box = ($db_product->f("product_packaging") >> 16) & 0xFFFF; $product_packaging = ""; if ( $packaging ) { $product_packaging .= $VM_LANG->_('PHPSHOP_PRODUCT_PACKAGING1').$packaging; if( $box ) $product_packaging .= "<br/>"; } if ( $box ) { $product_packaging .= $VM_LANG->_('PHPSHOP_PRODUCT_PACKAGING2').$box; }
$product_packaging = str_replace("{unit}",$db_product->f("product_unit")?$db_product->f("product_unit") : $VM_LANG->_('PHPSHOP_PRODUCT_FORM_UNIT_DEFAULT'),$product_packaging); } else { $product_packaging = ""; } // Change Packaging - End
// PRODUCT IMAGE $product_full_image = $product_parent_id!=0 && !$db_product->f("product_full_image")? $dbp->f("product_full_image") : $db_product->f("product_full_image"); // Change $product_thumb_image = $product_parent_id!=0 && !$db_product->f("product_thumb_image")? $dbp->f("product_thumb_image") : $db_product->f("product_thumb_image"); // Change
/* MORE IMAGES ? */ $files = ps_product_files::getFilesForProduct( $product_id );
$more_images = ""; if( !empty($files['images']) ) { $more_images = $tpl->vmMoreImagesLink( $files['images'] ); } // Does the Product have files? $file_list = ps_product_files::get_file_list( $product_id );
$product_availability = '';
if( @$_REQUEST['output'] != "pdf" ) { // Show the PDF, Email and Print buttons $tpl->set('option', $option); $tpl->set('category_id', $category_id ); $tpl->set('product_id', $product_id ); $buttons_header = $tpl->fetch( 'common/buttons.tpl.php' ); $tpl->set( 'buttons_header', $buttons_header );
// AVAILABILITY // This is the place where it shows: Availability: 24h, In Stock: 5 etc. // You can make changes to this functionality in the file: classes/ps_product.php $product_availability = $ps_product->get_availability($product_id); } $product_availability_data = $ps_product->get_availability_data($product_id);
/** Ask seller a question **/ $ask_seller_href = $sess->url( $_SERVER ['PHP_SELF'].'?page=shop.ask&flypage='.@$_REQUEST['flypage']."&product_id=$product_id&category_id=$category_id" ); $ask_seller_text = $VM_LANG->_('VM_PRODUCT_ENQUIRY_LBL'); $ask_seller = '<a class="button" href="'. $ask_seller_href .'">'. $ask_seller_text .'</a>';
/* SHOW RATING */ $product_rating = ""; if (PSHOP_ALLOW_REVIEWS == '1') { $product_rating = ps_reviews::allvotes( $product_id ); }
$product_reviews = $product_reviewform = ""; /* LIST ALL REVIEWS **/ if (PSHOP_ALLOW_REVIEWS == '1') { /*** Show all reviews available ***/ $product_reviews = ps_reviews::product_reviews( $product_id ); /*** Show a form for writing a review ***/
if( $auth['user_id'] > 0 ) { $product_reviewform = ps_reviews::reviewform( $product_id ); } }
/* LINK TO VENDOR-INFO POP-UP **/ $vend_id = $ps_product->get_vendor_id($product_id); $vend_name = $ps_product->get_vendorname($product_id);
$link = "$mosConfig_live_site/index2.php?page=shop.infopage&vendor_id=$vend_id&output=lite&option=com_virtuemart&Itemid=".$Itemid; $text = $VM_LANG->_('PHPSHOP_VENDOR_FORM_INFO_LBL'); $vendor_link = vmPopupLink( $link, $text );
// Avoid JavaScript on PDF Output if( @$_REQUEST['output'] == "pdf" ) $vendor_link = "<a href=\"$link\" target=\"_blank\" title=\"$text\">$text</a>";
if ($product_parent_id!=0 && !$ps_product_type->product_in_product_type($product_id)) { $product_type = $ps_product_type->list_product_type($product_parent_id); } else { $product_type = $ps_product_type->list_product_type($product_id); }
$recent_products = $ps_product->recentProducts($product_id,$tpl->get_cfg('showRecent', 5)); /** * This has changed since VM 1.1.0 * Now we have a template object that can use all variables * that we assign here. * * Example: If you run * $tpl->set( "product_name", $product_name ); * The variable "product_name" will be available in the template under this name * with the value of $product_name * * */
// This part allows us to copy ALL properties from the product table // into the template $productData = $db_product->get_row(); $productArray = get_object_vars( $productData );
$productArray["product_id"] = $product_id; $productArray["product_full_image"] = $product_full_image; // to display the full image on flypage $productArray["product_thumb_image"] = $product_thumb_image;
$tpl->set( 'productArray', $productArray ); foreach( $productArray as $property => $value ) { $tpl->set( $property, $value); } // Assemble the thumbnail image as a link to the full image // This function is defined in the theme (theme.php) $product_image = $tpl->vmBuildFullImageLink( $productArray );
$tpl->set( "product_id", $product_id ); $tpl->set( "product_name", $product_name ); $tpl->set( "product_image", $product_image ); $tpl->set( "more_images", $more_images ); $tpl->set( "images", $files['images'] ); $tpl->set( "files", $files['files'] ); $tpl->set( "file_list", $file_list ); $tpl->set( "edit_link", $edit_link ); $tpl->set( "manufacturer_link", $manufacturer_link ); $tpl->set( "product_price", $product_price ); $tpl->set( "product_price_lbl", $product_price_lbl ); $tpl->set( 'product_price_raw', $product_price_raw ); $tpl->set( "product_description", $product_description );
/* ADD-TO-CART */ $tpl->set( 'manufacturer_id', $manufacturer_id ); $tpl->set( 'flypage', $flypage ); $tpl->set( 'ps_product_attribute', $ps_product_attribute ); $addtocart = $tpl->fetch('product_details/includes/addtocart_form.tpl.php' );
$tpl->set( "addtocart", $addtocart ); // Those come from separate template files $tpl->set( "navigation_pathway", $navigation_pathway ); $tpl->set( "navigation_childlist", $navigation_childlist ); $tpl->set( "product_reviews", $product_reviews ); $tpl->set( "product_reviewform", $product_reviewform ); $tpl->set( "product_availability", $product_availability ); $tpl->set( "product_availability_data", $product_availability_data );
$tpl->set( "related_products", $related_products ); $tpl->set( "vendor_link", $vendor_link ); $tpl->set( "product_type", $product_type ); // Changed Product Type $tpl->set( "product_packaging", $product_packaging ); // Changed Packaging $tpl->set( "ask_seller_href", $ask_seller_href ); // Product Enquiry! $tpl->set( "ask_seller_text", $ask_seller_text ); // Product Enquiry! $tpl->set( "ask_seller", $ask_seller ); // Product Enquiry! $tpl->set( "recent_products", $recent_products); // Recent products /* Finish and Print out the Page */ echo $tpl->fetch( '/product_details/'.$flypage . '.php' );
?>
проблема та же: нету строчек shop.browse.php: $product_cell = str_replace( "{product_name}", shopMakeHtmlSafe( $product_name ), $product_cell );shop.product_detailes.php: /** NOW LET'S BEGIN AND FILL THE TEMPLATE **/2. В свой файл /administrator/components/com_virtuemart/html/templates/browse/browse*.php добавляем заглушку в нужное место {quantaty} Все. вообще не знаю... нету у меня никаких папок в /administrator/components/com_virtuemart/html/ 4-ый пункт: тоже самое - нету ничего кроме php-шников -- пробовал сделать так как ibrogim - не подействовало (без понятия почему) -- плачу
|
|
|
|
|
Записан
|
|
|
|
elsov
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 42
|
 |
« Ответ #53 : 31.08.2010, 16:53:42 » |
|
beagler, а не могли бы Вы тоже самое описать, но для версии 1.0.х. Просто очень много уже в этом VM изменено под себя и переходить пока на 1.1 не очень хочется, а функция вывода наличия\отсутствия в списке товаров позарез нужна. Готов даже на посильное вознаграждение.
|
|
|
|
|
Записан
|
|
|
|
|
Marvel
Гость
|
 |
« Ответ #54 : 05.10.2010, 20:45:28 » |
|
спасибо, делал все как написано единственное что - в страничке товара не убивается корзина ставил if ($quantaty=='0'){ $addtocart="";} перед /* LIST ALL REVIEWS **/
если не сложно, гляньте файлик) может видно косяк сразу будет где нибудь заранее благодарен
|
|
|
|
|
Записан
|
|
|
|
terr
Завсегдатай
   
Репутация: +10/-4
Offline
Пол: 
Сообщений: 750
Ученик html-я
|
 |
« Ответ #55 : 03.11.2010, 12:49:07 » |
|
Marvel спасибо, делал все как написано единственное что - в страничке товара не убивается корзина ставил if ($quantaty=='0'){ $addtocart="";} перед /* LIST ALL REVIEWS **/
если не сложно, гляньте файлик) может видно косяк сразу будет где нибудь заранее благодарен Проверь везде переменные "quantaty" и сделай чтобы они были одинаково прописаны если есть различия то не будет отображаться! В обоих файлах проверь
|
|
|
|
|
Записан
|
|
|
|
dmi-sky
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 27
|
 |
« Ответ #56 : 09.11.2010, 18:13:45 » |
|
Знающие люди, подскажите, кто знает как отобразить в админпанеле в списке товаров количество на складе, т.е. есть такие поля: Название товара Медиа Артикул Цена Категория Изменить порядок отображения Save Order Sort Alphabetically Производители Мнения покупателей Опубликовать Копировать товар Удалить Id Вот сюда добавить колонку, где будет отображаться количество товара в наличие. А то проверять сколько осталось на складе, заходя в каждый товар уж слишком не удобно. А ещё лучше бы сделать, чтобы там были ячейки с количеством, чтобы его можно было менять, не заходя в товар. Такое, думаю, многим будет полезно и интересно узнать.
VM 1.1.3
|
|
|
|
|
Записан
|
|
|
|
Bangoo
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 47
Пишу сайты на мантрах
|
 |
« Ответ #57 : 25.02.2011, 22:27:05 » |
|
Убрать отображение количества товаров в наличии на странице товара не получилось, хотя делал по рекомендациям в теме.  Список товаров категории у меня в виде таблицы (файл browse_listtable.tpl), наличие товаров отображается, но только вверху таблицы. Наверно для того чтобы вставить это значение в колонку таблицы прописывать код в файле browse_listtable.tpl, но какой именно мне понять не судьба - c PHP пока не дружим. Нужна помощь, кто может - посмотрите файлы, если решение простое подскажите пожалуйста ! ! !
|
|
|
|
|
Записан
|
|
|
|
Bangoo
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 47
Пишу сайты на мантрах
|
 |
« Ответ #58 : 25.02.2011, 22:45:28 » |
|
Со списком товаров категории вроде бы решил, методом тыка добавил следующий код: //Наличие товара $data[$row][] = '<a href="'.$product['product_flypage'].'">' . '</a><br><a href="'.$product['product_flypage'].'"><div style="font-size:14px; font-weight:bold;">'.$product['quantaty'].'</div></a>'; } Но проблема со страницей товара осталась - количество товара мозолит глаза, вообще в этом отношении VirtueMart сделан очень неудобно, нет возможности для маневра через админ панель. У меня Joomla 1.5.22 VirtueMart 1.1.5
|
|
|
|
|
Записан
|
|
|
|
andx
Осваиваюсь на форуме
 
Репутация: +5/-0
Offline
Сообщений: 111
|
 |
« Ответ #59 : 01.03.2011, 15:34:17 » |
|
Спасибо! Все сделал как в сообщении выше включая поправки в след посте. Вот только заглушка во flypage почемуто не отображалась, ради интереса попробовал <?php echo $product_quantaty ?> вместо <?php echo $quantaty ?> и все заработало! VM 1.1.6 ps. Другой вопрос, подскажите куда и какой код прописать, чтобы на товарах, которые не в наличии (условие if ($quantaty>0) и else... ) пропадала кнопка КУПИТЬ и вместо нее появлялась ссылка УВЕДОМИТЬ. Эта функция нужна в browse и flypage pps. И еще вопрос, кто как реализовал сортировку товара по наличию, так чтобы товар в наличии располагался весь сверху? По дефолту в виртумарте есть токо по цене, наименованию, артикулу итп.. Еще желательна дополнительная возможность совмещать сортировку с порядковым номером product_list. У меня товар в категориях отображен в прописанном мною порядке.. Дайте пожалуйста ссылочку или хоть какую инфу, где можно про это прочесть, если есть такое
|
|
|
|
« Последнее редактирование: 07.03.2011, 10:31:07 от andx »
|
Записан
|
|
|
|
andx
Осваиваюсь на форуме
 
Репутация: +5/-0
Offline
Сообщений: 111
|
 |
« Ответ #60 : 10.03.2011, 16:48:18 » |
|
Спасибо! Все сделал как в сообщении выше включая поправки в след посте. Вот только заглушка во flypage почемуто не отображалась, ради интереса попробовал <?php echo $product_quantaty ?> вместо <?php echo $quantaty ?> и все заработало! VM 1.1.6 ps. Другой вопрос, подскажите куда и какой код прописать, чтобы на товарах, которые не в наличии (условие if ($quantaty>0) и else... ) пропадала кнопка КУПИТЬ и вместо нее появлялась ссылка УВЕДОМИТЬ. Эта функция нужна в browse и flypage pps. И еще вопрос, кто как реализовал сортировку товара по наличию, так чтобы товар в наличии располагался весь сверху? По дефолту в виртумарте есть токо по цене, наименованию, артикулу итп.. Еще желательна дополнительная возможность совмещать сортировку с порядковым номером product_list. У меня товар в категориях отображен в прописанном мною порядке.. Дайте пожалуйста ссылочку или хоть какую инфу, где можно про это прочесть, если есть такое UPD:Пробовал этот мануал, но чтото не работает сортировка по наличию. У меня VM1.1.7. Кто может проверьте у себя и отпишитесь пожалуйста. UPD:Всетки наковырял решение. Делаете как в мануале по ссылке выше, но потом правите VirtueMart.cfg.php как написано здесь. Финальный штрих, чтобы товары в наличии всегда показывались первыми в категории, а не в наличии стояли после - вот этот мануальчик. И как всегда ответы порождают новые вопросы  , подскажите как добавить второе условие сортировки, после этого первого? Тоесть надо, чтобы товары, которые в наличии сверху, располагались еще и по порядковой цифре, стоящей в колонке product_list в БД.
|
|
|
|
« Последнее редактирование: 25.03.2011, 14:51:25 от andx »
|
Записан
|
|
|
|
art-lana
Осваиваюсь на форуме
 
Репутация: +2/-0
Offline
Пол: 
Сообщений: 54
делаю сайты
|
 |
« Ответ #61 : 11.05.2011, 00:15:09 » |
|
Я сделала проще. (у меня VM 1.1.8, на VM 1.1.4 тоже работает, другие версии не проверяла) Из языкового файла понимаем, что "товаров в наличии" это 'PHPSHOP_PRODUCT_FORM_IN_STOCK', изменяем значение на "На складе", идем в \components\com_virtuemart\themes\default\templates\common\availability.tpl.php, находим строки: elseif( ($product_in_stock >= 1 && CHECK_STOCK) ) { ?><span style="font-weight:bold;"> <?php echo $VM_LANG->_('PHPSHOP_PRODUCT_FORM_IN_STOCK')?> : </span><?php echo $product_in_stock ?> Теперь понятно, что количество выводит $product_in_stock, закомментировав ее, мы избавляемся от цифры наличия товаров на складе. elseif( ($product_in_stock >= 1 && CHECK_STOCK) ) { ?><span style="font-weight:bold;"> <?php echo $VM_LANG->_('PHPSHOP_PRODUCT_FORM_IN_STOCK')?> </span><?php // echo $product_in_stock ?> В языковом файле PHPSHOP_AVAILABILITY обозначаем как "Наличие:" В итоге получаем: Наличие: На складе. Либо Наличие: Этого товара нет в наличии (можно написать "под заказ", или кому как нравится) Способ наверно для блондинок, но меня полностью устраивает 
|
|
|
|
« Последнее редактирование: 11.05.2011, 00:24:19 от art-lana »
|
Записан
|
|
|
|
artMelnikov
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 54
|
 |
« Ответ #62 : 13.07.2011, 23:43:50 » |
|
J 1.5.22 VM 1.1.8. Сделал все как в 37-39 постах. Работает Спасибо! Но не пойму как сделать, чтоб на товарах, которых нет в наличии вместо "Уведомлять меня" была тоже кнопка "Купить", а лучше "Заказать" и их можно было так же купить как и те что в наличии.
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #63 : 14.07.2011, 00:21:13 » |
|
отключить в админке отслеживание остатка товара
|
|
|
|
|
Записан
|
|
|
|
artMelnikov
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 54
|
 |
« Ответ #64 : 14.07.2011, 22:41:33 » |
|
отключить в админке отслеживание остатка товара
Блиииин. Вот я тормоз. Спасибо большое! + тебе.  Подумал что если отключить отслеживание остатка то и "в наличии/ нет в наличии" не будет работать. Проверил, работает. Ура!
|
|
|
|
|
Записан
|
|
|
|
artMelnikov
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 54
|
 |
« Ответ #65 : 14.07.2011, 23:13:44 » |
|
А можно сделать так, чтоб у товара, которого нет в наличии цвет кнопки "Купить" или картинка кнопки корзины были Красного цвета? А еще круче, чтобы и в корзине Название товара которого нет в наличии, тоже было красным. Чтоб человек ясно понимал, что данный товар покупается под заказ и его придется ждать.
|
|
|
|
« Последнее редактирование: 25.07.2011, 21:41:13 от artMelnikov »
|
Записан
|
|
|
|
|
vtx
|
 |
« Ответ #66 : 26.08.2011, 00:03:21 » |
|
Лучше в карточке и браусе сделать красным имя товара, чтобы покупатель сразу понимал, что ему надо ждать. иначе получите кучу отказов в корзине.
<?php if ($product_in_stock=0){?> <div id="not_in_stock" style="color:red"> <?php echo $product_name; ?> <strong>Доставим под заказ.</strong> </div> <?php }else{ echo $product_name?>
|
|
|
|
|
Записан
|
|
|
|
artMelnikov
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 54
|
 |
« Ответ #67 : 28.08.2011, 23:56:57 » |
|
Лучше в карточке и браусе сделать красным имя товара, чтобы покупатель сразу понимал, что ему надо ждать. иначе получите кучу отказов в корзине.
<?php if ($product_in_stock=0){?> <div id="not_in_stock" style="color:red"> <?php echo $product_name; ?> <strong>Доставим под заказ.</strong> </div> <?php }else{ echo $product_name?>
А можешь написать куда конкретно вставлять код, потому что и так его и так вертел... не выходит. особенно в корзине было бы хорошо выделить цветом товары с нулевым остатком. Заранее спасибо!
|
|
|
|
|
Записан
|
|
|
|
|
vtx
|
 |
« Ответ #68 : 29.08.2011, 14:01:26 » |
|
в корзину принципиально никогда не лез. а кодом заменить заглушку на вывод имени товара. но поле product_in_stock должно само по себе быть заглушкой, или тянуть значение запросом из базы.
|
|
|
|
|
Записан
|
|
|
|
artMelnikov
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 54
|
 |
« Ответ #69 : 29.08.2011, 16:20:34 » |
|
Поправил чуток код и все заработало! в browse_1.php и flypage.tpl.php заменил код <?php echo $product_name ?> на <?php if ($product_in_stock<1){?> <?php echo $product_name; ?> <strong style="color:red"> (Под заказ)</strong> <?php }else echo $product_name ?> сохранил файл в кодировке UTF-8. после этого возле названия товара с остатком меньше 1 появилась красная надпись "(Под заказ)" to vtxу тебя в коде после else лишняя скобка была и $product_in_stock=0 тоже не проканало. А за помощь Спасибо! + в карму
|
|
|
|
|
Записан
|
|
|
|
z00mER
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 9
|
 |
« Ответ #70 : 06.09.2011, 02:17:03 » |
|
Подскажите пожалуйста, очень надо чтобы возле товаров что Под заказ была кнопка с функцией купить но с картинкой "Заказать". Дабы была логичной схема. Спасибо.
|
|
|
|
« Последнее редактирование: 06.09.2011, 02:39:52 от z00mER »
|
Записан
|
|
|
|
Zyama
Захожу иногда

Репутация: +1/-0
Offline
Сообщений: 17
|
 |
« Ответ #71 : 07.10.2011, 20:34:50 » |
|
Никто не пробовал добавить эту же функцию в сопутствующие товары, в productsnapshot.tpl.php?
|
|
|
|
|
Записан
|
|
|
|
Sedoy
Support Team
   
Репутация: +77/-10
Offline
Пол: 
Сообщений: 1084
Интересно,в какой кодировке пишут врачи?
|
 |
« Ответ #72 : 16.12.2011, 17:25:08 » |
|
отключить в админке отслеживание остатка товара да но между "купить" и "заказать" есть некая разница.... как-то нужно выделить и показать челу, что этот товар "под заказ" идеологически правильней вообще нужно как-то разделить "продажа" и "заказ" т.е. должно быть две формы и соответственно 2 документа одна: купил-оплатил-получил другая: заказал-оплатил-получил в офлайн-базах это две разные операции/документы (записи в базе) кто как решает такие вопросы?
|
|
|
|
|
Записан
|
|
|
|
artMelnikov
Осваиваюсь на форуме
 
Репутация: +1/-0
Offline
Пол: 
Сообщений: 54
|
 |
« Ответ #73 : 16.12.2011, 23:44:10 » |
|
кто как решает такие вопросы?
Покупатель видит в списке товаров в наличии он или под заказ. добавляет в корзину и такой и такой товар. Менеджер, формируя неподтвержденную заявку в 1с видит, что какого-то товара нет в наличии и звонит покупателю и говорит что он под заказ и надо ждать, если устраивает, заказывает, если нет, меняет или убирает. Проблемыв следующем: 1. если на складе 3 шт., а он заказал 5 шт., то покупатель не знает, что он заказал больше, чем есть в наличии. на сайте http://www.compass.com.ru/ когда в корзине количество товара превышает реальный остаток, наименование становится красным и возле него появляется реальный остаток, например: Жесткий диск (3) 2. в корзине не видно, есть товар или нет в наличии. можно запутаться.
|
|
|
|
|
Записан
|
|
|
|
Sedoy
Support Team
   
Репутация: +77/-10
Offline
Пол: 
Сообщений: 1084
Интересно,в какой кодировке пишут врачи?
|
 |
« Ответ #74 : 17.12.2011, 11:09:56 » |
|
по идее он должен видеть реальный остаток на складе правда, с одной стороны, многие спецом это скрывают с другой, сам маг должен работать в реальном времени со складом, если имеется параллельная торговля офлайн с того же склада
кто нибудь решал вопрос кнопки "купить" таком разрезе: в наличии >0 - выводит "купить" в наличии =0 - выводит "заказ" для товара у которого свойства или позиции - выводит "выбрать"
есть готовые или близкие решения?
|
|
|
|
|
Записан
|
|
|
|
тм
Захожу иногда

Репутация: +0/-0
Offline
Сообщений: 7
|
 |
« Ответ #75 : 31.12.2011, 00:46:27 » |
|
Ничего не понимаю,как сделать,чтобы на странице с товарами была надпись, есть в наличии, нет в наличии,под заказ, уценка. Можно очень подробно по шагам рассказать, как это сделать? или может кто-то за оплату сделает?
|
|
|
|
|
Записан
|
|
|
|
beagler
Moderator
   
Репутация: +316/-4
Offline
Пол: 
Сообщений: 2994
http://beagler.ru/
|
 |
« Ответ #76 : 31.12.2011, 10:55:57 » |
|
по шагам вроде и так в теме расписано. Если не понятно - создайте тему в коммерческих вопросах, опишите Вашу задачу. Приложите макет того что хотите получить. Объявите бюджет. Помогут.
|
|
|
|
|
Записан
|
|
|
|
tigra-uki
Осваиваюсь на форуме
 
Репутация: +6/-0
Offline
Пол: 
Сообщений: 190
Joom'листка
|
 |
« Ответ #77 : 14.02.2012, 11:00:05 » |
|
J 1.5.22 VM 1.1.8. Сделал все как в 37-39 постах. Работает Спасибо! в Joomla 1.5.25+VirtueMart1.1.9 все также работает отлично! Спасибо всем, кто помог найти верное решение!
|
|
|
|
|
Записан
|
|
|
|
Romaha
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 38
|
 |
« Ответ #78 : 26.04.2012, 23:34:58 » |
|
Я тоже сделал как в постах 37-39 с поправкой на 69. Не сразу но как-то заработало  . Вот теперь другая задача: как сделать возможным сортировку по наличию... Нагуглил "мануал": http://nrg-design.ru/forum/drugoe/sortirovka-po-nalichiyu-v-virtuemart.html Сделал точно как там написано, в результате и сайт и админка отвалились. Поковырял, кое-что поменял, методом тыка по-исправлял синтаксис. В результате право выбора "По наличию" стало возможным и в админке и в browse. Но при выборе сортировки по наличию, товаров нет вообще. Я так понимаю, скорее всего из базы не тянет инфу о наличии товаров. Подскажите пожалуйста, что где нужно добавить? Так-то я чайник в коде :-( Описываю свои действия: в admin.show_cfg.php после 805 строки вставил: <input name="conf_VM_BROWSE_ORDERBY_FIELDS[]" type="checkbox" value="product_in_stock" <?php if (in_array( 'product_in_stock', $VM_BROWSE_ORDERBY_FIELDS )) echo "checked=\"checked\""; ?> id="conf_VM_BROWSE_ORDERBY_FIELDS5" /> <label for="conf_VM_BROWSE_ORDERBY_FIELDS5"><?php echo $VM_LANG->_('PHPSHOP_PRODUCT_ORDER_DEFAULT_MODIFIED')?></label>
После 781 строки: <option value="product_list" <?php if (@VM_BROWSE_ORDERBY_FIELD == 'product_in_stock') echo "selected=\"selected\""; ?>><?php echo $VM_LANG->_('PHPSHOP_PRODUCT_ORDER_DEFAULT_MODIFIED')?></option>
В shop_browse_queries.php после 56 строки: case 'product_in_stock': $orderbyField = '`#__{vm}_product_in_stock`.`product_in_stock`'; break;
В browse_orderbyfields.tpl.php после 41 строки: // SORT BY IN_STOCK if( in_array( 'product_in_stock', $VM_BROWSE_ORDERBY_FIELDS)) { ?> <option value="product_in_stock" <?php echo $orderby=="product_in_stock" ? "selected=\"selected\"" : "";?>> <?php echo $VM_LANG->_('PHPSHOP_PRODUCT_ORDER_DEFAULT_MODIFIED_LBL')?></option> <?php }
И наконец в russian.php добавляю: 'PHPSHOP_PRODUCT_ORDER_DEFAULT_MODIFIED' => 'По наличию', 'PHPSHOP_PRODUCT_ORDER_DEFAULT_MODIFIED_LBL' => 'По наличию',
На всякий случай прикладываю все 4 файла. Joomla 1.5 Vm 1.1.3 Спасибо.
|
|
|
|
« Последнее редактирование: 27.04.2012, 00:10:57 от Romaha »
|
Записан
|
|
|
|
Romaha
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 38
|
 |
« Ответ #79 : 26.04.2012, 23:47:09 » |
|
И еще нашел косяк: когда в админке ставишь сортировку по умолчанию: "По наличию", сортировка не происходит, т.е. полностью игнорируется.
|
|
|
|
« Последнее редактирование: 27.04.2012, 14:36:31 от Romaha »
|
Записан
|
|
|
|
Romaha
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 38
|
 |
« Ответ #80 : 27.04.2012, 22:59:52 » |
|
Всетки наковырял решение. Делаете как в мануале по ссылке выше, но потом правите VirtueMart.cfg.php как написано здесь. roduct_list в БД. Тема отсутствует... Может подскажете как сделать?
|
|
|
|
|
Записан
|
|
|
|
Romaha
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 38
|
 |
« Ответ #81 : 28.04.2012, 14:43:28 » |
|
Пожалуйста, хотя бы "толкните в нужную сторону" ничего не получается.
|
|
|
|
|
Записан
|
|
|
|
rezon
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 29
|
 |
« Ответ #82 : 10.05.2012, 15:32:09 » |
|
решил вопрос в данном ниже варианте Я сделала проще. (у меня VM 1.1.8, на VM 1.1.4 тоже работает, другие версии не проверяла) Из языкового файла понимаем, что "товаров в наличии" это 'PHPSHOP_PRODUCT_FORM_IN_STOCK', изменяем значение на "На складе", идем в \components\com_virtuemart\themes\default\templates\common\availability.tpl.php, находим строки: elseif( ($product_in_stock >= 1 && CHECK_STOCK) ) { ?><span style="font-weight:bold;"> <?php echo $VM_LANG->_('PHPSHOP_PRODUCT_FORM_IN_STOCK')?> : </span><?php echo $product_in_stock ?> Теперь понятно, что количество выводит $product_in_stock, закомментировав ее, мы избавляемся от цифры наличия товаров на складе. elseif( ($product_in_stock >= 1 && CHECK_STOCK) ) { ?><span style="font-weight:bold;"> <?php echo $VM_LANG->_('PHPSHOP_PRODUCT_FORM_IN_STOCK')?> </span><?php // echo $product_in_stock ?> В языковом файле PHPSHOP_AVAILABILITY обозначаем как "Наличие:" В итоге получаем: Наличие: На складе. Либо Наличие: Этого товара нет в наличии (можно написать "под заказ", или кому как нравится) Способ наверно для блондинок, но меня полностью устраивает  Проблема....Подскажите как вывести эти данные в browse, код который использую для вывода этих данных в flypage не работает <?php if( $this->get_cfg( 'showAvailability' )) { echo $product_availability; } ?> Код моего browse_1<div class="browseProductContainer">
<h3 class="browseProductTitle"><a title="<?php echo $product_name ?>" href="<?php echo $product_flypage ?>"> <?php echo $product_name ?></a> </h3> <div class="browsePriceContainer"> <?php echo $product_price ?><br /> </div> <div class="browseProductImageContainer"> <script type="text/javascript">//<![CDATA[ document.write('<a href="javascript:void window.open(\'<?php echo $product_full_image ?>\', \'win2\', \'status=no,toolbar=no,scrollbars=yes,titlebar=no,menubar=no,resizable=yes,width=<?php echo $full_image_width ?>,height=<?php echo $full_image_height ?>,directories=no,location=no\');">'); document.write( '<?php echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="0" title="'.$product_name.'" alt="'.$product_name .'"' )?></a>' ); //]]> </script> <noscript> <a href="<?php echo $product_full_image ?>" target="_blank" title="<?php echo $product_name ?>"> <?php echo ps_product::image_tag( $product_thumb_image, 'class="browseProductImage" border="0" title="'.$product_name.'" alt="'.$product_name .'"' )?> </a> <?php echo $product_quantaty ?>
</noscript> <br/> <br/>
</div> <div class="browseRatingContainer"> <?php echo $product_rating ?> </div> <div class="browseProductDescription"> <div style="margin: 15px 0 5px;"><?php echo $product_s_desc ?> </div> <a class="readon" href="<?php echo $product_flypage ?>" title="<?php echo $product_details ?>"> <?php echo $product_details ?>...</a> </div>
<br />
<div class="browseAddToCartContainer">
<?php echo $form_addtocart ?>
</div><br/>
</div>
|
|
|
|
|
Записан
|
|
|
|
rezon
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 29
|
 |
« Ответ #83 : 12.05.2012, 14:23:44 » |
|
UP подскажите как сделать В наличии Нет в наличии
|
|
|
|
|
Записан
|
|
|
|
Romaha
Осваиваюсь на форуме
 
Репутация: +0/-0
Offline
Сообщений: 38
|
 |
« Ответ #84 : 12.05.2012, 14:48:48 » |
|
UP подскажите как сделать В наличии Нет в наличии
Делай как в постах 37-39 с поправкой на 69-й пост этой темы
|
|
|
|
|
Записан
|
|
|
|
|