/** * Registers common function in Twig * * @param \Phalcon\Mvc\ViewInterface $view * @param \Phalcon\DiInterface $di * @param array $userFunctions */ protected function registryFunctions($view, DiInterface $di, $userFunctions = array()) { $options = array('is_safe' => array('html')); $functions = array(new \Twig_SimpleFunction('content', function () use($view) { return $view->getContent(); }, $options), new \Twig_SimpleFunction('partial', function ($partialPath) use($view) { return $view->partial($partialPath); }, $options), new \Twig_SimpleFunction('linkTo', function ($parameters, $text = null) { return \Phalcon\Tag::linkTo($parameters, $text); }, $options), new \Twig_SimpleFunction('textField', function ($parameters) { return \Phalcon\Tag::textField($parameters); }, $options), new \Twig_SimpleFunction('passwordField', function ($parameters) { return \Phalcon\Tag::passwordField($parameters); }, $options), new \Twig_SimpleFunction('hiddenField', function ($parameters) { return \Phalcon\Tag::hiddenField($parameters); }, $options), new \Twig_SimpleFunction('fileField', function ($parameters) { return \Phalcon\Tag::fileField($parameters); }, $options), new \Twig_SimpleFunction('checkField', function ($parameters) { return \Phalcon\Tag::checkField($parameters); }, $options), new \Twig_SimpleFunction('radioField', function ($parameters) { return \Phalcon\Tag::radioField($parameters); }, $options), new \Twig_SimpleFunction('submitButton', function ($parameters) { return \Phalcon\Tag::submitButton($parameters); }, $options), new \Twig_SimpleFunction('selectStatic', function ($parameters, $data = array()) { return \Phalcon\Tag::selectStatic($parameters, $data); }, $options), new \Twig_SimpleFunction('select', function ($parameters, $data = array()) { return \Phalcon\Tag::select($parameters, $data); }, $options), new \Twig_SimpleFunction('textArea', function ($parameters) { return \Phalcon\Tag::textArea($parameters); }, $options), new \Twig_SimpleFunction('form', function ($parameters = array()) { return \Phalcon\Tag::form($parameters); }, $options), new \Twig_SimpleFunction('endForm', function () { return \Phalcon\Tag::endForm(); }, $options), new \Twig_SimpleFunction('getTitle', function () { return \Phalcon\Tag::getTitle(); }, $options), new \Twig_SimpleFunction('stylesheetLink', function ($parameters = null, $local = true) { return \Phalcon\Tag::stylesheetLink($parameters, $local); }, $options), new \Twig_SimpleFunction('javascriptInclude', function ($parameters = null, $local = true) { return \Phalcon\Tag::javascriptInclude($parameters, $local); }, $options), new \Twig_SimpleFunction('image', function ($parameters) { return \Phalcon\Tag::image($parameters); }, $options), new \Twig_SimpleFunction('friendlyTitle', function ($text, $separator = null, $lowercase = true) { return \Phalcon\Tag::friendlyTitle($text, $separator, $lowercase); }, $options), new \Twig_SimpleFunction('getDocType', function () { return \Phalcon\Tag::getDocType(); }, $options), new \Twig_SimpleFunction('getSecurityToken', function () use($di) { return $di->get("security")->getToken(); }, $options), new \Twig_SimpleFunction('getSecurityTokenKey', function () use($di) { return $di->get("security")->getTokenKey(); }, $options), new \Twig_SimpleFunction('url', function ($route) use($di) { return $di->get("url")->get($route); }, $options)); if (!empty($userFunctions)) { $functions = array_merge($functions, $userFunctions); } foreach ($functions as $function) { $this->twig->addFunction($function); } }
public static function linkTo($parameters, $text = null) { $tag = parent::linkTo($parameters, $text); $url = is_string($parameters) ? $parameters : $parameters[0]; if (!array_key_exists('scheme', parse_url($url))) { return $tag; } return preg_replace('/^<a\\s+href="[^"]*/', '<a href="' . $url, $tag); }
public function checkUserFlags(User $user) { if ($user->active != 'Y') { $activate = \Phalcon\Tag::linkTo("signup/sendActivationLink/{$user->id}", 'Send activation link!'); throw new AuthException("Your account is inactive. {$activate}"); } if ($user->banned != 'N') { throw new AuthException("Your account was banned"); } }
/** * Registers common function in Twig * * @param \Phalcon\Mvc\ViewInterface $view */ private function registryFunctions($view) { $options = array('is_safe' => array('html')); $functions = array(new \Twig_SimpleFunction('content', function () use($view) { return $view->getContent(); }, $options), new \Twig_SimpleFunction('partial', function ($partialPath) use($view) { return $view->partial($partialPath); }, $options), new \Twig_SimpleFunction('linkTo', function ($parameters, $text = null) { return \Phalcon\Tag::linkTo($parameters, $text); }, $options), new \Twig_SimpleFunction('textField', function ($parameters) { return \Phalcon\Tag::textField($parameters); }, $options), new \Twig_SimpleFunction('passwordField', function ($parameters) { return \Phalcon\Tag::passwordField($parameters); }, $options), new \Twig_SimpleFunction('hiddenField', function ($parameters) { return \Phalcon\Tag::hiddenField($parameters); }, $options), new \Twig_SimpleFunction('fileField', function ($parameters) { return \Phalcon\Tag::fileField($parameters); }, $options), new \Twig_SimpleFunction('checkField', function ($parameters) { return \Phalcon\Tag::checkField($parameters); }, $options), new \Twig_SimpleFunction('radioField', function ($parameters) { return \Phalcon\Tag::radioField($parameters); }, $options), new \Twig_SimpleFunction('submitButton', function ($parameters) { return \Phalcon\Tag::submitButton($parameters); }, $options), new \Twig_SimpleFunction('selectStatic', function ($parameters, $data = []) { return \Phalcon\Tag::selectStatic($parameters, $data); }, $options), new \Twig_SimpleFunction('select', function ($parameters, $data = []) { return \Phalcon\Tag::select($parameters, $data); }, $options), new \Twig_SimpleFunction('textArea', function ($parameters) { return \Phalcon\Tag::textArea($parameters); }, $options), new \Twig_SimpleFunction('form', function ($parameters = []) { return \Phalcon\Tag::form($parameters); }, $options), new \Twig_SimpleFunction('endForm', function () { return \Phalcon\Tag::endForm(); }, $options), new \Twig_SimpleFunction('getTitle', function () { return \Phalcon\Tag::getTitle(); }, $options), new \Twig_SimpleFunction('getTitle', function () { return \Phalcon\Tag::getTitle(); }, $options), new \Twig_SimpleFunction('stylesheetLink', function ($parameters = null, $local = true) { return \Phalcon\Tag::stylesheetLink($parameters, $local); }, $options), new \Twig_SimpleFunction('javascriptInclude', function ($parameters = null, $local = true) { return \Phalcon\Tag::javascriptInclude($parameters, $local); }, $options), new \Twig_SimpleFunction('image', function ($parameters) { return \Phalcon\Tag::image($parameters); }, $options), new \Twig_SimpleFunction('friendlyTitle', function ($text, $separator = null, $lowercase = true) { return \Phalcon\Tag::friendlyTitle($text, $separator, $lowercase); }, $options), new \Twig_SimpleFunction('getDocType', function () { return \Phalcon\Tag::getDocType(); }, $options)); foreach ($functions as $function) { $this->_twig->addFunction($function); } }
/** * Initializes the controller */ public function initialize() { Tag::setTitle('Manage Awards'); parent::initialize(); $this->_bc->add('Awards', 'awards'); $auth = $this->session->get('auth'); $add = ''; if ($auth) { $add = Tag::linkTo(array('awards/add', 'Add Award')); } $this->view->setVar('addButton', $add); $this->view->setVar('menus', $this->constructMenu($this)); }
public function getTabs($sufix = '') { $controllerName = $this->view->getControllerName(); $actionName = $this->view->getActionName(); $tabs = '_tabs' . $sufix; echo '<ul class="nav nav-tabs">'; foreach ($this->{$tabs} as $caption => $option) { if ($option['controller'] == $controllerName && ($option['action'] == $actionName || $option['any'])) { echo '<li class="active">'; } else { echo '<li>'; } echo \Phalcon\Tag::linkTo('backend/' . $option['controller'] . '/' . $option['action'], $caption), '<li>'; } echo '</ul>'; }
/** * Hàm trả về link của phân trang * @return string */ public function getLink($column_search = null) { if ($this->page->total_pages > 1) { $total = $this->page->total_pages; $constant = new \Modules\Library\Constant(); $subtract = $this->page->current - $constant::LIMIT_PAGE; $addition = $this->page->current + $constant::LIMIT_PAGE; if ($subtract > 0) { $start = $subtract; } else { $start = 1; } if ($addition <= $total) { $end = $addition; } else { $end = $total; } $limit = null; if (isset($_GET['limit'])) { $limit = '&limit=' . (int) $_GET['limit']; } $search = null; if (isset($_GET[$column_search])) { $search = "&{$column_search}=" . (string) $_GET[$column_search]; } $str = ''; $str .= '<ul class="paging">'; $str .= '<li class="first">' . \Phalcon\Tag::linkTo(array("admin/{$this->controller}/index?page=1{$limit}{$search}", 'Trang đầu', 'class' => 'page gradient')) . '</li>'; $str .= '<li class="previous">' . \Phalcon\Tag::linkTo(array("admin/{$this->controller}/index?page={$this->page->before}{$limit}{$search}", 'Trang trước', 'class' => 'page gradient')) . '</li>'; for ($i = $start; $i <= $end; $i++) { if ($i != $this->page->current) { $str .= '<li>' . \Phalcon\Tag::linkTo(array("admin/{$this->controller}/index?page={$i}{$limit}{$search}", "{$i}", 'class' => 'page gradient')) . '</li>'; } else { $str .= '<li><span class="page active">' . $i . '</span></li>'; } } $str .= '<li class="next">' . \Phalcon\Tag::linkTo(array("admin/{$this->controller}/index?page={$this->page->next}{$limit}{$search}", 'Trang tiếp', 'class' => 'page gradient')) . '</li>'; $str .= '<li class="last">' . \Phalcon\Tag::linkTo(array("admin/{$this->controller}/index?page={$this->page->last}{$limit}{$search}", 'Trang cuối', 'class' => 'page gradient')) . '</li>'; $str .= "</ul>"; return $str; } return null; }
/** * Builds header menu with left and right items * * @return string */ public function getMenuFront() { $controllerName = $this->view->getControllerName(); foreach ($this->_headerMenuFront as $position => $menu) { echo '<ul class="nav navbar-nav navbar-right">'; foreach ($menu as $controller => $option) { if ($controllerName == $controller) { echo '<li class="active">'; } else { echo '<li>'; } if ($controller == "search") { echo $option['caption']; } else { echo \Phalcon\Tag::linkTo($controller . '/' . $option['action'], _($option['caption'])); } echo '</li>'; } echo '</ul>'; } }
public function restorePasswordAction() { $form = new RestorePasswordForm(); if ($this->request->isPost()) { if ($form->isValid($this->request->getPost())) { $recipient = $this->request->getPost('email'); $user = User::findFirstByEmail($recipient); if ($user) { $code = $this->getRandomToken(true); $user->emailCode = $code; if ($user->save()) { $href = $this->url->getBaseUri() . 'new-password?id=' . $user->id . '&code=' . $code; $subject = 'Restore Password'; $body = 'Use the following link to change your password:<br>'; $body .= \Phalcon\Tag::linkTo($href, $href); $this->mail->send($recipient, $subject, $body); } } $this->flash->notice('A link with instructions on how to change an email was send to specified adress'); return $this->response->redirect('index'); } } $this->view->form = $form; }
/** * Tests linkTo with named array as parameters (more than the basic) * * @author Nikos Dimopoulos <*****@*****.**> * @since 2012-09-08 */ public function testLinkToWithArrayNamed() { $params = array('action' => 'some_url', 'text' => 'some_name', 'class' => 'btn btn-primary'); $expected = '<a href="/some_url" class="btn btn-primary">some_name</a>'; $actual = \Phalcon\Tag::linkTo($params); $this->assertEquals($expected, $actual, sprintf($this->message, 'linkTo with named array as parameters (full params)')); }
/** * Hàm lấy đường dẫn phân trang của frontend * @param $controller [string] news->tin-tuc * @param $category [string] category->the-thao * @param $page [string] */ public function getPaginator($option, $page) { if ($page->total_pages > 1) { $menu_code = null; if ($option['menu_code'] == null) { $menu_code = null; } else { $menu_code = '/' . $option['menu_code']; } switch ($option['style_paginator']) { case '1': // Xem them $str = ''; $str .= '<div class="pagination><ul class="paging">'; $str .= '<li class="next">' . \Phalcon\Tag::linkTo(array("{$option['controller']}{$menu_code}?page={$page->next}", 'Xem thêm', 'class' => 'page gradient')) . '</li>'; $str .= "</ul></div>"; return $str; default: // Binh thuong $total = $page->total_pages; $subtract = $page->current - 3; $addition = $page->current + 3; if ($subtract > 0) { $start = $subtract; } else { $start = 1; } if ($addition <= $total) { $end = $addition; } else { $end = $total; } $str = '<div class="pagination">'; $str .= '<ul class="paging">'; $str .= '<li class="first">' . \Phalcon\Tag::linkTo(array("{$option['controller']}{$menu_code}?page=1", 'Trang đầu', 'class' => 'page gradient')) . '</li>'; $str .= '<li class="previous">' . \Phalcon\Tag::linkTo(array("{$option['controller']}{$menu_code}?page={$page->before}", 'Trang trước', 'class' => 'page gradient')) . '</li>'; for ($i = $start; $i <= $end; $i++) { if ($i != $page->current) { $str .= '<li>' . \Phalcon\Tag::linkTo(array("{$option['controller']}{$menu_code}?page={$i}", "{$i}", 'class' => 'page gradient')) . '</li>'; } else { $str .= '<li><span class="page active">' . $i . '</span></li>'; } } $str .= '<li class="next">' . \Phalcon\Tag::linkTo(array("{$option['controller']}{$menu_code}?page={$page->next}", 'Trang tiếp', 'class' => 'page gradient')) . '</li>'; $str .= '<li class="last">' . \Phalcon\Tag::linkTo(array("{$option['controller']}{$menu_code}?page={$page->last}", 'Trang cuối', 'class' => 'page gradient')) . '</li>'; $str .= "</ul></div>"; return $str; } } return null; }
public static function linkTo($parameters, $text = null, $local = true) { return parent::linkTo($parameters, $text, $local); }
/** * @return array a list of links that point to the post list filtered by every tag of this post */ public function getTagLinks() { $links = array(); foreach (\Helpers\TextHelper::string2array($this->tags) as $tag) { $links[] = \Phalcon\Tag::linkTo('posts/index?tags=' . $tag, $tag); } return $links; }
/** * Returns sort by link for paginated table headers * * @param CareerCross\View\Helpers\PaginationMeta $meta * @param string $action * @param string $text * @param string $sort_by * @return string */ public function sortByLink(PaginationMeta $meta, $action, $text, $sort_by) { //rebuild the query string if there's an existing one $query_params = $this->request->getQuery(); unset($query_params['_url'], $query_params['submit_search']); $query_string = $query_params ? '?' . http_build_query(array_filter($query_params)) : null; // Change icon depending on request $icon = '<i class="fa fa-sort"></i>'; if ($meta->orderColumn == $sort_by && $meta->order) { $icon = '<i class="fa fa-sort-alpha-desc"></i>'; } else { if ($meta->orderColumn == $sort_by) { $icon = '<i class="fa fa-sort-alpha-asc"></i>'; } } $page_link = $action . '/' . $sort_by . '/' . (int) (!$meta->order); $page_link .= $query_string != '?' ? '/' . $query_string : null; return \Phalcon\Tag::linkTo(array($page_link, $text . ' ' . $icon)); }
public function send(Notifications $notification) { if ($notification->sent == 'Y') { return; } $post = $notification->post; $user = $notification->user; if ($notification->type != 'P') { $reply = $notification->reply; } else { $reply = true; } $from = $this->config->mail->fromEmail; $url = rtrim($this->config->site->url, '/'); if ($post && $user && $reply) { $isGitHubEmail = strpos($user->email, '@users.noreply.github.com'); if ($user->email && $user->notifications != 'N' && false === $isGitHubEmail) { try { $message = new \Swift_Message("[{$this->config->site->name} Forum] " . $post->title); $message->setTo([$user->email => $user->name]); $message->addReplyTo('reply-i' . $post->id . '-' . time() . '@phosphorum.com'); $e = $this->escaper; if ($notification->type == 'P') { $originalContent = $post->content; $htmlContent = $this->markdown->render($e->escapeHtml($post->content)); $message->setFrom([$from => $post->user->name]); } else { $reply = $notification->reply; $originalContent = $reply->content; $htmlContent = $this->markdown->render($e->escapeHtml($reply->content)); $message->setFrom([$from => $reply->user->name]); } if (trim($originalContent)) { $textContent = strip_tags($originalContent); $htmlContent .= '<p style="font-size:small;-webkit-text-size-adjust:none;color:#717171;">'; $href = "{$url}/discussion/{$post->id}/{$post->slug}"; $title = $this->config->site->name; $link = function ($href) use($title) { return Tag::linkTo([$href, $title, "local" => false]); }; if ($notification->type == 'P') { $link = $link($href); } else { $link = $link($href . '#C' . $reply->id); } $htmlContent .= '—<br>Reply to this email directly or view the complete thread on ' . PHP_EOL . $link . PHP_EOL . 'Change your e-mail preferences <a href="' . $url . '/settings">here</a></p>'; $bodyMessage = new \Swift_MimePart($htmlContent, 'text/html'); $bodyMessage->setCharset('UTF-8'); $message->attach($bodyMessage); $bodyMessage = new \Swift_MimePart($textContent, 'text/plain'); $bodyMessage->setCharset('UTF-8'); $message->attach($bodyMessage); if (!$this->transport) { $this->transport = \Swift_SmtpTransport::newInstance($this->config->smtp->host, $this->config->smtp->port, $this->config->smtp->security); $this->transport->setUsername($this->config->smtp->username); $this->transport->setPassword($this->config->smtp->password); } if (!$this->mailer) { $this->mailer = \Swift_Mailer::newInstance($this->transport); } $this->mailer->send($message); } } catch (\Exception $e) { echo $e->getMessage(), PHP_EOL; } } } $notification->sent = 'Y'; if ($notification->save() == false) { foreach ($notification->getMessages() as $message) { echo $message->getMessage(), PHP_EOL; } } }
public function testIssue2002() { $di = new Phalcon\DI\FactoryDefault(); $di->getshared('url')->setBaseUri('/'); \Phalcon\Tag::setDI($di); $html = Phalcon\Tag::linkTo(array('signup/register', 'Register Here!', 'class' => 'btn-primary', 'query' => array('from' => 'github', 'token' => '123456'))); $this->assertEquals($html, '<a href="/signup/register?from=github&token=123456" class="btn-primary">Register Here!</a>'); }
Navigation <div class="pull-right menu-settings"> <a href="#" class="dropdown-toggle" data-toggle="dropdown" data-hover="dropdown" data-close-others="true" data-delay="300"> <i class="icon-settings"></i> </a> </div> </div> <ul class="nav nav-sidebar"> <?php $menu = $this->elements->getMenu(); foreach ($menu as $menuItem) { echo ' <li class=""> '; echo Phalcon\Tag::linkTo($menuItem['link'], '<i class="fa ' . $menuItem['icon'] . '"></i> <span class="title">' . $menuItem['title'] . '</span> <span class="selected"></span>'); echo ' </li>'; } ?> </ul> <!-- SIDEBAR WIDGET FOLDERS --> <div class="sidebar-footer clearfix"> <a class="pull-left toggle_fullscreen" href="#" data-rel="tooltip" data-placement="top" data-original-title="Fullscreen"> <i class="icon-size-fullscreen"></i></a> <a class="pull-left btn-effect" href="/session/end" data-modal="modal-1" data-rel="tooltip" data-placement="top" data-original-title="Logout"> <i class="icon-power"></i></a> </div> </div> </div>
/** * Callback to link without scheme * * @return string **/ protected static function autoLinkUrlsCallback2($matches) { return \Phalcon\Tag::linkTo('http://' . $matches[0], $matches[0], false); }