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;
}