застрял на сабже (есть конструктор менюшек, максимальный уровень вложенности == 1, можно перетаскивать тем самым менять порядок отображения пунктов этого меню).
проблема с сохранением порядка их отображения). Имеется такой массив:
Array
(
[0] => Array
(
[id] => admin_menus_item_core_main_home
[children] => Array
(
[0] => Array
(
[id] => admin_menus_item_core_main_user
)
[1] => Array
(
[id] => admin_menus_item_core_main_invite
)
)
)
[1] => Array
(
[id] => admin_menus_item_core_main_blog
)
[2] => Array
(
[id] => admin_menus_item_core_main_chat
)
)
и такой вот кусок кода, который я пытаюсь допилить:
/**
* Reorder Menu Items
* @return void
*/
public function orderAction() {
$this->_helper->viewRenderer->setNoRender();
$this->_helper->layout->disableLayout();
$data = $this->_request->getPost();
if (!is_array($data) || empty($data)) {
return;
}
if (!isset($data['menu']) || empty($data['content'])) {
return;
}
$menuName = $data['menu'];
$menuList = $data['content'];
//print_r($menuList);
$table = Engine_Api::_()->getDbtable('menuItems', 'core');
$menuitems = $table->fetchAll($table->select()->where('menu = ?', $menuName));
$i = 0;
foreach ($menuitems as $k => $menuitem) {
if ($this->_arrayCheck($menuitem->name, $menuList)) {
$order = $i;
if (!$order) {
$order = 999;
}
$menuitem->order = $order;
$menuitem->save();
$i++;
}
}
return;
}
private function _arrayCheck($item, $arr) {
foreach ($arr as $val) {
if (strstr($item, $arr['id'])) {
return true;
}
}
return false;
}
_____________
...think about your actions.