<?php

class ACMS_GET_Admin_Fix_GroupUnit extends ACMS_GET_Admin_Fix
{
    function fix(&$Tpl, $block)
    {
        if (!sessionWithAdministration()) {
            die403();
        }

        //-------------------
        // unit group class（現在のブログ＋子ブログの範囲で一覧表示する。
        // 実際に変換されるかどうかは POST 側の「子ブログも対象にする」チェックに従う）
        $sql = SQL::newSelect('column');
        $sql->addSelect('column_group_class', null, null, 'DISTINCT');
        $sql->addLeftJoin('blog', 'blog_id', 'column_blog_id');
        ACMS_Filter::blogTree($sql, BID, 'descendant-or-self');
        $type = SQL::newWhere();
        $type->addWhereOpr('column_type', 'group', '=', 'OR');
        $type->addWhereOpr('column_type', 'group\_%', 'LIKE', 'OR');
        $sql->addWhere($type);

        $all = DB::query($sql->get(dsn()), 'all');
        foreach ($all as $group) {
            $name = $group['column_group_class'];
            if ($name === '' || $name === null) {
                continue;
            }
            $vars = [
                'name' => $name,
            ];
            $Tpl->add(array_merge(['unit_group_class:loop'], $block), $vars);
        }
        return true;
    }
}
