Перейти к содержанию
Авторизация  

Stressweb < Подробная Настройка Модулей


Описание

Сегодня мы рассмотрим настройку модулей для StressWeb (я работаю сейчас с StressWeb 13. Лицензия)

Сегодня мы рассмотрим настройку модулей для StressWeb (я работаю сейчас с StressWeb 13. Лицензия)

 

Итак, с чего мы начнем?

Модуль Top PvP.

 

Предисловие:

 

Во многих шаблонах (да практически во всех) сейчас блок Top PvP выводит Имя персонажа, Количество убийств в PvP, Количество убийств в PK.

 

Дело в том, что по стандарту, модуль TopPvP в StressWeb не выводит количество убийств в PK. Сейчас мы это исправим

 

 

Приступим:

  • Заходим на FTP сайта (ну или открываем на своем компьютере папку со StressWeb'ом)
  • Открываем папку module
  • Открываем с помощью блокнота (редактируем) файл pvptop.php
  • Видим такую картину

 

<?php

/**

* STRESS WEB

* @author S.T.R.E.S.S.

* @copyright 2008 - 2012 STRESS WEB

* @version 13

* @web http://stressweb.ru

*/

if ( !defined("STRESSWEB") )

die( "Access denied..." );

 

/******************************

* НАСТРОЙКА МОДУЛЯ

******************************/

$T_ENABLE = false; // вкл/выкл модуль

$T_COUNT = 5; // количество результатов

$T_SID = 1; // ID сервера с которого выводить результаты

$T_CACHE = 2; // время кеширования в минутах, 0 - отключить

/******************************

* ВЫВОД РЕЗУЛЬТАТОВ

******************************/

if ( !$T_ENABLE )

$tpl->SetResult( 'pvptop' );

else {

$pvptop = $controller->GetCache( 'mod_pvptop' );

if ( $pvptop )

$tpl->SetResult( 'pvptop', $pvptop );

else {

 

$db->gdb( $T_SID );

 

$T_SEL = $gdb[$T_SID]->query( "SELECT `char_name`,`pvpkills` FROM `characters` ORDER BY `pvpkills` DESC LIMIT {$T_COUNT}" );

if ( $gdb[$T_SID]->num_rows($T_SEL) > 0 ) {

$T_N = 1;

while ( $T_RESULT = $gdb[$T_SID]->fetch($T_SEL) ) {

$tpl->LoadView( 'pvptop' );

$tpl->Block( 'main', false );

$tpl->Block( 'item' );

$tpl->Set( 'n', $T_N );

$tpl->Set( 'char_name', $T_RESULT['char_name'] );

$tpl->Set( 'pvp', $T_RESULT['pvpkills'] );

$tpl->Build( 'pvptop_item' );

$T_N++;

}

$tpl->LoadView( 'pvptop' );

$tpl->Block( 'item', false );

$tpl->Block( 'main' );

$tpl->Set( 'item', $tpl->GetResult('pvptop_item', true) );

$tpl->Build( 'pvptop' );

} else

$tpl->SetResult( 'pvptop' );

if ( $T_CACHE > 0 ) {

$controller->SetCache( 'mod_pvptop', $tpl->GetResult('pvptop'), $T_CACHE );

}

}

}

?>

 

Человек, который хотя-бы не много знаком с Php и основным синтаксисом MySQL, поймет, что теперь делать. Но большинство людей этого не знают.

 

Итак. Для начала настроим сам модуль (путем выставления значений переменным)

$T_ENABLE = false; // вкл/выкл модуль
$T_COUNT = 5; // количество результатов
$T_SID = 1; // ID сервера с которого выводить результаты
$T_CACHE = 2; // время кеширования в минутах, 0 - отключить

 

Теперь исправим запрос, что-бы их базы данных вытаскивало кроме Имени персонажа и Количества убийств в PvP, еще и Количество убийств в PK

 

В коде:

 $T_SEL = $gdb[$T_SID]->query( "SELECT `char_name`,`pvpkills` FROM `characters` ORDER BY `pvpkills` DESC LIMIT {$T_COUNT}" );

А точнее в самом запросе:

SELECT `char_name`,`pvpkills` FROM `characters` ORDER BY `pvpkills` DESC LIMIT {$T_COUNT}

Мы видим, что из таблицы characters забираются данные из столбцов char_name (имя персонажа) и pvpkills (количество убийств в PvP).

 

Теперь давайте добавим в запрос доставание данных из столбца pkkills (количество убийств в PK)

 

Делается это достаточно просто

В запросе:

SELECT `char_name`,`pvpkills` FROM `characters` ORDER BY `pvpkills` DESC LIMIT {$T_COUNT}

После:

`pvpkills`

Добавим:

,`pkkills`

И получим:

SELECT `char_name`,`pvpkills`,`pkkills` FROM `characters` ORDER BY `pvpkills` DESC LIMIT {$T_COUNT}

 

Теперь давайте добавим в скрипт замену тэга {pk} на количество убийств в PK.

 

В коде:

$tpl->LoadView( 'pvptop' );
$tpl->Block( 'main', false );
$tpl->Block( 'item' );
$tpl->Set( 'n', $T_N );
$tpl->Set( 'char_name', $T_RESULT['char_name'] );
$tpl->Set( 'pvp', $T_RESULT['pvpkills'] );
$tpl->Build( 'pvptop_item' );
$T_N++;

 

После:

 

$tpl->Set( 'char_name', $T_RESULT['char_name'] );
$tpl->Set( 'pvp', $T_RESULT['pvpkills'] );

 

Добавим:

 

$tpl->Set( 'pk', $T_RESULT['pkkills'] );

 

Получим:

 

$tpl->LoadView( 'pvptop' );
$tpl->Block( 'main', false );
$tpl->Block( 'item' );
$tpl->Set( 'n', $T_N );
$tpl->Set( 'char_name', $T_RESULT['char_name'] );
$tpl->Set( 'pvp', $T_RESULT['pvpkills'] );
$tpl->Set( 'pk', $T_RESULT['pkkills'] );
$tpl->Build( 'pvptop_item' );
$T_N++;

 

Теперь сохраняем скрипт и радуемся.

 

 

Готовый скрипт:

<?php
/**
* STRESS WEB
* @author S.T.R.E.S.S.
* @copyright 2008 - 2012 STRESS WEB
* @version 13
* @web http://stressweb.ru
*/
if ( !defined("STRESSWEB") )
die( "Access denied..." );

/******************************
* НАСТРОЙКА МОДУЛЯ
******************************/
$T_ENABLE = true; // вкл/выкл модуль
$T_COUNT = 10; // количество результатов
$T_SID = 1; // ID сервера с которого выводить результаты
$T_CACHE = 2; // время кеширования в минутах, 0 - отключить
/******************************
* ВЫВОД РЕЗУЛЬТАТОВ
******************************/
if ( !$T_ENABLE )
$tpl->SetResult( 'pvptop' );
else {
$pvptop = $controller->GetCache( 'mod_pvptop' );
if ( $pvptop )
$tpl->SetResult( 'pvptop', $pvptop );
else {

$db->gdb( $T_SID );

$T_SEL = $gdb[$T_SID]->query( "SELECT `char_name`,`pvpkills`,`pkkills` FROM `characters` ORDER BY `pvpkills` DESC LIMIT {$T_COUNT}" );
if ( $gdb[$T_SID]->num_rows($T_SEL) > 0 ) {
$T_N = 1;
while ( $T_RESULT = $gdb[$T_SID]->fetch($T_SEL) ) {
$tpl->LoadView( 'pvptop' );
$tpl->Block( 'main', false );
$tpl->Block( 'item' );
$tpl->Set( 'n', $T_N );
$tpl->Set( 'char_name', $T_RESULT['char_name'] );
$tpl->Set( 'pvp', $T_RESULT['pvpkills'] );
$tpl->Set( 'pk', $T_RESULT['pkkills'] );
$tpl->Build( 'pvptop_item' );
$T_N++;
}
$tpl->LoadView( 'pvptop' );
$tpl->Block( 'item', false );
$tpl->Block( 'main' );
$tpl->Set( 'item', $tpl->GetResult('pvptop_item', true) );
$tpl->Build( 'pvptop' );
} else
$tpl->SetResult( 'pvptop' );
if ( $T_CACHE > 0 ) {
$controller->SetCache( 'mod_pvptop', $tpl->GetResult('pvptop'), $T_CACHE );
}
}
}
?>

 

Тэги:

 

{char_name} - имя персонажа

{pvp} - количество убийств в PvP

{pk} - количество убийств в PK

 

 

 

Мануал написал собственноручно - JustWebProgrammer. Специально для L2Maxi.Ru



Рекомендуемые комментарии

Комментариев нет

×
×
  • Создать...