Esempio n. 1
0
 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;
 }
Esempio n. 2
0
 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>&lt;&lt;</span>&#160;' . 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') . '&#160;<span>&gt;&gt;</span>');
         $link->setValue('id', $next_page);
         $links[] = $link->get();
     }
     $tpl['PAGE_LINKS'] = implode('&#160;|&#160;', $links);
 }