Изменяем стандартный вывод комментарии на свой в 2-ке

+30
1.93K
У меня спрашивали отвечаю.
В некоторых случаях для стандартного вывода слова "комментарии" или в множественном числе "комментариев" нужно изменить на к примеру "отзывы".
Как же это реализовать в 2-ке?
Давайте для примера есть у нас тип контента каталог товаров. Ведь не удобно будет если включены комментарии то будет выводится слово комментарии или комментариев симпатичней будет смотреться слово "Отзывы" — согласны?
Сам вывод слова происходит в файле — templates/controllers/comments/list.tpl.php строка 11
  1.  
  2. <h2><?php echo $comments ? html_spellcount(sizeof($comments), LANG_COMMENT1, LANG_COMMENT2, LANG_COMMENT10) : LANG_COMMENTS; ?></h2>
  3.  
За тип контента отвечает переменная $target_subject
Берем системное имя контента пусть будет "catalog"
Значит берем их за основу условия.

И пишем само условие

  1.  
  2. <?if($target_subject == "catalog"){?>
  3. <h2><?php echo $comments ? html_spellcount(sizeof($comments), LANG_OTZIV1, LANG_OTZIV2, LANG_OTZIV10) : LANG_OTZIVS; ?></h2>
  4. <?}else{ ?>
  5. <h2><?php echo $comments ? html_spellcount(sizeof($comments), LANG_COMMENT1, LANG_COMMENT2, LANG_COMMENT10) : LANG_COMMENTS; ?></h2>
  6. <?}?>
  7.  
В языковый файл system/languages/ru/controllers/comments.php добавляем следующий код

  1.  
  2. define('LANG_OTZIVS', 'Отзывы');
  3. define('LANG_OTZIV1', 'Отзыв');
  4. define('LANG_OTZIV2', 'Отзыва');
  5. define('LANG_OTZIV10', 'Отзывов');
  6.  
Можно написать свое значение.

Изменяем и сам текст "Написать комментарий" в этом же файле list.tpl.php у меня 55 строка

Находим код
  1.  
  2. <div id="comments_add_link">
  3. <a href="#reply" class="ajaxlink" onclick="return icms.comments.add()"><?php echo LANG_COMMENT_ADD; ?></a>
  4. </div>
  5.  
Меняем на

  1. <div id="comments_add_link">
  2. <a href="#reply" class="ajaxlink" onclick="return icms.comments.add()"><?php
  3. if($target_subject == "catalog")
  4. echo "Написать отзыв";
  5. else
  6. echo LANG_COMMENT_ADD; ?></a>
  7. </div>
Текст написать отзыв можно также отправить в языковый файл.
Все теперь при переходе на страницу каталога вместо слова комментарии будет слово отзывы
-4
Val Val 9 лет назад #
VonKruger:
<h2><?php echo $comments ? html_spellcount(sizeof($comments), LANG_OTZIV1, LANG_OTZIV2, LANG_OTZIV10) : LANG_OTZIVS; ?></h2>
...
define('LANG_OTZIVS', 'Отзывы');
define('LANG_OTZIV1', 'Отзыв');
define('LANG_OTZIV2', 'Отзыва');
define('LANG_OTZIV10', 'Отзывов');
Вместо 3-х констант правильнее использовать одну - define('LANG_OTZIV', 'Отзыв|Отзыва|Отзывов');

...а по сабжу: спросил человек в форуме, ответили ему и достаточно! Зачем спам разводить в блогах?
+8
Romanovcmc Romanovcmc 9 лет назад #
на пользу человек старается, статью пишет.
+7
Alexprofi Alexprofi 9 лет назад #
Val, при всем уважении к Вам, позвольте с Вами не согласиться.
То, что предлагает VonKruger, достаточно полезно, а искать это на форуме, порой очень сложно.
Так что, считаю очень даже полезная тема для блога. Здесь, если кому-то понадобится, гораздо проще найти будет.
+5
Val Val 9 лет назад #
Тогда можно все темы с форума где решился определенный вопрос переносить сюда в блог))) А так как раздел "дополнения", с моей точки зрения, работает неудовлетворительно найти что либо полезное в блогах будет затруднительно. Хотя конечно, вы правы, блоги на то и блоги что пользователь сам решает что в них писать и как.
+2
Norm Gold Norm Gold 9 лет назад #
А что на счет "Комментарий удален", "Удалить комментарий?" ?

Еще от автора

Вывод категорий в 2 и более колонок в ICMS2
Сегодня мне нужно было сделать вывод категорий в 2 колонки. Так сказать не очень юзабилетно смотрится вывод категорий в строку если их много.
Изменяем вывод статистики в меню пользователя
Посмотрев в меню пользователя во 2-ой ветке меня не устроило вывод статистики. То есть подсчет количества материалов в меню профиля.
Компонент KCAPTCHA замена recaptcha
Всем доброго времени суток уважаемые. Сегодня хочу поделиться с вами своей наработкой.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.