|
|
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
Сообщений: 482
|
Это можно указать в Системных настройках шаблона вывода
Stark
|
|
|
08.01.2013, 16:20
|
|
serguesqx
Клевер АС
Зарегистрирован: 2012-11-26
Сообщений: 19
|
в префикс списка объектов Простого списка файлов добавляю:
Код:<? if ($subject=='11') { $query_where = "a.Name = 'Первый файл'"; } ?>
в выводе одного товара на отдельной странице в аргумент функции добавляю:
получается:
Код:<?= 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, только надо перед его использованием установить обязательно один дополнительный патч.
|