public function _menu_editor_SubmitEngine::submitElement in Menu Editor 6.3
File
- ./
menu_editor.admin.inc, line 418
Class
Code
public function submitElement(&$element, $v, $item_key) {
if (TRUE) {
$item =& $element['#item'];
$item_needs_update = false;
if (!is_numeric($v['mlid'])) {
// add new item
unset($v['mlid']);
if (!is_string($v['link_title']) || empty($v['link_title'])) {
return;
}
if (!is_string($v['link_path']) || empty($v['link_path'])) {
return;
}
$item['menu_name'] = $this->_menu_name;
// Set all fields in this menu item.
foreach ($this->_fields as $field) {
$item[$field] = $v[$field];
}
$item_needs_update = true;
}
else {
if ($v['delete']) {
// delete existing item
if (is_numeric($v['mlid'])) {
menu_link_delete($v['mlid']);
if (module_exists('i18nmenu')) {
// See http://drupal.org/node/786230#comment-2911158
_i18nmenu_delete_item($v['mlid']);
}
}
return;
}
else {
// update existing item
// Update any fields that have changed in this menu item.
foreach ($this->_fields as $field) {
if ($v[$field] != $element[$field]['#default_value']) {
$item[$field] = $v[$field];
$item_needs_update = true;
}
}
}
}
// Hidden is a special case, the value needs to be reversed.
if ($v['hidden'] != $element['hidden']['#default_value']) {
$item['hidden'] = !$v['hidden'];
$item_needs_update = true;
}
// langcode is a special case as well
if ($this->_language_options) {
if ($v['language'] != $element['language']['#default_value']) {
$item['options']['langcode'] = $v['language'];
$item_needs_update = true;
}
}
// description is a special case
if (isset($item['description'])) {
$item['options']['attributes']['title'] = $item['description'];
}
// put the item in our list
$item['#update'] = $item_needs_update;
$this->_items[$item_key] = $item;
// if the item has been modified..
if ($item_needs_update) {
$this->_updated_items[$item_key] =& $this->_items[$item_key];
}
}
}