Умеренная кривизна в локализации модуля Archive by terms

Главные вкладки

Аватар пользователя burn burn 7 июля 2009 в 22:02

Установил модуль Archive by terms на многоязычном сайте с i18n и переводом таксономии.

Функционал - то что надо, но с переводами выявился небольшой но неприятный глюк.

В блоке Archive by terms в меню выводятся непереведенные пункты из словаря таксономии. При этом на страницах архива по ссылкам меню все ок, пункты переведенные.

Стал смотреть код и вижу там такое вот интересное:

function archive_by_terms_make_menu($vid = array(1)) {
       
        $where = '';
       
        $flag = true;
        foreach ( $vid as $value ) {//first we want to build the sql where clause
        if($flag){
                $flag = false;
                $where .= 'WHERE vid = %d';
        }else{
                $where .= ' OR vid = %d';
        }
           
        }
       
        //We get all the terms that should be displayed in the block
        $sql = "SELECT tid,name FROM {term_data} ".$where;
        $result = db_query($sql, $vid);
        $out = array ();
        $i = 0;
       
        //for each term selected we get the nodes
        while ($row = db_fetch_object($result)) {
                $nid_by_year = archive_by_terms_get_years($row->tid);
                $out[$i] = array (
                        'tid' => $row->tid,
                        'name' => $row->name,
                       
                );
                //all those nodes are now ordered by year
                foreach ($nid_by_year as $el) {
                        $out[$i]['year'][format_date($el->created, 'custom', 'Y')] = 'true';
                }
                $i++;
        }
        return $out;
}

немного удивился зачем использовать прямые sql запросы, но авторам модуля наверное виднее.
естественно первым же движением было

                $out[$i] = array (
                        'tid' => $row->tid,
                        'name' => t($row->name),
                       
                );

в принципе это работает, но теперь все термины словарей такономии, подключеных к archive by terms надо переводить дважды.

Я думаю тут должно быть какое то нормальное решение которое API функцией вернет сразу список в текущем языке. Подскажите как это лучше сделать?
Думаю это необходимо будет запостить в код модуля.