![]() ![]() |
| Alexander Stun |
12.01.06 - 21:34
Сообщение
#1
|
![]() Advanced Member ![]() ![]() ![]() Группа: Clients Сообщений: 142 Регистрация: 09.10.05 Пользователь №: 1,551 |
Было так:
0-9 | 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 | А | Б | В | Г | Д | Е | Ё | Ж | З | И | Й | К | Л | М | Н | О | П | Р | С | Т | У | Ф | Х | Ц | Ч | Ш | Щ | Ы | Э | Ю | Я 0-9 | 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 Шаблон здесь components/com_mtree/templates/bluetree/sub_alphaIndex.tpl.php CODE <?php echo $this->plugin('listalpha', '0') ?> | <?php echo $this->plugin('listalpha', 'А') ?> | <?php echo $this->plugin('listalpha', 'Б') ?> | <?php echo $this->plugin('listalpha', 'В') ?> | <?php echo $this->plugin('listalpha', 'Г') ?> | <?php echo $this->plugin('listalpha', 'Д') ?> | <?php echo $this->plugin('listalpha', 'Е') ?> | <?php echo $this->plugin('listalpha', 'Ё') ?> | <?php echo $this->plugin('listalpha', 'Ж') ?> | <?php echo $this->plugin('listalpha', 'З') ?> | <?php echo $this->plugin('listalpha', 'И') ?> | <?php echo $this->plugin('listalpha', 'Й') ?> | <?php echo $this->plugin('listalpha', 'К') ?> | <?php echo $this->plugin('listalpha', 'Л') ?> | <?php echo $this->plugin('listalpha', 'М') ?> | <?php echo $this->plugin('listalpha', 'Н') ?> | <?php echo $this->plugin('listalpha', 'О') ?> | <?php echo $this->plugin('listalpha', 'П') ?> | <?php echo $this->plugin('listalpha', 'Р') ?> | <?php echo $this->plugin('listalpha', 'С') ?> | <?php echo $this->plugin('listalpha', 'Т') ?> | <?php echo $this->plugin('listalpha', 'У') ?> | <?php echo $this->plugin('listalpha', 'Ф') ?> | <?php echo $this->plugin('listalpha', 'Х') ?> | <?php echo $this->plugin('listalpha', 'Ц') ?> | <?php echo $this->plugin('listalpha', 'Ч') ?> | <?php echo $this->plugin('listalpha', 'Ш') ?> | <?php echo $this->plugin('listalpha', 'Щ') ?> | <?php echo $this->plugin('listalpha', 'Ы') ?> | <?php echo $this->plugin('listalpha', 'Э') ?> | <?php echo $this->plugin('listalpha', 'Ю') ?> | <?php echo $this->plugin('listalpha', 'Я') ?> <br/><br/> <?php echo $this->plugin('listalpha', '0') ?> | <?php echo $this->plugin('listalpha', 'A') ?> | <?php echo $this->plugin('listalpha', 'B') ?> | <?php echo $this->plugin('listalpha', 'C') ?> | <?php echo $this->plugin('listalpha', 'D') ?> | <?php echo $this->plugin('listalpha', 'E') ?> | <?php echo $this->plugin('listalpha', 'F') ?> | <?php echo $this->plugin('listalpha', 'G') ?> | <?php echo $this->plugin('listalpha', 'H') ?> | <?php echo $this->plugin('listalpha', 'I') ?> | <?php echo $this->plugin('listalpha', 'J') ?> | <?php echo $this->plugin('listalpha', 'K') ?> | <?php echo $this->plugin('listalpha', 'L') ?> | <?php echo $this->plugin('listalpha', 'M') ?> | <?php echo $this->plugin('listalpha', 'N') ?> | <?php echo $this->plugin('listalpha', 'O') ?> | <?php echo $this->plugin('listalpha', 'P') ?> | <?php echo $this->plugin('listalpha', 'Q') ?> | <?php echo $this->plugin('listalpha', 'R') ?> | <?php echo $this->plugin('listalpha', 'S') ?> | <?php echo $this->plugin('listalpha', 'T') ?> | <?php echo $this->plugin('listalpha', 'U') ?> | <?php echo $this->plugin('listalpha', 'V') ?> | <?php echo $this->plugin('listalpha', 'W') ?> | <?php echo $this->plugin('listalpha', 'X') ?> | <?php echo $this->plugin('listalpha', 'Y') ?> | <?php echo $this->plugin('listalpha', 'Z') ?> Результат почемуто такой 0-9 | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 0-9 | 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 Яж ведь вижу, что код шаблона правильный, но русский алфавит так и не появляется. В чём может быть причина этой неприятности и как её устранить? Сообщение отредактировал Alexander Stun - 12.01.06 - 21:36 -------------------- Host server Info: Linux | Apache 1.3.33 | PHP 4.3.11 | MySQL 4.1.10 | Zend Optimizer 2.5.7 | Joomla 1.0.7 | IPB 2.1.4
Official site: |
| Alecfyz |
13.01.06 - 12:22
Сообщение
#2
|
![]() Gorsk.net Studio ![]() ![]() ![]() Группа: Admin Сообщений: 1,852 Регистрация: 24.02.05 Пользователь №: 3 |
Это происходит потому, что в плагине, реализующем вывод алфавитного списка, не определено правило для кириллических символов.
Решение: Находим файл components/com_mtree/Savant2/Savant2_Plugin_listalpha.php В строке #25 видим такую конструкцию: CODE if ( eregi("[a-z0]{1}[0-9]*", $start) ) { Заменяем ее на такую: CODE if ( eregi("[a-z0А-Я\Ё]{1}[0-9]*", $start) ) { Сохраняемся. Теперь переделанный вами шаблон алфавитного списка будет работать. -------------------- Ибу ибу ди - хуэй дао муди - [Шаг за шагом можно достигнуть цели (кит.)]
|
| Alexander Stun |
13.01.06 - 13:22
Сообщение
#3
|
![]() Advanced Member ![]() ![]() ![]() Группа: Clients Сообщений: 142 Регистрация: 09.10.05 Пользователь №: 1,551 |
Хм
CODE ( eregi("[a-z0]{1}[0-9]*", "[a-я0]{2}[0-9]*", $start) ) по тому чтохотел показать как английский, так и русский. Всёровно у меня тогда ничего не получилось.Спасибо Alecfyz за помощь! -------------------- Host server Info: Linux | Apache 1.3.33 | PHP 4.3.11 | MySQL 4.1.10 | Zend Optimizer 2.5.7 | Joomla 1.0.7 | IPB 2.1.4
Official site: |
| Alecfyz |
13.01.06 - 13:26
Сообщение
#4
|
![]() Gorsk.net Studio ![]() ![]() ![]() Группа: Admin Сообщений: 1,852 Регистрация: 24.02.05 Пользователь №: 3 |
QUOTE по тому чтохотел показать как английский, так и русский. Так при моем варианте будет работать и русский, и английский. -------------------- Ибу ибу ди - хуэй дао муди - [Шаг за шагом можно достигнуть цели (кит.)]
|
| Alexander Stun |
13.01.06 - 13:35
Сообщение
#5
|
![]() Advanced Member ![]() ![]() ![]() Группа: Clients Сообщений: 142 Регистрация: 09.10.05 Пользователь №: 1,551 |
Теперь руские буквы видны
Но вот очередная трабла: После клика на одну из русских букв над алфавитным указателем вылазит ошибка следующего содержания: QUOTE Warning: implode() [function.implode]: Bad arguments. in D:\SERVER\Apache2\www\components\com_mtree\mtree.php on line 707 Warning: implode() [function.implode]: Bad arguments. in D:\SERVER\Apache2\www\components\com_mtree\mtree.php on line 715 Warning: array_merge() [function.array-merge]: Argument #2 is not an array in D:\SERVER\Apache2\www\components\com_mtree\mtree.php on line 726 Warning: reset() [function.reset]: Passed variable is not an array or object in D:\SERVER\Apache2\www\includes\joomla.php on line 1397 Ща гляну, что там с этими файлами, если не разберусь, придётся снова просить о помощи -------------------- Host server Info: Linux | Apache 1.3.33 | PHP 4.3.11 | MySQL 4.1.10 | Zend Optimizer 2.5.7 | Joomla 1.0.7 | IPB 2.1.4
Official site: |
| Alexander Stun |
13.01.06 - 13:54
Сообщение
#6
|
![]() Advanced Member ![]() ![]() ![]() Группа: Clients Сообщений: 142 Регистрация: 09.10.05 Пользователь №: 1,551 |
Нет, здесь мне не разобраться без посторонней помощи
файл components\com_mtree\mtree.php CODE // Get Categories - Normal $cat_sql = "SELECT cat_name AS text, cat_id AS value FROM #__mt_cats WHERE "; # начало строки 707 $cat_sql .= implode( ' AND ', $where_cat ); # конец строки 707 $cat_sql .= "AND cat_approved = '1' "; $cat_sql .= "AND cat_published = '1' "; $cat_sql .= "AND cat_featured = '0' "; $cat_sql .= "ORDER BY cat_name ASC "; // Get Categories - Featured $cat_f_sql = "SELECT * FROM #__mt_cats WHERE "; # начало строки 715 $cat_f_sql .= implode( ' AND ', $where_cat ); # конец строки 715 $cat_f_sql .= "AND cat_approved = '1' "; $cat_f_sql .= "AND cat_published = '1' "; $cat_f_sql .= "AND cat_featured = '1' "; $cat_f_sql .= "ORDER BY ordering ASC "; # SQL - Normal Categories $lists = array(); $categories[] = mosHTML::makeOption( '-1', $_MT_LANG->SELECT_CATEGORY ); $database->setQuery( $cat_sql ); $normal_cat = $database->loadObjectList(); # начало строки 726 $categories = array_merge( $categories, $normal_cat ); #конец строки 726 $num_of_cats = count( $normal_cat ); файл includes\joomla.php CODE /** * Generates an HTML select list * @param array An array of objects * @param string The value of the HTML name attribute * @param string Additional HTML attributes for the <select> tag * @param string The name of the object variable for the option value * @param string The name of the object variable for the option text * @param mixed The key that is selected * @returns string HTML for the select list */ function selectList( &$arr, $tag_name, $tag_attribs, $key, $text, $selected=NULL ) { # начало строки 1397 reset( $arr ); # конец строки 1397 $html = "\n<select name=\"$tag_name\" $tag_attribs>"; for ($i=0, $n=count( $arr ); $i < $n; $i++ ) { $k = $arr[$i]->$key; $t = $arr[$i]->$text; $id = ( isset($arr[$i]->id) ? @$arr[$i]->id : null); $extra = ''; $extra .= $id ? " id=\"" . $arr[$i]->id . "\"" : ''; if (is_array( $selected )) { foreach ($selected as $obj) { $k2 = $obj->$key; if ($k == $k2) { $extra .= " selected=\"selected\""; break; } } } else { $extra .= ($k == $selected ? " selected=\"selected\"" : ''); } $html .= "\n\t<option value=\"".$k."\"$extra>" . $t . "</option>"; } $html .= "\n</select>\n"; return $html; } Думал, что смогу догадаться, чтобы поправить код, но тут для меня вообще "тёмный лес" Сообщение отредактировал Alexander Stun - 13.01.06 - 14:02 -------------------- Host server Info: Linux | Apache 1.3.33 | PHP 4.3.11 | MySQL 4.1.10 | Zend Optimizer 2.5.7 | Joomla 1.0.7 | IPB 2.1.4
Official site: |
| Alecfyz |
13.01.06 - 14:07
Сообщение
#7
|
![]() Gorsk.net Studio ![]() ![]() ![]() Группа: Admin Сообщений: 1,852 Регистрация: 24.02.05 Пользователь №: 3 |
На самом деле, там ничего страшного нет.
файл mtree.php, строка #798 Код CODE } elseif ( eregi("[a-z0]{1}[0-9]*", $start) ) { заменяем на CODE } elseif ( eregi("[a-z0А-Я\Ё]{1}[0-9]*", $start) ) { Вот и все. -------------------- Ибу ибу ди - хуэй дао муди - [Шаг за шагом можно достигнуть цели (кит.)]
|
| Alexander Stun |
13.01.06 - 14:49
Сообщение
#8
|
![]() Advanced Member ![]() ![]() ![]() Группа: Clients Сообщений: 142 Регистрация: 09.10.05 Пользователь №: 1,551 |
Странно, чтото у меня нет этого фрагмента кода в mtree.php
Может просто этот файл заменить твоим? Сообщение отредактировал Alexander Stun - 13.01.06 - 14:53 -------------------- Host server Info: Linux | Apache 1.3.33 | PHP 4.3.11 | MySQL 4.1.10 | Zend Optimizer 2.5.7 | Joomla 1.0.7 | IPB 2.1.4
Official site: |
| Alecfyz |
13.01.06 - 15:00
Сообщение
#9
|
![]() Gorsk.net Studio ![]() ![]() ![]() Группа: Admin Сообщений: 1,852 Регистрация: 24.02.05 Пользователь №: 3 |
Найди в коде mtree.php начало функции function listalpha_cache
и отсчитай 13 строк вниз. Там и будет этот код. В конце концов сделай поиск по всему файлу по ключу "a-z0" и найдешь этот кусок. -------------------- Ибу ибу ди - хуэй дао муди - [Шаг за шагом можно достигнуть цели (кит.)]
|
| Alexander Stun |
13.01.06 - 15:15
Сообщение
#10
|
![]() Advanced Member ![]() ![]() ![]() Группа: Clients Сообщений: 142 Регистрация: 09.10.05 Пользователь №: 1,551 |
Найди в коде mtree.php начало функции function listalpha_cache и отсчитай 13 строк вниз. Там и будет этот код. В конце концов сделай поиск по всему файлу по ключу "a-z0" и найдешь этот кусок. Интересно, такой функции function listalpha_cache у меня в mtree.php оказывается тоже нету. Но, это единственное, что там есть подходящего: CODE # Alphabets (A-Z) } elseif ( eregi("[a-z0-9]{1}[0-9]*", $start) ) { $where[] = "link_name LIKE '".$start."%'"; $where_cat[] = "cat_name LIKE '".$start."%'"; } Значит, как раз то его и правлю... -------------------- Host server Info: Linux | Apache 1.3.33 | PHP 4.3.11 | MySQL 4.1.10 | Zend Optimizer 2.5.7 | Joomla 1.0.7 | IPB 2.1.4
Official site: |
| Alecfyz |
13.01.06 - 15:18
Сообщение
#11
|
![]() Gorsk.net Studio ![]() ![]() ![]() Группа: Admin Сообщений: 1,852 Регистрация: 24.02.05 Пользователь №: 3 |
Ок. Потом отпишись. И скажи какая у тебя версия.
-------------------- Ибу ибу ди - хуэй дао муди - [Шаг за шагом можно достигнуть цели (кит.)]
|
| Alexander Stun |
13.01.06 - 15:26
Сообщение
#12
|
![]() Advanced Member ![]() ![]() ![]() Группа: Clients Сообщений: 142 Регистрация: 09.10.05 Пользователь №: 1,551 |
Всё! Полный порядок.
Можно и мануальчик по этой теме состряпать. Другим людям в помощь У меня версия 1.03 (написано в эбауте компонента.) -------------------- Host server Info: Linux | Apache 1.3.33 | PHP 4.3.11 | MySQL 4.1.10 | Zend Optimizer 2.5.7 | Joomla 1.0.7 | IPB 2.1.4
Official site: |
| Alecfyz |
13.01.06 - 15:29
Сообщение
#13
|
![]() Gorsk.net Studio ![]() ![]() ![]() Группа: Admin Сообщений: 1,852 Регистрация: 24.02.05 Пользователь №: 3 |
Вот и хорошо, что все получилось.
--- А у меня версия 1.55 -------------------- Ибу ибу ди - хуэй дао муди - [Шаг за шагом можно достигнуть цели (кит.)]
|
| Alexander Stun |
13.01.06 - 15:41
Сообщение
#14
|
![]() Advanced Member ![]() ![]() ![]() Группа: Clients Сообщений: 142 Регистрация: 09.10.05 Пользователь №: 1,551 |
Толку то...
Компонент отличный, но жаль, что платный. Не знаю как заказчик отнесётся к удорожанию проекта, посмотрим. На всякий случай, я ищу альтернативу этому бизнес каталогу на соответствующих ветках форума. Хотелось бы знать твоё мнение относительно альтернативных бизнес каталогов. Сообщение отредактировал Alexander Stun - 13.01.06 - 15:48 -------------------- Host server Info: Linux | Apache 1.3.33 | PHP 4.3.11 | MySQL 4.1.10 | Zend Optimizer 2.5.7 | Joomla 1.0.7 | IPB 2.1.4
Official site: |
| Alexander Stun |
13.01.06 - 16:30
Сообщение
#15
|
![]() Advanced Member ![]() ![]() ![]() Группа: Clients Сообщений: 142 Регистрация: 09.10.05 Пользователь №: 1,551 |
Вот как это сейчас выглядит:
-------------------- Host server Info: Linux | Apache 1.3.33 | PHP 4.3.11 | MySQL 4.1.10 | Zend Optimizer 2.5.7 | Joomla 1.0.7 | IPB 2.1.4
Official site: |
| Lufa |
05.02.06 - 01:45
Сообщение
#16
|
|
Newbie ![]() Группа: Members Сообщений: 2 Регистрация: 08.05.05 Пользователь №: 719 |
Вот и хорошо, что все получилось. Странно, у меня на 1.03 не получилось. Алфавит есть, но ошибки с implode не исчезают. Если кликнуть на кирилицу то показывает ошибки с implode + вообще все записи . Поправил и listalpha и mtree. Я мог что-то пропустить? Спасибо. Редактирование: В mtree нажатая буква берется как $start = substr(trim( mosGetParam( $_REQUEST, 'start', '' ) ), 0, 1); То отрезается все кроме 1-го символа. А у меня кирилица передается как "%D0". Вот почему не работает. А вот почему так передается?.. Редактирование 2: Для себя решил заменой в mosets.php $start = substr(trim( mosGetParam( $_REQUEST, 'start', '' ) ), 0, 1); на $start = trim( mosGetParam( $_REQUEST, 'start', '' ) ); $start=urldecode($start); $start = substr($start, 0, 1); То есть по ходу декодируюю в норм. символ. Сообщение отредактировал Lufa - 05.02.06 - 02:08 |
| Lufa |
17.02.06 - 03:57
Сообщение
#17
|
|
Newbie ![]() Группа: Members Сообщений: 2 Регистрация: 08.05.05 Пользователь №: 719 |
Странно.
У меня поиск по буквах работает Только в Firefox. В IE - нет. |
| Mr.Friction |
09.10.06 - 14:22
Сообщение
#18
|
|
Newbie ![]() Группа: Members Сообщений: 8 Регистрация: 27.09.05 Пользователь №: 1,538 |
Почитал, что у вас тут написано и всёравно неполучилось
Версия 1.59 # Alphabets (A-Z) } elseif ( eregi("[a-z0А-Я\Ё]{1}[0-9]*", $start) ) { - вот как написано у вас $where[] = "link_name LIKE '".$start."%'"; $where_cat[] = "cat_name LIKE '".$start."%'"; } # SQL condition to display category specific results $subcats = implode(", ",getSubCats_Recursive($cat_id)); if ($subcats) $where[] = "cl.cat_id IN (" . $subcats . ")"; if ($subcats) $where_cat[] = "cat_parent IN (" . $subcats . ")"; и вот такие выдаёт ошибки Warning: implode(): Bad arguments. in public_html/components/com_mtree/mtree.php on line 893 Warning: implode(): Bad arguments. in public_html/components/com_mtree/mtree.php on line 901 |
| ant1dj |
28.01.07 - 16:19
Сообщение
#19
|
|
Newbie ![]() Группа: Members Сообщений: 1 Регистрация: 28.01.07 Пользователь №: 4,193 |
Огромное спасибо Alecfyz
файл темплейта сделал чуть чуть по другому, но зато теперь все работает...я совсем ничего в регулярных выражениях не понимаю еще раз спасибо |
| cafe4u |
09.02.07 - 17:39
Сообщение
#20
|
|
Newbie ![]() Группа: Members Сообщений: 1 Регистрация: 09.02.07 Пользователь №: 4,217 |
У меня версия 1.5.9
Все сделала, как рекомендовано. Русский алфавит появился, но при нажатии на любую букву выводит весь каталог Поможете? |
![]() ![]() |
| Lo-Fi Version | Time is now: 18.05.12 - 08:21 |