Template/Update (Part 3)

* convert amalgamation more.php into separate endpoints
 * fix url of help articles
This commit is contained in:
Sarjuuk
2025-08-06 01:24:10 +02:00
parent 5713834f90
commit 81d9248541
22 changed files with 651 additions and 330 deletions

View File

@@ -0,0 +1,34 @@
<?php
namespace Aowow;
if (!defined('AOWOW_REVISION'))
die('illegal access');
class AboutusBaseResponse extends TemplateResponse
{
protected string $template = 'text-page-generic';
protected string $pageName = 'aboutus';
protected ?int $activeTab = parent::TAB_MORE;
protected array $breadcrumb = [2, 0];
public function __construct(string $pageParam)
{
parent::__construct($pageParam);
if ($pageParam)
$this->generateError();
}
protected function generate() : void
{
$this->h1 = Lang::main('moreTitles', $this->pageName);
array_unshift($this->title, $this->h1);
parent::generate();
}
}
?>

34
endpoints/faq/faq.php Normal file
View File

@@ -0,0 +1,34 @@
<?php
namespace Aowow;
if (!defined('AOWOW_REVISION'))
die('illegal access');
class FaqBaseResponse extends TemplateResponse
{
protected string $template = 'text-page-generic';
protected string $pageName = 'faq';
protected ?int $activeTab = parent::TAB_MORE;
protected array $breadcrumb = [2, 3];
public function __construct(string $pageParam)
{
parent::__construct($pageParam);
if ($pageParam)
$this->generateError();
}
protected function generate() : void
{
$this->h1 = Lang::main('moreTitles', $this->pageName);
array_unshift($this->title, $this->h1);
parent::generate();
}
}
?>

44
endpoints/help/help.php Normal file
View File

@@ -0,0 +1,44 @@
<?php
namespace Aowow;
if (!defined('AOWOW_REVISION'))
die('illegal access');
// these could also be defined as individual sub-pages ... haHA, no.
class HelpBaseResponse extends TemplateResponse
{
protected string $template = 'text-page-generic';
protected string $pageName = 'help';
protected ?int $activeTab = parent::TAB_MORE;
protected array $breadcrumb = [2, 13];
protected array $validCats = ['commenting-and-you', 'modelviewer', 'screenshots-tips-tricks', 'stat-weighting', 'talent-calculator', 'item-comparison', 'profiler', 'markup-guide'];
private string $catg = '';
public function __construct(string $pageParam)
{
parent::__construct($pageParam);
if (!$pageParam)
$this->generateError();
$pageId = array_search($pageParam, $this->validCats);
if ($pageId === false)
$this->generateError();
$this->catg = $pageParam;
}
protected function generate() : void
{
$this->h1 = Lang::main('moreTitles', $this->pageName, $this->catg);
array_unshift($this->title, $this->h1);
parent::generate();
}
}
?>

View File

@@ -0,0 +1,71 @@
<?php
namespace Aowow;
if (!defined('AOWOW_REVISION'))
die('illegal access');
class PrivilegeBaseResponse extends TemplateResponse
{
protected string $template = 'privilege';
protected string $pageName = 'privilege';
protected ?int $activeTab = parent::TAB_COMMUNITY;
protected array $breadcrumb = [3, 10];
protected array $validCats = [1, 2, /* 4, */ 5, 9, 10, 11, 12, 13, 14, 15, 16, 17];
public string $privReqPoints = '';
private int $repVal = 0;
private array $req2priv = array(
1 => 'REP_REQ_COMMENT', // write comments
2 => 'REP_REQ_EXT_LINKS', // post external links
// 4 => 'REP_REQ_NO_CAPTCHA', // NYI no captcha
5 => 'REP_REQ_SUPERVOTE', // votes count for more
9 => 'REP_REQ_VOTEMORE_BASE', // more votes per day
10 => 'REP_REQ_UPVOTE', // can upvote
11 => 'REP_REQ_DOWNVOTE', // can downvote
12 => 'REP_REQ_REPLY', // can reply
13 => 'REP_REQ_BORDER_UNCOMMON', // uncommon avatar border
14 => 'REP_REQ_BORDER_RARE', // rare avatar border
15 => 'REP_REQ_BORDER_EPIC', // epic avatar border
16 => 'REP_REQ_BORDER_LEGENDARY', // legendary avatar border
17 => 'REP_REQ_PREMIUM' // premium status
);
public function __construct(string $pageParam)
{
$this->getCategoryFromUrl($pageParam);
parent::__construct($pageParam);
if (!$pageParam)
$this->generateError();
// apply actual values
$this->repVal = Cfg::get($this->req2priv[$pageParam]);
}
protected function generate() : void
{
$this->h1 = Lang::privileges('_privileges', $this->category[0]);
array_unshift($this->title, $this->h1);
$this->breadcrumb[] = $this->category[0];
$this->privReqPoints = Lang::privileges('reqPoints', [Lang::nf($this->repVal)]);
parent::generate();
$this->result->registerDisplayHook('article', [self::class, 'articleHook']);
}
public static function articleHook(Template\PageTemplate &$pt, Markup &$article) : void
{
$article->apply(Cfg::applyToString(...));
}
}
?>

