Top Five on Index

Поддержка старых модов или модов, созданных авторами не из нашего сообщества, а также любые вопросы, связанные с модами для phpBB 3.0.x, кроме относящихся к форуму Для авторов (phpBB 3.0.x).
Правила форума
Местная Конституция | Шаблон запроса | Документация (phpBB3) | Переход на 3.0.6 и выше | FAQ-3 (phpbb3) | Как задавать вопросы | Как устанавливать моды

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
Аватара пользователя
Petruxa12
phpBB 2.0.2
Сообщения: 331
Стаж: 15 лет 4 месяца
Откуда: Москва
Благодарил (а): 156 раз
Поблагодарили: 6 раз

Re: Top Five on Index

Сообщение Petruxa12 »

Спасибо! Получилось!
Сделал везде по 10, Новые сообщения и активистов форума показывает по 10,а вот новых зарегистрированных почему-то 5 как и было,хотя я число 10 поставил
:idea: phpBB 3.2.7 :idea:
Петрович
phpBB 2.0.0
Сообщения: 244
Стаж: 19 лет 10 месяцев
Откуда: НСО, п. Витаминка
Благодарил (а): 10 раз
Поблагодарили: 14 раз

Re: Top Five on Index

Сообщение Петрович »

Для изменения кол-ва новых пользователей необходимо изменить значение в строке (в оригинальном файле она встречается дважды):

Код: Выделить всё

$result = $db->sql_query_limit($sql, 5);
Аватара пользователя
Petruxa12
phpBB 2.0.2
Сообщения: 331
Стаж: 15 лет 4 месяца
Откуда: Москва
Благодарил (а): 156 раз
Поблагодарили: 6 раз

Re: Top Five on Index

Сообщение Petruxa12 »

хммм,у меня их три. И все три стоят по 10.

Код: Выделить всё

[size=85]<?php
/**
*
* @package phpBB3
* @version $Id:
* @copyright (c) 2010 Rich McGirr
* @license http://opensource.org/licenses/gpl-license.php GNU Public License
*
*/

/**
* @ignore
*/
if (!defined('IN_PHPBB'))
{
	exit;
}

