Esempio n. 1
0
 /**
  * Create the redirection of an alias
  *
  * @return boolean true on success, false on failure
  * @access public
  * @static
  */
 function redirect()
 {
     //get aliases for current folder
     $dirname = array_pop(explode(DIRECTORY_SEPARATOR, dirname($_SERVER['SCRIPT_NAME'])));
     $aliases = CMS_module_cms_aliases::getByName($dirname);
     if (!$aliases) {
         //no alias found, go to 404
         CMS_grandFather::raiseError('No alias found for directory ' . dirname($_SERVER['SCRIPT_NAME']));
         CMS_view::redirect(PATH_SPECIAL_PAGE_NOT_FOUND_WR, true, 301);
     }
     //check each aliases returned to get the one which respond to current alias
     $matchAlias = false;
     $domain = @parse_url($_SERVER['REQUEST_URI'], PHP_URL_HOST) ? @parse_url($_SERVER['REQUEST_URI'], PHP_URL_HOST) : (@parse_url($_SERVER['HTTP_HOST'], PHP_URL_HOST) ? @parse_url($_SERVER['HTTP_HOST'], PHP_URL_HOST) : $_SERVER['HTTP_HOST']);
     $websites = array();
     if ($domain) {
         $websites = CMS_websitesCatalog::getWebsitesFromDomain($domain);
     }
     foreach ($aliases as $alias) {
         if (!$matchAlias && dirname($_SERVER['SCRIPT_NAME']) == substr($alias->getPath(), 0, -1)) {
             if ($websites) {
                 foreach ($websites as $website) {
                     //alias match path, check for website
                     if (!$alias->getWebsites() || !$website || in_array($website->getId(), $alias->getWebsites())) {
                         //alias match website, use it
                         $matchAlias = $alias;
                     }
                 }
             } else {
                 //alias match path, check for website
                 if (!$alias->getWebsites()) {
                     //alias match website, use it
                     $matchAlias = $alias;
                 }
             }
         }
     }
     if (!$matchAlias) {
         //no alias found, go to 404
         CMS_grandFather::raiseError('No alias found for directory ' . dirname($_SERVER['SCRIPT_NAME']) . ' and domain ' . $domain);
         CMS_view::redirect(PATH_SPECIAL_PAGE_NOT_FOUND_WR, true, 301);
     }
     //if alias is used as a page url, return page
     if ($matchAlias->urlReplaced()) {
         if (io::isPositiveInteger($matchAlias->getPageID())) {
             $page = CMS_tree::getPageById($matchAlias->getPageID());
         } else {
             //no valid page set, go to 404
             $matchAlias->raiseError('No page set for alias ' . $matchAlias->getID());
             CMS_view::redirect(PATH_SPECIAL_PAGE_NOT_FOUND_WR, true, 301);
         }
         if (!$page || $page->hasError()) {
             //no valid page found, go to 404
             $matchAlias->raiseError('Invalid page ' . $matchAlias->getPageID() . ' for alias ' . $matchAlias->getID());
             CMS_view::redirect(PATH_SPECIAL_PAGE_NOT_FOUND_WR, true, 301);
         }
         //return page path
         $pPath = $page->getHTMLURL(false, false, PATH_RELATIVETO_FILESYSTEM);
         if ($pPath) {
             if (file_exists($pPath)) {
                 return $pPath;
             } elseif ($page->regenerate(true)) {
                 clearstatcache();
                 if (file_exists($pPath)) {
                     return $pPath;
                 }
             }
         }
         //no valid url page found, go to 404
         $matchAlias->raiseError('Invalid url page ' . $matchAlias->getPageID() . ' for alias ' . $matchAlias->getID());
         CMS_view::redirect(PATH_SPECIAL_PAGE_NOT_FOUND_WR, true, 301);
     } else {
         //this is a redirection
         $params = isset($_SERVER['QUERY_STRING']) && $_SERVER['QUERY_STRING'] ? '?' . $_SERVER['QUERY_STRING'] : '';
         if (isset($_SERVER['HTTP_REFERER'])) {
             header("Referer: " . $_SERVER['HTTP_REFERER']);
         }
         if (io::isPositiveInteger($matchAlias->getPageID())) {
             //it's a redirection to an Automne Page
             $page = CMS_tree::getPageById($matchAlias->getPageID());
             if ($page && !$page->hasError()) {
                 $pageURL = CMS_tree::getPageValue($matchAlias->getPageID(), 'url');
                 if ($pageURL) {
                     CMS_view::redirect($pageURL . $params, true, $matchAlias->isPermanent() ? 301 : 302);
                 } else {
                     //no valid url page found, go to 404
                     $matchAlias->raiseError('Invalid url page ' . $matchAlias->getPageID() . ' for alias ' . $matchAlias->getID());
                     CMS_view::redirect(PATH_SPECIAL_PAGE_NOT_FOUND_WR, true, 301);
                 }
             } else {
                 //no valid page found, go to 404
                 $matchAlias->raiseError('Invalid page ' . $matchAlias->getPageID() . ' for alias ' . $matchAlias->getID());
                 CMS_view::redirect(PATH_SPECIAL_PAGE_NOT_FOUND_WR, true, 301);
             }
         } elseif ($matchAlias->getURL()) {
             //it's a redirection to an URL
             CMS_view::redirect($matchAlias->getURL(), true, $matchAlias->isPermanent() ? 301 : 302);
         } else {
             //no valid redirection found, go to 404
             $matchAlias->raiseError('Invalid redirection for alias ' . $matchAlias->getID());
             CMS_view::redirect(PATH_SPECIAL_PAGE_NOT_FOUND_WR, true, 301);
         }
     }
 }
