форум vBSupport.ru > vBulletin > Вопрос — Ответ
Register Меню vBsupport Изображения Files Manager О рекламе Today's Posts Search
  • Родная гавань
  • Блок РКН снят
  • Premoderation
  • For English speaking users
  • Каталог Фрилансеров
  • If you want to buy some product or script
  • Администраторам
VBsupport перешел с домена .ORG на родной .RU Ура! Пожалуйста, обновите свои закладки - VBsupport.ru
Блок РКН снят, форум доступен на всей территории России, включая новые терртории, без VPN
На форуме введена премодерация ВСЕХ новых пользователей

Почта с временных сервисов, типа mailinator.com, gawab.com и/или прочих, которые предоставляют временный почтовый ящик без регистрации и/или почтовый ящик для рассылки спама, отслеживается и блокируется, а так же заносится в спам-блок форума, аккаунты удаляются
for English speaking users:
You may be surprised with restriction of access to the attachments of the forum. The reason is the recent change in vbsupport.org strategy:

- users with reputation < 10 belong to "simple_users" users' group
- if your reputation > 10 then administrator (kerk, Luvilla) can decide to move you into an "improved" group, but only manually

Main idea is to increase motivation of community members to share their ideas and willingness to support to each other. You may write an article for the subject where you are good enough, you may answer questions, you may share vbulletin.com/org content with vbsupport.org users, receiving "thanks" equal your reputation points. We should not only consume, we should produce something.

- you may:
* increase your reputation (doing something useful for another members of community) and being improved
* purchase temporary access to the improved category:
10 $ for 3 months. - this group can download attachments, reputation/posts do not matter.
20 $ for 3 months. - this group can download attachments, reputation/posts do not matter + adds eliminated + Inbox capacity increased + files manager increased permissions.

Please contact kerk or Luvilla regarding payments.

Important!:
- if your reputation will become less then 0, you will be moved into "simple_users" users' group automatically.*
*for temporary groups (pre-paid for 3 months) reputation/posts do not matter.
Уважаемые пользователи!

На форуме открыт новый раздел "Каталог фрилансеров"

и отдельный раздел для платных заказов "Куплю/Закажу"

Если вы хотите приобрести какой то скрипт/продукт/хак из каталогов перечисленных ниже:
Каталог модулей/хаков
Ещё раз обращаем Ваше внимание: всё, что Вы скачиваете и устанавливаете на свой форум, Вы устанавливаете исключительно на свой страх и риск.
Сообщество vBSupport'а физически не в состоянии проверять все стили, хаки и нули, выкладываемые пользователями.
Помните: безопасность Вашего проекта - Ваша забота.
Убедительная просьба: при обнаружении уязвимостей или сомнительных кодов обязательно отписывайтесь в теме хака/стиля
Спасибо за понимание
 
 
 
 
Gostemilov
Специалист
Default Как вывести в memberlist количество созданных юзером тем
0

Не постов (это предусмотрено штатно) а именно тем?

Ясное дело, что копать надо memberlist.php , но я взглянул туда и чуть не заплакал в голос, поскольку тоже захотел того, что курил Кир Дарби, когда это писал.

Code:
	$users = $db->query_read_slave("
		SELECT user.*,usertextfield.*,userfield.*, user.userid, options,
			IF(user.displaygroupid=0, user.usergroupid, user.displaygroupid) AS displaygroupid, infractiongroupid
		$repcondition
		" . iif($show['avatarcol'], ',avatar.avatarpath,NOT ISNULL(customavatar.userid) AS hascustomavatar,customavatar.dateline AS avatardateline, customavatar.width AS avwidth, customavatar.height AS avheight') ."
		" . iif($show['profilepiccol'], ', pp_profilepic.requirement AS profilepicrequirement, customprofilepic.userid AS profilepic, customprofilepic.dateline AS profilepicdateline, customprofilepic.width AS ppwidth, customprofilepic.height AS ppheight') . "
		$lastvisitcond
		$agecondition
		" . iif($usergroupid, ", NOT ISNULL(usergroupleader.usergroupid) AS isleader") . "
		$hook_query_fields
		FROM " . TABLE_PREFIX . "user AS user
		LEFT JOIN " . TABLE_PREFIX . "usertextfield AS usertextfield ON(usertextfield.userid=user.userid)
		LEFT JOIN " . TABLE_PREFIX . "userfield AS userfield ON(userfield.userid=user.userid)
		" . iif($show['reputationcol'], "LEFT JOIN " . TABLE_PREFIX . "reputationlevel AS reputationlevel ON(user.reputationlevelid=reputationlevel.reputationlevelid) ") . "
		" . iif($show['avatarcol'], "LEFT JOIN " . TABLE_PREFIX . "avatar AS avatar ON(avatar.avatarid = user.avatarid) LEFT JOIN " . TABLE_PREFIX . "customavatar AS customavatar ON(customavatar.userid = user.userid)") . "
		" . iif($show['profilepiccol'], "
			LEFT JOIN " . TABLE_PREFIX . "customprofilepic AS customprofilepic ON (user.userid = customprofilepic.userid)
			LEFT JOIN " . TABLE_PREFIX . "profileblockprivacy AS pp_profilepic ON
				(pp_profilepic.userid = user.userid AND pp_profilepic.blockid = 'profile_picture')") . "
		" . iif($usergroupid, "LEFT JOIN " . TABLE_PREFIX . "usergroupleader AS usergroupleader ON (user.userid = usergroupleader.userid AND usergroupleader.usergroupid=$usergroupid) ") . "
		$hook_query_joins
		WHERE $condition
			AND (user.usergroupid IN ($ids)" . (defined('MEMBERLIST_INCLUDE_SECONDARY') ? (" OR FIND_IN_SET(" . implode(', user.membergroupids) OR FIND_IN_SET(', $idarray) . ", user.membergroupids)") : '') . ")
			$hook_query_where
		ORDER BY $sqlsort $sortorder $secondarysortsql
		LIMIT " . ($limitlower - 1) . ", $perpage
	");
Bot
Yandex Bot Yandex Bot is online now
 
Join Date: 05.05.2005
Реклама на форуме А что у нас тут интересного? =)
 
 
Sellrion
Kernel panic
 
