class _menu_editor_SubmitEngine in Menu Editor 6.3
Hierarchy
- class \_menu_editor_SubmitEngine
Expanded class hierarchy of _menu_editor_SubmitEngine
File
- ./
menu_editor.admin.inc, line 398
View source
class _menu_editor_SubmitEngine {
protected $_items = array();
protected $_updated_items = array();
protected $_fields = array(
'expanded',
'weight',
'plid',
'link_title',
'link_path',
'description',
);
protected $_language_options;
protected $_menu_name;
public function __construct($language_options, $menu_name) {
$this->_language_options = $language_options;
$this->_menu_name = $menu_name;
}
public function getItems() {
return $this->_items;
}
public function getUpdatedItems() {
return $this->_updated_items;
}
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];
}
}
}
}
Members
Name![]() |
Modifiers | Type | Description | Overrides |
---|---|---|---|---|
_menu_editor_SubmitEngine:: |
protected | property | ||
_menu_editor_SubmitEngine:: |
protected | property | ||
_menu_editor_SubmitEngine:: |
protected | property | ||
_menu_editor_SubmitEngine:: |
protected | property | ||
_menu_editor_SubmitEngine:: |
protected | property | ||
_menu_editor_SubmitEngine:: |
public | function | ||
_menu_editor_SubmitEngine:: |
public | function | ||
_menu_editor_SubmitEngine:: |
public | function | ||
_menu_editor_SubmitEngine:: |
public | function |