Здравствуйте!!!
Возникла задача в создании специальной формы на сайте с помощью которой генерировалась определенного вида страница, добавлялась в определенный раздел в Modx и ставился статус не опубликована.
Смысл такой: есть мероприятия клубные разные.
Надо сделать форму с полями разного типа:
Дата мероприятия - календарь с выбором даты
Место проведения - выпадающий список с наименованиями
Название мероприятия - текстовое
Загрузить изображение мероприятия - окно загрузки изображения
Информация о мероприятии - текстовое
Кнопка отправить
После того, как пользователь введет всю информацию и нажмет кнопку отправить, появиться в указанном разделе в админке страница с определенным типовым оформлением. Размер фотографии автоматически сделается нужным, а вся информация встанет на свои места и с заданным оформлением.
Собственно хотелось бы у вас узнать, где копать и каким способом можно это реализовать?
Заранее спасибо всем ответившим
Реализовал такое с помощью eForm + CakeModx.
к eForm надо еще написать сниппет обработки тех полей, что прислали и на основе них в том же сниппете добавлять через CakeModx страницу куда надо.
How could number of mysql queries be more than number of tables in DB???
спасибо буду пробовать. Если кто-то знает иные способы. пишите буду благодарен
да...не забудьте 2 функции в Eform:
function ValidatePage(&$fields,&$vMsg,&$rMsg,&$rClass)
{
global $modx;
global $_lang;
// тут проверяем все присланные поля массива $fields и формируем мессадж, если что-то неправильно в массивах $vMsg и $rMsg
// если все хорошо, то эти массивы будут пустые
}
//.. и что-то такое для создания страницы
function CreatePage(&$fields){
// Массив $fields будет содержать данные всех полей формы
// Создания документа с описанием.
global $modx;
global $parent_cat;
global $template_id;
// в начале сниппета надо подрубить эту библиотеку CakeModx
$CakeModx = new CakeModx;
// get user ID;
$userID=$modx->getLoginUserID();
$userID=(isset($userID))?$userID:((isset($_SESSION['mgrInternalKey']))?$_SESSION['mgrInternalKey']:0);
// тут заполняем, что хотим и как хотим
$my_fields = array(
"pagetitle" => $fields['cfName'],
"content" => $fields['description'],
"parent" => $parent_cat,
"template" => $template_id,
"createdon" => time(),
"publishedon" => time(),
"alias" => '',
"menutitle" => $url_clean,
"createdby" => $userID,
"published" => 0 // не публиковать
);
$id = $CakeModx->newDocument($my_fields);
// если есть TV , то так
if($id)
{
$CATid = $CakeModx->setTV('categories',$id,implode('||',$fields['cat']));
$CakeModx->updateCache();
}
return true; // Говорим eForm, что все в порядке.
}
В общем как-то так
How could number of mysql queries be more than number of tables in DB???