Главная » 2011 » Май » 31 » Правильное отображение слова \"Комментарии\"
05:30
Правильное отображение слова \"Комментарии\"

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

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

И так, нам необходимо отредактировать файлы: website.lng, show.custom.php, show.full.php и show.short.php, а так же файлы шаблона shortstory.tpl, fullstory.tpl и все шаблоны custom, которые Вы используете.
Время установки: 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'], '{category}' => $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'], '{category}' => $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'], '{category}' => $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
Категория: Хаки | Просмотров: 390 | Добавил: ALL-DLE | Рейтинг: 0.0/0
Всего комментариев: 0
Имя *:
Email *:
Код *: