Вопросы, советы, возможные модификации и вообще все про модуль статистики кланов

Модератор: Exinaus, shw

#2224 shw 06 апр 2012, 17:08
Инструкция по добавлению к себе на форум под управлением phpBB небольшой панели статистики:
- Допустим мы имеем форум по адресу ФОРУМ.РУ;
- Цепляемся по фтп, создаем папку ФОРУМ.РУ/stat и туда заливаем модуль статистики клана;
- Конфигурируем (\stat\function\mysql.php). Базы для stat и для phpBB должны отличаться.
- Проверяем работу модуля, зайдя по ссылке ФОРУМ.РУ/stat. Если надо - инсталлируем базу и в идеале уже видим статистику клана.
- Далее, заходим на админку форума, смотрим какой стиль используются;
- Ищем файл в public_html/styles/используемый стиль/template/overall_header.html почти в самом конце файла перед строчкой
Код: Выделить всё<!-- IF not S_IS_BOT and S_USER_LOGGED_IN -->
вставляем:
Код: Выделить всё         <ul class="linklist navlinks">
            <li class="leftside" style="height:166px; width:98%">
                  <iframe style="display: block; height:100%; width:100%" src="http://ФОРУМ.РУ/stat/index_short.php " allowtransparency="true" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" >Ваш браузер не поддерживает плавающие фреймы!</iframe>
            </li>
            <li class="rightside"><a style="color:#003366;" href="http://ФОРУМ.РУ/stat/">Дополнительно &gt;&gt;</a></li>
         </ul>

абсолютные пути до форума необходимо поменять, иначе работать не будет;

