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.
 
 
 
 
 
 

98 lines
3.2 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$
if (strpos($_SERVER['SCRIPT_NAME'], basename(__FILE__)) !== false) {
header('location: index.php');
exit;
}
/**
* @return array
*/
function module_map_edit_features_info()
{
return [
'name' => tra('Map Feature Editor'),
'description' => tra('Allows shapes to be drawn over the map.'),
'prefs' => [],
'params' => [
'trackerId' => [
'name' => tr('Tracker'),
'description' => tr('Tracker to store the feature in.'),
'required' => true,
'filter' => 'digits',
'profile_reference' => 'tracker',
],
'hiddeninput' => [
'name' => tr('Hidden Input'),
'description' => tr('Hidden values to be sent over to the dialog. fieldName(value)'),
'filter' => 'text',
],
'standard' => [
'name' => tr('Standard controls'),
'description' => tr('Dispay the standard draw controls'),
'filter' => 'int',
'default' => 1,
],
'insertmode' => [
'name' => tr('Mode change on insert'),
'description' => tr('Target mode to enter after successfully inserting an item'),
'filter' => 'text',
'default' => '',
],
'editdetail' => [
'name' => tr('Edit details'),
'description' => tr("Edit the tracker item's details through a dialog after the initial item creation."),
'filter' => 'int',
'default' => 0,
],
],
];
}
/**
* @param $mod_reference
* @param $module_params
*/
function module_map_edit_features($mod_reference, $module_params)
{
$targetField = null;
$smarty = TikiLib::lib('smarty');
$definition = Tracker_Definition::get($module_params['trackerId']);
if ($definition) {
foreach ($definition->getFields() as $field) {
if ($field['type'] == 'GF') {
$targetField = $field;
break;
}
}
}
$hiddeninput = isset($module_params['hiddeninput']) ? $module_params['hiddeninput'] : '';
preg_match_all('/(\w+)\(([^\)]*)\)/', $hiddeninput, $parts, PREG_SET_ORDER);
$hidden = [];
foreach ($parts as $p) {
$hidden[$p[1]] = $p[2];
}
$smarty->assign(
'edit_features',
[
'trackerId' => $module_params['trackerId'],
'definition' => $definition,
'field' => $targetField,
'hiddenInput' => $hidden,
'standardControls' => isset($module_params['standard']) ? (int)$module_params['standard'] : 1,
'editDetails' => isset($module_params['editdetail']) ? (int)$module_params['editdetail'] : 0,
'insertMode' => isset($module_params['insertmode']) ? $module_params['insertmode'] : '',
]
);
}