Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Page/Type/Composer/Control/Type/Type.php
Строк: 148
<?php
namespace ConcreteCorePageTypeComposerControlType;

use 
Loader;
use 
Core;
use 
ConcreteCoreFoundationObject;
use 
ConcreteCorePackagePackageList;

abstract class 
Type extends Object
{
    abstract public function 
getPageTypeComposerControlObjects();
    abstract public function 
getPageTypeComposerControlByIdentifier($identifier);
    abstract public function 
configureFromImportHandle($handle);

    public function 
controlTypeSupportsOutputControl() {return false;}
    public function 
getPageTypeComposerControlTypeName() {return $this->ptComposerControlTypeName;}
    public function 
getPageTypeComposerControlTypeDisplayName($format 'html')
    {
        
$value tc('PageTypeComposerControlTypeName'$this->getPageTypeComposerControlTypeName());
        switch (
$format) {
            case 
'html':
                return 
h($value);
            case 
'text':
            default:
                return 
$value;
        }
    }
    public function 
getPageTypeComposerControlTypeHandle() {return $this->ptComposerControlTypeHandle;}
    public function 
getPageTypeComposerControlTypeID() { return $this->ptComposerControlTypeID;}
    public function 
getPackageID() { return $this->pkgID;}
    public function 
getPackageHandle()
    {
        return 
PackageList::getHandle($this->pkgID);
    }
    public function 
getPackageObject() {return Package::getByID($this->pkgID);}

    public static function 
getByHandle($ptComposerControlTypeHandle)
    {
        
$db Loader::db();
        
$r $db->GetRow('select ptComposerControlTypeID, ptComposerControlTypeHandle, ptComposerControlTypeName, pkgID from PageTypeComposerControlTypes where ptComposerControlTypeHandle = ?', array($ptComposerControlTypeHandle));
        if (
is_array($r) && $r['ptComposerControlTypeHandle']) {
            
$txt Loader::helper('text');
            
$class '\Concrete\Core\Page\Type\Composer\Control\Type\' . $txt->camelcase($r['ptComposerControlTypeHandle']) . 'Type';
            $sc = Core::make($class);
            $sc->setPropertiesFromArray($r);

            return $sc;
        }
    }
    public static function getByID($ptComposerControlTypeID)
    {
        $db = Loader::db();
        $r = $db->GetRow('
select ptComposerControlTypeIDptComposerControlTypeHandleptComposerControlTypeNamepkgID from PageTypeComposerControlTypes where ptComposerControlTypeID = ?', array($ptComposerControlTypeID));
        if (is_array($r) && $r['
ptComposerControlTypeHandle']) {
            $txt = Loader::helper('
text');
            $class = '
\Concrete\Core\Page\Type\Composer\Control\Type\' . $txt->camelcase($r['ptComposerControlTypeHandle']) . 'Type';
            $sc = Core::make($class);
            $sc->setPropertiesFromArray($r);

            return $sc;
        }
    }

    public static function add($ptComposerControlTypeHandle, $ptComposerControlTypeName, $pkg = false)
    {
        $pkgID = 0;
        if (is_object($pkg)) {
            $pkgID = $pkg->getPackageID();
        }
        $db = Loader::db();
        $db->Execute('
insert into PageTypeComposerControlTypes (ptComposerControlTypeHandleptComposerControlTypeNamepkgIDvalues (?, ?, ?)', array($ptComposerControlTypeHandle, $ptComposerControlTypeName, $pkgID));

        return static::getByHandle($ptComposerControlTypeHandle);
    }

    public function delete()
    {
        $db = Loader::db();
        $db->Execute('
delete from PageTypeComposerControlTypes where ptComposerControlTypeID = ?', array($this->ptComposerControlTypeID));
    }

    public static function getList()
    {
        $db = Loader::db();
        $ids = $db->GetCol('
select ptComposerControlTypeID from PageTypeComposerControlTypes order by ptComposerControlTypeName asc');
        $types = array();
        foreach ($ids as $id) {
            $type = static::getByID($id);
            if (is_object($type)) {
                $types[] = $type;
            }
        }

        return $types;
    }

    public static function getListByPackage($pkg)
    {
        $db = Loader::db();
        $ids = $db->GetCol('
select ptComposerControlTypeID from PageTypeComposerControlTypes where pkgID = ? order by ptComposerControlTypeName asc', array($pkg->getPackageID()));
        $types = array();
        foreach ($ids as $id) {
            $type = static::getByID($id);
            if (is_object($type)) {
                $types[] = $type;
            }
        }

        return $types;
    }

    public function export($xml)
    {
        $type = $xml->addChild('
type');
        $type->addAttribute('
handle', $this->getPageTypeComposerControlTypeHandle());
        $type->addAttribute('
name', $this->getPageTypeComposerControlTypeName());
        $type->addAttribute('
package', $this->getPackageHandle());
    }

    public static function exportList($xml)
    {
        $list = self::getList();
        $nxml = $xml->addChild('
pagetypecomposercontroltypes');

        foreach ($list as $sc) {
            $sc->export($nxml);
        }
    }

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