예제 #1
0
 /**
  * Handle reconstructing and validating Action associations
  * @param Action $model Action to reconstruct association
  */
 protected function reconstructImportedActionAssoc(Actions &$model)
 {
     $exportableModules = array_merge(array_keys(Modules::getExportableModules()), array('None'));
     $exportableModules = array_map('lcfirst', $exportableModules);
     $model->associationType = lcfirst($model->associationType);
     if (!in_array($model->associationType, $exportableModules)) {
         // Invalid association type
         $model->addError('associationType', Yii::t('admin', 'Unknown associationType.'));
     } else {
         if (isset($model->associationId) && $model->associationId !== '0') {
             $associatedModel = X2Model::model($model->associationType)->findByPk($model->associationId);
             if ($associatedModel) {
                 $model->associationName = $associatedModel->nameId;
             }
         } else {
             if (!isset($model->associationId) && isset($model->associationName)) {
                 // Retrieve associationId
                 $staticAssociationModel = X2Model::model($model->associationType);
                 if ($staticAssociationModel->hasAttribute('name') && !ctype_digit($model->associationName)) {
                     $associationModelParams = array('name' => $model->associationName);
                 } else {
                     $associationModelParams = array('id' => $model->associationName);
                 }
                 $lookup = $staticAssociationModel->findByAttributes($associationModelParams);
                 if (isset($lookup)) {
                     $model->associationId = $lookup->id;
                     $model->associationName = $lookup->hasAttribute('nameId') ? $lookup->nameId : $lookup->name;
                 }
             }
         }
     }
 }