0 Пользователей и 1 Гость просматривают эту тему.
  • 7 Ответов
  • 3626 Просмотров
*

Eol

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Здравствуйте. Подскажите, пожалуйста, как должен выглядеть код, выводящий название группы пользователей (Author, Administrator, Editor и т. д.) к которой принадлежит автор комментария?

К примеру, вывод группы к которой принадлежит пользовать, просматривающий сайт, выглядит так:
Цитировать
<?php
$user =& JFactory::getUser();
?>
<?php
echo $user->usertype
?>

А как вывести группу, к которой принадлежит автор комментария? То есть, что вот "этот" комментатор - Author, а "этот" - Editor и т. д.
Как, например, сделано в DWho's Online:к названию класса (стиля) добавляется название группы (mod_dwhosonline-super-administrator), к которой принадлежит пользователь. За счёт этого, можно задавать разные стили отображения ников, разным группам пользователей.

Пожалуйста, подскажите, как реализовать подобное в JComments.
« Последнее редактирование: 27.11.2009, 01:21:05 от smart »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Ну технически это добавить можно, но в настоящий момент данная модификация потребует лишний запрос к БД для каждого из пользователей, и это существенно увеличит нагрузку на сервер. Подумайте, нужно ли оно вам? В будущем, я подумаю, может быть я добавлю выборку этих данных вместе со списком комментариев.
« Последнее редактирование: 27.11.2009, 01:21:16 от smart »
*

Eol

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Подумайте, нужно ли оно вам? В будущем, я подумаю, может быть я добавлю выборку этих данных вместе со списком комментариев.

Большое спасибо за ответ.

На счёт запросов к БД, я предпологал, что это может создать неоправданную нагрузку на сервер. Думаю над альтернативным способом, как-то выделить, например, администратора из всех пользователей. Самое простое, что пришло в голову - добавить к логину запрещённый символ, который другие пользователи себе поставить не могут.

Если разберусь, попробую всё-таки добавить выборку usertype и протестировать. Если сделаю, то отпишусь.

Ещё раз, спасибо за ответ. =)
« Последнее редактирование: 23.11.2009, 16:53:33 от Eol »
*

Eol

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Пока что, сделал проверку по имени пользователя, и если имя автора коммента равно имени админа, то стиль "такой", а если не равно, то стандартный. Туповато, конечно, но, хотябы, админа выделить можно. =)

Как сделать выборку названия группы, к которой принадлежит автор комментария, пока что, не смог разобраться. Есть кое-какие идеи, сейчас буду пробовать.
Если кто-нибудь знает, как это сделать, то не откажусь от помощи. =)


Update. Сделал. Заменил в файле tpl_comment.php строчку:
Цитировать
<span class="comment-author_<?php echo $myrow["usertype"];?>"><?php echo $comment->author?></span><br>

на

Цитировать
<?php
$db = & JCommentsFactory::getDBO();
$result = mysql_query("SELECT * FROM jos_users WHERE username='$comment->author'");
$myrow = mysql_fetch_array($result);
$myrow["usertype"] = JString::str_ireplace(' ', '-', JString::strtolower($myrow["usertype"]));
?>
<span class="comment-author_<?php echo $myrow["usertype"];?>"><?php echo $comment->author?></span><br>

Вот бы ещё сделать, чтобы префикс для таблицы (по умолчанию "jos_") автоматически распозновался или вроде того. Кто-нибудь знает, как это реализовать, подскажите, пожалуйста. Сам я технически безграмотный, сделал на сколько позволили полученные за пару дней знания.
« Последнее редактирование: 26.11.2009, 02:08:09 от Eol »
*

SmokerMan

  • Гуру
  • 5293
  • 720 / 26
Вот бы ещё сделать, чтобы префикс для таблицы (по умолчанию "jos_") автоматически распозновался или вроде того. Кто-нибудь знает, как это реализовать, подскажите, пожалуйста. Сам я технически безграмотный, сделал на сколько позволили полученные за пару дней знания.
Ну стандартно ставиться #__таблица, а там Joomla уже сама определяется с префиксом.
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Открой файл /components/com_jcomments/jcomments.php и найди и замени в нем код (встречается дважды):

Код: php
			$query = "SELECT c.id, c.object_id, c.object_group, c.userid, c.name, c.username, c.title, c.comment"
."\n, c.email, c.homepage, c.date as datetime, c.ip, c.published, c.checked_out, c.checked_out_time"
."\n, c.isgood, c.ispoor"
."\n, v.value as voted"
."\nFROM #__jcomments AS c"
."\nLEFT JOIN #__jcomments_votes AS v ON c.id = v.commentid " . ( $my->id ? " AND  v.userid = ".$my->id : " AND  v.ip = '".$acl->getUserIP(). "'" )
на
Код: php
			$query = "SELECT c.id, c.object_id, c.object_group, c.userid, c.name, c.username, c.title, c.comment"
."\n, c.email, c.homepage, c.date as datetime, c.ip, c.published, c.checked_out, c.checked_out_time"
."\n, c.isgood, c.ispoor"
."\n, v.value as voted"
."\n, u.usertype"
."\nFROM #__jcomments AS c"
."\nLEFT JOIN #__jcomments_votes AS v ON c.id = v.commentid " . ( $my->id ? " AND  v.userid = ".$my->id : " AND  v.ip = '".$acl->getUserIP(). "'" )
."\nLEFT JOIN #__users AS u ON u.id = c.userid"

И все... а дальше в шаблоне выводишь вот так:
<span class="comment-author_<?php echo str_replace(' ', '-', $comment->usertype);?>"><?php echo $comment->author; ?></span><br>

И в принципе все... Ни одного лишнего запроса и все что требуется есть.
« Последнее редактирование: 28.11.2009, 02:56:04 от smart »
*

Eol

  • Осваиваюсь на форуме
  • 11
  • 0 / 0
Ну стандартно ставиться #__таблица, а там Joomla уже сама определяется с префиксом.

Спасибо буду знать. =)

Открой файл...

И все... а дальше в шаблоне выводишь вот так:
<span class="comment-author_<?php echo str_replace(' ', '-', $comment->usertype;);?>"><?php echo $comment->author; ?></span><br>

И в принципе все... Ни одного лишнего запроса и все что требуется есть.

Спасибо большое, что так подробно рассказали. =)

Только вот тут:

Код
<?php echo str_replace(' ', '-', $comment->usertype;);?>

- наверное, ";" перед ")" - лишняя. По крайней мере, из-за неё "syntax error" была. =)
« Последнее редактирование: 02.12.2009, 02:55:25 от Eol »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
- двоеточие перед ")", наверное, лишнее. По крайней мере, из-за него "syntax error" была. =)
угу, поторопился, не заметил
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Как вместо "Недостаточно прав для написания комментария" вывести модуль?

Автор VAlex1983

Ответов: 5
Просмотров: 2649
Последний ответ 14.09.2022, 11:43:14
от Vlad1
Уведомления на почту до публикации комментария?

Автор romagromov

Ответов: 8
Просмотров: 951
Последний ответ 02.08.2019, 18:19:47
от ProtectYourSite
Как изменить ширину поля для ввода комментария и логина?

Автор serzh-serega

Ответов: 10
Просмотров: 1039
Последний ответ 20.09.2018, 11:45:58
от serzh-serega
Вывод всех комментариев на отдельной странице

Автор Rom008

Ответов: 3
Просмотров: 1383
Последний ответ 11.05.2018, 04:41:19
от Cedars
Вывод JComments в модуль html-код

Автор myrka

Ответов: 1
Просмотров: 1422
Последний ответ 01.10.2017, 15:21:52
от korkka44