コード例 #1
0
 function definition()
 {
     global $USER, $context;
     /// Adding fields
     $mform =& $this->_form;
     $mform->addElement('hidden', 'post_form', 'addschool');
     if (optional_param('detail', 0, PARAM_INT) == 1) {
         $mform->addElement('hidden', 'detail', 1);
     }
     $mform->addElement('header', 'praxeaddschoolfieldset');
     $mform->addElement('text', 'name', get_string('schoolname', 'praxe'), array('size' => '64'));
     $mform->setType('name', PARAM_TEXT);
     $mform->addRule('name', null, 'required', null, 'client');
     $mform->addRule('name', get_string('maximumchars', '', 255), 'maxlength', 255, 'client');
     $options = array(PRAXE_SCHOOL_TYPE_1 => PRAXE_SCHOOL_TYPE_1_TEXT, PRAXE_SCHOOL_TYPE_2 => PRAXE_SCHOOL_TYPE_2_TEXT, PRAXE_SCHOOL_TYPE_3 => PRAXE_SCHOOL_TYPE_3_TEXT, PRAXE_SCHOOL_TYPE_4 => PRAXE_SCHOOL_TYPE_4_TEXT, PRAXE_SCHOOL_TYPE_5 => PRAXE_SCHOOL_TYPE_5_TEXT, PRAXE_SCHOOL_TYPE_6 => PRAXE_SCHOOL_TYPE_6_TEXT);
     $mform->addElement('select', 'type', get_string('schooltype', 'praxe'), $options);
     $mform->addElement('text', 'street', get_string('street', 'praxe'), array('size' => '64'));
     $mform->setType('street', PARAM_TEXT);
     $mform->addRule('street', null, 'required', null, 'client');
     $mform->addRule('street', get_string('maximumchars', '', 100), 'maxlength', 100, 'client');
     $mform->addElement('text', 'city', get_string('city', 'praxe'), array('size' => '64'));
     $mform->setType('city', PARAM_TEXT);
     $mform->addRule('city', null, 'required', null, 'client');
     $mform->addRule('city', get_string('maximumchars', '', 100), 'maxlength', 100, 'client');
     $mform->addElement('text', 'zip', get_string('zipcode', 'praxe'), array('size' => '20'));
     $mform->setType('zip', PARAM_TEXT);
     $mform->addRule('zip', null, 'numeric', null, 'client');
     $mform->addRule('zip', get_string('maximumchars', '', 5), 'maxlength', 5, 'client');
     $mform->addElement('text', 'email', get_string('email', 'praxe'), array('size' => '20'));
     $mform->setType('email', PARAM_TEXT);
     $mform->addRule('email', null, 'email', null, 'client');
     $mform->addRule('email', get_string('maximumchars', '', 100), 'maxlength', 100, 'client');
     $mform->addElement('text', 'phone', get_string('phone', 'praxe'), array('size' => '20'));
     $mform->setType('phone', PARAM_TEXT);
     $mform->addRule('phone', get_string('maximumchars', '', 100), 'maxlength', 100, 'client');
     $mform->addElement('text', 'website', get_string('website', 'praxe'), array('size' => '20'));
     $mform->setType('website', PARAM_TEXT);
     $mform->addRule('website', get_string('maximumchars', '', 100), 'maxlength', 100, 'client');
     if (has_capability('mod/praxe:manageallincourse', $context)) {
         //TODO - nacist uzivatele z cohort EXTHEADM
         praxe_get_cohort_members('EXTHEADM');
         $headms = praxe_get_cohort_members(PRAXE_COHORT_HEADMASTERS);
         if ($headms) {
             $options = array(0 => get_string('noselection', 'praxe'));
             foreach ($headms as $h) {
                 $options[$h->id] = s($h->firstname) . " " . s($h->lastname);
             }
             $mform->addElement('select', 'headmaster', get_string('headmaster', 'praxe'), $options);
         } else {
             $mform->addElement('hidden', 'headmaster', 0);
             $mform->addElement('static', 'static_headm', get_string('headmaster', 'praxe'), get_string('noselection', 'praxe'));
         }
     } elseif (praxe_has_capability('beheadmaster')) {
         $mform->addElement('hidden', 'headmaster', $USER->id);
     }
     $this->add_action_buttons(true);
 }
