0 Пользователей и 1 Гость просматривают эту тему.
  • 36 Ответов
  • 4451 Просмотров
*

Silent_Breeze

  • Осваиваюсь на форуме
  • 167
  • 33
Как можно реализовать вывод определённой, нужной характеристики отдельно от всех характеристик определённого товара?
Пример:
Есть характеристики:
Вес (г) (id характеристики - 10)
Шариковые подшипники (id характеристики - 11)
Роликовые подшипники (id характеристики - 12)
Емкость шпули (мм/м) (id характеристики - 13)
Передаточное число (id характеристики - 14)
Длина лески за оборот ручки (см) (id характеристики - 15)
Шпуль в комплекте (id характеристики - 16)

Вот нужно, что бы (например в категории (список товаров)) можно было сделать вывод характеристик с id 10-15, потом идёт какой-то текст, картинка, и после них имя характеристики с id 16 и значение характеристики с id 16

Надеюсь не сильно путанно расписал?
Здесь всё есть... просто нужно поискать немного... ;)
*

dmitry_stas

  • Профи
  • 10007
  • 948
в файле \components\com_jshopping\templates\default\product\product_default.php характеристики выводятся в цикле

Код
        <?php $extra_field_group = "";
        foreach($this->product->extra_field as $extra_field){
            if ($extra_field_group!=$extra_field['groupname']){
                $extra_field_group = $extra_field['groupname'];
            ?>
            <div class='extra_fields_group'><?php print $extra_field_group?></div>
            <?php }?>
            <div><span class="extra_fields_name"><?php print $extra_field['name'];?></span><?php if ($extra_field['description']) {?> <span class="extra_fields_description"><?php print $extra_field['description'];?></span><?php } ?>: <span class="extra_fields_value"><?php print $extra_field['value'];?></span></div>
        <?php }?>

проверяйте нужные вам, отсеивайте. можете разместить этот код в двух местах, в первый раз вывести одни, потом другие
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Silent_Breeze

  • Осваиваюсь на форуме
  • 167
  • 33
Так где они выводятся я знаю..., мне бы кусок кода, что б вывести именно характеристику с id 16 в нужном месте строки товара (в листинге товаров).... На данный момент у меня для каждой характеристики задано:
display: table-cell; mih-width: 65px; max-width: 150 px; vertica-align: middle; text-align: center; и т.д..., и они выводятся в ряд, почти таблица получается, но не очень красиво..., вот если б для каждой характеристики можно было свой стиль задать...
« Последнее редактирование: 13.06.2013, 04:16:14 от Silent_Breeze »
Здесь всё есть... просто нужно поискать немного... ;)
*

dmitry_stas

  • Профи
  • 10007
  • 948
в общем.  в списке товаров отсутсвует id для характеристик. чтобы он появился - надо поправить файл \components\com_jshopping\lib\functions.php функцию getProductExtraFieldForProduct($product)
в частности, в строке
Код
$rows[] = array("name"=>$fields[$field_id]->name, "description"=>$fields[$field_id]->description, "value"=>$extra_field_value);
добавить "id"=>$field_id

или  так можно
Код
$rows[$field_id] = array("name"=>$fields[$field_id]->name, "description"=>$fields[$field_id]->description, "value"=>$extra_field_value);

, но тогда при переборе надо будет foreach($product->extra_field as $id=>$extra_field) и выводить $id
« Последнее редактирование: 13.06.2013, 20:17:28 от nevigen »
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Silent_Breeze

  • Осваиваюсь на форуме
  • 167
  • 33