Esempio n. 2
0
// Current alias object to manipulate
if ($aliasId) {
    $item = CMS_module_cms_aliases::getByID($aliasId);
    if (io::isPositiveInteger($item->getParent())) {
        $parentAlias = CMS_module_cms_aliases::getByID($item->getParent());
    }
} else {
    $item = new CMS_resource_cms_aliases();
    if (io::isPositiveInteger($fatherId)) {
        // Parent alias
        $parentAlias = CMS_module_cms_aliases::getByID($fatherId);
    }
}
$items = array();
$selectContent = array();
$aliases = CMS_module_cms_aliases::getAll(false, true);
foreach ($aliases as $alias) {
    if ($alias->getID() != $item->getID() && !$alias->hasParent($item->getID())) {
        $lineage = $alias->getPath();
        $selectContent[$lineage] = array($alias->getID(), $lineage);
    }
}
ksort($selectContent);
array_unshift($selectContent, array(0, '/'));
$selectContent = sensitiveIO::jsonEncode(array_values($selectContent));
$controlerURL = PATH_ADMIN_MODULES_WR . '/' . $codename . '/controler.php';
$parentId = isset($parentAlias) && is_object($parentAlias) ? $parentAlias->getId() : 0;
//mandatory
$mandatory = '<span class="atm-red">*</span> ';
//create pseudo href for redirection infos
$href = new CMS_href();
Esempio n. 3
0
 /**
  * Method used for compatibility with cms_aliases V1
  *
  * @return string
  * @access public
  */
 function redirect()
 {
     return CMS_module_cms_aliases::redirect();
 }
Esempio n. 4
0
                 if ($aliasId) {
                     $log->logMiscAction(CMS_log::LOG_ACTION_RESOURCE_EDIT_CONTENT, $cms_user, 'Edit Alias ' . $item->getPath(), 'cms_aliases');
                 } else {
                     $log->logMiscAction(CMS_log::LOG_ACTION_RESOURCE_EDIT_CONTENT, $cms_user, 'Create Alias ' . $item->getPath(), 'cms_aliases');
                 }
                 $cms_message = $cms_language->getMessage(MESSAGE_ACTION_OPERATION_DONE);
                 $content = array('success' => true, 'id' => $item->getID());
             }
         }
     } else {
         $cms_message = $cms_language->getMessage(MESSAGE_ERROR_ALIAS_PROTECTED, false, 'cms_aliases');
         $item->raiseError('Error during modification of alias ' . $item->getID() . '. Alias is protected.');
     }
     break;
 case 'delete':
     $item = CMS_module_cms_aliases::getByID($aliasId);
     if (!$item->isProtected()) {
         $path = $item->getPath();
         if ($item->destroy()) {
             //Log action
             $log = new CMS_log();
             $log->logMiscAction(CMS_log::LOG_ACTION_RESOURCE_DELETE, $cms_user, 'Delete Alias ' . $path, 'cms_aliases');
             $cms_message = $cms_language->getMessage(MESSAGE_ACTION_OPERATION_DONE);
             $content = array('success' => true);
         } else {
             $cms_message = $cms_language->getMessage(MESSAGE_PAGE_ACTION_DELETE_ERROR);
         }
     } else {
         $cms_message = $cms_language->getMessage(MESSAGE_ERROR_ALIAS_PROTECTED, false, 'cms_aliases');
         $category->raiseError('Error during modification of alias ' . $item->getID() . '. Alias is protected.');
     }
Esempio n. 5
0
$module = CMS_modulesCatalog::getByCodename($codename);
if (!$module) {
    CMS_grandFather::raiseError('Unknown module or module for codename : ' . $codename);
    $view->show();
}
//CHECKS user has module clearance
if (!$cms_user->hasModuleClearance($codename, CLEARANCE_MODULE_EDIT)) {
    CMS_grandFather::raiseError('User has no rights on module : ' . $codename);
    $view->setActionMessage($cms_language->getmessage(MESSAGE_ERROR_MODULE_RIGHTS, array($module->getLabel($cms_language))));
    $view->show();
}
//get queried module aliases
if ($pageId) {
    $aliases = CMS_module_cms_aliases::getAllByPage($rootId, $pageId, true);
} else {
    $aliases = CMS_module_cms_aliases::getAll($rootId, true);
}
$nodes = array();
foreach ($aliases as $alias) {
    $hasSiblings = $alias->hasSubAliases();
    if ($alias->hasError()) {
        $label = ($alias->getWebsites() ? '<span style="color:red;">*</span>' : '') . '<span style="color:red;">' . $alias->getAlias() . '</span>';
    } elseif ($pageId && $alias->getPageID() == $pageId && $alias->urlReplaced()) {
        $label = ($alias->getWebsites() ? '<span style="color:red;">*</span>' : '') . '<span style="color:green;">' . $alias->getAlias() . '</span>';
    } else {
        $label = ($alias->getWebsites() ? '<span style="color:red;">*</span>' : '') . $alias->getAlias();
    }
    if ($alias->hasError()) {
        $qtip = '<span style="color:red;"><strong>' . $cms_language->getMessage(MESSAGE_PAGE_ALIAS_ERROR, false, 'cms_aliases') . '</strong></span><br />';
    } else {
        $qtip = $cms_language->getMessage(MESSAGE_PAGE_ALIAS, false, 'cms_aliases') . ' <strong>' . $alias->getPath() . '</strong><br />';