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

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

#2202 Exinaus 04 апр 2012, 18:08
Недавно меня попросили прикрутить к модулю статистики отображение по ротам в клане. Набросал, на коленке небольшой код, вроде работает. С косяками, но работает.
Но хочу предупредить, ники игроков и номера роты надо будет писать самостоятельно, в отдельном файле. Но может еще кому нибудь пригодится.
В общем, по пунктам.

1) Зайти в директорию function и создать там файл user.php

2) Открыть main.php

Найти код:
Код: Выделить всё    //MYSQL
    include_once(ROOT_DIR.'/function/mysql.php');
    //Connecting to MySQL

Сразу после этой строки добавить:
Код: Выделить всё    if(file_exists(ROOT_DIR.'/function/user.php')){
        include_once(ROOT_DIR.'/function/user.php');
   }

3) В папке css открыть style.css и в конец файла добавить:
Код: Выделить всё.rota {
background-image: url(./images/r.jpg);
color: white;
width: 17px;
height: 21px;
padding-top: 1px;
margin: 0px;
font-size: 8pt;
font-weight: bold;
font-family:arial;
}


4) Скачать http://m9co.16mb.com/images/r.jpg и записать в папку images своего модуля.

5) Открываем созданный user.php. В самое начало файла вставляем код:
Код: Выделить всё<?php
function show_rota($name,$rota) {
$result = 0;
foreach($rota as $lvl => $squad) {
if(in_array($name,$squad)) { $result = $lvl; }
}
return $result;
}
?>


6) Дальше начинаем добавлять информацию о том кто к какой роте принадлежит. В том же файле user.php опять в самое начало, обязательно выше того что вы вставили в предыдущем пункте, вставляем:
Код: Выделить всё<?
$rota = array ();

$rota['1'][] = 'Exinaus';
$rota['3'][] = 'Uninstalllol';
$rota['5'][] = 'Pois0n';
$rota['5'][] = 'Wertt';
?>


Тут я вставил кусок кода, который использовал для примера у себя, но я думаю остальным будет проще понять и редактировать, чем мне объяснять с нуля.
Итак, принадлежность к роте одного мембера записывается одной строкой: $rota['1'][] = 'Exinaus'; соотв. 1 - номер роты в клане, ну а второе ник пользователя. Вторая пустая скобка должна оставаться пустой, всегда, так надо.
$rota = array (); должно быть обязательно, не зависимо от того есть ли записи ниже или нет.

7) Начинаем добавлять отображение рот на вкладках. Я покажу для примера только на одной - "Общие результаты", для остальных необходимо добавлять по аналогии. И еще, для вкладки Состав описанное ниже не сработает, там все устроено немного по другому.

Итак, "Общие результаты" находится в файле overall.php в папке tabs, открываем и ищем код:
Код: Выделить всё    <table id="overall" class="tablesorter wid" cellspacing="1">             
        <thead> // ключевая строка для поиска
            <tr>
                //<--- Место вставки
                <th><?php echo $lang['name']; ?></th>

В указанное место вставляем:
Код: Выделить всё                <th>&nbsp;</th>


Находим дальше
Код: Выделить всё        <tbody> // ключевое слово для поиска
            <?php foreach($res as $name => $val){ ?>
                <tr>
                     // место вставки   
                    <td><a href="<?php echo $config['base'].$name.'/'; ?>"
                            target="_blank"><?php echo $name; ?></a></td>
                    <?php foreach($val['overall'] as $result){ ?>

В указанное место вставляем:
Код: Выделить всё         <td align="center" style="padding: 0px !important;">
         <?php $squad = show_rota($name,$rota); if($squad) { ?><div class="rota"><? echo $squad; ?></div><?php } ?>
         </td>

8) Возвращаем сортировку по никам:
смотрим в начало файла, там есть строки типа: <table id="overall" class="tablesorter wid" cellspacing="1">, вот самое важное что написано в id="", в данном случае там overall.
Открываем файл header.php находим там фразу: #overall (в начале обычно добавляется решетка).
Должно найти строку:
Код: Выделить всё            $("#overall").tablesorter({sortList:[[0,0]], widgets: ['zebra']});

Вот в 0,0 первое число увеличиваем на 1, получится:
Код: Выделить всё            $("#overall").tablesorter({sortList:[[1,0]], widgets: ['zebra']});
#25216 shw 24 фев 2013, 23:06
darka писал(а):а в roster.php добавить такое можно что-бы корректно работало? :)

Да. Инструкция универсальная. 7 пп применяется к roster.php. В 8пп ищем $("#roster") и вместо [0,0] будет три таких группы. К каждой первой цифре в паре добавляем 1.
#25217 darka 24 фев 2013, 23:23
к сожалению именно в ростер'е не работает(всех в одну роту приписывает), в других табах все норм.

7) Начинаем добавлять отображение рот на вкладках. Я покажу для примера только на одной - "Общие результаты", для остальных необходимо добавлять по аналогии. И еще, для вкладки Состав описанное ниже не сработает, там все устроено немного по другому.


если там все на много сложнее - обойдусь :)
#25221 shw 25 фев 2013, 09:14
darka писал(а):к сожалению именно в ростер'е не работает(всех в одну роту приписывает), в других табах все норм.

7) Начинаем добавлять отображение рот на вкладках. Я покажу для примера только на одной - "Общие результаты", для остальных необходимо добавлять по аналогии. И еще, для вкладки Состав описанное ниже не сработает, там все устроено немного по другому.


если там все на много сложнее - обойдусь :)

Только что проверил - все работает, но необходимы корректировки:

3пп меняем на
Код: Выделить всё.rota {
background-image: url(./images/r.jpg);
width: 17px;
height: 21px;
padding-top: 1px;
margin: 0px;
}

в 7пп все тоже самое, но вместо В указанное место вставляем:
применяем вот этот кусок:
Код: Выделить всё                   <td align="center" style="padding: 0px !important;">
                     <?php $squad = show_rota($val['account_name'],$rota); if($squad) { ?><div class="rota"><? echo $squad; ?></div><?php } ?>
                   </td>

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

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

Реклама | Adv