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

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

#21458 Edrard 11 дек 2012, 14:57
Ну, в общем-то как всегда, описывайте свое горе тут

- Не забывайте выставить права для 777 на /cache и /admin/sql

Не забудьте, очистить папку cache!!!

P.S. Постарайтесь писать здесь только проблемы которые возникают с модулем.

Известные ошибки:

1. Откройте файл news.php найдите код:
Код: Выделить всё<?php if ($config['lang'] == 'ru') { ?>
<script type="text/javascript" src="./js/jquery-ui-ru.js"></script>
 <?php }; ?>
 

Поменяйте на:
Код: Выделить всё 
<script type="text/javascript" src="./js/jquery-ui-ru.js"></script>
 


2. в файле poss.php
Код: Выделить всё<td colspan="6" align="Center"><?php echo $val['no_province'];</td>

заменить на
Код: Выделить всё<td colspan="6" align="Center"><?php echo $lang['no_province'];?></td>



Обе ошибки исправлены с 13:37 +2 GTM, 13.12.2012, архив с модулем обновлен
#21459 Exinaus 11 дек 2012, 15:15
О как. Ну, не у спел свои доработки добавить, так не успел.

Я просмотрел изменения, shw, у меня вопрос. Ты написал что в файле крона, при выполнении более двух ALTER TABLE выдавалась ошибка. А в основном файле, в insert_stat функции ошибок нет, там же похожая конструкция? Или там ровно два alter-a, и это не выдает ошибку?
#21460 shw 11 дек 2012, 16:19
Exinaus писал(а):О как. Ну, не у спел свои доработки добавить, так не успел.

Я просмотрел изменения, shw, у меня вопрос. Ты написал что в файле крона, при выполнении более двух ALTER TABLE выдавалась ошибка. А в основном файле, в insert_stat функции ошибок нет, там же похожая конструкция? Или там ровно два alter-a, и это не выдает ошибку?

Я только багфиксы в основном вставлял, остальные плюшки пока положены в долгий ящик на согласование =)
Теперь по поводу мессаги.
В insert_stat идет ДВА alter table к РАЗНЫМ таблицам, что sql обрабатывает корректно
А в cron было примерно так (один из запросов):
"ALTER TABLE 001 ADD `00_w`;
ALTER TABLE 001 ADD `00_t`;"
Т.е. ДВА alter table к ОДНОЙ таблице, что лично у меня на всех тестовых полигонах приводило к ошибке.
#21461 Exinaus 11 дек 2012, 17:40
А, ну нормально. Я просто по памяти писал, помнил что похожее что то есть.
Просто сижу вот, мучаю добавление префиксов к таблицам в базе данных. Методов несколько нашел, все со своими подводными камнями. Вот сижу, кручу ... думаю какой лучше выбрать. Ибо выбирать самый простой в виде прямого добавления префиксов в все запросы немного лень, и душа требует не такого легкого решения.
#21463 Edrard 11 дек 2012, 18:05
Exinaus писал(а):О как. Ну, не у спел свои доработки добавить, так не успел.

Я просмотрел изменения, shw, у меня вопрос. Ты написал что в файле крона, при выполнении более двух ALTER TABLE выдавалась ошибка. А в основном файле, в insert_stat функции ошибок нет, там же похожая конструкция? Или там ровно два alter-a, и это не выдает ошибку?


Сорри Димка, у тебя Скайп был выключен пару дней, я с SHW, решил поправить текущие баги и зарелизить новую версию, как говориться небольшой подарок к Новому Году пользователям )
#21464 shw 11 дек 2012, 18:10
Exinaus писал(а):А, ну нормально. Я просто по памяти писал, помнил что похожее что то есть.
Просто сижу вот, мучаю добавление префиксов к таблицам в базе данных. Методов несколько нашел, все со своими подводными камнями. Вот сижу, кручу . думаю какой лучше выбрать. Ибо выбирать самый простой в виде прямого добавления префиксов в все запросы немного лень, и душа требует не такого легкого решения.

