Вход Регистрация
Файл: library/XenForo/Route/PrefixAdmin/Permissions.php
Строк: 112
<?php

/**
 * Route prefix handler for permissions in the admin control panel.
 *
 * @package XenForo_Permissions
 */
class XenForo_Route_PrefixAdmin_Permissions implements XenForo_Route_Interface
{
    
/**
     * Match a specific route for an already matched prefix.
     *
     * @see XenForo_Route_Interface::match()
     */
    
public function match($routePathZend_Controller_Request_Http $requestXenForo_Router $router)
    {
        
$components explode('/'$routePath);
        
$action strtolower(array_shift($components));

        if (
count($components) == 1)
        {
            
// permission/<action>, etc
            
$action .= reset($components);
        }
        else
        {
            switch (
$action)
            {
                case 
'permission':
                    
// permission/<group>/<permission>/<action>
                    
$request->setParam('permission_group_id'array_shift($components));
                    
$request->setParam('permission_id'array_shift($components));
                    break;

                case 
'permission-group':
                    
// permission-group/<group>/<action>
                    
$request->setParam('permission_group_id'array_shift($components));
                    break;

                case 
'interface-group':
                    
// interface-group/<group>/<action>
                    
$request->setParam('interface_group_id'array_shift($components));
                    break;
            }

            
$action .= implode(''$components);
        }

        return 
$router->getRouteMatch('XenForo_ControllerAdmin_Permission'$action'permissionsDevelopment');
    }

    
/**
     * Method to build a link to the specified page/action with the provided
     * data and params.
     *
     * @see XenForo_Route_BuilderInterface
     */
    
public function buildLink($originalPrefix$outputPrefix$action$extension$data, array &$extraParams)
    {
        if (
$data)
        {
            
XenForo_Link::prepareExtensionAndAction($extension$action);

            
$actionParts explode('/'$action2);
            
$url $outputPrefix '/' $actionParts[0];

            switch (
strtolower($actionParts[0]))
            {
                case 
'permission':
                    if (!empty(
$data['permission_group_id']) && !empty($data['permission_id']))
                    {
                        
$url .= '/' $data['permission_group_id'] . '/' $data['permission_id'];
                    }
                    break;

                case 
'permission-group':
                    if (!empty(
$data['permission_group_id']))
                    {
                        
$url .= '/' $data['permission_group_id'];
                    }
                    break;

                case 
'interface-group':
                    if (!empty(
$data['interface_group_id']))
                    {
                        
$url .= '/' $data['interface_group_id'];
                    }
                    break;
            }

            if (isset(
$actionParts[1]))
            {
                
$url .= '/' $actionParts[1];
            }

            return 
$url $extension;
        }

        return 
false;
    }
}
Онлайн: 1
Реклама