eugenem 11 Опубликовано 1 марта, 2013 Жалоба Share Опубликовано 1 марта, 2013 Может кто знает, как вывести, к примеру, только пять допполей в листинге? Если их много, получается некрасиво, а совсем убирать тоже не хочется. Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 1 марта, 2013 Жалоба Share Опубликовано 1 марта, 2013 Попробуйте в /includes/classes/product.php поменять: SELECT pef.products_extra_fields_status as status, pef.products_extra_fields_name as name, ptf.products_extra_fields_value as value FROM ". TABLE_PRODUCTS_EXTRA_FIELDS ." pef LEFT JOIN ". TABLE_PRODUCTS_TO_PRODUCTS_EXTRA_FIELDS ." ptf ON ptf.products_extra_fields_id=pef.products_extra_fields_id WHERE ptf.products_id=". (int)$array['products_id'] ." and ptf.products_extra_fields_value<>'' and (pef.languages_id='0' or pef.languages_id='".$_SESSION['languages_id']."') ORDER BY products_extra_fields_order"); [/code] на: [code] SELECT pef.products_extra_fields_status as status, pef.products_extra_fields_name as name, ptf.products_extra_fields_value as value FROM ". TABLE_PRODUCTS_EXTRA_FIELDS ." pef LEFT JOIN ". TABLE_PRODUCTS_TO_PRODUCTS_EXTRA_FIELDS ." ptf ON ptf.products_extra_fields_id=pef.products_extra_fields_id WHERE ptf.products_id=". (int)$array['products_id'] ." and ptf.products_extra_fields_value<>'' and (pef.languages_id='0' or pef.languages_id='".$_SESSION['languages_id']."') ORDER BY products_extra_fields_order limit 5"); т.е. добавить limit 5 в конце. Но, это ведь ограничит везде доп. поля. Ссылка на сообщение Поделиться на другие сайты
eugenem 11 Опубликовано 1 марта, 2013 Автор Жалоба Share Опубликовано 1 марта, 2013 Нет, везде не надо. Может как-то в самом шаблоне через смарти можно задать? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 1 марта, 2013 Жалоба Share Опубликовано 1 марта, 2013 Можно ведь отдельный запрос сделать и отдельную метку только для списка товара. По поводу лимита в смарти, в гугле ведь можно найти например по smarty foreach limit Вот например - http://schinckel.net/2005/10/18/limiting-smarty-foreach/ Ссылка на сообщение Поделиться на другие сайты
shaklov 63 Опубликовано 1 марта, 2013 Жалоба Share Опубликовано 1 марта, 2013 .iteration iteration содержит значение текущей итерации цикла и всегда начинается с единицы. Это значение увеличивается на единицу с каждой следующей итерацией. Прямо в цикле проверяем чтобы номер текущей интерации не был больше нужного ограничения. А лучше проверять прямо по имени доп.поля и выводить только основные. Ссылка на сообщение Поделиться на другие сайты
-Inna- 0 Опубликовано 2 марта, 2013 Жалоба Share Опубликовано 2 марта, 2013 вот в карточке товара выводили 2. {if $extra_fields_data} {$extra_fields_data[0].NAME}: {$extra_fields_data[0].VALUE} <br /> {$extra_fields_data[1].NAME}: {$extra_fields_data[1].VALUE} <br /> {/if} поменяйте метки для листинга товаров и отпишитесь если помогло) Ссылка на сообщение Поделиться на другие сайты
eugenem 11 Опубликовано 5 марта, 2013 Автор Жалоба Share Опубликовано 5 марта, 2013 Спасибо всем за направление. в котором рыть. Получилось вот таким способом: {foreach item=extra_fields from=$module_data.EXTRA_FIELDS name=foo} {if $smarty.foreach.foo.index == 5} {php}break;{/php} {/if} {$extra_fields.NAME}: {$extra_fields.VALUE}<br /> {/foreach} [/CODE] Ссылка на сообщение Поделиться на другие сайты
-Inna- 0 Опубликовано 5 марта, 2013 Жалоба Share Опубликовано 5 марта, 2013 {if $extra_fields_data} {$extra_fields_data[0].NAME}: {$extra_fields_data[0].VALUE} <br /> {$extra_fields_data[1].NAME}: {$extra_fields_data[1].VALUE} <br /> {/if} так все равно удобнее. можно задавать оформление для каждого поля. это всегда плюс. Ссылка на сообщение Поделиться на другие сайты
4pb 1 Опубликовано 14 июля, 2016 Жалоба Share Опубликовано 14 июля, 2016 ап проблема у меня-( вывод дополнительных полей в накладной работает только через {$extra_fields_data} использование {$extra_fields_data[1].NAME}: {$extra_fields_data[1].VALUE} не дает никакого результата. как можно решить вопрос ограничения вывода доп полей ? из-за чего у меня может не получаться? Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 14 июля, 2016 Жалоба Share Опубликовано 14 июля, 2016 Не работает потому что эта метка - не массив, а она выводит сразу блок кода. Вам нужно править функцию vam_get_extra_fields в /admin/includes/functions/general.php Например если нужно выводить перые 5 доп. полей, то попробуйте исправить sql запрос: $extra_fields_query = vam_db_query("select ce.fields_id, ce.fields_input_type, ce.fields_input_value, ce.fields_required_status, cei.fields_name, ce.fields_status, ce.fields_input_type from " . TABLE_EXTRA_FIELDS . " ce, " . TABLE_EXTRA_FIELDS_INFO . " cei where ce.fields_status=1 and cei.fields_id=ce.fields_id and cei.languages_id =" . $languages_id); на: $extra_fields_query = vam_db_query("select ce.fields_id, ce.fields_input_type, ce.fields_input_value, ce.fields_required_status, cei.fields_name, ce.fields_status, ce.fields_input_type from " . TABLE_EXTRA_FIELDS . " ce, " . TABLE_EXTRA_FIELDS_INFO . " cei where ce.fields_status=1 and cei.fields_id=ce.fields_id and cei.languages_id =" . $languages_id . " limit 5"); В любом случае, все правится в этой функции, делайте как Вам нужно. Ссылка на сообщение Поделиться на другие сайты
4pb 1 Опубликовано 14 июля, 2016 Жалоба Share Опубликовано 14 июля, 2016 отлично, но если мне нужно к примеру не использовать имя доп поля? меня удивляет то, что по всему форуму в десятках тем используют метки {$extra_fields_data[1].NAME} - а у меня они не работают Ссылка на сообщение Поделиться на другие сайты
support 447 Опубликовано 14 июля, 2016 Жалоба Share Опубликовано 14 июля, 2016 Так это для каталога. В админке свой код. Я ж Вам написал какую функцию правиь, просто удалите лишнее, что Вам не нужно. Видимо, за вывод названия поля отвечает вот этот код: ' . $extra_fields['fields_name'] . ': Ссылка на сообщение Поделиться на другие сайты
Рекомендуемые сообщения