188 lines
		
	
	
	
		
			7.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable file
		
	
	
	
	
			
		
		
	
	
			188 lines
		
	
	
	
		
			7.2 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable file
		
	
	
	
	
| <?php
 | |
| // This file is part of Moodle - http://moodle.org/
 | |
| //
 | |
| // Moodle 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 3 of the License, or
 | |
| // (at your option) any later version.
 | |
| //
 | |
| // Moodle 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 Moodle.  If not, see <http://www.gnu.org/licenses/>.
 | |
| 
 | |
| /**
 | |
|  * timetable block caps.
 | |
|  *
 | |
|  * @package    block_timetable
 | |
|  * @copyright  Raphael Dannecker <raphael.dannecker@steinbeisschule-reutlingen.de>
 | |
|  * @license    http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later
 | |
|  */
 | |
| 
 | |
| defined('MOODLE_INTERNAL') || die();
 | |
| 
 | |
| use block_timetable\timetable;
 | |
| 
 | |
| class block_timetable extends block_base {
 | |
| 
 | |
|     function init() {
 | |
|         $this->title = get_string('pluginname', 'block_timetable');
 | |
|     }
 | |
| 
 | |
|     function get_content() {
 | |
|         global $CFG, $OUTPUT, $USER, $PAGE;
 | |
| 
 | |
|         if ($this->content !== null) {
 | |
|             return $this->content;
 | |
|         }
 | |
| 
 | |
|         if (empty($this->instance)) {
 | |
|             $this->content = '';
 | |
|             return $this->content;
 | |
|         }
 | |
| 
 | |
|         $this->content = new stdClass();
 | |
|         $this->content->items = array();
 | |
|         $this->content->icons = array();
 | |
| 	$this->content->footer = '<div class="timetable_legend"><a href="javascript:M.block_timetable.view_subject()">Fächer</a>  -  <a href="javascript:M.block_timetable.view_teacher()">Lehrer</a>  -  <a href="javascript:M.block_timetable.view_room()">Räume</a></div>';
 | |
| 	$this->content->text = "";
 | |
| 
 | |
| 	/*
 | |
|         // user/index.php expect course context, so get one if page has module context.
 | |
| 	$currentcontext = $this->page->context->get_course_context(false);
 | |
| 
 | |
|         if (! empty($this->config->text)) {
 | |
|             $this->content->text = $this->config->text;
 | |
|         }
 | |
| 
 | |
|         $this->content->text = '';
 | |
|         if (empty($currentcontext)) {
 | |
|             return $this->content;
 | |
|         }
 | |
|         if ($this->page->course->id == SITEID) {
 | |
|             $this->content->text .= "site context";
 | |
| 	}
 | |
| 	 */
 | |
| //	echo var_dump($USER);
 | |
| 	$view1 = 'subject';	
 | |
| 	$view2 = 'teacher';	
 | |
|         if ($this->page->course->idnumber && $this->page->course->shortname) {
 | |
| 		$class = $this->page->course->shortname;
 | |
|             	$this->content->text .= "Stundenplan der Klasse $class<br>";
 | |
| 		$ttable = new timetable('class',$class);
 | |
| 	} elseif ($USER->department == "Lehrer" || $USER->department == "Lehrer_fvs") {
 | |
| 		$teacher = $USER->username;
 | |
| 		$teacher = str_replace("l_", "", $teacher);
 | |
| 		$teacher = str_replace("-fvs", "", $teacher);
 | |
|             	$this->content->text .= "Stundenplan von ".(substr($USER->firstname,0,1)).". {$USER->lastname}<br>";
 | |
| 		$ttable = new timetable('teacher',$teacher);
 | |
| 		$view1 = 'class';
 | |
| 		$view2 = 'subject';
 | |
| 		$this->content->footer = '<div class="timetable_legend"><a href="javascript:M.block_timetable.view_class()">Klassen</a>  -  <a href="javascript:M.block_timetable.view_subject()">Fächer</a>  -  <a href="javascript:M.block_timetable.view_room()">Räume</a></div>';
 | |
| 	} elseif ($USER->department) {
 | |
| 		$class = $USER->department;
 | |
| 		$class = str_replace("_", "/", $class);
 | |
|             	$this->content->text .= "Stundenplan der Klasse $class<br>";
 | |
| 		$ttable = new timetable('class',$class);
 | |
| 	} else {
 | |
| 		return $this->content;
 | |
| 	}
 | |
| 
 | |
| 	//$context_id = get_context_instance_by_id($course->id);
 | |
| 	//echo "Contextid = $contextid->contextlevel\n";
 | |
| 
 | |
| 	/*
 | |
| 	$numdayweek = 5 + get_config('timetable', 'saturday');
 | |
| 
 | |
| 	$date = new DateTime();
 | |
| 	$monday = new DateTime();
 | |
| 
 | |
| 	$dayofweek = $date->format('w');
 | |
| 	if ($dayofweek >= $numdayweek) {
 | |
| 		$monday->add(new DateInterval("P".(8-$dayofweek)."D"));
 | |
| 	} elseif ($dayofweek < 1) {
 | |
| 		$monday->add(new DateInterval("P1D"));
 | |
| 	} else {
 | |
| 		$monday->sub(new DateInterval("P{$dayofweek}D"));
 | |
| 	}
 | |
| 
 | |
| 	$week = $monday->format("W");
 | |
| 	$week++;
 | |
| 	$lastday = new DateTime($monday->format('Y-m-d\TH:i:sP'));
 | |
| 	$lastday->add(new DateInterval("P".($numdayweek-1)."D"));
 | |
| 	$this->content->text .= $monday->format('d.m') . " - " . $lastday->format('d.m');
 | |
| 	//$ttable = new timetable('class',$class);
 | |
| 	$ttable->read_db($week);
 | |
| 	 */
 | |
| 	//$this->content->text .= $ttable->monday->format('d.m') . " - " . $ttable->lastday->format('d.m');
 | |
| 		
 | |
| 	$jsmodule = array(
 | |
| 			'name'     => 'block_timetable',
 | |
| 			'fullpath' => '/blocks/timetable/module.js',
 | |
| 			'requires' => array()
 | |
| 		);
 | |
| 	$opts =Array();
 | |
| 	$opts['someinstancesetting'] = 1;
 | |
| 	$PAGE->requires->js_init_call('M.block_timetable.helper.init', array($opts),false,$jsmodule);
 | |
| 
 | |
| 	$this->content->text .= html_writer::start_tag('div', ['data-region' => 'calendar', 'class' => 'maincalendar']);	
 | |
| 	$this->content->text .= html_writer::start_tag('div', ['class' =>'slider', 'id'=>'timetable_frame']);	
 | |
| 	$this->content->text .= html_writer::start_tag('div', ['class' =>'slides']);	
 | |
| 	for ($i=0; $i<3; $i++) {
 | |
| 		$ttable->read_db($i);
 | |
| //		$this->content->text .= $ttable->print_navigation($i);
 | |
| 		//$this->content->text .= html_writer::start_tag('div', ['class' =>'slide', 'id'=>"slide-$i", 'data-region' => 'calendar']);	
 | |
| 		$this->content->text .= html_writer::start_tag('div', ['class' => 'slide', 'id'=>"slide-$i"]);	
 | |
| 		//$this->content->text .= $ttable->print_table($view1);
 | |
| 		$this->content->text .= $ttable->print_table($view1,$i);
 | |
| 		$this->content->text .= $ttable->print_table($view2,$i);
 | |
| 		$this->content->text .= $ttable->print_table('room',$i);
 | |
| 		$this->content->text .= html_writer::end_tag('div');
 | |
| 	}
 | |
| 	$this->content->text .= html_writer::end_tag('div');
 | |
| 	$this->content->text .= html_writer::end_tag('div');
 | |
| 	$this->content->text .= html_writer::end_tag('div');
 | |
| 
 | |
| 	/*
 | |
| 	$this->content->text .= html_writer::start_tag('div', ['data-region' => 'calendar', 'style' => 'display: none;']);	
 | |
| 	$this->content->text .= $ttable->print_table($view1);
 | |
| 	$this->content->text .= html_writer::end_tag('div');
 | |
| 	$this->content->text .= html_writer::start_tag('div', ['data-region' => 'calendar', 'style' => 'display: none;']);	
 | |
| 	$this->content->text .= $ttable->print_table($view2);
 | |
| 	$this->content->text .= html_writer::end_tag('div');
 | |
| 	$this->content->text .= html_writer::start_tag('div', ['data-region' => 'calendar', 'style' => 'displaay: none;']);	
 | |
| 	$this->content->text .= $ttable->print_table('room');
 | |
| 	$this->content->text .= html_writer::end_tag('div');
 | |
| 	$this->content->text .= html_writer::end_tag('div');
 | |
| 	 */
 | |
|         return $this->content;
 | |
|     }
 | |
| 
 | |
|     // my moodle can only have SITEID and it's redundant here, so take it away
 | |
|     public function applicable_formats() {
 | |
|         return array('all' => true,
 | |
|                      'site' => true,
 | |
|                      'site-index' => true,
 | |
|                      'course-view' => true, 
 | |
|                      'course-view-social' => false,
 | |
|                      'mod' => true, 
 | |
|                      'mod-quiz' => false);
 | |
|     }
 | |
| 
 | |
|     public function instance_allow_multiple() {
 | |
|           return true;
 | |
|     }
 | |
| 
 | |
|     function has_config() {return true;}
 | |
| 
 | |
|     public function cron() {
 | |
|             mtrace( "Hey, my cron script is running" );
 | |
|              
 | |
|                  // do something
 | |
|                   
 | |
|                       return true;
 | |
|     }
 | |
| }
 | 
