Microweber\Providers\Content\ContentManagerHelpers::add_content_to_menu PHP Метод

add_content_to_menu() публичный Метод

public add_content_to_menu ( $content_id, $menu_id = false )
    public function add_content_to_menu($content_id, $menu_id = false)
    {
        $id = $this->app->user_manager->is_admin();
        if (defined('MW_API_CALL') and $id == false) {
            return;
        }
        $new_item = false;
        $id = $this->app->user_manager->is_admin();
        if (defined('MW_API_CALL') and $id == false) {
            return;
        }
        if (isset($content_id['id'])) {
            $content_id = $content_id['id'];
        }
        $content_id = intval($content_id);
        if ($content_id == 0 or !isset($this->tables['menus'])) {
            return;
        }
        if ($menu_id != false) {
            //  $_REQUEST['add_content_to_menu'] = array( $menu_id);
        }
        $menus = $this->tables['menus'];
        if (isset($_REQUEST['add_content_to_menu']) and is_array($_REQUEST['add_content_to_menu'])) {
            $add_to_menus = $_REQUEST['add_content_to_menu'];
            $add_to_menus_int = array();
            foreach ($add_to_menus as $value) {
                if ($value == 'remove_from_all') {
                    Menu::where('content_id', $content_id)->where('item_type', 'menu_item')->delete();
                    $this->app->cache_manager->delete('menus');
                }
                $value = intval($value);
                if ($value > 0) {
                    $add_to_menus_int[] = $value;
                }
            }
        }
        $add_under_parent_page = false;
        $content_data = false;
        if (isset($_REQUEST['add_content_to_menu_auto_parent']) and $_REQUEST['add_content_to_menu_auto_parent'] != false) {
            $add_under_parent_page = true;
            $content_data = $this->get_by_id($content_id);
            if ($content_data['is_active'] != 1) {
                return false;
            }
        }
        if (!isset($add_to_menus_int) or empty($add_to_menus_int)) {
            if ($menu_id != false) {
                $add_to_menus_int[] = intval($menu_id);
            }
        }
        if (isset($add_to_menus_int) and is_array($add_to_menus_int)) {
            Menu::where('content_id', $content_id)->where('item_type', 'menu_item')->whereNotIn('parent_id', $add_to_menus_int)->delete();
            foreach ($add_to_menus_int as $value) {
                //  $check = $this->app->menu_manager->get_menu_items("parent_id={$value}&content_id=$content_id");
                $check = Menu::where('content_id', $content_id)->where('item_type', 'menu_item')->where('parent_id', $value)->count();
                if ($check == 0) {
                    $save = array();
                    $save['item_type'] = 'menu_item';
                    $save['is_active'] = 1;
                    $save['parent_id'] = $value;
                    $save['position'] = 999999;
                    if ($add_under_parent_page != false and is_array($content_data) and isset($content_data['parent'])) {
                        $parent_cont = $content_data['parent'];
                        $check_par = $this->app->menu_manager->get_menu_items("limit=1&one=1&content_id={$parent_cont}");
                        if (is_array($check_par) and isset($check_par['id'])) {
                            $save['parent_id'] = $check_par['id'];
                        }
                    }
                    $save['url'] = '';
                    $save['content_id'] = $content_id;
                    $new_item = $this->app->database_manager->save($menus, $save);
                    $this->app->cache_manager->delete('menus');
                    $this->app->cache_manager->delete('menus/' . $save['parent_id']);
                    $this->app->cache_manager->delete('menus/' . $value);
                    $this->app->cache_manager->delete('content/' . $content_id);
                }
            }
            $this->app->cache_manager->delete('menus/global');
            $this->app->cache_manager->delete('menus');
        }
        return $new_item;
    }