Нашел информацию что рейтинг клуба это сумма рейтингов его участников * 5 (это для 1.10.3)
Но у меня с математикой впорядке. Я посчитал — не сходится! Более того, специально создал клуб новый добавил туда участников, а рейтинг как был 0 так 0 и остался. Возникает вопрос может какие-то дополнительные условия необходимы или же он сейчас как-то по другому начисляется.
Буду благодарен за помощь!
Спасибо.
web4ik
+29
Репутация
2
Рейтинг
Lora, собственно так ничего и не получилось если потребуется файл какой, могу целиком его скинуть.
Но белый экран после добавления if стабильно.
Но белый экран после добавления if стабильно.
Вот где я добавил строки которые Вы привели в своем коде:
Так же прописал в конфиге модели (/components/users/model.php) 'on_line'=>0,
В прошлый раз просто запятую указать по невнимательности забыл. Теперь только когда выше приведенный код редактируется где надо вставить{if $cfg.on_line = $friend.is_online}{/if} то после вставки выводит белую страницу.
Вот ф-ция getFriends() класса cmsUser (/core/classes/user.class.php)
{if $usr.friends} <div class="usr_friends_block usr_profile_block"> {if $usr.friends_total > 6} <div class="float_bar"> <a href="/users/{$usr.id}/friendlist.html">{$LANG.ALL_FRIENDS}</a> ({$usr.friends_total}) </div> {/if} <div class="usr_wall_header"> {if !$myprofile} {$LANG.USER_FRIENDS} {else} {$LANG.MY_FRIENDS} {/if} </div> {assign var="col" value="1"} <table width="" cellpadding="5" cellspacing="0" border="0" class="usr_friends_list" align="left"> {if $cfg.on_line = $friend.is_online} {if $col==1}<tr>{/if} <td align="center" valign="top"> <div class="usr_friend_cell"> <div align="center"><a class="friend_link" href="{profile_url login=$friend.login}">{$friend.nickname}</a></div> <div align="center"><a href="{profile_url login=$friend.login}"><img border="0" class="usr_img_small" src="{$friend.avatar}" /></a></div> <div align="center">{$friend.flogdate}</div> </div> </td> {if $col==6} </tr> {assign var="col" value="1"} {else} {math equation="x + 1" x=$col assign="col"} {/if} {/if} {/foreach} {if $col>1}<td colspan="{math equation="x - 6 + 1" x=$col}"> </td></tr>{/if} </table> </div> {/if}
Так же прописал в конфиге модели (/components/users/model.php) 'on_line'=>0,
В прошлый раз просто запятую указать по невнимательности забыл. Теперь только когда выше приведенный код редактируется где надо вставить{if $cfg.on_line = $friend.is_online}{/if} то после вставки выводит белую страницу.
Вот ф-ция getFriends() класса cmsUser (/core/classes/user.class.php)
// ============================================================================ // /** * Возвращает список друзей пользователя * и помещает в текущую сессию * @param int $user_id * @return array */ public static function getFriends($user_id=0){ // уже полученных друзей отдаем сразу return self::getInstance()->friends[$user_id]; } $is_me = (@$_SESSION['user']['id'] == $user_id); //Если список уже в сессии, возвращаем if ($is_me && self::sessionGet('friends') !== false) { foreach (self::sessionGet('friends') as $key=>$friend) { $friend['flogdate'] = self::getOnlineStatus($friend['id'], $friend['logdate']); $friends[$key] = $friend; } return $friends; } //иначе получаем список из базы, кладем в сессию и возвращаем $inDB = cmsDatabase::getInstance(); $sql = "SELECT CASE WHEN f.from_id = $user_id THEN f.to_id WHEN f.to_id = $user_id THEN f.from_id END AS id, u.nickname as nickname, u.login as login, u.is_deleted, u.status, u.logdate, p.imageurl FROM cms_user_friends f LEFT JOIN cms_users u ON u.id = CASE WHEN f.from_id = $user_id THEN f.to_id WHEN f.to_id = $user_id THEN f.from_id END INNER JOIN cms_user_profiles p ON p.user_id = u.id WHERE (from_id = $user_id OR to_id = $user_id) AND is_accepted =1 ORDER BY u.logdate DESC"; $result = $inDB->query($sql); if ($inDB->num_rows($result)){ while($friend = $inDB->fetch_assoc($result)){ $friend['avatar'] = self::getUserAvatarUrl($friend['id'], 'small', $friend['imageurl'], $friend['is_deleted']); $friend['is_online'] = self::isOnline($friend['id']); $friend['flogdate'] = self::getOnlineStatus($friend['id'], $friend['logdate']); $friends[$friend['id']] = $friend; } } // своих друзей кладем в сессию if ($is_me) { self::sessionPut('friends', $friends); } // Запоминаем список друзей пользователя self::getInstance()->friends[$user_id] = $friends; return $friends; } // ============================================================================ //
Вот файл model.php на всякий случай.
instantcms.ru/users/files/download5349.html
instantcms.ru/users/files/download5349.html
А в конфигах добавлял сюда:
public static function getDefaultConfig() { 'sw_comm'=>1, 'sw_search'=>1, 'sw_forum'=>1, 'sw_photo'=>1, 'sw_wall'=>1, 'sw_blogs'=>1, 'sw_clubs'=>1, 'sw_feed'=>1, 'sw_awards'=>1, 'sw_board'=>1, 'sw_msg'=>1, 'sw_guest'=>1, 'sw_gifts'=>1, 'karmatime'=>1, 'karmaint'=>'DAY', 'photosize'=>0, 'watermark'=>1, 'smallw'=>64, 'medw'=>200, 'medh'=>500, 'sw_files'=>1, 'filessize'=>100, 'users_perpage'=>10, 'wall_perpage'=>10, 'filestype'=>'jpeg,gif,png,jpg,bmp,zip,rar,tar', 'deltime'=>6 ); return $cfg; }
Здравствуйте. Спасибо большое за подсказку, но что-то не выходит, прописал в конфигах, пытался по разному обернуть не получается выдает белую страницу. Вот привожу кусок кода который пытался обернуть.
{if $usr.friends} вот это пытался заменить на то что вы скинули.
И после того как добавил конфиг, но при этом не добавил в профиль файл обертку то тоже самое белая страница, и отдельно без конфига если оборачиваешь то тоже белая страница, и если все вместе делаешь то тоже белая страница.
{if $usr.friends} <div class="usr_friends_block usr_profile_block"> {if $usr.friends_total > 6} <div class="float_bar"> <a href="/users/{$usr.id}/friendlist.html">{$LANG.ALL_FRIENDS}</a> ({$usr.friends_total}) </div> {/if} <div class="usr_wall_header"> {if !$myprofile} {$LANG.USER_FRIENDS} {else} {$LANG.MY_FRIENDS} {/if} </div> {assign var="col" value="1"} <table width="" cellpadding="5" cellspacing="0" border="0" class="usr_friends_list" align="left"> {if $col==1}<tr>{/if} <td align="center" valign="top"> <div class="usr_friend_cell"> <div align="center"><a class="friend_link" href="{profile_url login=$friend.login}">{$friend.nickname}</a></div> <div align="center"><a href="{profile_url login=$friend.login}"><img border="0" class="usr_img_small" src="{$friend.avatar}" /></a></div> <div align="center">{$friend.flogdate}</div> </div> </td> {if $col==6} </tr> {assign var="col" value="1"} {else} {math equation="x + 1" x=$col assign="col"} {/if} {/foreach} {if $col>1}<td colspan="{math equation="x - 6 + 1" x=$col}"> </td></tr>{/if} </table> </div> {/if}
И после того как добавил конфиг, но при этом не добавил в профиль файл обертку то тоже самое белая страница, и отдельно без конфига если оборачиваешь то тоже белая страница, и если все вместе делаешь то тоже белая страница.
Помогите пожалуйста разобраться, как сделать так, чтобы под общим списком друзей выводился список друзей которые онлайн?
Я находил на форуме темы схожей тематики но для instantcms 1.10.4 они к сожалению не подходят, подскажите пожалуйста можно ли как-то вывести друзей онлайн Вот как на картинке в профиле под основным списком друзей.
Заранее спасибо за помощь.
Я находил на форуме темы схожей тематики но для instantcms 1.10.4 они к сожалению не подходят, подскажите пожалуйста можно ли как-то вывести друзей онлайн Вот как на картинке в профиле под основным списком друзей.
Заранее спасибо за помощь.
HiAndy, Спасибо огромное помогло. Все начало корректно работать. +1 в карму.
Хорошее решение собрать все лучшие компоненты и дополнения на instant в одном месте. Была бы еще какая-нибудь группировка по критериям безопасности того или иного дополнения или компонента.(Хотя бы надежен или не проверен)
Добавил данное решение
instantcms.ru/blogs/u-ch-rta-za-pazuhoi/istorija-komentariev-na-ajaks.html#comment_82018
на instant 1.10.4
При тестировании заметил следующую ошибку, (ставил на уже работающий инстант).
При голосовании заметил что когда добавляю голос, то там уже задним числом выдает еще кого-то, хотя комментарий добавлен только сегодня был.
Итого:
1.Статья добавлена сегодня.
2.Комментарий добавлен сегодня.
3.В статистике пишется +1 к комментарию
4.Открываешь посмотреть историю там еще показывает как будто бы кто-то голосовал, год назад, хотя такого быть не могло.
5.Проблема не с единичным комментарием, так происходит раз через два, часто.
Вот скрин:
Помогите пожалуйста разобраться в чем может быть проблема.
Заранее спасибо.
PS там еще из темы вот этой следует, что необходимо в файл /components/comments/model.php добавить следующий код
А после функцию public function getRComment($id) заменить на:
instantcms.ru/blogs/u-ch-rta-za-pazuhoi/istorija-komentariev-na-ajaks.html#comment_82018
на instant 1.10.4
При тестировании заметил следующую ошибку, (ставил на уже работающий инстант).
При голосовании заметил что когда добавляю голос, то там уже задним числом выдает еще кого-то, хотя комментарий добавлен только сегодня был.
Итого:
1.Статья добавлена сегодня.
2.Комментарий добавлен сегодня.
3.В статистике пишется +1 к комментарию
4.Открываешь посмотреть историю там еще показывает как будто бы кто-то голосовал, год назад, хотя такого быть не могло.
5.Проблема не с единичным комментарием, так происходит раз через два, часто.
Вот скрин:

