function smarty_modifier_tiki_long_datetime($string) { global $prefs, $smarty; $smarty->loadPlugin('smarty_modifier_tiki_date_format'); // if you change the separator do not forget to change the translation instruction in lib/prefs/long.php return smarty_modifier_tiki_date_format($string, $prefs['long_date_format'] . ' ' . $prefs['long_time_format']); }
function smarty_modifier_tiki_long_date($string) { global $prefs; $smarty = TikiLib::lib('smarty'); $smarty->loadPlugin('smarty_modifier_tiki_date_format'); return smarty_modifier_tiki_date_format($string, $prefs['long_date_format']); }
function smarty_modifier_tiki_short_date($string) { global $prefs; $smarty = TikiLib::lib('smarty'); $smarty->loadPlugin('smarty_modifier_tiki_date_format'); $date = smarty_modifier_tiki_date_format($string, $prefs['short_date_format']); if ($prefs['jquery_timeago'] === 'y') { TikiLib::lib('header')->add_jq_onready('$("time.timeago").timeago();'); return '<time class="timeago" datetime="' . TikiLib::date_format('c', $string, false, 5, false) . '">' . $date . '</time>'; } else { return $date; } }
function smarty_modifier_tiki_short_datetime($string, $intro = '', $same = 'y') { global $prefs, $smarty; $smarty->loadPlugin('smarty_modifier_tiki_date_format'); $date = smarty_modifier_tiki_date_format($string, $prefs['short_date_format']); $time = smarty_modifier_tiki_date_format($string, $prefs['short_time_format']); if ($same != 'n' && $prefs['tiki_same_day_time_only'] == 'y' && $date == smarty_modifier_tiki_date_format(time(), $prefs['short_date_format'])) { //tra('on') tra('on:') tra('at') tra('at:') return empty($intro) ? $time : str_replace(array('on', 'On'), array('at', 'At'), $intro) . ' ' . $time; } else { // if you change the separator do not forget to change the translation instruction in lib/prefs/short.php $time = $date . ' ' . $time; return empty($intro) ? $time : tra($intro) . ' ' . $time; } }
function smarty_modifier_tiki_short_datetime($string, $intro = '', $same = 'y') { global $prefs; $smarty = TikiLib::lib('smarty'); $smarty->loadPlugin('smarty_modifier_tiki_date_format'); $date = smarty_modifier_tiki_date_format($string, $prefs['short_date_format']); $time = smarty_modifier_tiki_date_format($string, $prefs['short_time_format']); $intro = !empty($intro) ?: tra($intro) . ' '; if ($prefs['jquery_timeago'] === 'y' && $same === 'y') { TikiLib::lib('header')->add_jq_onready('$("time.timeago").timeago();'); return '<time class="timeago" datetime="' . TikiLib::date_format('c', $string, false, 5, false) . '">' . $date . ' ' . $time . '</time>'; } else { if ($same != 'n' && $prefs['tiki_same_day_time_only'] == 'y' && $date == smarty_modifier_tiki_date_format(time(), $prefs['short_date_format'])) { //tra('on') tra('on:') tra('at') tra('at:') return str_replace(array('on', 'On'), array('at', 'At'), $intro) . $time; } else { // if you change the separator do not forget to change the translation instruction in lib/prefs/short.php $time = $date . ' ' . $time; return $intro . ' ' . $time; } } }
function smarty_function_datetime_range($params, $smarty) { global $prefs; $smarty = TikiLib::lib('smarty'); $smarty->loadPlugin('smarty_modifier_tiki_date_format'); if (!is_array($params) || !isset($params['from']) || !isset($params['to'])) { trigger_error(tra("Missing 'to' or 'from' parameter")); return; } if ($params['datetime_separator']) { $datetime_separator = tra($params['datetime_separator']); } else { $datetime_separator = tra("at"); } if ($params['range_separator']) { $range_separator = tra($params['range_separator']); } else { $range_separator = tra("to"); } if ($params['type'] == 'long') { $fromDate = smarty_modifier_tiki_date_format($params['from'], $prefs['long_date_format']); $fromTime = smarty_modifier_tiki_date_format($params['from'], $prefs['long_time_format']); $toDate = smarty_modifier_tiki_date_format($params['to'], $prefs['long_date_format']); $toTime = smarty_modifier_tiki_date_format($params['to'], $prefs['long_time_format']); } else { $fromDate = smarty_modifier_tiki_date_format($params['from'], $prefs['short_date_format']); $fromTime = smarty_modifier_tiki_date_format($params['from'], $prefs['short_time_format']); $toDate = smarty_modifier_tiki_date_format($params['to'], $prefs['short_date_format']); $toTime = smarty_modifier_tiki_date_format($params['to'], $prefs['short_time_format']); } if ($fromDate == $toDate && $prefs['tiki_same_day_time_only'] == 'y') { $range = $fromDate . ' ' . $datetime_separator . ' ' . $fromTime . ' ' . $range_separator . ' ' . $toTime; } else { $range = $fromDate . ' ' . $datetime_separator . ' ' . $fromTime . ' ' . $range_separator . ' ' . $toDate . ' ' . $datetime_separator . ' ' . $toTime; } return $range; }
function smarty_modifier_tiki_long_date($string) { global $prefs; return smarty_modifier_tiki_date_format($string, $prefs['long_date_format']); }
function smarty_modifier_tiki_short_date($string) { global $prefs, $smarty; $smarty->loadPlugin('smarty_modifier_tiki_date_format'); return smarty_modifier_tiki_date_format($string, $prefs['short_date_format']); }
function wikiplugin_trackerstat($data, $params) { global $prefs, $tiki_p_admin_trackers; $trklib = TikiLib::lib('trk'); $tikilib = TikiLib::lib('tiki'); $smarty = TikiLib::lib('smarty'); extract($params, EXTR_SKIP); if ($prefs['feature_trackers'] != 'y' || !isset($trackerId) || !($tracker_info = $trklib->get_tracker($trackerId))) { return $smarty->fetch("wiki-plugins/error_tracker.tpl"); } $perms = Perms::get(array('type' => 'tracker', 'object' => $trackerId)); if (!$perms->view_trackers) { return tra('Permission denied'); } if (!empty($show_lastmodif)) { $date = $trklib->lastModif($trackerId); if (!function_exists('smarty_modifier_tiki_date_format')) { include 'lib/smarty_tiki/modifier.tiki_date_format.php'; } if ($show_lastmodif == 'y') { $show_lastmodif = $prefs['short_date_format']; } return smarty_modifier_tiki_date_format($date, tra($show_lastmodif)); } if (!isset($status)) { $status = 'o'; } elseif (!$trklib->valid_status($status)) { return tra('invalid status'); } if (isset($show_count) && $show_count == 'n') { $smarty->assign('show_count', 'n'); } else { $smarty->assign('show_count', 'y'); } if (isset($show_percent) && $show_percent == 'y') { $average = 'y'; $smarty->assign('show_percent', 'y'); } else { $smarty->assign('show_percent', 'n'); } if (isset($show_bar) && $show_bar == 'y') { $average = 'y'; $smarty->assign('show_bar', 'y'); } else { $smarty->assign('show_bar', 'n'); } if (isset($show_link) && $show_link == 'y') { $smarty->assign('show_link', 'y'); } else { $smarty->assign('show_link', 'n'); } $allFields = $trklib->list_tracker_fields($trackerId, 0, -1, 'position_asc', ''); for ($iUser = count($allFields['data']) - 1; $iUser >= 0; $iUser--) { if ($allFields['data'][$iUser]['type'] == 'u') { // this tracker has a user field - can look for the value the user sets break; } } if ($iUser <= -1) { for ($iIp = count($allFields['data']) - 1; $iIp >= 0; $iIp--) { if ($allFields['data'][$iIp]['type'] == 'I') { // this tracker has a IP field - can look for the value the user sets break; } } } if (!empty($fields)) { $listFields = $fields; } else { foreach ($allFields['data'] as $f) { $listFields[] = $f['fieldId']; } } if ($t = $trklib->get_tracker_options($trackerId)) { $tracker_info = array_merge($tracker_info, $t); } $status_types = $trklib->status_types(); foreach ($listFields as $fieldId) { for ($i = count($allFields['data']) - 1; $i >= 0; $i--) { if ($allFields['data'][$i]['fieldId'] == $fieldId) { break; } } if ($i < 0) { return tra('incorrect fieldId') . ' ' . $fieldId; } if ($allFields['data'][$i]['type'] == 'u' || $allFields['data'][$i]['type'] == 'I' || $allFields['data'][$i]['type'] == 's') { continue; } if (!($allFields['data'][$i]['isHidden'] == 'n' || $allFields['data'][$i]['isHidden'] == 'p' || $allFields['data'][$i]['isHidden'] == 'y' && $tiki_p_admin_trackers == 'y')) { continue; } if ($allFields['data'][$i]['type'] == 'e') { $categlib = TikiLib::lib('categ'); $parent = (int) $allFields['data'][$i]['options']; // FIXME: Lazy access to the first option. Only works when a field only has its first option set. if ($parent > 0) { $filter = array('identifier' => $parent, 'type' => 'children'); $listCategs = $categlib->getCategories($filter, true, false); } else { $listCategs = array(); } if ($tracker_info['oneUserItem'] == 'y') { $itemId = $trklib->get_user_item($trackerId, $tracker_info); } $j = 0; foreach ($listCategs as $category) { $objects = $categlib->get_category_objects($category['categId'], 'trackeritem', array('table' => 'tiki_tracker_items', 'join' => 'itemId', 'filter' => 'trackerId', 'bindvars' => $trackerId)); if ($status == 'opc' || $tracker_info['showStatus'] == 'n') { $v[$j]['count'] = count($objects); } else { $v[$j]['count'] = 0; foreach ($objects as $o) { $s = $trklib->get_item_info($o['itemId']); if (strstr($status, $s['status']) !== false) { ++$v[$j]['count']; } } } $v[$j]['value'] = $category['name']; if ($tracker_info['oneUserItem'] == 'y') { foreach ($objects as $o) { if ($o['itemId'] == $itemId) { $v[$j]['me'] = 'y'; break; } } } $v[$j]['href'] = "trackerId={$trackerId}&filterfield={$fieldId}&filtervalue[{$fieldId}][]=" . $category['categId']; $j++; } } elseif ($allFields['data'][$i]['type'] == 'h') { //header $stat['name'] = $allFields["data"][$i]['name']; $stat['values'] = array(); $stats[] = $stat; continue; } else { if ($iUser >= 0) { global $user; $userValues = $trklib->get_filtered_item_values($allFields['data'][$iUser]['fieldId'], $user, $allFields['data'][$i]['fieldId']); } else { if ($iIp >= 0) { $userValues = $trklib->get_filtered_item_values($allFields['data'][$iIp]['fieldId'], $tikilib->get_ip_address(), $allFields['data'][$i]['fieldId']); } } $allValues = $trklib->get_all_items($trackerId, $fieldId, $status, $allFields); $j = -1; foreach ($allValues as $value) { $value = trim($value); if ($j < 0 || $value != $v[$j]['value']) { ++$j; $v[$j]['value'] = $value; $v[$j]['count'] = 1; if (isset($userValues) && in_array($value, $userValues)) { $v[$j]['me'] = 'y'; } $v[$j]['href'] = "trackerId={$trackerId}&filterfield={$fieldId}&filtervalue[{$fieldId}]=" . urlencode($value); } else { ++$v[$j]['count']; } } } if (isset($average)) { $total = $trklib->get_nb_items($trackerId); for (; $j >= 0; --$j) { $v[$j]['average'] = 100 * $v[$j]['count'] / $total; if ($tracker_info['showStatus'] == 'y') { $v[$j]['href'] .= "&status={$status}"; } } } if (!empty($v)) { $stat['name'] = $allFields['data'][$i]['name']; $stat['values'] = $v; $stats[] = $stat; } unset($v); } $smarty->assign_by_ref('stats', $stats); return '~np~' . $smarty->fetch('wiki-plugins/wikiplugin_trackerstat.tpl') . '~/np~'; }
function smarty_modifier_tiki_short_date($string) { global $tikilib; return smarty_modifier_tiki_date_format($string, $tikilib->get_short_date_format(), null, tra("%a %d of %b, %Y")); }
function smarty_modifier_tiki_short_time($string) { global $tikilib; return smarty_modifier_tiki_date_format($string, $tikilib->get_short_time_format(), null, tra("%H:%M %Z")); }
function smarty_modifier_tiki_long_datetime($string) { global $tikilib; return smarty_modifier_tiki_date_format($string, $tikilib->get_long_datetime_format(), null, tra("%A %d of %B, %Y[%H:%M:%S %Z]")); }
function smarty_modifier_tiki_short_time($string) { global $prefs; return smarty_modifier_tiki_date_format($string, $prefs['short_time_format']); }