Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Page/Type/Composer/Control/CorePageProperty/CorePageProperty.php
Строк: 126
<?php 
namespace ConcreteCorePageTypeComposerControlCorePageProperty;
use 
Loader;
use 
Environment;
use 
Page;
use 
ConcreteCoreFoundationObject;
use 
Controller;
abstract class 
CorePageProperty extends ConcreteCorePageTypeComposerControlControl {

    protected 
$propertyHandle;
    protected 
$ptComposerControlTypeHandle 'core_page_property';
    private static 
$ptComposerSaveRequest null;
    private static 
$ptComposerRequestControlsProcessed = array();
    
    public function 
addAssetsToRequest(Controller $cnt) {

    }

    public function 
clearComposerRequestProcessControls() {
        
self::$ptComposerRequestControlsProcessed = array();
    }

    public function 
removePageTypeComposerControlFromPage() {
        return 
false;
    }

    public function 
isPageTypeComposerControlValueEmpty() {
        return 
$this->getPageTypeComposerControlDraftValue() != '';
    }

    public function 
export($node) {
        
$node->addAttribute('handle'$this->getCorePagePropertyHandle());
    }

    public static function 
getPageTypeComposerSaveRequest() {
        if (
null === self::$ptComposerSaveRequest) {
            
self::$ptComposerSaveRequest = array();
        }
        return 
self::$ptComposerSaveRequest;
    }

    public function 
shouldPageTypeComposerControlStripEmptyValuesFromPage() {
        return 
false;
    }

    public function 
pageTypeComposerFormControlSupportsValidation() {
        return 
true;
    }

    public function 
addPageTypeComposerControlRequestValue($key$value) {
        
self::$ptComposerSaveRequest[$key] = $value;
    }    

    public function 
setCorePagePropertyHandle($propertyHandle) {
        
$this->setPageTypeComposerControlIdentifier($propertyHandle);
        
$this->propertyHandle $propertyHandle;
    }

    public function 
getCorePagePropertyHandle() {
        return 
$this->propertyHandle;
    }
    
    public function 
getPageTypeComposerControlCustomTemplates() {
        return array();
    }

    public function 
publishToPage(Page $c$data$controls) {
        
array_push(self::$ptComposerRequestControlsProcessed$this);
        
// now we check to see if we have any more core controls to process in this request
        
$coreControls = array();
        foreach(
$controls as $cnt) {
            if (
$cnt->getPageTypeComposerControlTypeHandle() == $this->ptComposerControlTypeHandle) {
                
$coreControls[] = $controls;
            }
        }
        if (
count(self::$ptComposerRequestControlsProcessed) == count($coreControls)) {
            
// this was the last one. so we're going to loop through our saved request
            // and do the page update once, rather than four times.
            
$c->update(self::$ptComposerSaveRequest);
        }
    }


    public function 
render($label$customTemplate$description) {
        
$env Environment::get();
        
$form Loader::helper('form');
        
$set $this->getPageTypeComposerFormLayoutSetControlObject()->getPageTypeComposerFormLayoutSetObject();
        
$control $this;
        
        if (
$customTemplate) {
            
$rec $env->getRecord(DIRNAME_ELEMENTS '/' DIRNAME_PAGE_TYPES '/' DIRNAME_COMPOSER '/' DIRNAME_COMPOSER_ELEMENTS_CONTROLS '/' $this->ptComposerControlTypeHandle '/' $this->propertyHandle '/' DIRNAME_BLOCK_TEMPLATES_COMPOSER '/' $customTemplate);
            if (
$rec->exists()) {
                
$template $rec->file;
            }
        }

        if (!isset(
$template)) {
            
$template $env->getPath(DIRNAME_ELEMENTS '/' DIRNAME_PAGE_TYPES '/' DIRNAME_COMPOSER '/' DIRNAME_COMPOSER_ELEMENTS_CONTROLS '/' $this->ptComposerControlTypeHandle '/' $this->propertyHandle '.php');
        }

        include(
$template);
    }

    public function 
validate() {return true;}

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