Microweber\Providers\Content\ContentManagerCrud::get_by_url PHP Method

get_by_url() public method

public get_by_url ( $url = '', $no_recursive = false )
    public function get_by_url($url = '', $no_recursive = false)
    {
        static $passed = array();
        $passed[$url] = 1;
        if (strval($url) == '') {
            $url = $this->app->url_manager->string();
        }
        $u1 = $url;
        $u2 = $this->app->url_manager->site();
        $u1 = rtrim($u1, '\\');
        $u1 = rtrim($u1, '/');
        $u2 = rtrim($u2, '\\');
        $u2 = rtrim($u2, '/');
        $u1 = str_replace($u2, '', $u1);
        $u1 = ltrim($u1, '/');
        $url = $u1;
        $url = addslashes($url);
        $url12 = parse_url($url);
        if (isset($url12['scheme']) and isset($url12['host']) and isset($url12['path'])) {
            $u1 = $this->app->url_manager->site();
            $u2 = str_replace($u1, '', $url);
            $current_url = explode('?', $u2);
            $u2 = $current_url[0];
            $url = $u2;
        } else {
            $current_url = explode('?', $url);
            $u2 = $current_url[0];
            $url = $u2;
        }
        $url = rtrim($url, '?');
        $url = rtrim($url, '#');
        if (is_array(self::$skip_pages_starting_with_url)) {
            $segs = explode('/', $url);
            $arr = self::$skip_pages_starting_with_url;
            foreach ($arr as $skip_page_url) {
                if (in_array($skip_page_url, $segs)) {
                    return false;
                }
            }
        }
        $link_hash = 'link' . crc32($url);
        if (isset(self::$precached_links[$link_hash])) {
            return self::$precached_links[$link_hash];
        }
        $get = array();
        $get['url'] = $url;
        $get['single'] = true;
        $content = $this->get($get);
        if (!empty($content)) {
            self::$precached_links[$link_hash] = $content;
            return $content;
        }
        if ($no_recursive == false) {
            if (empty($content) == true) {
                $segs = explode('/', $url);
                $segs_qty = count($segs);
                for ($counter = 0; $counter <= $segs_qty; $counter += 1) {
                    $test = array_slice($segs, 0, $segs_qty - $counter);
                    $test = array_reverse($test);
                    if (isset($test[0])) {
                        $url = $this->get_by_url($test[0], true);
                    }
                    if (!empty($url)) {
                        self::$precached_links[$link_hash] = $url;
                        return $url;
                    }
                }
            }
        } else {
            if (isset($content['id']) and intval($content['id']) != 0) {
                $content['id'] = (int) $content['id'];
            }
            self::$precached_links[$link_hash] = $content;
            return $content;
        }
        self::$precached_links[$link_hash] = false;
        return false;
    }