[ 'itemId' => 'int', 'fieldId' => 'int', 'version' => 'int', 'offset' => 'int', 'diff_style' => 'word', ]], ['catchAllUnset' => null], ]; $section = 'trackers'; require_once('tiki-setup.php'); $access->check_feature('feature_trackers'); $trklib = TikiLib::lib('trk'); $auto_query_args = ['offset', 'itemId', 'fieldId', 'filter']; if (! empty($_GET['itemId'])) { $item_info = $trklib->get_tracker_item($_GET['itemId']); $item = Tracker_Item::fromInfo($item_info); if (! $item->canViewHistory()) { $smarty->assign('errortype', 401); $smarty->assign('msg', tra('You do not have permission to view this page.')); $smarty->display('error.tpl'); die; } $fieldId = empty($_GET['fieldId']) ? 0 : $_GET['fieldId']; $smarty->assign_by_ref('fieldId', $fieldId); $filter = []; if (! empty($_GET['version'])) { $filter['version'] = $_GET['version']; } $smarty->assign_by_ref('filter', $filter); $offset = empty($_GET['offset']) ? 0 : $_GET['offset']; $smarty->assign('offset', $offset); if (! empty($item_info)) { $history = $trklib->get_item_history($item_info, $fieldId, $filter, $offset, $prefs['maxRecords']); $smarty->assign_by_ref('history', $history['data']); $smarty->assign_by_ref('cant', $history['cant']); foreach ($history['data'] as $i => $hist) { if (empty($field_option[$hist['fieldId']])) { if ($hist['fieldId'] > 0) { $field_option[$hist['fieldId']] = $trklib->get_tracker_field($hist['fieldId']); } else { $field_option[$hist['fieldId']] = [ // fake field to do the diff on 'type' => 't', 'name' => tr('Status'), 'trackerId' => $item_info['trackerId'], ]; } } } $diff_style = empty($_GET['diff_style']) ? $prefs['tracker_history_diff_style'] : $_GET['diff_style']; $smarty->assign('diff_style', $diff_style); $smarty->assign_by_ref('item_info', $item_info); $smarty->assign_by_ref('field_option', $field_option); } else { $smarty->assign('errortype', 401); $smarty->assign('msg', tra('This tracker item either has been deleted or is not found.')); $smarty->display('error.tpl'); die; } } $tiki_actionlog_conf = TikiDb::get()->table('tiki_actionlog_conf'); $logging = $tiki_actionlog_conf->fetchCount( [ 'objectType' => 'trackeritem', 'action' => $tiki_actionlog_conf->in(['Created','Updated']), 'status' => $tiki_actionlog_conf->in(['y','v']), ] ); // disallow robots to index page $smarty->assign('metatag_robots', 'NOINDEX, NOFOLLOW'); $smarty->assign('logging', $logging); $smarty->assign('mid', 'tiki-tracker_view_history.tpl'); $smarty->display('tiki.tpl');