Esempio n. 1
0
 /**
  * Collect the attribute settings for the given render setting.
  *
  * @param IMetaModel  $metaModel     The MetaModel instance to retrieve the settings for.
  *
  * @param ICollection $renderSetting The render setting.
  *
  * @return void
  */
 public function collectAttributeSettings(IMetaModel $metaModel, $renderSetting)
 {
     $attributeRow = $this->serviceContainer->getDatabase()->prepare('SELECT * FROM tl_metamodel_rendersetting WHERE pid=? AND enabled=1 ORDER BY sorting')->execute($renderSetting->get('id'));
     while ($attributeRow->next()) {
         $attribute = $metaModel->getAttributeById($attributeRow->attr_id);
         if (!$attribute) {
             continue;
         }
         // TODO: we should provide attribute type based render setting elements in version 2.X.
         $attributeSetting = $renderSetting->getSetting($attribute->getColName());
         if (!$attributeSetting) {
             $attributeSetting = $attribute->getDefaultRenderSettings();
         }
         foreach ($attributeRow->row() as $strKey => $varValue) {
             if ($varValue) {
                 $attributeSetting->set($strKey, deserialize($varValue));
             }
         }
         $renderSetting->setSetting($attribute->getColName(), $attributeSetting);
     }
 }