Предположим у нас есть форма, представляющая из себя прайс с возможностью отправить заявку администратору указав количество нужных наименований (в качестве дополнения можно реализовать просмотр собственных заявок и статуса их обработки), т.е. записать эту информацию в какой-либо раздел.
Причина поисков решения подобной задачи состоит в том, что в текущем функционале NetCat нет возможности массового добавления объектов в раздел (только по одному, с помощью стандартной формы компонента добавления объекта в раздел).
Использование шаблона «Действие после добавления объекта»
Первый логичный подход — использовать шаблон действий, а именно «Шаблон действия после добавления объекта»:
"; $count = count($Articul); for ( $i = 0; $i < $count; $i++ ) { if ($Quantity[$i]>0){ listQuery("INSERT into `Message72` (`User_ID`, `Subdivision_ID`, `Sub_Class_ID`, `Checked`, `Title`, `Articul`, `Price`, `Quantity`) values ('$AUTH_USER_ID','91','114','1','$Title','$Articul[$i]','$Price[$i]', '$Quantity[$i]') "); } } // далее остальной стандартный код для действия после добавления объекта в раздел |
Смысл происходящего тут: поймать элементы POST-массива и, соответственно, для каждого произвести вставку в нужную таблицу значений по соответствующими индексами.
Соответственно можно также легко записать данные в любую другую БД используя стандартные php-функции работы с БД.
Использование стандартного файла добавления объекта add.php
Как вы можете видеть в режиме редактирования при открытии формы добавления формы добавления объекта в разделе url выглядит следующим образом: домен.ru/netcat/add.php?catalogue=1&sub=77&cc=79, где соответственно 1-сайт, 77-раздел сайта, 79-компонент в разделе.
Довольно несложно сообразить взглянув на содержание POST-запроса при добавлении объекта, что все значения передаются в параметрах являющимися именами полей. Такой подход работает и в GET-запросе, например, так: домен.ru/netcat/add.php?catalogue=1&sub=77&cc=79&posting=1&f_Title=Название объекта — такой запрос добавит объект в соответствующий раздел (77), с названием «Название объекта».
Соответственно, вызвав такой url несколько раз в цикле после добавления объекта можно добавить сразу нужное количество объектов, например так:
$count = count($Articul); for ( $i = 0; $i < $count; $i++ ) { file_get_contents('http://домен.ru/netcat/add.php'); } |
Результат работы функции — код страницы, появляющийся после добавления объекта, можно записать в переменную.
Если у вас есть замечания или интересный опыт в практическом решении подобных задач — вэлком в комментарии.
for ( $i = 0; $i < $count; $i++ ) { file_get_contents('http://домен.ru/netcat/add.php'); }
здесь кстати, не переданы параметры на add.php, но это конечно подразумевается
Помогло спасибо .