private function createMail(&$reqCss = false) { $mail = []; if ($_ = $this->subject->getField('mailTemplate')) { $letter = DB::Aowow()->selectRow('SELECT * FROM ?_mailtemplate WHERE id = ?d', $_); if (!$letter) { return []; } $reqCss = true; $mail = array('delay' => null, 'sender' => null, 'subject' => Util::parseHtmlText(Util::localizedString($letter, 'subject', true)), 'text' => Util::parseHtmlText(Util::localizedString($letter, 'text', true))); } else { if ($_ = Util::parseHtmlText($this->subject->getField('text', true, true))) { $reqCss = true; $mail = array('delay' => null, 'sender' => null, 'subject' => Util::parseHtmlText($this->subject->getField('subject', true, true)), 'text' => $_); } } if ($_ = CreatureList::getName($this->subject->getField('sender'))) { $mail['sender'] = sprintf(Lang::quest('mailBy'), $this->subject->getField('sender'), $_); } return $mail; }
private function createMail(&$attachmentTab, $startEnd) { $mail = []; if ($_ = $this->subject->getField('rewardMailTemplateId')) { $delay = $this->subject->getField('rewardMailDelay'); $letter = DB::Aowow()->selectRow('SELECT * FROM ?_mailtemplate WHERE id = ?d', $_); $mail = array('delay' => $delay ? sprintf(Lang::quest('mailIn'), Util::formatTime($delay * 1000)) : null, 'sender' => null, 'text' => $letter ? Util::parseHtmlText(Util::localizedString($letter, 'text')) : null, 'subject' => Util::parseHtmlText(Util::localizedString($letter, 'subject'))); foreach ($startEnd as $se) { if (!($se['method'] & 0x2) || $se['type'] != TYPE_NPC) { continue; } if ($_ = CreatureList::getName($se['typeId'])) { $mail['sender'] = sprintf(Lang::quest('mailBy'), $se['typeId'], $_); break; } } $extraCols = ['Listview.extraCols.percent']; $mailLoot = new Loot(); if ($mailLoot->getByContainer(LOOT_MAIL, $_)) { $this->extendGlobalData($mailLoot->jsGlobals); $attachmentTab = array('file' => 'item', 'data' => $mailLoot->getResult(), 'params' => array('name' => '[Mail Attachments]', 'id' => 'mail-attachments', 'extraCols' => "\$[" . implode(', ', array_merge($extraCols, $mailLoot->extraCols)) . "]", 'hiddenCols' => "\$['side', 'slot', 'reqlevel']")); } } return $mail; }
public function renderTooltip() { if (!$this->curTpl) { return null; } $title = Util::jsEscape($this->getField('name', true)); $level = $this->curTpl['level']; if ($level < 0) { $level = 0; } $x = ''; if ($level) { $level = sprintf(Lang::quest('questLevel'), $level); if ($this->curTpl['flags'] & QUEST_FLAG_DAILY) { // daily $level .= ' ' . Lang::quest('daily'); } $x .= '<table><tr><td><table width="100%"><tr><td><b class="q">' . $title . '</b></td><th><b class="q0">' . $level . '</b></th></tr></table></td></tr></table>'; } else { $x .= '<table><tr><td><b class="q">' . $title . '</b></td></tr></table>'; } $x .= '<table><tr><td><br />' . $this->parseText('objectives'); $xReq = ''; for ($i = 1; $i < 5; $i++) { $ot = $this->getField('objectiveText' . $i, true); $rng = $this->curTpl['reqNpcOrGo' . $i]; $rngQty = $this->curTpl['reqNpcOrGoCount' . $i]; if ($rngQty < 1 && (!$rng || $ot)) { continue; } if ($ot) { $name = $ot; } else { $name = $rng > 0 ? CreatureList::getName($rng) : GameObjectList::getName(-$rng); } $xReq .= '<br /> - ' . Util::jsEscape($name) . ($rngQty > 1 ? ' x ' . $rngQty : null); } for ($i = 1; $i < 7; $i++) { $ri = $this->curTpl['reqItemId' . $i]; $riQty = $this->curTpl['reqItemCount' . $i]; if (!$ri || $riQty < 1) { continue; } $xReq .= '<br /> - ' . Util::jsEscape(ItemList::getName($ri)) . ($riQty > 1 ? ' x ' . $riQty : null); } if ($et = $this->getField('end', true)) { $xReq .= '<br /> - ' . Util::jsEscape($et); } if ($_ = $this->getField('rewardOrReqMoney')) { if ($_ < 0) { $xReq .= '<br /> - ' . Lang::quest('money') . Lang::main('colon') . Util::formatMoney(abs($_)); } } if ($xReq) { $x .= '<br /><br /><span class="q">' . Lang::quest('requirements') . Lang::main('colon') . '</span>' . $xReq; } $x .= '</td></tr></table>'; return $x; }