Completed
Push — master ( a9decc...a21b67 )
by Michael
02:51
created

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
include __DIR__ . '/../../mainfile.php';
4
$GLOBALS['xoopsOption']['template_main'] = 'extcal_post.tpl';
5
6
include XOOPS_ROOT_PATH . '/class/xoopsformloader.php';
7
include __DIR__ . '/class/form/extcalform.php';
8
include __DIR__ . '/class/perm.php';
9
10
include_once __DIR__ . '/class/utilities.php';
11
include_once __DIR__ . '/include/constantes.php';
12
13
$permHandler = ExtcalPerm::getHandler();
14
$xoopsUser   = $xoopsUser ?: null;
15
16
if (!$permHandler->isAllowed($xoopsUser, 'extcal_cat_submit', (int)$_POST['cat_id'])) {
17
    redirect_header('index.php', 3);
18
    exit;
19
}
20
21
// Getting eXtCal object's handler
22
$eventHandler = xoops_getModuleHandler(_EXTCAL_CLS_EVENT, _EXTCAL_MODULE);
23
24
if (isset($_POST['form_preview'])) {
25
    include XOOPS_ROOT_PATH . '/header.php';
26
27
    // Title of the page
28
    $xoopsTpl->assign('xoops_pagetitle', _MI_EXTCAL_SUBMIT_EVENT);
29
30
    $data = array(
31
        'event_title'        => $_POST['event_title'],
32
        'cat_id'             => (int)$_POST['cat_id'],
33
        'event_desc'         => $_POST['event_desc'],
34
        'event_nbmember'     => (int)$_POST['event_nbmember'],
35
        'event_contact'      => $_POST['event_contact'],
36
        'event_url'          => $_POST['event_url'],
37
        'event_email'        => $_POST['event_email'],
38
        'event_address'      => $_POST['event_address'],
39
        'event_approved'     => 1,
40
        'event_start'        => $_POST['event_start'],
41
        'have_end'           => $_POST['have_end'],
42
        'event_end'          => $_POST['event_end'],
43
        'dohtml'             => (int)$xoopsModuleConfig['allow_html'],
44
        'event_price'        => $_POST['event_price'],
45
        'event_organisateur' => $_POST['event_organisateur'],
46
        'event_icone'        => $_POST['event_icone'],
47
    );
48
49
    if (isset($_POST['event_id'])) {
50
        $data['event_id'] = (int)$_POST['event_id'];
51
    }
52
53
    // Creating tempory event object to apply Object data filtering
54
    $event = $eventHandler->createEventForPreview($data);
55
    $event = $eventHandler->objectToArray($event, array('cat_id'), 'p');
56
57
    // Adding formated date for start and end event
58
    $eventHandler->formatEventDate($event, $xoopsModuleConfig['event_date_event']);
59
60
    // Assigning event to the template
61
    $xoopsTpl->assign('event', $event);
62
63
    //     $lang = array(
64
    //         'start' => _MD_EXTCAL_START, 'end' => _MD_EXTCAL_END, 'contact_info' => _MD_EXTCAL_CONTACT_INFO, 'email' => _MD_EXTCAL_EMAIL, 'url' => _MD_EXTCAL_URL, 'whos_going' => _MD_EXTCAL_WHOS_GOING, 'whosnot_going' => _MD_EXTCAL_WHOSNOT_GOING
65
    //     );
66
    //     // Assigning language data to the template
67
    //     $xoopsTpl->assign('lang', $lang);
68
69
    $event['cat_id']   = (int)$_POST['cat_id'];
70
    $event['have_end'] = $_POST['have_end'];
71
72
    // Display the submit form
73
    $form     = $eventHandler->getEventForm('user', 'preview', $event);
74
    $formBody = $form->render();
75
    $xoopsTpl->assign('preview', true);
76
    $xoopsTpl->assign('formBody', $formBody);
77
78
    include XOOPS_ROOT_PATH . '/footer.php';
79
} elseif (isset($_POST['form_submit'])) {
80
    if (!isset($_POST['rrule_weekly_interval'])) {
81
        $_POST['rrule_weekly_interval'] = 0;
82
    }
83
    // ext_echoArray($_POST, '',true);
84
    // exit;
85
    // $ts = print_r($_POST,true);
86
    // echo "<pre>{$ts}</pre>";
87
    // If the date format is wrong
88
    //    if (
89
    //        !preg_match(_EXTCAL_MOTIF_DATE, $_POST['event_start']['date'])
90
    //            || !preg_match(_EXTCAL_MOTIF_DATE, $_POST['event_end']['date'])
91
    //    ) {
92
    //        redirect_header(
93
    //            'index.php', 3, _MD_EXTCAL_WRONG_DATE_FORMAT . "<br>"
94
    //            . implode('<br>', $GLOBALS['xoopsSecurity']->getErrors())
95
    //        );
96
    //        exit;
97
    //    }
98
    ///////////////////////////////////////////////////////////////////////////////
99
    ExtcalUtilities::extcal_loadImg($_REQUEST, $event_picture1, $event_picture2);
100
    ///////////////////////////////////////////////////////////////////////////////
101
102
    include_once __DIR__ . '/class/perm.php';
103
104
    $fileHandler = xoops_getModuleHandler(_EXTCAL_CLS_FILE, _EXTCAL_MODULE);
105
    $permHandler = ExtcalPerm::getHandler();
106
    $approve     = $permHandler->isAllowed($xoopsUser, 'extcal_cat_autoapprove', (int)$_POST['cat_id']);
107
108
    $data = array(
109
        'event_title'         => $_POST['event_title'],
110
        'cat_id'              => $_POST['cat_id'],
111
        'event_desc'          => $_POST['event_desc'],
112
        'event_nbmember'      => $_POST['event_nbmember'],
113
        'event_organisateur'  => $_POST['event_organisateur'],
114
        'event_contact'       => $_POST['event_contact'],
115
        'event_url'           => $_POST['event_url'],
116
        'event_email'         => $_POST['event_email'],
117
        'event_address'       => $_POST['event_address'],
118
        'event_approved'      => ($approve == false) ? 0 : 1,
0 ignored issues
show
Coding Style Best Practice introduced by
It seems like you are loosely comparing two booleans. Considering using the strict comparison === instead.

When comparing two booleans, it is generally considered safer to use the strict comparison operator.

Loading history...
119
        'event_start'         => $_POST['event_start'],
120
        'have_end'            => $_POST['have_end'],
121
        'event_end'           => $_POST['event_end'],
122
        'event_picture1'      => @$event_picture1,
123
        'event_picture2'      => @$event_picture2,
124
        'event_price'         => @$_POST['event_price'],
125
        'event_etablissement' => $_POST['event_etablissement'],
126
        'dohtml'              => $xoopsModuleConfig['allow_html'],
127
        'event_icone'         => $_POST['event_icone'],
128
129
    );
130
131
    if (isset($_POST['event_id'])) {
132
        $eventHandler->modifyEvent((int)$_POST['event_id'], $data);
133
        $fileHandler->updateEventFile((int)$_POST['event_id']);
134
        $fileHandler->createFile((int)$_POST['event_id']);
135
136
        redirect_header('event.php?event=' . $_POST['event_id'], 3, _MD_EXTCAL_EVENT_UPDATED, false);
137
    } else {
138
        $data['event_submitter']  = $xoopsUser ? $xoopsUser->getVar('uid') : 0;
139
        $data['event_submitdate'] = time();
140
141
        $eventHandler->createEvent($data);
142
        $fileHandler->createFile($eventHandler->getInsertId());
143
144
        $notifyEvent = 'new_event';
145
        if (!$approve) {
146
            $notifyEvent = 'new_event_pending';
147
        }
148
149
        $notificationHandler = xoops_getHandler('notification');
150
        $notificationHandler->triggerEvent('global', 0, $notifyEvent, array('EVENT_TITLE' => $_POST['event_title']));
151
        if ($approve == 1) {
152
            $catHandler = xoops_getModuleHandler(_EXTCAL_CLS_CAT, _EXTCAL_MODULE);
153
            $cat        = $catHandler->getCat((int)$_POST['cat_id'], $xoopsUser, 'all');
154
            $notificationHandler->triggerEvent('cat', (int)$_POST['cat_id'], 'new_event_cat', array(
155
                'EVENT_TITLE' => $_POST['event_title'],
156
                'CAT_NAME'    => $cat->getVar('cat_name'),
157
            ));
158
        }
159
    }
160
161
    if ($approve) {
162
        redirect_header(_EXTCAL_FILE_CALMONTH, 3, _MD_EXTCAL_EVENT_CREATED, false);
163
    } else {
164
        redirect_header(_EXTCAL_FILE_CALMONTH, 3, _MD_EXTCAL_EVENT_PENDING, false);
165
    }
166
}
167