1de76d2a4SMichael Klier<?php 2de76d2a4SMichael Klier/** 3*f04822b5SNiko Spindler * DokuWiki Syntax Plugin WikiCalendar-ng 4de76d2a4SMichael Klier * 5de76d2a4SMichael Klier * @license GPL 2 (http://www.gnu.org/licenses/gpl.html) 6de76d2a4SMichael Klier * @author Michael Klier <chi@chimeric.de> 7*f04822b5SNiko Spindler * @edited Nick Spindler <n1ck@gmx.at> 8de76d2a4SMichael Klier */ 9de76d2a4SMichael Klier 10de76d2a4SMichael Klierif(!defined('DOKU_INC')) define('DOKU_INC',realpath(dirname(__FILE__).'/../../').'/'); 11de76d2a4SMichael Klierif(!defined('DOKU_PLUGIN')) define('DOKU_PLUGIN',DOKU_INC.'lib/plugins/'); 12de76d2a4SMichael Klierrequire_once(DOKU_PLUGIN.'syntax.php'); 13de76d2a4SMichael Klier 14de76d2a4SMichael Klier/** 15de76d2a4SMichael Klier * All DokuWiki plugins to extend the parser/rendering mechanism 16de76d2a4SMichael Klier * need to inherit from this class 17de76d2a4SMichael Klier */ 18de76d2a4SMichael Klierclass syntax_plugin_wikicalendar extends DokuWiki_Syntax_Plugin { 19de76d2a4SMichael Klier 20de76d2a4SMichael Klier /** 21de76d2a4SMichael Klier * namespace of the calendar 22de76d2a4SMichael Klier */ 23de76d2a4SMichael Klier var $calendar_ns = ''; 24de76d2a4SMichael Klier 25de76d2a4SMichael Klier /** 26de76d2a4SMichael Klier * namespace of the current viewed month 27de76d2a4SMichael Klier */ 28de76d2a4SMichael Klier var $month_ns = ''; 29de76d2a4SMichael Klier 30de76d2a4SMichael Klier /** 31de76d2a4SMichael Klier * indicator if first week of the month has been generated 32de76d2a4SMichael Klier */ 33de76d2a4SMichael Klier var $firstWeek = false; 34de76d2a4SMichael Klier 35de76d2a4SMichael Klier /** 36de76d2a4SMichael Klier * array with localisations of weekdays 37de76d2a4SMichael Klier */ 38de76d2a4SMichael Klier var $langDays = array(); 39de76d2a4SMichael Klier 40de76d2a4SMichael Klier /** 41de76d2a4SMichael Klier * array with localistaions of month 42de76d2a4SMichael Klier */ 43de76d2a4SMichael Klier var $langMonth = array(); 44de76d2a4SMichael Klier 45de76d2a4SMichael Klier /** 46de76d2a4SMichael Klier * the current date 47de76d2a4SMichael Klier */ 48de76d2a4SMichael Klier var $curDate = array(); 49de76d2a4SMichael Klier 50de76d2a4SMichael Klier /** 51de76d2a4SMichael Klier * the month to show 52de76d2a4SMichael Klier */ 53de76d2a4SMichael Klier var $showMonth = ''; 54de76d2a4SMichael Klier 55de76d2a4SMichael Klier /** 56de76d2a4SMichael Klier * the year to show 57de76d2a4SMichael Klier */ 58de76d2a4SMichael Klier var $showYear = ''; 59de76d2a4SMichael Klier 60de76d2a4SMichael Klier /** 61de76d2a4SMichael Klier * the global timestamp for date-operations 62de76d2a4SMichael Klier */ 63de76d2a4SMichael Klier var $gTimestamp = ''; 64de76d2a4SMichael Klier 65de76d2a4SMichael Klier /** 66de76d2a4SMichael Klier * number days of the current month 67de76d2a4SMichael Klier */ 68de76d2a4SMichael Klier var $numDays = ''; 69de76d2a4SMichael Klier 70de76d2a4SMichael Klier /** 71de76d2a4SMichael Klier * date-date to generate the calendar 72de76d2a4SMichael Klier */ 73de76d2a4SMichael Klier var $viewDate = array(); 74de76d2a4SMichael Klier 75de76d2a4SMichael Klier /** 76de76d2a4SMichael Klier * return some info 77de76d2a4SMichael Klier */ 78de76d2a4SMichael Klier function getInfo(){ 79de76d2a4SMichael Klier return array( 80de76d2a4SMichael Klier 'author' => 'Michael Klier (chi)', 81de76d2a4SMichael Klier 'email' => 'chi@chimeric.de', 82de76d2a4SMichael Klier 'date' => @file_get_contents(DOKU_PLUGIN.'wikicalendar/VERSION'), 83de76d2a4SMichael Klier 'name' => 'WikiCalendar Plugin', 84de76d2a4SMichael Klier 'desc' => 'Implements a simple Calendar with links to wikipages.', 85de76d2a4SMichael Klier 'url' => 'http://dokuwiki.org/plugin:wikicalendar' 86de76d2a4SMichael Klier ); 87de76d2a4SMichael Klier } 88de76d2a4SMichael Klier 89de76d2a4SMichael Klier /** 90de76d2a4SMichael Klier * Some Information first. 91de76d2a4SMichael Klier */ 92de76d2a4SMichael Klier function getType() { return 'substition'; } 93de76d2a4SMichael Klier function getPType() { return 'block'; } 94de76d2a4SMichael Klier function getSort() { return 125; } 95de76d2a4SMichael Klier 96de76d2a4SMichael Klier /** 97de76d2a4SMichael Klier * Connect pattern to lexer 98de76d2a4SMichael Klier */ 99de76d2a4SMichael Klier function connectTo($mode) { 100de76d2a4SMichael Klier $this->Lexer->addSpecialPattern('{{cal>.+?}}',$mode,'plugin_wikicalendar'); 101de76d2a4SMichael Klier } 102de76d2a4SMichael Klier 103de76d2a4SMichael Klier /** 104de76d2a4SMichael Klier * Handle the match 105de76d2a4SMichael Klier */ 106*f04822b5SNiko Spindler function handle($match, $state, $pos, Doku_Handler $handler){ 107de76d2a4SMichael Klier $match = substr($match,6,-2); 108de76d2a4SMichael Klier return array($match); 109de76d2a4SMichael Klier } 110de76d2a4SMichael Klier 111de76d2a4SMichael Klier /** 112de76d2a4SMichael Klier * Create output 113de76d2a4SMichael Klier */ 114*f04822b5SNiko Spindler function render($mode, Doku_Renderer $renderer, $data) { 115de76d2a4SMichael Klier global $ID; 1166d279233SMichael Klier global $conf; 117de76d2a4SMichael Klier 118db91b7a2SMichael Klier if($mode == 'xhtml'){ 119db91b7a2SMichael Klier 120db91b7a2SMichael Klier $tz = date_default_timezone_get(); 121db91b7a2SMichael Klier if($this->getConf('timezone')) { 122db91b7a2SMichael Klier date_default_timezone_set($this->getConf('timezone')); 123db91b7a2SMichael Klier } 124db91b7a2SMichael Klier 125de76d2a4SMichael Klier // define some variables first 126de76d2a4SMichael Klier $this->calendar_ns = ($data[0]) ? $data[0] : $ID; 127de76d2a4SMichael Klier $this->langDays = $this->getLang('days'); 128de76d2a4SMichael Klier $this->langMonth = $this->getLang('month'); 129de76d2a4SMichael Klier $this->curDate = getdate(time()); 130*f04822b5SNiko Spindler $requestMonth = $_REQUEST['plugin_wikicalendar_month'] ?? null; 131*f04822b5SNiko Spindler $requestYear = $_REQUEST['plugin_wikicalendar_year'] ?? null; 132*f04822b5SNiko Spindler $this->showMonth = is_numeric($requestMonth) ? $requestMonth : $this->curDate['mon']; 133*f04822b5SNiko Spindler $this->showYear = is_numeric($requestYear) ? $requestYear : $this->curDate['year']; 134de76d2a4SMichael Klier $this->gTimestamp = mktime(0,0,0,$this->showMonth,1,$this->showYear); 135de76d2a4SMichael Klier $this->numDays = date('t',$this->gTimestamp); 136de76d2a4SMichael Klier $this->viewDate = getdate($this->gTimestamp); 137de76d2a4SMichael Klier $this->today = ($this->viewDate['mon'] == $this->curDate['mon'] && 138de76d2a4SMichael Klier $this->viewDate['year'] == $this->curDate['year']) ? 139de76d2a4SMichael Klier $this->curDate['mday'] : null; 1406d279233SMichael Klier 1416d279233SMichael Klier // if month directory exists we keep the old scheme 1426d279233SMichael Klier if(is_dir($conf['datadir'].'/'.str_replace(':','/',$this->calendar_ns.':'.$this->showYear.':'.$this->showMonth))) { 143de76d2a4SMichael Klier $this->month_ns = $this->calendar_ns.':'.$this->showYear.':'.$this->showMonth; 1446d279233SMichael Klier } else { 1456d279233SMichael Klier if($this->showMonth < 10) { 1466d279233SMichael Klier $this->month_ns = $this->calendar_ns.':'.$this->showYear.':0'.$this->showMonth; 1476d279233SMichael Klier } else { 1486d279233SMichael Klier $this->month_ns = $this->calendar_ns.':'.$this->showYear.':'.$this->showMonth; 1496d279233SMichael Klier } 1506d279233SMichael Klier } 1516d279233SMichael Klier 152*f04822b5SNiko Spindler $this->MonthStart = ($this->viewDate['wday'] == 0) ? 7 : $this->viewDate['wday']; 153180fbbb2SMichael Klier if($this->MonthStart == 7 && $this->getConf('weekstart') == 'Sunday') { 154180fbbb2SMichael Klier $this->MonthStart = 0; 155180fbbb2SMichael Klier } 156de76d2a4SMichael Klier 157de76d2a4SMichael Klier // turn off caching 158de76d2a4SMichael Klier $renderer->info['cache'] = false; 159de76d2a4SMichael Klier 160de76d2a4SMichael Klier $renderer->doc .= '<div class="plugin_wikicalendar">' . DOKU_LF; 161de76d2a4SMichael Klier $renderer->doc .= $this->_month_xhtml(); 162de76d2a4SMichael Klier $renderer->doc .= $this->_form_go2(); 163de76d2a4SMichael Klier $renderer->doc .= '</div>' . DOKU_LF; 164de76d2a4SMichael Klier 165db91b7a2SMichael Klier date_default_timezone_set($tz); 166de76d2a4SMichael Klier return true; 167de76d2a4SMichael Klier } 168db91b7a2SMichael Klier 169de76d2a4SMichael Klier return false; 170de76d2a4SMichael Klier } 171de76d2a4SMichael Klier 172de76d2a4SMichael Klier /** 173de76d2a4SMichael Klier * Renders the Calendar (month-view) 174de76d2a4SMichael Klier * 175de76d2a4SMichael Klier * @author Michael Klier <chi@chimeric.de> 176de76d2a4SMichael Klier */ 177de76d2a4SMichael Klier function _month_xhtml() { 178de76d2a4SMichael Klier global $ID; 179de76d2a4SMichael Klier 180*f04822b5SNiko Spindler $out = ''; 181*f04822b5SNiko Spindler $wd = 0; 182*f04822b5SNiko Spindler $this->firstWeek = false; 183*f04822b5SNiko Spindler 184de76d2a4SMichael Klier $script = script(); 185de76d2a4SMichael Klier 186de76d2a4SMichael Klier $prevMonth = ($this->showMonth-1 > 0) ? ($this->showMonth-1) : 12; 187de76d2a4SMichael Klier $nextMonth = ($this->showMonth+1 < 13) ? ($this->showMonth+1) : 1; 188de76d2a4SMichael Klier 189de76d2a4SMichael Klier switch(true) { 190de76d2a4SMichael Klier case($prevMonth == 12): 191de76d2a4SMichael Klier $prevYear = ($this->showYear-1); 192de76d2a4SMichael Klier $nextYear = $this->showYear; 193de76d2a4SMichael Klier break; 194de76d2a4SMichael Klier case($nextMonth == 1): 195de76d2a4SMichael Klier $nextYear = ($this->showYear+1); 196de76d2a4SMichael Klier $prevYear = $this->showYear; 197de76d2a4SMichael Klier break; 198de76d2a4SMichael Klier default: 199de76d2a4SMichael Klier $prevYear = $this->showYear; 200de76d2a4SMichael Klier $nextYear = $this->showYear; 201de76d2a4SMichael Klier break; 202de76d2a4SMichael Klier } 203de76d2a4SMichael Klier 204de76d2a4SMichael Klier // create calendar-header 205de76d2a4SMichael Klier $out .= <<<CALHEAD 206de76d2a4SMichael Klier<table class="plugin_wikicalendar"> 207de76d2a4SMichael Klier <tr> 208de76d2a4SMichael Klier <th class="month"> 209de76d2a4SMichael Klier <form action="{$script}" method="post" class="prevnext"> 210de76d2a4SMichael Klier <input type="hidden" name="id" value="{$ID}" /> 211de76d2a4SMichael Klier <input type="hidden" name="plugin_wikicalendar_year" value="{$prevYear}" /> 212de76d2a4SMichael Klier <input type="hidden" name="plugin_wikicalendar_month" value="{$prevMonth}" /> 213de76d2a4SMichael Klier <input type="submit" class="btn_prev_month" name="submit" value="←" accesskey="P" title="{$this->langMonth[$prevMonth]} {$prevYear}" /> 214de76d2a4SMichael Klier </form> 215de76d2a4SMichael Klier </th> 216de76d2a4SMichael Klier <th class="blank"> </th> 217de76d2a4SMichael Klier <th class="blank"> </th> 218de76d2a4SMichael Klier <th class="month">{$this->langMonth[$this->viewDate['mon']]}<br />{$this->showYear}<br /></th> 219de76d2a4SMichael Klier <th class="blank"> </th> 220de76d2a4SMichael Klier <th class="blank"> </th> 221de76d2a4SMichael Klier <th class="month"> 222de76d2a4SMichael Klier <form action="{$script}" method="post" class="prevnext"> 223de76d2a4SMichael Klier <input type="hidden" name="id" value="{$ID}" /> 224de76d2a4SMichael Klier <input type="hidden" name="plugin_wikicalendar_year" value="{$nextYear}" /> 225de76d2a4SMichael Klier <input type="hidden" name="plugin_wikicalendar_month" value="{$nextMonth}" /> 226de76d2a4SMichael Klier <input type="submit" class="btn_next_month" name="submit" value="→" accesskey="N" title="{$this->langMonth[$nextMonth]} {$nextYear}" /> 227de76d2a4SMichael Klier </form> 228de76d2a4SMichael Klier </th> 229de76d2a4SMichael Klier </tr> 230de76d2a4SMichael KlierCALHEAD; 231de76d2a4SMichael Klier 232de76d2a4SMichael Klier // create calendar weekday-headers 233de76d2a4SMichael Klier $out .= "<tr>"; 2345d6390e4SMichael Klier if($this->getConf('weekstart') == 'Sunday') { 2355d6390e4SMichael Klier $last = array_pop($this->langDays); 2365d6390e4SMichael Klier array_unshift($this->langDays, $last); 2375d6390e4SMichael Klier } 238de76d2a4SMichael Klier foreach($this->langDays as $day) { 239de76d2a4SMichael Klier $out .= '<td class="weekday">'.$day.'</td>'; 240de76d2a4SMichael Klier } 241de76d2a4SMichael Klier $out .= "</tr>\n"; 242de76d2a4SMichael Klier 243de76d2a4SMichael Klier // create calendar-body 244de76d2a4SMichael Klier for($i=1;$i<=$this->numDays;$i++) { 245de76d2a4SMichael Klier $day = $i; 2466d279233SMichael Klier //set day-wikipage - use leading zeros on new pages 2476d279233SMichael Klier if($day < 10) { 2486d279233SMichael Klier if(page_exists($this->month_ns.':'.$day)) { 249de76d2a4SMichael Klier $dayWP = $this->month_ns.':'.$day; 2506d279233SMichael Klier } else { 2516d279233SMichael Klier $dayWP = $this->month_ns.':0'.$day; 2526d279233SMichael Klier } 2536d279233SMichael Klier } else { 2546d279233SMichael Klier $dayWP = $this->month_ns.':'.$day; 2556d279233SMichael Klier } 256de76d2a4SMichael Klier // close row at end of week 257de76d2a4SMichael Klier if($wd == 7) $out .= '</tr>'; 258de76d2a4SMichael Klier // set weekday 259de76d2a4SMichael Klier if(!isset($wd) or $wd == 7) { $wd = 0; } 260de76d2a4SMichael Klier // start new row when new week starts 261de76d2a4SMichael Klier if($wd == 0) $out .= '<tr>'; 262de76d2a4SMichael Klier 263de76d2a4SMichael Klier // create blank fields up to the first day of the month 2645d6390e4SMichael Klier $offset = ($this->getConf('weekstart') == 'Sunday') ? 0 : 1; 265de76d2a4SMichael Klier if(!$this->firstWeek) { 2665d6390e4SMichael Klier while($wd < ($this->MonthStart - $offset)) { 267de76d2a4SMichael Klier $out .= '<td class="blank"> </td>'; 268de76d2a4SMichael Klier $wd++; 269de76d2a4SMichael Klier } 270de76d2a4SMichael Klier // ok - first week is printet 271de76d2a4SMichael Klier $this->firstWeek = true; 272de76d2a4SMichael Klier } 273de76d2a4SMichael Klier 274de76d2a4SMichael Klier // check for today 275de76d2a4SMichael Klier if($this->today == $day) { 276de76d2a4SMichael Klier $out .= '<td class="today">'.$this->_calendar_day($dayWP,$day).'</td>'; 277de76d2a4SMichael Klier } else { 278de76d2a4SMichael Klier $out .= '<td class="day">'.$this->_calendar_day($dayWP,$day).'</td>'; 279de76d2a4SMichael Klier } 280de76d2a4SMichael Klier 281de76d2a4SMichael Klier // fill remaining days with blanks 282de76d2a4SMichael Klier if($i == $this->numDays && $wd < 7) { 283de76d2a4SMichael Klier while($wd<7) { 284de76d2a4SMichael Klier $out .= '<td class="blank"> </td>'; 285de76d2a4SMichael Klier $wd++; 286de76d2a4SMichael Klier } 287de76d2a4SMichael Klier $out .= '</tr>'; 288de76d2a4SMichael Klier } 289de76d2a4SMichael Klier 290de76d2a4SMichael Klier // dont forget to count weekdays 291de76d2a4SMichael Klier $wd++; 292de76d2a4SMichael Klier } 293de76d2a4SMichael Klier 294de76d2a4SMichael Klier // finally close the table 295de76d2a4SMichael Klier $out .= '</table>'; 296de76d2a4SMichael Klier 297de76d2a4SMichael Klier return ($out); 298de76d2a4SMichael Klier } 299de76d2a4SMichael Klier 300de76d2a4SMichael Klier /** 301de76d2a4SMichael Klier * Generates the content of each day in the calendar-table. 302de76d2a4SMichael Klier * 303de76d2a4SMichael Klier * @author Michael Klier <chi@chimeric.de> 304de76d2a4SMichael Klier */ 305de76d2a4SMichael Klier function _calendar_day($wp, $day) { 306de76d2a4SMichael Klier global $lang; 307de76d2a4SMichael Klier global $ID; 308*f04822b5SNiko Spindler $out = ''; 309de76d2a4SMichael Klier 310de76d2a4SMichael Klier if(file_exists(wikiFN($wp))) { 311de76d2a4SMichael Klier $out .= '<div class="isevent">'; 312de76d2a4SMichael Klier if(auth_quickaclcheck($wp) >= AUTH_READ) { 313*f04822b5SNiko Spindler $out .= '<a href="' . wl($wp, array('do' => 'edit', 'plugin_wikicalendar_redirect_id' => $ID, 'plugin_wikicalendar_month' => $this->showMonth, 'plugin_wikicalendar_year' => $this->showYear)) . '" class="plugin_wikicalendar_btn" title="' . $lang['btn_edit'] . '"><img src="' . DOKU_BASE . 'lib/plugins/wikicalendar/img/edit01.png" alt="' . $lang['btn_edit'] . '" width="18" height="18" /></a>' . DOKU_LF; 314de76d2a4SMichael Klier } 315de76d2a4SMichael Klier $out .= '<div class="day_num"><a href="' . wl($wp) . '" class="wikilink1" title="' . $wp . '">'.$day.'</a></div>'; 316de76d2a4SMichael Klier $out .= '<div class="abstract">' . p_get_metadata($wp, 'description abstract') . '</div>' . DOKU_LF; 317de76d2a4SMichael Klier } else { 318de76d2a4SMichael Klier $out .= '<div class="noevent">'; 319de76d2a4SMichael Klier if(auth_quickaclcheck($wp) >= AUTH_CREATE) { 320de76d2a4SMichael Klier //$out .= $this->_btn_add_day($wp); 321*f04822b5SNiko Spindler $out .= '<a href="' . wl($wp, array('do' => 'edit', 'plugin_wikicalendar_redirect_id' => $ID, 'plugin_wikicalendar_month' => $this->showMonth, 'plugin_wikicalendar_year' => $this->showYear)) . '" class="plugin_wikicalendar_btn" title="' . $lang['btn_create'] . '"><img src="' . DOKU_BASE . 'lib/plugins/wikicalendar/img/edit01.png" alt="' . $lang['btn_edit'] . '" width="18" height="18" /></a>' . DOKU_LF; 322de76d2a4SMichael Klier } 323de76d2a4SMichael Klier $out .= '<div class="day_num">'.$day.'</div>'; 324de76d2a4SMichael Klier } 325de76d2a4SMichael Klier $out .= '</div>'; 326de76d2a4SMichael Klier return ($out); 327de76d2a4SMichael Klier } 328de76d2a4SMichael Klier 329de76d2a4SMichael Klier /** 330de76d2a4SMichael Klier * Generates a From to jump to selected dates 331de76d2a4SMichael Klier * 332de76d2a4SMichael Klier * @author Michael Klier <chi@chimeric.de> 333de76d2a4SMichael Klier */ 334de76d2a4SMichael Klier function _form_go2() { 335*f04822b5SNiko Spindler $out = ''; 336de76d2a4SMichael Klier global $ID; 337de76d2a4SMichael Klier 338de76d2a4SMichael Klier $out .= '<table class="inline plugin_wikicalendar_go2">' . DOKU_LF; 339de76d2a4SMichael Klier 340de76d2a4SMichael Klier $out .= '<form action="'.script().'" method="post">' . DOKU_LF; 341de76d2a4SMichael Klier $out .= '<tr class="default">' . DOKU_LF; 342de76d2a4SMichael Klier $out .= '<td><label>'.$this->getLang('year').':</label></td>' . DOKU_LF; 343de76d2a4SMichael Klier $out .= '<td><div class="input">' . DOKU_LF; 344de76d2a4SMichael Klier $out .= '<select id="year" name="plugin_wikicalendar_year">' . DOKU_LF; 345de76d2a4SMichael Klier 346de76d2a4SMichael Klier $year_start = ($this->showYear != $this->curDate['year']) ? $this->showYear - 10 : $this->curDate['year'] - 5; 347de76d2a4SMichael Klier $year_end = $this->showYear + 10; 348de76d2a4SMichael Klier 349de76d2a4SMichael Klier for($i=$year_start;$i<=$year_end;$i++) { 350de76d2a4SMichael Klier if($i == $this->showYear || $i == $this->curDate['year']) { 351de76d2a4SMichael Klier $out .= '<option value="'.$i.'" selected="selected">'.$i.'</option>' . DOKU_LF; 352de76d2a4SMichael Klier } else { 353de76d2a4SMichael Klier $out .= '<option value="'.$i.'">'.$i.'</option>' . DOKU_LF; 354de76d2a4SMichael Klier } 355de76d2a4SMichael Klier } 356de76d2a4SMichael Klier 357de76d2a4SMichael Klier $out .= '</select>' . DOKU_LF; 358de76d2a4SMichael Klier $out .= '</div>' . DOKU_LF; 359de76d2a4SMichael Klier $out .= '</td>' . DOKU_LF; 360de76d2a4SMichael Klier $out .= '<td><label>'.$this->getLang('mon').':</label></td>' . DOKU_LF; 361de76d2a4SMichael Klier $out .= '<td><div class="input">' . DOKU_LF; 362de76d2a4SMichael Klier $out .= '<select id="month" name="plugin_wikicalendar_month">' . DOKU_LF; 363de76d2a4SMichael Klier 36459e8a14bSMichael Klier for($i=1;$i<=12;$i++) { 365de76d2a4SMichael Klier if($i == $this->showMonth) { 366de76d2a4SMichael Klier $out .= '<option value="'.$i.'" selected="selected">'.$this->langMonth[$i].'</option>' . DOKU_LF; 367de76d2a4SMichael Klier } else { 368de76d2a4SMichael Klier $out .= '<option value="'.$i.'">'.$this->langMonth[$i].'</option>' . DOKU_LF; 369de76d2a4SMichael Klier } 370de76d2a4SMichael Klier } 371de76d2a4SMichael Klier 372de76d2a4SMichael Klier $out .= '</select>' . DOKU_LF; 373de76d2a4SMichael Klier $out .= '</div>' . DOKU_LF; 374de76d2a4SMichael Klier $out .= '</td>' . DOKU_LF; 375de76d2a4SMichael Klier $out .= '<td><input type="hidden" name="id" value="'.$ID.'" />' . DOKU_LF; 376de76d2a4SMichael Klier $out .= '<input type="submit" class="button" name="go2" value="'.$this->getLang('go').'" />' . DOKU_LF; 377de76d2a4SMichael Klier $out .= '</form>' . DOKU_LF; 378de76d2a4SMichael Klier 379de76d2a4SMichael Klier if($this->showYear != $this->curDate['year'] or $this->showMonth != $this->curDate['mon']) { 380de76d2a4SMichael Klier $out .= '<form action="'.script().'" method="post" class="go2" onsubmit="">' . DOKU_LF; 381de76d2a4SMichael Klier $out .= '<input type="hidden" name="id" value="'.$ID.'" />' . DOKU_LF; 382de76d2a4SMichael Klier $out .= '<input type="submit" class="button" name="back2cur" value="'.$this->getLang('current').'" />' . DOKU_LF; 383de76d2a4SMichael Klier $out .= '</form>' . DOKU_LF; 384de76d2a4SMichael Klier } else { 385de76d2a4SMichael Klier $out .= '</td></tr>' . DOKU_LF; 386de76d2a4SMichael Klier } 387de76d2a4SMichael Klier 388de76d2a4SMichael Klier $out .= '</table>' . DOKU_LF; 389de76d2a4SMichael Klier 390de76d2a4SMichael Klier return ($out); 391de76d2a4SMichael Klier } 392de76d2a4SMichael Klier} 393de76d2a4SMichael Klier//Setup Vim: tabstop=4 enc=utf8 394