Example #1
0
 /**
  * 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);
     }
 }
Example #2
0
 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);
 }
Example #3
0
 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");
     }
 }
Example #4
0
 /**
  * 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));
 }
Example #6
0
 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>';
 }
Example #7
0
 /**
  *	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;
 }
Example #8
0
 /**
  * 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>';
     }
 }
Example #9
0
 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;
 }
Example #10
0
 /**
  * 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)'));
 }
Example #11
0
 /**
  *	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;
 }
Example #12
0
 public static function linkTo($parameters, $text = null, $local = true)
 {
     return parent::linkTo($parameters, $text, $local);
 }
Example #13
0
 /**
  * @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;
 }
Example #14
0
 /**
  * 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 . '&nbsp;' . $icon));
 }
Example #15
0
 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 .= '&mdash;<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;
         }
     }
 }
Example #16
0
 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&amp;token=123456" class="btn-primary">Register Here!</a>');
 }
Example #17
0
            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>
Example #18
0
 /**
  * Callback to link without scheme
  *
  * @return  string
  **/
 protected static function autoLinkUrlsCallback2($matches)
 {
     return \Phalcon\Tag::linkTo('http://' . $matches[0], $matches[0], false);
 }