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.'); } } } } }
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; }