function plugin_init_positions() { global $PLUGIN_HOOKS, $CFG_GLPI; $PLUGIN_HOOKS['csrf_compliant']['positions'] = true; $PLUGIN_HOOKS['change_profile']['positions'] = array('PluginPositionsProfile', 'changeProfile'); if (class_exists('PluginPositionsPosition')) { // only if plugin activated $PLUGIN_HOOKS['pre_item_purge']['positions'] = array('Profile' => array('PluginPositionsProfile', 'purgeProfiles')); } if (Session::getLoginUserID()) { Plugin::registerClass('PluginPositionsProfile', array('addtabon' => 'Profile')); Plugin::registerClass('PluginPositionsPosition', array('addtabon' => 'Location')); // Display a menu entry ? if (plugin_positions_haveRight("positions", "r")) { $PLUGIN_HOOKS['menu_entry']['positions'] = 'front/map.form.php'; $PLUGIN_HOOKS['helpdesk_menu_entry']['positions'] = '/front/map.form.php'; $PLUGIN_HOOKS['submenu_entry']['positions']['search'] = 'front/position.php'; $PLUGIN_HOOKS['submenu_entry']['positions']["<img src='" . $CFG_GLPI["root_doc"] . "/pics/menu_showall.png' title='" . __('Map view', 'positions') . "' alt='" . __('Map view', 'positions') . "'>"] = 'front/map.form.php'; } if (plugin_positions_haveRight("positions", "w")) { $PLUGIN_HOOKS['submenu_entry']['positions']['add'] = 'front/position.form.php'; $PLUGIN_HOOKS['use_massive_action']['positions'] = 1; $PLUGIN_HOOKS['submenu_entry']['positions']['config'] = 'front/config.form.php'; $PLUGIN_HOOKS['config_page']['positions'] = 'front/config.form.php'; $PLUGIN_HOOKS['submenu_entry']['positions']['options']['info']['links']['search'] = '/plugins/positions/front/info.php'; $PLUGIN_HOOKS['submenu_entry']['positions']['options']['info']['links']['add'] = '/plugins/positions/front/info.form.php'; $PLUGIN_HOOKS['submenu_entry']['positions']['options']['info']['links']["<img src='" . $CFG_GLPI["root_doc"] . "/pics/menu_showall.png' title='" . __('Map view', 'positions') . "' alt='" . __('Map view', 'positions') . "'>"] = '/plugins/positions/front/map.form.php'; $PLUGIN_HOOKS['submenu_entry']['positions']['options']['info']['links']['config'] = '/plugins/positions/front/config.form.php'; } // Add specific files to add to the header : javascript or css $PLUGIN_HOOKS['add_javascript']['positions'] = array("lib/plupload/plupload.full.js", "lib/js/jquery-1.6.2.min.js", "upload.js", "positions.js", "geoloc.js", "lib/canvas/canvasXpress.min.js", "lib/canvas/ext-canvasXpress.js", "lib/canvas/color-field.js", "lib/crop/jquery.color.js", "lib/crop/jquery.Jcrop.js", "lib/crop/jquery.Jcrop.min.js"); //css $PLUGIN_HOOKS['add_css']['positions'] = array("positions.css", "lib/canvas/color-field.css", "lib/crop/jquery.Jcrop.css", "lib/crop/jquery.Jcrop.min.css"); if (class_exists('PluginTreeviewConfig')) { $PLUGIN_HOOKS['treeview_params']['positions'] = array('PluginPositionsPosition', 'showPositionTreeview'); } } // End init, when all types are registered $PLUGIN_HOOKS['post_init']['positions'] = 'plugin_positions_postinit'; }
function plugin_positions_getAddSearchOptions($itemtype) { $sopt = array(); if (in_array($itemtype, PluginPositionsPosition::getTypes(true))) { if (plugin_positions_haveRight("positions", "r")) { $sopt[4415]['table'] = 'glpi_plugin_positions_positions'; $sopt[4415]['field'] = 'name'; $sopt[4415]['linkfield'] = ''; $sopt[4415]['name'] = __('Cartography', 'positions') . " - " . __('Name'); $sopt[4415]['forcegroupby'] = '1'; $sopt[4415]['datatype'] = 'itemlink'; $sopt[4415]['itemlink_type'] = 'PluginPositionsPosition'; $sopt[4415]['massiveaction'] = false; } } return $sopt; }
static function showAddFromItem($itemtype, $items_id) { global $CFG_GLPI; if (!plugin_positions_haveRight('positions', 'r')) { return false; } $itemclass = new $itemtype(); $itemclass->getFromDB($items_id); echo "<div align='center'>"; echo "<form method='post' action=\"" . $CFG_GLPI["root_doc"] . "/plugins/positions/front/position.form.php\" name='pointform' id='pointform'>"; echo "<table class='tab_cadre_fixe'>"; echo "<tr><th colspan='4'>" . __('Create coordinates', 'positions') . " :</th></tr>"; echo "<tr class='tab_bg_1'><td>"; echo __('Name') . "</td>"; echo "<td>"; $value = $itemclass->fields["name"]; if (isset($itemclass->fields["contact_num"]) && !empty($itemclass->fields["contact_num"])) { $value = $itemclass->fields["contact_num"]; } $entity = $itemclass->fields["entities_id"]; Html::autocompletionTextField($itemclass, "name", array('value' => $value, 'entity' => $entity)); echo "</td>"; echo "<td>"; $location = $itemclass->fields["locations_id"]; if (isset($location) && !empty($location)) { echo Dropdown::getDropdownName("glpi_locations", $location); } else { echo "<div class='red'>" . __('No location selected', 'positions') . "</div>"; } echo "</td>"; if (empty($ID)) { if (plugin_positions_haveRight('positions', 'w')) { echo "<td>"; echo "<input type='hidden' name='items_id' value='{$items_id}'>"; echo "<input type='hidden' name='itemtype' value='{$itemtype}'>"; echo "<input type='hidden' name='entities_id' value='" . $entity . "'>"; echo "<input type='submit' name='additem' value=\"" . _sx('button', 'Add') . "\" class='submit'>"; echo "</td>"; } } echo "</tr>"; echo "</table>"; Html::closeForm(); echo "</div>"; }
static function canView() { return plugin_positions_haveRight('positions', 'r'); }