Changeset 18609 for tmp/version-2_5-test/data/class/pages/admin/products/LC_Page_Admin_Products_Category.php
- Timestamp:
- 2010/03/11 10:35:11 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
tmp/version-2_5-test/data/class/pages/admin/products/LC_Page_Admin_Products_Category.php
r18562 r18609 173 173 } 174 174 $objQuery->commit(); 175 break; 176 case 'moveByDnD': 177 // DnDしたカテゴリと移動先のセットを分解する 178 $keys = explode("-", $_POST['keySet']); 179 if ($keys[0] && $keys[1]) { 180 $objQuery = new SC_Query(); 181 $objQuery->begin(); 182 183 // 移動したデータのrank、level、parent_category_idを取得 184 $rank = $objQuery->get("dtb_category", "rank", "category_id = ?", array($keys[0])); 185 $level = $objQuery->get("dtb_category", "level", "category_id = ?", array($keys[0])); 186 $parent = $objQuery->get("dtb_category", "parent_category_id", "category_id = ?", array($keys[0])); 187 188 // 同一level内のrank配列を作成 189 $objQuery->setoption("ORDER BY rank DESC"); 190 if ($level == 1) { 191 // 第1階層の時 192 $arrRet = $objQuery->select("rank", "dtb_category", "level = ?", array($level)); 193 } else { 194 // 第2階層以下の時 195 $arrRet = $objQuery->select("rank", "dtb_category", "level = ? AND parent_category_id = ?", array($level, $parent)); 196 } 197 for ($i = 0; $i < sizeof($arrRet); $i++) { 198 $rankAry[$i + 1] = $arrRet[$i]['rank']; 199 } 200 201 // 移動したデータのグループ内データ数 202 $my_count = $this->lfCountChilds($objQuery, "dtb_category", "parent_category_id", "category_id", $keys[0]); 203 if ($rankAry[$keys[1]] > $rank) { 204 // データが今の位置より上がった時 205 $up_count = $rankAry[$keys[1]] - $rank; 206 $decAry = $objQuery->select("category_id", "dtb_category", "level = ? AND rank > ? AND rank <= ?", array($level, $rank, $rankAry[$keys[1]])); 207 foreach($decAry as $value){ 208 // 上のグループから減算 209 $this->lfDownRankChilds($objQuery, "dtb_category", "parent_category_id", "category_id", $value["category_id"], $my_count); 210 } 211 // 自分のグループに加算 212 $this->lfUpRankChilds($objQuery, "dtb_category", "parent_category_id", "category_id", $keys[0], $up_count); 213 } else if($rankAry[$keys[1]] < $rank) { 214 // データが今の位置より下がった時 215 $down_count = 0; 216 $incAry = $objQuery->select("category_id", "dtb_category", "level = ? AND rank < ? AND rank >= ?", array($level, $rank, $rankAry[$keys[1]])); 217 foreach ($incAry as $value) { 218 // 下のグループに加算 219 $this->lfUpRankChilds($objQuery, "dtb_category", "parent_category_id", "category_id", $value["category_id"], $my_count); 220 // 合計減算値 221 $down_count += $this->lfCountChilds($objQuery, "dtb_category", "parent_category_id", "category_id", $value["category_id"]); 222 } 223 // 自分のグループから減算 224 $this->lfDownRankChilds($objQuery, "dtb_category", "parent_category_id", "category_id", $keys[0], $down_count); 225 } 226 $objQuery->commit(); 227 } 175 228 break; 176 229 case 'tree':
Note: See TracChangeset
for help on using the changeset viewer.