/**
  * Get all available administration regisetered properties.
  *
  * @return array Get all properties.
  */
 public function actionDataProperties()
 {
     $data = [];
     foreach (Property::find()->all() as $item) {
         $object = Property::getObject($item->class_name);
         $data[] = ['id' => $item->id, 'var_name' => $object->varName(), 'option_json' => $object->options(), 'label' => $object->label(), 'type' => $object->type(), 'default_value' => $object->defaultValue(), 'i18n' => $object->i18n];
     }
     return $data;
 }
 /**
  * Installation of the property
  */
 protected function install($object)
 {
     $model = Property::find()->where(['var_name' => $object->varName()])->one();
     if ($model) {
         $model->setAttributes(['module_name' => $object->moduleName, 'class_name' => $object::className()]);
         $model->update(false);
         return $model->id;
     } else {
         $model = new Property();
         $model->setAttributes(['var_name' => $object->varName(), 'module_name' => $object->moduleName, 'class_name' => $object::className()]);
         $insert = $model->insert(false);
         if ($insert) {
             return $model->id;
         }
     }
 }