function wikiplugin_trackercalendar($data, $params) { static $id = 0; $headerlib = TikiLib::lib('header'); $headerlib->add_cssfile('vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.css'); $headerlib->add_jsfile('vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.min.js'); $jit = new JitFilter($params); $definition = Tracker_Definition::get($jit->trackerId->int()); $itemObject = Tracker_Item::newItem($jit->trackerId->int()); if (!$definition) { return WikiParser_PluginOutput::userError(tr('Tracker not found.')); } $beginField = $definition->getFieldFromPermName($jit->begin->word()); $endField = $definition->getFieldFromPermName($jit->end->word()); if (!$beginField || !$endField) { return WikiParser_PluginOutput::userError(tr('Fields not found.')); } $views = array('month', 'agendaWeek', 'agendaDay'); $resources = array(); if ($resourceField = $jit->resource->word()) { $field = $definition->getFieldFromPermName($resourceField); $resources = wikiplugin_trackercalendar_get_resources($field); $views[] = 'resourceMonth'; $views[] = 'resourceWeek'; $views[] = 'resourceDay'; } $smarty = TikiLib::lib('smarty'); $smarty->assign('trackercalendar', array('id' => 'trackercalendar' . ++$id, 'trackerId' => $jit->trackerId->int(), 'begin' => $jit->begin->word(), 'end' => $jit->end->word(), 'resource' => $resourceField, 'resourceList' => $resources, 'coloring' => $jit->coloring->word(), 'beginFieldName' => 'ins_' . $beginField['fieldId'], 'endFieldName' => 'ins_' . $endField['fieldId'], 'firstDayofWeek' => 0, 'views' => implode(',', $views), 'viewyear' => (int) date('Y'), 'viewmonth' => (int) date('n'), 'viewday' => (int) date('j'), 'minHourOfDay' => 7, 'maxHourOfDay' => 20, 'addTitle' => tr('Insert'), 'canInsert' => $itemObject->canModify(), 'body' => $data)); return $smarty->fetch('wiki-plugins/trackercalendar.tpl'); }
function wikiplugin_trackercalendar($data, $params) { static $id = 0; $headerlib = TikiLib::lib('header'); $headerlib->add_cssfile('vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.css'); $headerlib->add_jsfile('vendor_extra/fullcalendar-resourceviews/fullcalendar/fullcalendar.min.js'); $jit = new JitFilter($params); $definition = Tracker_Definition::get($jit->trackerId->int()); $itemObject = Tracker_Item::newItem($jit->trackerId->int()); if (!$definition) { return WikiParser_PluginOutput::userError(tr('Tracker not found.')); } $beginField = $definition->getFieldFromPermName($jit->begin->word()); $endField = $definition->getFieldFromPermName($jit->end->word()); if (!$beginField || !$endField) { return WikiParser_PluginOutput::userError(tr('Fields not found.')); } $views = array(); if (!empty($params['amonth']) and $params['amonth'] != 'y') { $amonth = 'n'; } else { $amonth = 'y'; $views[] = 'month'; } if (!empty($params['aweek']) and $params['aweek'] != 'y') { $aweek = 'n'; } else { $aweek = 'y'; $views[] = 'agendaWeek'; } if (!empty($params['aday']) and $params['aday'] != 'y') { $aday = 'n'; } else { $aday = 'y'; $views[] = 'agendaDay'; } $resources = array(); if ($resourceField = $jit->resource->word()) { $field = $definition->getFieldFromPermName($resourceField); $resources = wikiplugin_trackercalendar_get_resources($field); if (!empty($params['rmonth']) and $params['rmonth'] != 'y') { $rmonth = 'n'; } else { $rmonth = 'y'; $views[] = 'resourceMonth'; } if (!empty($params['rweek']) and $params['rweek'] != 'y') { $rweek = 'n'; } else { $rweek = 'y'; $views[] = 'resourceWeek'; } if (!empty($params['rday']) and $params['rday'] != 'y') { $rday = 'n'; } else { $rday = 'y'; $views[] = 'resourceDay'; } } // Define the default View (dView) if (!empty($params['dView'])) { $dView = $params['dView']; } else { $dView = 'month'; } // Define the default date (dYear, dMonth, dDay) if (!empty($params['dYear'])) { $dYear = $params['dYear']; } else { $dYear = (int) date('Y'); } if (!empty($params['dMonth']) and $params['dMonth'] > 0 and $params['dMonth'] < 13) { $dMonth = $params['dMonth']; } else { $dMonth = (int) date('n'); } if (!empty($params['dDay']) and $params['dDay'] > 0 and $params['dDay'] < 32) { $dDay = $params['dDay']; } else { $dDay = (int) date('j'); } global $prefs; if (!empty($params['fDayofWeek']) and $params['fDayofWeek'] > -1 and $params['fDayofWeek'] < 7) { $firstDayofWeek = $params['fDayofWeek']; } elseif ($prefs['calendar_firstDayofWeek'] !== 'user') { $firstDayofWeek = $prefs['calendar_firstDayofWeek']; } else { $firstDayofWeek = 0; } $params['addAllFields'] = empty($params['addAllFields']) ? 'y' : $params['addAllFields']; $params['useSessionStorage'] = empty($params['useSessionStorage']) ? 'y' : $params['useSessionStorage']; $params['weekends'] = empty($params['weekends']) ? 'y' : $params['weekends']; $smarty = TikiLib::lib('smarty'); $smarty->assign('trackercalendar', array('id' => 'trackercalendar' . ++$id, 'trackerId' => $jit->trackerId->int(), 'begin' => $jit->begin->word(), 'end' => $jit->end->word(), 'resource' => $resourceField, 'resourceList' => $resources, 'coloring' => $jit->coloring->word(), 'beginFieldName' => 'ins_' . $beginField['fieldId'], 'endFieldName' => 'ins_' . $endField['fieldId'], 'firstDayofWeek' => $firstDayofWeek, 'views' => implode(',', $views), 'viewyear' => $dYear, 'viewmonth' => $dMonth, 'viewday' => $dDay, 'minHourOfDay' => 7, 'maxHourOfDay' => 24, 'addTitle' => tr('Insert'), 'canInsert' => $itemObject->canModify(), 'dView' => $dView, 'body' => $data, 'url' => $params['external'] === 'y' ? $params['url'] : '', 'trkitemid' => $params['external'] === 'y' ? $params['trkitemid'] : '', 'addAllFields' => $params['external'] === 'y' ? $params['addAllFields'] : '', 'useSessionStorage' => $params['external'] === 'y' ? $params['useSessionStorage'] : '', 'timeFormat' => $prefs['display_12hr_clock'] === 'y' ? 'h(:mm)TT' : 'HH:mm', 'weekends' => $params['weekends'] === 'y' ? 1 : 0)); return $smarty->fetch('wiki-plugins/trackercalendar.tpl'); }