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

ЕСТЬ РЕШЕНИЕ ЗАКРЫТО
#16 10 апреля 2011 в 19:24
да здесь их всего три штуки… у меня почему то точек нет…
#17 10 апреля 2011 в 19:24
Нет все в этой же функции

  1.  
  2. function clubMembersListWithAvatar($club_id){
  3. $inCore = cmsCore::getInstance();
  4. $inDB = cmsDatabase::getInstance();
  5.  
  6. $sql = "SELECT u.id as id, u.nickname as nickname, u.login as login, p.imageurl as imageurl
  7. FROM cms_user_clubs c
  8. LEFT JOIN cms_users u ON u.id = c.user_id
  9. LEFT JOIN cms_user_profiles p ON p.user_id = u.id
  10. WHERE c.club_id = '$club_id' LIMIT 10";
  11.  
  12. $rs = $inDB->query($sql);
  13. $total = $inDB->num_rows($rs);
  14.  
  15. $now=0; $html = '';
  16.  
  17. while($usr = $inDB->fetch_assoc($rs)){
  18. if (!function_exists('usrImageNOdb')){ //if not included earlier
  19. include_once($_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php');
  20. }
  21. $usrimage = usrImageNOdb($usr['id'], 'small', $usr['imageurl']);
  22.  
  23. $html .= '<div class="user_list" style="float:left; width:80px; align:left; padding:10px; margin: 10px;">'. $usrimage.'<a href="/users/'.$usr['login'].'" class="nickname" ><p class="user_nick" style="line-height: 20px; width: 60px;">'.$usr['nickname'].'</p></a></div>';
  24.  
  25. // if ($now < $total-1) { $html .= ', '; }
  26. $now ++;
  27. }
  28. $html .= '<div style="clear:both"></div>';
  29. return $html;
  30. }
  31.  
#18 10 апреля 2011 в 19:26
Если не умешаются по ширине нужно поменять:

$html .= '<div class="user_list" style="float:left; width:80px; align:left; padding:10px; margin: 10px;">'. $usrimage.'<a href="/users/'.$usr['login'].'" class="nickname" ><p class="user_nick" style="line-height: 20px; width: 60px;">'.$usr['nickname'].'</p></a></div>';
#19 10 апреля 2011 в 19:30
Запятые пропали! Респект вам!
#20 10 апреля 2011 в 21:46
Mike • спасибо вам за подробную последовательность, так понемногу чего то и научусь)
#21 10 апреля 2011 в 22:16


Mike • спасибо вам за подробную последовательность, так понемногу чего то и научусь)

uavip

Вообще то, это не самый правильный путь, по идее, нужно дополнительный функционал
обеспечивать через модули || плагины || фильтры || шаблоны,
в крайнем случае переписывать код компонента, а не библиотек ядра (как в данном примере)…
я отталкивался от минимальной правки, чтобы, в случае обновлений — все действия можно было быстро повторить по новой…
#22 12 апреля 2011 в 23:16
Вот очередное решение теперь с пэйджинатором )

Исправляем функцию (там же, то бишь: /core/lib_clubs.php)

  1.  
  2. function clubMembersListWithAvatar($club_id){
  3. $inCore = cmsCore::getInstance();
  4. $inDB = cmsDatabase::getInstance();
  5. $inPage = cmsPage::getInstance();
  6.  
  7. $sql = "SELECT u.id as id, u.nickname as nickname, u.login as login, p.imageurl as imageurl
  8. FROM cms_user_clubs c
  9. LEFT JOIN cms_users u ON u.id = c.user_id
  10. LEFT JOIN cms_user_profiles p ON p.user_id = u.id
  11. WHERE c.club_id = '$club_id'";
  12.  
  13. $rs = $inDB->query($sql);
  14. $total = $inDB->num_rows($rs);
  15.  
  16. $inPage->addHeadJS('templates/_default_/js/smartpaginator.js');
  17. $inPage->addHeadJS('templates/_default_/js/pager_init.js');
  18.  
  19. $inPage->addHeadCSS('templates/_default_/css/smartpaginator.css');
  20.  
  21. $now=0; $html = '<div id="all_user_list">';
  22.  
  23. while($usr = $inDB->fetch_assoc($rs)){
  24. if (!function_exists('usrImageNOdb')){ //if not included earlier
  25. include_once($_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php');
  26. }
  27. $usrimage = usrImageNOdb($usr['id'], 'small', $usr['imageurl']);
  28.  
  29. $html .= '<div style="float:left; width:70px; align:left; padding:5px; margin: 5px;">'. $usrimage.'<a href="/users/'.$usr['login'].'" class="nickname" ><p class="user_nick" style="line-height: 16px; width: 60px;">'.$usr['nickname'].'</p></a></div>';
  30.  
  31. $now ++;
  32. }
  33. $html .= '</div> </div><div style="clear:both"></div><div id="black" style="margin: auto;"> ';
  34.  
  35. return $html;
  36. }
  37.  
далее копируем файлики из фложенного архива в соответсвующие папки дефолного шаблона:
js соответственно в /templates/_default_/js/
css соответственно в /templates/_default_/css/
Прикрепленный файл
avatarpaginator_ae638.zip 4 Кб
#23 12 апреля 2011 в 23:18
Проблемы возникают только на длинных никнеймах без пробелов, но тут уж ничего придумать не могу…)
#24 12 апреля 2011 в 23:27
да забыл дописать настрокий пэджера меняются в фале pager_init.js