View File

@@ -0,0 +1,65 @@
<?php
namespace Aowow;
if (!defined('AOWOW_REVISION'))
die('illegal access');
class PrivilegesBaseResponse extends TemplateResponse
{
protected string $template = 'privileges';
protected string $pageName = 'privileges';
protected ?int $activeTab = parent::TAB_COMMUNITY;
protected array $breadcrumb = [3, 10, 0];
public array $privileges = [];
private array $req2priv = array(
1 => 'REP_REQ_COMMENT', // write comments
2 => 'REP_REQ_EXT_LINKS', // post external links
// 4 => 'REP_REQ_NO_CAPTCHA', // NYI no captcha
5 => 'REP_REQ_SUPERVOTE', // votes count for more
9 => 'REP_REQ_VOTEMORE_BASE', // more votes per day
10 => 'REP_REQ_UPVOTE', // can upvote
11 => 'REP_REQ_DOWNVOTE', // can downvote
12 => 'REP_REQ_REPLY', // can reply
13 => 'REP_REQ_BORDER_UNCOMMON', // uncommon avatar border
14 => 'REP_REQ_BORDER_RARE', // rare avatar border
15 => 'REP_REQ_BORDER_EPIC', // epic avatar border
16 => 'REP_REQ_BORDER_LEGENDARY', // legendary avatar border
17 => 'REP_REQ_PREMIUM' // premium status
);
public function __construct(string $pageParam)
{
parent::__construct($pageParam);
if ($pageParam)
$this->generateError();
// apply actual values and order by requirement ASC
foreach ($this->req2priv as &$var)
$var = Cfg::get($var);
asort($this->req2priv);
}
protected function generate() : void
{
$this->h1 = Lang::main('moreTitles', $this->pageName);
array_unshift($this->title, $this->h1);
foreach (array_filter($this->req2priv) as $id => $val)
$this->privileges[$id] = array(
User::getReputation() >= $val,
Lang::privileges('_privileges', $id),
$val
);
parent::generate();
}
}
?>

View File

@@ -0,0 +1,58 @@
<?php
namespace Aowow;
if (!defined('AOWOW_REVISION'))
die('illegal access');
class ReputationBaseResponse extends TemplateResponse
{
protected bool $requiresLogin = true;
protected string $template = 'list-page-generic';
protected string $pageName = 'reputation';
protected ?int $activeTab = parent::TAB_COMMUNITY;
protected array $breadcrumb = [3, 10];
public function __construct(string $pageParam)
{
parent::__construct($pageParam);
if ($pageParam)
$this->generateError();
}
protected function generate() : void
{
$this->h1 = Lang::main('moreTitles', $this->pageName);
array_unshift($this->title, $this->h1);
if ($repData = DB::Aowow()->select('SELECT `action`, `amount`, `date` AS "when", IF(`action` IN (?a), `sourceA`, 0) AS "param" FROM ?_account_reputation WHERE `userId` = ?d',
[SITEREP_ACTION_COMMENT, SITEREP_ACTION_UPVOTED, SITEREP_ACTION_DOWNVOTED], User::$id))
{
array_walk($repData, fn(&$x) => $x['when'] = date(Util::$dateFormatInternal, $x['when']));
$this->tabsTitle = Lang::main('yourRepHistory');
$this->lvTabs = new Tabs(['parent' => "\$\$WH.ge('tabs-generic')"], __forceTabs: true);
$this->lvTabs->addListviewTab(new Listview(array(
'id' => 'reputation-history',
'name' => '$LANG.reputationhistory',
'data' => $repData
), 'reputationhistory'));
}
parent::generate();
$this->result->registerDisplayHook('article', [self::class, 'articleHook']);
}
public static function articleHook(Template\PageTemplate &$pt, Markup &$article) : void
{
$article->apply(Cfg::applyToString(...));
}
}
?>

