Не много изменить вид клубов

Продолжение старой темы. Вывод списка модеров клуба.

 
Посетитель
small user social cms
Медаль
Сообщений: 165
Мира и процветания всем Вам.
Решил продолжить тему от Nikitka опубликованную здесь

Проблему с выводом аватаров пользователей мы решили. Но остался ещё один вопрос.
Вывод модераторов клуба в блок.

А именно. Под аватаром клуба есть блоки выводящие администратора клуба и участников клуба. Но нету блока с модераторами клуба. на мой взгляд это упущение. Я не силён в PHP, поэтому прошу Вас помочь.
Модератор
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1675
Ну что ж! Предвидя, что и до админов тоже доберемся в конце концов… )))
Приступим
1) файл /core/lib_clubs.php добавляем в конец файла 3 новых функции (у кого была уже функция для пользователей с аватарами то после неё, чтобы если вносились стилевые изменения перенести их в код новой функции)
Код PHP:
  1.  
  2.  
  3. function clubAdminWithAvatar($club_id){
  4. $inCore = cmsCore::getInstance();
  5. $inDB = cmsDatabase::getInstance();
  6. $inPage = cmsPage::getInstance();
  7.  
  8. $sql = "SELECT u.id as id, u.nickname as nickname, u.login as login, p.imageurl as imageurl
  9. FROM cms_clubs c
  10. LEFT JOIN cms_users u ON u.id = c.admin_id
  11. LEFT JOIN cms_user_profiles p ON p.user_id = u.id
  12. WHERE c.id = '$club_id'";
  13.  
  14. $rs = $inDB->query($sql);
  15.  
  16. $usr = $inDB->fetch_assoc($rs);
  17. if (!function_exists('usrImageNOdb')){
  18. include_once($_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php');
  19. }
  20. $usrimage = usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']);
  21.  
  22. $html = '<div id="all_user_list" style="width: 190px;"><div class="avatar" style="float:left;width:78px;height:100px;text-align:center;padding-left:2px;padding-bottom:5px;margin:4px auto;">'. $usrimage.'<a href="/users/'.$usr['login'].'" class="none" style="width:76px;float:left;line-height:9px;margin-top:4px;margin-bottom:6px;">'.$usr['nickname'].'</a></div></div></div><div style="clear:both"></div>';
  23.  
  24. return $html;
  25. }
  26.  
  27. function clubMembersListWithAvatar($club_id){
  28. $inCore = cmsCore::getInstance();
  29. $inDB = cmsDatabase::getInstance();
  30. $inPage = cmsPage::getInstance();
  31.  
  32. $sql = "SELECT u.id as id, u.nickname as nickname, u.login as login, p.imageurl as imageurl
  33. FROM cms_user_clubs c
  34. LEFT JOIN cms_users u ON u.id = c.user_id
  35. LEFT JOIN cms_user_profiles p ON p.user_id = u.id
  36. WHERE c.club_id = '$club_id'";
  37.  
  38. $rs = $inDB->query($sql);
  39. $total = $inDB->num_rows($rs);
  40.  
  41.  
  42. $now=0;
  43. if ($total > 10) {
  44. $html = '<div id="all_user_list" style="width: 190px; height: 570px; overflow-y:auto; overflow-x: hidden;">';
  45. }
  46. if ($total <= 10) {
  47. $html = '<div id="all_user_list" style="width: 190px;">';
  48. }
  49. while($usr = $inDB->fetch_assoc($rs)){
  50. if (!function_exists('usrImageNOdb')){
  51. include_once($_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php');
  52. }
  53. $usrimage = usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']);
  54.  
  55. $html .= '<div class="avatar" style="float:left;width:78px;height:100px;text-align:center;padding-left:2px;padding-bottom:5px;margin:4px auto;">'. $usrimage.'<a href="/users/'.$usr['login'].'" class="none" style="width:76px;float:left;line-height:9px;margin-top:4px;margin-bottom:6px;">'.$usr['nickname'].'</a></div>';
  56.  
  57. $now ++;
  58. }
  59. $html .= '</div></div><div style="clear:both"></div>';
  60.  
  61. return $html;
  62. }
  63.  
  64. function clubModersListWithAvatar($club_id){
  65. $inCore = cmsCore::getInstance();
  66. $inDB = cmsDatabase::getInstance();
  67. $inPage = cmsPage::getInstance();
  68.  
  69. $sql = "SELECT u.id as id, u.nickname as nickname, u.login as login, p.imageurl as imageurl
  70. FROM cms_user_clubs c
  71. LEFT JOIN cms_users u ON u.id = c.user_id
  72. LEFT JOIN cms_user_profiles p ON p.user_id = u.id
  73. WHERE c.club_id = '$club_id' AND c.role = 'moderator'" ;
  74.  
  75. $rs = $inDB->query($sql);
  76. $total = $inDB->num_rows($rs);
  77.  
  78.  
  79. $now=0;
  80. $html = '<div id="all_user_list" style="width: 190px;">';
  81.  
  82. while($usr = $inDB->fetch_assoc($rs)){
  83. if (!function_exists('usrImageNOdb')){
  84. include_once($_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php');
  85. }
  86. $usrimage = usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']);
  87.  
  88. $html .= '<div class="avatar" style="float:left;width:78px;height:100px;text-align:center;padding-left:2px;padding-bottom:5px;margin:4px auto;">'. $usrimage.'<a href="/users/'.$usr['login'].'" class="none" style="width:76px;float:left;line-height:9px;margin-top:4px;margin-bottom:6px;">'.$usr['nickname'].'</a></div>';
  89.  
  90. $now ++;
  91. }
  92. $html .= '</div></div><div style="clear:both"></div>';
  93.  
  94. return $html;
  95. }
  96.  
2) в файле /components/clubs/frontend.php приблизительно строка 159 начинается с
Код PHP:
  1.  
  2. //PARAMS
  3. $club['admin'] = clubAdminLink($id);
  4. $club['members'] = clubTotalMembers($id);
  5. $club['members_list'] = clubMembersList($id);
  6.  
заменяем существующие строки и вставляем одну новую:
Код PHP:
  1.  
  2. //PARAMS
  3. $club['admin'] = clubAdminWithAvatar($id);
  4. $club['members'] = clubTotalMembers($id);
  5. $club['members_list'] = clubMembersListWithAvatar($id);
  6. $club['moders_list'] = clubModersListWithAvatar($id);
  7.  
3) в файле /templates/ваш_шаблон/components/com_clubs_view_club.tpl
находим:
Код PHP:
  1.  
  2. <div class="members_list">
  3. <div class="title">{$LANG.CLUB_ADMIN}:</div>
  4. <div class="list">{$club.admin}</div>
  5. </div>
  6.  
вставляем после неё
Код PHP:
  1.  
  2. <div class="members_list">
  3. <div class="title">{$LANG.MODERATORS}:</div>
  4. <div class="list">{$club.moders_list}</div>
  5. </div>
  6.  
вроде всё… )
«Главное “настрой”! И всё настроиться…» © ) Их знают все! А вы?
Реклама
cms
Посетитель
small user social cms
МедальКубок зрительских симпатий
Сообщений: 238
Все работает четко и без запинок!Майку +100
Уважайте мнение каждого...
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1074
Здорово! Спасибо, пригодилось ;)