コード例 #2
0
 /**
  * It is used if the edit data required. Set values of form elements and add hidden values for edit.
  * @param object $data - object with form data
  */
 public function set_form_to_edit($data)
 {
     $mform =& $this->_form;
     foreach ((array) $data as $k => $v) {
         if ($mform->elementExists($k)) {
             $mform->setDefault($k, s($v), true);
         }
     }
     $actualyear = (int) date('Y', time());
     $freeze = array();
     if (!praxe_is_location_fully_editable($data->id)) {
         $freeze = array('studyfield', 'isced', 'year', 'term', 'active');
     }
     if (!praxe_has_capability('assignteachertolocation')) {
         $freeze[] = 'teacher';
     }
     $mform->freeze($freeze);
     $mform->addElement('hidden', 'edit', 'true');
     $mform->addElement('hidden', 'locationid', $data->id);
 }
コード例 #3
0
 /**
  *
  * @param object $rec - object of praxe record to be shown
  * @return string
  */
 public static function show_record_detail($rec)
 {
     global $mode, $USER, $CFG, $OUTPUT;
     /// left top table ///
     $tab1 = new html_table();
     $tab1->align = array('right', 'left');
     //$tab1->width = '300px';
     $tab1->attributes['class'] = "floatinfotable left twocolstable";
     $school = array($rec->name);
     if (strlen(trim($rec->city))) {
         $school[] = $rec->city;
     }
     if (strlen(trim($rec->street))) {
         $school[] = $rec->street;
     }
     if (strlen(trim($rec->phone))) {
         $school[] = $rec->phone;
     }
     if (strlen(trim($rec->email))) {
         $school[] = $rec->email;
     }
     $tab1->data[] = array(get_string('school', 'praxe') . ":", format_string(implode(', ', $school)));
     $tab1->data[] = array(get_string('subject', 'praxe') . ":", $rec->subject);
     if ($rec->teacherid && $USER->id != $rec->teacherid) {
         $tab1->data[] = array(get_string('teacher', 'praxe') . ":", praxe_get_user_fullname((object) array('id' => $rec->teacherid, 'firstname' => $rec->teacher_firstname, 'lastname' => $rec->teacher_lastname)));
     }
     /// right top table ///
     $tab2 = new html_table();
     $tab2->align = array('right', 'left');
     //$tab2->width = '350px';
     $tab2->attributes['class'] = "floatinfotable left twocolstable last";
     $tab2->data[] = array(get_string('student', 'praxe') . ":", praxe_get_user_fullname($rec->student));
     $tab2->data[] = array(get_string('status', 'praxe') . ":", praxe_get_status_info($rec->status));
     if ($rec->status == PRAXE_STATUS_ASSIGNED) {
         $tab2->data[] = array(get_string('action') . ':', self::confirm_location_form($rec->id));
         return html_writer::table($tab1) . html_writer::table($tab2) . '<div class="clearer"></div>';
     }
     $return = html_writer::table($tab1) . html_writer::table($tab2) . '<div class="clearer"></div>';
     $return .= "<h3>" . get_string('schedule', 'praxe') . "</h3>";
     $schedules = praxe_get_schedules($rec->id);
     if (!$schedules) {
         return $return . get_string('no_schedule_items', 'praxe');
     }
     $sched = array();
     $cols = array();
     foreach ($schedules as $sch) {
         if (!isset($sched[date("j_m", $sch->timestart)])) {
             $sched[date("j_m", $sch->timestart)] = array('date' => $sch->timestart);
         }
         $sched[date("j_m", $sch->timestart)][$sch->lesnumber] = $sch;
         if (!in_array($sch->lesnumber, $cols)) {
             $cols[] = $sch->lesnumber;
         }
     }
     /// schedule table ///
     $tab3 = new html_table();
     if (count($cols)) {
         sort($cols);
     }
     $tab3->head = $cols;
     array_unshift($tab3->head, get_string('date'));
     for ($i = 1; $i < count($tab3->head); $i++) {
         if (is_null($tab3->head[$i])) {
             $tab3->head[$i] = "---";
         } else {
             $tab3->head[$i] = s($tab3->head[$i]) . "." . get_string('lesson', 'praxe');
         }
     }
     $cellf = new html_table_cell();
     $cellf->attributes['class'] = "header first";
     $cellf->header = true;
     $paramsToAssing = array('post_form' => 'assigntoinspection', 'sesskey' => sesskey(), 'submitbutton' => 'true', 'userid' => $USER->id);
     $paramsToRemAssing = array('post_form' => 'removefrominspection', 'sesskey' => sesskey(), 'submitbutton' => 'true');
     foreach ($sched as $row) {
         $datetd = userdate($row['date'], get_string('strftimeday', 'praxe')) . "<br />" . userdate($row['date'], get_string('strftimedateshort'));
         $cell = clone $cellf;
         $cell->text = $datetd;
         $cells = array($cell);
         foreach ($cols as $k => $c) {
             if (isset($row[$c])) {
                 $item = userdate($row[$c]->timestart, get_string('strftimetime')) . " - " . userdate($row[$c]->timeend, get_string('strftimetime')) . "<br>" . s($row[$c]->lessubject) . "<br>" . get_string('schoolroom', 'praxe') . ": " . s($row[$c]->schoolroom);
                 $item = "<div>" . $OUTPUT->action_link(praxe_get_base_url(array("mode" => $mode, "recordid" => $rec->id, "scheduleid" => $row[$c]->id)), $item, null, array('title' => get_string('detail', 'praxe'))) . "</div>";
                 if (count($row[$c]->inspectors)) {
                     foreach ($row[$c]->inspectors as $insp) {
                         $item .= "<div class=\"inspector right\">" . $OUTPUT->render(new pix_icon('icon_inspect', get_string('inspection', 'praxe'), 'praxe')) . "&nbsp;" . praxe_get_user_fullname($insp);
                         /// remove assinging from item action ///
                         if ($USER->id == $insp->id || praxe_has_capability('manageallincourse')) {
                             $params = $paramsToRemAssing;
                             $params['scheduleid'] = $row[$c]->id;
                             $params['inspid'] = $insp->id;
                             $item .= $OUTPUT->action_icon(praxe_get_base_url($params), new pix_icon('t/delete', get_string('removeinspection', 'praxe')));
                         }
                         $item .= "</div>";
                     }
                 } else {
                     if (praxe_has_capability('assignselftoinspection')) {
                         $params = $paramsToAssing;
                         $params['scheduleid'] = $row[$c]->id;
                         /// assign inspector button ///
                         $item .= "<div class=\"inspector right\">" . $OUTPUT->single_button(praxe_get_base_url($params), get_string('gotoinspection', 'praxe'), 'post') . '</div>';
                     }
                 }
                 $cells[] = new html_table_cell($item);
             } else {
                 $cells[] = new html_table_cell('&nbsp;');
             }
         }
         $tab3->data[] = new html_table_row($cells);
     }
     return $return . html_writer::table($tab3);
 }
