public function month_list() { if (PHPWS_Settings::get('calendar', 'use_calendar_style')) { Layout::addStyle('calendar'); } $month =& $this->calendar->int_month; $year =& $this->calendar->int_year; $day = 1; if ($this->calendar->schedule->public && !Current_User::isLogged() && PHPWS_Settings::get('calendar', 'cache_month_views')) { $cache_key = sprintf('list_%s_%s_%s', $month, $year, $this->calendar->schedule->id); } if (isset($cache_key)) { // Check cache $content = PHPWS_Cache::get($cache_key); if (!empty($content)) { return $content; } } // cache empty, make calendar $startdate = mktime(0, 0, 0, $month, 1, $year); $enddate = mktime(23, 59, 59, $month + 1, 0, $year); $date_pick = $this->getDatePick(); $this->calendar->loadEventList($startdate, $enddate); $tpl = new PHPWS_Template('calendar'); $tpl->setFile('view/month/list.tpl'); $events_found = false; $lvars = array('view' => 'day', 'schedule_id' => $this->calendar->schedule->id); $slink = new PHPWS_Link(null, 'calendar'); $slink->setNoFollow(PHPWS_Settings::get('calendar', 'no_follow')); for ($i = $startdate; $i <= $enddate; $i += 86400) { $day_result = $this->getDaysEvents($i, $tpl); $lvars['date'] = $i; $slink->clearValues(); $slink->addValues($lvars); if ($day_result) { $events_found = true; $slink->setLabel(strftime('%A', $i)); $day_tpl['FULL_WEEKDAY'] = $slink->get(); $slink->setLabel(strftime('%a', $i)); $day_tpl['ABBR_WEEKDAY'] = $slink->get(); $slink->setLabel(strftime('%e', $i)); $day_tpl['DAY_NUMBER'] = $slink->get(); $tpl->setCurrentBlock('days'); $tpl->setData($day_tpl); $tpl->parseCurrentBlock(); } } if (!$events_found) { $tpl->setVariable('MESSAGE', dgettext('calendar', 'No events this month.')); } $main_tpl = $this->viewLinks('list'); $main_tpl['FULL_MONTH_NAME'] = strftime('%B', mktime(0, 0, 0, $month, $day, $year)); $main_tpl['ABRV_MONTH_NAME'] = strftime('%b', mktime(0, 0, 0, $month, $day, $year)); $main_tpl['SCHEDULE_TITLE'] = $this->calendar->schedule->title; $main_tpl['FULL_YEAR'] = strftime('%Y', mktime(0, 0, 0, $month, $day, $year)); $main_tpl['ABRV_YEAR'] = strftime('%y', mktime(0, 0, 0, $month, $day, $year)); $main_tpl['SCHEDULE_PICK'] = $this->schedulePick(); $main_tpl['PICK'] = $date_pick; $main_tpl['DOWNLOAD'] = $this->downloadLink($startdate, $enddate); $main_tpl['SUGGEST'] = $this->suggestLink(); if ($this->calendar->schedule->checkPermissions()) { $main_tpl['ADD_EVENT'] = '<button class="add-event btn btn-success" data-schedule-id="' . $this->calendar->schedule->id . '" data-date="' . $this->calendar->current_date * 1000 . '"><i class="fa fa-plus"></i> Add event</button>'; } $tpl->setData($main_tpl); $content = $tpl->get(); if (isset($cache_key)) { PHPWS_Cache::save($cache_key, $content); } return $content; }
private function pageLinks(&$tpl) { $db = new PHPWS_DB('ps_page'); $db->addWhere('deleted', 0); $db->addColumn('id'); $db->addColumn('page_order'); $db->setIndexBy('page_order'); $db->addOrder('page_order asc'); if ($this->parent_page) { $db->addWhere('id', $this->parent_page); $db->addWhere('parent_page', $this->parent_page, null, 'or'); } else { $db->addWhere('parent_page', $this->id); } $pages = $db->select('col'); if (PHPWS_Error::logIfError($pages) || empty($pages)) { return; } if (!$this->parent_page) { array_unshift($pages, $this->id); } if ($this->page_order) { $prev_page = $pages[$this->page_order - 1]; } else { $prev_page = 0; } foreach ($pages as $page_no => $id) { if ($page_no == 0 && $prev_page) { $link = new PHPWS_Link('<span><<</span> ' . dgettext('pagesmith', 'Previous'), 'pagesmith', array('id' => $prev_page)); $links[] = $link->get(); } if ($id == $this->id) { $links[] = $page_no + 1; if (isset($pages[$page_no + 1])) { $next_page = $pages[$page_no + 1]; } else { $next_page = null; } } else { $link = new PHPWS_Link($page_no + 1, 'pagesmith', array('id' => $id)); $link->setRewrite(); $links[] = $link->get(); } } if ($next_page) { $link->setLabel(dgettext('pagesmith', 'Next') . ' <span>>></span>'); $link->setValue('id', $next_page); $links[] = $link->get(); } $tpl['PAGE_LINKS'] = implode(' | ', $links); }