Регистрация
Регистрируясь, вы подтверждаете свое согласие с соглашением об использовании персональных данных.
Восстановление пароля

Реализация расширенного каталога товара с возможностью привязки файлов к товару.

07.01.2013, 14:01
serguesqx
Клевер АС

Зарегистрирован:
2012-11-26
Сообщений: 19

Ув. эксперты, прошу, помогите с воплощением следующей идеи:
Есть каталог с товаром, надо чтобы к каждому товару было возможно привязывать несколько файлов из админки для дальнейшего их скачивания со страницы товара.
Пробовал сделать подобное на компонентах проекты+клиенты, но пока безрезультатно, может кто-то уже делал подобное или у кого-то просто есть идея для реализации?
Буду благодарен любой подсказке.

О, приветик.
07.01.2013, 15:32
serguesqx
Клевер АС

Зарегистрирован:
2012-11-26
Сообщений: 19

пробую вывести компонент Простого списка файлов на странице товара с помощью:
Код:
<?= nc_objects_list( 11, 525, "&recNum=99&nc_ctpl=85"); ?>

Но выводит только:
Код:
<>

Может кто подсказать как правильно передать параметры из простого списка файлов для третьего аргумента ф-и nc_objects_list?

О, приветик.
08.01.2013, 00:42
serguesqx
Клевер АС

Зарегистрирован:
2012-11-26
Сообщений: 19

мой фэйл, не того родителя указал.ооо
а возможно, как-то добавить в nc_objects_list выборку, например показывать только файлы, id которых указали в качестве аргумента?

О, приветик.
08.01.2013, 14:49
Игорь
Игорь Мишарин
Игорь

Зарегистрирован:
2011-11-20
Сообщений: 479

Это можно указать в Системных настройках шаблона вывода

Stark
08.01.2013, 16:20
serguesqx
Клевер АС

Зарегистрирован:
2012-11-26
Сообщений: 19

в префикс списка объектов Простого списка файлов добавляю:
Код:
<? if ($subject=='11') { $query_where = "a.Name = 'Первый файл'"; } ?>

в выводе одного товара на отдельной странице в аргумент функции добавляю:
Код:
&subject=11

получается:
Код:
<?= s_list_class( 135, 525, "&recNum=99&subject=11" );?>

(s_list_class, как я понял от предидущей ф-и ничем не отличается)
И все равно выводит все файлы =(
Может не в те системные настройки добавляю условие?
Версия неткэта 5.

О, приветик.
09.01.2013, 00:02
serguesqx
Клевер АС

Зарегистрирован:
2012-11-26
Сообщений: 19

Разобрался.
Нашел поле системных настроек.
Сунул туда условие - все работает.
Выборку по нескольких параметрам делаю так:
Код:
<? if ($subject=='1') { $query_where = "a.Name = 'Первый файл' or a.Name = 'Второй файл'"; } ?>

Осталось самое сложное..
Нужно как-то передать в условие или в s_list_class параметры(выбранные объекты из простого списка файлов) которые выберет юзер при редактировании товара.
Примерно представляется так: создаем новое поле(желательно множественный список) в компоненте товара, потом средствами php приводим выбранные объекты в вид параметров, и передаём их (?)глобальной переменной в условие или в s_list_class.
Эх.. будем пробовать.

О, приветик.
10.01.2013, 07:32
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Сделайте HTML-форму, вставив ее в шаблон вывода списка объектов, а возле каждого файла - по крыжику.
Примерно так:
Код:
<form action='' method='get'>
<input type='checkbox' name='mysearch[]' value='f1' /> файл1<br />
<input type='checkbox' name='mysearch[]' value='f2' /> файл2<br />
<input type='checkbox' name='mysearch[]' value='f3' /> файл3<br />
<input type='submit' name='Найти' />
</form>

А в системных настройках делаете что-то вроде этого:
Код:
$query_where="1";
if(isset($mysearch) && count($mysearch) )
{
$query_where .= " AND a.filename IN ('.".join("','",$mysearch)."')";
}
Пример я привел для версии 4.7, но для 5-ки принцип тот же самый..
Внимание! Если файлов будет много, то лучше вместо GET использовать POST.
10.01.2013, 15:37
serguesqx
Клевер АС

Зарегистрирован:
2012-11-26
Сообщений: 19

Спасибо вам большое за совет, но я все реализовал иначе, в скором времени напишу как.

О, приветик.
10.01.2013, 21:20
Руслан Густокашин
Студия Вэлпис

Зарегистрирован:
2012-02-06
Сообщений: 962

Мне тоже первоначально изложенная идея не очень понравилась - мудрить с доп.компонентами, но раз уже решили так делать, то и не стал предлагать альтернативы. А так лично я бы воспользовался просто полем типа "Мультизагрузка файлов". Оно есть в версиях системы, начиная с 4.7, только надо перед его использованием установить обязательно один дополнительный патч.
198 196 2013-01-10 21:20:25 12836
Описание проекта