##
###############################################################################
## XOOPS - PHP Content Management System ##
## Copyright (c) 2000 XOOPS.org ##
## ##
###############################################################################
## This program is free software; you can redistribute it and/or modify ##
## it under the terms of the GNU General Public License as published by ##
## the Free Software Foundation; either version 2 of the License, or ##
## (at your option) any later version. ##
## ##
## You may not change or alter any portion of this comment or credits ##
## of supporting developers from this source code or any supporting ##
## source code which is considered copyrighted (c) material of the ##
## original comment or credit authors. ##
## ##
## This program is distributed in the hope that it will be useful, ##
## but WITHOUT ANY WARRANTY; without even the implied warranty of ##
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ##
## GNU General Public License for more details. ##
## ##
## You should have received a copy of the GNU General Public License ##
## along with this program; if not, write to the Free Software ##
## Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA ##
###############################################################################
## Author of this file: NS Tai (aka tuff) ##
## URL: http://www.brandycoke.com/ ##
## Project: Liaise ##
###############################################################################
include 'admin_header.php';
$myts =& MyTextSanitizer::getInstance();
$op = isset($_GET['op']) ? trim($_GET['op']) : 'list';
$op = isset($_POST['op']) ? trim($_POST['op']) : $op;
switch($op){
case 'list':
default:
adminHtmlHeader();
$criteria = new Criteria(1, 1);
$criteria->setSort('form_order');
$criteria->setOrder('ASC');
if( $forms =& $liaise_form_mgr->getObjects($criteria, 'admin_list') ){
echo '
\n";
}
break;
case 'edit':
$clone = isset($_GET['clone']) ? intval($_GET['clone']) : false;
$form_id = isset($_GET['form_id']) ? intval($_GET['form_id']) : 0;
adminHtmlHeader();
if( !empty($form_id) ){
$form =& $liaise_form_mgr->get($form_id);
}else{
$form =& $liaise_form_mgr->create();
}
$text_form_title = new XoopsFormText(_AM_FORM_TITLE, 'form_title', 50, 255, $form->getVar('form_title', 'e'));
$group_ids = $moduleperm_handler->getGroupIds($liaise_form_mgr->perm_name, $form_id, $xoopsModule->getVar('mid'));
$select_form_group_perm = new XoopsFormSelectGroup(_AM_FORM_PERM, 'form_group_perm', true, $group_ids, 5, true);
$select_form_send_method = new XoopsFormSelect(_AM_FORM_SEND_METHOD, 'form_send_method', $form->getVar('form_send_method'));
$select_form_send_method->addOption('e', _AM_FORM_SEND_METHOD_MAIL);
$select_form_send_method->addOption('p', _AM_FORM_SEND_METHOD_PM);
$select_form_send_method->setDescription(_AM_FORM_SEND_METHOD_DESC);
$select_form_send_to_group = new XoopsFormSelectGroup(_AM_FORM_SENDTO, 'form_send_to_group', false, $form->getVar('form_send_to_group'));
$select_form_send_to_group->addOption('0', _AM_FORM_SENDTO_ADMIN);
$select_form_delimiter = new XoopsFormSelect(_AM_FORM_DELIMETER, 'form_delimiter', $form->getVar('form_delimiter'));
$select_form_delimiter->addOption('s', _AM_FORM_DELIMETER_SPACE);
$select_form_delimiter->addOption('b', _AM_FORM_DELIMETER_BR);
$text_form_order = new XoopsFormText(_AM_FORM_ORDER, 'form_order', 3, 2, $form->getVar('form_order'));
$text_form_order->setDescription(_AM_FORM_ORDER_DESC);
$submit_text = $form->getVar('form_submit_text');
$text_form_submit_text = new XoopsFormText(_AM_FORM_SUBMIT_TEXT, 'form_submit_text', 50, 50, empty($submit_text) ? _SUBMIT : $submit_text);
$tarea_form_desc = new XoopsFormDhtmlTextArea(_AM_FORM_DESC, 'form_desc', $form->getVar('form_desc', 'e'), 5);
$tarea_form_desc->setDescription(_AM_FORM_DESC_DESC);
$tarea_form_intro = new XoopsFormDhtmlTextArea(_AM_FORM_INTRO, 'form_intro', $form->getVar('form_intro', 'e'), 10);
$tarea_form_intro->setDescription(_AM_FORM_INTRO_DESC);
$text_form_whereto = new XoopsFormText(_AM_FORM_WHERETO, 'form_whereto', 50, 255, $form->getVar('form_whereto'));
$text_form_whereto->setDescription(_AM_FORM_WHERETO_DESC);
$hidden_op = new XoopsFormHidden('op', 'saveform');
$submit = new XoopsFormButton('', 'submit', _AM_SAVE, 'submit');
$submit1 = new XoopsFormButton('', 'submit', _AM_SAVE_THEN_ELEMENTS, 'submit');
$tray = new XoopsFormElementTray('');
$tray->addElement($submit);
$tray->addElement($submit1);
if( empty($form_id) ){
$caption = _AM_FORM_NEW;
}else{
if( $clone ){
$caption = sprintf(_AM_COPIED, $form->getVar('form_title'));
$clone_form_id = new XoopsFormHidden('clone_form_id', $form_id);
$text_form_title = new XoopsFormText(_AM_FORM_TITLE, 'form_title', 50, 255, sprintf(_AM_COPIED, $form->getVar('form_title', 'e')));
}else{
$caption = sprintf(_AM_FORM_EDIT, $form->getVar('form_title'));
$hidden_form_id = new XoopsFormHidden('form_id', $form_id);
}
}
$output = new XoopsThemeForm($caption, 'editform', LIAISE_ADMIN_URL);
$output->addElement($text_form_title, true);
$output->addElement($select_form_group_perm);
$output->addElement($select_form_send_method);
$output->addElement($select_form_send_to_group);
$output->addElement($select_form_delimiter);
$output->addElement($text_form_order);
$output->addElement($text_form_submit_text, true);
$output->addElement($tarea_form_desc);
$output->addElement($tarea_form_intro);
$output->addElement($text_form_whereto);
$output->addElement($hidden_op);
if( isset($hidden_form_id) && is_object($hidden_form_id) ){
$output->addElement($hidden_form_id);
}
if( isset($clone_form_id) && is_object($clone_form_id) ){
$output->addElement($clone_form_id);
}
$output->addElement($tray);
$output->display();
break;
case 'delete':
if( empty($_POST['ok']) ){
adminHtmlHeader();
xoops_confirm(array('op' => 'delete', 'form_id' => $_GET['form_id'], 'ok' => 1), LIAISE_ADMIN_URL, _AM_FORM_CONFIRM_DELETE);
}else{
$form_id = intval($_POST['form_id']);
if( empty($form_id) ){
redirect_header(LIAISE_ADMIN_URL, 0, _AM_NOTHING_SELECTED);
}
$form =& $liaise_form_mgr->get($form_id);
$liaise_form_mgr->delete($form);
$liaise_ele_mgr =& xoops_getmodulehandler('elements');
$criteria = new Criteria('form_id', $form_id);
$liaise_ele_mgr->deleteAll($criteria);
$liaise_form_mgr->deleteFormPermissions($form_id);
redirect_header(LIAISE_ADMIN_URL, 0, _AM_DBUPDATED);
}
break;
case 'saveorder':
if( !isset($_POST['ids']) || count($_POST['ids']) < 1 ){
redirect_header(LIAISE_ADMIN_URL, 0, _AM_NOTHING_SELECTED);
}
extract($_POST);
foreach( $ids as $id ){
$form =& $liaise_form_mgr->get($id);
$form->setVar('form_order', $order[$id]);
$liaise_form_mgr->insert($form);
}
redirect_header(LIAISE_ADMIN_URL, 0, _AM_DBUPDATED);
break;
case 'saveform':
if( !isset($_POST['submit']) ){
redirect_header(LIAISE_ADMIN_URL, 0, _AM_NOTHING_SELECTED);
}
$error = '';
extract($_POST);
if( !empty($form_id) ){
$form =& $liaise_form_mgr->get($form_id);
}else{
$form =& $liaise_form_mgr->create();
}
$form->setVar('form_send_method', $form_send_method);
$form->setVar('form_send_to_group', $form_send_to_group);
$form->setVar('form_order', $form_order);
$form->setVar('form_delimiter', $form_delimiter);
$form->setVar('form_title', $form_title);
$form->setVar('form_submit_text', $form_submit_text);
$form->setVar('form_desc', $form_desc);
$form->setVar('form_intro', $form_intro);
$form->setVar('form_whereto', $form_whereto);
if( !$ret = $liaise_form_mgr->insert($form) ){
$error = $form->getHtmlErrors();
}else{
$liaise_form_mgr->deleteFormPermissions($ret);
if( count($form_group_perm) > 0 ){
$liaise_form_mgr->insertFormPermissions($ret, $form_group_perm);
}
if( !empty($clone_form_id) ){
$liaise_ele_mgr =& xoops_getmodulehandler('elements');
$criteria = new Criteria('form_id', $clone_form_id);
$count = $liaise_ele_mgr->getCount($criteria);
if( $count > 0 ){
$elements =& $liaise_ele_mgr->getObjects($criteria);
foreach( $elements as $e ){
$cloned =& $e->xoopsClone();
$cloned->setVar('form_id', $ret);
if( !$liaise_ele_mgr->insert($cloned) ){
$error .= $cloned->getHtmlErrors();
}
}
}
}elseif( empty($form_id) ){
$liaise_ele_mgr =& xoops_getmodulehandler('elements');
$error = $liaise_ele_mgr->insertDefaults($ret);
}
}
if( !empty($error) ){
adminHtmlHeader();
echo $error;
}else{
if( $_POST['submit'] == _AM_SAVE_THEN_ELEMENTS ){
redirect_header(LIAISE_URL.'admin/elements.php?form_id='.$ret, 0, _AM_DBUPDATED);
}else{
redirect_header(LIAISE_ADMIN_URL.'?op=edit&form_id='.$ret, 0, _AM_DBUPDATED);
}
}
break;
}
include 'footer.php';
xoops_cp_footer();
?>