Ну наконец-то... Спасибо огромное...
Вот что вставил в components/com_jshopping/lib/functions.php строка 760
Код
$rows[] = array("id"=>$fields[$field_id]->id, "name"=>$fields[$field_id]->name, "description"=>$fields[$field_id]->description, "value"=>$extra_field_value);
            }
        }else{
            if ($product->$field_name!=""){
                $rows[] = array("id"=>$fields[$field_id]->id, "name"=>$fields[$field_id]->name, "description"=>$fields[$field_id]->description, "value"=>$product->$field_name);

В components/com_jshopping/templates/default/list_products/product.php вставил со строки 12:
Код
<?php if (is_array($product->extra_field)){?>
            <div style="display: inline-block; vertical-align: top;">
            <?php foreach($product->extra_field as $extra_field){?>
<div style="display: inline-block;" class="charact<?php print $extra_field['id']; ?>"><?php print $extra_field['value']; ?></div>
            <?php }?>
            </div>
        <?php }?>

Ещё раз спасибо за помощь.
Здесь всё есть... просто нужно поискать немного... ;)
*

Jsc

  • Захожу иногда
  • 14
  • 0
Здравствуйте. Не подскажете как именно в карточке товара вывести характеристики не все сразу, а частями в разных местах?
*

Silent_Breeze

  • Осваиваюсь на форуме
  • 167
  • 33
В карточке товара, если воспользоваться вышеприведённым примером, можно организовать вывод характеристик описывая каждую(или только необходимую) характеристику в файле стилей шаблона.
Например:
Открываем файл по пути: корень сайта/components/com_jshopping/templates/default/product/product_default.php
Строка примерно 194:
Код
<div class="extra_fields">
        <?php $extra_field_group = "";
        foreach($this->product->extra_field as $extra_field){
            if ($extra_field_group!=$extra_field['groupname']){
                $extra_field_group = $extra_field['groupname'];
            ?>
            <div class='extra_fields_group'><?php print $extra_field_group?></div>
            <?php }?>
            <div><span class="extra_fields_name"><?php print $extra_field['name'];?></span><?php if ($extra_field['description']) {?> <span class="extra_fields_description"><?php print $extra_field['description'];?></span><?php } ?>: <span class="extra_fields_value"><?php print $extra_field['value'];?></span></div>
        <?php }?>
        </div>
меняем на:
Код
<div class="extra_fields">
        <?php $extra_field_group = "";
        foreach($this->product->extra_field as $extra_field){
            if ($extra_field_group!=$extra_field['groupname']){
                $extra_field_group = $extra_field['groupname'];
            ?>
            <div class='extra_fields_group'><?php print $extra_field_group?></div>
            <?php }?>
            <div class="character<?php print $extra_field['id'];?>"><span class="extra_fields_name"><?php print $extra_field['name'];?></span><?php if ($extra_field['description']) {?> <span class="extra_fields_description"><?php print $extra_field['description'];?></span><?php } ?>: <span class="extra_fields_value"><?php print $extra_field['value'];?></span></div>
        <?php }?>
        </div>
Соответственно после этих манипуляций мы получим для каждой характеристики свой div с классом character(id характеристики).
Т.е. если у нас есть характеристика с id=16 (например кол-во запасных болтов),  то мы получим в коде страницы div class="character16". Соответственно характеристика "кол-во запасных болтов" будет выводиться у нас в диве с классом "character16".
Пишем оформление для этой характеристики в CSS файле шаблона. Например:
Код
div.character16 {
dispaly: block или как нужно;
position: relative или absolute, или вообще не пишем, в зависимости от наших нужд;
width: сколько нужно;
height: сколько нужно;
left: ставим где нужно;
top: ставим где нужно;
и т.д.
и т.п.
}

Надеюсь не сильно путанно объяснил?
« Последнее редактирование: 24.06.2013, 03:19:15 от Silent_Breeze »
Здесь всё есть... просто нужно поискать немного... ;)
*

jorevo

  • Завсегдатай
  • 597
  • 11
в общем.  в списке товаров отсутсвует id для характеристик. чтобы он появился - надо поправить файл \components\com_jshopping\lib\functions.php функцию getProductExtraFieldForProduct($product)
в частности, в строке
Код
$rows[] = array("name"=>$fields[$field_id]->name, "description"=>$fields[$field_id]->description, "value"=>$extra_field_value);
добавить "id"=>$field_id

А чтобы в карточке товара к характеристике по id обратиться эта правка нужна?
*

dmitry_stas

  • Профи
  • 10007
  • 948
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

jorevo

  • Завсегдатай
  • 597
  • 11
Немного не верно сформулировал вопрос. Почему в карточке товара можно обратиться по id, а из списка товара нельзя? Вопрос не в идеологии, а в технической реализации. Для списка товаров массив параметров передаётся из функции \components\com_jshopping\lib\functions.php функцию getProductExtraFieldForProduct($product). А в карточку товара откуда?
*