А иконку клуба выводить в рядом с названием клуба в его блоге - не пробовали? Вроде мелькало что-то подобное на форуме, но не найти
я cделал тиц 20 за 300р в месяц / 15$ в день ничего не делая / почему контекст лучше тизеров
Модератор
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1675
Не совсем понял формулировку: “иконку клуба выводить в рядом с названием клуба в его блоге” напишите по-проще что и куда… )
«Главное “настрой”! И всё настроиться…» © ) Их знают все! А вы?
Посетитель
small user social cms
Медаль
Сообщений: 165
Спасибо Майк, всё отлично работает. Ещё один вопрос в тему.
В настройках Клуба, пункт меню "Модераторы" назначение модераторов производится из друзей админа а не из участиков клуба. Я так понял оное действо связано с приглашением в клуб. То есть назначая модера не из членов клуба, ему отсылается приглашение о вступлении в клуб?

На мой взгляд лучше зделать назначение модеров только из участников клуба.

• Mike •:
Не совсем понял формулировку: “иконку клуба выводить в рядом с названием клуба в его блоге” напишите по-проще что и куда… )
Есть блоги пользователей, а есть блоги клубов. Чтобы не путать их, выводить перед названием блога клуба его иконку (аватар).
Сейчас название блога клуба, это название самого клуба. На мой взгляд, нужно подстовлять перед названием блога клуба "Блог клуба". Тогда получится вот так: Блог клуба Клуб любителе InstantCMS.
Модератор
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1675
Надо “поковыряться”… Чуть позже отпишусь если найду решение…
«Главное “настрой”! И всё настроиться…» © ) Их знают все! А вы?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2928
С такими темпами к выходу оф.1.9 здесь на форумах склепается 2.0 smile
Посетитель
small user social cms
Медаль
Сообщений: 165
uavip:

С такими темпами к выходу оф.1.9 здесь на форумах склепается 2.0 smile