/**
* Include only once.
*/
if (!defined('INCLUDES_TOP_FIVE_PHP'))
{
	define('INCLUDES_TOP_FIVE_PHP', true);
	
	global $auth, $cache, $user, $db, $phpbb_root_path, $phpEx, $template;

    $user->add_lang('mods/top_five');

	// grab auths that allow a user to read a forum
	$forum_array = array_unique(array_keys($auth->acl_getf('!f_read', true)));

	// we have auths, change the sql query below
	$sql_and = '';
	if (sizeof($forum_array))
	{
		$sql_and = ' AND ' . $db->sql_in_set('t.forum_id', $forum_array, true);
	}
	// grab all posts that meet criteria and auths
	$sql_ary = array(
		'SELECT'	=> 'u.user_id, u.username, u.user_colour, t.topic_title, t.forum_id, t.topic_last_post_id, t.topic_last_post_time, t.topic_last_poster_name',
		'FROM'		=> array(TOPICS_TABLE => 't'),
		'LEFT_JOIN'	=> array(
			array(
				'FROM'	=> array(USERS_TABLE => 'u'),
				'ON'	=> 't.topic_last_poster_id = u.user_id',
   			),
		),
		'WHERE'		=> 't.topic_approved = 1 AND t.topic_status <> ' . ITEM_MOVED . ' ' . $sql_and,
		'ORDER_BY'	=> 't.topic_last_post_time DESC',
	);

	$result = $db->sql_query_limit($db->sql_build_query('SELECT', $sql_ary), 10);
	$is_row = false;
    while( $row = $db->sql_fetchrow($result) )
    {
		$is_row = true;
		$view_topic_url = append_sid("{$phpbb_root_path}viewtopic.$phpEx", 'f=' . $row['forum_id'] . '&p=' . $row['topic_last_post_id'] . '#p' . $row['topic_last_post_id']);
		$topic_title = censor_text($row['topic_title']);
		$is_guest = $row['user_id'] != ANONYMOUS ? false : true;
			
       	$template->assign_block_vars('top_five_topic',array(
       		'U_TOPIC' 		=> $view_topic_url,
       		'USERNAME_FULL'	=> $is_guest ? $user->lang['BY'] . ' ' . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour'], $row['topic_last_poster_name']) : $user->lang['BY'] . ' ' . get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']),
			'LAST_TOPIC_TIME'	=> $user->format_date($row['topic_last_post_time']),
       		'TOPIC_TITLE' 	=> $user->lang['IN'] . ' ' . $topic_title));
    }

    $db->sql_freeresult($result);

	// if user doesn't have permission to read any forums, show a message
	if (!$is_row)
	{
		$template->assign_block_vars('top_five_topic', array(
			'NO_TOPIC_TITLE'	=> $user->lang['NO_TOPIC_EXIST'],
		));
	}
	// top five posters
	// an array of user types we dont' bother with
	// could add board founder (USER_FOUNDER) if wanted
	$ignore_users = array(USER_IGNORE, USER_INACTIVE);
	
	if (($user_posts = $cache->get('_top_five_posters')) === false)
	{
	    $user_posts = array();

		// grab users with most posts
	    $sql = 'SELECT user_id, username, user_colour, user_posts
	       	FROM ' . USERS_TABLE . '
			WHERE ' . $db->sql_in_set('user_type', $ignore_users, true) . '
				AND user_posts <> 0
	       ORDER BY user_posts DESC';
		$result = $db->sql_query_limit($sql, 10);

		while ($row = $db->sql_fetchrow($result))
		{
			$user_posts[$row['user_id']] = array(
				'user_id'		=> $row['user_id'],
                'username'		=> $row['username'],
                'user_colour'	=> $row['user_colour'],
				'user_posts'    => $row['user_posts'],
			);
		}
        $db->sql_freeresult($result);

		// cache this data for five minutes, this improves performance
		$cache->put('_top_five_posters', $user_posts, 300);
	}

	foreach ($user_posts as $row)
	{
		$username_string = get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);

		$template->assign_block_vars('top_five_active',array(
			'S_SEARCH_ACTION'	=> append_sid("{$phpbb_root_path}search.$phpEx", 'author_id=' . $row['user_id'] . '&sr=posts'),
			'POSTS' 			=> $row['user_posts'],
			'USERNAME_FULL'		=> $username_string)
		);
    }

    // newest registered users
	if (($newest_users = $cache->get('_top_five_newest_users')) === false)
	{
	    $newest_users = array();

	    // grab most recent registered users
		$sql = 'SELECT user_id, username, user_colour, user_regdate
			FROM ' . USERS_TABLE . '
			WHERE ' . $db->sql_in_set('user_type', $ignore_users, true) . '
				AND user_inactive_reason = 0
			ORDER BY user_regdate DESC';
		$result = $db->sql_query_limit($sql, 10);

		while ($row = $db->sql_fetchrow($result))
		{
			$newest_users[$row['user_id']] = array(
				'user_id'				=> $row['user_id'],
				'username'				=> $row['username'],
     			'user_colour'			=> $row['user_colour'],
                'user_regdate'			=> $row['user_regdate'],
			);
		}
	    $db->sql_freeresult($result);

		// cache this data for ever, cache is purged when adding or deleting users
		$cache->put('_top_five_newest_users', $newest_users);
	}

	foreach ($newest_users as $row)
	{
		$username_string = get_username_string('full', $row['user_id'], $row['username'], $row['user_colour']);

		$template->assign_block_vars('top_five_newest',array(
			'REG_DATE'			=> $user->format_date($row['user_regdate']),
			'USERNAME_FULL'		=> $username_string)
		);
	}
}
?>[/size]
:idea: phpBB 3.2.7 :idea:
Петрович
phpBB 2.0.0
Сообщения: 244
Стаж: 19 лет 10 месяцев
Откуда: НСО, п. Витаминка
Благодарил (а): 10 раз
Поблагодарили: 14 раз

Re: Top Five on Index

Сообщение Петрович »

Форумный кэш чистили после изменений в файлах?
Аватара пользователя
Petruxa12
phpBB 2.0.2
Сообщения: 331
Стаж: 15 лет 4 месяца
Откуда: Москва
Благодарил (а): 156 раз
Поблагодарили: 6 раз

Re: Top Five on Index

Сообщение Petruxa12 »

опа! Помогло! не задумался)) а теперь как сделать чтобы новые сообщения просвечивались? Хотя бы как здесь или полностью предложение загоралось красным или каким нибудь цветом
:idea: phpBB 3.2.7 :idea:
Аватара пользователя
Айдар
Former team member
Сообщения: 1687
Стаж: 15 лет 9 месяцев
Откуда: KZN
Благодарил (а): 93 раза
Поблагодарили: 189 раз

Re: Top Five on Index

Сообщение Айдар »

Это уже отдельный мод.
Прочитайте на будущее внимательно FAQ
In Web We Trust
Аватара пользователя
Petruxa12
phpBB 2.0.2
Сообщения: 331
Стаж: 15 лет 4 месяца
Откуда: Москва
Благодарил (а): 156 раз
Поблагодарили: 6 раз

Re: Top Five on Index

Сообщение Petruxa12 »

