コード例 #1
0
ファイル: index.php プロジェクト: nikosv/openeclass
        $event = Calendar_Events::get_event($modify);        
        if ($event) {
            $eventToModify = $event->id;
            $contentToModify = $event->content;
            $titleToModify = q($event->title);
            $startdate = DateTime::createFromFormat('Y-m-d H:i:s', $event->start)->format('d-m-Y H:i');
            $datetimeToModify = q($startdate);
            $durationToModify = DateTime::createFromFormat('H:i:s', $event->duration)->format('H:i');
            $gen_type_selected = $event->reference_obj_module;
            $course_selected = $event->reference_obj_course;
            $type_selected = $event->reference_obj_type;
            $object_selected = $event->reference_obj_id;
            $displayForm = true;
            $is_recursive_event = false;
            $enddate = '';
            if(Calendar_Events::is_recursive($event->id, 'personal')){
                $is_recursive_event = true;
                $applytogroup = 'no';
                $repeatnumber = substr($event->recursion_period, 1, strlen($event->recursion_period)-2);
                $repeatperiod = substr($event->recursion_period, -1);
                $enddate = DateTime::createFromFormat('Y-m-d', $event->recursion_end)->format('d-m-Y');
            }
            
        }
    }
}

/* display form */
if ($displayForm and (isset($_GET['addEvent']) or ($is_admin && isset($_GET['addAdminEvent'])) or isset($_GET['modify']))) { 
    if (isset($_GET['modify'])) {
        $pageName = $langModifEvent;
コード例 #2
0
    /**
     * Update existing admin event and logs the action
     * @param int $eventid id in table note
     * @param string $title note title
     * @param text $content note body
     * @param int $visibility_level min user level to show this event to
     */
    public static function update_admin_event($eventid, $title, $start, $duration, $content, $visibility_level, $recursion = NULL, $recursivelly = false) {
        global $uid, $is_admin, $langNotValidInput, $langNotAllowed;
        if (!$is_admin) {
            return array('success' => false, 'message' => $langNotAllowed);
        }
        
        if($recursivelly && !is_null($recursion)){
            $oldrec = Calendar_Events::get_event_recursion($eventid, 'admin');
            $p = "P".$recursion['repeat'].$recursion['unit'];
            $e = DateTime::createFromFormat('d-m-Y', $recursion['end'])->format('Y-m-d');
            if($oldrec->recursion_period != $p || $oldrec->recursion_end != $e){
                Calendar_Events::delete_recursive_event($eventid, 'admin');
                return Calendar_Events::add_event($title, $content, $start, $duration, $recursion, null, $visibility_level);
            }
        }
        
        if(!is_null($recursion) && !Calendar_Events::is_recursive($eventid, 'admin'))
        {
            Calendar_Events::delete_event($eventid, 'admin');
            return Calendar_Events::add_event($title, $content, $start, $duration, $recursion, null, $visibility_level);
        }
        
        $d1 = DateTime::createFromFormat('d-m-Y H:i', $start);
        $d2 = DateTime::createFromFormat('d-m-Y H:i:s', $start);
        $title = trim($title);
        if (empty($title) || !(($d1 && $d1->format('d-m-Y H:i') == $start) || ($d2 && $d2->format('d-m-Y H:i:s') == $start))) {
            return array('success' => false, 'message' => $langNotValidInput);
        }

        $where_clause = ($recursivelly)? "WHERE source_event_id = ?d":"WHERE id = ?d";
        $startdatetimeformatted = ($recursivelly)? $d1->format('H:i'):$d1->format('Y-m-d H:i');
        $start_date_update_clause = ($recursivelly)? "start = CONCAT(date_format(start, '%Y-%m-%d '),?t), ":"start = ?t, ";
        Database::get()->query("UPDATE admin_calendar SET "
                . "title = ?s, "
                . $start_date_update_clause
                . "duration = ?t, "
                . "content = ?s, "
                . "visibility_level = ?d "
                . $where_clause,
                $title, $startdatetimeformatted, $duration, purify($content), $visibility_level, $eventid);

        Log::record(0, MODULE_ID_ADMINCALENDAR, LOG_MODIFY, array('user_id' => $uid, 'id' => $eventid,
        'title' => $title,
        'content' => ellipsize_html(canonicalize_whitespace(strip_tags($content)), 50, '+')));
        return array('success' => true, 'message' => '', 'event' => $eventid);
    }