Префиксы добавить к запросам -это в принципе легко, но если хочешь действительно поломать голову -
Вот тебе список проблем:
1) Как прикрутить единый интерфейс? (ведь подразумевается, что с одной странички с помощью какого-то переключателя идет выбор текущего клана из списка)
2) Как разделять кэш для кланов?
3) Как делать запуск крона в этом ракурсе, если хостингер например чаще всего обрезает из крона все, что после "?", т.е. параметр php страничке не передать толком?
#21465 Exinaus 11 дек 2012, 18:41
Admin писал(а):Сорри Димка, у тебя Скайп был выключен пару дней, я с SHW, решил поправить текущие баги и зарелизить новую версию, как говориться небольшой подарок к Новому Году пользователям )

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

shw писал(а):Префиксы добавить к запросам -это в принципе легко, но если хочешь действительно поломать голову -

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

 Читать дальше


Паралельно повилось несколько удобных фич, в виде того что можно подсчитать количество запросов к базе, ну и посмотреть все запросы в бд.
Подводный камень в том, что он меняет все такие значения. Например в базу заноситься таб gk.php как prefix_gk.php. Так что надо внимательно проследить не только за названием таблиц, но и названием переменных и их содержимым. Я пока что больше таких замен в переменных/их значениях не нашел. А проблема с вкладкой решается переименованием из gk.php в например blocked.php.
Ну и в коде, пару запросов show tables like надо подправить, или добавить вначале % или сам префикс из $db->prefix, таких запросов всего пару штук, так что не критично.
Ну и нельзя использовать $db->execute() с передаваемыми параметрами в сам execute, но в модуле такого нет вообще, все идет через prepare()

Можно в место preg_replace использовать sprintf а все префиксы в запросы добавить в виде %1$s - но это как ручная правка запросов, и не отменяет проблем с установкой


shw писал(а):Вот тебе список проблем:
1) Как прикрутить единый интерфейс? (ведь подразумевается, что с одной странички с помощью какого-то переключателя идет выбор текущего клана из списка)
2) Как разделять кэш для кланов?
3) Как делать запуск крона в этом ракурсе, если хостингер например чаще всего обрезает из крона все, что после "?", т.е. параметр php страничке не передать толком?

1) Пфф. Элементарно. Все решается добавлением поля clan_id во все таблицы. И изменение запросов с добавлением where clan_id = ''. Ну кроме таблицы с танками, она то может быть одна на все кланы. Так что это скорее рутинная работа на дописание запросов, и проверок на изменение айди, если человек бегает из клана в клан.
А если ты о отображении клана, можно заранее вбить список кланов, отображаемое название и его айди. И при получении конфига проверять адресную строку на предмет $_POST или $_GET уникального, и если он задан, и в списке кланов, просто в самом коде менять например дефолтное значение на переданное в адресной строке. Страницу же постоянно обновлять не надо. А для аякс запросов просто добавить опять же параметр с айди клана.
Ну и формы обновить, добавить hidden атрибут с айди нужного клана.
В общем с точки зрения логики реализации это не так сложно.
2) Ваапще элементарно. Добавлять айди клана к названию кэша. Оно и уникально, и легко доступно в коде.
Код: Выделить всё$cache->clear($config['clan'].'_get_last_roster');

3) Несколько задач крона, или даже более хитрый запуск задач крона - каждые пять-десять минут в течении одного часа. Создаешь таблицу в бд, со всеми используемыми id клана, напротив id клана - дата последнего обновления данных в timestamp. Их тебе человек сам напишет, когда будет добавлять кланы. И при запуске крона брать один, который обновлялся позднее всего, max() и min() в sql запросах никто не отменял. И обновляешь именно этот клан. При успешном обновлении просто обновляешь это время (ну и никто не отменял проверку на разницу между последним обновлением и заданным интервалом в админке).
Да если на то пошло, можно заставить крон выполнять файл каждые 10 минут, в течении дня, и просто смотреть на разницу между последним обновлением и настройкой в админке. Будут "холостые" запуски. Серверу и скрипту пофиг, холостые запуски ресурсы сервера не забирают.
#21471 shw 11 дек 2012, 21:13
Exinaus писал(а):многа букаф

Осилил, понял, жду тестового варианта, если чем помочь - обращайся
#21478 shw 12 дек 2012, 09:51
Admiralio писал(а):Я что-то не нашел в списке техники танка M48A1 (Patton 3), так-же Т69; T54E1; и T57Heavy.

Если в клане их ни у кого нет, то в модуле они не отображаются

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

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

Реклама | Adv