LiveInternetMail.ru
Форум русской поддержки Joomla!® CMS
20.06.2013, 03:29:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 2.5 FAQ Joomla 1.5 FAQ Joomla 1.0 FAQ Правила форума Новости Joomla Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор Тема: Разные варианты фразы "Добавить комментарий" для разных целей на одном сайте  (Прочитано 11801 раз)
0 Пользователей и 1 Гость смотрят эту тему.
malavka
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 42



« : 07.02.2011, 19:26:28 »

Привет, Смарт! Привет ребята!

Я предлагаю сделать в JComments возможность кастомизировать фразы (перевод) для разных целей (категорий, айди??).

Например: на сайте есть блог с комментами и есть страница отзывов (гостевуха).

1) В блоге будет "добавить комментарий", "автор комментария", т.е. все по дефолту
2) На странице отзывов будет "добавить отзыв", "автор отзыва", "подписаться на отзыв" etc.

Было бы здорово.

Спасибо.
Записан
SDKiller
Dev Team
******

Репутация: +288/-4
Offline Offline

Сообщений: 2669


...но войти в неё ты должен сам


« Ответ #1 : 07.02.2011, 20:19:28 »

На уровне шаблона можно сделать
Записан
malavka
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 42



« Ответ #2 : 07.02.2011, 21:52:55 »

а как это сделать? Подскажите,пожалуйста. Мне этого не хватает очень
Записан
SDKiller
Dev Team
******

Репутация: +288/-4
Offline Offline

Сообщений: 2669


...но войти в неё ты должен сам


« Ответ #3 : 07.02.2011, 22:14:56 »

tpl_form.php в строке 227 можно модифицировать вот эту часть

Код:
<?php echo JText::_('FORM_HEADER'); ?>

вставив туда условие. В зависимости от того, к чему у вас прикручены отзывы - либо по id материала, либо по Itemid, если к другому компоненту - через $object_group.
В языковом файле FORM_HEADER=Добавить комментарий

Делаем, например так (предположим, что страница отзывов - это материал с id=13):

Код:
<?php if ($object_id==13) {echo JText::_('FORM_HEADER2');} else {echo JText::_('FORM_HEADER');} ?>

В языковой файл добавите FORM_HEADER2=Добавить отзыв

С остальными надписями - аналогичным образом.
Можно всё это упорядочить и проверять условие где-то в одном месте заранее, а в JText подставить свои переменные, значения которых будут определяться в зависимости от выполнения условия
« Последнее редактирование: 07.02.2011, 22:21:27 от SDKiller » Записан
effrit
Группа развития
*****

Репутация: +577/-5
Offline Offline

Пол: Мужской
Сообщений: 5189


effrit.com


« Ответ #4 : 07.02.2011, 22:19:09 »

да, я тоже как-то мимоходом подумал про это. если хочешь гостевуху и камменты-надо править код.
при этом было бы логичнее в шаблонах разнести такой функционал. не критично, но всё же.
Записан
SDKiller
Dev Team
******

Репутация: +288/-4
Offline Offline

Сообщений: 2669


...но войти в неё ты должен сам


« Ответ #5 : 07.02.2011, 22:23:06 »

Так это и был дефолтный шаблон.
Можно же сделать на его базе свой
Записан
effrit
Группа развития
*****

Репутация: +577/-5
Offline Offline

Пол: Мужской
Сообщений: 5189


effrit.com


« Ответ #6 : 07.02.2011, 22:26:39 »

ну и?
я имел в виду, что из админки управлять такими вещами.
чтобы, к примеру, выбранной категории цеплять этот новый шаблон.
понятно, что шаб можно клонировать, но ты его через админку ко всему сайту применишь и всё.
в любом случае, можно в теме запостить ещё пару вариантов "смены поведения", тогда будет некое решение. если не системное, то форумное )
Записан
malavka
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 42



« Ответ #7 : 07.02.2011, 22:34:04 »

спасибо большое,SDKiller! Буду пробовать. Будет хорошо,если это через админку можно будет сделать,конечно. Например,создать несколько языковый вариаций на основе дефолтного языка и цеплять их.я повторяю ваши идеи,но они,видимо,витают в воздухе. Так будет проще,это точно.
Записан
SDKiller
Dev Team
******

Репутация: +288/-4
Offline Offline

Сообщений: 2669


...но войти в неё ты должен сам


« Ответ #8 : 07.02.2011, 22:37:33 »

Через админку в идеале много чего хотелось бы делать.

Но для бесплатного компонента фукционал и гибкость более чем достаточны для 99% потребностей, а иногда и 199%.