Для этого и создан данный сайт, усовершенствовать InstantCMS общими усилиями. scratch
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1074
Валерьян:
Есть блоги пользователей, а есть блоги клубов. Чтобы не путать их, выводить перед названием блога клуба его иконку (аватар).
Сейчас название блога клуба, это название самого клуба. На мой взгляд, нужно подстовлять перед названием блога клуба "Блог клуба". Тогда получится вот так: Блог клуба Клуб любителе InstantCMS.

да именно так. просто путаница страшная идет. название блога, название клуба... а так визуально можно клуб выделить дав ему "аватарку"

например здесь com_blog_view_post.tpl - о том что это блог клуба надо еще догадаться. он отвечает и за блоги и за блоги в клубах и по сути один и тот же. а по сути они должны быть немного разные. хотя бы вставить проверку является он блогом клуба, если да, то вывести строчку с иконкой клуба и названием клуба.
я cделал тиц 20 за 300р в месяц / 15$ в день ничего не делая / почему контекст лучше тизеров
Посетитель
small user social cms
Медаль
Сообщений: 165
Ещё одна неполадка. В обзоре клубов, количество участников клуба отоброжается нормально.
Пример из моего сайта: Пункт меню "Группировки" - Сталкеры - 5 участников.
А в модулях и на странице самого клуба, отоброжается меньшее количество. На странице клуба: "В группировке 3 сталкера" Как это можно исправить?
Посетитель
small user social cms
Медаль
Сообщений: 165
Валерьян:
Ещё одна неполадка. В обзоре клубов, количество участников клуба отоброжается нормально.
Пример из моего сайта: Пункт меню "Группировки" - Сталкеры - 5 участников.
А в модулях и на странице самого клуба, отоброжается меньшее количество. На странице клуба: "В группировке 3 сталкера"
Я понял в чём проблема. Сначала я думал что это из-за новых функций, но на движке, установленном с нуля, тоже самое.
Что самое интересное, на странице клуба всё нормально пока нет модераторов. Смотрите сами:
1 админ и 3 участника. Всего 4 участника. Модераторов нет.

Не много изменить вид клубов


1 админ и 3 участника. Всего 4 участника. Из них 2 модератора.

Не много изменить вид клубов


Я думаю надо тикет написать.
Модератор
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1675
я не много добавил к коду то что выше чуть позже выложу…
«Главное “настрой”! И всё настроиться…» © ) Их знают все! А вы?
Посетитель
small user social cms
Медаль
Сообщений: 165
Не могу создать карточку в багтрекере. Требует введения каптчи. Ввожу, но что дальше делать неизвестно.
Модератор
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 1675
в файле /core/lib_clubs.php находим блок:
Код PHP:
  1.  
  2. function clubTotalMembers($club_id){
  3. $inDB = cmsDatabase::getInstance();
  4. if (!$club_id) { exit; }
  5. $members = array();
  6. $sql = "SELECT 1
  7. FROM cms_user_clubs c
  8. WHERE c.club_id = '$club_id' AND c.role = 'member'";
  9. $rs = $inDB->query($sql);
  10. if ($inDB->num_rows($rs)){
  11. return $inDB->num_rows($rs) +1; //+1 потому что считаем еще и админа, не только юзеров
  12. } else {
  13. return 1;
  14. }
  15. }
  16.  
после него вставляем:
Код PHP:
  1.  
  2. function clubTotalModers($club_id){
  3. $inDB = cmsDatabase::getInstance();
  4. if (!$club_id) { exit; }
  5. $members = array();
  6. $sql = "SELECT 1
  7. FROM cms_user_clubs c
  8. WHERE c.club_id = '$club_id' AND c.role = 'moderator'";
  9. $rs = $inDB->query($sql);
  10. if ($inDB->num_rows($rs)){
  11. return $inDB->num_rows($rs);
  12. }
  13. }
  14.  
в файле /templates/_default_/components/com_clubs_view_club.tpl

добавленный ранее блок меняем на:
Код PHP:
  1.  
  2. {if $club.moders > 0}
  3. <div class="members_list">
  4. <div class="title">{$LANG.MODERATORS} ({$club.moders}):</div>
  5. <div class="list">{$club.moders_list}</div>
  6. </div>
  7. {/if}
  8.  
находим строку:
Код PHP:
  1.  
  2. <span class="members"><strong>{$club.members|spellcount:$LANG.USER:$LANG.USER2:$LANG.USER10}</strong></span>
  3.  
меняем:
Код PHP:
  1.  
  2. <span class="members"><strong>{$club.moders + $club.members|spellcount:$LANG.USER:$LANG.USER2:$LANG.USER10}</strong></span>
  3.  
«Главное “настрой”! И всё настроиться…» © ) Их знают все! А вы?
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: