byId() public static method

Create a MetaModel instance from the id.
Deprecation: To create an instance use methods translateIdToMetaModelName() and getMetaModel().
public static byId ( integer $intId ) : metamodels\IMetaModel
$intId integer The id of the MetaModel.
return metamodels\IMetaModel the instance of the MetaModel or null if not found.
 /**
  * @param \DataContainer $dataContainer
  * @return array
  */
 public function getAttributeNames($dataContainer)
 {
     $options = array();
     if ($dataContainer->activeRecord->mm_metamodel) {
         $metaModel = $this->metaModelsFactory->byId($dataContainer->activeRecord->mm_metamodel);
         if ($metaModel) {
             $attributes = $metaModel->getAttributes();
             foreach ($attributes as $name => $attribute) {
                 $options[$attribute->get('id')] = $attribute->getName();
             }
         }
     }
     return $options;
 }
 /**
  * @param CreateProviderEvent $event
  */
 public function createProvider(CreateProviderEvent $event)
 {
     $model = $event->getProviderModel();
     if ($model->type != 'metamodels') {
         return;
     }
     $metaModel = MetaModelsFactory::byId($model->mm_metamodel);
     // metamodel does not exists. break it here
     if (!$metaModel) {
         return;
     }
     $provider = MetaModelsProvider::create($metaModel, $model->id)->setParent($model->mm_parent_type, $model->mm_parent_page);
     $attributeMappings = deserialize($model->mm_attributes, true);
     foreach ($attributeMappings as $config) {
         if ($config['id'] && $config['html']) {
             $provider->addAttributeMapping($config['id'], $config['html'], $config['type'], $config['format']);
         }
     }
     if ($model->mm_filter) {
         $filter = MetaModelsFilterFactory::byId($model->mm_filter);
         $params = $this->createFilterParams($filter);
         if ($filter) {
             $provider->setFilter($filter, $params);
         }
     }
     if ($model->mm_render_setting) {
         $renderSetting = Factory::byId($metaModel, $model->mm_render_setting);
         $provider->setRenderSetting($renderSetting);
     }
     if ($model->mm_sort_by) {
         $provider->setSorting($model->mm_sort_by, $model->mm_sort_direction ?: 'ASC');
     }
     $event->setProvider($provider);
 }
 public function createCondition(CreateConditionEvent $event)
 {
     $model = $event->getConditionModel();
     if ($model->type == 'metamodels_attribute') {
         $condition = new MetaModelsAttributeCondition();
         $condition->setAttribute($model->mm_attribute)->setOperator($model->mm_operator)->setValue($model->mm_value);
     } elseif ($model->type == 'metamodels') {
         $condition = new MetaModelsCondition();
         $metaModel = Factory::byId($model->mm_metamodel);
         if ($metaModel) {
             $condition->setMetaModel($metaModel);
         }
     }
     if (isset($condition)) {
         if ($model->invert) {
             $condition = new NotCondition($condition);
         }
         $event->setCondition($condition);
     }
 }
 /**
  * Instantiate the Input Provider
  *
  * @param int    $mmID The ID of an existing MetaModels
  * @param int    $maskID The ID of an existing InputMask
  * @param string $uploadPath The UUID value of an DBAFS Folder
  * @throws \Exception
  */
 public function __construct($mmID, $maskID, $uploadPath)
 {
     $this->objMM = \MetaModels\Factory::byId($mmID);
     $this->setUploadPath($uploadPath);
     $this->maskID = $maskID;
 }
Example #5
0
 /**
  * {@inheritdoc}
  *
  * @deprecated Use an instance of the factory and method createAttribute().
  */
 public static function createFromArray($arrData)
 {
     return self::getDefaultFactory()->createAttribute($arrData, \MetaModels\Factory::byId($arrData['pid']));
 }
 * Backend Module.
 */
$GLOBALS['BE_MOD']['leaflet']['leaflet_layer']['tables'][] = 'tl_leaflet_mm_renderer';
/*
 * Register models.
 */
$GLOBALS['TL_MODELS']['tl_leaflet_mm_renderer'] = 'Netzmacht\\Contao\\Leaflet\\MetaModels\\Model\\RendererModel';
/*
 * Add leaflet mapper.
 */
$GLOBALS['LEAFLET_MAPPERS'][] = 'Netzmacht\\Contao\\Leaflet\\MetaModels\\LayerMapper';
/*
 * Add metamodels layer.
 */
$GLOBALS['LEAFLET_LAYERS']['metamodels'] = array('children' => false, 'icon' => 'system/modules/leaflet-metamodels/assets/img/layer.png', 'metamodels' => true, 'boundsMode' => array('extend' => true, 'fit' => true), 'label' => function ($row, $label) {
    $metaModel = \MetaModels\Factory::byId($row['metamodel']);
    if (!$metaModel) {
        return $label;
    }
    return $label . sprintf(' <span><a href="%s" class="tl_gray">(%s)</a></span>', \Backend::addToUrl(sprintf('do=metamodel_%s&amp;table=%s', $metaModel->getTableName(), $metaModel->getTableName())), $metaModel->getName());
});
/*
 * Metamodels layer renderers
 */
$GLOBALS['LEAFLET_MM_RENDERER']['marker'] = 'Netzmacht\\Contao\\Leaflet\\MetaModels\\Renderer\\MarkerRenderer';
$GLOBALS['LEAFLET_MM_RENDERER']['geojson'] = 'Netzmacht\\Contao\\Leaflet\\MetaModels\\Renderer\\GeoJsonRenderer';
$GLOBALS['LEAFLET_MM_RENDERER']['reference'] = 'Netzmacht\\Contao\\Leaflet\\MetaModels\\Renderer\\ReferenceRenderer';
/*
 * MetaModel attribute factory.
 */
$GLOBALS['TL_EVENTS'][\MetaModels\MetaModelsEvents::ATTRIBUTE_FACTORY_CREATE][] = function (\MetaModels\Attribute\Events\CreateAttributeFactoryEvent $event) {
 /**
  * {@inheritdoc}
  */
 public function handleGeoJson(\Model $model, DefinitionMapper $mapper, Filter $filter = null)
 {
     $collection = new FeatureCollection();
     $metaModel = Factory::byId($model->metamodel);
     $items = $this->getItems($metaModel, $model, $filter);
     $renderers = $this->getRenderers($model, $metaModel, $items, $mapper, $filter, true);
     foreach ($items as $item) {
         foreach ($renderers as $renderer) {
             $renderer->loadData($item, $collection, $mapper, $model->alias, $filter, true);
         }
     }
     return $collection;
 }