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

Войти
   
   Начало   Поиск Joomla 1.7 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: 1 2 [Все]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Добавляем новое поле в спецификацию товара  (Прочитано 21560 раз)
nekrassss и 2 Гостей смотрят эту тему.
PbICb
Joostina
*****

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

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


Мяфф...)


« : 25.06.2008, 20:35:32 »

Так как не увидела "вменяемых" инструкций на данную тему, а вопросы продолжают поступать (на форуме, в аську, почту и т.п.) - решила написать свою "шпаргалку". Может быть, кому-нибудь пригодится.

1. Открываем phpMyAdmin, щелкаем по имени талички #__vm_product. Под таблицей с перечнем полей есть область для добавления нового поля
(Рис.1).
Создаем новое поле типа varchar с именем product_sku2 (Рис.2). Новое поле появилось в списке полей данной таблицы (Рис.3).

2. Переходим к редактированию файла administrator/com_virtuemart/html/product.product_form.php. Этот файл содержит форму добавления/редактирования товара. Сюда нам необходимо добавить новое поле ввода для ввода значения "product_sku2".
Находим строчку, где расположено поле для ввода артикула (product_sku). Вот такой участок кода:
   <tr>
      <td width="21%" ><div style="text-align:right;font-weight:bold;"><?php echo $VM_LANG->_PHPSHOP_PRODUCT_FORM_SKU ?>:</div>
      </td>
      <td width="79%" height="2">
        <input type="text" class="inputbox"  name="product_sku" value="<?php echo shopMakeHtmlSafe( $db->sf("product_sku") ); ?>" size="32" maxlength="64" />
      </td>
    </tr>


Копируем код и вставляем ниже. Заменяем текстовую переменную на "Еще один артикул" (например), а имя текстового поля на product_sku2. Должно получиться примерно так:

  <tr>
      <td width="21%" ><div style="text-align:right;font-weight:bold;"><?php echo "Еще один артикул" ?>:</div>
      </td>
      <td width="79%" height="2">
        <input type="text" class="inputbox"  name="product_sku2" value="<?php echo shopMakeHtmlSafe( $db->sf("product_sku2") ); ?>" size="32" maxlength="64" />
      </td>
    </tr>


Сохраняем изменения. Открываем в админке VirueMart форму добавления товара. Любуемся на результат. (Рис.4).

3. Открываем файл administrator/com_virtuemart/clases/ps_product.php
Здесь нас интересуют две функции. Первая - добавление нового товара.
Ищем участок кода, содержащий "function add". Недалеко от начала функции, после следующего участка кода:

Код:
$timestamp = time();
$db = new ps_DB;

if (empty($d["product_publish"])) {
$d["product_publish"] = "N";
}

добавляем

$product_sku2=$_POST["product_sku2"];

Теперь пишем значение в базу. Чуть ниже места, где мы добавили предыдущую строчку начинается большой блок вставки данных в таблицу. Добавляем product_sku2 сразу после product_sku:

   
Код:
$q  = "INSERT INTO #__{vm}_product (vendor_id,product_parent_id,product_sku,product_sku2";
$q .= "product_name,product_desc,product_s_desc,";
..............................................
..............................................
$q .= "VALUES ('";
$q .= $d['vendor_id'] . "','" . $d["product_parent_id"] . "','";
$q .= $d["product_sku"] . "','" . $d["product_name"] . "','" . $d["product_name"] . "','";   
..............................................
..............................................

Далее, переходим к функции, отвечающей за изменение данных о товарах:    function update.
Также добавлем $product_sku2=$_POST["product_sku2"];
и ниже, где происходит обращение к БД:

Код:
$q  = "UPDATE #__{vm}_product SET ";
$q .= "product_sku='" . $d["product_sku"] . "',";
$q .= "product_sku2='" . $d["product_sku2"] . "',";
$q .= "vendor_id='" . $d["vendor_id"] . "',";
............................................................

4. Теперь попросим VirtueMart включить данные из нашего новорожденного поля в выборку при обращении к странице просмотра товаров в категории или при просмотре карточки товара. Для этого открываем файл  administrator/com_virtuemart/html/shop_browse_queries.php.
Находим в перечсилении полей для выборки (то, что записано в $fieldnames = "", в самом начале файла) `product_sku` и после запятой добавляем `product_sku2`.

