Не много изменить вид клубов
Продолжение старой темы. Вывод списка модеров клуба.
Решил продолжить тему от Nikitka опубликованную здесь
Проблему с выводом аватаров пользователей мы решили. Но остался ещё один вопрос.
Вывод модераторов клуба в блок.
А именно. Под аватаром клуба есть блоки выводящие администратора клуба и участников клуба. Но нету блока с модераторами клуба. на мой взгляд это упущение. Я не силён в PHP, поэтому прошу Вас помочь.
Приступим
1) файл /core/lib_clubs.php добавляем в конец файла 3 новых функции (у кого была уже функция для пользователей с аватарами то после неё, чтобы если вносились стилевые изменения перенести их в код новой функции)
function clubAdminWithAvatar($club_id){ $inCore = cmsCore::getInstance(); $inDB = cmsDatabase::getInstance(); $inPage = cmsPage::getInstance(); $sql = "SELECT u.id as id, u.nickname as nickname, u.login as login, p.imageurl as imageurl FROM cms_clubs c LEFT JOIN cms_users u ON u.id = c.admin_id LEFT JOIN cms_user_profiles p ON p.user_id = u.id WHERE c.id = '$club_id'"; $rs = $inDB->query($sql); $usr = $inDB->fetch_assoc($rs); include_once($_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php'); } $usrimage = usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']); $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>'; return $html; } function clubMembersListWithAvatar($club_id){ $inCore = cmsCore::getInstance(); $inDB = cmsDatabase::getInstance(); $inPage = cmsPage::getInstance(); $sql = "SELECT u.id as id, u.nickname as nickname, u.login as login, p.imageurl as imageurl FROM cms_user_clubs c LEFT JOIN cms_users u ON u.id = c.user_id LEFT JOIN cms_user_profiles p ON p.user_id = u.id WHERE c.club_id = '$club_id'"; $rs = $inDB->query($sql); $total = $inDB->num_rows($rs); $now=0; if ($total > 10) { $html = '<div id="all_user_list" style="width: 190px; height: 570px; overflow-y:auto; overflow-x: hidden;">'; } if ($total <= 10) { $html = '<div id="all_user_list" style="width: 190px;">'; } while($usr = $inDB->fetch_assoc($rs)){ include_once($_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php'); } $usrimage = usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']); $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>'; $now ++; } $html .= '</div></div><div style="clear:both"></div>'; return $html; } function clubModersListWithAvatar($club_id){ $inCore = cmsCore::getInstance(); $inDB = cmsDatabase::getInstance(); $inPage = cmsPage::getInstance(); $sql = "SELECT u.id as id, u.nickname as nickname, u.login as login, p.imageurl as imageurl FROM cms_user_clubs c LEFT JOIN cms_users u ON u.id = c.user_id LEFT JOIN cms_user_profiles p ON p.user_id = u.id WHERE c.club_id = '$club_id' AND c.role = 'moderator'" ; $rs = $inDB->query($sql); $total = $inDB->num_rows($rs); $now=0; $html = '<div id="all_user_list" style="width: 190px;">'; while($usr = $inDB->fetch_assoc($rs)){ include_once($_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php'); } $usrimage = usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']); $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>'; $now ++; } $html .= '</div></div><div style="clear:both"></div>'; return $html; }
//PARAMS $club['admin'] = clubAdminLink($id); $club['members'] = clubTotalMembers($id); $club['members_list'] = clubMembersList($id);
//PARAMS $club['admin'] = clubAdminWithAvatar($id); $club['members'] = clubTotalMembers($id); $club['members_list'] = clubMembersListWithAvatar($id); $club['moders_list'] = clubModersListWithAvatar($id);
находим:
<div class="members_list"> <div class="title">{$LANG.CLUB_ADMIN}:</div> <div class="list">{$club.admin}</div> </div>
<div class="members_list"> <div class="title">{$LANG.MODERATORS}:</div> <div class="list">{$club.moders_list}</div> </div>
А иконку клуба выводить в рядом с названием клуба в его блоге — не пробовали? Вроде мелькало что-то подобное на форуме, но не найти
В настройках Клуба, пункт меню "Модераторы" назначение модераторов производится из друзей админа а не из участиков клуба. Я так понял оное действо связано с приглашением в клуб. То есть назначая модера не из членов клуба, ему отсылается приглашение о вступлении в клуб?
На мой взгляд лучше зделать назначение модеров только из участников клуба.
Есть блоги пользователей, а есть блоги клубов. Чтобы не путать их, выводить перед названием блога клуба его иконку (аватар).Не совсем понял формулировку: “иконку клуба выводить в рядом с названием клуба в его блоге” напишите по-проще что и куда… )
Сейчас название блога клуба, это название самого клуба. На мой взгляд, нужно подстовлять перед названием блога клуба "Блог клуба". Тогда получится вот так: Блог клуба Клуб любителе InstantCMS.
С такими темпами к выходу оф.1.9 здесь на форумах склепается 2.0
Для этого и создан данный сайт, усовершенствовать InstantCMS общими усилиями.
Есть блоги пользователей, а есть блоги клубов. Чтобы не путать их, выводить перед названием блога клуба его иконку (аватар).
Сейчас название блога клуба, это название самого клуба. На мой взгляд, нужно подстовлять перед названием блога клуба "Блог клуба". Тогда получится вот так: Блог клуба Клуб любителе InstantCMS.
да именно так. просто путаница страшная идет. название блога, название клуба… а так визуально можно клуб выделить дав ему "аватарку"
например здесь com_blog_view_post.tpl — о том что это блог клуба надо еще догадаться. он отвечает и за блоги и за блоги в клубах и по сути один и тот же. а по сути они должны быть немного разные. хотя бы вставить проверку является он блогом клуба, если да, то вывести строчку с иконкой клуба и названием клуба.
Пример из моего сайта: Пункт меню "Группировки" — Сталкеры — 5 участников.
А в модулях и на странице самого клуба, отоброжается меньшее количество. На странице клуба: "В группировке 3 сталкера" Как это можно исправить?
Я понял в чём проблема. Сначала я думал что это из-за новых функций, но на движке, установленном с нуля, тоже самое.Ещё одна неполадка. В обзоре клубов, количество участников клуба отоброжается нормально.
Пример из моего сайта: Пункт меню "Группировки" — Сталкеры — 5 участников.
А в модулях и на странице самого клуба, отоброжается меньшее количество. На странице клуба: "В группировке 3 сталкера"
Что самое интересное, на странице клуба всё нормально пока нет модераторов. Смотрите сами:
1 админ и 3 участника. Всего 4 участника. Модераторов нет.
1 админ и 3 участника. Всего 4 участника. Из них 2 модератора.
Я думаю надо тикет написать.
function clubTotalMembers($club_id){ $inDB = cmsDatabase::getInstance(); $sql = "SELECT 1 FROM cms_user_clubs c WHERE c.club_id = '$club_id' AND c.role = 'member'"; $rs = $inDB->query($sql); if ($inDB->num_rows($rs)){ return $inDB->num_rows($rs) +1; //+1 потому что считаем еще и админа, не только юзеров } else { return 1; } }
function clubTotalModers($club_id){ $inDB = cmsDatabase::getInstance(); $sql = "SELECT 1 FROM cms_user_clubs c WHERE c.club_id = '$club_id' AND c.role = 'moderator'"; $rs = $inDB->query($sql); if ($inDB->num_rows($rs)){ return $inDB->num_rows($rs); } }
добавленный ранее блок меняем на:
{if $club.moders > 0} <div class="members_list"> <div class="title">{$LANG.MODERATORS} ({$club.moders}):</div> <div class="list">{$club.moders_list}</div> </div> {/if}
<span class="members"><strong>{$club.members|spellcount:$LANG.USER:$LANG.USER2:$LANG.USER10}</strong></span>
<span class="members"><strong>{$club.moders + $club.members|spellcount:$LANG.USER:$LANG.USER2:$LANG.USER10}</strong></span>