Помогите пожалуйста разобраться в чем может быть проблема.
Заранее спасибо.
PS там еще из темы вот этой следует, что необходимо в файл /components/comments/model.php добавить следующий код
function r_User($id){ $sql ="SELECT u.nickname FROM cms_users u LEFT JOIN cms_comments c ON c.user_id = u.id LEFT JOIN cms_ratings r ON r.item_id = c.id WHERE u.id = $id LIMIT 1"; $result = $this->inDB->query($sql); if (!$this->inDB->num_rows($result)) { return false; } $commen = $this->inDB->fetch_assoc($result); return $commen; } /*******************************************************************/ function l_User($id){ $sql ="SELECT u.login FROM cms_users u LEFT JOIN cms_comments c ON c.user_id = u.id LEFT JOIN cms_ratings r ON r.item_id = c.id WHERE u.id = $id LIMIT 1"; $result = $this->inDB->query($sql); if (!$this->inDB->num_rows($result)) { return false; } $commen = $this->inDB->fetch_assoc($result); return $commen; } /*****************************************************************/ public function getRComment($id) { $sql = "SELECT c.*, u.nickname as nickname, u.login as login, r.user_id as ruser,r.points as points,r.pubdate as date FROM cms_comments c LEFT JOIN cms_ratings r ON r.item_id = c.id 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.id = r.item_id AND c.target_id=$id"; $result = $this->inDB->query($sql); if (!$this->inDB->num_rows($result)) { return false; } while($comment = $this->inDB->fetch_assoc($result)){ $comments[] = $comment; } return $comments; }
public function getRating($id,$target_id) { $sql = "SELECT r.*, u.nickname as nickname, u.login as login,c.id as cid FROM cms_ratings r LEFT JOIN cms_comments c ON c.target_id=$target_id AND r.item_id=c.id LEFT JOIN cms_users u ON u.id = r.user_id LEFT JOIN cms_user_profiles p ON p.user_id = u.id WHERE item_id=$id "; $result = $this->inDB->query($sql); if (!$this->inDB->num_rows($result)) { return false; } while($rating = $this->inDB->fetch_assoc($result)){ $ratings[] = $rating ; } return $ratings; }
Отписал Л/С.
Спасибо друг Странник за совет и объективную критику, действительно полезная информация, я даже честно говоря не знал о том, что Вы написали, пока что только познаю данную cms, теперь буду иметь ввиду.
Я понимаю что тут лежит информация о кол-ве друзей у пользователей. Но запись происходит из компонента именно его настройки в данную базу данных cms_user_autoawards, причем не только настройка юзверей.Дружище web4ik, зачем вы добавляете дополнительное поле в таблицу cms_user_autoawards, если в таблице cms_user_friends уже лежит вся инфа по друзьям?
Вобщем если будет желание объясни что не так можешь и в л.с. Просто тут сделано даже не по аналогии с предыдущей версией а по аналогии с уже написанным компонентом.
Я делал по аналогии с приведенной выше ссылкой.
instantcms.ru/forum/thread4625.html
Как я понял это поле и отвечает за, то что мы в него записываем(из админки инстанта) кол-во друзей по достижению которого выдавалась бы награда.
Я могу и ошибаться, поправьте меня, если не прав, поправлю пост.
instantcms.ru/forum/thread4625.html
Как я понял это поле и отвечает за, то что мы в него записываем(из админки инстанта) кол-во друзей по достижению которого выдавалась бы награда.
Я могу и ошибаться, поправьте меня, если не прав, поправлю пост.
Спасибо большое.
- Предыдущая
- 1
- 2
- 3
- Следующая
- Показаны 16-30 из 41