Перейти к содержимому

Сервис обмена электронных валют

Выбрать шаблон и создать сайт

Новости типа как во вконтакте

#1 Gesha!

Gesha!
  • Пользователь
  • 85 сообщений
  • Репутация: 1
0

Отправлено 09 Ноябрь 2012 - 01:49

Здравствуйте, уважаемые пользователи сообщества. Даво не заходил сюда, много всего интересого появилось и это радует.

Есть задача - сделать на сайте новости пользователя, типа как во вконтакте. Там будет отображаться кто добавил его в друзья, новости сайта, ответы на его сообщения, кто ставил лайки на его материалы и т.п. Принцип вывода такой же, как и в вышеупомянутой социальной сети, то есть что свежее, то отображается выше. Проблема в том, что вся эта информация о добавлении в друзья, новости сайта, ответы на сообщения и т.д. хранится в разных таблицах базы.

Так вот хочу спросить у профи как рациональнее организовать такой функционал, не нагружая сервер лишними запросами. Зараннее благодарен.

 

 

  • 0

#2 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 10 Ноябрь 2012 - 22:46

а что уже сделано?
  • 0

#3 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 10 Ноябрь 2012 - 22:54

Есть новости сайта в таблице news, комментарии в comments и добавление в друзья (в таблице users есть поле add_friends, в котором через запятую пишутся id пользователей, которые хотят с вами "дружить").
  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#4 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 10 Ноябрь 2012 - 22:57

мне кажется ТС с форумом ошибся, но если уже написал, то можно сделать так:
тыц
потом посмотреть в сторону mysqli
и посмотреть как реализовано тут
  • 1

#5 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 10 Ноябрь 2012 - 23:03

surfer, это да, нужно было в mysql создавать, сейчас перенесу.
То есть, нужно делать это ОДНИМ сложным запросом, верно?
  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#6 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 10 Ноябрь 2012 - 23:06

минимум да: тут и тут + mysqli + ...
  • 1

#7 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 10 Ноябрь 2012 - 23:29

surfer, спасибо, нужно будет поизучать движок этот.
Вот, к моему удивлению, быстро нашёл функцию getActionsLog(), которая возвращает массив событий для ленты активности. Так такой вот интересный запрос:

SELECT log.id as id,
log.user_id,
log.object as object,
log.object_url as object_url,
log.target as target,
log.target_url as target_url,
log.pubdate as pubdate,
log.description as description,
a.message as message,
a.name as name,
u.nickname as user_nickname,
u.login as user_login

FROM cms_actions_log log
LEFT JOIN cms_actions a ON a.id = log.action_id AND a.is_visible = 1
LEFT JOIN cms_users u ON u.id = log.user_id

WHERE 1=1 {$this->inDB->where}

ORDER BY log.id DESC

  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#8 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 10 Ноябрь 2012 - 23:39

если нужен будет инвайт туда - пиши, скину :)
  • 0

#9 admin

admin
  • Пользователь PRO
  • 5 272 сообщений
  • Репутация: 54

Отправлено 10 Ноябрь 2012 - 23:42

surfer, инвайт куда? :)
  • 0

Сколько лет прошло, а ссылки всё ещё лучше покупать тут



#10 surfer

surfer
  • Заблокированные
  • 1 956 сообщений
  • Репутация: 71

Отправлено 10 Ноябрь 2012 - 23:45

для регистрации на сайте Instanta
  • 0

robot

robot
  • Пользователь PRO
  • 2 652 сообщений
  • Репутация: 85


Оформление форума – IPBSkins.ru