コード例 #4
0
ファイル: post.php プロジェクト: jerab/moodle-mod-praxe
         print_error('notallowedaction', 'praxe');
     }
     if ($DB->delete_records('praxe_schedule_inspections', (array) $post)) {
         redirect(praxe_get_base_url(array("mode" => $tab_modes['editteacher'][PRAXE_TAB_EDITTEACHER_HOME], "recordid" => $sch->record)), get_string('removed_from_inspection', 'praxe'));
     }
     break;
 case 'confirmlocation':
     /// confirmation location by external teacher or teacher
     $recid = optional_param('recordid', 0, PARAM_INT);
     $record = praxe_get_record($recid);
     $refuse = optional_param('submitrefuse', null, PARAM_TEXT);
     $confirm = optional_param('submitconfirm', null, PARAM_TEXT);
     if (!$record || !($refuse || $confirm)) {
         print_error('notallowedaction', 'praxe');
     }
     if (!praxe_has_capability('confirmlocation') && !(praxe_has_capability('confirmownlocation') && $record->teacherid == $USER->id)) {
         print_error('notallowedaction', 'praxe');
     }
     $post->id = $record->id;
     $msg = '';
     if (!is_null($refuse)) {
         $post->status = PRAXE_STATUS_REFUSED;
         $msg = get_string('you_refused_location', 'praxe');
     } else {
         if (!is_null($confirm)) {
             $post->status = PRAXE_STATUS_CONFIRMED;
             $msg = get_string('you_confirmed_location', 'praxe');
         }
     }
     if ($DB->update_record('praxe_records', $post) && false) {
         if ($post->status = PRAXE_STATUS_CONFIRMED) {
コード例 #5
0
ファイル: tabs.php プロジェクト: jerab/moodle-mod-praxe
         $options[0] = get_string('all');
         foreach ($schools as $sch) {
             $options[$sch->id] = $sch->name . "({$sch->city}, {$sch->street})";
         }
         $params = array('mode' => $mode);
         $sel = new single_select(praxe_get_base_url($params), 'schoolid', $options, $viewschool, null, 'praxepop_praxeschoolselect');
         $sel->label = get_string('school', 'praxe');
         $tab_content .= $OUTPUT->render($sel);
     }
     $url = $CFG->wwwroot . '/mod/praxe/view.php?id=' . $cm->id . '&amp;schoolid=' . $viewschool;
     $subtabrows[] = new tabobject(PRAXE_TAB_EDITTEACHER_VIEWSCHOOL, $url . '&amp;mode=' . $tab_modes['editteacher'][PRAXE_TAB_EDITTEACHER_SCHOOLS], get_string('school_detail', 'praxe'));
     $subtabrows[] = new tabobject(PRAXE_TAB_EDITTEACHER_TEACHERS, $url . '&amp;mode=' . $tab_modes['editteacher'][PRAXE_TAB_EDITTEACHER_TEACHERS], get_string('teachers', 'praxe'));
     $subtabrows[] = new tabobject(PRAXE_TAB_EDITTEACHER_LOCATIONS, $url . '&amp;mode=' . $tab_modes['editteacher'][PRAXE_TAB_EDITTEACHER_LOCATIONS], get_string('locations', 'praxe'));
     if (!empty($viewschool)) {
         //$subtabrows[] = new tabobject(PRAXE_TAB_EDITTEACHER_VIEWSCHOOL, $url.'&amp;mode='.$tab_modes['editteacher'][PRAXE_TAB_EDITTEACHER_SCHOOLS], get_string('school_info', 'praxe'));
         if (praxe_has_capability('manageallincourse')) {
             $subtabrows[] = new tabobject(PRAXE_TAB_EDITTEACHER_EDITSCHOOL, $url . '&amp;mode=' . $tab_modes['editteacher'][PRAXE_TAB_EDITTEACHER_EDITSCHOOL], get_string('editschool', 'praxe'));
             //$subtabrows[] = new tabobject(PRAXE_TAB_EDITTEACHER_TEACHERS, $url.'&amp;mode='.$tab_modes['editteacher'][PRAXE_TAB_EDITTEACHER_TEACHERS], get_string('teachers', 'praxe'));
             $subtabrows[] = new tabobject(PRAXE_TAB_EDITTEACHER_ASSIGNTEACHERS, $url . '&amp;mode=' . $tab_modes['editteacher'][PRAXE_TAB_EDITTEACHER_ASSIGNTEACHERS], get_string('assignteachers', 'praxe'));
             $subtabrows[] = new tabobject(PRAXE_TAB_EDITTEACHER_ADDLOCATION, $url . '&amp;mode=' . $tab_modes['editteacher'][PRAXE_TAB_EDITTEACHER_ADDLOCATION], get_string('addlocation', 'praxe'));
         }
     }
     if ($tab == PRAXE_TAB_EDITTEACHER_SCHOOLS) {
         $activated[] = PRAXE_TAB_EDITTEACHER_VIEWSCHOOL;
     }
 }
 if ($tab == PRAXE_TAB_EDITTEACHER_LOCATIONS) {
     $options = array("0" => get_string('all'), "1" => get_string('actual', 'praxe'));
     $params = array('mode' => $mode);
     if (!is_null($viewschool)) {
         $params['schoolid'] = (int) $viewschool;
コード例 #6
0
$confirm = optional_param('confirmsubmitbutton', null, PARAM_ALPHA);
if (!is_null($cancel)) {
    if ($praxeaction == 'deleteschedule') {
        redirect(praxe_get_base_url(array('mode' => 'schedule')));
    }
    redirect(praxe_get_base_url());
}
$echo = '<div class="center">';
switch ($praxeaction) {
    case 'deleteschedule':
        $scheduleid = optional_param('scheduleid', null, PARAM_INT);
        $schedule = $DB->get_record('praxe_schedules', array('id' => $scheduleid));
        if (!$schedule) {
            print_error('notallowedaction', 'praxe');
        }
        $editable = praxe_has_capability('editstudentschedule') && $DB->get_record('praxe_records', array('id' => $schedule->record, 'student' => $USER->id)) || praxe_has_capability('manageallincourse');
        if (!$editable) {
            print_error('notallowedaction', 'praxe');
        }
        if (is_null($confirm)) {
            $echo .= '<div class="before_form">' . get_string('realy_delete_schedule', 'praxe') . '</div>';
            $table = new html_table();
            $yc = $schedule->yearclass;
            if ($schedule->yearclass >= 6 && $schedule->yearclass <= 9) {
                $yc = PRAXE_ISCED_2_TEXT . " {$yc}.";
            } else {
                if ($schedule->yearclass >= 10) {
                    $yc = PRAXE_ISCED_3_TEXT . ' ' . ($yc - 9) . ".";
                }
            }
            $table->head = array(get_string('date'), get_string('lesson_number', 'praxe'), get_string('time'), get_string('yearclass', 'praxe'), get_string('schoolroom', 'praxe'), get_string('subject', 'praxe'));
コード例 #7
0
ファイル: view_headm.php プロジェクト: jerab/moodle-mod-praxe
 /**
  *
  * @param array $schools - array of schools objects to be displayed
  * @param array $editlinkparams[optional] - default parameters to url that are always added: id=$cm->id, schoolid=id of school.<br>
  * Extra parameters to be added must be in array format as nameOfParameter=>value
  * @param array $aSort[optional] - used sorting in actual list of schools (name, type) - values (ASC, DESC)
  * Items must be in array format as nameOfParameter=>value
  * @return string
  */
 public static function show_schools($schools, $editlinkparams = array(), $aSort = array())
 {
     global $USER, $OUTPUT;
     $baseLink = praxe_get_base_url(array('mode' => 'schools'));
     $table = new html_table();
     $strname = get_string('schoolname', 'praxe');
     if (isset($aSort['name'])) {
         $toLink = $aSort['name'] == 'ASC' ? 'DESC' : 'ASC';
         $strname = $OUTPUT->action_link($baseLink . '&amp;sname=' . $toLink, $strname);
         $strname .= $OUTPUT->pix_icon('t/sort_' . strtolower($aSort['name']), $aSort['name']);
     } else {
         $strname = $OUTPUT->action_link($baseLink . '&amp;sname=ASC', $strname);
     }
     $strtype = get_string('schooltype', 'praxe');
     if (isset($aSort['type'])) {
         $toLink = $aSort['type'] == 'ASC' ? 'DESC' : 'ASC';
         $strtype = $OUTPUT->action_link($baseLink . '&amp;stype=' . $toLink, $strtype);
         $strtype .= $OUTPUT->pix_icon('t/sort_' . strtolower($aSort['type']), $aSort['type']);
     } else {
         $strtype = $OUTPUT->action_link($baseLink . '&amp;stype=ASC', $strtype);
     }
     $straddress = get_string('address', 'praxe');
     $strcontact = get_string('contact', 'praxe');
     $table->head = array($strname, $strtype, $straddress, $strcontact);
     $table->align = array('left', 'left', 'left', 'left');
     $params = array();
     foreach ($editlinkparams as $name => $val) {
         $params[s($name)] = s($val);
     }
     $baseLink = praxe_get_base_url($params);
     foreach ($schools as $sch) {
         $address = s($sch->street) . ', ' . s($sch->zip) . '  ' . s($sch->city);
         $contact = array();
         if (!empty($sch->email)) {
             $contact[] = s($sch->email);
         }
         if (!empty($sch->phone)) {
             $contact[] = s($sch->phone);
         }
         if (!empty($sch->website)) {
             $contact[] = s($sch->website);
         }
         $contact = html_writer::tag('p', implode("<br>", $contact));
         $schooltype = constant('PRAXE_SCHOOL_TYPE_' . (int) $sch->type . '_TEXT');
         $row = array(s($sch->name), $schooltype, $address, $contact);
         if (praxe_has_capability('editanyschool') || praxe_has_capability('editownschool') && $sch->headmaster == $USER->id) {
             $stredit = get_string('editschool', 'praxe');
             $row[] = $OUTPUT->action_icon($baseLink . '&amp;schoolid=' . $sch->id, new pix_icon('t/edit', $stredit));
         }
         $table->data[] = $row;
     }
     if (isset($stredit)) {
         $table->head[] = $stredit;
         $table->align[] = 'center';
     }
     return html_writer::table($table);
 }
コード例 #8
0
 public function show_schedule($schedules, $boolReturn = true, $editlinks = array())
 {
     global $CFG, $OUTPUT;
     if (!$schedules) {
         $ret = get_string('no_schedule_items', 'praxe');
         if ($boolReturn) {
             return $ret;
         } else {
             $this->content .= $ret;
             return true;
         }
     }
     $table = new html_table();
     $table->head = array(get_string('date'), get_string('lesson_number', 'praxe'), get_string('time'), get_string('yearclass', 'praxe'), get_string('schoolroom', 'praxe'), get_string('subject', 'praxe'), get_string('lesson_theme', 'praxe'), get_string('edit'), get_string('inspection', 'praxe'));
     $table->align = array('left', 'center', 'center', 'center', 'center', 'left', 'left', 'center', 'center');
     $editable = praxe_has_capability('editstudentschedule') || praxe_has_capability('manageallincourse');
     $params = $editlinks;
     $delparams = array('praxeaction' => 'deleteschedule');
     foreach ($schedules as $item) {
         if (is_null($item->lesnumber)) {
             $item->lesnumber = "---";
         } else {
             $item->lesnumber .= ".";
         }
         $row = array(userdate((int) $item->timestart, get_string('strftimedateshort')), $item->lesnumber, userdate((int) $item->timestart, "%H:%M") . ' - ' . userdate((int) $item->timeend, "%H:%M"), praxe_get_yearclass($item->yearclass), s($item->schoolroom), s($item->lessubject), format_text($item->lestheme));
         if ($editable && $item->timestart - PRAXE_TIME_TO_EDIT_SCHEDULE > time()) {
             $params['scheduleid'] = $item->id;
             $delparams['scheduleid'] = $item->id;
             $row[] = $OUTPUT->action_icon(praxe_get_base_url($params), new pix_icon('t/edit', get_string('edit'))) . $OUTPUT->action_icon(praxe_get_base_url($delparams), new pix_icon('t/delete', get_string('delete')));
         } else {
             $row[] = "---";
         }
         if (count($item->inspectors)) {
             $ins = "";
             foreach ($item->inspectors as $insp) {
                 $ins .= "<div class=\"inspector right\">" . $OUTPUT->render(new pix_icon('icon_inspect', get_string('inspection', 'praxe'), 'praxe')) . "&nbsp;" . praxe_get_user_fullname($insp) . "</div>";
             }
             $row[] = $ins;
         } else {
             $row[] = "&nbsp;";
         }
         $table->data[] = $row;
     }
     if ($boolReturn) {
         return html_writer::table($table);
     } else {
         $this->content .= html_writer::table($table);
         return true;
     }
 }