Архив

< Март 2024 >
П В С Ч П С В
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

Вход на сайт

Тэги

Блог Alex Delphine

Здесь я оставляю разные свои мысли.

 

Используемые версии:

PHP: 5.2.0
Joomla 1.15.14
Mosets Tree 2.0.9

Для того, что бы в Mosets Tree включить русский альфаиндекс и в title страницы была искомая буква, необходимо в файле mtree.php найти код:

Код PHP:
$mainframe->setPageTitle( sprintf($_MT_LANG->LIST_ALPHA_BY_LISTINGS_AND_CATS, strtoupper($alpha), $cat_name) );

и заменить на:

Код PHP:
$mainframe->setPageTitle( sprintf($_MT_LANG->LIST_ALPHA_BY_LISTINGS_AND_CATS, mb_strtoupper($alpha), $cat_name) );

Чуть ниже строки "# Alphabets (A-Z)" ищем:

Код PHP:
strpos($mtconf->get('alpha_index_additional_chars'),strtolower($alpha))

и заменить на:

Код PHP:
mb_strpos($mtconf->get('alpha_index_additional_chars'),$alpha)

Далее в файле Savant2_Plugin_listalphaindex.php ищем код:

Код PHP:
$html .= sefRelToAbs("index.php?option=com_mtree&task=listalpha&alpha=".strtolower($char)."&cat_id=".$cat_id."&Itemid=".$Itemid);

и меняем его на:

Код PHP:
$html .= sefRelToAbs("index.php?option=com_mtree&task=listalpha&alpha=".urlencode($char)."&cat_id=".$cat_id."&Itemid=".$Itemid);

После строки:

Код PHP:
$default_chars = array('0-9','A','B');

добавляем

Код PHP:
mb_internal_encoding("UTF-8");

Ниже меняем все strlen на mb_strlen, а все substr на mb_substr.

Чтобы русский индекс был строкой ниже, можно добавить:

Код PHP:
echo '<br /><br />';

перед строкой:

Код PHP:
if($mtconf->get('alpha_index_additional_chars') != '') {

В файле page_listAlpha.tpl.php меняем все strtoupper на mb_strtoupper.

В базе данных, ищем таблицу jos_mt_config и вносим в поле value параметра alpha_index_additional_chars нужные нам дополнительные символы (например: АБВГДЕЖЗИКЛМНОПРСТУФХЦЧШЩЭЮЯ).

Если в строке альфаиндекса появляются ??????????, то открываем файл Savant2_Plugin_listalphaindex.php и меняем код:

Код PHP:
for ( $i=0; $i < mb_strlen($mtconf->get('alpha_index_additional_chars')); $i++ )

на следующее:

Код PHP:
for ( $i=0; $i < mb_strlen($mtconf->get('alpha_index_additional_chars'), "UTF-8"); $i++ )

ниже ищем строку:

Код PHP:
$this->printChar(mb_substr($mtconf->get('alpha_index_additional_chars'), $i, 1), $cat_id, $Itemid);

и меняем её на:

Код PHP:
$this->printChar(mb_substr($mtconf->get('alpha_index_additional_chars'), $i, 1, "UTF-8"), $cat_id, $Itemid);

(т.е. конкретно в функциях mb_strlen и mb_substr указываем что работаем в кодировках UTF-8).



У Вас не достаточно прав, для того что бы оставлять комментарии.