Статистика аттачей на главной странице - Дизайн и модификация Invision Power Board

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

 

Правила раздела

Здесь обсуждаются вопросы по настройке и администрированию форумов IPB 3.x.
Пожалуйста, не оффтопьте, если зашли сюда случайно, и обратите внимание на соседние разделы.
Установка, настройка и обслуживание форумов IPB 2.x.
Оформление форумов, включая верстку скинов.
Размещение рекламы на форумах.
SEO оптимизация форума.
Техническая поддержка наших скинов и модов.

СвернутьПрикрепленные теги

статистика форума

Страница 1 из 1

Статистика аттачей на главной странице

#1 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 40
  • IPB version:3.4.x
 

Отправлено 17 Ноябрь 2015 - 18:37

Подниму тему. Подскажите, а как вывести в статистике главной страницы кол-во залитых на форум аттачей? Не могу отыскать по ключу...
0

#2 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 271
  • Регистрация: 20-Март 09
  • Репутация: 2 077
  • IPB version:3.1.x
 

Отправлено 17 Ноябрь 2015 - 20:46

Статистика аттачей не введется.
0

#3 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 40
  • IPB version:3.4.x
 

Отправлено 17 Ноябрь 2015 - 21:11

Я думал, раз у вложений есть id, то и можно как-то вывести их статистику. Спасибо.
0

#4 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 271
  • Регистрация: 20-Март 09
  • Репутация: 2 077
  • IPB version:3.1.x
 

Отправлено 17 Ноябрь 2015 - 21:40

У всех сущностей в бд есть id, на статистику он не влияет. Это уникальный идентификатор записи в таблице. Статистика вложений форумом не ведется, чтобы ее вывести нужно подсчитать количество строк в самой таблице - это +1 sql запрос.
1

#5 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 271
  • Регистрация: 20-Март 09
  • Репутация: 2 077
  • IPB version:3.1.x
 

Отправлено 17 Ноябрь 2015 - 22:08

Если интересен сам запрос:

Всего аттачей: {parse expression="( $row = $this->DB->buildAndFetch( array('select' => 'COUNT(*) as count', 'from' => 'attachments') ) ) ? $row['count'] : 0"}

При желание результат можно кешировать и обновлять раз в 30 минут, час.

<php>
if( $this->settings['show_totals'] )
{
	if( ! isset( $stats['total_attachments'] ) OR $stats['update_attachments'] < ( IPS_UNIX_TIME_NOW - 1 * 60 * 60 ) )
	{
		$row = $this->DB->buildAndFetch( array('select' => 'COUNT(*) as count', 'from' => 'attachments') );
		
		$stats['total_attachments'] = $row['count'];
		$this->caches['stats']['total_attachments']  = $stats['total_attachments'];
		$this->caches['stats']['update_attachments'] = IPS_UNIX_TIME_NOW;
		
		$this->cache->setCache( 'stats', $this->caches['stats'], array( 'array' => 1 ) );
	}
}
</php>

Всего аттачей: {$stats['total_attachments']}


Шаблон Список форумов -> boardIndexTemplate
1

#6 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 40
  • IPB version:3.4.x
 

Отправлено 18 Ноябрь 2015 - 12:22

Решил задачу немного иначе.
В boardIndexTemplate сделал вот так:

<li class='clear'>
				<span
class='value'>{$this->caches['stats']['total_attachments']}</span>
				{$this->lang->words['total_attachments']}
			</li>

, предварительно в Языки добавив строку:

Приложение: Форумы
Набор слов: public_boards
Ключ: total_attachments
Текст по умолчанию: Аттачей


Вот только при прикреплении аттачей, порядковый номер 30000 с небольшим, а в статистике на главной 28212... странно... :huh:
0

#7 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 40
  • IPB version:3.4.x
 

Отправлено 18 Ноябрь 2015 - 12:24

Может потому что удалял некоторые вложения?
0

#8 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 813
  • IPB version:I have no IPB
 

Отправлено 18 Ноябрь 2015 - 12:32

Просмотреть сообщениеОдмин сказал(а):

Вот только при прикреплении аттачей, порядковый номер 30000 с небольшим, а в статистике на главной 28212... странно...
Почитайте про автоинкремент.

Просмотреть сообщениеОдмин сказал(а):

Решил задачу немного иначе.

Я бы вообще перенес php в задачу, предварительно создав ее в планировщике. Дальше, если будет нужно, можно добавлять другие статистики.
1

