Pimcore\Model\Object\ClassDefinition\Service::importClassDefinitionFromJson PHP Метод

importClassDefinitionFromJson() публичный статический Метод

public static importClassDefinitionFromJson ( $class, $json, $throwException = false ) : boolean
$class
$json
Результат boolean
    public static function importClassDefinitionFromJson($class, $json, $throwException = false)
    {
        $userId = 0;
        $user = \Pimcore\Tool\Admin::getCurrentUser();
        if ($user) {
            $userId = $user->getId();
        }
        $importData = \Zend_Json::decode($json);
        if (!is_null($importData["layoutDefinitions"])) {
            // set layout-definition
            $layout = self::generateLayoutTreeFromArray($importData["layoutDefinitions"], $throwException);
            if ($layout === false) {
                return false;
            }
            $class->setLayoutDefinitions($layout);
        }
        // set properties of class
        $class->setDescription($importData["description"]);
        $class->setModificationDate(time());
        $class->setUserModification($userId);
        $class->setIcon($importData["icon"]);
        $class->setAllowInherit($importData["allowInherit"]);
        $class->setAllowVariants($importData["allowVariants"]);
        $class->setShowVariants($importData["showVariants"]);
        $class->setParentClass($importData["parentClass"]);
        $class->setUseTraits($importData["useTraits"]);
        $class->setPreviewUrl($importData["previewUrl"]);
        $class->setPropertyVisibility($importData["propertyVisibility"]);
        $class->save();
        return true;
    }

Usage Example

Пример #1
0
 public function createClass($className)
 {
     $class = Object\ClassDefinition::getByName($className);
     if (!$class) {
         $result = Plugin::getEventManager()->trigger("install.class.getClass.{$className}", $this, array("className" => $className, "json" => $json), function ($v) {
             return $v instanceof Object\ClassDefinition;
         });
         if ($result->stopped()) {
             return $result->last();
         }
         $jsonFile = PIMCORE_PLUGINS_PATH . "/CoreShop/install/class-{$className}.json";
         $class = Object\ClassDefinition::create();
         $class->setName($className);
         $class->setUserOwner($this->_getUser()->getId());
         $json = file_get_contents($jsonFile);
         $result = Plugin::getEventManager()->trigger('install.class.preCreate', $this, array("className" => $className, "json" => $json), function ($v) {
             return !preg_match('/[^,:{}\\[\\]0-9.\\-+Eaeflnr-u \\n\\r\\t]/', preg_replace('/"(\\.|[^"\\\\])*"/', '', $v));
         });
         if ($result->stopped()) {
             $resultJson = $result->last();
             if ($resultJson) {
                 $json = $resultJson;
             }
         }
         Object\ClassDefinition\Service::importClassDefinitionFromJson($class, $json, true);
         return $class;
     }
     return $class;
 }
All Usage Examples Of Pimcore\Model\Object\ClassDefinition\Service::importClassDefinitionFromJson