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

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: 1 2 3 [Все]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: [Решено] Как изменить ,товаров в наличии 1 на "есть в наличии" V1.0.15 V1.1.3  (Прочитано 17672 раз)
0 Пользователей и 2 Гостей смотрят эту тему.
ButuzOFF
Осваиваюсь на форуме
***

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

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



« : 01.10.2006, 22:37:19 »

Ребята подскажите плиз как убрать количество товаров в наличии
Тоесть не показывать само количество 1,2  а например "есть в наличии"  "нет в наличии"
Заранее спасибо
« Последнее редактирование: 06.06.2009, 09:36:43 от beagler » Записан
beagler
Moderator
*****

Репутация: +316/-4
Offline 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 Offline

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



« Ответ #2 : 01.10.2006, 22:57:47 »

спасибо +
Записан
beagler
Moderator
*****

Репутация: +316/-4
Offline 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 Offline

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


http://beagler.ru/


« Ответ #5 : 17.11.2006, 16:25:17 »

Где выводит? в списке товаров или во флаере? Где что меняли?
Записан
beagler
Moderator
*****

Репутация: +316/-4
Offline 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 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 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 Offline

Сообщений: 12


« Ответ #10 : 08.04.2009, 21:59:17 »

никто не делал на 1.1.3?
Записан
olegkgd
Захожу иногда
**

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

Сообщений: 12


« Ответ #11 : 21.04.2009, 02:24:19 »

Перегоните пожалуйста несколько верхних строк для virtuemart 1.1.3 )
Записан
ibrogim
Захожу иногда
**

Репутация: +3/-0
Offline 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 Offline

Сообщений: 161


« Ответ #13 : 05.06.2009, 14:54:22 »

А как в 1.1.3 можно в поле наличия  вывести текст,  например "под заказ"?
« Последнее редактирование: 05.06.2009, 14:58:57 от Megos » Записан
beagler
Moderator
*****

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

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


http://beagler.ru/


« Ответ #14 : 06.06.2009, 09:36:19 »

в приведённом коде вместо "Нет в наличии" напиши "Под заказ"
Записан
Megos
Осваиваюсь на форуме
***

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

Сообщений: 161


« Ответ #15 : 06.06.2009, 13:16:52 »

Нужно, чтобы функция была опцией, то есть выводила разные варианты текста
Записан
zvolle
Осваиваюсь на форуме
***

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

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



« Ответ #16 : 08.06.2009, 12:09:52 »

А как сделать чтобы количество товаров вообще не показывалось в товарах,
Записан
kpk17
Давно я тут
****

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

Сообщений: 224


« Ответ #17 : 12.07.2009, 12:06:27 »

Как вывести картинку "в наличие" в список товаров и в карточку товара.


2. В свой файл /administrator/components/com_VirtueMart/html/templates/browse/browse*.php добавляем заглушку в нужное место
Код:
{quantaty}
Все.



можно поподробнее куда ставить заглушку, в какое место файла и что за файл?
Записан
RaftKorn
Осваиваюсь на форуме
***

Репутация: +0/-1
Offline 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 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 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 Offline

Сообщений: 7


« Ответ #21 : 22.12.2009, 12:51:20 »

да, я уже туда попробовал все выше написанное запихнуть =) но видимо с пунктуацией проблемы и тупо вышла ошибка.
можете подсказать в каком виде все это надо вставить в этот файл?
Записан
beagler
Moderator
*****

Репутация: +316/-4
Offline 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 Offline

Сообщений: 7


« Ответ #23 : 22.12.2009, 13:01:15 »

Т.е. вс еэто можно просто подряд написать? или надо все же в опредленные места вставлять? в другом файлике как то все по другому ведь
Записан
suxo
Захожу иногда
**

Репутация: +0/-0
Offline 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 Offline

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


http://beagler.ru/


« Ответ #25 : 23.12.2009, 21:59:53 »

