Example #1
1
function throwErrorPage($code)
{
    if ($code == "404") {
        $header = $_SERVER['SERVER_PROTOCOL'] . ' 404 Not Found';
    } else {
        if ($code == "403") {
            $header = $_SERVER['SERVER_PROTOCOL'] . ' 403 Forbidden';
        } else {
            $header = $_SERVER['SERVER_PROTOCOL'] . ' ' . $code;
        }
    }
    header($header);
    $errorPage = sConfig()->getVar('CONFIG/ERRORPAGES/ERROR_' . $code);
    if ($errorPage && $errorPage != '') {
        $request_path_string = getRequestPathString(explode('/', 'page' . $errorPage));
        $request_path = getRequestPathArray($request_path_string);
        $psite = $request_path[1];
        if ((int) $psite > 0) {
            $sinfo = sSites()->get($psite);
            $siteID = (int) $psite;
        } else {
            $sinfo = sSites()->getByPName($psite);
            $siteID = $sinfo['ID'];
        }
        $pageMgr = new PageMgr($siteID);
        $pageID = $pageMgr->getPageIdByPname($request_path[count($request_path) - 1]);
        $page = $pageMgr->getPage($pageID);
        $pageInfo = $page->get();
        $version = $page->getLatestVersion();
        renderPage($page, $version, $pageInfo, $pageMgr, $sinfo);
    } else {
        echo $header;
    }
    die;
}
Example #2
0
 $rootlevel = $copyjobs[$i]["LEVEL"];
 $copystarted = true;
 $newPageID = $TargetPageMgr->add($target);
 if (!$newPageID) {
     $permissionDenied = true;
     break;
 } else {
     $newPage = $TargetPageMgr->getPage($newPageID);
     $newPage->copyFrom($sourcePage);
     $newPage->setActive(1);
     // Copy PName (and generate new, if needed)
     $sourcePName = $oldPageInfo['PNAME'];
     if (!$sourcePName) {
         $sourcePName = $oldPageInfo['NAME'];
     }
     if ($TargetPageMgr->getPageIdByPname($sourcePName)) {
         $sourcePName = $newPage->calcPName();
     }
     $newPage->setPName($sourcePName);
     $jsQueue->add($newPageID, HISTORYTYPE_PAGE, 'PAGE_ADD', sGuiUS(), NULL);
     $idmap[$oldpage] = $newPageID;
     // Inherit permissions of the parent of the newly created copy
     /*$allPerms = $sourcePage->permissions->getPermissions();
     		foreach($allPerms as $permIdx => $permItem) {
     			$allPerms[$permIdx]['OID'] = $newPageID;
     		}
     		$newPage->permissions->clear();
     		$newPage->permissions->setPermissions($allPerms);*/
     // copy Extensions
     $newPage->copyExtensionsFrom($sourcePage);
     $newPage->newVersion();
Example #3
0
    } else {
        // Throw status 404
        throwErrorPage('404');
    }
} elseif (strlen($psite) > 1) {
    $sinfo = sSites()->getByPName($psite);
    if ((int) $psite > 0) {
        $siteID = (int) $psite;
    } else {
        $siteID = $sinfo['ID'];
    }
    if ($siteID > 0) {
        $pageMgr = new PageMgr($siteID);
        $pname = $request_path[count($request_path) - 1];
        if (strlen($pname) > 0 && count($request_path) > 2 && strlen($request_path[count($request_path) - 1]) > 0) {
            $pageID = $pageMgr->getPageIdByPname($pname);
        }
        if ($pageID < 1 && $sinfo['ID'] > 0 && count($request_path) == 2) {
            // Use first page in that site
            $pagesList = $pageMgr->getTree($pageMgr->tree->getRoot(), 2);
            foreach ($pagesList as $currPage) {
                $tmpPage = $pageMgr->getPage($currPage['ID']);
                if ($tmpPage) {
                    $pageInfo = $tmpPage->get();
                    if ($pageInfo && $pageInfo['DELETED'] == 0 && $currPage['LEVEL'] == 2 && $pageID == 0) {
                        $pageID = $currPage['ID'];
                        $pagePName = $currPage['PNAME'];
                    }
                }
            }
            if ($pagePName) {
Example #4
0
 /**
  * Calculates a unique permanent name for this Page
  *
  * @param string $iteration (optional) Iteration
  * @return string Permanent name
  */
 function calcPName($iteration = "")
 {
     $pageID = $this->_id;
     $pinfo = $this->get();
     $pagename = $pinfo["NAME"];
     if ((int) sConfig()->getVar("CONFIG/CASE_SENSITIVE_URLS") == 0) {
         $pagename = strtolower($pagename);
     }
     $pname = $this->filterPName($pagename);
     if (is_numeric($pname)) {
         $pname = 'page_' . $pname;
     }
     $pageMgr = new PageMgr($this->getSite());
     if ($iteration != '') {
         $checkpinfo = $pageMgr->getPageIdByPname($pname . '_' . $iteration);
     } else {
         $checkpinfo = $pageMgr->getPageIdByPname($pname);
     }
     if ($checkpinfo["ID"] == $pageID) {
         if ($iteration != '') {
             return $pname . '_' . $iteration;
         } else {
             return $pname;
         }
     } else {
         if ($checkpinfo["ID"] == NULL) {
             if ($iteration != '') {
                 return $pname . '_' . $iteration;
             } else {
                 return $pname;
             }
         } else {
             if ($iteration == "") {
                 $iteration = 1;
             }
             return $this->calcPName(++$iteration);
         }
     }
 }
Example #5
0
function createSpecialURLfromShortURL($shortURL)
{
    $siteMgr = new Sites();
    $webRoot = rtrim(ltrim((string) sConfig()->getVar("CONFIG/DIRECTORIES/WEBROOT"), '/'), '/');
    $shortURL = urldecode($shortURL);
    // Remove webroot prefix, if present
    if (strlen($webRoot) && strpos($shortURL, $webRoot) === 0) {
        $shortURL = substr($shortURL, strlen($webRoot . '/'));
    }
    if (strlen($webRoot) && strpos($shortURL, '/' . $webRoot) === 0) {
        $shortURL = substr($shortURL, strlen('/' . $webRoot . '/'));
    }
    $urlArray = explode('/', ltrim(rtrim($shortURL, '/'), '/'));
    $fileMgr = sFileMgr();
    switch (strtolower($urlArray[0])) {
        case 'image':
            $specialType = 'IMG';
        case 'download':
            if (!$specialType) {
                $specialType = 'DOWN';
            }
            // Check for file
            $fileID = $fileMgr->getFileIdByPname($urlArray[1]);
            if ($fileID) {
                $specialURL = '§§LINKTO:' . $specialType . ':' . $fileID . '§§';
                if (count($urlArray) > 2) {
                    array_shift($urlArray);
                    array_shift($urlArray);
                    $specialURL .= '/' . implode('/', $urlArray);
                }
                return $specialURL;
            }
            break;
        default:
            // Check for page
            $siteInfo = $siteMgr->getByPName($urlArray[0]);
            if ($siteInfo) {
                $pageMgr = new PageMgr($siteInfo['ID']);
                $lastElement = $urlArray[count($urlArray) - 1];
                if (substr($lastElement, 0, 1) == ':') {
                    $lastElement = $urlArray[count($urlArray) - 2];
                    $suffix = '/' . $urlArray[count($urlArray) - 1];
                }
                $pName = $lastElement;
                $pageID = $pageMgr->getPageIdByPname($pName);
                if ($pageID) {
                    $specialURL = '§§LINKTO:PAGE:' . $siteInfo['ID'] . ':' . $pageID . '§§' . $suffix;
                    return $specialURL;
                }
            }
            break;
    }
    return false;
}