sobi2 руссификация AlphaIndex

Бизнес-каталог sobi2 представляет очень удобную навигацию по буквам. Но как всегда с русским языком работать не хочет.

Сегодня я расскажу как это исправить))

Нижеописанные действия выполнялись с sobi2 версии RC 2.9.2.3 на joomla 1.0.15. На других версиях не пробовал но думаю будет все по аналогии.

Итак, придется подправить несколько файлов.

Открываем файл frontend.class.php и ищем строку:

if( $config->showAlphaIndex ) {

и заменяем кусок кода до строк:

/*
* build header menu
*/
if($config->showComponentLink || $config->showAddNewEntryLink || $config->showSearchLink) {

на вот этот код:

//$letters = $config->key(«alpha_index», «letters», «A,B,C,D,E,F,G,H,I,J,K,L,M,N,O,P,Q,R,S,T,U,V,W,X,Y,Z,0-9»);
if( $letters ) {
$letters = explode( «,» , $letters );
}
else {
$letters = array(«A»,»B»,»C»,»D»,»E»,»F»,»G»,»H»,»I»,»J»,»K»,»L»,»M»,»N»,»O»,»P»,»Q»,»R»,»S»,»T»,»U»,»V»,»W»,»X»,»Y»,»Z»,»0-9″);
$letters2 = array(«А»,»Б»,»В»,»Г»,»Д»,»Е»,»Ж»,»З»,»И»,»К»,»Л»,»М»,»Н»,»О»,»П»,»Р»,»С»,»Т»,»У»,»Ф»,»Х»,»Ц»,»Ч»,»Ш»,»Щ»,»Э»,»Ю»,»Я»,»0-9″);
}
$azindex = array();
foreach ( $letters as $letter ) {
$x = urlencode( $letter );
$href = sobi2Config::sef(«index.php?option=com_sobi2&letter={$x}&Itemid={$config->sobi2Itemid}»);
$azindex[] = «{$letter}\n\t\t\t»;
}
$azindex2 = array();
foreach ( $letters2 as $letter ) {

$x = urlencode( $letter );

$href = sobi2Config::sef(«index.php?option=com_sobi2&letter={$x}&Itemid={$config->sobi2Itemid}»);
$azindex2[] = «{$letter}\n\t\t\t»;
}
if(!empty($azindex)) {
$this->sobi2Header .= »

\n\t\t\t\t\t»;
$this->sobi2Header .= implode(» | «, $azindex);
$this->sobi2Header .= »
«;
$this->sobi2Header .= implode(» | «, $azindex2);
$this->sobi2Header .= «

\n\t\t»;
}
}

Теперь открываем  файл sobi2.listing.php и ищем строку:

function showAlphaListing( $letter )

и заменяем все до строки

$query = «SELECT itemid FROM #__sobi2_item WHERE UPPER(title) RLIKE ‘^{$search}’ AND (published = 1 AND publish_down > ‘{$now}’ OR publish_down = ‘{$config->nullDate}’) «;

следующим кодом:

{
$config =& sobi2Config::getInstance();
$database = $config->getDb();
$now = $config->getTimeAndDate();
$letter = $database->getEscaped( $letter );
$letter = urldecode( $letter );
//============================================
$phrase = $letter;
//$letter = «Ï»;
$temp_translate = $letter;

$temp_translate = strtr($temp_translate, array(
«а»=>’à’, «б»=>’á’, «в»=>’â’, «г»=>’ã’,
«д»=>’ä’, «е»=>’å’, «ж»=>’æ’, «з»=>’ç’,
«и»=>’è’, «й»=>’é’, «к»=>’ê’, «л»=>’ë’,
«м»=>’ì’, «н»=>’í’, «о»=>’î’, «п»=>’ï’,
‘р’=>’ð’, «с»=>’ñ’, «т»=>’ò’, «у»=>’ó’,
«ф»=>’ô’, «ы»=>’û’, «э»=>’ý’, «ё»=>’¸’,
«х»=>’õ’, «ц»=>’ö’, «ч»=>’÷’, «ш»=>’ø’,
«щ»=>’ù’, «ъ»=>’ú’, «ь»=>’ü’, «ю»=>’þ’,
«я»=>’ÿ’,
«А»=>’À’, «Б»=>’Á’, «В»=>’Â’, «Г»=>’Ã’,
«Д»=>’Ä’, «Е»=>’Å’, «Ж»=>’Æ’, «З»=>’Ç’,
«И»=>’È’, «Й»=>’É’, «К»=>’Ê’, «Л»=>’Ë’,
«М»=>’Ì’, «Н»=>’Í’, «О»=>’Î’, «П»=>’Ï’,
«Р»=>’Ð’, «С»=>’Ñ’, «Т»=>’Ò’, «У»=>’Ó’,
«Ф»=>’Ô’, «Ы»=>’Û’, «Э»=>’Ý’, «Ё»=>’¨’,
«Х»=>’Õ’, «Ц»=>’Ö’, «Ч»=>’×’, «Ш»=>’Ø’,
«Щ»=>’Ù’, «Ъ»=>’Ú’, «Ь»=>’Ü’, «Ю»=>’Þ’,
«Я»=>’ß’
));
$letter = $temp_translate;
//============================================
if ( isset( $letter[1] ) && $letter[1] == «-» ) {
$search = «[{$letter[0]}-{$letter[2]}]»;
$phrase = «{$letter[0]}-{$letter[2]}»;
}
else {
$search = $letter;
}
$search = $letter;

Всё!!)) Пьем кофе или что то покрепче и наслаждаемся результатом)

Запись опубликована в рубрике Joomla. Добавьте в закладки постоянную ссылку.

2 комментария на «sobi2 руссификация AlphaIndex»

  1. vitalik говорит:

    Статья познавательная. Прочитал с удовольствием. Спасибо

  2. Саня говорит:

    А букву ё как так представить? Замучался уже гадать..

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *