dle.in.ua » Хаки » Правильное отображение слова "Комментарии"

Правильное отображение слова "Комментарии"

Правильное отображение слова "Комментарии"

Сбылось! Многие просили о таком хаке, но только сейчас дошли руки. Не видел в интернете готовых реализаций, поэтому предлагаю Вам свою.
Хак использует переменную $lang для хранения вариантов перевода разного колличества комментариев. В данный момет, хак оптимален для русского языка. В ближайшее время выпущу баг-фикс для англоязычных сайтов.

Тестировалось: DLE 8.5 (cp1251).

И так, нам необходимо отредактировать файлы: website.lng, show.custom.php, show.full.php и show.short.php.
Сложность: минимальная
Время установки: 5 минут
Приступим.
Откройте файл language/Russian/website.php, ищем:
'wysiwyg_language'        =>  "ru",
И со следующей строки вставляем:
//Нормальное отображение слова "Комментарии"

'mvl_com0' => " комментариев",
'mvl_com1' => " комментарий",
'mvl_com2' => " комментария",

//Нормальное отображение слова "Комментарии"

Открываем engine/modules/show.short.php, находим:
$news_find = array ('{comments-num-mvl}' => $comments_num_mvl, '{comments-num}' => $row['comm_num'], '{views}' => $row['news_read'], '<select name="catlist[]" id="category" onchange="onCategoryChange(this.value)"><option value="0"></option><option style="color: black" value="1" >Главная</option><option style="color: black" value="2" >Релизы</option><option style="color: black" value="19" >   Сборки</option><option style="color: black" value="21" >   Оригинальные</option><option style="color: black" value="22" >   Пресс релизы</option><option style="color: black" value="3" >Модули</option><option style="color: black" value="23" >   Платные</option><option style="color: black" value="24" >   Бесплатные</option><option style="color: black" value="4" >Шаблоны DLE</option><option style="color: black" value="5" SELECTED>Хаки</option><option style="color: black" value="7" >IPB</option><option style="color: black" value="9" >Другие Скрипты</option><option style="color: black" value="10" >Вебмастеру</option><option style="color: black" value="11" >Баги </option><option style="color: black" value="14" >Всё для Photoshop`a</option><option style="color: black" value="18" >Платное</option><option style="color: black" value="20" >Реклама</option></select>' => $my_cat, '{link-category}' => $my_cat_link, '{news-id}' => $row['id'],
В строке находим:
'{comments-num}' => $row['comm_num'],
Вставляем до:
'{comments-num-mvl}' => $comments_num_mvl,
Чуть выше находим:
$row['category'] = intval( $row['category'] );
Вставляем после:
                //Нормальное отображение слова "Комментарии"
                $comments_num_mvl = substr($row['comm_num'], -1);
                
                if ($comments_num_mvl == 0 OR $comments_num_mvl > 4) {
                    $comments_num_mvl = $row['comm_num'] . $lang['mvl_com0'];
                }
                elseif ($comments_num_mvl == 1) {
                    $comments_num_mvl = $row['comm_num'] . $lang['mvl_com1'];
                }
                 elseif ($comments_num_mvl > 1) {
                    $comments_num_mvl = $row['comm_num'] . $lang['mvl_com2'];
                }
                //Нормальное отображение слова "Комментарии"


Открываем engine/modules/show.full.php, находим:
$news_find = array ('{comments-num}' => $comments_num, '{views}' => $row['news_read'], '<select name="catlist[]" id="category" onchange="onCategoryChange(this.value)"><option value="0"></option><option style="color: black" value="1" >Главная</option><option style="color: black" value="2" >Релизы</option><option style="color: black" value="19" >   Сборки</option><option style="color: black" value="21" >   Оригинальные</option><option style="color: black" value="22" >   Пресс релизы</option><option style="color: black" value="3" >Модули</option><option style="color: black" value="23" >   Платные</option><option style="color: black" value="24" >   Бесплатные</option><option style="color: black" value="4" >Шаблоны DLE</option><option style="color: black" value="5" SELECTED>Хаки</option><option style="color: black" value="7" >IPB</option><option style="color: black" value="9" >Другие Скрипты</option><option style="color: black" value="10" >Вебмастеру</option><option style="color: black" value="11" >Баги </option><option style="color: black" value="14" >Всё для Photoshop`a</option><option style="color: black" value="18" >Платное</option><option style="color: black" value="20" >Реклама</option></select>' => $my_cat, '{link-category}' => $my_cat_link, '{news-id}' => $row['id'] );
В строке находим:
'{comments-num}' => $comments_num,
Вставляем до:
'{comments-num-mvl}' => $comments_num_mvl,
Чуть вишу ищем:
$comments_num = $row['comm_num'];
Вставляем после:
                //Нормальное отображение слова "Комментарии"
                $comments_num_mvl = substr($comments_num, -1);
                
                if ($comments_num_mvl == 0 OR $comments_num_mvl > 4) {
                    $comments_num_mvl = $comments_num . $lang['mvl_com0'];
                }
                elseif ($comments_num_mvl == 1) {
                    $comments_num_mvl = $comments_num . $lang['mvl_com1'];
                }
                 elseif ($comments_num_mvl > 1) {
                    $comments_num_mvl = $comments_num . $lang['mvl_com2'];
                }
                //Нормальное отображение слова "Комментарии"

Открываем engine/modules/show.custom.php, находим:
$news_find = array ('{comments-num}' => $row['comm_num'], '{views}' => $row['news_read'], '<select name="catlist[]" id="category" onchange="onCategoryChange(this.value)"><option value="0"></option><option style="color: black" value="1" >Главная</option><option style="color: black" value="2" >Релизы</option><option style="color: black" value="19" >   Сборки</option><option style="color: black" value="21" >   Оригинальные</option><option style="color: black" value="22" >   Пресс релизы</option><option style="color: black" value="3" >Модули</option><option style="color: black" value="23" >   Платные</option><option style="color: black" value="24" >   Бесплатные</option><option style="color: black" value="4" >Шаблоны DLE</option><option style="color: black" value="5" SELECTED>Хаки</option><option style="color: black" value="7" >IPB</option><option style="color: black" value="9" >Другие Скрипты</option><option style="color: black" value="10" >Вебмастеру</option><option style="color: black" value="11" >Баги </option><option style="color: black" value="14" >Всё для Photoshop`a</option><option style="color: black" value="18" >Платное</option><option style="color: black" value="20" >Реклама</option></select>' => $my_cat, '{link-category}' => $my_cat_link, '{news-id}' => $row['id'], '{php-self}' => $PHP_SELF,
В строке находим:
'{comments-num}' => $row['comm_num'],
Вставляем до:
'{comments-num-mvl}' => $comments_num_mvl,
Чуть выше ищем:
$row['category'] = intval( $row['category'] );
Вставляем после:
        //Нормальное отображение слова "Комментарии"
        
        $comments_num_mvl = substr($row['comm_num'], -1);

        if ($comments_num_mvl == 0 OR $comments_num_mvl > 4) {
            $comments_num_mvl = $row['comm_num'] . $lang['mvl_com0'];
        }
        elseif ($comments_num_mvl == 1) {
            $comments_num_mvl = $row['comm_num'] . $lang['mvl_com1'];
        }
        elseif ($comments_num_mvl > 1) {
            $comments_num_mvl = $row['comm_num'] . $lang['mvl_com2'];
        }
        //Нормальное отображение слова "Комментарии"


Сохраняем все файлы, приминяем изменения на сервере.

Теперь в шаблон можно вставлять новый тег: {comments-num-mvl}, который выводит цифру и слово кооментарий в нужном числе. Примеры:
0 комментариев
1 комментарий
45 комментариев
22 комментария


Демо: m-v-l.ru

Автор: M-V-L Group

Если парсёр поест код - правильный всегда есть на нашем сайте =)
  • Группа: User
  • Icq: --
  • Комментариев: 303
  • Публикаций: 15
  • http://dletweak.ru/hacks/223-pravilnoe-okonchanie-kolichestva-kommentariev-by.ht
    ml

    --------------------
    • SaD
    • Регистрация: 20.02.2009
    • Репутация: (0|0|0)
    • 15 апреля 2010 10:22
    • 1
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 253
  • Публикаций: 9
  • Как-то по-ламерски все организовано, тут можно одной функцией обойтись.
    • pav
    • Регистрация: 18.01.2009
    • Репутация: (0|0|0)
    • 15 апреля 2010 12:23
    • 2
    ^
  • Группа: User
  • Icq: 368181556
  • Комментариев: 39
  • Публикаций: 0
  • что то я не понял для чего это?
    • Freekiller
    • Регистрация: 17.11.2009
    • Репутация: (1|1|0)
    • 15 апреля 2010 12:49
    • 3
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 25
  • Публикаций: 4
  • Цитата: Freekiller
    что то я не понял для чего это?

    посмотри еще раз на скрин
    • Vadym77
    • Регистрация: 10.10.2009
    • Репутация: (0|0|0)
    • 15 апреля 2010 13:53
    • 4
    ^
  • Группа: User
  • Icq: 368181556
  • Комментариев: 39
  • Публикаций: 0
  • ааа понял
    • Freekiller
    • Регистрация: 17.11.2009
    • Репутация: (1|1|0)
    • 15 апреля 2010 14:31
    • 5
    ^
  • Группа: User
  • Icq: --
  • Комментариев: 61
  • Публикаций: 12
  • Цитата: SaD
    dletweak.ru

    +1
    Да, решение старое )))
    • Macho
    • Регистрация: 1.04.2010
    • Репутация: (0|0|0)
    • 15 апреля 2010 16:08
    • 6
    ^
  • Группа: Модератор +
  • Icq: --
  • Комментариев: 191
  • Публикаций: 14
  • BlackSmoke, ну когда посмотрел как это сделать - конечно можно lol

    А по теме: делалось ночью с недосыпа. Ну не пришло в голову делать через функции... Не хотите - не юзайте, коль все тут меко-программисты...

    --------------------
    ^
  • Группа: User
  • Icq: 8466093
  • Комментариев: 67
  • Публикаций: 0
  • многакода am

    --------------------
    • FeAlSe
    • Регистрация: 5.03.2009
    • Репутация: (0|0|0)
    • 15 апреля 2010 22:19
    • 8
    ^
    Информация
    Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.