View File

@@ -0,0 +1,34 @@
<?php
namespace Aowow;
if (!defined('AOWOW_REVISION'))
die('illegal access');
class SearchboxBaseResponse extends TemplateResponse
{
protected string $template = 'text-page-generic';
protected string $pageName = 'searchbox';
protected ?int $activeTab = parent::TAB_MORE;
protected array $breadcrumb = [2, 16];
public function __construct(string $pageParam)
{
parent::__construct($pageParam);
if ($pageParam)
$this->generateError();
}
protected function generate() : void
{
$this->h1 = Lang::main('moreTitles', $this->pageName);
array_unshift($this->title, $this->h1);
parent::generate();
}
}
?>

View File

@@ -0,0 +1,34 @@
<?php
namespace Aowow;
if (!defined('AOWOW_REVISION'))
die('illegal access');
class SearchpluginsBaseResponse extends TemplateResponse
{
protected string $template = 'text-page-generic';
protected string $pageName = 'searchplugins';
protected ?int $activeTab = parent::TAB_MORE;
protected array $breadcrumb = [2, 8];
public function __construct(string $pageParam)
{
parent::__construct($pageParam);
if ($pageParam)
$this->generateError();
}
protected function generate() : void
{
$this->h1 = Lang::main('moreTitles', $this->pageName);
array_unshift($this->title, $this->h1);
parent::generate();
}
}
?>

View File

@@ -0,0 +1,34 @@
<?php
namespace Aowow;
if (!defined('AOWOW_REVISION'))
die('illegal access');
class TooltipsBaseResponse extends TemplateResponse
{
protected string $template = 'text-page-generic';
protected string $pageName = 'tooltips';
protected ?int $activeTab = parent::TAB_MORE;
protected array $breadcrumb = [2, 10];
public function __construct(string $pageParam)
{
parent::__construct($pageParam);
if ($pageParam)
$this->generateError();
}
protected function generate() : void
{
$this->h1 = Lang::main('moreTitles', $this->pageName);
array_unshift($this->title, $this->h1);
parent::generate();
}
}
?>

View File

@@ -0,0 +1,94 @@
<?php
namespace Aowow;
if (!defined('AOWOW_REVISION'))
die('illegal access');
class TopusersBaseResponse extends TemplateResponse
{
protected string $template = 'list-page-generic';
protected string $pageName = 'top-users';
protected ?int $activeTab = parent::TAB_COMMUNITY;
protected array $breadcrumb = [3, 11];
public function __construct(string $pageParam)
{
parent::__construct($pageParam);
if ($pageParam)
$this->generateError();
}
protected function generate() : void
{
$this->h1 = Lang::main('moreTitles', $this->pageName);
array_unshift($this->title, $this->h1);
$tabs = array(
[0, 'top-users-alltime', '$LANG.alltime_stc' ],
[time() - MONTH, 'top-users-monthly', '$LANG.lastmonth_stc'],
[time() - WEEK, 'top-users-weekly', '$LANG.lastweek_stc' ]
);
// expected by javascript but metrics are not used by us
$nullFields = array(
'uploads' => 0, // wow client cache uploads
'posts' => 0, // forum posts
'gold' => 0, // site achievements
'silver' => 0,
'copper' => 0
);
$this->lvTabs = new Tabs(['parent' => "\$\$WH.ge('tabs-generic')"], __forceTabs: true);
foreach ($tabs as [$time, $tabId, $tabName])
{
// stuff received
$res = DB::Aowow()->select(
'SELECT a.`id` AS ARRAY_KEY, a.`username`, a.`userGroups` AS "groups", a.`joinDate` AS "creation",
SUM(r.`amount`) AS "reputation", SUM(IF(r.`action` = ?d, 1, 0)) AS "comments", SUM(IF(r.`action` = ?d, 1, 0)) AS "screenshots", SUM(IF(r.`action` = ?d, 1, 0)) AS "reports"
FROM ?_account_reputation r
JOIN ?_account a ON a.`id` = r.`userId`
{ WHERE r.`date` > ?d }
GROUP BY a.`id`
ORDER BY reputation DESC
LIMIT ?d',
SITEREP_ACTION_COMMENT, SITEREP_ACTION_UPLOAD, SITEREP_ACTION_GOOD_REPORT,
$time ?: DBSIMPLE_SKIP, Cfg::get('SQL_LIMIT_SEARCH')
);
$data = [];
if ($res)
{
// stuff given
$votes = DB::Aowow()->selectCol('SELECT `sourceB` AS ARRAY_KEY, SUM(1) FROM ?_account_reputation WHERE `action` IN (?a) AND `sourceB` IN (?a) { AND `date` > ?d } GROUP BY `sourceB`',
[SITEREP_ACTION_UPVOTED, SITEREP_ACTION_DOWNVOTED], array_keys($res), $time ?: DBSIMPLE_SKIP
);
foreach ($res as $uId => &$r)
{
$r['creation'] = date('c', $r['creation']);
$r['votes'] = empty($votes[$uId]) ? 0 : $votes[$uId];
$r += $nullFields;
}
$data = $res;
}
$this->lvTabs->addListviewTab(new Listview(array(
'hiddenCols' => ['achievements', 'posts', 'uploads', 'reports'],
'visibleCols' => ['created'],
'name' => '$LANG.lastweek_stc',
'name' => $tabName,
'id' => $tabId,
'data' => $data
), 'topusers'));
}
parent::generate();
}
}
?>

