Gepostet am:12.05.2009 18:53
#6
Aw:: Wie kann das Captcha aus dem Frameworks von Xoops 2.3 in alte Module eingebaut werden?
12.05.2009 18:53 aja, hatte ich doch richtig vermutet
Die Abfrage muss natürlich vor dem Eintragen sein und sollte das ganze dann auch abbrechen
<?php
include '../../mainfile.php';
include_once 'class/perm.php';
$extcalPerm = ExtcalPerm::getHandler();
if(count($extcalPerm->getAuthorizedCat($xoopsUser, 'extcal_cat_submit')) > 0) {
include XOOPS_ROOT_PATH.'/header.php';
$xoopsTpl->assign('xoops_pagetitle', _MD_EXTCAL_SUBMIT_EVENT);
include XOOPS_ROOT_PATH.'/class/xoopsformloader.php';
if(!isset($_POST['form_submit'])) {
$eventHandler = xoops_getmodulehandler('event', 'extcal');
$form = $eventHandler->getSubmitFormDisplay($xoopsUser, 'submit.php');
$form->display();
} else {
if (!$GLOBALS['xoopsSecurity']->check()) {
redirect_header('index.php', 3, _NOPERM."<br />".implode('<br />', $GLOBALS['xoopsSecurity']->getErrors()));
exit;
}
xoops_load("captcha");
$xoopsCaptcha = XoopsCaptcha::getInstance();
if (! $xoopsCaptcha->verify() ) {
echo $xoopsCaptcha->getMessage();
$eventHandler = xoops_getmodulehandler('event', 'extcal');
$form = $eventHandler->getSubmitFormDisplay($xoopsUser, 'submit.php');
$form->display();
include(XOOPS_ROOT_PATH."/footer.php");
exit();
}
$notification_handler =& xoops_gethandler('notification');
$catHandler = xoops_getmodulehandler('cat', 'extcal');
$eventHandler = xoops_getmodulehandler('event', 'extcal');
$autoApproveCat = $extcalPerm->getAuthorizedCat($xoopsUser, 'extcal_cat_autoapprove');
if(array_search($_POST['cat_id'], $autoApproveCat) === false) {
$approved = 0;
$notifyEvent = 'new_event_pending';
} else {
$approved = 1;
$notifyEvent = 'new_event';
}
if(!preg_match('`[0-9]{4}-[01][0-9]-[0123][0-9]`', $_POST['event_start']['date'])) {
redirect_header('submit.php', 3, _MD_EXTCAL_WRONG_DATE_FORMAT."<br />".implode('<br />', $GLOBALS['xoopsSecurity']->getErrors()));
exit;
}
list($year,$month,$day) = explode("-",$_POST['event_start']['date']);
$start = mktime(0,0,0,$month,$day,$year) + $_POST['event_start']['time'];
if($_POST['event_end_ok'] == 1) {
if(preg_match('`[0-9]{4}-[01][0-9]-[0123][0-9]`', $_POST['event_end']['date'])) {
list($year,$month,$day) = explode("-",$_POST['event_end']['date']);
$end = mktime(0,0,0,$month,$day,$year) + $_POST['event_end']['time'];
} else {
$end = $start;
}
} else {
$end = $start;
}
$submitter = ($xoopsUser) ? $xoopsUser->getVar('uid') : 0;
$dohtml = ($xoopsModuleConfig['dohtml_type'] == 2) ? 1 : 0;
$info = array(
'event_title'=>$_POST['event_title'],
'cat_id'=>$_POST['cat_id'],
'event_desc'=>$_POST['event_desc'],
'event_contact'=>$_POST['event_contact'],
'event_url'=>$_POST['event_url'],
'event_email'=>$_POST['event_email'],
'event_address'=>$_POST['event_address'],
'event_approved'=>$approved,
'event_start'=>$start,
'event_end'=>$end,
'event_submitter'=>$submitter,
'event_submitdate'=>time(),
'dohtml'=>$dohtml
);
$eventHandler->createEvent($info);
$notification_handler->triggerEvent('global', 0, $notifyEvent, array('EVENT_TITLE'=>$_POST['event_title']));
if($approved == 1) {
$cat = $catHandler->getCat($_POST['cat_id'], $xoopsUser, 'all');
$notification_handler->triggerEvent('cat', $_POST['cat_id'], 'new_event_cat', array('EVENT_TITLE'=>$_POST['event_title'], 'CAT_NAME'=>$cat->getVar('cat_name')));
}
redirect_header("../../index.php", 3, _MD_EXTCAL_EVENT_ADDED, false);
}
include(XOOPS_ROOT_PATH."/footer.php");
} else {
redirect_header("index.php", 3, _NOPERM, false);
}
?>