dmitry_stas

  • Профи
  • 10007
  • 948
\components\com_jshopping\tables\product.php function getExtraFields
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

jorevo

  • Завсегдатай
  • 597
  • 11
Спасибо! Уже не первый раз встречаю эту сомнительную "фишку", что в список товаров, категорий, производителей передаётся ограниченный набор параметров и приходится по живому править "костыли", чтобы те же возможности были доступны и в списке товаров. Вот реально не понимаю, нафига всё было так усложнять, фактически дублируя полноценный код в "кастратный"? Из одного места чем было бы хуже забирать одинаковый набор параметров?

ЗЫ. А вот ещё вижу, что и группы характеристик в список товаров тоже не передаются... значит ещё одни костыли вставлять придётся.
*

devul

  • Давно я тут
  • 287
  • 20
  • если помог можете поставить +
сделано это для оптимизации. Вы посмотрите print_r что вообще получается и поймете что если для одного товара это еще терпимо, то  когда у вас список из 50 товаров на странице то "лишних" данных получается уже много.
Бложик про joomla, k2, joomshoppingdevul.ru
*

denjer

  • Осваиваюсь на форуме
  • 38
  • 0
так а каким тогда образом вывести в списке товаров только определенные характеристики по id? прочел тему так и не понял, знаний php уже наверно не хватает.
*

dmitry_stas

  • Профи
  • 10007
  • 948
так а каким тогда образом...
тогда - это когда? у вас какой то особый случай, отличный от описанного тут решения? если нет - то таким образом, как тут описано, и вывести

прочел тему так и не понял, знаний php уже наверно не хватает
скорее правильно будет "знаний php еще наверно не хватает". :) чтобы это недоразумение исправить, заваривайте кофе/чай, усаживайтесь поудобнее и читайте тему еще столько раз, сколько потребуется чтобы понять. потому что добавить к сказанному как бы особо нечего, все и так вроде, что надо сделать, написано. дальше - только взять и сделать
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

Silent_Breeze

  • Осваиваюсь на форуме
  • 167
  • 33
В JoomShopping 4.x.x вышеописанный вариант тоже работает..., но номера строк немного другие...
« Последнее редактирование: 11.04.2014, 02:27:19 от Silent_Breeze »
Здесь всё есть... просто нужно поискать немного... ;)
*

nevigen

  • Moderator
  • 8913
  • 755
  • http://n*****n.com
Код
<div class="extra_fields">
        <?php $extra_field_group = "";
        foreach($this->product->extra_field as $extra_field){
вставить ---> if ($extra_field["id"] != ID нужной хар-ки ) continue;
            if ($extra_field_group!=$extra_field['groupname']){
                $extra_field_group = $extra_field['groupname'];
            ?>
            <div class='extra_fields_group'><?php print $extra_field_group?></div>
            <?php }?>
            <div><span class="extra_fields_name"><?php print $extra_field['name'];?></span><?php if ($extra_field['description']) {?> <span class="extra_fields_description"><?php print $extra_field['description'];?></span><?php } ?>: <span class="extra_fields_value"><?php print $extra_field['value'];?></span></div>
        <?php }?>
</div>
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

Grikhno

  • Осваиваюсь на форуме
  • 38
  • 0
Подскажите пожалуйста как можно решить следующую задачу - мне нужно вставить значение определенной характеристики в ссылку. Чтобы в открывающемся по нажатию этой ссылки калькуляторе, сразу было задано нужное значение.  !
*

3gger

  • Новичок
  • 1
  • 0
Как реализовать в JoomShoping такое: при выборе определенного чекбокса выводится дополнительные атрибуты. Как здесь, т.е. включен по умолчанию "на подрамнике", а при выборе "выбрать багет" появляется виды багета и добавляется стоимость

« Последнее редактирование: 04.07.2014, 12:43:09 от 3gger »
*

nevigen

  • Moderator
  • 8913
  • 755
  • http://n*****n.com
поправьте пжлст свой пост в соответствии с правилами форума.
прочитайте внимательно требования к картинкам.
иначе просто удалю пост.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

