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

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

Рекомендуемые сообщения

Добрый день, дамы и господа :)

Забанили прошлый аккуант и решил быть повежливее :)

 

Сегодня мы рассмотрим настройку модулей для 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

 

 

Скоро:

Настройка модуля Последние темы с форума

Установка WayToPay на StressWeb

И много много других интересных и познавательных мануалов :)

Изменено пользователем JustWebProgrammer
  • Upvote 7

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

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