You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

63 lines
2.4 KiB

<?php
// (c) Copyright by authors of the Tiki Wiki CMS Groupware Project
//
// All Rights Reserved. See copyright.txt for details and a complete list of authors.
// Licensed under the GNU LESSER GENERAL PUBLIC LICENSE. See license.txt for details.
// $Id$
function smarty_function_trackerinput($params, $smarty)
{
$trklib = TikiLib::lib('trk');
$field = $params['field'];
if (isset($params['item'])) {
$item = $params['item'];
} elseif (! empty($params['itemId'])) {
$item = $trklib->get_item_info($params['itemId']);
} else {
$item = [];
}
$handler = $trklib->get_field_handler($field, $item);
if ($handler) {
$context = $params;
unset($context['item']);
unset($context['field']);
$info = '';
if (! empty($field['encryptionKeyId'])) {
try {
$key = new Tiki\Encryption\Key($field['encryptionKeyId']);
$field['value'] = $key->decryptData($handler->getValue());
$info = tr('Field data is encrypted using key "%0".', $key->get('name'));
} catch (Tiki\Encryption\NotFoundException $e) {
return tr('Field is encrypted with a key that no longer exists!');
} catch (Tiki\Encryption\Exception $e) {
$field['value'] = '';
$info = tr('Field data is encrypted using key "%0" but where was an error decrypting the data: %1', $key->get('name'), $e->getMessage());
$info .= ' ' . $key->manualEntry();
}
$handler = $trklib->get_field_handler($field, $item);
$field = array_merge($field, $handler->getFieldData());
$handler = $trklib->get_field_handler($field, $item);
$info = '<div class="description form-text">' . $info . '</div>';
}
$desc = '';
if (isset($params['showDescription']) && $params['showDescription'] == 'y' && $params['field']['type'] != 'S') {
$desc = $params['field']['description'];
if ($params['field']['descriptionIsParsed'] == 'y') {
$desc = TikiLib::lib('parser')->parse_data($desc);
} else {
$desc = htmlspecialchars($desc);
}
if (! empty($desc)) {
$desc = '<div class="description form-text">' . $desc . '</div>';
}
}
return $handler->renderInput($context, $params) . $info . $desc;
}
}