'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(...)); } } ?>