Index: branches/version-2_12-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category.php
===================================================================
--- branches/version-2_12-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category.php	(revision 22589)
+++ branches/version-2_12-dev/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Category.php	(revision 22590)
@@ -130,5 +130,4 @@
     function lfGetCatTree($arrParentCategoryId, $count_check = false)
     {
-        $objDb = new SC_Helper_DB_Ex();
         $objCategory = new SC_Helper_Category_Ex($count_check);
         $arrTree = $objCategory->getTree();
@@ -136,10 +135,5 @@
         $arrCategory = $objCategory->getList();
         foreach ($arrParentCategoryId as $category_id) {
-            $arrParentID = $objDb->sfGetParents(
-                'dtb_category',
-                'parent_category_id',
-                'category_id',
-                $category_id
-            );
+            $arrParentID = SC_Utils_Ex::getTreeTrail($category_id, 'category_id', 'parent_category_id', $arrCategory);
             $arrBrothersID = SC_Utils_Ex::sfGetBrothersArray(
                 $arrCategory,
Index: branches/version-2_12-dev/data/class/util/SC_Utils.php
===================================================================
--- branches/version-2_12-dev/data/class/util/SC_Utils.php	(revision 22589)
+++ branches/version-2_12-dev/data/class/util/SC_Utils.php	(revision 22590)
@@ -1933,5 +1933,5 @@
      * @return array ツリーの配列
      */
-    public static function buildTree($primary_key, $glue_key, $max_depth, $correction = array(), $base_id = 0)
+    public static function buildTree($primary_key, $glue_key, $max_depth, $correction = array(), $root_id = 0)
     {
         $children = array();
@@ -1939,5 +1939,5 @@
             $children[$child[$glue_key]][] = $child;
         }
-        $arrTree = $children[$base_id];
+        $arrTree = $children[$root_id];
         foreach ($arrTree as &$child) {
             SC_Utils_Ex::addChild($child, $primary_key, 1, $max_depth, $children);
@@ -1985,3 +1985,29 @@
         return $return;
     }
+
+    /**
+     * 階層情報が含まれている配列から親ID配列を取得する.
+     * 
+     * @param integer $start_id 取得起点
+     * @param string $primary_key 主キー名
+     * @param string $glue_key 親IDキー名
+     * @param array $correction 階層構造が含まれている配列
+     * @param integer $root_id ルートID
+     * @return array 親ID配列
+     */
+    public static function getTreeTrail($start_id, $primary_key, $glue_key, $correction = array(), $root_id = 0)
+    {
+        $arrIDToKay = SC_Utils_Ex::makeArrayIDToKey($primary_key, $correction);
+        $id = $start_id;
+        $arrTrail = array();
+        while ($id != $root_id && !SC_Utils_Ex::isBlank($id)) {
+            $arrTrail[] = $id;
+            if (isset($arrIDToKay[$id][$glue_key])) {
+                $id = $arrIDToKay[$id][$glue_key];
+            } else {
+                $id = $root_id;
+            }
+        }
+        return array_reverse($arrTrail);
+    }
 }
Index: branches/version-2_12-dev/data/class/helper/SC_Helper_DB.php
===================================================================
--- branches/version-2_12-dev/data/class/helper/SC_Helper_DB.php	(revision 22581)
+++ branches/version-2_12-dev/data/class/helper/SC_Helper_DB.php	(revision 22590)
@@ -343,5 +343,5 @@
         $arrRet = $objQuery->select($col, $from, $where);
 
-        $arrParentID = SC_Helper_DB_Ex::sfGetParents('dtb_category', 'parent_category_id', 'category_id', $parent_category_id);
+        $arrParentID = SC_Utils_Ex::getTreeTrail($parent_category_id, 'category_id', 'parent_category_id', $arrRet);
 
         foreach ($arrRet as $key => $array) {
