Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Attribute/View.php
Строк: 138
<?php
namespace ConcreteCoreAttribute;
use 
View as ConcreteView;
use 
Loader;
use 
ConcreteCoreAttributeValueValue as AttributeValue;
use 
ConcreteCoreAttributeKeyKey as AttributeKey;
use 
Environment;
use 
ConcreteCoreViewAbstractView;

class 
View extends AbstractView {

    protected 
$attributeValue;
    protected 
$attributeKey;
    protected 
$attributeType;
    protected 
$attributePkgHandle;
    protected 
$initialViewToRender;
    protected 
$viewToRender;

    protected function 
getValue() {return $this->attributeValue;}
    protected function 
getAttributeKey() {return $this->attributeKey;}

    protected function 
constructView($mixed) {
        if (
$mixed instanceof AttributeValue) {
            
$this->attributeValue $mixed;
            
$this->attributeKey $mixed->getAttributeKey();
            
$this->attributeType $mixed->getAttributeTypeObject();
        } else if (
$mixed instanceof AttributeKey) {
            
$this->attributeKey $mixed;
            
$this->attributeType $this->attributeKey->getAttributeType();
        } else {
            
$this->attributeType $mixed;
        }
        
$this->attributePkgHandle $this->attributeType->getPackageHandle();
        
$this->controller $this->attributeType->getController();
        
$this->controller->setAttributeKey($this->attributeKey);
        
$this->controller->setAttributeValue($this->attributeValue);
        if (
is_object($this->attributeKey)) {
            
$this->controller->set('akID'$this->attributeKey->getAttributeKeyID());
        }
    }

    public function 
start($state) {
        
$this->initialViewToRender $state;
        
$this->viewToRender $state;
        
$env Environment::get();
        
$atHandle $this->attributeType->getAttributeTypeHandle();
        
$r $env->getRecord(DIRNAME_ATTRIBUTES '/' $atHandle '/' $this->viewToRender '.php'$this->attributePkgHandle);
        if (
$this->initialViewToRender == 'composer' && !$r->exists()) {
            
$this->viewToRender 'form';
        }
    }

    public function 
startRender() {
        
$js $this->attributeType->getAttributeTypeFileURL($this->viewToRender '.js');
        
$css $this->attributeType->getAttributeTypeFileURL($this->viewToRender '.css');
        
$html Loader::helper('html');
        if (
$js != false) {
            
$this->addOutputAsset($html->javascript($js));
        }
        if (
$css != false) {
            
$this->addOutputAsset($html->css($css));
        }
    }

    public function 
setupRender() {
        
$this->runControllerTask();
        
$atHandle $this->attributeType->getAttributeTypeHandle();
        
$env Environment::get();
        
$r $env->getRecord(DIRNAME_ATTRIBUTES '/' $atHandle '/' $this->viewToRender '.php'$this->attributePkgHandle);
        
$file $r->file;
        
$this->setViewTemplate($file);
    }

    public function 
setupController() {
        if (!
$this->controller) {
            
$this->controller $this->attributeType->getController();
            
$this->controller->setAttributeKey($this->attributeKey);
            
$this->controller->setAttributeValue($this->attributeValue);
            if (
is_object($this->attributeKey)) {
                
$this->controller->set('akID'$this->attributeKey->getAttributeKeyID());
            }
        }
    }

    public function 
runControllerTask() {
        
$this->controller->on_start();
        
$action $this->initialViewToRender;
        if (
$action == 'composer' && !method_exists($this->controller'composer')) {
            
$action 'form';
        }
        
$this->controller->runAction($action);
        
$this->controller->on_before_render();
    }

    public function 
action($action) {
        
$uh Loader::helper('concrete/urls');
        
$a func_get_args();
        
$args '';
        for (
$i 1$i count($a); $i++) {
            
$args .= '&args[]=' $a[$i];
        }
        
$url $uh->getToolsURL('attribute_type_actions') . '?atID=' $this->controller->attributeType->getAttributeTypeID();
        if (
is_object($this->attributeKey)) {
            
$url .= '&akID=' $this->attributeKey->getAttributeKeyID();
        }
        
$url .= '&action=' $action $args;
        return 
$url;
    }

    public function 
finishRender($contents) {
        print 
$contents;
    }

    protected function 
onBeforeGetContents() {
        @
Loader::element(DIRNAME_ATTRIBUTES '/' $view '_header', array('type' => $this->attributeType));
    }

    protected function 
onAfterGetContents() {
        @
Loader::element(DIRNAME_ATTRIBUTES '/' $view '_footer', array('type' => $this->attributeType));
    }

    public function 
field($fieldName) {
        return 
$this->controller->field($fieldName);
    }


}
Онлайн: 0
Реклама