We launched new forums in March 2019—join us there. In a hurry for help with your website? Get Help Now!
    • 2507
    • 49 Posts
    Здравствуйте!!!

    Возникла задача в создании специальной формы на сайте с помощью которой генерировалась определенного вида страница, добавлялась в определенный раздел в Modx и ставился статус не опубликована.

    Смысл такой: есть мероприятия клубные разные.

    Надо сделать форму с полями разного типа:
    Дата мероприятия - календарь с выбором даты
    Место проведения - выпадающий список с наименованиями
    Название мероприятия - текстовое
    Загрузить изображение мероприятия - окно загрузки изображения
    Информация о мероприятии - текстовое
    Кнопка отправить

    После того, как пользователь введет всю информацию и нажмет кнопку отправить, появиться в указанном разделе в админке страница с определенным типовым оформлением. Размер фотографии автоматически сделается нужным, а вся информация встанет на свои места и с заданным оформлением.


    Собственно хотелось бы у вас узнать, где копать и каким способом можно это реализовать?

    Заранее спасибо всем ответившим


      • 16289
      • 121 Posts
      Реализовал такое с помощью eForm + CakeModx.
      к eForm надо еще написать сниппет обработки тех полей, что прислали и на основе них в том же сниппете добавлять через CakeModx страницу куда надо.
        How could number of mysql queries be more than number of tables in DB???
        • 2507
        • 49 Posts
        спасибо буду пробовать. Если кто-то знает иные способы. пишите буду благодарен
          • 16289
          • 121 Posts
          да...не забудьте 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???