y наверное можно понять, что не $db_browse , а $db_product
Записан
Dobryak
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline 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} (прям там где и надо) и все, далее дело не идет.... Cry
Может картинок не видит? Картинки вставлял и в папку images  в корень сайта и в папку images шаблона.
Помогите разобраться Angry
« Последнее редактирование: 05.04.2010, 08:46:26 от Dobryak » Записан
beagler
Moderator
*****

Репутация: +316/-4
Offline 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 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 Offline

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


http://beagler.ru/


« Ответ #29 : 05.04.2010, 20:27:10 »

прикрепите свой shop.browse.php
Записан
sett
Осваиваюсь на форуме
***

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

Сообщений: 59


« Ответ #30 : 05.04.2010, 22:37:57 »

у меня VirtueMart 1.1.4 stable. делаю все по инструкции - ошибка в 510 строке... посмотрите пожалуйста, очень нужна ваша помощь... файл чистый выкладываю, не правленный.

* shop.browse.rar (5.52 Кб - загружено 73 раз.)
Записан
beagler
Moderator
*****

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

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


http://beagler.ru/


« Ответ #31 : 05.04.2010, 23:02:47 »

лови

* shop.browse.rar (5.65 Кб - загружено 139 раз.)
Записан
sett
Осваиваюсь на форуме
***

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

Сообщений: 59


« Ответ #32 : 05.04.2010, 23:20:02 »

ООоооо огроменное спасибо!
Записан
Dobryak
Осваиваюсь на форуме
***

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

Сообщений: 116


« Ответ #33 : 06.04.2010, 03:23:33 »

прикрепите свой shop.browse.php

* shop.browse.rar (5.96 Кб - загружено 62 раз.)
Записан
beagler
Moderator
*****

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

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


http://beagler.ru/


« Ответ #34 : 06.04.2010, 10:21:53 »

Прикольно, не тому сделал. Azn

Сделайте как здесь - http://joomlaforum.ru/index.php/topic,6468.msg370841.html#msg370841

Ошибку исправил - не было закрывающей }
Записан
Dobryak
Осваиваюсь на форуме
***

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

Сообщений: 116


« Ответ #35 : 06.04.2010, 15:05:41 »

beagler
Ну хоть убей.... не катит ни так никак.....
Да и убивать не надо - сам застрелюсь...
Второй вариант без картинок тоже не работает!
Вот еще мой файл, чистый, не переделанный!
Картинки как в твоем посте
nal_3.gif
nal_0.gif

* shop.browse.rar (5.62 Кб - загружено 71 раз.)
« Последнее редактирование: 06.04.2010, 15:27:31 от Dobryak » Записан
sett
Осваиваюсь на форуме
***

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

Сообщений: 59


« Ответ #36 : 06.04.2010, 19:36:13 »

beagler, спасибо)))
Записан
Dobryak
Осваиваюсь на форуме
***

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

Сообщений: 116


« Ответ #37 : 07.04.2010, 19:11:23 »

Ну что ж склоняюсь к мысли, что не работает это с 1.1.4... Angry
Кто сделал это на 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 подскажет что!

* shop.browse.rar (5.77 Кб - загружено 73 раз.)
* shop.product_details.rar (5.65 Кб - загружено 84 раз.)
* tpbrowse.rar (1.09 Кб - загружено 78 раз.)
* tpflypage.tpl.rar (0.86 Кб - загружено 74 раз.)
Записан
beagler
Moderator
*****

Репутация: +316/-4
Offline 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 Offline

Сообщений: 116


« Ответ #39 : 08.04.2010, 03:13:39 »

beagler, вы и впрям волшебник! Smiley

На страничке списка товаров заработало сразу, а вот на флай пришлось все таки вставить:
$tpl->set( "product_quantaty", $product_quantaty );
и заглушку:
<?php echo $product_quantaty ?>
И о чудо все заработало!
С меня  drink
Кошелек в личку!
Записан
beagler
Moderator
*****

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

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


