/** * Loads the mapping of the models with resource types * @return null */ protected function loadModelMapping() { $modelTypesCacheItem = $this->cache->get(self::CACHE_TYPES); if ($modelTypesCacheItem->isValid()) { $this->modelTypes = $modelTypesCacheItem->getValue(); return; } $this->modelTypes = array(); $models = $this->orm->getModels(); foreach ($models as $modelName => $model) { $type = $model->getMeta()->getOption('json.api'); if (!$type) { continue; } $this->modelTypes[$modelName] = $type; } $modelTypesCacheItem->setValue($this->modelTypes); $this->cache->set($modelTypesCacheItem); }
public function prepareContentMenu(Event $event, OrmManager $ormManager) { $locale = $event->getArgument('locale'); $menu = $event->getArgument('menu'); $models = $ormManager->getModels(); foreach ($models as $model) { $meta = $model->getMeta(); $option = $meta->getOption('scaffold.expose'); if (!$option) { continue; } $menuItem = new MenuItem(); $title = $meta->getOption('scaffold.title'); if ($title) { $menuItem->setTranslation($title); } else { $menuItem->setLabel($meta->getName()); } $menuItem->setRoute('system.orm.scaffold.index', array('locale' => $locale, 'model' => $meta->getName())); $menu->addMenuItem($menuItem); } }
/** * Gets the options for the model field * @param \ride\library\orm\OrmManager $orm Instance of the ORM manager * @return array Array with the model names which are flagged to be a node */ protected function getModelOptions(OrmManager $orm) { $translator = $this->getTranslator(); $options = array('' => '---'); $models = $orm->getModels(true); foreach ($models as $modelName => $model) { $meta = $model->getMeta(); if (!$meta->getOption('cms.node')) { continue; } $title = $meta->getOption('scaffold.title'); if ($title) { $title = $translator->translate($title); } else { $title = $modelName; } $options[$modelName] = $title; } return $options; }