protected function execute(InputInterface $input, OutputInterface $output) { $this->disableLogging(); $list = new ClassDefinition\Listing(); $list->load(); foreach ($list->getClasses() as $class) { if ($output->isVerbose()) { $output->writeln($class->getName() . " [" . $class->getId() . "] saved"); } $class->save(); } }
protected function execute(InputInterface $input, OutputInterface $output) { $this->disableLogging(); $list = new ClassDefinition\Listing(); $list->load(); if ($output->isVerbose()) { $output->writeln("---------------------"); $output->writeln("Saving all classes"); } foreach ($list->getClasses() as $class) { if ($output->isVerbose()) { $output->writeln($class->getName() . " [" . $class->getId() . "] saved"); } $class->save(); } if ($output->isVerbose()) { $output->writeln("---------------------"); $output->writeln("Saving all object bricks"); } $list = new Object\Objectbrick\Definition\Listing(); $list = $list->load(); foreach ($list as $brickDefinition) { if ($output->isVerbose()) { $output->writeln($brickDefinition->getKey() . " saved"); } $brickDefinition->save(); } if ($output->isVerbose()) { $output->writeln("---------------------"); $output->writeln("Saving all field collections"); } $list = new Object\Fieldcollection\Definition\Listing(); $list = $list->load(); foreach ($list as $fc) { if ($output->isVerbose()) { $output->writeln($fc->getKey() . " saved"); } $fc->save(); } }
public function getAction() { $letter = Newsletter\Config::getByName($this->getParam("name")); if ($emailDoc = Document::getById($letter->getDocument())) { $letter->setDocument($emailDoc->getRealFullPath()); } // get available classes $classList = new Object\ClassDefinition\Listing(); $availableClasses = array(); foreach ($classList->load() as $class) { $fieldCount = 0; foreach ($class->getFieldDefinitions() as $fd) { if ($fd instanceof Object\ClassDefinition\Data\NewsletterActive || $fd instanceof Object\ClassDefinition\Data\NewsletterConfirmed || $fd instanceof Object\ClassDefinition\Data\Email) { $fieldCount++; } } if ($fieldCount >= 3) { $availableClasses[] = array($class->getName(), $class->getName()); } } $letter->availableClasses = $availableClasses; $this->_helper->json($letter); }
/** * finds all objects which hold a reference to a specific user * * @static * @param integer $userId * @return Concrete[] */ public static function getObjectsReferencingUser($userId) { $userObjects = array(); $classesList = new ClassDefinition\Listing(); $classesList->setOrderKey("name"); $classesList->setOrder("asc"); $classes = $classesList->load(); $classesToCheck = array(); if (is_array($classes)) { foreach ($classes as $class) { $fieldDefinitions = $class->getFieldDefinitions(); $dataKeys = array(); if (is_array($fieldDefinitions)) { foreach ($fieldDefinitions as $tag) { if ($tag instanceof ClassDefinition\Data\User) { $dataKeys[] = $tag->getName(); } } } if (is_array($dataKeys) and count($dataKeys) > 0) { $classesToCheck[$class->getName()] = $dataKeys; } } } foreach ($classesToCheck as $classname => $fields) { $listName = "\\Pimcore\\Model\\Object\\" . ucfirst($classname) . "\\Listing"; $list = new $listName(); $conditionParts = array(); foreach ($fields as $field) { $conditionParts[] = $field . "='" . $userId . "'"; } $list->setCondition(implode(" AND ", $conditionParts)); $objects = $list->load(); $userObjects = array_merge($userObjects, $objects); } return $userObjects; }
/** * */ public function delete() { $fieldCollectionFolder = PIMCORE_CLASS_DIRECTORY . "/fieldcollections"; $fieldFile = $fieldCollectionFolder . "/" . $this->getKey() . ".psf"; @unlink($fieldFile); $fieldClassFolder = PIMCORE_CLASS_DIRECTORY . "/Object/Fieldcollection/Data"; $fieldClass = $fieldClassFolder . "/" . ucfirst($this->getKey()) . ".php"; @unlink($fieldClass); // update classes $classList = new Object\ClassDefinition\Listing(); $classes = $classList->load(); if (is_array($classes)) { foreach ($classes as $class) { foreach ($class->getFieldDefinitions() as $fieldDef) { if ($fieldDef instanceof Object\ClassDefinition\Data\Fieldcollections) { if (in_array($this->getKey(), $fieldDef->getAllowedTypes())) { $this->getResource()->delete($class); break; } } } } } }
/** * Returns a list of all class definitions. */ public function classesAction() { $this->checkUserPermission("classes"); $list = new Object\ClassDefinition\Listing(); $classes = $list->load(); $result = array(); foreach ($classes as $class) { $item = array("id" => $class->getId(), "name" => $class->getName()); $result[] = $item; } $this->encoder->encode(array("success" => true, "data" => $result)); }
/** * @return void */ public function delete() { $fieldCollectionFolder = PIMCORE_CLASS_DIRECTORY . "/objectbricks"; $fieldFile = $fieldCollectionFolder . "/" . $this->getKey() . ".psf"; @unlink($fieldFile); $fieldClassFolder = PIMCORE_CLASS_DIRECTORY . "/Object/Objectbrick/Data"; $fieldClass = $fieldClassFolder . "/" . ucfirst($this->getKey()) . ".php"; @unlink($fieldClass); $processedClasses = array(); if (!empty($this->classDefinitions)) { foreach ($this->classDefinitions as $cl) { unset($this->oldClassDefinitions[$cl['classname']]); if (!$processedClasses[$cl['classname']]) { $class = Object\ClassDefinition::getById($cl['classname']); $this->getDao()->delete($class); $processedClasses[$cl['classname']] = true; foreach ($class->getFieldDefinitions() as $fieldDef) { if ($fieldDef instanceof Object\ClassDefinition\Data\Objectbricks) { $allowedTypes = $fieldDef->getAllowedTypes(); $idx = array_search($this->getKey(), $allowedTypes); if ($idx !== false) { array_splice($allowedTypes, $idx, 1); } $fieldDef->setAllowedTypes($allowedTypes); } } $class->save(); } } } // update classes $classList = new Object\ClassDefinition\Listing(); $classes = $classList->load(); if (is_array($classes)) { foreach ($classes as $class) { foreach ($class->getFieldDefinitions() as $fieldDef) { if ($fieldDef instanceof Object\ClassDefinition\Data\Objectbricks) { if (in_array($this->getKey(), $fieldDef->getAllowedTypes())) { break; } } } } } }
/** * */ public function delete() { @unlink($this->getDefinitionFile()); @unlink($this->getPhpClassFile()); // update classes $classList = new Object\ClassDefinition\Listing(); $classes = $classList->load(); if (is_array($classes)) { foreach ($classes as $class) { foreach ($class->getFieldDefinitions() as $fieldDef) { if ($fieldDef instanceof Object\ClassDefinition\Data\Fieldcollections) { if (in_array($this->getKey(), $fieldDef->getAllowedTypes())) { $this->getDao()->delete($class); break; } } } } } }
/** * See http://www.pimcore.org/issues/browse/PIMCORE-2358 * Add option to export/import all class definitions/brick definitions etc. at once */ public function bulkExportAction() { $result = []; $this->removeViewRenderer(); $fieldCollections = new Object\Fieldcollection\Definition\Listing(); $fieldCollections = $fieldCollections->load(); foreach ($fieldCollections as $fieldCollection) { $key = $fieldCollection->key; $fieldCollectionJson = json_decode(Object\ClassDefinition\Service::generateFieldCollectionJson($fieldCollection)); $fieldCollectionJson->key = $key; $result["fieldcollection"][] = $fieldCollectionJson; } $classes = new Object\ClassDefinition\Listing(); $classes->setOrder("ASC"); $classes->setOrderKey("id"); $classes = $classes->load(); foreach ($classes as $class) { $data = Model\Webservice\Data\Mapper::map($class, "\\Pimcore\\Model\\Webservice\\Data\\ClassDefinition\\Out", "out"); unset($data->fieldDefinitions); $result["class"][] = $data; } $objectBricks = new Object\Objectbrick\Definition\Listing(); $objectBricks = $objectBricks->load(); foreach ($objectBricks as $objectBrick) { $key = $objectBrick->key; $objectBrickJson = json_decode(Object\ClassDefinition\Service::generateObjectBrickJson($objectBrick)); $objectBrickJson->key = $key; $result["objectbrick"][] = $objectBrickJson; } $customLayouts = new Object\ClassDefinition\CustomLayout\Listing(); $customLayouts = $customLayouts->load(); foreach ($customLayouts as $customLayout) { /** @var $customLayout Object\ClassDefinition\CustomLayout */ $classId = $customLayout->getClassId(); $class = Object\ClassDefinition::getById($classId); $customLayout->className = $class->getName(); $result["customlayout"][] = $customLayout; } header("Content-type: application/json"); header("Content-Disposition: attachment; filename=\"bulk_export.json\""); $result = json_encode($result); echo $result; }
/** * @return void */ public function delete() { @unlink($this->getDefinitionFile()); @unlink($this->getPhpClassFile()); $processedClasses = []; if (!empty($this->classDefinitions)) { foreach ($this->classDefinitions as $cl) { unset($this->oldClassDefinitions[$cl['classname']]); if (!$processedClasses[$cl['classname']]) { $class = Object\ClassDefinition::getById($cl['classname']); $this->getDao()->delete($class); $processedClasses[$cl['classname']] = true; foreach ($class->getFieldDefinitions() as $fieldDef) { if ($fieldDef instanceof Object\ClassDefinition\Data\Objectbricks) { $allowedTypes = $fieldDef->getAllowedTypes(); $idx = array_search($this->getKey(), $allowedTypes); if ($idx !== false) { array_splice($allowedTypes, $idx, 1); } $fieldDef->setAllowedTypes($allowedTypes); } } $class->save(); } } } // update classes $classList = new Object\ClassDefinition\Listing(); $classes = $classList->load(); if (is_array($classes)) { foreach ($classes as $class) { foreach ($class->getFieldDefinitions() as $fieldDef) { if ($fieldDef instanceof Object\ClassDefinition\Data\Objectbricks) { if (in_array($this->getKey(), $fieldDef->getAllowedTypes())) { break; } } } } } }