Вход Регистрация
Файл: library/XenForo/ControllerAdmin/AdminTemplateModification.php
Строк: 138
<?php

class XenForo_ControllerAdmin_AdminTemplateModification extends XenForo_ControllerAdmin_TemplateModificationAbstract
{
    protected 
$_viewPrefix 'XenForo_ViewAdmin_AdminTemplateModification_';
    protected 
$_templatePrefix 'admin_template_modification_';
    protected 
$_routePrefix 'admin-template-mods';
    protected 
$_dataWriter 'XenForo_DataWriter_AdminTemplateModification';

    protected function 
_preDispatch($action)
    {
        
$this->assertDebugMode();
        
$this->assertAdminPermission('dev');
    }

    public function 
actionAutoComplete()
    {
        
$q $this->_input->filterSingle('q'XenForo_Input::STRING);

        if (
$q)
        {
            
$templates $this->_getAdminTemplateModel()->getAdminTemplatesLikeTitle($q'r'10);
        }
        else
        {
            
$templates = array();
        }

        
$view $this->responseView();
        
$view->jsonParams = array(
            
'results' => XenForo_Application::arrayColumn($templates'title''title')
        );
        return 
$view;
    }

    public function 
actionContents()
    {
        
$templateName $this->_input->filterSingle('template'XenForo_Input::STRING);

        
$template $this->_getAdminTemplateModel()->getAdminTemplateByTitle($templateName);

        
$view $this->responseView();
        
$view->jsonParams = array(
            
'template' => $template $this->_adjustTemplateContentForDisplay($template['template']) : false
        
);
        return 
$view;
    }

    protected function 
_getTestContent(XenForo_DataWriter_TemplateModificationAbstract $dw)
    {
        
$template $this->_getAdminTemplateModel()->getAdminTemplateByTitle($dw->get('template'));
        return (
$template $template['template'] : false);
    }

    protected function 
_adjustTemplateContentForDisplay($content)
    {
        
$propertyModel $this->_getStylePropertyModel();
        
$properties $propertyModel->keyPropertiesByName(
            
$propertyModel->getEffectiveStylePropertiesInStyle(-1)
        );

        return 
$propertyModel->replacePropertiesInTemplateForEditor(
            
$content, -1$propertiestrue
        
);
    }

    protected function 
_adjustModificationForEdit(array $modification)
    {
        if (!empty(
$modification['modification_id']))
        {
            
$propertyModel $this->_getStylePropertyModel();
            
$properties $propertyModel->keyPropertiesByName(
                
$propertyModel->getEffectiveStylePropertiesInStyle(-1)
            );

            if (
$modification['action'] == 'str_replace')
            {
                
// can't mess with the regular expression safely
                
$modification['find'] = $propertyModel->replacePropertiesInTemplateForEditor(
                    
$modification['find'], -1$propertiestrue
                
);
            }

            
$modification['replace'] = $propertyModel->replacePropertiesInTemplateForEditor(
                
$modification['replace'], -1$propertiestrue
            
);
        }

        return 
$modification;
    }

    protected function 
_modifyModificationDwData(array &$dwData$modificationId)
    {
        
$propertyModel $this->_getStylePropertyModel();
        
$properties $propertyModel->keyPropertiesByName($propertyModel->getEffectiveStylePropertiesInStyle(-1));

        
$propertyModel->translateEditorPropertiesToArray(
            
$dwData['find'], $dwData['find'], $properties
        
);
        
$propertyModel->translateEditorPropertiesToArray(
            
$dwData['replace'], $dwData['replace'], $properties
        
);
    }

    protected function 
_getTemplatesByIds(array $ids)
    {
        return 
$this->_getAdminTemplateModel()->getAdminTemplatesByIds($ids);
    }

    
/**
     * @return XenForo_Model_AdminTemplate
     */
    
protected function _getAdminTemplateModel()
    {
        return 
$this->getModelFromCache('XenForo_Model_AdminTemplate');
    }

    
/**
     * @return XenForo_Model_StyleProperty
     */
    
protected function _getStylePropertyModel()
    {
        return 
$this->getModelFromCache('XenForo_Model_StyleProperty');
    }

    
/**
     * @return XenForo_Model_AdminTemplateModification
     */
    
protected function _getModificationModel()
    {
        return 
$this->getModelFromCache('XenForo_Model_AdminTemplateModification');
    }
}
Онлайн: 0
Реклама