Уважаемые пользователи!
C 7 ноября 2020 года phpBB Group прекратила выпуск обновлений и завершила дальнейшее развитие phpBB версии 3.2.
С 1 августа 2024 года phpBB Group прекращает поддержку phpBB 3.2 на официальном сайте.
Сайт официальной русской поддержки phpBB Guru продолжит поддержку phpBB 3.2 до 31 декабря 2024 года.
С учетом этого, настоятельно рекомендуется обновить конференции до версии 3.3.

Склонение

Идеи для расширения функциональности phpBB 2.0.x
Флудерок
phpBB 1.4.0
Сообщения: 37
Стаж: 18 лет 1 месяц
Забанен: Бессрочно

Склонение

Сообщение Флудерок »

Предлагаю к модам, выводящим какое-то число (например, пользователей, сообщений), приделывать код, который будет склонять зависимое слово в зависимости от числа (Например: 2 сообщения (вместо: 2 сообщений)).
Вот он:

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

function declension($int, $expressions)
{
        settype($int, "integer");
        $count = $int % 100;
        if ($count >= 5 && $count <= 20) {
                $result = $int." ".$expressions[2];
        } else {
                $count = $count % 10;
                if ($count == 1) {
                        $result = $int." ".$expressions[0];
                } elseif ($count >= 2 && $count <= 4) {
                        $result = $int." ".$expressions[1];
                } else {
                        $result = $int." ".$expressions[2];
                }
        }
        return $result;
} 
Вот, кстати, такая же функция (сразу выводящая ответ на экран, правда) на Глаголе:

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

ЗАДАЧА СклонениеЧ(Число:ЦЕЛ; сл1,сл2,сл3:РЯД ИЗ ЗНАК); 
УКАЗ 
  Вывод.ЧЦел("%d ",Число,0,0,0); 
  ЕСЛИ (Число ОСТАТОК 100 >= 5) И (Число ОСТАТОК 100 <= 20) ТО Вывод.Цепь(сл3) 
  ИНАЧЕ 
    ЕСЛИ Число ОСТАТОК 10 = 1 ТО Вывод.Цепь(сл1) 
    АЕСЛИ (Число ОСТАТОК 10 >= 2) И (Число ОСТАТОК 10 <= 4) ТО Вывод.Цепь(сл2) 
    ИНАЧЕ Вывод.Цепь(сл3) 
    КОН; 
  КОН; 
КОН СклонениеЧ;
Язык программирования, родственный языкам Паскаль и Оберон, использующий русские служебные слова - Глагол. Официальный сайт: http://glagol.nad.ru

Ставь Русский phpBB, спасай страну от "копирайтов"!
Флудерок
phpBB 1.4.0
Сообщения: 37
Стаж: 18 лет 1 месяц
Забанен: Бессрочно

Сообщение Флудерок »

Что, уже ответить нечего? :lol:
Язык программирования, родственный языкам Паскаль и Оберон, использующий русские служебные слова - Глагол. Официальный сайт: http://glagol.nad.ru

Ставь Русский phpBB, спасай страну от "копирайтов"!
Kastaneda
Former team member
Сообщения: 702
Стаж: 19 лет 6 месяцев

Сообщение Kastaneda »

Представляю, как было бы смешно, если бы программисты солидного офиса общались примерно так: «Вась, сделай ка ЗАДАЧА СклонениеЧ(Число:ЦЕЛ; сл1,сл2,сл3:РЯД ИЗ ЗНАК); УКАЗ Вывод.ЧЦел("%d ",Число,0,0,0);». А второй ему отвечает: «Так точно, Билли! Но сделаю ИНАЧЕ Вывод.Цепь(сл3)».

А по поводу склонений - идея хорошая, но некоторые внедряют её в свои моды. Например, в моде «Advanced Posts Merging» от Xpert'а это сделано, в моде Poster After от quazi тоже хорошо работает библиотека DeltaRussian.php.

Вернуться в «Запросы модов для phpBB 2.0.x»