В принципе можно попробовать плагином чего-то добиться, к событиям там можно привязаться.
Записан
malavka
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 42



« Ответ #9 : 07.02.2011, 22:47:55 »

компонет прекрасный,бесспорно,я бы его покупал,если бы он был платным. Но, идеи для развития функционала не могут закончится у комьюнити,и это хорошо,имхо. Мне кажется, что связка гостевуха-комментарии работает на многих сайтах. И это-один из вариантов развития компонента. Не обязательный,но-перспективный имхо
Записан
malavka
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 42



« Ответ #10 : 13.02.2011, 00:18:17 »

tpl_form.php в строке 227 можно модифицировать вот эту часть

Код:
<?php echo JText::_('FORM_HEADER'); ?>

вставив туда условие. В зависимости от того, к чему у вас прикручены отзывы - либо по id материала, либо по Itemid, если к другому компоненту - через $object_group.
В языковом файле FORM_HEADER=Добавить комментарий

Делаем, например так (предположим, что страница отзывов - это материал с id=13):

Код:
<?php if ($object_id==13) {echo JText::_('FORM_HEADER2');} else {echo JText::_('FORM_HEADER');} ?>

В языковой файл добавите FORM_HEADER2=Добавить отзыв

С остальными надписями - аналогичным образом.
Можно всё это упорядочить и проверять условие где-то в одном месте заранее, а в JText подставить свои переменные, значения которых будут определяться в зависимости от выполнения условия



У меня не сработала эта конструкция. Я создал на локалке тестовый материал с id=14
Строка 227 у меня такая получилась-
Код:
<a id="addcomments" class="showform" href="#addcomments" onclick="jcomments.showForm(<?php echo $object_id; ?>,'<?php echo $object_group; ?>', 'comments-form-link'); return false;"><?php if ($object_id==14) {echo JText::_('FORM_HEADER2');} else {echo JText::_('FORM_HEADER');} ?></a>

не работает, к сожалению. У Вас работает?
Записан
SDKiller
Dev Team
******

Репутация: +288/-4
Offline Offline

Сообщений: 2669


...но войти в неё ты должен сам


« Ответ #11 : 13.02.2011, 01:23:32 »

Почему не должно работать?

Я специально не задавался конечно этой целью, пример навскидку был дан.

Но сейчас проверил - работает:





Просто данная строка - это ссылка на форму, которая отображается, если в настройках установлено

"Форма добавления комментария - По умолчанию -Скрыть"

Для других вариантов отображения надо в шаблоне смотреть соответствующие строки

Например строка 39 делаем:

Код:
<h4><?php if ($object_id==7) {echo JText::_('FORM_HEADER2');} else {echo JText::_('FORM_HEADER');} ?></h4>
« Последнее редактирование: 13.02.2011, 01:27:57 от SDKiller » Записан
SDKiller
Dev Team
******

Репутация: +288/-4
Offline Offline

Сообщений: 2669


...но войти в неё ты должен сам


« Ответ #12 : 13.02.2011, 01:41:14 »

В tpl_links.php надо перед 75 строкой добавить

Код:
$object_id = $this->getVar('comment-object_id');

И далее предусмотреть условия для всех языковых переменных в этом фрагменте:

Код:
if ($count == 0) {

return '<a href="' . $link . '#addcomments" class="' . $css . '">' . JText::_('Add comment'). '</a>';
} else {
$text = JText::sprintf('Read comments', $count);

if ($this->getVar('use-plural-forms', 0)) {
$comments_pf = JText::_('comments_pf');

if ($comments_pf != '') {
global $mainframe;
$pf = JoomlaTuneLanguageTools::getPlural($mainframe->getCfg('lang'), $count, $comments_pf);
if ($pf != '') {
$text = JText::sprintf('COMMENTS2', $count, $pf);
}
}
}

switch($style) {
case -1:
return '<span class="' . $css . '">' . $text . '</span>';
break;
default:

return '<a href="' . $link . '#comments" class="' . $css . '">' . $text . '</a>';
break;
}
}

Записан
SDKiller
Dev Team
******

Репутация: +288/-4
Offline Offline

Сообщений: 2669


...но войти в неё ты должен сам


« Ответ #13 : 13.02.2011, 01:52:17 »

Вот пример с tpl_links

