Esempio n. 1
0
function perch_members_check_page_access()
{
    $Session = PerchMembers_Session::fetch();
    if ($Session->logged_in) {
        $user_tags = $Session->get_tags();
    } else {
        $user_tags = array();
    }
    if (!is_array($user_tags)) {
        $user_tags = array();
    }
    $Page = PerchSystem::get_page_object();
    if (!$Page) {
        $Pages = new PerchContent_Pages();
        $Perch = Perch::fetch();
        $Page = $Pages->find_by_path($Perch->get_page());
        if ($Page instanceof PerchContent_Page) {
            PerchSystem::set_page_object($Page);
        }
    }
    if ($Page) {
        $page_tags = $Page->access_tags();
        if (!is_array($page_tags)) {
            $page_tags = array();
        }
        if (PerchUtil::count($page_tags)) {
            $intersection = array_intersect($user_tags, $page_tags);
            if (PerchUtil::count($intersection) === 0) {
                // no access!
                $API = new PerchAPI(1.0, 'perch_members');
                $Settings = $API->get('Settings');
                $redirect_url = $Settings->get('perch_members_login_page')->val();
                if ($redirect_url) {
                    $redirect_url = str_replace('{returnURL}', $Perch->get_page(), $redirect_url);
                    PerchUtil::redirect($redirect_url);
                } else {
                    die('Access denied.');
                }
            }
        }
    }
}
Esempio n. 2
0
function perch_pages_navigation_text($return = false)
{
    $attr_vars = PerchSystem::get_attr_vars();
    if (isset($attr_vars['pageNavText'])) {
        if ($return) {
            return $attr_vars['pageNavText'];
        }
        echo PerchUtil::html($attr_vars['pageNavText']);
        return;
    }
    $Page = PerchSystem::get_page_object();
    if (!$Page) {
        $Pages = new PerchContent_Pages();
        $Perch = Perch::fetch();
        $Page = $Pages->find_by_path($Perch->get_page());
        if ($Page instanceof PerchContent_Page) {
            PerchSystem::set_page_object($Page);
        }
    }
    $r = '';
    if (is_object($Page)) {
        $r = $Page->pageNavText();
    }
    if ($return) {
        return $r;
    }
    echo $r;
}