собственно мне не нравится как отображался список пользователей на сайте при переходе на страницу /users/
аватарка ник микростатус если есть и дата последнего посещения… да ещё и всё в строчку… ах да — либо рейтинг, либо карма в зависимости от того, на что нажать вверху… но тут набрёл на блог "Кнопки Добавить в друзья и Отправить сообщение в Списке Пользователей — Хак" — поставил, понравилось, но всё ровно что то не то. а если учесть что система у нас в первую очередь направлена как соц сеть… то что то хотелось от одноклассников и вконтакте… думал думал и вот что надумал сделать вывод пользователей в несколько колонок.
первым делом необходимо установить хак DagStudent — опишу как дабы вам не искать его… (сделал копипаст)
убираем себя из списка пользователей, то есть вы не увидите себя в списке
1. В файле /components/users/frontend.php находим:
меняем на
далее я делал по второму пути поэтому в файле /components/users/frontend.php найдите это:
в разделе
и замените на это
далее в этом же файле в разделе
находим
меняем на (для отображения на странице не 10 а 12 пользователей, так как 3х4=12, можем задать своё число)
находим
меняем на
теперь переходим к правке шаблона
/templates/ВАШ_ШАБЛОН/components/com_users_view.tpl
он состоит из 2-х частей — первая отвечает за поиск, вторая за вывод пользователей, будем править вывод пользователей...
находим
и после этого кода заменяем всё на следующий код
сохраняем
ах да копируем две картинки в папку components/users/images/ instantcms.ru/users/files/download1402.html
и ещё добавляем в фаил стилей styles.css следующий код для того, чтоб пользователь был в рамке и был отступ от соседней карточки пользователя
демо тут sakhrest.ru/users/rating.html
большая часть данных выводится если они заполнены пользователем, и я ограничился кнопками добавить в друзья, отправить сообщение, альбомы пользователя и блог пользователя, теоретически можно добавить и другие кнопки — но мне они не нужны были, поэтому я и не делал
ps — некоторым ничего не надо подправлять в своих стилях, чтобы всё было ровно, а некоторым придётся поиграться, так как шаблоны то у всех разные, у меня к примеру в одном шаблоне всё нормально, в другом карма и рейтинг съежают
исправлено
* поиск по городу
* растягивание карточки на весь экран при выводе 1 или 2 пользователей в списке
аватарка ник микростатус если есть и дата последнего посещения… да ещё и всё в строчку… ах да — либо рейтинг, либо карма в зависимости от того, на что нажать вверху… но тут набрёл на блог "Кнопки Добавить в друзья и Отправить сообщение в Списке Пользователей — Хак" — поставил, понравилось, но всё ровно что то не то. а если учесть что система у нас в первую очередь направлена как соц сеть… то что то хотелось от одноклассников и вконтакте… думал думал и вот что надумал сделать вывод пользователей в несколько колонок.
первым делом необходимо установить хак DagStudent — опишу как дабы вам не искать его… (сделал копипаст)
убираем себя из списка пользователей, то есть вы не увидите себя в списке
1. В файле /components/users/frontend.php находим:
if ($is_users){ while($usr = $inDB->fetch_assoc($result)){ $rownum++; $usr['avatar'] = usrLink(usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']), $usr['login'], $menuid); $usr['nickname'] = cmsUser::getProfileLink($usr['login'], $usr['nickname']); $usr['flogdate'] = $inCore->dateFormat($usr['flogdate'], true, true); $usr['status'] = usrStatusList($usr['id'], $usr['flogdate'], false, $usr['gender']); $usr['num'] = $rownum + ($page-1)*$perpage; $usr['isfriend'] = (($inUser->id && !$myprofile) ? usrIsFriends($usr['id'], $inUser->id) : false); $users[] = $usr; } } }
if ($is_users){ while($usr = $inDB->fetch_assoc($result)){ if ($usr['id']!=$inUser->id){ $rownum++; $usr['avatar'] = usrLink(usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']), $usr['login'], $menuid); $usr['nickname'] = cmsUser::getProfileLink($usr['login'], $usr['nickname']); $usr['flogdate'] = $inCore->dateFormat($usr['flogdate'], true, true); $usr['status'] = usrStatusList($usr['id'], $usr['flogdate'], false, $usr['gender']); $usr['num'] = $rownum + ($page-1)*$perpage; $usr['isfriend'] = (($inUser->id && !$myprofile) ? usrIsFriends($usr['id'], $inUser->id) : false); $users[] = $usr; } } } }
Гостям будут показываться кнопки Добавить в друзья и Написать Сообщение но при нажатии на них их перекинет на страницу авторизации
в разделе
////// ADD FRIEND /////////
if (!usrCheckAuth() || $inUser->id == $id) { cmsCore::error404(); }
if (!usrCheckAuth() || $inUser->id == $id) { cmsUser::goToLogin(); }
//// VIEW USERS LIST ////
$perpage = 10;
$perpage = 12;
if ($is_users){ while($usr = $inDB->fetch_assoc($result)){ $rownum++; $usr['avatar'] = usrLink(usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']), $usr['login'], $menuid); $usr['nickname'] = cmsUser::getProfileLink($usr['login'], $usr['nickname']); $usr['flogdate'] = $inCore->dateFormat($usr['flogdate'], true, true); $usr['status'] = usrStatusList($usr['id'], $usr['flogdate'], false, $usr['gender']); $usr['num'] = $rownum + ($page-1)*$perpage; $users[] = $usr; } } }
if ($is_users){ while($usr = $inDB->fetch_assoc($result)){ if ($usr['id']!=$inUser->id){ $rownum++; $usr['avatar'] = usrLink(usrImageNOdb($usr['id'], 'small', $usr['imageurl'], $usr['is_deleted']), $usr['login'], $menuid); $usr['nickname'] = cmsUser::getProfileLink($usr['login'], $usr['nickname']); $usr['flogdate'] = $inCore->dateFormat($usr['flogdate'], true, true); $usr['status'] = usrStatusList($usr['id'], $usr['flogdate'], false, $usr['gender']); $usr['num'] = $rownum + ($page-1)*$perpage; $usr['isfriend'] = (($inUser->id && !$myprofile) ? usrIsFriends($usr['id'], $inUser->id) : false); $usr['albums'] = $model->getPhotoAlbums($usr['id'], $usr['isfriend']); $usr['albums_show'] = $usr['albums_total']; $usr['blog_link'] = ''; $usr['blog'] = usrBlog($usr['id']); $usr['blog_id'] = $usr['blog']['id']; $usr['blog_seolink'] = $usr['blog']['seolink']; if($usr['blog_id']){ $usr['blog_link'] = '<a href="/blogs/'.$usr['blog_seolink'].'">'.$_LANG['BLOG'].'</a>'; } elseif($myprofile) { $usr['blog_link'] = '<a href="/blogs/createblog.html">'.$_LANG['CREATE_BLOG'].'</a>'; } $usr['genderimg'] = ''; if ($usr['gender']) { switch ($usr['gender']){ case 'm': $usr['genderimg'] = '<img src="/components/users/images/m.png"/>'; $usr['gender']=$_LANG['MALES']; break; case 'f': $usr['genderimg'] = '<img src="/components/users/images/f.png"/>'; $usr['gender']=$_LANG['FEMALES']; break; } } $users[] = $usr; } } } }
/templates/ВАШ_ШАБЛОН/components/com_users_view.tpl
он состоит из 2-х частей — первая отвечает за поиск, вторая за вывод пользователей, будем править вывод пользователей...
находим
{if $querymsg} <div class="users_search_results">{$querymsg}</div> {/if}
<table width="100%" cellspacing="0" cellpadding="0" class="users_layout" border=0 > <tr> <td width="" valign="top"> {* ========================= СПИСОК ПОЛЬЗОВАТЕЛЕЙ ============================*} {php} global $_CFG; $mytemplate = ($_CFG['template']); {/php} <div class="users_list_buttons"> <div class="button {if $link.selected=='latest'}selected{/if}"><a rel=”nofollow” href="{$link.latest}">{$LANG.LATEST}</a></div> <div class="button {if $link.selected=='positive'}selected{/if}"><a rel=”nofollow” href="{$link.positive}">{$LANG.POSITIVE}</a></div> <div class="button {if $link.selected=='rating'}selected{/if}"><a rel=”nofollow” href="{$link.rating}">{$LANG.RATING}</a></div> </div> <div class="users_list"> <table cellspacing="0" cellpadding="0" class="users_list" border=0 > {if $is_users} {php}$row=0;{/php}<tr> <td width="31%" valign="top"><div class="users_list_blok"> <table width="100%" cellspacing="0" cellpadding="0" border=0 > <tr><td valign="top"><center><div class="avatar">{$usr.avatar}</div></center></td> <td valign="top"> <div class="nickname">{$usr.nickname}{if $usr.gender} {$usr.genderimg}{/if}</div> <div class="status">{$usr.status}</div> {if $usr.city} <div class="value"><a href="/users/city/{$usr.cityurl}">{$usr.city}</a></div> {/if} {* {if $link.selected=='rating'} *} <div class="rating" title="{$LANG.RATING}">{$LANG.RATING}: {$usr.rating}</div> {* {/if} *} {* {if $link.selected=='positive'} *} <div title="{$LANG.KARMA}" class="karma{if $usr.karma > 0} pos{/if}{if $usr.karma < 0} neg{/if}">{$LANG.KARMA}: {if $usr.karma > 0}+{/if}{$usr.karma}</div> {* {/if} *} {if $usr.microstatus} </td></tr><tr><td colspan="2"> <div class="microstatus">{$usr.microstatus}</div> {/if} </td></tr><tr><td colspan="2"> <table width="100%" cellspacing="0" cellpadding="0" border=0 > {if !$usr.isfriend} <tr> {if !$usr.isfriend_not_add} <td><img src="/templates/{php}echo $mytemplate;{/php}/images/icons/profile/friends.png" /></td> <td><a href="/users/{$usr.id}/friendship.html" title="{$LANG.ADD_TO_FRIEND}">{$LANG.ADD_TO_FRIEND}</a></td> {else} <td><img src="/templates/{php}echo $mytemplate;{/php}/images/icons/profile/nofriends.png" /></td> <td><a href="/users/{$usr.id}/nofriends.html" title="{$LANG.STOP_FRIENDLY}">{$LANG.STOP_FRIENDLY}</a></td> {/if} </tr> {else} <tr> <td><img src="/templates/{php}echo $mytemplate;{/php}/images/icons/profile/nofriends.png" /></td> <td><a href="/users/{$usr.id}/nofriends.html" title="{$LANG.STOP_FRIENDLY}">{$LANG.STOP_FRIENDLY}</a></td> </tr> {/if} <tr> <td><img src="/templates/{php}echo $mytemplate;{/php}/images/icons/profile/message.png" /></td> <td><a href="/users/{$usr.id}/sendmessage.html" title="{$LANG.WRITE_MESS}">{$LANG.WRITE_MESS}</a></td> </tr> {if $usr.albums} <tr> <td><img src="/templates/{php}echo $mytemplate;{/php}/images/icons/big/images.png" /></td> <td><a href="/users/{$usr.id}/photoalbum.html">Альбомы пользователя</a> ({$usr.albums_total})</td> </tr> {/if} {if $usr.blog_link} <tr> <td><img src="/templates/{php}echo $mytemplate;{/php}/images/icons/big/blog.png" /></td> <td>{$usr.blog_link}</td> </tr> {/if} </table> </div> </td></tr> </table> </td> {php}$row++;{/php} {php}if (!($row % 3)) {echo '</tr><tr>'; }{/php} {/foreach}</tr> {else} <tr> <td> <p>{$LANG.USERS_NOT_FOUND}.</p> </td> </tr> {/if} </table> </div> </td> </tr> </table>
ах да копируем две картинки в папку components/users/images/ instantcms.ru/users/files/download1402.html
и ещё добавляем в фаил стилей styles.css следующий код для того, чтоб пользователь был в рамке и был отступ от соседней карточки пользователя
div.users_list_blok { margin:15px 5px; padding:15px; border:1px solid #C3D6DF; border-radius:10px; -moz-border-radius:10px; }
большая часть данных выводится если они заполнены пользователем, и я ограничился кнопками добавить в друзья, отправить сообщение, альбомы пользователя и блог пользователя, теоретически можно добавить и другие кнопки — но мне они не нужны были, поэтому я и не делал
ps — некоторым ничего не надо подправлять в своих стилях, чтобы всё было ровно, а некоторым придётся поиграться, так как шаблоны то у всех разные, у меня к примеру в одном шаблоне всё нормально, в другом карма и рейтинг съежают
исправлено
* поиск по городу
* растягивание карточки на весь экран при выводе 1 или 2 пользователей в списке
Реклама #
bondar 13 лет назад #
Sergey Platonov 13 лет назад #
Boffka 13 лет назад #
Sergey Platonov 13 лет назад #
Boffka 13 лет назад #
джин 13 лет назад #
Sergey Platonov 13 лет назад #
если кому надо вывести какие либо ещё данные которые выводятся в профиле пользователя - могу доработать.
abasia 13 лет назад #
lezginka.ru 13 лет назад #
Sergey Platonov 13 лет назад #
Cleverking 13 лет назад #
Sergey Platonov 13 лет назад #
исправить в коде (если не ошибаюсь) строку
Man 13 лет назад #
Смотрится просто отлично! У меня как раз сайт посвящен актерам и моделям. Там это получилось кстати!
Автору и DagStudentu - РЕСПЕКТ !
Вот таких бы усовершенствований побольше!
Ingvarruss 13 лет назад #
Виктор Кел 13 лет назад #
МОЛОДЕЦ!!!!
БОЛЬШУЩЕЕ СПАСИБО !!!! :))Максим Шорин 13 лет назад #
livecom 13 лет назад #
Sergey Platonov 13 лет назад #
по поводу css - у каждого свои вкусы, я стандартные классы всюду практическа использовл, за исключением рамки вокруг карточки юзера
Click 13 лет назад #
Однако от установки на действующий сайт пришлось отказаться, т.к. при нажатии на город у пользователя поиск по городам происходит некорректно, если город написан русскими буквами. На Вашем сайте тоже такая беда - см. скрин:
Не работает кодировка при запросе?
Если город написан латинскими буквами, то всё в порядке.
И ещё. Если список выдаёт одного пользователя, то инфа в блоке растягивается на всю страницу, карма и рейтинг съезжает в сторону... Всё, как Вы и предупреждали! )) Буду копаться.
В целом плюсую за хорошее решение!
Sergey Platonov 13 лет назад #
по поводу описанного вами предлагаю исправления
исправляем поиск по городу
открываем /components/users/frontend.php
находим
находим
открываем /templates/ВАШ_ШАБЛОН/components/com_users_view.tpl
находим
ps - в посте подправил
Click 13 лет назад #
Sergey Platonov 13 лет назад #
ps - вот бы пролетел как еслиб решил данную модификацию продавать ... а была такая идея, ведь любой труд должен быть вознаграждён
Денис Васильевич 13 лет назад #
смотрите здесь
надеюсь что Sergey Platonov не против. :)
Sergey Platonov 13 лет назад #
ps - скоро выложу описание небольшой модификации самой страницы профиля(ну и она мне тож немного не нравится, а тут человек попросил её модифицировать, получилось нормально)
Денис Васильевич 13 лет назад #
Спасибо.
Крот 13 лет назад #
Sergey Platonov 13 лет назад #
Крот 13 лет назад #
Ну раз есть еще другие доработки то не могу настаивать на получении, сам иногда не все показываю)))
БИБАБО 13 лет назад #
Sergey Platonov 13 лет назад #