Top Five on Index

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

Ваш вопрос может быть удален без объяснения причин, если на него есть ответы по приведённым ссылкам (а вы рискуете получить предупреждение ;) ).
drmouse
phpBB 2.0.0
Сообщения: 211
Стаж: 14 лет 7 месяцев
Благодарил (а): 5 раз

Re: Top Five on Index

Сообщение drmouse »

Да сабсилвер 2
Вот как раз таки туда добавляю и идет по всему форуму эти последнии темы, после каждого подфорнума
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 13158
Стаж: 15 лет 1 месяц
Благодарил (а): 236 раз
Поблагодарили: 3750 раз

Re: Top Five on Index

Сообщение Татьяна5 »

Чтобы не повторялось на разных страницах -

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

<!-- IF SCRIPT_NAME == "index" -->
<tr>
    <td colspan="5">
        <!-- INCLUDE top_five_body.html -->
    </td>
</tr>
<!-- ENDIF -->
drmouse
phpBB 2.0.0
Сообщения: 211
Стаж: 14 лет 7 месяцев
Благодарил (а): 5 раз

Re: Top Five on Index

Сообщение drmouse »

так не разных страницах повторяется
а повторяется прям на форуме через каждую ветку подфорумов
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 13158
Стаж: 15 лет 1 месяц
Благодарил (а): 236 раз
Поблагодарили: 3750 раз

Re: Top Five on Index

Сообщение Татьяна5 »

Татьяна5 писал(а):Найти

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

<!-- BEGIN forumrow -->
Вставить до
Если повторяется - вставили после
Аватара пользователя
ВладимирТ
phpBB 2.0.4
Сообщения: 421
Стаж: 16 лет 3 месяца
Откуда: Москва
Благодарил (а): 52 раза
Поблагодарили: 75 раз

Re: Top Five on Index

Сообщение ВладимирТ »

Я тут вот цуть-цуть доработал данный мод, во как получилось, заодно и вся статистика, все кликабельно, моментальное обновление, дополнительная информация появляется в подсказках, фото, видео просматривается в сплывающем окне...

Может чего то забыл добавить?
Статистика.jpg
У вас нет необходимых прав для просмотра вложений в этом сообщении.
На вкус и цвет - разный CSS
Anvar
Former team member
Сообщения: 1964
Стаж: 16 лет 5 месяцев
Благодарил (а): 67 раз
Поблагодарили: 800 раз

Re: Top Five on Index

Сообщение Anvar »

ВладимирТ, Да забыл, архив добавить :)
Не пишите вопросы лично, если можете задать их на форуме!
Спецзаказы не интересуют!
Аватара пользователя
Татьяна5
Поддержка
Поддержка
Сообщения: 13158
Стаж: 15 лет 1 месяц
Благодарил (а): 236 раз
Поблагодарили: 3750 раз

Re: Top Five on Index

Сообщение Татьяна5 »

Снижение нагрузки от листа благодарностей (доработка https://www.phpbb.com/customise/db/mod/ ... 67#p182767 )

includes/top_five.php
Удалить код из инструкции и добавить вместо него

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

   // top five thanked users
   if (($user_thanked = $cache->get('_top_five_thanked')) === false)
   {
       $user_thanked = $user_ids = array();

      //$sql = 'SELECT COUNT(t.post_id) AS tally, u.user_id, u.username, u.user_colour
      //   FROM ' . THANKS_TABLE . ' t
      //   LEFT JOIN ' . USERS_TABLE . ' u ON t.poster_id = u.user_id         
      //   GROUP BY t.poster_id
      //   ORDER BY tally DESC';
	  $sql = 'SELECT poster_id, COUNT(user_id) AS tally
			FROM ' . THANKS_TABLE . ' 
			GROUP BY poster_id
			ORDER BY tally DESC';
      $result = $db->sql_query_limit($sql, 5);
	  
      while ($row = $db->sql_fetchrow($result))
      {
			$user_ids[] = (int) $row['poster_id'];
			$user_thanked[$row['poster_id']] = array(
                'user_id'      => $row['poster_id'],
                'username'      => '',
                'user_colour'   => '',
                'user_thanks'    => $row['tally'],
         );
      }
      $db->sql_freeresult($result); 

		if(is_array($user_ids) && sizeof($user_ids))
		{
			$sql = 'SELECT user_id, username, user_colour 
					FROM ' . USERS_TABLE . ' 
					WHERE  ' . $db->sql_in_set('user_id', $user_ids);
			$result = $db->sql_query($sql);
			while ($row = $db->sql_fetchrow($result))
			{
				$user_thanked[$row['user_id']]['username']		= $row['username'];
				$user_thanked[$row['user_id']]['user_colour']	= $row['user_colour'];
			}
			
			function tf_compare ($v1, $v2) 
			{
				if ($v1['user_thanks'] == $v2['user_thanks']) return 0;
				return ($v1['user_thanks'] < $v2['user_thanks'])? 1: -1;
			}

			usort($user_thanked, 'tf_compare');
		}

		  // cache this data for 60 minutes, this improves performance
		  $cache->put('_top_five_thanked', $user_thanked, 3600);
		}

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

      $template->assign_block_vars('top_five_thanked',array(
         'THANKS'          => $row['user_thanks'] > 1 ? sprintf($user->lang['THANKEDS'], $row['user_thanks']) : sprintf($user->lang['THANKED'], $row['user_thanks']),
         'USERNAME_FULL'      => $username_string)
      );
    }

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