コード例 #1
0
ファイル: calendar.php プロジェクト: minger11/Pipeline
 function handle(&$params)
 {
     $app =& Dataface_Application::getInstance();
     $query =& $app->getQuery();
     $nav = array('prev' => array('label' => null, 'url' => null), 'next' => array('label' => null, 'url' => null), 'current' => array('label' => null));
     import('Dataface/Ontology.php');
     Dataface_Ontology::registerType('Event', 'Dataface/Ontology/Event.php', 'Dataface_Ontology_Event');
     $ontology =& Dataface_Ontology::newOntology('Event', $query['-table']);
     $dateAtt = $ontology->getFieldname('date');
     if (PEAR::isError($dateAtt)) {
         die($dateAtt->getMessage());
     }
     if (!isset($query[$dateAtt]) or !preg_match('/^[0-9]{4}-[0-9]{2}-[0-9]{2}\\.\\.[0-9]{4}-[0-9]{2}-[0-9]{2}$/', $query[$dateAtt])) {
         $query[$dateAtt] = date('Y-m-01') . '..' . date('Y-m-t');
     }
     list($startDate) = explode('..', $query[$dateAtt]);
     $startTime = strtotime($startDate);
     $prevMonth = intval(date('m', $startTime)) - 1;
     $nextMonth = intval(date('m', $startTime)) + 1;
     $prevTime = mktime(0, 0, 0, $prevMonth, 1, date('Y', $startTime));
     $nextTime = mktime(0, 0, 0, $nextMonth, 1, date('Y', $startTime));
     $nav['prev']['label'] = date('F Y', $prevTime);
     $nav['prev']['url'] = $app->url('-action=calendar&' . $dateAtt . '=' . urlencode(date('Y-m-01', $prevTime) . '..' . date('Y-m-t', $prevTime)), true, true);
     $nav['next']['label'] = date('F Y', $nextTime);
     $nav['next']['url'] = $app->url('-action=calendar&' . $dateAtt . '=' . urlencode(date('Y-m-01', $nextTime) . '..' . date('Y-m-t', $nextTime)), true, true);
     $nav['current']['label'] = date('F Y', $startTime);
     $query['-limit'] = 500;
     $records =& df_get_records_array($query['-table'], $query);
     $events = array();
     foreach ($records as $record) {
         $event = $ontology->newIndividual($record);
         $datems = strtotime(date('Y-m-d', strtotime($event->strval('date')))) * 1000;
         $timems = (strtotime(date('H:i:s', strtotime($event->strval('start')))) - strtotime(date('Y-m-d'))) * 1000;
         $events[] = array('title' => $record->getTitle(), 'description' => $record->getDescription(), 'date' => $datems + $timems, 'startTime' => strtotime($event->strval('date')) * 1000, 'record_id' => $record->getId());
         unset($event);
         unset($record);
     }
     import('Services/JSON.php');
     $json = new Services_JSON();
     $event_data = 'var events = ' . $json->encode($events);
     import('Dataface/ResultList.php');
     $rs = new Dataface_ResultList($query['-table']);
     df_display(array('event_data' => $event_data, 'nav' => &$nav, 'currentTime' => $startTime, 'filters' => $rs->getResultFilters()), 'Dataface_Calendar.html');
 }
コード例 #2
0
ファイル: SkinTool.php プロジェクト: minger11/Pipeline
 function filters($params, &$smarty)
 {
     import('Dataface/ResultList.php');
     $query =& $this->app->getQuery();
     if (isset($params['columns'])) {
         $columns = explode(',', $params['columns']);
     } else {
         $columns = array();
     }
     $list = new Dataface_ResultList($query['-table'], $this->app->db(), $columns, $query);
     echo $list->getResultFilters();
 }
コード例 #3
0
ファイル: TableView.php プロジェクト: promoso/HVAC
 /**
  * Displays list of records for list mode.
  */
 function _list()
 {
     import('Dataface/ResultList.php');
     $list = new Dataface_ResultList($this->_tablename, $this->_db, array(), $this->_query);
     return $list->toHtml();
 }