/**
  * @param form_persistentdocument_baseform $document
  * @return void
  */
 protected function preDelete($document)
 {
     TreeService::getInstance()->setTreeNodeCache(false);
     $this->deleteFieldsAndGroups($document);
 }
Example #2
0
 /**
  * get module tree for ajax
  *
  * @author                                    youzhao.zxw<*****@*****.**>
  * @param   int               $productId      product id
  * @param   int               $parentId       parent module id
  * @return  json                              json encoded module info
  */
 public static function getAjaxModuleTree($productId, $parentId)
 {
     if (0 == $parentId) {
         $moduleInfos = Yii::app()->db->createCommand()->select('id,parent_id,grade,name')->from('{{product_module}}')->where('product_id = :productId and parent_id is null', array(':productId' => $productId))->order('display_order desc,id')->queryAll();
     } else {
         $moduleInfos = Yii::app()->db->createCommand()->select('id,parent_id,grade,name')->from('{{product_module}}')->where('product_id = :productId and parent_id = :parentId', array(':productId' => $productId, ':parentId' => $parentId))->order('display_order desc,id')->queryAll();
     }
     $moduleIdArr = array();
     foreach ($moduleInfos as $moduleInfo) {
         $moduleIdArr[] = $moduleInfo['id'];
     }
     $childInfos = Yii::app()->db->createCommand()->select(array('count(*) as num', 'parent_id'))->from('{{product_module}}')->where(array('in', 'parent_id', $moduleIdArr))->group('parent_id')->queryAll();
     $moduleArr = TreeService::formAjaxTreeData($moduleInfos, $childInfos);
     if (0 == $parentId) {
         $rootNode = new TreeDataModel();
         $rootNode->id = $parentId;
         $productInfo = ProductService::loadModel($productId);
         $rootNode->name = $productInfo['name'];
         $rootNode->open = true;
         $rootArr = array();
         $rootArr[0] = $rootNode;
         $rootArr[0]->nodes = $moduleArr;
         return CJSON::encode($rootArr);
     } else {
         return CJSON::encode($moduleArr);
     }
 }