Вход Регистрация
Файл: concrete5.7.5.6/concrete/src/Permission/Access/Entity/Type.php
Строк: 193
<?php
namespace ConcreteCorePermissionAccessEntity;

use 
ConcreteCoreFoundationObject;
use 
ConcreteCorePermissionCategory;
use 
GettextTranslations;
use 
Loader;
use 
Config;
use 
Core;
use 
URL;
use 
ConcreteCorePackagePackageList;

class 
Type extends Object
{

    public function 
getAccessEntityTypeID()
    {
        return 
$this->petID;
    }

    public function 
getAccessEntityTypeHandle()
    {
        return 
$this->petHandle;
    }

    public function 
getAccessEntityTypeName()
    {
        return 
$this->petName;
    }

    
/**
     * Returns the controller class for the currently selected captcha library
     */
    
public function getAccessEntityTypeClass()
    {
        
$class overrideable_core_class('Core\Permission\Access\Entity\'
            . Loader::helper('
text')->camelcase($this->petHandle) . 'Entity',
            DIRNAME_CLASSES . '
/Permission/Access/Entity/'
            . Loader::helper('
text')->camelcase($this->petHandle) . 'Entity.php',
            $this->getPackageHandle()
        );
        return $class;
    }

    /** Returns the display name for this access entity type (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 
getAccessEntityTypeDisplayName($format 'html')
    {
        
$value tc('PermissionAccessEntityTypeName'$this->getAccessEntityTypeName());
        switch (
$format) {
            case 
'html':
                return 
h($value);
            case 
'text':
            default:
                return 
$value;
        }
    }

    public static function 
getByID($petID)
    {
        
$db Loader::db();
        
$row $db->GetRow('select petID, pkgID, petHandle, petName from PermissionAccessEntityTypes where petID = ?',
            array(
$petID));
        if (
$row['petHandle']) {
            
$wt = new static();
            
$wt->setPropertiesFromArray($row);
            return 
$wt;
        }
    }

    public function 
__call($method$args)
    {
        
$obj Core::make($this->getAccessEntityTypeClass());
        return 
call_user_func_array(array($obj$method), $args);
    }

    public function 
getAccessEntityTypeToolsURL($task false)
    {
        if (!
$task) {
            
$task 'process';
        }
        
$uh Loader::helper('concrete/urls');
        
$url $uh->getToolsURL('permissions/access/entity/types/' $this->petHandle$this->getPackageHandle());
        
$token Loader::helper('validation/token')->getParameter($task);
        
$url .= '?' $token '&task=' $task;
        return 
$url;
    }

    public static function 
getList($category false)
    {
        
$db Loader::db();
        
$list = array();
        if (
$category instanceof Category) {
            
$r $db->Execute('select pet.petID from PermissionAccessEntityTypes pet inner join PermissionAccessEntityTypeCategories petc on pet.petID = petc.petID where petc.pkCategoryID = ? order by pet.petID asc',
                array(
$category->getPermissionKeyCategoryID()));
        } else {
            
$r $db->Execute('select petID from PermissionAccessEntityTypes order by petID asc');
        }

        while (
$row $r->FetchRow()) {
            
$list[] = static::getByID($row['petID']);
        }

        
$r->Close();
        return 
$list;
    }

    public function 
getPackageID()
    {
        return 
$this->pkgID;
    }

    public function 
getPackageHandle()
    {
        return 
PackageList::getHandle($this->pkgID);
    }

    public static function 
exportList($xml)
    {
        
$ptypes = static::getList();
        
$db Loader::db();
        
$axml $xml->addChild('permissionaccessentitytypes');
        foreach (
$ptypes as $pt) {
            
$ptype $axml->addChild('permissionaccessentitytype');
            
$ptype->addAttribute('handle'$pt->getAccessEntityTypeHandle());
            
$ptype->addAttribute('name'$pt->getAccessEntityTypeName());
            
$ptype->addAttribute('package'$pt->getPackageHandle());
            
$categories $db->GetCol('select pkCategoryHandle from PermissionKeyCategories inner join PermissionAccessEntityTypeCategories where PermissionKeyCategories.pkCategoryID = PermissionAccessEntityTypeCategories.pkCategoryID and PermissionAccessEntityTypeCategories.petID = ?',
                array(
$pt->getAccessEntityTypeID()));
            if (
count($categories) > 0) {
                
$cat $ptype->addChild('categories');
                foreach (
$categories as $catHandle) {
                    
$cat->addChild('category')->addAttribute('handle'$catHandle);
                }
            }
        }
    }

    public function 
delete()
    {
        
$db Loader::db();
        
$db->Execute("delete from PermissionAccessEntityTypes where petID = ?", array($this->petID));
    }

    public static function 
getListByPackage($pkg)
    {
        
$db Loader::db();
        
$list = array();
        
$r $db->Execute('select petID from PermissionAccessEntityTypes where pkgID = ? order by petID asc',
            array(
$pkg->getPackageID()));
        while (
$row $r->FetchRow()) {
            
$list[] = static::getByID($row['petID']);
        }
        
$r->Close();
        return 
$list;
    }

    public static function 
getByHandle($petHandle)
    {
        
$db Loader::db();
        
$petID $db->GetOne('select petID from PermissionAccessEntityTypes where petHandle = ?', array($petHandle));
        if (
$petID 0) {
            return 
self::getByID($petID);
        }
    }

    public static function 
add($petHandle$petName$pkg false)
    {
        
$pkgID 0;
        if (
is_object($pkg)) {
            
$pkgID $pkg->getPackageID();
        }
        
$db Loader::db();
        
$db->Execute('insert into PermissionAccessEntityTypes (petHandle, petName, pkgID) values (?, ?, ?)',
            array(
$petHandle$petName$pkgID));
        
$id $db->Insert_ID();
        
$est = static::getByID($id);
        return 
$est;
    }

    public static function 
exportTranslations()
    {
        
$translations = new Translations();
        
$attribs = static::getList();
        foreach (
$attribs as $type) {
            
$translations->insert('PermissionAccessEntityTypeName'$type->getAccessEntityTypeName());
        }
        return 
$translations;
    }

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