Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Page/Type/Composer/FormLayoutSet.php
Строк: 117
<?php
namespace ConcreteCorePageTypeComposer;
use 
ConcreteCoreFoundationObject;
use 
ConcreteCorePageTypeType;
use 
PageType;
use 
Loader;
use 
ConcreteCorePageTypeComposerControlTypeType as PageTypeComposerControlType;

class 
FormLayoutSet extends Object {

    public function 
getPageTypeComposerFormLayoutSetID() {return $this->ptComposerFormLayoutSetID;}
    public function 
getPageTypeComposerFormLayoutSetName() {return $this->ptComposerFormLayoutSetName;}
    public function 
getPageTypeComposerFormLayoutSetDescription() {return $this->ptComposerFormLayoutSetDescription;}
    public function 
getPageTypeComposerFormLayoutSetDisplayOrder() {return $this->ptComposerFormLayoutSetDisplayOrder;}
    public function 
getPageTypeID() {return $this->ptID;}

    
/**
     * @return ConcreteCorePageTypeType
     */
    
public function getPageTypeObject() {return PageType::getByID($this->ptID);}
    
/** Returns the display name for this instance (localized and escaped accordingly to $format)
    * @param string $format = 'html' Escape the result in html format (if $format is 'html'). If $format is 'text' or any other value, the display name won't be escaped.
    * @return string
    */
    
public function getPageTypeComposerFormLayoutSetDisplayName($format 'html') {
        
$value tc('PageTypeComposerFormLayoutSetName'$this->ptComposerFormLayoutSetName);
        switch (
$format) {
            case 
'html':
                return 
h($value);
            case 
'text':
            default:
                return 
$value;
        }
    }
    public function 
getPageTypeComposerFormLayoutSetDisplayDescription($format 'html') {
        
$value tc('PageTypeComposerFormLayoutSetDescription'$this->ptComposerFormLayoutSetDescription);
        switch (
$format) {
            case 
'html':
                return 
h($value);
            case 
'text':
            default:
                return 
$value;
        }
    }
    public static function 
getList(Type $pagetype) {
        
$db Loader::db();
        
$ptComposerFormLayoutSetIDs $db->GetCol('select ptComposerFormLayoutSetID from PageTypeComposerFormLayoutSets where ptID = ? order by ptComposerFormLayoutSetDisplayOrder asc', array($pagetype->getPageTypeID()));
        
$list = array();
        foreach(
$ptComposerFormLayoutSetIDs as $ptComposerFormLayoutSetID) {
            
$set = static::getByID($ptComposerFormLayoutSetID);
            if (
is_object($set)) {
                
$list[] = $set;
            }
        }
        return 
$list;
    }

    public static function 
getByID($ptComposerFormLayoutSetID) {
        
$db Loader::db();
        
$r $db->GetRow('select * from PageTypeComposerFormLayoutSets where ptComposerFormLayoutSetID = ?', array($ptComposerFormLayoutSetID));
        if (
is_array($r) && $r['ptComposerFormLayoutSetID']) {
            
$set = new static;
            
$set->setPropertiesFromArray($r);
            return 
$set;
        }
    }

    public function 
export($fxml) {
        
$node $fxml->addChild('set');
        
$node->addAttribute('name'$this->getPageTypeComposerFormLayoutSetName());
        
$node->addAttribute('description'$this->getPageTypeComposerFormLayoutSetDescription());
        
$controls FormLayoutSetControl::getList($this);
        foreach(
$controls as $con) {
            
$con->export($node);
        }
    }

    public function 
updateFormLayoutSetName($ptComposerFormLayoutSetName) {
        
$db Loader::db();
        
$db->Execute('update PageTypeComposerFormLayoutSets set ptComposerFormLayoutSetName = ? where ptComposerFormLayoutSetID = ?', array(
            
$ptComposerFormLayoutSetName$this->ptComposerFormLayoutSetID
        
));
        
$this->ptComposerFormLayoutSetName $ptComposerFormLayoutSetName;
    }

    public function 
updateFormLayoutSetDescription($ptComposerFormLayoutSetDescription) {
        
$db Loader::db();
        
$db->Execute('update PageTypeComposerFormLayoutSets set ptComposerFormLayoutSetDescription = ? where ptComposerFormLayoutSetID = ?', array(
            
$ptComposerFormLayoutSetDescription$this->ptComposerFormLayoutSetID
        
));
        
$this->ptComposerFormLayoutSetDescription $ptComposerFormLayoutSetDescription;
    }


    public function 
updateFormLayoutSetDisplayOrder($displayOrder) {
        
$db Loader::db();
        
$db->Execute('update PageTypeComposerFormLayoutSets set ptComposerFormLayoutSetDisplayOrder = ? where ptComposerFormLayoutSetID = ?', array(
            
$displayOrder$this->ptComposerFormLayoutSetID
        
));
        
$this->ptComposerFormLayoutSetDisplayOrder $displayOrder;
    }

    public function 
delete() {
        
$controls FormLayoutSetControl::getList($this);
        foreach(
$controls as $control) {
            
$control->delete();
        }
        
$db Loader::db();
        
$db->Execute('delete from PageTypeComposerFormLayoutSets where ptComposerFormLayoutSetID = ?', array($this->ptComposerFormLayoutSetID));
        
$pagetype $this->getPageTypeObject();
        
$pagetype->rescanFormLayoutSetDisplayOrder();
    }

    public function 
rescanFormLayoutSetControlDisplayOrder() {
        
$sets FormLayoutSetControl::getList($this);
        
$displayOrder 0;
        foreach(
$sets as $s) {
            
$s->updateFormLayoutSetControlDisplayOrder($displayOrder);
            
$displayOrder++;
        }
    }

    public function 
duplicate(ConcreteCorePageTypeType $type)
    {
        
// first, create a new set based on the current one.
        
$set $type->addPageTypeComposerFormLayoutSet(
            
$this->getPageTypeComposerFormLayoutSetDisplayName(),
            
$this->getPageTypeComposerFormLayoutSetDescription()
        );
        
$controls FormLayoutSetControl::getList($this);
        foreach(
$controls as $control) {
            
$control->duplicate($set);
        }

    }


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