View File

@@ -0,0 +1,34 @@
<?php
namespace Aowow;
if (!defined('AOWOW_REVISION'))
die('illegal access');
class WhatsnewBaseResponse extends TemplateResponse
{
protected string $template = 'text-page-generic';
protected string $pageName = 'whats-new';
protected ?int $activeTab = parent::TAB_MORE;
protected array $breadcrumb = [2, 7];
public function __construct(string $pageParam)
{
parent::__construct($pageParam);
if ($pageParam)
$this->generateError();
}
protected function generate() : void
{
$this->h1 = Lang::main('moreTitles', $this->pageName);
array_unshift($this->title, $this->h1);
parent::generate();
}
}
?>

View File

@@ -1,234 +0,0 @@
<?php
namespace Aowow;
if (!defined('AOWOW_REVISION'))
die('illegal access');
// the actual text is an article accessed by type + typeId
// menuId 2: More g_initPath()
// tabid 2: More g_initHeader()
class MorePage extends GenericPage
{
protected $tabsTitle = '';
protected $privReqPoints = '';
protected $forceTabs = true;
protected $lvTabs = [];
protected $privileges = [];
protected $tpl = 'list-page-generic';
protected $path = [];
protected $tabId = 0;
protected $mode = CACHE_TYPE_NONE;
protected $scripts = [[SC_JS_FILE, 'js/swfobject.js']];
private $page = [];
private $req2priv = array(
1 => 'REP_REQ_COMMENT', // write comments
// 2 => 'REP_REQ_EXT_LINKS', // NYI post external links
// 4 => 'REP_REQ_NO_CAPTCHA', // NYI no captcha
5 => 'REP_REQ_SUPERVOTE', // votes count for more
9 => 'REP_REQ_VOTEMORE_BASE', // more votes per day
10 => 'REP_REQ_UPVOTE', // can upvote
11 => 'REP_REQ_DOWNVOTE', // can downvote
12 => 'REP_REQ_REPLY', // can reply
13 => 'REP_REQ_BORDER_UNCO', // uncommon avatar border [NYI: hardcoded in Icon.getPrivilegeBorder(), avatars not in use]
14 => 'REP_REQ_BORDER_RARE', // rare avatar border [NYI: hardcoded in Icon.getPrivilegeBorder(), avatars not in use]
15 => 'REP_REQ_BORDER_EPIC', // epic avatar border [NYI: hardcoded in Icon.getPrivilegeBorder(), avatars not in use]
16 => 'REP_REQ_BORDER_LEGE', // legendary avatar border [NYI: hardcoded in Icon.getPrivilegeBorder(), avatars not in use]
17 => 'REP_REQ_PREMIUM' // premium status
);
private $validPages = array( // [tabId, path[, subPaths]]
'whats-new' => [2, [2, 7]],
'searchbox' => [2, [2, 16]],
'tooltips' => [2, [2, 10]],
'faq' => [2, [2, 3]],
'aboutus' => [2, [2, 0]],
'searchplugins' => [2, [2, 8]],
'help' => [2, [2, 13], ['commenting-and-you', 'modelviewer', 'screenshots-tips-tricks', 'stat-weighting', 'talent-calculator', 'item-comparison', 'profiler', 'markup-guide']],
'reputation' => [1, [3, 10]],
'privilege' => [1, [3, 10], [1, /* 2, 4, */ 5, 9, 10, 11, 12, 13, 14, 15, 16, 17]],
'privileges' => [1, [3, 10, 0]],
'top-users' => [1, [3, 11]]
);
public function __construct($pageCall, $subPage)
{
parent::__construct($pageCall, $subPage);
// chack if page is valid
if (isset($this->validPages[$pageCall]))
{
$pageData = $this->validPages[$pageCall];
$this->tabId = $pageData[0];
$this->path = $pageData[1];
$this->page = [$pageCall, $subPage];
if ($subPage && isset($pageData[2]))
{
$exists = array_search($subPage, $pageData[2]);
if ($exists === false)
$this->error();
if (is_numeric($subPage))
$this->articleUrl = $pageCall.'='.$subPage;
else
$this->articleUrl = $subPage;
$this->path[] = $subPage;
$this->name = Lang::main('moreTitles', $pageCall, $subPage);
}
else
{
$this->articleUrl = $pageCall;
$this->name = Lang::main('moreTitles', $pageCall);
}
}
else
$this->error();
// apply actual values and order by requirement ASC
foreach ($this->req2priv as &$var)
$var = Cfg::get($var);
asort($this->req2priv);
}
protected function generateContent()
{
switch ($this->page[0])
{
case 'reputation':
$this->handleReputationPage();
return;
case 'privileges':
$this->handlePrivilegesPage();
return;
case 'privilege':
$this->tpl = 'privilege';
$this->privReqPoints = sprintf(Lang::privileges('reqPoints'), Lang::nf($this->req2priv[$this->page[1]]));
return;
case 'top-users':
$this->handleTopUsersPage();
return;
default:
return;
}
}
protected function postArticle(string &$txt) : void
{
if ($this->page[0] != 'reputation' &&
$this->page[0] != 'privileges' &&
$this->page[0] != 'privilege')
return;
$txt = Cfg::applyToString($txt);
}
protected function generatePath() { }
protected function generateTitle()
{
array_unshift($this->title, $this->name);
}
private function handleReputationPage()
{
if (!User::isLoggedIn())
return;
if ($repData = DB::Aowow()->select('SELECT `action`, `amount`, `date` AS "when", IF(`action` IN (3, 4, 5), `sourceA`, 0) AS "param" FROM ?_account_reputation WHERE `userId` = ?d', User::$id))
{
array_walk($repData, fn(&$x) => $x['when'] = date(Util::$dateFormatInternal, $x['when']));
$this->tabsTitle = Lang::main('yourRepHistory');
$this->lvTabs[] = ['reputationhistory', array(
'id' => 'reputation-history',
'name' => '$LANG.reputationhistory',
'data' => $repData
)];
}
}
private function handlePrivilegesPage()
{
$this->tpl = 'privileges';
$this->privileges = [];
foreach ($this->req2priv as $id => $val)
if ($val)
$this->privileges[$id] = array(
User::getReputation() >= $val,
Lang::privileges('_privileges', $id),
$val
);
}
private function handleTopUsersPage()
{
$tabs = array(
[0, 'top-users-alltime', '$LANG.alltime_stc' ],
[time() - MONTH, 'top-users-monthly', '$LANG.lastmonth_stc'],
[time() - WEEK, 'top-users-weekly', '$LANG.lastweek_stc' ]
);
$nullFields = array(
'uploads' => 0,
'posts' => 0,
'gold' => 0,
'silver' => 0,
'copper' => 0
);
foreach ($tabs as [$t, $tabId, $tabName])
{
// stuff received
$res = DB::Aowow()->select(
'SELECT a.`id` AS ARRAY_KEY, a.`username`, a.`userGroups` AS "groups", a.`joinDate` AS "creation",
SUM(r.`amount`) AS "reputation", SUM(IF(r.`action` = 3, 1, 0)) AS "comments", SUM(IF(r.`action` = 6, 1, 0)) AS "screenshots", SUM(IF(r.`action` = 9, 1, 0)) AS "reports"
FROM ?_account_reputation r
JOIN ?_account a ON a.`id` = r.`userId`
{ WHERE r.`date` > ?d }
GROUP BY a.`id`
ORDER BY `reputation` DESC
LIMIT ?d',
$t ?: DBSIMPLE_SKIP, Cfg::get('SQL_LIMIT_SEARCH')
);
$data = [];
if ($res)
{
// stuff given
$votes = DB::Aowow()->selectCol(
'SELECT sourceB AS ARRAY_KEY, SUM(1) FROM ?_account_reputation WHERE action IN (4, 5) AND sourceB IN (?a) {AND date > ?d} GROUP BY sourceB',
array_keys($res),
$t ?: DBSIMPLE_SKIP
);
foreach ($res as $uId => &$r)
{
$r['creation'] = date('c', $r['creation']);
$r['votes'] = empty($votes[$uId]) ? 0 : $votes[$uId];
$r = array_merge($r, $nullFields);
}
$data = array_values($res);
}
$this->lvTabs[] = ['topusers', array(
'hiddenCols' => ['achievements', 'posts', 'uploads', 'reports'],
'visibleCols' => ['created'],
'name' => '$LANG.lastweek_stc',
'name' => $tabName,
'id' => $tabId,
'data' => $data
)];
}
}
}
?>

