$label = $redirectlink->getExternalLink(); $redirectlink->setTarget('_blank'); $redirect = $redirectlink->getHTML(io::ellipsis($label, '80'), MOD_STANDARD_CODENAME, RESOURCE_DATA_LOCATION_EDITED); } } else { $label = $cms_language->getMessage(MESSAGE_PAGE_PAGE) . ' "' . $page->getTitle() . '" (' . $page->getID() . ')'; $redirect = '<a href="' . $page->getURL(false, false, PATH_RELATIVETO_WEBROOT, true) . '">' . io::htmlspecialchars($label) . '</a>'; } $content = ' <div id="atm-center"> <div class="atm-alert">' . $cms_language->getMessage(MESSAGE_PAGE_REDIRECT, array($redirect)) . '</div> </div>'; } else { if (isset($_GET['url'])) { $url = urldecode($_GET['url']); if ($page = CMS_tree::analyseURL($url)) { $label = $cms_language->getMessage(MESSAGE_PAGE_PAGE) . ' "' . $page->getTitle() . '" (' . $page->getID() . ')'; $redirect = '<a href="' . $page->getURL(false, false, PATH_RELATIVETO_WEBROOT, true) . '">' . io::htmlspecialchars($label) . '</a>'; } else { $redirect = '<a href="' . $url . '" target="_blank">' . io::htmlspecialchars($url) . '</a>'; } $content = ' <div id="atm-center"> <div class="atm-alert">' . $cms_language->getMessage(MESSAGE_PAGE_REDIRECT, array($redirect)) . '</div> </div>'; } else { $content = ' <div id="atm-center"> <div class="atm-alert">' . $cms_language->getMessage(MESSAGE_PAGE_PAGE_REDIRECT_ERROR) . '</div> </div>'; }
} elseif (!$fromtab) { $fromtab = 'public'; } if (!$pageUrl && !$pageId && !$from) { CMS_grandFather::raiseError('Missing page parameter ...'); $view->show(); } elseif (!$pageUrl && !$pageId) { $pageId = $from; } $jscontent = ''; $isAutomne = $querystring = false; //current http host $httpHost = @parse_url($_SERVER['HTTP_HOST'], PHP_URL_HOST) ? @parse_url($_SERVER['HTTP_HOST'], PHP_URL_HOST) : $_SERVER['HTTP_HOST']; if ($pageUrl && !$pageId) { //get page from requested url if ($cms_page = CMS_tree::analyseURL($pageUrl)) { $pageId = $cms_page->getID(); $isAutomne = true; } } elseif ($pageId) { //try to instanciate the requested page $cms_page = CMS_tree::getPageByID($pageId); $isAutomne = true; } if (!isset($cms_page) || !$cms_page || !is_object($cms_page) || $cms_page->hasError() || $cms_page->getID() != APPLICATION_ROOT_PAGE_ID && !CMS_tree::hasAncestor($cms_page->getID())) { if ($pageUrl && !$isAutomne) { if ($pageUrl == PATH_REALROOT_WR . '/' && $httpHost != @parse_url(CMS_websitesCatalog::getMainURL(), PHP_URL_HOST)) { //Website domain is not properly set if ($cms_user->hasAdminClearance(CLEARANCE_ADMINISTRATION_EDITVALIDATEALL)) { $jscontent = "\n\t\t\t\t\tAutomne.message.popup({\n\t\t\t\t\t\ttitle: \t\t'" . $cms_language->getJSMessage(MESSAGE_PAGE_INCORRECT_DOMAIN) . "', \n\t\t\t\t\t\tmsg: \t\t'" . $cms_language->getJSMessage(MESSAGE_PAGE_INCORRECT_WEBSITE_CONFIG, array($httpHost, @parse_url(CMS_websitesCatalog::getMainURL(), PHP_URL_HOST))) . "',\n\t\t\t\t\t\tbuttons:\tExt.MessageBox.OK,\n\t\t\t\t\t\ticon: \t\tExt.MessageBox.WARNING,\n\t\t\t\t\t\tfn: \t\tfunction (button) {\n\t\t\t\t\t\t\t\t\t\tvar window = new Automne.frameWindow({\n\t\t\t\t\t\t\t\t\t\t\tid:\t\t\t\t'websitesWindow',\n\t\t\t\t\t\t\t\t\t\t\tframeURL:\t\t'" . PATH_MAIN_WR . "/admin-v3/websites.php',\n\t\t\t\t\t\t\t\t\t\t\tallowFrameNav:\ttrue,\n\t\t\t\t\t\t\t\t\t\t\twidth:\t\t\t750,\n\t\t\t\t\t\t\t\t\t\t\theight:\t\t\t580\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\twindow.show();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t"; } else {
$csvDatas = $csvFile->readContent('csv', 'trim', array('delimiter' => ';', 'enclosure' => '"', 'strict' => true)); $rules = array(); foreach ($csvDatas as $line => $csvData) { if (isset($csvData[0]) && $csvData[0] && isset($csvData[1]) && $csvData[1]) { $rules[$csvData[0]] = $csvData[1]; } } if (isset($rules[$_SERVER['REQUEST_URI']]) && io::isPositiveInteger($rules[$_SERVER['REQUEST_URI']])) { $page = CMS_tree::getPageById($rules[$_SERVER['REQUEST_URI']]); } elseif (isset($rules[parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)]) && io::isPositiveInteger($rules[parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)])) { $page = CMS_tree::getPageById($rules[parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH)]); } } if (!isset($page)) { //get page from requested url $page = CMS_tree::analyseURL($_SERVER['REQUEST_URI'], false); } //get redirection URL for page if (isset($page) && is_object($page) && !$page->hasError() && $page->getStatus()->getLocation() != RESOURCE_LOCATION_DELETED) { //get page file $pageURL = $page->getURL(substr($basename, 0, 5) == 'print' ? true : false, false, PATH_RELATIVETO_FILESYSTEM); if (file_exists($pageURL)) { $redirectTo = $page->getURL(substr($basename, 0, 5) == 'print' ? true : false); } else { //try to regenerate page if ($page->regenerate(true)) { clearstatcache(); if (file_exists($pageURL)) { $redirectTo = $page->getURL(substr($basename, 0, 5) == 'print' ? true : false); } }
/** * Force page regeneration for given URL (need to be logged and to have regen rights) */ function atm_regen() { global $cms_user; if (isset($_SERVER['REQUEST_URI']) && isset($_REQUEST['atm-regen']) && isset($cms_user) && is_object($cms_user) && $cms_user->hasAdminClearance(CLEARANCE_ADMINISTRATION_REGENERATEPAGES)) { $p = CMS_tree::analyseURL($_SERVER['REQUEST_URI']); if ($p && is_object($p) && !$p->hasError()) { $p->regenerate(true); } } }
/** * Redirect page to another one * Take care of redirections inside Automne administration * * @param string $url : the url to redirect to * @param boolean $exit : does the script must exit now ? (default : true) * @param integer $type : the http redirection code to use. Accept 302 and 301 (default : 302) * @return boolean * @access public * @static */ static function redirect($url, $exit = true, $type = 302) { $url = trim($url); if (!$url || !@parse_url($url)) { CMS_grandFather::raiseError('Try to make a redirection to an empty or invalid url: ' . $url); return false; } if (headers_sent()) { CMS_grandFather::raiseError('Try to make a redirection to ' . $url . ' while content already sent to browser.'); return false; } if ($type == 301) { header('HTTP/1.x 301 Moved Permanently', true, 301); } elseif ($type == 302) { header('HTTP/1.x 302 Found', true, 302); } elseif ($type == 303) { header('HTTP/1.x 303 See Other', true, 303); } //in case of redirect in an admin frame, send to information page if (isset($_REQUEST['atm-context']) && $_REQUEST['atm-context'] == 'adminframe') { if (strpos($url, PATH_FORBIDDEN_WR) === 0 || strpos($url, PATH_SPECIAL_PAGE_NOT_FOUND_WR) === 0) { header('Location: ' . $url); } else { $page = CMS_tree::analyseURL($url); if ($page && is_object($page) && !$page->hasError()) { header('Location: ' . PATH_ADMIN_WR . '/page-redirect-info.php?pageId=' . $page->getID()); } else { header('Location: ' . PATH_ADMIN_WR . '/page-redirect-info.php?url=' . $url); } } } else { header('Location: ' . $url); } if ($exit) { exit; } return true; }