totalrecords: 40, //максимальое ограничение
recordsperpage: 10, //количество в одной секции
datacontainer: 'all_user_list',
dataelement: 'div',
initval: 0,
next: 'Next', //название для кнопки следующая
prev: 'Prev', //название для кнопки предыдущая
first: 'First', //название для кнопки первая
last: 'Last', //название для кнопки последняя
theme: 'black' //цветовая схема пеэджера возможны значения red, green, black
#25 12 апреля 2011 в 23:46

Проблемы возникают только на длинных никнеймах без пробелов, но тут уж ничего придумать не могу…)

• Mike •
где то поднимался вопрос по обрезанию текста… по идеи можно вставить проверку по длине слова (если > 14, обрезать на 10 и вставить "...") — это всего лишь мысли вслух (идея), как реализовать не скажу)
#26 12 апреля 2011 в 23:53
ну если вынести всю реализацию как положено в смарти шаблон там есть встроеный постфильтр… )
#27 13 апреля 2011 в 19:50
Новое решение для тех у кого библиотеки js конфликтуют.
Вместо пэйджинации добавляем линейку прокрутки количество видимых пользователей в списке определяем высотой блока “all_user_list”.
  1.  
  2. function clubMembersListWithAvatar($club_id){
  3. $inCore = cmsCore::getInstance();
  4. $inDB = cmsDatabase::getInstance();
  5. $inPage = cmsPage::getInstance();
  6.  
  7. $sql = "SELECT u.id as id, u.nickname as nickname, u.login as login, p.imageurl as imageurl
  8. FROM cms_user_clubs c
  9. LEFT JOIN cms_users u ON u.id = c.user_id
  10. LEFT JOIN cms_user_profiles p ON p.user_id = u.id
  11. WHERE c.club_id = '$club_id'";
  12.  
  13. $rs = $inDB->query($sql);
  14. $total = $inDB->num_rows($rs);
  15.  
  16. $now=0; $html = '<div id="all_user_list" style="width: 190px; height: 466px; overflow-y:auto; overflow-x: hidden;">';
  17.  
  18. while($usr = $inDB->fetch_assoc($rs)){
  19. if (!function_exists('usrImageNOdb')){ //if not included earlier
  20. include_once($_SERVER['DOCUMENT_ROOT'].'/components/users/includes/usercore.php');
  21. }
  22. $usrimage = usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']);
  23.  
  24. $html .= '<div style="float:left; width:70px; height: 88px; text-align:center; padding-left:2px; margin: 2px auto;"><a href="/users/'.$usr['login'].'" class="nn" styles="display:block; float:left;">'. $usrimage.'<p class="user_nick" style="Line-height: 10px; height: 28px; width: 60px; margin: 2px auto;">'.$usr['nickname'].'</p></a></div>';
  25.  
  26. $now ++;
  27. }
  28. $html .= '</div></div><div style="clear:both"></div>';
  29.  
  30. return $html;
  31. }
  32.  
#28 13 апреля 2011 в 20:11
Огромное спасиба Майку за качественную доработку для инстанта!
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.