/** * @param form_persistentdocument_baseform $document * @return void */ protected function preDelete($document) { TreeService::getInstance()->setTreeNodeCache(false); $this->deleteFieldsAndGroups($document); }
/** * 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); } }