Sellrion's Avatar
Default
1

Quote:
Originally Posted by Gostemilov View Post
а именно тем?
Ну что-то вроде:
PHP Code:
SELECT COUNT(*) FROM thread WHERE userid 
Quote:
Originally Posted by Gostemilov View Post
Ясное дело, что копать надо memberlist.php
Странный вывод.
Quote:
Originally Posted by Gostemilov View Post
что курил Кир Дарби
Фигня, в showthread.php загляните.)
 
 
Gostemilov
Специалист
Default
0

Нет, посчитать сколько тем у юзера SQL запросом я могу, но вот как или где это присобачить в memberlist - у меня отказывает соображалка

Я просто прикинул, что при выводе (условно) 100 юзеров на страницу мне придется делать 100 запросов. Да за меньшее к стенке ставить надо!
 
 
YURSHAT
Coder
 
YURSHAT's Avatar
Default
3

Quote:
Originally Posted by Gostemilov View Post
Я просто прикинул, что при выводе (условно) 100 юзеров на страницу мне придется делать 100 запросов
Можно не делать запросов вообще, если использовать группировку. Пример запроса
PHP Code:
$users $db->query_read_slave("
    SELECT user.username, COUNT(thread.threadid) AS threadcount
    FROM " 
TABLE_PREFIX "user AS user
    LEFT JOIN " 
TABLE_PREFIX "thread AS thread ON(thread.postuserid = user.userid)
    WHERE userid IN(-1,1,2)
    GROUP BY user.userid
"
); 
Результат

То есть, создаем модуль на хуке memberlist_fetch
Код модуля:
PHP Code:
$hook_query_fields .= ", COUNT(thread.threadid) AS threadcount";
$hook_query_joins .= " LEFT JOIN " TABLE_PREFIX "thread AS thread ON(thread.postuserid = user.userid)";
$hook_query_where .= " GROUP BY user.userid"
Так как для добавления группировки нет соответствующего $hook, можно добавить его на $hook_query_where. Но будьте внимательны, если у вас есть хаки, которые используют этот самый $hook_query_where

Last edited by YURSHAT : 08-15-2015 at 08:20 PM.
 
 
BTC
СпециалистЪ
 
BTC's Avatar
Default
1

@Gostemilov,
Quote:
Originally Posted by Gostemilov View Post
Я просто прикинул, что при выводе (условно) 100 юзеров на страницу мне придется делать 100 запросов.
Нет, видите переменные $hook_query_fields и $hook_query_joins ?
Если заджойнитесь туда, то вытягивать будет наряду с общим запросом, и по этому не придется делать отдельно 100 запросов.
 
 
YURSHAT
Coder
 
YURSHAT's Avatar
Default
2

Quote:
Originally Posted by BTC View Post
и по этому не придется делать отдельно 100 запросов.
А я выше не об этом написал?
Quote:
Originally Posted by YURSHAT View Post
Можно не делать запросов вообще
Quote:
Originally Posted by BTC View Post
Если заджойнитесь туда
И дал пример джойна
 
 
BTC
СпециалистЪ
 
BTC's Avatar
Default
0

@YURSHAT, Так одновременно написали, минута в минуту, не?
 
 
YURSHAT
Coder
 
YURSHAT's Avatar
Default
2

Оффтоп
 
 
BTC
СпециалистЪ
 
BTC's Avatar
Default
0

@YURSHAT,
Quote:
Originally Posted by YURSHAT View Post
Последний раз редактировалось YURSHAT; Сегодня в 19:20..
 
 
Sven
Front-End Developer
 
Sven's Avatar
Default
1

@BTC, пример запроса был изначально. Дальше был добавлен код модуля
 


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off




All times are GMT +4. The time now is 11:30 AM.


Powered by vBulletin® Version 3.0.7
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.