View File

@@ -0,0 +1 @@
UPDATE `aowow_articles` SET `url` = CONCAT('help=', `url`) WHERE `url` IN ('commenting-and-you', 'item-comparison', 'modelviewer', 'profiler', 'screenshots-tips-tricks', 'stat-weighting', 'talent-calculator', 'markup-guide');

View File

@@ -0,0 +1,2 @@
UPDATE `aowow_config` SET `key` = 'rep_req_border_legendary' WHERE `key` = 'rep_req_border_lege';
UPDATE `aowow_config` SET `key` = 'rep_req_border_uncommon' WHERE `key` = 'rep_req_border_unco';

View File

@@ -995,23 +995,25 @@ var mn_tools = [
[4,"Zufällige Seite","?random"]
]]
];
var mn_reputation = [
[0, "Alle Privilegien anzeigen", "?privileges" ],
[, "Privilegien" ],
[1, "Kommentare einsenden", "?privilege=1" ],
// [2, "Webseitenexterne Links einsenden", "?privilege=2"],
[2, "Webseitenexterne Links einsenden", "?privilege=2" ],
// [4, "Kein CAPTCHA", "?privilege=4" ],
[5, "Kommentarbewertungen zählen mehr", "?privilege=5" ],
[9, "Mehr Wertungsfreiheit", "?privilege=9" ],
[10, "Kommentare positiv bewerten", "?privilege=10"],
[11, "Kommentare negativ bewerten", "?privilege=11"],
[12, "Kommentarantwort einsenden", "?privilege=12"],
// [13, "Rahmen: Außergewöhnlich", "?privilege=13"],
// [14, "Rahmen: Selten", "?privilege=14"],
// [15, "Rahmen: Episch", "?privilege=15"],
// [16, "Rahmen: Legendär", "?privilege=16"],
[13, "Rahmen: Außergewöhnlich", "?privilege=13"],
[14, "Rahmen: Selten", "?privilege=14"],
[15, "Rahmen: Episch", "?privilege=15"],
[16, "Rahmen: Legendär", "?privilege=16"],
[17, "AoWoW Premium", "?privilege=17"]
];
var mn_community = [
[3,"Forum","http://forums.battle.net",null,{tinyIcon: g_staticUrl + "/images/icons/forum.png"}],
[7,"Blog","http://worldpress.com",null,{tinyIcon: g_staticUrl + "/images/icons/blog.png"}],

View File

@@ -1041,23 +1041,25 @@ var mn_tools = [
[4,"Random Page","?random"]
]]
];
var mn_reputation = [
[0, "Show All Privileges", "?privileges" ],
[, "Privileges" ],
[1, "Post comments", "?privilege=1" ],
// [2, "Post external links", "?privilege=2"],
[2, "Post external links", "?privilege=2" ],
// [4, "No CAPTCHAs", "?privilege=4" ],
[5, "Comment votes worth more", "?privilege=5" ],
[9, "More votes per day", "?privilege=9" ],
[10, "Upvote comments", "?privilege=10"],
[11, "Downvote comments", "?privilege=11"],
[12, "Post comment replies", "?privilege=12"],
// [13, "Border: Uncommon", "?privilege=13"],
// [14, "Border: Rare", "?privilege=14"],
// [15, "Border: Epic", "?privilege=15"],
// [16, "Border: Legendary", "?privilege=16"],
[13, "Border: Uncommon", "?privilege=13"],
[14, "Border: Rare", "?privilege=14"],
[15, "Border: Epic", "?privilege=15"],
[16, "Border: Legendary", "?privilege=16"],
[17, "AoWoW Premium", "?privilege=17"]
];
var mn_community = [
[3,"Forum","http://forums.battle.net",null,{tinyIcon: g_staticUrl + "/images/icons/forum.png"}],
[7,"Blog","http://worldpress.com",null,{tinyIcon: g_staticUrl + "/images/icons/blog.png"}],

View File

@@ -995,23 +995,25 @@ var mn_tools = [
[4,"Página aleatoria","?random"]
]]
];
var mn_reputation = [
[0, "Mostrar todos los privilegios", "?privileges" ],
[, "Privilegios" ],
[1, "Escribir comentarios", "?privilege=1" ],
// [2, "Escribir enlaces externos", "?privilege=2"],
[2, "Escribir enlaces externos", "?privilege=2" ],
// [4, "Sin CAPTCHAs", "?privilege=4" ],
[5, "Los votos de comentario valen más", "?privilege=5" ],
[9, "Más votos por día", "?privilege=9" ],
[10, "Dar una valoración positiva a comentarios", "?privilege=10"],
[11, "Dar una valoración negativa a comentarios", "?privilege=11"],
[12, "Escribir respuestas a comentarios", "?privilege=12"],
// [13, "Borde: Poco Común", "?privilege=13"],
// [14, "Borde: Raro", "?privilege=14"],
// [15, "Borde: Épica", "?privilege=15"],
// [16, "Borde: Legendaria", "?privilege=16"],
[13, "Borde: Poco Común", "?privilege=13"],
[14, "Borde: Raro", "?privilege=14"],
[15, "Borde: Épica", "?privilege=15"],
[16, "Borde: Legendaria", "?privilege=16"],
[17, "AoWoW Premium", "?privilege=17"]
];
var mn_community = [
[3,"Foros","http://forums.battle.net",null,{tinyIcon: g_staticUrl + "/images/icons/forum.png"}],
[7,"Blog","http://worldpress.com",null,{tinyIcon: g_staticUrl + "/images/icons/blog.png"}],

View File

@@ -995,23 +995,25 @@ var mn_tools = [
[4,"Page au hasard","?random"]
]]
];
var mn_reputation = [
[0, "Montrer tous les privilèges", "?privileges" ],
[, "Privilèges" ],
[1, "Poster des commentaires", "?privilege=1" ],
// [2, "Poster des liens externes", "?privilege=2"],
[2, "Poster des liens externes", "?privilege=2" ],
// [4, "Pas de CAPTCHA", "?privilege=4" ],
[5, "Les votes des commentaires ont plus de valeur", "?privilege=5" ],
[9, "Plus de votes par jour", "?privilege=9" ],
[10, "Emettre des votes positifs pour les commentaires", "?privilege=10"],
[11, "Donner des votes négatifs aux commentaires", "?privilege=11"],
[12, "Envoyer des réponses aux commentaires", "?privilege=12"],
// [13, "Bordure : Bonne", "?privilege=13"],
// [14, "Bordure : Rare", "?privilege=14"],
// [15, "Bordure : Épique", "?privilege=15"],
// [16, "Bordure : Légendaire", "?privilege=16"],
[13, "Bordure : Bonne", "?privilege=13"],
[14, "Bordure : Rare", "?privilege=14"],
[15, "Bordure : Épique", "?privilege=15"],
[16, "Bordure : Légendaire", "?privilege=16"],
[17, "AoWoW Premium", "?privilege=17"]
];
var mn_community = [
[3,"Forum","http://forums.battle.net",null,{tinyIcon: g_staticUrl + "/images/icons/forum.png"}],
[7,"Blog","http://worldpress.com",null,{tinyIcon: g_staticUrl + "/images/icons/blog.png"}],

View File

@@ -995,23 +995,25 @@ var mn_tools = [
[4,"Случайная страница","?random"]
]]
];
var mn_reputation = [
[0, "Показать все привилегии", "?privileges" ],
[, "Привилегии" ],
[1, "Оставлять комментарии", "?privilege=1" ],
// [2, "Оставлять внешние ссылки", "?privilege=2"],
[2, "Оставлять внешние ссылки", "?privilege=2" ],
// [4, "Нет CAPTCHA", "?privilege=4" ],
[5, "Более сильные голоса", "?privilege=5" ],
[9, "Больше голосов в день", "?privilege=9" ],
[10, "Голосовать за комментарии", "?privilege=10"],
[11, "Голосовать против комментариев", "?privilege=11"],
[12, "Отвечать на комментарии", "?privilege=12"],
// [13, "Граница: Необычный", "?privilege=13"],
// [14, "Граница: Редкий", "?privilege=14"],
// [15, "Граница: Эпический", "?privilege=15"],
// [16, "Граница: Легендарный", "?privilege=16"],
[13, "Граница: Необычный", "?privilege=13"],
[14, "Граница: Редкий", "?privilege=14"],
[15, "Граница: Эпический", "?privilege=15"],
[16, "Граница: Легендарный", "?privilege=16"],
[17, "AoWoW Premium", "?privilege=17"]
];
var mn_community = [
[3,"Форум","http://forums.battle.net",null,{tinyIcon: g_staticUrl + "/images/icons/forum.png"}],
[7,"Блог","http://worldpress.com",null,{tinyIcon: g_staticUrl + "/images/icons/blog.png"}],

View File

@@ -1041,23 +1041,25 @@ var mn_tools = [
[4,"随机页面","?random"]
]]
];
var mn_reputation = [
[0, "显示全部特权", "?privileges" ],
[, "特权" ],
[1, "发表评论", "?privilege=1" ],
// [2, "发表外部链接", "?privilege=2"],
[2, "发表外部链接", "?privilege=2" ],
// [4, "无验证码", "?privilege=4" ],
[5, "名旺言重,投票更有价值", "?privilege=5" ],
[9, "每天更多投票次数", "?privilege=9" ],
[10, "顶评论", "?privilege=10"],
[11, "踩评论", "?privilege=11"],
[12, "发布评论回复", "?privilege=12"],
// [13, "边界:罕见", "?privilege=13"],
// [14, "边界:稀有", "?privilege=14"],
// [15, "边界:史诗", "?privilege=15"],
// [16, "边界:传奇", "?privilege=16"],
[13, "边界:罕见", "?privilege=13"],
[14, "边界:稀有", "?privilege=14"],
[15, "边界:史诗", "?privilege=15"],
[16, "边界:传奇", "?privilege=16"],
[17, "Aowow会员", "?privilege=17"]
];
var mn_community = [
[3,"论坛","http://forums.battle.net",null,{tinyIcon: g_staticUrl + "/images/icons/forum.png"}],
[7,"博客","http://worldpress.com",null,{tinyIcon: g_staticUrl + "/images/icons/blog.png"}],

View File

@@ -1,7 +1,8 @@
<?php namespace Aowow; ?>
<?php $this->brick('header'); ?>
<?php
namespace Aowow\Template;
$this->brick('header');
?>
<div class="main" id="main">
<div class="main-precontents" id="main-precontents"></div>
<div class="main-contents" id="main-contents">
@@ -13,10 +14,10 @@
?>
<div class="text">
<h1><?=$this->name;?></h1>
<p><?=$this->privReqPoints;?></p><br>
<h1><?=$this->h1;?></h1>
<p><?=$this->privReqPoints;?></p><br />
<?php
$this->brick('article');
$this->brick('markup', ['markup' => $this->article]);
?>
</div>
<div class="clear"></div>

View File

@@ -1,7 +1,10 @@
<?php namespace Aowow; ?>
<?php
namespace Aowow\Template;
<?php $this->brick('header'); ?>
use \Aowow\Lang;
$this->brick('header');
?>
<div class="main" id="main">
<div class="main-precontents" id="main-precontents"></div>
<div class="main-contents" id="main-contents">
@@ -14,9 +17,9 @@
<div class="text">
<h1><?=Lang::privileges('privileges');?></h1>
<div style="float:right;line-height:1.2;max-width:410px;overflow:hidden;text-align:center"><img class="border" alt="" src="<?=Cfg::get('STATIC_URL');?>/images/help/privileges/example.jpg" /></div>
<div style="float:right;line-height:1.2;max-width:410px;overflow:hidden;text-align:center"><img class="border" alt="" src="<?=$this->gStaticUrl;?>/images/help/privileges/example.jpg" /></div>
<p><?=Lang::privileges('main');?></p>
<br><br>
<br /><br />
<table class="wsa-list wsa-tbl">
<thead><th><?=Lang::privileges('privilege');?></th><th><?=Lang::privileges('requiredRep');?></th></thead>
<tbody>