[EC-CUBE 2.12.2] 商品一覧ページに、サブカテゴリを表示させたい

1年以上前に同タイトルの記事を書いたのですが、
よく質問をいただきますので、現在の最新バージョンの 2.12.2 でできるかなと試してみました。
気まぐれでコードを書き直しましたが、一応以下のような感じでできました。

EC-CUBE サブカテゴリ 表示

1.data/class/pages/products/LC_Page_Products_List.php の 133行目あたりに以下のコードを記述。

// サブカテゴリリストを取得
$this->arrSubCatList = $this->lfGetCatTree($this->arrSearchData['category_id']);

2.data/class/pages/products/LC_Page_Products_List.php の 末尾に以下の関数を記述。

    /**
     * カテゴリツリーの取得.
     *
     * @param array $parent_category_id 親カテゴリID
     * @param boolean $count_check 登録商品数をチェックする場合はtrue
     * @return array $arrRet カテゴリツリーの配列を返す
     */
    function lfGetCatTree($parent_category_id, $count_check = false) {
        $objQuery =& SC_Query_Ex::getSingletonInstance();
        $objDb = new SC_Helper_DB_Ex();
        $col = '*';
        $from = 'dtb_category left join dtb_category_total_count ON dtb_category.category_id = dtb_category_total_count.category_id';
        // 登録商品数のチェック
        if ($count_check) {
            $where = 'del_flg = 0 AND product_count > 0 AND parent_category_id = ?';
        } else {
            $where = 'del_flg = 0 AND parent_category_id = ?';
        }
        $arrval = array($parent_category_id);
        $objQuery->setOption('ORDER BY rank DESC');
        return $objQuery->select($col, $from, $where, $arrval);
    }

 前回は、SC_Helper_DB_Ex::sfGetCatTree を使ってカテゴリ情報を取得していたのですが、
 sfGetCatTree の仕様がいまいちよくわからなかったので、カテゴリブロックでやっているようにローカル関数として書き直してみました。
 DBからselectする段階で、parent_catetgory_id を条件として与えるようにしました。

3.data/Smarty/templates/default/products/list.tpl の 91行目あたりに以下のコードを記述

<!--{* 下位カテゴリ *}-->
<!--{if $arrSubCatList|@count > 0}-->
    下位カテゴリ:
    <!--{foreach from=$arrSubCatList item=category}-->
        <a href="<!--{$smarty.const.ROOT_URLPATH}-->products/list.php?category_id=<!--{$category.category_id|h}-->"><!--{$category.category_name|h}--></a>&nbsp;
    <!--{/foreach}-->
<!--{/if}-->