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

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Добавить custom field к категории товаров в VM 2

 (Прочитано 7813 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Byakuya
Осваиваюсь на форуме
***

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

Сообщений: 25


« : 05.02.2012, 17:22:16 »

Добрый день, возможно ли добавить настраиваемое поле к категории товаров, чтобы при создании товара оно было автоматически включено и не приходилось лезть во вкладку "Настраиваемые поля" каждый раз?
Записан
3auka
Захожу иногда
**

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

Сообщений: 14


« Ответ #1 : 15.07.2012, 00:17:50 »

Самый простой вариант делать клон товара, там остаются настраиваемые поля
Записан
lakshmi
Осваиваюсь на форуме
***

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

Сообщений: 177



« Ответ #2 : 26.07.2012, 23:23:12 »

Добрый день, возможно ли добавить настраиваемое поле к категории товаров, чтобы при создании товара оно было автоматически включено и не приходилось лезть во вкладку "Настраиваемые поля" каждый раз?
Может быть имеется ввиду отобразить Произвольные поля (Custom field) в категории товаров, меня это сильно интересует Smiley Кто нибуть такое делал?
Записан
lakshmi
Осваиваюсь на форуме
***

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

Сообщений: 177



« Ответ #3 : 26.07.2012, 23:34:24 »

Нашел вот такой код на просторах интернета
Код:
<?php // Product custom_fields
    if (!empty($product->customfields)) {  ?>
<div class="product-fields">
        <?php foreach ($product->customfields as $field)
        { ?>
<div style="display:inline-block;" class="product-field product-field-type-<?php echo $field->field_type ?>">
            <span class="product-fields-title" ><b><?php echo  JText::_($field->custom_title)?></b></span>
            <?php echo JHTML::tooltip($field->custom_tip,  JText::_($field->custom_title), 'tooltip.png'); ?>
            <span class="product-field-display"><?php echo $field->display ?></span>
 
            <span class="product-field-desc"><?php echo $field->custom_field_desc ?></span>
            </div>
 
<br/ >
            <?php
        }
        ?>
    </div>
 
<?php } ?>
Позволяет отобразить Произвольные поля в категории товаров Grin Cheesy drink
Записан
Albion84
Захожу иногда
**

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

Сообщений: 14



« Ответ #4 : 23.08.2012, 09:23:38 »

А куда этот код вставить то?
Записан
lakshmi
Осваиваюсь на форуме
***

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

Сообщений: 177



« Ответ #5 : 23.08.2012, 09:42:52 »

А куда этот код вставить то?
Мона сюда /components/com_virtuemart/views/categories/tmpl/default.php или сюда /templates/ваш_шаблон/html/com_virtuemart/category/default.php, по желанию Grin
Файл отвечающий за отображение категорий.
Записан
Olga_1989
Новичок
*

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

Сообщений: 1


« Ответ #6 : 24.08.2012, 06:55:53 »

Маленькое замечание, чтобы этот код работал, настраиваемое поле должно быть помечено как атрибут корзины!
Записан
lakshmi
Осваиваюсь на форуме
***

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

Сообщений: 177



« Ответ #7 : 15.05.2013, 16:37:07 »

Маленькое замечание, чтобы этот код работал, настраиваемое поле должно быть помечено как атрибут корзины!
У меня без этого работает
Записан
lakshmi
Осваиваюсь на форуме
***

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

Сообщений: 177



« Ответ #8 : 11.09.2013, 20:07:07 »

Нашел вот такой код на просторах интернета
Код:
<?php // Product custom_fields
    if (!empty($product->customfields)) {  ?>
<div class="product-fields">
        <?php foreach ($product->customfields as $field)
        { ?>
<div style="display:inline-block;" class="product-field product-field-type-<?php echo $field->field_type ?>">
            <span class="product-fields-title" ><b><?php echo  JText::_($field->custom_title)?></b></span>
            <?php echo JHTML::tooltip($field->custom_tip,  JText::_($field->custom_title), 'tooltip.png'); ?>
            <span class="product-field-display"><?php echo $field->display ?></span>
 
            <span class="product-field-desc"><?php echo $field->custom_field_desc ?></span>
            </div>
 
<br/ >
            <?php
        }
        ?>
    </div>
 
<?php } ?>
Позволяет отобразить Произвольные поля в категории товаров Grin Cheesy drink
У этого кода есть одно но в нем не прописана позиция макета как например
Код:
                $output .= $myTabs->startPanel( 'Характеристики', 'tab1' );
                $this->position = 'normal';
                $output .= $this->loadTemplate('customfields');
кто может подсказать как можно присвоить позицию макета для кода в категории?
Записан
lakshmi
Осваиваюсь на форуме
***

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

Сообщений: 177



« Ответ #9 : 11.09.2013, 23:49:24 »

У этого кода есть одно но в нем не прописана позиция макета как например
Код:
                $output .= $myTabs->startPanel( 'Характеристики', 'tab1' );
                $this->position = 'normal';
                $output .= $this->loadTemplate('customfields');
кто может подсказать как можно присвоить позицию макета для кода в категории?
Во общем нашел решение если кому то пригодиться -
Код:
<?php // Product custom_fields
    if (!empty($product->customfields)) {  ?>
<div class="product-fields">
        <?php foreach ($product->customfields as $field) {
if ($field->layout_pos == 'dopfild'){?>
<div style="display:inline-block;" class="product-field product-field-type-<?php echo $field->field_type ?>">
            <span class="product-fields-title" ><strong><?php echo  JText::_($field->custom_title)?></strong></span>
             <span class="product-field-display"><?php echo $field->display ?></span>
             <span class="product-field-desc"><?php echo $field->custom_field_desc ?></span>
            </div>

            <?php }
        }
        ?>
    </div>
 
<?php } ?>
просто добавил условие
Код:
if ($field->layout_pos == 'dopfild'){?>
может не совсем элегантно и возможно есть вариант по легче и проще но меня это устроило на данный момент, эта модификация отсортировала ту часть доп полей в которой прописана нужная мне позиция макета, если позиций например 3 то можно доработать условие через elseif или создать отдельный файл шаблона категории и присвоить их соответственно необходимой категории  Cheesy drink  Grin
Записан
ffox
Захожу иногда
**

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

Сообщений: 18


« Ответ #10 : 02.10.2013, 19:55:27 »

Поле типа "Атрибут корзины" с горем пополам появилось на странице категории.
Подскажите, как вывести в категории вместо целого поля (поле select) только значения, которые присутствуют у конкретного товара?
Записан
Максим Пишняк
Живу я здесь
******

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

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


Подразделение Virtuemart Украина


« Ответ #11 : 03.10.2013, 20:50:43 »

Ссылка, версия?
Записан
ffox
Захожу иногда
**

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

Сообщений: 18


« Ответ #12 : 04.10.2013, 16:09:35 »

http://odezhda.lviv.ua/ru-RU/golovnye-ubory
VM 2.0.20b
Записан
Максим Пишняк
Живу я здесь
******

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

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


Подразделение Virtuemart Украина


« Ответ #13 : 06.10.2013, 16:46:56 »

Вы можете указывать позицию для поля
http://joomlaforum.ru/index.php/topic,200240
Записан
ffox
Захожу иногда
**

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

Сообщений: 18


« Ответ #14 : 07.10.2013, 09:13:48 »

Позицию поля мне менять не надо. Когда получится вывести значения поля для каждого товара, стилями перемещу в нужное мне место, и сделаю блок отображаемый только при перемещении курсора на картинке товара.
Записан
ffox
Захожу иногда
**

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

Сообщений: 18


« Ответ #15 : 08.10.2013, 10:50:15 »

Там я уже был. Спасибо. По последнему, описанному там способу, вывел целое поле, а вот значения никак.
Записан
Максим Пишняк
Живу я здесь
******

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

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


Подразделение Virtuemart Украина


« Ответ #16 : 12.10.2013, 14:08:49 »

Ваш пост непонятен, приведите детали, ссылку, скриншот настроек.
Записан
ffox
Захожу иногда
**

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

Сообщений: 18


« Ответ #17 : 14.10.2013, 09:28:36 »

Ваш пост непонятен, приведите детали, ссылку, скриншот настроек.
Ссылка на сайт http://odezhda.lviv.ua/ru-RU/golovnye-ubory
На странице категории выводится целое поле (с возможностью выбрать значение), а нужно только сами значения таблицей.
Записан
zomby6888
Живу я здесь
******

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

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


« Ответ #18 : 14.10.2013, 13:51:12 »

У вас кастом поля  являются атрибутом корзины? Если да то в файле default_addtocart можно вывести php кодом:

Код:
$fields = explode(';',$this->product->customfieldsCart[0]->custom_value);
echo '<pre>';
print_r($fields);
echo '</pre>';

Получаете в $fields массив значений.

customfieldsCart[0] можете заменить на customfieldsCart[n] если у вас полей много. Вобще можете весь массив посмотреть print_r($this->product->customfieldsCart).
Записан
ffox
Захожу иногда
**

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

Сообщений: 18


« Ответ #19 : 14.10.2013, 16:24:05 »

Подскажите, как здесь скрин вставить?
Записан
ffox
Захожу иногда
**

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

Сообщений: 18


« Ответ #20 : 14.10.2013, 17:27:26 »

У вас кастом поля  являются атрибутом корзины? Если да то в файле default_addtocart можно вывести php кодом:

Код:
$fields = explode(';',$this->product->customfieldsCart[0]->custom_value);
echo '<pre>';
print_r($fields);
echo '</pre>';

Получаете в $fields массив значений.

customfieldsCart[0] можете заменить на customfieldsCart[n] если у вас полей много. Вобще можете весь массив посмотреть print_r($this->product->customfieldsCart).

После вставки кода
Код:
<?php echo '<pre>';
print_r($product->customfieldsCart[0]);
echo '</pre>'; ?>
на страницу категории, получил массив
http://odezhda.lviv.ua/images/2.jpg
А это скрин страницы, где выводился массив
http://odezhda.lviv.ua/images/1.jpg
Записан
zomby6888
Живу я здесь
******

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

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


« Ответ #21 : 14.10.2013, 19:07:06 »

Вот они вроде:

Код:
foreach($product->customfieldsCart[0]->options as $field) {
echo $field->custom_value;
}
Записан
ffox
Захожу иногда
**

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

Сообщений: 18


« Ответ #22 : 15.10.2013, 09:15:18 »

Вот они вроде:

Код:
foreach($product->customfieldsCart[0]->options as $field) {
echo $field->custom_value;
}
Да!
Вот оно решение.
Спасибо огромное за помощь.
Записан
Garyk01
Захожу иногда
**

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

Сообщений: 22


« Ответ #23 : 19.02.2014, 00:11:12 »

Во общем нашел решение если кому то пригодиться -
Код:
<?php // Product custom_fields
    if (!empty($product->customfields)) {  ?>
<div class="product-fields">
        <?php foreach ($product->customfields as $field) {
if ($field->layout_pos == 'dopfild'){?>
<div style="display:inline-block;" class="product-field product-field-type-<?php echo $field->field_type ?>">
            <span class="product-fields-title" ><strong><?php echo  JText::_($field->custom_title)?></strong></span>
             <span class="product-field-display"><?php echo $field->display ?></span>
             <span class="product-field-desc"><?php echo $field->custom_field_desc ?></span>
            </div>

            <?php }
        }
        ?>
    </div>
<?php } ?>
Столкнулся с такой ситуацией:
В категории выводится несколько одинаковых товаров разного цвета друг за другом  - например :
- "Продукт синий"   -   "Продукт черный"   -   "Продукт красный" -

В категории для каждого товара выводится настраиваемое поле "изображение" - по этому коду, что выше.
Но если, например, в админ-панели к "Продукт синий" в "Сопутствующие товары" добавить "Продукт черный" и "Продукт красный", то у этих товаров ("Продукт черный", "Продукт красный") не выводится в категории настраиваемое поле "изображение".
В карточке товара все выводится нормально
А если удалить их из списка "Сопутствующие товары" в товаре "Продукт синий", то все поля у этих товаров выводятся нормально. 
Вот такая беда.  Sad
Как побороть?
Записан
Sawell
Захожу иногда
**

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

Сообщений: 21


« Ответ #24 : 27.02.2015, 13:07:17 »

Столкнулся с такой ситуацией:
В категории выводится несколько одинаковых товаров разного цвета друг за другом  - например :
- "Продукт синий"   -   "Продукт черный"   -   "Продукт красный" -

В категории для каждого товара выводится настраиваемое поле "изображение" - по этому коду, что выше.
Но если, например, в админ-панели к "Продукт синий" в "Сопутствующие товары" добавить "Продукт черный" и "Продукт красный", то у этих товаров ("Продукт черный", "Продукт красный") не выводится в категории настраиваемое поле "изображение".
В карточке товара все выводится нормально
А если удалить их из списка "Сопутствующие товары" в товаре "Продукт синий", то все поля у этих товаров выводятся нормально. 
Вот такая беда.  Sad
Как побороть?
Приветствую! Есть решение?
Записан
Alex_Makarov
Захожу иногда
**

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

Сообщений: 13


« Ответ #25 : 22.05.2015, 18:00:50 »

Всем добрый день,
Прошу помочь мне вывести настраиваемые поля в категории.
VirtueMart 3.0

Метод в первом сообщение не работает =(

Код /templates/[template_name]/html/com_virtuemart/category/default.php

Показать текстовый блок

Заранее большое спасибо!
Записан
Snake 60
Осваиваюсь на форуме
***

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

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


Скользкий тип...


« Ответ #26 : 10.06.2015, 17:57:23 »

Вот так не пробовали?
Код:
<?php echo shopFunctionsF::renderVmSubLayout('customfields',array('product'=>$this->product,'position'=>'my_position')); ?>
где my_position - позиция указанная в настройках настраиваемого поля

PS. Сори, ступил - это для вывода в карточке товара... для вывода в категории еще не нашел как Sad
« Последнее редактирование: 10.06.2015, 18:36:07 от Snake 60 » Записан
Eholov
Осваиваюсь на форуме
***

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

Сообщений: 146



« Ответ #27 : 22.01.2016, 15:38:45 »

Такой код работает, но вот настраиваемое поле с значением "Атрибут корзины" выводится в позиции addtocart и ни в какой другой. А мне надо вывести в другой позиции. Тут http://forum.virtuemart.net/index.php?topic=97419.0 обсуждаются позиции настраиваемых полей. Но по атрибутам корзины нет инфы. помогите кто знает.
Записан
Liss
Давно я тут
****

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

Сообщений: 207


« Ответ #28 : 07.02.2016, 15:08:10 »

Приветствую! Есть решение?
тоже интересует данный вопрос
Записан
Liss
Давно я тут
****

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

Сообщений: 207


« Ответ #29 : 01.04.2016, 22:14:59 »

тоже интересует данный вопрос

Видимо, все уже забили. Но решение у проблемы есть.
Суть решения заключается в написании прямого запроса в БД и отказа от попыток вывести пользовательские поля, разбирая массив $product->customfields
Очевидно, такой финт даст бОльшую нагрузку на сайт из-за увеличения запросов к БД. Во-первых, кэширование никто не отменял, во-вторых, можно немного схитрить
Код:
if (!empty($product->customfields)) {
  //выводим стандартно, без запросов к БД
}
else {
  //пишем запрос в БД
}
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | 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