From 18fe046b866c91d552625df4ad2b319fcc29bafd Mon Sep 17 00:00:00 2001 From: zhujinyong Date: Mon, 8 Jul 2013 05:22:46 +0000 Subject: [PATCH] * fix a bug : if version <= 4.1, only get modules of its type. --- module/tree/model.php | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/module/tree/model.php b/module/tree/model.php index dd9f0dc084..3e3211b72f 100644 --- a/module/tree/model.php +++ b/module/tree/model.php @@ -674,11 +674,26 @@ class treeModel extends model */ public function getSons($rootID, $moduleID, $type = 'root') { + $createdVersion = $this->dao->select('createdVersion')->from(TABLE_PRODUCT) + ->where('id')->eq($rootID) + ->fetch('createdVersion'); + + /* if createVersion <= 4.1 or type == 'story', only get modules of its type. */ + if(!$createdVersion or version_compare($createdVersion, '4.1', '<=') or $type == 'story') + { + return $this->dao->select('*')->from(TABLE_MODULE) + ->where('root')->eq((int)$rootID) + ->andWhere('parent')->eq((int)$moduleID) + ->andWhere('type')->eq($type) + ->orderBy('`order`') + ->fetchAll(); + } + + /* else get modules of its type and story type. */ return $this->dao->select('*')->from(TABLE_MODULE) ->where('root')->eq((int)$rootID) ->andWhere('parent')->eq((int)$moduleID) - ->beginIF($type == 'story')->andWhere('type')->eq($type)->fi() - ->beginIF($type != 'story')->andWhere('type')->in("$type,story")->fi() + ->andWhere('type')->in("$type,story") ->orderBy('type desc,`order`') ->fetchAll(); }