HomeHelpTrac

Ignore:
Timestamp:
01/22/09 23:18:33 (3 years ago)
Author:
Anton Lesnikov
Message:
  1. Default action 'Home' in modules
  2. 404 error if request not found
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/inc/classes/BxDolRequest.php

    r8410 r8756  
    3030         
    3131        $sFile = BX_DIRECTORY_PATH_MODULES . $aModule['path'] . $sFileName . '.php'; 
    32         if(file_exists($sFile)) 
     32        if(!file_exists($sFile)) 
     33            BxDolRequest::pageNotFound(); 
     34        else     
    3335            include($sFile); 
    3436    } 
    3537     
    36     function processAsAction($aModule, &$aRequest, $sClass = "Module") {         
    37         $sMethod = 'action' . str_replace(' ', '', ucwords(str_replace('_', ' ', array_shift($aRequest)))); 
     38    function processAsAction($aModule, &$aRequest, $sClass = "Module") { 
     39        $sAction = empty($aRequest) || (isset($aRequest[0]) && empty($aRequest[0])) ? 'Home' : array_shift($aRequest); 
     40         
     41        $sMethod = 'action' . str_replace(' ', '', ucwords(str_replace('_', ' ', $sAction))); 
    3842        return BxDolRequest::_perform($aModule, $sClass, $sMethod, $aRequest); 
    3943    } 
     
    4852         
    4953        $sFile = BX_DIRECTORY_PATH_MODULES . $aModule['path'] . 'classes/' . $sClass . '.php'; 
    50         if(!file_exists($sFile)) return; 
     54        if(!file_exists($sFile))  
     55            BxDolRequest::pageNotFound(); 
    5156         
    5257        require_once($sFile); 
    5358        $oModule = new $sClass($aModule); 
     59 
     60        if(method_exists($oModule, $sMethod)) 
     61            return call_user_func_array(array($oModule, $sMethod), $aParams); 
     62        else 
     63            BxDolRequest::pageNotFound(); 
     64    } 
     65    function pageNotFound() { 
     66        header('Status: 404 Not Found'); 
     67        header('HTTP/1.0 404 Not Found'); 
    5468         
    55         return method_exists($oModule, $sMethod) ? call_user_func_array(array($oModule, $sMethod), $aParams) : null; 
    56     } 
     69        if(file_exists(BX_DIRECTORY_PATH_ROOT . '404.html')) 
     70            readfile(BX_DIRECTORY_PATH_ROOT . '404.html'); 
     71        else 
     72            echo '404. Page Not Found'; 
     73        exit; 
     74    } 
    5775} 
    5876?> 
Note: See TracChangeset for help on using the changeset viewer.