#9 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 40
  • IPB version:3.4.x
 

Отправлено 18 Ноябрь 2015 - 12:39

newbie, хм, а ведь верно говорите. Благодарствую!
0

#10 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 271
  • Регистрация: 20-Март 09
  • Репутация: 2 077
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2015 - 14:50

Просмотреть сообщениеОдмин сказал(а):

Решил задачу немного иначе.

Просмотреть сообщениеОдмин сказал(а):

{$this->caches['stats']['total_attachments']}

Никак не могу понять как именно иначе, если используете тот же самый ключ кеша, а значит и пример который я приводил выше. То как оформили блок в шаблоне это уже дело вкуса и верстки шаблона.
0

#11 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 40
  • IPB version:3.4.x
 

Отправлено 18 Ноябрь 2015 - 18:11

Ну я собственно так и понял.
Только вот остался один вопрос!
Создал я файл в /admin/applications/forums/tasks/total_attachments.php и создал задачу с подобным путём и представленным выше php-кодом в планировщике. Но задача не запускается. Сижу копаю, пытаюсь разобраться в чем дело. Может неправильный пишу ключ в задаче?

Сообщение изменено: Одмин (18 Ноябрь 2015 - 18:20)

0

#12 Пользователь не на сайте   siv1987 ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins Team
  • Сообщений: 8 271
  • Регистрация: 20-Март 09
  • Репутация: 2 077
  • IPB version:3.1.x
 

Отправлено 18 Ноябрь 2015 - 18:42

Просмотреть сообщениеОдмин сказал(а):

Ну я собственно так и понял.

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

#13 Пользователь не на сайте   Одмин ответил: »

 
 
  • Advanced
  • ***
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: Пользователи
  • Сообщений: 574
  • Регистрация: 21-Апрель 13
  • Репутация: 40
  • IPB version:3.4.x
 

Отправлено 18 Ноябрь 2015 - 18:50

siv1987, о, теперь вроде всё работает! Сделал так:

<php>
if( $this->settings['show_totals'] )
{
    if( ! isset( $stats['total_attachments'] ) OR $stats['update_attachments'] < ( IPS_UNIX_TIME_NOW - 1 * 60 * 60 ) )
    {
        $row = $this->DB->buildAndFetch( array('select' => 'COUNT(*) as count', 'from' => 'attachments') );
        
        $stats['total_attachments'] = $row['count'];
        $this->caches['stats']['total_attachments']  = $stats['total_attachments'];
        $this->caches['stats']['update_attachments'] = IPS_UNIX_TIME_NOW;
        
        $this->cache->setCache( 'stats', $this->caches['stats'], array( 'array' => 1 ) );
    }
}
</php>
<li class='clear'>
				<span
class='value'>{$this->caches['stats']['total_attachments']}</span>
				{$this->lang->words['total_attachments']}
			</li>

0

#14 Пользователь не на сайте   newbie ответил: »

 
 
  • Advanced
  • Insert nick to fast reply form
  • Quote selected text to fast reply form
  • Группа: IPB Skins.ru Team
  • Сообщений: 2 166
  • Регистрация: 26-Октябрь 11
  • Репутация: 813
  • IPB version:I have no IPB
 

Отправлено 23 Ноябрь 2015 - 13:25

Просмотреть сообщениеОдмин сказал(а):

Создал я файл в /admin/applications/forums/tasks/total_attachments.php и создал задачу с подобным путём и представленным выше php-кодом в планировщике. Но задача не запускается. Сижу копаю, пытаюсь разобраться в чем дело. Может неправильный пишу ключ в задаче?

Если надумаете, то https://www.invision...tion/tasks-r202
2

Сообщить об этой теме:


Страница 1 из 1


Быстрый ответ

  

1 пользователей читают эту тему
0 зарегистрированных, 1 гостей, 0 скрытых


Контактная информация

Вопросы по работе сайта

+7 (917) 501-4765
C 10 до 20 в рабочие дни (время московское)

Техническая поддержка

Контактные данные специалистов

Дизайн форумов

IPB 3.x ¦ IPB 2.x

Бесплатные шаблоны

IPB 3.2 – 3.4 ¦ IPB 3.1 ¦ IPB 3.0 ¦ IPB 2.2 – 2.3 ¦ IPB 2.1 ¦ Клипарт
Лицензия на использование ¦ Ваша поддержка ¦ О проекте
Copyright © 2005-2016 IPBSkins.ru Team
При копировании материалов с сайта
прямая ссылка на источник обязательна