а какой мод не подскажите? В Faq'e ничего не нашёл нужного,или я слепой?)
:idea: phpBB 3.2.7 :idea:
Аватара пользователя
Айдар
Former team member
Сообщения: 1687
Стаж: 15 лет 9 месяцев
Откуда: KZN
Благодарил (а): 93 раза
Поблагодарили: 189 раз

Re: Top Five on Index

Сообщение Айдар »

Имею ввиду, что нужно разрабатывать такой мод, и парой строчек кода не обойдется.
FAQ рекомендую прочитать для другого - дабы не прослыть танкистом и не нарваться на предупреждение (см. миниправила вверху этой страницы). ;)
In Web We Trust
Аватара пользователя
Petruxa12
phpBB 2.0.2
Сообщения: 331
Стаж: 15 лет 4 месяца
Откуда: Москва
Благодарил (а): 156 раз
Поблагодарили: 6 раз

Re: Top Five on Index

Сообщение Petruxa12 »

Жаль,это единственный минус.! но всё равно спасибо за помощь!
:idea: phpBB 3.2.7 :idea:
Аватара пользователя
Slava9
phpBB 2.0.2
Сообщения: 321
Стаж: 17 лет 8 месяцев
Откуда: Киев
Благодарил (а): 47 раз

Re: Top Five on Index

Сообщение Slava9 »

Скажите, а как сделать такой же блок, но с выводом Последние темы, Объявления, Популярные темы?
Буду очень благодарна за помощь!

Добавлено спустя 50 минут:
еще бы хотела здесь же выводить списочек именниников на пару дней
Петрович
phpBB 2.0.0
Сообщения: 244
Стаж: 19 лет 10 месяцев
Откуда: НСО, п. Витаминка
Благодарил (а): 10 раз
Поблагодарили: 14 раз

Re: Top Five on Index

Сообщение Петрович »

Slava9 писал(а):Последние темы, Объявления, Популярные темы?
Это другой модуль, кажется этот.
max4
phpBB 1.0.0
Сообщения: 1
Стаж: 14 лет 11 месяцев

Re: Top Five on Index

Сообщение max4 »

Установил Сборку мода на четыре колонки от Пчелкина, в Просилвер все нормально, в сабсилвер2 почему-то таблица выводится два раза - сразу под списком форумов и второй раз в самом низу, после статистики. Все шаблоны проверил несколько раз, кеш чистил. Версия phpBB 3.0.9.
До этого установил мод Палыча Спаисбо за сообщения, в просилвер все работает, в сабсилвер видны сверху графы Топлист и Благодарности, однако не видно самой кнопки спасибо, т. е. голосовать за сообщения почему-то нельзя. Перепроверил также все шаблоны несколько раз.
Аватара пользователя
masterwind
phpBB 1.2.0
Сообщения: 14
Стаж: 15 лет 4 месяца
Благодарил (а): 1 раз

Re: Top Five on Index

Сообщение masterwind »

Помогите пожалуйста с этим модом.
Проблема следующая: установил этот мод, подправил шаблон как следует, все работает на ура, но вот вдруг столкнулся со следующим, при появлении ссылки на тему которая находится в скрытом приватном форуме (и на форум этот доступ имеют только члены отдельной группы) любой пользователь и гость может прочитать эту тему перейдя по ссылке из таблички Топ Файв.
Проблему можно посмотреть у меня на форуме, адрес в профиле, логин:test пароль:1test1
Версия 3,0,8
Аватара пользователя
masterwind
phpBB 1.2.0
Сообщения: 14
Стаж: 15 лет 4 месяца
Благодарил (а): 1 раз

Re: Top Five on Index

Сообщение masterwind »

Помогите растолковать эти строки, по ходу здесь такое - "если пользователь не имеет прав доступа чтения форумов, то вывести следующее сообщение"

Код: Выделить всё

	// if user doesn't have permission to read any forums, show a message
	if (!$is_row)
	{
		$template->assign_block_vars('top_five_topic', array(
			'NO_TOPIC_TITLE'	=> $user->lang['NO_TOPIC_EXIST'],
		));
	}
При желании юзера без прав просмотра должно выдавать сообщение - "Нет новых сообщений для просмотра"
Может этот кусок как то подправить чтобы не пускало юзеров в скрытые форумы???
Аватара пользователя
masterwind
phpBB 1.2.0
Сообщения: 14
Стаж: 15 лет 4 месяца
Благодарил (а): 1 раз

Re: Top Five on Index

Сообщение masterwind »

Все, вопрос снят, уже решил проблему.
Проблема заключалась в правах, не поставил права доступа на подфорумы, думал что права доступа наследуются от родительского на подфорумы, а оказалось что не так. Подправил права и о чудо, работает как надо.

Вернуться в «Поддержка модов для phpBB 3.0.x»