Код:
$object_id = $this->getVar('comment-object_id');
if ($count == 0) {
if ($object_id==7) {$what = 'Add comment2';} else {$what = 'Add comment';}
return '<a href="' . $link . '#addcomments" class="' . $css . '">' . JText::_($what). '</a>';
} else {
                   ...



Записан
malavka
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 42



« Ответ #14 : 13.02.2011, 02:42:29 »

Заработало! Ураа! Огромное спасибо, SDKiller!
Записан
malavka
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 42



« Ответ #15 : 13.02.2011, 11:11:09 »

SDKiller, прошу прошения за беспокойство, я никак не могу 3 вещи переименовать в отзывы:

1) Фразу - Комментарии + мал.значок RSS + мал.значок обновить перед списком комментариев вверху
2) Обновить список комментариев и RSS лента комментариев этой страницы после списка комментариев
3) Всплывающую надпись - Спасибо за Ваш комментарий, он будет опубликован после проверки модератором!

Помогите пожалуйста.

Остальное у меня получилось по Вашим примерам.
Записан
SDKiller
Dev Team
******

Репутация: +288/-4
Offline Offline

Сообщений: 2669


...но войти в неё ты должен сам


« Ответ #16 : 13.02.2011, 11:53:16 »

3) Всплывающую надпись - Спасибо за Ваш комментарий, он будет опубликован после проверки модератором!

Это JComments.ajax.php строки 556-558
Код:
JCommentsAJAX::showInfoMessage(JText::_('Thank you for your submission!'));
        } else {
JCommentsAJAX::showInfoMessage(JText::_('Thank you, your comment will be published once reviewed'));

Там в принципе должно сработать через $comment->object_id

Но я бы JComments.ajax.php лучше не трогал, а просто в языковом файле заменил бы эту фразу на что-то универсальное (например, Спасибо, Ваше сообщение будет опубликовано...)
Записан
SDKiller
Dev Team
******

Репутация: +288/-4
Offline Offline

Сообщений: 2669


...но войти в неё ты должен сам


« Ответ #17 : 13.02.2011, 11:57:44 »

1) Фразу - Комментарии + мал.значок RSS + мал.значок обновить перед списком комментариев вверху
2) Обновить список комментариев и RSS лента комментариев этой страницы после списка комментариев

Это tpl_list.php строки 80, 88 и 107 - при плоском списке отображения
или tpl_tree.php строки 107, 116 и 135 - при древовидном
Записан
malavka
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 42



« Ответ #18 : 13.02.2011, 16:58:57 »

Фуф! Не все сделал, но почти все.  Часть универсально переименовал, как Вы отлично посоветовали:
1) Обновить список
2) RSS лента сообщений этой страницы
3) Спасибо за Ваше сообщение, оно будет опубликовано после проверки модератором!
С ними я не смог справится. Сложно для меня.


Исправленные php файлы закинул сюда- site.com/templates/shablon/html/com_jcomments/default  -

1)tpl_form.php
2) tpl_links.php
3) tpl_list.php

Спасибо Вам, SDKiller! Все - равно буду ждать Вашего плагина такого, т.к. с гуи будет очень удобно людям =)  drink


Записан
smart
Администратор
*******

Репутация: +1220/-14
Offline Offline

Пол: Мужской
Сообщений: 6648


снова дома...


« Ответ #19 : 13.02.2011, 21:54:27 »

Скажем так, в зачаточном состоянии механизм подмены языковых файлов уже есть, но пока я в нем вижу не очень много смысла. Через версию будет реализована возможность разделения настроек JComments по компонентам (в галерее одни настройки комментирования, в магазине другие, в статьях - третьи), вот там я добавлю возможность выбора конкретного языкового пакета.
Записан
malavka
Осваиваюсь на форуме
***

Репутация: +1/-0
Offline Offline

Пол: Мужской
Сообщений: 42



« Ответ #20 : 05.04.2012, 16:43:39 »

Скажем так, в зачаточном состоянии механизм подмены языковых файлов уже есть, но пока я в нем вижу не очень много смысла. Через версию будет реализована возможность разделения настроек JComments по компонентам (в галерее одни настройки комментирования, в магазине другие, в статьях - третьи), вот там я добавлю возможность выбора конкретного языкового пакета.

Привет smart, SDKiller, друзья!

Как  в JComments 2.3.0     
разные варианты фразы "Добавить комментарий" сделать?

Мне надо только  в одной категории сделать "Оставить Отзыв".

А в остальных - "Оставить Комментарий".

Вариант для пред. версии, который SDKiller мне любезно давал ранее (выше) подойдет?

Заранее спасибо за ответы
 
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Рейтинг@Mail.ru Rambler Top100 Powered by SMF 1.1.18 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet