Non-Latin Letters in Memberlist

Здесь авторы могут постить бета-версии своих модификаций для phpBB 3.0.x. Внимание! Не устанавливайте бета-версии модов на работающие форумы!
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Non-Latin Letters in Memberlist

Сообщение Nekstati »

Мод добавляет возможность поиска пользователей по первой букве любого алфавита, а не только базового латинского (ASCII), используемого в phpBB по умолчанию.
memberlist.png
Дополнительно мод исправляет баги сортировки/поиска пользователей по имени. Эта проблема актуальна лишь для нелатинических языков, поэтому её исправление оформлено в виде отдельного XML-файла (см. в папке contrib).
Подробнее об этом баге... 
Штатно сортировка и поиск производятся по username_clean, а не по username, что приводит к полнейшей путанице: напр., русская Г приравнивается к латинской R, Б к цифре шесть, армянская Ծ к греческой Δ, две армянские буквы Գ и Զ не различаются и приравниваются к латинской Q и т. п. В итоге, к примеру, ищем по цифре 6 и получаем имя Борис. При этом, что интересно, phpBB считает латинские AÁÂÄÅÀĀĂĄ разными буквами.
Мод является продолжением той разработки, хотя код здесь совсем другой.

Требования: phpBB 3.0.10. Для более ранних версий см. ссылку выше.

Инфо для локализаторов. Языковая переменная в файле language/**/memberlist.php может содержать алфавит пользователя целиком либо только те символы, которых недостаёт в латинском алфавите (ASCII). Она может содержать как массив, так и простое перечисление символов (без пробелов). Символы должны быть в нижнем регистре. Например:

Код: Выделить всё

	'ALPHABET'		=> 'абвгдеёжзийклмнопрстуфхцчшщъыьэюя', // Русский
	'ALPHABET'		=> 'ąćęłńóśźż',							// Polski
	'ALPHABET'		=> array('ä', 'ö', 'ü', 'ß'),			// Deutsch
Если нужно отделить пользовательский алфавит от латинского переносом строки, используйте дефис:

Код: Выделить всё

	'ALPHABET'		=> '-абвгдеёжзийклмнопрстуфхцчшщъыьэюя',
	'ALPHABET'		=> array('-', 'а', 'б', 'в'),
Комбинированный вариант для русского, украинского и белорусского языков:

Код: Выделить всё

	'ALPHABET'		=> '-абвгґдеёєжзиіїйклмнопрстуўфхцчшщъыьэюя',
non-latin_letters_in_memberlist_100.zip
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Nekstati 09.05.2012 19:17, всего редактировалось 6 раз.
Причина: Мелкие поправки.
Аватара пользователя
МайскийЖук
phpBB 3.0.7-PL1
Сообщения: 2535
Стаж: 16 лет 11 месяцев
Благодарил (а): 17 раз
Поблагодарили: 366 раз

Non-Latin Letters in Memberlist

Сообщение МайскийЖук »

Как ни странно, мод без проблем встал на стиль absolution, все нашлось, все исправилось по инструкции. Спасибо большое за мод.

Но! На двух форумах почему-то произошел затык на следующем пункте инструкции.

Код: Выделить всё

		$first_characters = array();
		$first_characters[''] = $user->lang['ALL'];
		for ($i = 97; $i < 123; $i++)
		{
			$first_characters[chr($i)] = chr($i - 32);
		}
		$first_characters['other'] = $user->lang['OTHER'];

		foreach ($first_characters as $char => $desc)
		{
			$template->assign_block_vars('first_char', array(
				'DESC'			=> $desc,
				'VALUE'			=> $char,
				'S_SELECTED'	=> ($first_char == $char) ? true : false,
				'U_SORT'		=> append_sid("{$phpbb_root_path}memberlist.$phpEx", $u_first_char_params . 'first_char=' . $char) . '#memberlist',
			));
		}
У меня в memberlist.php нет даже строчки 'DESC' => $desc, и иже с ней. На этом выполнение инструкции прервал до выяснения.

Может мод какой-то изменил мне memberlist.php на двух форумах? На том, в котором все пункты инструкции выполнились, модов почти нет.
Любовь и боль, покой и бой я как любой несу с собой…
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Non-Latin Letters in Memberlist

Сообщение Nekstati »

Просто memberlist.php у вас более ранней версии, чем 3.0.10.
Аватара пользователя
МайскийЖук
phpBB 3.0.7-PL1
Сообщения: 2535
Стаж: 16 лет 11 месяцев
Благодарил (а): 17 раз
Поблагодарили: 366 раз

Non-Latin Letters in Memberlist

Сообщение МайскийЖук »

На одном форуме действительно memberlist.php идет еще с версии 3.0.8. Но один форум был инсталлирован и запущен сразу после нового года, то есть после выхода 3.0.10. :?
Любовь и боль, покой и бой я как любой несу с собой…
sweetah
phpBB 2.0.6
Сообщения: 506
Стаж: 16 лет 7 месяцев
Благодарил (а): 108 раз
Поблагодарили: 26 раз

Re: Non-Latin Letters in Memberlist

Сообщение sweetah »

