Вход Регистрация
Файл: contao-3.5.8/system/modules/core/pages/PageError403.php
Строк: 56
<?php

/**
 * Contao Open Source CMS
 *
 * Copyright (c) 2005-2016 Leo Feyer
 *
 * @license LGPL-3.0+
 */

namespace Contao;


/**
 * Provide methods to handle an error 403 page.
 *
 * @author Leo Feyer <https://github.com/leofeyer>
 */
class PageError403 extends Frontend
{

    
/**
     * Generate an error 403 page
     *
     * @param integer    $pageId
     * @param PageModel $objRootPage
     */
    
public function generate($pageId$objRootPage=null)
    {
        
// Add a log entry
        
$this->log('Access to page ID "' $pageId '" denied'__METHOD__TL_ERROR);

        
// Use the given root page object if available (thanks to Andreas Schempp)
        
if ($objRootPage === null)
        {
            
$objRootPage $this->getRootPageFromUrl();
        }
        else
        {
            
$objRootPage PageModel::findPublishedById(is_integer($objRootPage) ? $objRootPage $objRootPage->id);
        }

        
// Look for a 403 page
        
$obj403 PageModel::find403ByPid($objRootPage->id);

        
// Die if there is no page at all
        
if (null === $obj403)
        {
            
header('HTTP/1.1 403 Forbidden');
            
die_nicely('be_forbidden''Forbidden');
        }

        
// Generate the error page
        
if (!$obj403->autoforward || !$obj403->jumpTo)
        {
            
/** @var PageModel $objPage */
            
global $objPage;

            
// Die nicely if the page is a 403 page already (see #8060)
            
if ($objPage && $objPage->type == 'error_403')
            {
                
header('HTTP/1.1 403 Forbidden');
                
die_nicely('be_forbidden''Forbidden');
            }

            
$objPage $obj403->loadDetails();

            
/** @var PageRegular $objHandler */
            
$objHandler = new $GLOBALS['TL_PTY']['regular']();

            
header('HTTP/1.1 403 Forbidden');
            
$objHandler->generate($objPage);

            exit;
        }

        
// Forward to another page
        
$objNextPage PageModel::findPublishedById($obj403->jumpTo);

        if (
null === $objNextPage)
        {
            
header('HTTP/1.1 403 Forbidden');
            
$this->log('Forward page ID "' $obj403->jumpTo '" does not exist'__METHOD__TL_ERROR);
            
die_nicely('be_no_forward''Forward page not found');
        }

        
$this->redirect($objNextPage->getFrontendUrl(($obj403->redirect == 'temporary') ? 302 301));
    }
}
Онлайн: 0
Реклама