damm88

  • Захожу иногда
  • 20
  • 0
Подскажите, пожалуйста, почему у меня в списке товаров выводятся только первые 3 характеристики ? Нигде не вижу числа 3.. в карточке товара выводятся все характеристики.
*

dmitry_stas

  • Профи
  • 10007
  • 948
/administrator/index.php?option=com_jshopping&controller=config&task=catprod - какие отмечены в блоке списка товаров, такие и выводятся
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

damm88

  • Захожу иногда
  • 20
  • 0
Спасибо огромное ! Извиняюсь за флуд. Но работают ли сообщения на форуме ? я хотел написать по доработкам, пишу письмо, а в исходящих оно не отображается.
« Последнее редактирование: 21.08.2014, 13:31:23 от damm88 »
*

Linfuby

  • Живу я здесь
  • 1243
  • 174
  • Всё просто...
Когда пишете письмо там есть галочка "Сохранять в исходящих" Если не поставили, то в исходящих оно не сохраняется. Я сам не понимаю почему так сделано.
Немного воображения и логики, и любая проблема становится решенной.
Кривые решения - дают кривой результат!
Решения для JoomShopping
Благодарности и поддержка принимаются по след. реквизитам:
Яндекс.Деньги - 41001751720054
*

dron

  • Живу я здесь
  • 1128
  • 2
Доброго дня!

У меня на главной выводится список товаров, и хотелось бы там под картинками выводить 2-3 основные характеристики. Как я понимаю, то что здесь описано мне как раз поможет?
*

nevigen

  • Moderator
  • 8913
  • 755
  • http://n*****n.com

У меня на главной выводится список товаров, и хотелось бы там под картинками выводить 2-3 основные характеристики. Как я понимаю, то что здесь описано мне как раз поможет?
в настройках задать хар-ки которые выводятся в категории.
Профессиональные / Бесплатные решения для JoomShopping
Не лечи бесплатно, ибо тот, кто лечится бесплатно, рано или поздно перестает ценить свое здоровье,
а тот, кто лечит бесплатно, рано или поздно перестает ценить результаты своего труда/ (с) Гиппократ?
Не ищите ответов, ищите решение !
*

baskak

  • Захожу иногда
  • 11
  • 0
Доброго времени суток. Форумчане, подскажите как мне сделать вывод характеристик в таблицу. Т.е есть таблица где 4 столбца основные, а 6 столбцов характеристики. Дело в том что, если для товара нет характеристики, то он не выводит ячейку таблицы и таблица становится не пойми на что похожа. Что делать?
*

dmitry_stas

  • Профи
  • 10007
  • 948
покажите код, как выводите характеристики
Тут дарят бакс просто за регистрацию! Успей получить!
Все советы на форуме раздаю бесплатно, то есть даром. Индивидуально бесплатно консультирую только по вопросам стоимости индивидуальных консультаций
*

baskak

  • Захожу иногда
  • 11
  • 0

   
   
 
            <?php foreach($product->extra_field as $extra_field){?>
                <td><?php print_r( $extra_field['value'])?></td>
            <?php }?>
*

baskak

  • Захожу иногда
  • 11
  • 0
изменения провожу в файле public_html\components\com_jshopping\templates\default3\list_products\product.php
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Title и Alt изображения товара на странице категории и на странице товара

Автор tigra-uki

Ответов: 10
Просмотров: 81
Последний ответ 09.09.2017, 19:28:27
от Виталик
Вывод опций характеристик с новой строки, а не через запятую

Автор semak85

Ответов: 1
Просмотров: 43
Последний ответ 21.08.2017, 10:02:26
от dmitry_stas
Удалить из базы неиспользуемые значения характеристик

Автор ardemish

Ответов: 7
Просмотров: 187
Последний ответ 27.07.2017, 16:11:56
от ardemish
Модуль mod_jshopping_filters + наличее товара

Автор wel89

Ответов: 0
Просмотров: 129
Последний ответ 21.07.2017, 22:32:12
от wel89
Слэш в весе товара

Автор tsweb

Ответов: 5
Просмотров: 176
Последний ответ 06.07.2017, 09:39:17
от dmitry_stas