- копируем три файла из архива на адрес ФОРУМ.РУ/stat/*

Для 3.0.0 без оформления
3.0.0 без стиля
(2.59 КБ) Скачиваний: 281

Для 3.0.0 со стилем от модуля
3.0.0 со стилем модуля
(2.71 КБ) Скачиваний: 291


- проверяем корректность зайдя по адресу ФОРУМ.РУ/stat/index_short.php, если возникли - ошибки и правим их
- И только после этого в админке форума очищаем кэш (В стилях)!

посмотреть как смотрится можно тут
#2421 Exinaus 07 апр 2012, 15:41
В общем, посидел немного над кодом, из того что понял в коде удалось собрать небольшой файл. Все что делает этот файл - просто достает данные из базы данных стандартными средствами модуля, ничего не пытаясь обновить. Для скорости работы данные о медалях и танках не подгружаются, вся остальная информация сохранена. Как и в самом модуле все данные хранятся в переменной $res, и аналогичная структура данных.

В принципе данный файл может служить основой для интеграции в любую CMS или любой форум.

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

Исходя из вышеприведенного примера достаточно в коде файла short.php в самом верху написать:
Код: Выделить всё<?php include_once('./tiny.php'); ?>

и при открытии short.php все будет работать. И ненадо никаких main_short, index_short и пр.

Небольшой фак по использованию include, и как писать пути к подключаемым файлам: У меня адрес начинается с точки "." - это значит что подключаемый файл находится в одной директории с файлом short.php. Если они находятся в разных директориях, можно начинать путь с двоеточия - это символ корневого каталога на хостинге, потом просто указать все папки до подключаемого файла, например: include_once('../stat/tiny.php');

Т.е.
Код: Выделить всё             <ul class="linklist navlinks">
                <li class="leftside" style="height:166px; width:98%">
                      <iframe style="display: block; height:100%; width:100%" src="http://ФОРУМ.РУ/stat/short.php " allowtransparency="true" scrolling="no" marginwidth="0" marginheight="0" frameborder="0" vspace="0" hspace="0" >Ваш браузер не поддерживает плавающие фреймы!</iframe>
                </li>
                <li class="rightside"><a style="color:#003366;" href="http://ФОРУМ.РУ/stat/">Дополнительно &gt;&gt;</a></li>
             </ul>

И все будет выводится в фрэйме. Скачать сам файлик вот тут:
tiny.zip
#2431 shw 09 апр 2012, 10:45
На самом деле мне глубоко копнуть тоже хотелось, но не позволяли слабые познания в РНР.
Потихоньку учусь на ваших примерах, поправках. Заодно и понятнее становится какой кусок кода за что отвечает.
Теперь я ясно вижу, что я вырезал кусок кода отвечающий совсем не за парсинг, хотя идея была именно в этом.

Поправьте, если я ошибаюсь - в вашей версии вы убрали:
1) сортировку (roster_sort),
2) рейтинг эффективности $res['eff_rating'],
3) $rand_keys (пока еще не понял за что отвечает),
4) всю ветку статистики по танкам - $res['tank'],
5) всю ветку статистики по медалям - $res['medn'] ?
#2432 Exinaus 09 апр 2012, 13:10
shw писал(а):На самом деле мне глубоко копнуть тоже хотелось, но не позволяли слабые познания в РНР.
Потихоньку учусь на ваших примерах, поправках. Заодно и понятнее становится какой кусок кода за что отвечает.
Теперь я ясно вижу, что я вырезал кусок кода отвечающий совсем не за парсинг, хотя идея была именно в этом.

Поправьте, если я ошибаюсь - в вашей версии вы убрали:
1) сортировку (roster_sort),
2) вроде дату обновления статистики по игроку (время последнего захода в игру),
3) ссылку на профиль, находящийся на сайте WG - $res['link'],
4) всю ветку статистики по танкам - $res['tank'],
5) всю ветку статистики по медалям - $res['medn'] ???

1) Да если честно немного не понял назначение самой сортировки. Она использовалась только в случае обновления данных. Если в модуле использовались данные из бд, то сортировка не применялась. Вот и убрал для быстродействия. В вашем примере вы все равно выводите данные отсортированные по показателям, вам сортировка по никам не нужна была.
2) Да нет вроде. Хотя может она доставалась в теле скрипта по другому, и я просто не добавил код ее вывода, надо бы внимательнее посмотреть код. Я проверю тогда, на досуге.
3) $res['link'] использовался только в теле скрипта, если необходимо было обновлять данные по пользователю. А зачем вам это? В коде любой вкладки видно как можно получить ссылку на профиль зная только имя пользователя.
4-5) Да. Это специально. А зачем она нужна? Основное назначение это файла, дать возможность вывести часть информации встроенной в портал/форум, то что выводится сейчас я считал достаточно. А полная информация есть в самом модуле. Зачем загружать скрипт, который подразумевался быстродейственным и легким, запросами к бд для вывода информации, которая в принципе то и не нужна?
Нет, если она нужна, то ее можно добавить, это не сложно. Просто не видел смысла тогда в ней.
#2433 shw 09 апр 2012, 13:45
Пока тестировал полностью ваш скрипт, вы уже ответили.
Насчет выпила, да я согласен, что это наиболее разумное решение для панели.

А теперь собственно зачем полностью оставлять функционал:
Я задумываюсь над реализацией следующей вещи:
а)Либо отобразить данные из MySQL + кнопка, запускающая парсер (ну то есть полноценную версию модуля со сбором и обновлением данных).
б)Либо отобразить данные из MySQL, а пока пользователь смотрит что есть, обновлять данные парсингом и после прогрузки оных - вывести обновленные данные

Вариант А сейчас на стадии тестирования, а вот с вариантом Б я не справлюсь - знаний не хватает, хотя хотелось бы.

Можете еще посмотреть - выпилил ли я с
(1.75 КБ) Скачиваний: 348
парсинг, оставив полностью функционал?
#2434 Exinaus 09 апр 2012, 13:51
Это все можно сделать. Но смысл? Достаточно открыть сам модуль (фактически перейти по ссылке) и информация обновится, и этот скрипт будет доставать уже обновленные данные.
Зачем нагружать пользователя в данном случае еще и обновлением информации?
#2435 Exinaus 09 апр 2012, 13:57
shw писал(а):Можете еще посмотреть - выпилил ли я с парсинг, оставив полностью функционал?

В принципе да, я бы убрал еще include_once(ROOT_DIR.'/function/tabs.php'); - зачем нам информация о вкладках? И нет проверки на то установлено соединение с бд нормально, или были ошибки.
Ну и я вообще не понимаю смысла оставлять полный функционал? Он не используется же. Только потребляет ресурсы.
#2436 shw 09 апр 2012, 14:03
1)Табы были оставлены специально, что бы можно было подменить основной main.php. А если быть точным, для тестов лежит рядом с основным main.php и отображает тоже самое, но из БД, без обновления.
2)Прошу прощения, наверно, я все таки не там ищу решение проблемы (мой вопрос от 06 апр 2012, 21:08).
в принципе, можете сами посмотреть:
http://avt.tcore.ru/stat/index.php
открывается на IE и на chrome ~20 секунд
http://avt.tcore.ru/stat/main.php
открывается на IE и на chrome ~2-4 секунды

кстати, мб разделить данную тему на "Интеграция модуля в phpbb" и "обсуждение интеграции модуля в phpbb"?
в первой объединить наши труды, а во второй вести обсуждение
#2444 Edrard 09 апр 2012, 20:44
Я кстати отвечал уже на ваш вопрос, почему это происходит, мне не сложно, скажу еще раз, это затычка от хостингов на которых нет доступа к функции shell_exec.
#2446 shw 10 апр 2012, 11:52
В первый раз, я видимо проглядел, что это был Ваш ответ на мой вопрос.
А как проверить есть ли доступ к вышеуказанной функции?
И чем она связана с отработкой
onload="location.href = url;"
и
document.write('<iframe src="' + url + '" style="visibility:hidden;"></iframe>');
?

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4

Реклама | Adv