Nekstati, а не подскажете как бы обернуть каждый алфавит в span (английский и русский)? Пускай даже самым дурацким способом, типа добавления в языковой файл.
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Non-Latin Letters in Memberlist

Сообщение Nekstati »

memberlist_body.html

Код: Выделить всё

				<!-- BEGIN first_char -->
					<!-- IF first_char.VALUE == '-' --><br /><!-- ELSE --><a href="{first_char.U_SORT}">{first_char.DESC}</a>&nbsp; <!-- ENDIF -->
				<!-- END first_char -->
заменить на

Код: Выделить всё

				<span class="latin">
				<!-- BEGIN first_char -->
					<!-- IF first_char.VALUE == '-' --></span><br /><span class="cyrillic"><!-- ELSE --><a href="{first_char.U_SORT}">{first_char.DESC}</a>&nbsp; <!-- ENDIF -->
				<!-- END first_char -->
				</span>
sweetah
phpBB 2.0.6
Сообщения: 506
Стаж: 16 лет 7 месяцев
Благодарил (а): 108 раз
Поблагодарили: 26 раз

Re: Non-Latin Letters in Memberlist

Сообщение sweetah »

Nekstati, таким образом ссылка на всех пользователей ("Все") попадает в span "latin" вместе с алфавитом, а ссылка на другие символы ("Другая") попадает в span "cyrillic" вместе с алфавитом. Можно сделать так, чтобы они остались нетронутыми?
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Non-Latin Letters in Memberlist

Сообщение Nekstati »

Ну я же вам показала принцип, могли бы и поэкспериментировать. :)

Код: Выделить всё

				<!-- BEGIN first_char -->
					<!-- IF first_char.VALUE == 'a' --><span class="latin"><!-- ENDIF -->
					<!-- IF first_char.VALUE == '-' --></span><br /><span class="cyrillic"><!-- ELSE --><a href="{first_char.U_SORT}">{first_char.DESC}</a>&nbsp; <!-- ENDIF -->
					<!-- IF first_char.VALUE == 'я' --></span><!-- ENDIF -->
				<!-- END first_char -->
Файл сохранять в UTF-8 без BOM.
krasab
phpBB 1.4.4
Сообщения: 191
Стаж: 16 лет 6 месяцев
Благодарил (а): 19 раз
Поблагодарили: 5 раз

Re: Non-Latin Letters in Memberlist

Сообщение krasab »

А если установлен ЭТОТ: http://www.phpbbguru.net/community/topic21315.html мод? Его надо удалять или можно поверх ставить?
Изображение
Аватара пользователя
Пчелкин
phpBB 3.3.0
Сообщения: 11361
Стаж: 16 лет 8 месяцев
Благодарил (а): 1832 раза
Поблагодарили: 1358 раз

Re: Non-Latin Letters in Memberlist

Сообщение Пчелкин »

Лучше ТО удалить...
NIKON-D90, AF-S 18-105, AF-S 14-24, AF-S 24-70
Аватара пользователя
Nekstati
Поддержка
Поддержка
Сообщения: 3365
Стаж: 17 лет 6 месяцев
Благодарил (а): 37 раз
Поблагодарили: 1454 раза

Re: Non-Latin Letters in Memberlist

Сообщение Nekstati »

krasab, если у вас установлен ТОТ мод и он работоспособен, то у вас phpBB 3.0.9. А ЭТОТ мод работает только на 3.0.10.
Booker
phpBB 2.0.7a
Сообщения: 627
Стаж: 15 лет 3 месяца
Благодарил (а): 165 раз
Поблагодарили: 21 раз

Re: Non-Latin Letters in Memberlist

Сообщение Booker »

У меня на сабсильвере тот мод после короткой доработки вполне работоспособен. 3.0.10.
Аватара пользователя
МайскийЖук
phpBB 3.0.7-PL1
Сообщения: 2535
Стаж: 16 лет 11 месяцев
Благодарил (а): 17 раз
Поблагодарили: 366 раз

Non-Latin Letters in Memberlist

Сообщение МайскийЖук »

Booker, ну так может поделитесь доработками-то?
Любовь и боль, покой и бой я как любой несу с собой…
krasab
phpBB 1.4.4
Сообщения: 191
Стаж: 16 лет 6 месяцев
Благодарил (а): 19 раз
Поблагодарили: 5 раз

Re: Non-Latin Letters in Memberlist

Сообщение krasab »

Nekstati в том то и дело, что у меня 3.0.10 и у меня ТОТ мод не работоспособен. Я решил, что ЭТОТ мод - доработка ТОГО. Ладно буду удалять ТОТ и ставить ЭТОТ :)
Изображение
Booker
phpBB 2.0.7a
Сообщения: 627
Стаж: 15 лет 3 месяца
Благодарил (а): 165 раз
Поблагодарили: 21 раз

Re: Non-Latin Letters in Memberlist

Сообщение Booker »

МайскийЖук писал(а):Booker, ну так может поделитесь доработками-то?
Делился уже:
[dev] Russian letters in memberlist MOD
Всё, что пришлось доделать для сабсильвера после обновления до 3.0.10.

Вернуться в «Бета-версии модов для phpBB 3.0.x»