protected function defaultViewDataTo(array &$data) { $info = $this->config('company'); // Trying to reverse-map the logo URL to local path. Upon success attach that // file to the message as "related" file so it's not visible in the attachment // list and can be refered to with special "cid:NAME" prefix (e.g. in src). // Unlike remote images attached ones are not hidden by most mail viewers. $logoFile = assetPath($info['logo']); if ($logoFile) { $this->attachRelatedLocal($logoFile, $name = 'head-logo' . S::ext($logoFile)); $info['logo'] = "cid:{$name}"; } $data['header']['logo'] = Block::execCustom('Vane::logo', array('input' => $info, 'ajax' => false, 'response' => true, 'return' => 'response'))->render(); $info = array_filter($info, 'is_scalar') + array('l0' => HLEx::tag('a', \URL::to(Current::bundleURL())), 'l1' => '</a>'); $signature = __('vanemart::general.mail.signature', $info); $data['footer']['signature'] = HLEx::p($signature); }
static function expand($url = '/') { $url = trim($url); if ($url === '') { return null; } elseif (\URL::valid($url) or $url[0] === '/') { // absolute URL. return \url($url); } elseif (strrchr($url, '@') === false) { if (strpos($url, '::') === false) { // relative to current bundle's 'handles' or site root if none. return \url(Current::bundleURL() . $url); } else { // named route. return \route(ltrim($url, ':')); } } elseif (strrchr(strrchr($url, '@'), '.') === false) { // controller[.sub]@[action] return \action($url); } else { // e-mail without 'mailto:' prefix: eml@example.com. return "mailto:{$url}"; } }