translateIdToMetaModelName() public method

public translateIdToMetaModelName ( $metaModelId )
 /**
  * Get all attribute ids of a metamodel.
  *
  * @param \DataContainer $dataContainer The data container driver.
  *
  * @return array
  */
 public function getAttributes($dataContainer)
 {
     $options = array();
     if ($dataContainer->activeRecord) {
         $layer = LayerModel::findByPk($dataContainer->activeRecord->pid);
         if (!$layer) {
             return $options;
         }
         $name = $this->metaModelsFactory->translateIdToMetaModelName($layer->metamodel);
         $metaModel = $this->metaModelsFactory->getMetaModel($name);
         if ($metaModel) {
             foreach ($metaModel->getAttributes() as $attribute) {
                 $options[$attribute->get('id')] = $attribute->getName();
             }
         }
     }
     return $options;
 }
Example #2
0
 /**
  * Test to add an attribute factory to a factory and retrieve it again.
  *
  * @return void
  */
 public function testGetMetaModelNameFromId()
 {
     $serviceContainer = $this->mockServiceContainer();
     $factory = new Factory();
     $factory->setServiceContainer($serviceContainer);
     $serviceContainer->getEventDispatcher()->addListener(GetMetaModelNameFromIdEvent::NAME, function (GetMetaModelNameFromIdEvent $event) {
         $event->setMetaModelName('mm_with_id_' . $event->getMetaModelId());
     });
     $this->assertSame('mm_with_id_10', $factory->translateIdToMetaModelName(10));
     $factory->getMetaModel('mm_test');
 }