5. Сейчас самое время создать "заглушку" для шаблона категории. Для этого открываем файл administrator/com_virtuemart/html/shop_browse.php и ищем блок, начинающийся такими комментариями:
/*** Now fill the template 

Находим:
Код:
$product_cell = str_replace( "{product_sku}", $db_browse->f("product_sku"), $product_cell );

Этой строчкой формируется "заглушка" для отображения артикула товара, который мы используем в шаблоне в виде: {product_sku}.
Добавляем заглушку для нашего нового поля:

Код:
$product_cell = str_replace( "{product_sku2}", $db_browse->f("product_sku2"), $product_cell );

6. Открываем шаблон категории (по умолчанию browse_1.php) и добавляем {product_sku2} в нужное место.

7. Для добавления "заглушки" в шаблон полного описания товара:
- открываем файл administrator/com_virtuemart/html/shop.product_details.php, почти в самом конце файла после:
Код:
$template = str_replace( "{product_sku}", $db_product->f("product_sku"), $template );

добавляем:
Код:
$template = str_replace( "{product_sku2}", $db_product->f("product_sku2"), $template );
и используем {product_sku2} в своем шаблоне карточки товара.

Мотор! Снято! Всем спасибо ))

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

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

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


« Ответ #1 : 10.08.2008, 15:34:11 »

Урок очень полезный, но уж есть некие неточности
Записан
Luchik
Осваиваюсь на форуме
***

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

Сообщений: 69


« Ответ #2 : 14.08.2008, 01:34:13 »

VirtueMart 1.1.2 stable

Как добавить чекбоксы, что бы при нажатии определенных на сайте эти свойтва выводились через запятую?
Я так понял надо вместо параметра varchar взять enum. Но что-то пока не получаеться.

Застрял в файле administrator/com_virtuemart/clases/ps_product.php
Что-то у меня все подругому.


Например, для varchar надо писать: 'product_length' => vmRequest::getInt('product_length'),
А для Enum что надо писать?
« Последнее редактирование: 14.08.2008, 17:01:09 от Luchik » Записан
BIGGER_STAS
Гость
« Ответ #3 : 20.02.2009, 23:49:27 »

Я проделал Все вроде также! А при добавлении товара пишет ОШИБКА: ОТСУТСТВУЕТ ID ТОВАРА!

В чем может быть проблема,народ подскажите плиз!!!!
Записан
alf-nn
Захожу иногда
**

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

Сообщений: 21


« Ответ #4 : 20.07.2009, 22:08:05 »

Спасибо! Всё пашет! Только я видно где-то накосячил: не пишется в базу значение созданного поля из админки. А их csv всё пишется. Где копать, не подскажите?
Записан
alf-nn
Захожу иногда
**

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

Сообщений: 21


« Ответ #5 : 21.07.2009, 01:26:03 »

Сорри, нашел ошибку - фaйл ps_product недохакнул)
Записан
Pan4eZzz
Захожу иногда
**

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

Сообщений: 16


« Ответ #6 : 27.09.2009, 00:12:29 »

Все замечательно работает под vm1.0.*
вот только вопрос как за место к примеру:
Код:
    <input type="text" class="inputbox"  name="product_sku" value="<?php echo shopMakeHtmlSafe( $db->sf("product_sku") ); ?>
сделать комбобокс например:
Код:
   <select name="tt">
    <option disabled>Выберите:</option>
    <option value="t1" selected>t1</option>
    <option value="t2" selected>t2</option>
   </select>
Записан
secretlive
Осваиваюсь на форуме
***

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

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


« Ответ #7 : 29.10.2009, 11:22:35 »

а что нужно сделать что бы в созданное поле через CSV Improved можно было заливать информацию, а то CSV Improved  1,7 не видит эту таблицу (((

и еще не получается вывести  в шоп.бровзе созданное поле, ведь в виртуе 1,1,3 не такие заглушки, попробовал сделать по аналогии но не вышло, кто  подскажет (((
« Последнее редактирование: 29.10.2009, 11:34:22 от secretlive » Записан
gandgy
Осваиваюсь на форуме
***

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

Сообщений: 37


« Ответ #8 : 30.10.2009, 23:11:59 »

та же ерунда, не могу в 1.1.3 вывести переменную. Передаю ее значение из таблицы вот так в shop.browse   $products[$i]['nalichie'] = $db_browse->f("nalichie"); - пытаюсь вывести в шаблоне echo $nalichie ; ничег оне выводится
Записан
Erepb
Осваиваюсь на форуме
***

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

Сообщений: 44


« Ответ #9 : 02.11.2009, 19:38:17 »

Немножко являюсь чайником, однако, получилось сделать то, что задумывал (j1.5.12, vm1.1.3). Надеюсь, пригодится мне подобным.

В оформляемом мною магазине главенствующим элементом идентификации товара является внутренний код, а, непосредственно, артикул - лишь дополнение, хоть и обязательное. Я не стал мудрить с дополнительными полями - не хочется переделывать еще и CSV-импорт-экспорт, поэтому для внутреннего кода уделил место артикула, а артикул поместил в поле "Дополнительные IDs", которое соответствует полю "child_option_ids" базы данных (jos_vm_product -> child_option_ids).

Далее, дополнил шесть файлов:
browse_listtable.tpl.php (components/com_virtuemart/themes/default/templates/browse/includes)
flypage.tpl.php (components/com_virtuemart/themes/default/templates/product_details)
ps_product.php (administrator/components/com_virtuemart/classes)
russian.php (administrator/components/com_virtuemart/languages/common)
shop.browse.php (administrator/components/com_virtuemart/html)
shop_browse_queries.php (administrator/components/com_virtuemart/html)

1.browse_listtable.tpl.php
после
Код:
if (count ($products)) {  $tableheader[] = $VM_LANG->_('PHPSHOP_CART_NAME');
вставил
Код:
$tableheader[] = $VM_LANG->_('PHPSHOP_ART');
и после
Код:
$data[$row][] = '<a href="'.$product['product_flypage'].'" title="'.$product['product_name'].'">'.$product['product_name'].'</a>';
вставил
Код:
$data[$row][] = $product['child_option_ids'];

2.flypage.tpl.php
после
Код:
<h1><?php echo $product_sku ?><?php echo '.' ?> <?php echo $product_name ?> <?php echo $edit_link ?></h1>
вставил
Код:
<br/><i><?php echo 'Артикул: ' ?><?php echo $child_option_ids ?></i>

3.ps_product.php
вместо строки 303
Код:
'child_option_ids' => vmGet($d,'included_product_id'),
вставил
Код:
'child_option_ids' => vmGet($d,'child_option_ids'),
вместо стр. 502
Код:
'child_option_ids' => vmGet($d,'included_product_id'),
вставил
Код:
'child_option_ids' => vmGet($d,'child_option_ids'),
после стр. 2617
Код:
$featured_products[$i]['product_url'] = $db->f("product_url");
вставил
Код:
$featured_products[$i]['child_option_ids'] = $db->f("child_option_ids");

4.russian.php
после стр.
Код:
$langvars = array (
вставил
Код:
'PHPSHOP_ART' => 'Арт.',

5.shop.browse.php
после стр. 936
Код:
$products[$i]['manufacturer_link'] = $manufacturer_link;
добавил
Код:
$products[$i]['child_option_ids'] = $db_browse->f("child_option_ids");

6.shop_browse_queries.php
в строке 71
Код:
$fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`#__{vm}_category`.`category_id`,


`#__{vm}_product`.`product_id`,`product_full_image`,`product_thumb_image`,`product_s_desc`,`product_parent_id`,`product_publish`,`child_option_ids`,`product_in_stock`,`product_sku`, `product_url`,


`product_weight`,`product_weight_uom`,`product_length`,`product_width`,`product_height`,`product_lwh_uom`,`product_in_stock`,`product_available_date`,`product_availability`,`#__{vm}_product`.`mdate`, `#__{vm}_product`.`cdate`";
можно увидеть `child_option_ids` - вот это и добавил
далее, после стр. 191
Код:
$sq .= "\n `#__{vm}_product`.`product_s_desc` LIKE '%$searchstring%' OR ";
добавил
Код:
$sq .= "\n `#__{vm}_product`.`child_option_ids` LIKE '%$searchstring%' OR ";
после стр. 259
Код:
$sq .= "\n `#__{vm}_product`.`product_s_desc` LIKE '%$searchstring%' OR ";
вставил
Код:
$sq .= "\n `#__{vm}_product`.`child_option_ids` LIKE '%$searchstring%' OR ";
после стр. 321
Код:
$sq .= "\n `#__{vm}_product`.`product_s_desc` LIKE '%$searchstring%' OR ";
вставил
Код:
$sq .= "\n `#__{vm}_product`.`child_option_ids` LIKE '%$searchstring%' OR ";

Что наделал - понимаю не всё, но имею артикул в табличном списке товаров, подробном описании товара и поиск по артикулу, что меня очень обрадовало. К тому же, пользуюсь стандартным CSV improved, используя поле product_s_desc в качестве артикула.
А еще надеюсь на помощь гуру, которые подскажут, чего делать было не обязательно.
« Последнее редактирование: 02.11.2009, 19:45:33 от Erepb » Записан
gandgy
Осваиваюсь на форуме
***

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

Сообщений: 37


« Ответ #10 : 03.11.2009, 13:07:44 »

А можете пожалуйста помочь вывести данные из таблицы в шаблон (( Я создал руками поле чек-бокс, которое означает наличие или отсутствие товара. Значение чек бокса передаются в таблицу nalichie в таблице #__vm_product, туда же где хранятся все атрибуты товара, имя и прочее. Данные передаются в таблицу - я проверял. Значение может быть 1 или 0, но теперь я не знаю как вывести эти данные в переменную, чтобы использовать в шаблоне browse((( К сожалению я не силен в программировании настолько ( Версия моего магазина 1.1.4 Заранее благодарен.
« Последнее редактирование: 03.11.2009, 13:47:44 от gandgy » Записан
Erepb
Осваиваюсь на форуме
***

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

Сообщений: 44


« Ответ #11 : 03.11.2009, 14:23:45 »

Пока тяжеловато со временем, но, может, вот это как-то натолкнет на нужные мысли: http://joomlaforum.ru/index.php/topic,71490.msg413146.html#msg413146
Записан
Erepb
Осваиваюсь на форуме
***

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

Сообщений: 44


« Ответ #12 : 04.11.2009, 17:17:03 »

Значит, так. Поковырялся еще немного и выявил лишние действия. Но напишу все заново - так легче будет разобраться любому желающему. Да и самому тоже :-)

Чтобы выложить инфу из какого-либо поля базы данных необходимо затронуть три файла:
administrator/components/com_virtuemart/html/shop.browse.php
administrator/components/com_virtuemart/html/shop_browse_queries.php
и файл шаблона (я взял стандартный components/com_virtuemart/themes/default/templates/browse/browse_1.php)

1. В файле shop.browse.php после строки 453
Код:
$products[$i]['product_url'] = $db_browse->f("product_url");
добавил
Код:
$products[$i]['child_option_ids'] = $db_browse->f("child_option_ids");

2. В файле shop_browse_queries.php в строку 36
Код:
$fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`#__{vm}_category`.`category_id`,
`#__{vm}_product`.`product_id`,`product_full_image`,`product_thumb_image`,`product_s_desc`,`product_parent_id`,`product_publish`,`child_option_ids`,`product_in_stock`,`product_sku`, `product_url`,
`product_weight`,`product_weight_uom`,`product_length`,`product_width`,`product_height`,`product_lwh_uom`,`product_in_stock`,`product_available_date`,`product_availability`,`#__{vm}_product`.`mdate`, `#__{vm}_product`.`cdate`";
необходимо дописать `child_option_ids` (в моем случае)

3. Ну и, чтобы вывести содержимое поля, в файле browse_1.php в нужное место вставить
Код:
<?php echo $child_option_ids ?>

Все манипуляции производил на другом магазине (vm1.1.2, j1.5.8 ), поэтому нумерация строк не совпадает, однако таким образом получалось выводить данные из любого поля таблицы _vm_product. И, кажется, для индексирования поиска необходимо дописать файл shop_browse_queries.php как было предложено выше.
Удачи!
« Последнее редактирование: 05.11.2009, 11:46:18 от Erepb » Записан
morph
Живу я здесь
******

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

Сообщений: 957


« Ответ #13 : 05.11.2009, 05:46:14 »

http://www.zaisl.info/2008/06/sozdanie-novogo-polya-dlya-tovara-virtuemart/
тоже на фсякий случай
Записан
gandgy
Осваиваюсь на форуме
***

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

Сообщений: 37


« Ответ #14 : 05.11.2009, 14:41:51 »

Товарищ Erepb, я даже не знаю как благодарить! Наверное тока деньгами можно))) если оставете кошелек веб-мани рубли, скину денежку, рублей 200))) пустячок, но приятно
Записан
Erepb
Осваиваюсь на форуме
***

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

Сообщений: 44


« Ответ #15 : 05.11.2009, 16:32:18 »

R364933727143  Wink
Записан
vitaliy.balatskiy
Осваиваюсь на форуме
***

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

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



« Ответ #16 : 02.12.2009, 17:20:54 »

Слушайте друзья , я вот уже затрагивал недавно похожую тему: http://joomlaforum.ru/index.php/topic,79197.msg460404.html#msg460404
А похожая она следующим.
Нужно создать еще одно поле в админке, там же где мы добавляем товар, ну скажем сразу после названия товара пусть будет это поле. И в нем чтобы можно было писать какой хочеш текст но чтобы потом он выводился только в тайлах а не во flypage.tpl .   Ну Вы думаю поняли.  
Тоесть когда раньше тайлы были такими:
<title>Крісло для відпочинку  із лози | Меблі з лози | Плетені меблі | All-mebli | Інтернет магазин меблів all-mebli.com.ua</title>
А чтобы стали например такими:
<title>Крісло для відпочинку  із лози |Купить кресло качалку, цены, описание | Меблі з лози | Плетені меблі | All-mebli | Інтернет магазин меблів all-mebli.com.ua</title>
Где текст "Купить кресло качалку, цены, описание" - это тот текст, который мы вводим в нашем новом поле.
Как по мне очень класная штука как для СЕО будет.
Кто нибудь подскажет как такое решить?
Записан
Fotpod
Осваиваюсь на форуме
***

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

Сообщений: 80


« Ответ #17 : 09.12.2009, 02:51:31 »

Вижу у многих с этим проблема - "Отсутствует ID товара"! У меня ВМРЕ 1.0.15b, Joomla 1.0.12, я уже раз 300 перечитывал статью, ничего не выходит. Причем при редактировании существующего товара все замечательно сохраняется. Уважаемые форумчане, подскажите пожалуйста как мне исправить данный баг? Может в коде ошибки? Просто очень необходимо обеспечить работоспособность магазина Angry.
Записан
Fotpod
Осваиваюсь на форуме
***

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

Сообщений: 80


« Ответ #18 : 10.12.2009, 22:46:54 »

Урок очень полезный, но уж есть некие неточности
может и по моей проблеме (2 поста выше) подскажете?
--------------------->
Проблему решил. Ошибка была в файле class/ps_product.php прикладываю его (работает на ВМРЕ 1.0.15b). Пользуйтесь на здоровье)).
P.S.: ТС поправь топик, негоже людей в заблуждение вводить.
Код:
$q  = "INSERT INTO #__{vm}_product (vendor_id,product_parent_id,product_sku,product_sku2";
$q .= "product_name,product_desc,product_s_desc,";
..............................................
..............................................
$q .= "VALUES ('";
$q .= $d['vendor_id'] . "','" . $d["product_parent_id"] . "','";
$q .= $d["product_sku"] . "','" . $d["product_name"] . "','" . $d["product_name"] . "','";   
..............................................
..............................................
а должно быть:
Код:
$q  = "INSERT INTO #__{vm}_product (vendor_id,product_parent_id,product_sku,product_sku2,";
$q .= "product_name,product_desc,product_s_desc,";
..............................................
..............................................
$q .= "VALUES ('";
$q .= $d['vendor_id'] . "','" . $d["product_parent_id"] . "','";
$q .= $d["product_sku"] . "','" . $d["product_sku2"] . "','" . $d["product_name"] . "','";   
..............................................
..............................................
« Последнее редактирование: 13.12.2009, 15:32:05 от Fotpod » Записан
diggs
Осваиваюсь на форуме
***

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

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



« Ответ #19 : 24.12.2009, 15:57:33 »

Как сделать тоже самое для J.1.5 + VM 1.1.2. очень интересует!
Записан
terr
Завсегдатай
*****

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

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


Ученик html-я


« Ответ #20 : 17.03.2010, 15:30:26 »

как вставить stock в карточку товара

Код:
<tr>
<td colspan="1"><br /><font color="#000000">
$we_have = $db->f{”product_in_stock”} >0 ? “<span style=\”color: green;\”>В наличии</span>” : “<span style=\”color: red;\”>Товар под заказ</span>”;
$html .= “<td align=center>$we_have<td align=center>”;
</td>
</tr>

кароче как никрути но не паказывает она кол товара а тока надпись {product_in_stock} как сделать чтоб отображало как в коде PHP если больше 0 то чтоб писало в наличии если 0 то чтоб писало под заказ?
Записан
kpk17
Давно я тут
****

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

Сообщений: 224


« Ответ #21 : 21.03.2010, 21:13:50 »

начиная с 3 пункта  не могу найти подобных строк в файлах
virt1.1.3
выложите пожалуйста файлы для 1.1.3
Записан
terr
Завсегдатай
*****

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

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


Ученик html-я


« Ответ #22 : 22.03.2010, 10:12:29 »

вопро как в карточке товара вывести количаство товара
сейчас выводится цифрами, а нужно чтобы если меньше 1 писало под заказ а от еденицы и более писало в наличии.
как нарисовать ето в PHP подскажите

Код:
//============
$available = 'false';
$quant = (int)$row['product_in_stock'];
if ($quant) {
$available = 'true';
}
//============
echo"<offer id=\"".$rw."\" available=\"".$available."\" bid=\"1\">\Под заказ";
//echo"<offer id=\"".$rw."\" available=\"true\" bid=\"11\">\n";

таке не реботает а больше мыслей у меня на етот щет нет (((
Записан
Pashtetdiz
Осваиваюсь на форуме
***

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

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


« Ответ #23 : 30.03.2010, 01:29:52 »

Как сделать тоже самое для J.1.5 + VM 1.1.2. очень интересует!
Поддерживаю у кого получилось подскажите пожалуйста, сам не могу сообразить т.к. в vm 1.1.2  файл ps_product.php видать отличается
Записан
diggs
Осваиваюсь на форуме
***

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

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



« Ответ #24 : 30.03.2010, 18:24:33 »

Поддерживаю у кого получилось подскажите пожалуйста, сам не могу сообразить т.к. в vm 1.1.2  файл ps_product.php видать отличается

При версии Joomla RE 1.5.14 и Virtuemart 1.1.4
Для того, что бы выложить инфу из какого-либо поля базы данных, я сделал так:

1. В файле administrator/components/com_virtuemart/html/shop.browse.php
Код:
$products[$i]['product_url'] = $db_browse->f("product_url");

добавил

Код:
$products[$i]['child_option_ids'] = $db_browse->f("child_option_ids");

2. В файле administrator/components/com_virtuemart/html/shop_browse_queries.php приблизительно в строку 36 необходимо дописать `child_option_ids` (!в моем случае!)
Код:
$fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`#__{vm}_category`.`category_id`,
`#__{vm}_product`.`product_id`,`product_full_image`,`product_thumb_image`,`product_s_desc`,`product_parent_id`,`product_publish`,`child_option_ids`,`product_in_stock`,`product_sku`, `product_url`,
`product_weight`,`product_weight_uom`,`product_length`,`product_width`,`product_height`,`product_lwh_uom`,`product_in_stock`,`product_available_date`,`product_availability`,`#__{vm}_product`.`mdate`, `#__{vm}_product`.`cdate`";

3. чтобы вывести содержимое поля, в файле browse_1.php в нужное место вставить
Код:
<?php echo $child_option_ids ?>

4.  в administrator/components/com_virtuemart/languages/common/russian.php после строки
Код:
$langvars = array (

вставил

Код:
'PHPSHOP_ART' => 'Арт.',

* Где 'Арт.' - в принципе, можно поставить любое слово, которое будет знаменовать ваше выведенное поле. В данном случае - это артикул.
« Последнее редактирование: 30.03.2010, 18:30:57 от diggs » Записан
Pashtetdiz
Осваиваюсь на форуме
***

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

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


« Ответ #25 : 31.03.2010, 12:23:12 »

Спасибо diggs для вывода из бд помогло Cheesy, а как сделать чтоб данные туда добавлялись при создание товара? Пробовал по выше написанному, но не получается только в форме добавления товара поле появляется.
Записан
diggs
Осваиваюсь на форуме
***

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

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



« Ответ #26 : 31.03.2010, 17:14:57 »

Спасибо diggs для вывода из бд помогло Cheesy, а как сделать чтоб данные туда добавлялись при создание товара? Пробовал по выше написанному, но не получается только в форме добавления товара поле появляется.

Если в качестве поля, вы выбрали себе child_option_ids, то соответственно:

Если добавляете товар через админку, то - сверху увидите вкладки, вам нужна вкладка "Показать опции", далее вы должны увидеть Дополнительные IDs ID товара, которое надо включить - вот сюда и вводите ваши данные.

Если же вы добавляете товар через CSV Improved  - то в вашем прайсе, добавьте поле child_option_ids.

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

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

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


« Ответ #27 : 31.03.2010, 19:41:26 »

Супер! Все работает благодарю diggs  Cheesy, теперь только въехал что вы использовали пустое поле. А вот если новое поле самому создать так вообще было бы шик. А какие еще поля можно так легко можно преобразовать под себя кроме Дополнительные IDs ID  и Url?
« Последнее редактирование: 31.03.2010, 20:24:48 от Pashtetdiz » Записан
vadim_tula
Осваиваюсь на форуме
***

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

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



« Ответ #28 : 03.04.2010, 12:01:34 »

У кого нибудь есть решение по созданию поля в 1.1.4? я тормознулся на пункте 3 (добавление и апдейт), файл сильно отличается от предыдущей версии, хотелось бы научиться создавать поля.
Просто требуется создать несколько полей, и решение не совсем подходит, но все же спасибо diggs за интересный подход.
« Последнее редактирование: 03.04.2010, 12:05:45 от vadim_tula » Записан
igoryk
Давно я тут
****

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

Сообщений: 224


« Ответ #29 : 04.04.2010, 01:57:57 »

При версии Joomla RE 1.5.14 и Virtuemart 1.1.4
Для того, что бы выложить инфу из какого-либо поля базы данных, я сделал так:

1. В файле administrator/components/com_virtuemart/html/shop.browse.php
Код:
$products[$i]['product_url'] = $db_browse->f("product_url");

добавил

Код:
$products[$i]['child_option_ids'] = $db_browse->f("child_option_ids");

2. В файле administrator/components/com_virtuemart/html/shop_browse_queries.php приблизительно в строку 36 необходимо дописать `child_option_ids` (!в моем случае!)
Код:
$fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`#__{vm}_category`.`category_id`,
`#__{vm}_product`.`product_id`,`product_full_image`,`product_thumb_image`,`product_s_desc`,`product_parent_id`,`product_publish`,`child_option_ids`,`product_in_stock`,`product_sku`, `product_url`,
`product_weight`,`product_weight_uom`,`product_length`,`product_width`,`product_height`,`product_lwh_uom`,`product_in_stock`,`product_available_date`,`product_availability`,`#__{vm}_product`.`mdate`, `#__{vm}_product`.`cdate`";

3. чтобы вывести содержимое поля, в файле browse_1.php в нужное место вставить
Код:
<?php echo $child_option_ids ?>

4.  в administrator/components/com_virtuemart/languages/common/russian.php после строки
Код:
$langvars = array (

вставил

Код:
'PHPSHOP_ART' => 'Арт.',

* Где 'Арт.' - в принципе, можно поставить любое слово, которое будет знаменовать ваше выведенное поле. В данном случае - это артикул.


А как сделать чтобы выводилось определенное изображение (присваемое из админки - подобие "время доставки")?
Записан
Nikita Web
Осваиваюсь на форуме
***

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

Сообщений: 58



« Ответ #30 : 19.04.2010, 18:41:10 »

здесь все очень круто...

а не подскажет кто нибудь как проделать тоже самое с ценой?
добавить туда вторую цену - к примеру $product_price_2

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

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

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



« Ответ #31 : 04.11.2010, 01:38:05 »

Для Joomla 1.5 и VirtueMart 1.1.5 stable (у меня свойство color):
пп 1
п. 2
После:
<tr class="row0">
                  <td width="21%" >
                     <div style="text-align:right;font-weight:bold;"><?php echo $VM_LANG->_('PHPSHOP_PRODUCT_FORM_SKU')?>:</div>
                  </td>
                  <td width="79%">
                    <input type="text" class="inputbox"  name="product_sku" value="<?php $db->sp("product_sku"); ?>" size="32" maxlength="64" />
                  </td>
             </tr>
Добавляем:
            <tr class="row1">
                  <td width="21%" >
                     <div style="text-align:right;font-weight:bold;"><?php echo $VM_LANG->_('PHPSHOP_PRODUCT_COLOR')?>:</div>
                  </td>
                  <td width="79%">
                    <input type="text" class="inputbox"  name="color" value="<?php $db->sp("color"); ?>" size="32" maxlength="64" />
                  </td>
             </tr>
п.3
после:
$fields = array ( 'vendor_id' => $vendor_id,
                  'product_parent_id' => vmRequest::getInt('product_parent_id'),
                  'product_sku' => vmGet($d,'product_sku'),
добавляем:
'color' => vmGet($d,'color'),
п.4
В шаблоне прописываем
<?php echo $color ?>
Все.
Записан
TakT
Осваиваюсь на форуме
***

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

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


« Ответ #32 : 04.12.2010, 17:04:01 »

пожалуйста скиньте кто нить уже исправленные файлы, у меня Joomla 1.5.22 и VirtueMart 1.1.5 Stable? мне надо дополнительный артикул, ни как не могу разобраться, он его в админке не сохраняет(((, пожалуйста очень надо
Записан
Unikal
Осваиваюсь на форуме
***

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

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


http://yacht-skipper.ru


« Ответ #33 : 10.12.2010, 09:23:54 »

Подскажите как сделать дополнительное текстовое поле в описании категории. Стоит задача показывать тултип с кратким описанием категории при наведении на картинку(ссылку) категории.
Записан
orchanin
Давно я тут
****

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

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



« Ответ #34 : 27.12.2010, 13:14:21 »

Может кому пригодится добавление поля с выпадающим списком  и вывод каждого значения в своем стиле. Можно сделать по аналогии поле типа краткого описания или простого поля для текста. Актуально для добавления дополнительного поля VirtueMart 1.1.5
Записан
Movs
Захожу иногда
**

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

Сообщений: 8


« Ответ #35 : 16.02.2011, 14:28:27 »

Дополню:

Если необходимо выводить поле на КАРТОЧКЕ ТОВАРА то дополнительно правим файл
shop.product_details.php
Прмерно 120 строка :
$MOE_POLE = $db_product->f("MOE_POLE");
430я строка:
$tpl->set( "MOE_POLE", $MOE_POLE );

И теперь можно выводить в шаблоне на flypage.php это поле как <?echo $MOE_POLE ?>


Записан
Annaweb
Давно я тут
****

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

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



« Ответ #36 : 16.02.2011, 16:40:21 »



1. В файле shop.browse.php после строки 453
Код:
$products[$i]['product_url'] = $db_browse->f("product_url");
добавил
Код:
$products[$i]['child_option_ids'] = $db_browse->f("child_option_ids");


3. Ну и, чтобы вывести содержимое поля, в файле browse_1.php в нужное место вставить
Код:
<?php echo $child_option_ids ?>



почему то не показывается в категории..
(в карточке товара доп. поле добавилось)
Записан
Erepb
Осваиваюсь на форуме
***

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

Сообщений: 44


« Ответ #37 : 18.02.2011, 19:34:16 »

почему то не показывается в категории..
(в карточке товара доп. поле добавилось)
А какой файл изменяли, чтобы было видно в категории?
Записан
Annaweb
Давно я тут
****

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

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



« Ответ #38 : 25.02.2011, 17:48:14 »

а что нужно сделать чтобы при редактировании показывались в новых полях данные из бд?
(которые вводились ранее)

вот в "русскоязычное наименование" почему-то показывается, а в других нет.. Sad



Записан
Annaweb
Давно я тут
****

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

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



« Ответ #39 : 25.02.2011, 17:50:22 »

А какой файл изменяли, чтобы было видно в категории?

все работает. у меня в настройках был указан другой файл, не browse_1.php
Записан
Annaweb
Давно я тут
****

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

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



« Ответ #40 : 28.02.2011, 16:13:59 »

поняла все дело в создании select поля.

как правильно его создать?
Записан
Master of Magic
Осваиваюсь на форуме
***

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

Сообщений: 47


« Ответ #41 : 13.03.2011, 17:52:39 »

А теперь как сделать что бы это поле экспортировалось/импортировалось через csvi?
А все разобрался: http://joomlaforum.ru/index.php/topic,113045.0.html
« Последнее редактирование: 13.03.2011, 18:34:56 от Master of Magic » Записан
artliffe
Осваиваюсь на форуме
***

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

Сообщений: 142


...акки пчела


« Ответ #42 : 09.05.2011, 01:39:56 »

здесь все очень круто...

а не подскажет кто нибудь как проделать тоже самое с ценой?
добавить туда вторую цену - к примеру $product_price_2

готов отблагодарить веб-мани за помощь... очень нужена вторая цена товара, и второй столбик в корзине...
Присоединяюсь к вопросу. Уже делал кто нибудь такое?
Записан
lcd25
Давно я тут
****

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

Сообщений: 374



« Ответ #43 : 09.05.2011, 01:48:02 »

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

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

Сообщений: 142


...акки пчела


« Ответ #44 : 29.05.2011, 01:00:34 »

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

Хорошо, а если не вторую цену, а баллы, т.е. у каждого товара есть балловая составляющая и необходимо чтобы она отдельно суммировалась в корзине и соответственно выводилась в заказе.
Записан
orexov_m
Давно я тут
****

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

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


« Ответ #45 : 24.06.2011, 09:59:55 »

Я не знаю надо кому или нет, но в VirtueMart 1.1.8 , 1.1.9 немножко по другому называются поля поэтому добавлю свое решение для добавления поля в админку в карту товара и вывод его в категории и в карточке товара на сайте :

Для начала идем в базу магазина и в #_vm_product на закладке структура добавляем необходимые нам поля.

Далее идем в administrator/components/com_virtuemart/classes находим файл ps_product.php в нем находим строку :

Код:
'product_sku' => vmGet($d,'product_sku'),

после нее добавляем нашу строчку :

Код:
'product_opt_price' => vmGet($d,'product_opt_price'),

далее находим строку :

Код:
$timestamp = time();
$db = new ps_DB;
$ps_vendor_id = $_SESSION["ps_vendor_id"];

после неё добавляем :

Код:
$product_opt_price=$_POST["product_opt_price"];

чуть ниже находим строку :

Код:
$fields = array ( 'vendor_id' => $vendor_id,
'product_sku' => vmGet($d,'product_sku'),

и добавляем :

Код:
'product_opt_price' => vmGet($d,'product_opt_price'),

С этим файлом закончили. Далее идем в administrator/components/com_virtuemart/html находим файл product.product_form.php

находим строку :

Код:
echo vmToolTip( $VM_LANG->_('PHPSHOP_PRICE_FORM_GROUP'). ": ".$shopper_db->f("shopper_group_name")); ?>               
                <input type="hidden" name="shopper_group_id" value="<?php echo $my_shopper_group_id ?>" />
              </td>

ниже вставляем :

Код:
<td width="21%" >
      <div style="text-align:right;font-weight:bold;"><?php echo ('Оптовая цена')?>:</div>
      </td>
      <td width="79%">
        <input type="text" class="inputbox"  name="product_opt_price" value="<?php $db->sp("product_opt_price"); ?>" size="32" maxlength="64"

/>
      </td>

С этим файлом все. тут же в administrator/components/com_virtuemart/html находим файл shop.browse.php

находим строку :

Код:
$products[$i]['product_sku'] = $db_browse->f("product_sku");

и ниже вставляем :

Код:
$products[$i]['product_opt_price'] = $db_browse->f("product_opt_price");

С этим файлом все. тут же в administrator/components/com_virtuemart/html находим файл shop_browse_queries.php

находим строку :

Код:
// These are the names of all fields we fetch data from
$fieldnames = "`product_name`,`products_per_row`,`category_browsepage`,`category_flypage`,`#__{vm}_category`.`category_id`,
`#__{vm}

_product`.`product_id`,`product_full_image`,`product_thumb_image`,`product_s_desc`,`product_parent_id`,`product_publish`,`product_in_stock`,`product_sku`,

и сразу после 'product_sku', вставляем по аналогии наш 'product_opt_price'

С этим файлом все. тут же в administrator/components/com_virtuemart/html находим файл shop.product_details.php

находим строку :

Код:
$product_sku = $db->getEscaped( vmGet($_REQUEST, "sku", '' ) );

и после неё добавляем :

Код:
$product_opt_price = $db->getEscaped( vmGet($_REQUEST, "opt_price", '' ) );

все тут закончили.
Дальше открываем файл вывода категории Browse_x и в нужном месте пишем <?php echo $product_opt_price ?> и видим нашу оптовую цену (в моем случае) в вашем может быть любой

другой параметр.

Я конечно не гуру программирования, но после этих манипуляций добился создания нового поля в админке и вывел его в карточку товара и в категорию.

На этом все Azn
Записан
haidamaka
Осваиваюсь на форуме
***

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

Сообщений: 52


« Ответ #46 : 25.08.2011, 19:36:43 »

Сделал всё как описано в верхнем посте. В админке поле есть, в базу сохраняет. Но во фронт не выводит. Версия 1.1.9
Записан
orexov_m
Давно я тут
****

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

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


« Ответ #47 : 25.08.2011, 19:52:09 »

Сделал всё как описано в верхнем посте. В админке поле есть, в базу сохраняет. Но во фронт не выводит. Версия 1.1.9
а не забыли
Код:
<?php echo $ваша_переменная ?>
  ?
Записан
haidamaka
Осваиваюсь на форуме
***

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

Сообщений: 52


« Ответ #48 : 26.08.2011, 00:06:51 »

Сделал, 2 раза проверил... странно)
Записан
haidamaka
Осваиваюсь на форуме
***

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

Сообщений: 52


« Ответ #49 : 26.08.2011, 00:17:41 »

Могут ли быть какие-либо проблемы в настройках создаваемых полей в БД?
Записан
haidamaka
Осваиваюсь на форуме
***

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

Сообщений: 52


« Ответ #50 : 26.08.2011, 01:58:57 »

Сорри...) нашёл заработало, спасибо!+ в карму)
Записан
motor1
Захожу иногда
**

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

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


« Ответ #51 : 26.10.2011, 17:57:39 »

Вот готовое решение для Дополнительное поле для товара в VirtueMart 1.1.8 работает
http://joomlaforum.ru/index.php/topic,183416.0.html
Записан
artrush
Осваиваюсь на форуме
***

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

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



« Ответ #52 : 21.01.2012, 22:50:40 »

Как Добавить checkbox для дополнительных полей, чтобы выбирать отображать его в карточке товара или нет?
Записан
streelok
Осваиваюсь на форуме
***

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

Сообщений: 171


« Ответ #53 : 23.01.2012, 12:43:37 »

подскажите пожалуйста такую вешь.. вот я добавлю новое поле к товару... можно сделать поиск товаров по этому полю?
Записан
nightbodom
Осваиваюсь на форуме
***

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

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



« Ответ #54 : 16.02.2012, 17:10:54 »

А кто нибудь знает как создать дополнительное поле в карточке товара textarea product_desc (ну типа под названием product_full_desc).

Тоесть:
product_desc - описание товара (первая часть описания)
product_full_desc - полное описание товара (вторая часть описания)
чтобы потом их можно было вывести в flypage через скрипт Показать/Скрыть
Записан
kepa
Осваиваюсь на форуме
***

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

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



« Ответ #55 : 06.05.2012, 17:57:05 »

лучший способ: http://mc-joomla.ru/index.php?option=com_content&view=article&id=19:-virtuemart&catid=3:joomla&Itemid=5
Записан
lcd25
Давно я тут
****

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

Сообщений: 374



« Ответ #56 : 06.05.2012, 18:34:01 »


Копипаст. Дешевая рекламка.
Записан
Страниц: 1 2 [Все]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

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