(третья редакция)
Более того, каждый сможет легко настроить количество надписей на странице на его сайте.
Итак, приступим:
1. Берем банку пива.
Ой нет — это лучше потом, когда все заработает 😊.
Тогда скачиваем архив — старая ссылка.
Скачиваем отсюда -> user_wall_1_1.zip ( sverdlovsk.net.ua/users/files/download27.html)
Исправил ссылки для скачивания!!!
2. Распаковываем его в какой-нибудь папочке на своем ПК.
3. Закачиваем в корень своего сайта (естественно с заменой файлов).
4. Запускаем скрипт Ваш.сайт/upgrade_user_wall.php (Если ставите в первый раз)
6. В админке в "Компоненты — Профили" настраиваем количество записей на странице стены.
7. Сохраняем.
8. Пьем, наконец, пиво!
P.S. Удаляем файл upgrade_user_wall.php из корня сайта (во избежание недоразумений)
P.P.S. У кого версия ниже 1.5 НУЖНО пропустить все шаги кроме 8.
Для тех, кто не понял.
Описание изменений (в комментариях не читается 😥)
Наибольшие изменения в файле /core/classes/user.class.php. Но там изменена только одна функция getUserWall
В файле /admin/components/users/backend.php две строки
Вставил после строки 71и после строки 145 следующие строки:
в .htaccess после 179 строки вставил строку:
в .htaccess после 278 строки (с учетом вставки строки 180) вставил строку:
===============================================================================
1.08.2009
Всем привет!
Спасибо за найденные ошибки. За стену клубов даже мысль в голову не пришла, что она реализована через эту же функцию. Завтра, максимум после завтра выложу с исправлениями.
2.08.2009 0:21(мск)
Всем привет!
P.S. Выложил уже с исправлениями. После исправления уменьшилось количество обращений к БД.
Привет!
Как и следует из названия поста, сегодня мы наконец-то заставим стену пользователя показывать все надписи с разбивкой на страницы.Более того, каждый сможет легко настроить количество надписей на странице на его сайте.
Итак, приступим:
1. Берем банку пива.
Ой нет — это лучше потом, когда все заработает 😊.
Тогда скачиваем архив — старая ссылка.
Скачиваем отсюда -> user_wall_1_1.zip ( sverdlovsk.net.ua/users/files/download27.html)
Исправил ссылки для скачивания!!!
2. Распаковываем его в какой-нибудь папочке на своем ПК.
3. Закачиваем в корень своего сайта (естественно с заменой файлов).
4. Запускаем скрипт Ваш.сайт/upgrade_user_wall.php (Если ставите в первый раз)
6. В админке в "Компоненты — Профили" настраиваем количество записей на странице стены.
7. Сохраняем.
8. Пьем, наконец, пиво!
P.S. Удаляем файл upgrade_user_wall.php из корня сайта (во избежание недоразумений)
P.P.S. У кого версия ниже 1.5 НУЖНО пропустить все шаги кроме 8.
Для тех, кто не понял.
Внимание, все описанное справедливо для версии 1.5!
В 1.5.1 не проверялось. Если кто-то пробовал — отпишитесь.Описание изменений (в комментариях не читается 😥)
Наибольшие изменения в файле /core/classes/user.class.php. Но там изменена только одна функция getUserWall
public static function getUserWall($user_id, $usertype='user'){ $inDB = cmsDatabase::getInstance(); $inCore = cmsCore::getInstance(); $inUser = self::getInstance(); // vvvvvvvv RoViX vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv $cfg = $inCore->loadComponentConfig('users'); // ^^^^^ RoViX ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ $menuid = $inCore->menuId(); $myprofile = false; if ($usertype=='user'){ $myprofile = ($inUser->id == $user_id || $inUser->is_admin); } else { $myprofile = (clubUserIsRole($user_id, $inUser->id, 'moderator') || $inUser->is_admin); } //// vvv RoViX vvvvvvvvvvvv /////////////////////////////////////////////////////////////// if ( $usertype == 'user' ) { $login = $inCore->request('login', 'str', ''); $address = "/users/$login"; } else { $id_clubs = $inCore->request('id', 'str', ''); $address = "/clubs/$menuid/$id_clubs"; } $sql = "SELECT count( w.id ) as cntWalls FROM cms_user_wall w, cms_users u WHERE w.user_id = $user_id AND w.author_id = u.id AND w.usertype = '$usertype'"; $result = $inDB->query($sql) ; if ($inDB->num_rows($result)){ $kvo = $inDB->fetch_assoc($result); $kvo_page = $kvo['cntWalls'] / $cfg['numpost']; if ( $kvo_page <> (int)$kvo_page) { $kvo_page = (int)$kvo_page + 1; } $page_wall = $_GET['page_wall']; }else{ $page_wall = 1; } } $startPos = ($page_wall - 1) * $cfg['numpost']; //// ^^^ RoViX ^^^ /////////////////////////////////////////////////////////////// $sql = "SELECT w.*, u.nickname as author, u.login as author_login, DATE_FORMAT(w.pubdate, '%d-%m-%Y (%h:%i)') as fpubdate FROM cms_user_wall w, cms_users u WHERE w.user_id = $user_id AND w.author_id = u.id AND w.usertype = '$usertype' ORDER BY w.pubdate DESC LIMIT ".$startPos.", ".$cfg['numpost']; // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ изменено $result = $inDB->query($sql); $total = $inDB->num_rows($result); if ($total){ while($record = $inDB->fetch_assoc($result)){ $record['avatar'] = usrImage($record['author_id'], 'small'); $records[] = $record; } } $smarty = $inCore->initSmarty('components', 'com_users_wall.tpl'); $smarty->assign('menuid', $menuid); $smarty->assign('total', $total); $smarty->assign('records', $records); $smarty->assign('user_id', $inUser->id); $smarty->assign('myprofile', $myprofile); $smarty->assign('usertype', $usertype); $smarty->display('com_users_wall.tpl'); //// vvv RoViX vvv /////////////////////////////////////////////////////////////// if ( $kvo_page > 1 ){ echo "<p align=center>"; for ( $ii = 1; $ii<=$kvo_page; $ii++ ) { if ( $ii <> $page_wall ) { echo "<a href=$address/$ii>$ii</a> "; }else{ echo "<b>$ii </b>"; } } echo "</p>"; } //// ^^^ RoViX ^^^ /////////////////////////////////////////////////////////////// }
Вставил после строки 71
$cfg['numpost'] = $_REQUEST['numpost'];
<tr> <td><strong>Количество сообщений на странице стены: </strong></td> <td> <input name="numpost" type="text" id="numpost" size="4" value="<?php echo @$cfg['numpost'];?>"/> </td> </tr>
RewriteRule ^users/([a-zA-z0-9\.]*)/([0-9]*)$ /index.php?view=users&do=profile&login=$1&menuid=0&page_wall=$2
RewriteRule ^clubs/([0-9]*)/([0-9]*)/([0-9]*)$ /index.php?view=clubs&do=club&menuid=$1&id=$2&page_wall=$3
1.08.2009
Всем привет!
Спасибо за найденные ошибки. За стену клубов даже мысль в голову не пришла, что она реализована через эту же функцию. Завтра, максимум после завтра выложу с исправлениями.
2.08.2009 0:21(мск)
Всем привет!
P.S. Выложил уже с исправлениями. После исправления уменьшилось количество обращений к БД.
Реклама #
widik 15 лет назад #
после этого изменения боюсь что пропадут
Виктор 15 лет назад #
Anonimus 15 лет назад #
L.B.Griffin 15 лет назад #
Только проблемка - на 1.2 не ставится.
кстати, там не было /core/classes/user.class.php, создал новую папка и файл
но пишется при запуске:
Пишет Fatal Error: Class `cmsCore’ not found in ...\upgrade_user_wall.php on line 18
L.B.Griffin 15 лет назад #
А в админке в "Профилях Польз." выдается кстати Fatal error: Call to a member function loadComponentConfig() on a non-object in ...\admin\components\users\backend.php on line 37
(файл backend.php заменился c 12кб (от вер 1.2) на 18 кб (из архива) -от вер 1.5 видимо?)
Виктор 15 лет назад #
Там же в посте ясно (я так думал) написано "У кого версия ниже 1.5 - те сразу приступают к пиву", то есть ЭТО НЕ РАБОТАЕТ ни на 1.1, ни на 1.2 и даже на 1.2.1
Файл upgrade_user_wall.php просто добавляет в настройки компонента users еще один параметр - количество сообщений выводимых на странице стены. Не более того, вся основная работа это как раз user.class.php
В 1.5 перевели на классы, в предыдущих версиях этого не было. Так что толку от того, что в системе появился файл user.class.php круглый ноль - система не использует его.
L.B.Griffin 15 лет назад #
L.B.Griffin 15 лет назад #
PS. Юмор не понял про пиво - настолько поскорее хотелось прикрутить листинг)))
widik 15 лет назад #
Виктор 15 лет назад #
Текст функции приведен полностью, нужно просто найти ее в файле. А еще проще - скопировать файлы на свой сервер (так как описано в посте)
Эдуард Исламов 15 лет назад #
А вот на стене клуба странный "эффект" - клик на страницу "2" и далее отправляет хз куда.
Пример здесь:
http://h2o-land.ru/clubs/38/12
Эдуард Исламов 15 лет назад #
А теперь ещё нужно файл user.class.php из версии 1.5.1 подгонять)))
Виктор 15 лет назад #
Внимание, все описанное справедливо для версии 1.5!
15 лет назад #
Виктор 15 лет назад #
15 лет назад #
Эдуард Исламов 15 лет назад #
(закачал на депозит - здесь чё-то глючит...)
http://depositfiles.com/files/ztx6hd2vi
Ещё одно - для тех, кто уже прикручивал или хочет прикрутить себе "визиты" - файл "backend.php" (визиты+постраничный вывод стены, версия 1.5.1), положить в папку \admin\components\users\:
http://depositfiles.com/files/i516aqf1r