Пример #1
0
 public function actionUpdate($class)
 {
     FormField::$inEditor = true;
     $isPHP = Helper::explodeLast(".", $class);
     $class = $isPHP == "php" ? substr($class, 0, -4) : $class;
     $class = FormBuilder::classPath($class);
     $this->layout = "//layouts/blank";
     ## reset form builder session
     FormBuilder::resetSession($class);
     ## load form builder class and session
     $fb = FormBuilder::load($class);
     $fb->resetTimestamp();
     $fb->updateExtendsFrom('Blog');
     $classPath = $class;
     $class = Helper::explodeLast(".", $class);
     if (is_subclass_of($fb->model, 'ActiveRecord')) {
         $formType = "ActiveRecord";
         FormsController::setModelFieldList($class::model()->getAttributesList(), "AR", $class);
     } else {
         if (is_subclass_of($fb->model, 'FormField')) {
             $formType = "FormField";
             $mf = new $class();
             FormsController::setModelFieldList($mf->attributes, "FF");
         } else {
             if (is_subclass_of($fb->model, 'Form')) {
                 $formType = "Form";
                 $mf = new $class();
                 FormsController::setModelFieldList($mf->attributes, "FF");
             }
         }
     }
     $fieldData = $fb->fields;
     FormsController::$modelField = $fieldData;
     $toolbar = $this->renderAllToolbar($formType);
     Yii::import('application.modules.' . $fb->module . '.controllers.*');
     echo $this->render('form', array('fb' => $fb, 'class' => $class, 'classPath' => $classPath, 'formType' => $formType, 'moduleName' => Helper::explodeFirst(".", $classPath), 'toolbarData' => @$toolbar['data'], 'fieldData' => $fieldData), true);
 }