http://beagler.ru/


« Ответ #40 : 08.04.2010, 09:54:15 »

кошельки в профиле. Обращайтесь Azn
Записан
sett
Осваиваюсь на форуме
***

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

Сообщений: 59


« Ответ #41 : 23.04.2010, 00:08:12 »

не понял только, как на страничке товара вставить "в наличие"... ((( что куда прописать
Записан
sett
Осваиваюсь на форуме
***

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

Сообщений: 59


« Ответ #42 : 25.04.2010, 19:07:58 »

все сделал по инструкции, во флаере так ни чего не появилось... (((

* flypage.tpl.rar (0.8 Кб - загружено 65 раз.)
* shop.product_details.rar (5.64 Кб - загружено 66 раз.)
Записан
sett
Осваиваюсь на форуме
***

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

Сообщений: 59


« Ответ #43 : 25.04.2010, 21:14:46 »

крутил-крутил, в итоге получилось, всем спасибо))
Записан
terr
Завсегдатай
*****

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

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


Ученик html-я


« Ответ #44 : 27.04.2010, 09:44:24 »

Почему када щас написано под заказ , умерла ссылка на корзину, как вернуть корзину?
Записан
terr
Завсегдатай
*****

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

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


Ученик html-я


« Ответ #45 : 27.04.2010, 09:53:18 »

Все нашол, смысла убивавть корзину нет))) задумка шла если под заказ то чтобы ее могли заказать
Записан
FT
Новичок
*

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

Сообщений: 2


« Ответ #46 : 02.06.2010, 19:55:40 »

Здравствуйте! Сделал все как описано, везде все показывает, но только в место русских букв ромбики с вопросом  Shocked. Подскажите пожалуйста, как сделать чтобы правильно отображались русские буквы? Спасибо!
Записан
beagler
Moderator
*****

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

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


http://beagler.ru/


« Ответ #47 : 02.06.2010, 22:59:42 »

те файлы, в которых делали изменения, нужно сохранить в кодировке UTF-8 без VOM
Записан
FT
Новичок
*

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

Сообщений: 2


« Ответ #48 : 04.06.2010, 12:18:31 »

те файлы, в которых делали изменения, нужно сохранить в кодировке UTF-8 без VOM

Супер! Работает! Спасибо большое!  drink
Записан
shemrock
Захожу иногда
**

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

Сообщений: 6


« Ответ #49 : 30.06.2010, 00:39:09 »

Делаю все по инструкции, остановился на месте где
"Ставим заглушку
<?php   echo $quantaty ?>
в удобное место в файл своего шаблона tpbrowse.php
"
Где этот файл!(((
Записан
beagler
Moderator
*****

Репутация: +316/-4
Offline 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 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&amp;flypage=$flypage&amp;product_id=" . $db_browse->f("product_id"). "&amp;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&amp;page=$modulename.browse&amp;category_id=$category_id&amp;keyword=".urlencode( $keyword )."&amp;manufacturer_id=$manufacturer_id&amp;Itemid=$Itemid";
$search_string .= !empty($orderby)? "&amp;orderby=".urlencode($orderby) : "";

if (!empty($keyword1)) {
$search_string.="&amp;keyword1=".urlencode($keyword1);
$search_string.="&amp;search_category=$search_category";
$search_string.="&amp;search_limiter=$search_limiter";
if (!empty($keyword2)) {
$search_string.="&amp;keyword2=".urlencode($keyword2);
$search_string.="&amp;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&amp;flypage=$flypage&amp;product_id=" . $db_browse->f("product_id"). "&amp;category_id=" . $db_browse->f("category_id");
        if( $manufacturer_id ) {
        $url_parameters .= "&amp;manufacturer_id=" . $manufacturer_id;
        }
        if( $keyword != '') {
        $url_parameters .= "&amp;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)."&amp;newxsize=".PSHOP_IMG_WIDTH."&amp;newysize=".PSHOP_IMG_HEIGHT."&amp;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 .= "&amp;manufacturer_id=" . $manufacturer_id;
    }
    if( $keyword != '') {
    $url_parameters .= "&amp;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 .= "&amp;manufacturer_id=" . $manufacturer_id;
    }
    if( $keyword != '') {
    $url_parameters .= "&amp;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 = "&nbsp;<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&amp;manufacturer_id=$manufacturer_id&amp;output=lite&amp;option=com_virtuemart&amp;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&amp;flypage='.@$_REQUEST['flypage']."&amp;product_id=$product_id&amp;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&amp;vendor_id=$vend_id&amp;output=lite&amp;option=com_virtuemart&amp;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 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 **/

если не сложно, гляньте файлик) может видно косяк сразу будет где нибудь
заранее благодарен

* shop.product_details.rar (5.69 Кб - загружено 42 раз.)
Записан
terr
Завсегдатай
*****

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

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


Ученик html-я


« Ответ #55 : 03.11.2010, 12:49:07 »

Цитировать
Marvel  спасибо, делал все как написано
единственное что - в страничке товара не убивается корзина
ставил
if ($quantaty=='0'){
   $addtocart="";}
перед
/* LIST ALL REVIEWS **/

если не сложно, гляньте файлик) может видно косяк сразу будет где нибудь
заранее благодарен


Проверь везде переменные "quantaty" и сделай чтобы они были одинаково прописаны если есть различия то не будет отображаться!
В обоих файлах проверь
Записан
dmi-sky
Осваиваюсь на форуме
***

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

Сообщений: 27


« Ответ #56 : 09.11.2010, 18:13:45 »

Знающие люди, подскажите, кто знает как отобразить в админпанеле в списке товаров количество на складе, т.е. есть такие поля:
Название товара    Медиа    Артикул    Цена    Категория    Изменить порядок отображения    Save Order Sort Alphabetically    Производители    Мнения покупателей    Опубликовать    Копировать товар    Удалить    Id
Вот сюда добавить колонку, где будет отображаться количество товара в наличие. А то проверять сколько осталось на складе, заходя в каждый товар уж слишком не удобно. А ещё лучше бы сделать, чтобы там были ячейки с количеством, чтобы его можно было менять, не заходя в товар. Такое, думаю, многим будет полезно и интересно узнать.

VM 1.1.3
Записан
Bangoo
Осваиваюсь на форуме
***

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

Сообщений: 47


Пишу сайты на мантрах


« Ответ #57 : 25.02.2011, 22:27:05 »

Убрать отображение количества товаров в наличии на странице товара не получилось, хотя делал по рекомендациям в теме.  Sad
Список товаров категории у меня в виде таблицы (файл browse_listtable.tpl), наличие товаров отображается, но только вверху таблицы. Наверно для того чтобы вставить это значение в колонку таблицы прописывать код в файле browse_listtable.tpl, но какой именно мне понять не судьба - c PHP пока не дружим.
Нужна помощь, кто может - посмотрите файлы, если решение простое подскажите пожалуйста ! ! !

* browse_listtable.tpl.rar (1.96 Кб - загружено 29 раз.)
* shop.browse.rar (5.62 Кб - загружено 27 раз.)
* shop.product_details.rar (6.41 Кб - загружено 26 раз.)
* flypage_images.tpl.rar (1 Кб - загружено 30 раз.)
Записан
Bangoo
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline 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 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 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 как написано здесь. Финальный штрих, чтобы товары в наличии всегда показывались первыми в категории, а не в наличии стояли после - вот этот мануальчик. И как всегда ответы порождают новые вопросы  Grin , подскажите как добавить второе условие сортировки, после этого первого? Тоесть надо, чтобы товары, которые в наличии сверху, располагались еще и по порядковой цифре, стоящей в колонке product_list в БД.
« Последнее редактирование: 25.03.2011, 14:51:25 от andx » Записан
art-lana
Осваиваюсь на форуме
***

Репутация: +2/-0
Offline 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 обозначаем как "Наличие:"
В итоге получаем:
Наличие:
На складе.
Либо
Наличие:
Этого товара нет в наличии (можно написать "под заказ", или кому как нравится)

Способ наверно для блондинок, но меня полностью устраивает  Kiss
« Последнее редактирование: 11.05.2011, 00:24:19 от art-lana » Записан
artMelnikov
Осваиваюсь на форуме
***

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

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



« Ответ #62 : 13.07.2011, 23:43:50 »

J 1.5.22 VM 1.1.8.
Сделал все как в 37-39 постах. Работает Спасибо! Но не пойму как сделать, чтоб на товарах, которых нет в наличии вместо "Уведомлять меня" была тоже кнопка "Купить", а лучше "Заказать" и их можно было так же купить как и те что в наличии.
Записан
beagler
Moderator
*****

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

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


http://beagler.ru/


« Ответ #63 : 14.07.2011, 00:21:13 »

отключить в админке отслеживание остатка товара
Записан
artMelnikov
Осваиваюсь на форуме
***

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

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



« Ответ #64 : 14.07.2011, 22:41:33 »

отключить в админке отслеживание остатка товара
Блиииин. Вот я тормоз. Спасибо большое! + тебе.   Cheesy
Подумал что если отключить отслеживание остатка то и "в наличии/ нет в наличии" не будет работать. Проверил, работает. Ура!
Записан
artMelnikov
Осваиваюсь на форуме
***

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

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



« Ответ #65 : 14.07.2011, 23:13:44 »

А можно сделать так, чтоб у товара, которого нет в наличии цвет кнопки "Купить" или картинка кнопки корзины были Красного цвета?
А еще круче, чтобы и в корзине Название товара которого нет в наличии, тоже было красным. Чтоб человек ясно понимал, что данный товар покупается под заказ и его придется ждать.
« Последнее редактирование: 25.07.2011, 21:41:13 от artMelnikov » Записан
vtx
Давно я тут
****

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

Сообщений: 231



« Ответ #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 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
Давно я тут
****

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

Сообщений: 231



« Ответ #68 : 29.08.2011, 14:01:26 »

в корзину принципиально никогда не лез. а кодом заменить заглушку на вывод имени товара.
но поле product_in_stock должно само по себе быть заглушкой, или тянуть значение запросом из базы.
Записан
artMelnikov
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline 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 Offline

Сообщений: 9


« Ответ #70 : 06.09.2011, 02:17:03 »

Подскажите пожалуйста, очень надо чтобы возле товаров что Под заказ была кнопка с функцией купить но с картинкой "Заказать". Дабы была логичной схема. Спасибо.
« Последнее редактирование: 06.09.2011, 02:39:52 от z00mER » Записан
Zyama
Захожу иногда
**

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

Сообщений: 17


« Ответ #71 : 07.10.2011, 20:34:50 »

Никто не пробовал добавить эту же функцию в сопутствующие товары, в productsnapshot.tpl.php?
Записан
Sedoy
Support Team
*****

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

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


Интересно,в какой кодировке пишут врачи?


« Ответ #72 : 16.12.2011, 17:25:08 »

отключить в админке отслеживание остатка товара

да но между "купить" и "заказать" есть некая разница....
как-то нужно выделить и показать челу, что этот товар "под заказ"
идеологически правильней вообще нужно как-то разделить "продажа" и "заказ"
т.е. должно быть две формы и соответственно 2 документа
одна: купил-оплатил-получил
другая: заказал-оплатил-получил
в офлайн-базах это две разные операции/документы (записи в базе)
кто как решает такие вопросы?
  
Записан
artMelnikov
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline 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 Offline

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


Интересно,в какой кодировке пишут врачи?


« Ответ #74 : 17.12.2011, 11:09:56 »

по идее он должен видеть реальный остаток на складе
правда, с одной стороны, многие спецом это скрывают
с другой, сам маг должен работать в реальном времени со складом, если имеется параллельная торговля офлайн с того же склада

кто нибудь решал вопрос кнопки "купить" таком разрезе:
в наличии >0 - выводит "купить"
в наличии =0 - выводит "заказ"
для товара у которого свойства или позиции - выводит "выбрать"

есть готовые или близкие решения?
Записан
тм
Захожу иногда
**

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

Сообщений: 7


« Ответ #75 : 31.12.2011, 00:46:27 »

Ничего не понимаю,как сделать,чтобы на странице с товарами была надпись, есть в наличии, нет в наличии,под заказ, уценка. Можно очень подробно по шагам рассказать, как это сделать? или может кто-то за оплату сделает?
Записан
beagler
Moderator
*****

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

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


http://beagler.ru/


« Ответ #76 : 31.12.2011, 10:55:57 »

по шагам вроде и так в теме расписано. Если не понятно - создайте тему в коммерческих вопросах, опишите Вашу задачу. Приложите макет того что хотите получить. Объявите бюджет. Помогут.
Записан
tigra-uki
Осваиваюсь на форуме
***

Репутация: +6/-0
Offline 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 Offline

Сообщений: 38


« Ответ #78 : 26.04.2012, 23:34:58 »

Я тоже сделал как в постах 37-39 с поправкой на 69. Не сразу но как-то заработало Azn.
Вот теперь другая задача: как сделать возможным сортировку по наличию... Нагуглил "мануал":
Показать текстовый блок
 Сделал точно как там написано, в результате и сайт и админка отвалились. Поковырял, кое-что поменял, методом тыка по-исправлял синтаксис. В результате право выбора "По наличию" стало возможным и в админке и в 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
Спасибо.

* Новая папка.rar (39.29 Кб - загружено 6 раз.)
« Последнее редактирование: 27.04.2012, 00:10:57 от Romaha » Записан
Romaha
Осваиваюсь на форуме
***

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

Сообщений: 38


« Ответ #79 : 26.04.2012, 23:47:09 »

И еще нашел косяк: когда в админке ставишь сортировку по умолчанию: "По наличию", сортировка не происходит, т.е. полностью игнорируется. Sad
« Последнее редактирование: 27.04.2012, 14:36:31 от Romaha » Записан
Romaha
Осваиваюсь на форуме
***

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

Сообщений: 38


« Ответ #80 : 27.04.2012, 22:59:52 »

Всетки наковырял решение. Делаете как в мануале по ссылке выше, но потом правите VirtueMart.cfg.php как написано здесь. roduct_list в БД.
Тема отсутствует... Может подскажете как сделать?
Записан
Romaha
Осваиваюсь на форуме
***

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

Сообщений: 38


« Ответ #81 : 28.04.2012, 14:43:28 »

Пожалуйста, хотя бы "толкните в нужную сторону" ничего не получается.
Записан
rezon
Осваиваюсь на форуме
***

Репутация: +0/-0
Offline 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 обозначаем как "Наличие:"
В итоге получаем:
Наличие:
На складе.
Либо
Наличие:
Этого товара нет в наличии (можно написать "под заказ", или кому как нравится)

Способ наверно для блондинок, но меня полностью устраивает  Kiss


Проблема....

Подскажите как вывести эти данные в 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 ?>&nbsp;</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 Offline

Сообщений: 29


« Ответ #83 : 12.05.2012, 14:23:44 »

UP
 подскажите как сделать
В наличии
Нет в наличии
Записан
Romaha
Осваиваюсь на форуме
***

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

Сообщений: 38


« Ответ #84 : 12.05.2012, 14:48:48 »

UP
 подскажите как сделать
В наличии
Нет в наличии


Делай как в постах 37-39 с поправкой на 69-й пост этой темы
Записан
Страниц: 1 2 3 [Все]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

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