src/TwigExtensions/TwigExtension.php line 49

Open in your IDE?
  1. <?php
  2. namespace App\TwigExtensions;
  3. use Empire\Core\Core;
  4. use Empire\Core\User;
  5. use Empire\Core\PageCategory;
  6. use Empire\Legacy\cgt;
  7. use Twig\Extension\AbstractExtension;
  8. use Twig\Markup;
  9. use Twig\TwigFilter;
  10. use Twig\TwigFunction;
  11. class TwigExtension extends AbstractExtension
  12. {
  13.     /**
  14.     * {@inheritdoc}
  15.     */
  16.     public function getFilters(): array
  17.     {
  18.         return [
  19.             new TwigFilter('cgt', function ($time$format) {
  20.                 return cgt::toCGTString(cgt::evaluateString($time)->cgtObj$format);
  21.             }),
  22.             new TwigFilter('cgt_*', function($type$time) {
  23.                 return cgt::evaluateString($time)->$type;
  24.             })
  25.         ];
  26.     }
  27.     /**
  28.     * {@inheritdoc}
  29.     */
  30.     public function getFunctions(): array
  31.     {
  32.         return [
  33.             new TwigFunction('core_get', function ($var) { return Core::get($var); }),
  34.             new TwigFunction('core_flash', function () { return Core::flash(); }),
  35.             new TwigFunction('core_user', function () { return Core::user(); }),
  36.             new TwigFunction('getUser', function ($var) {
  37.                 return \Empire\Core\User::load([$var]);
  38.             }),
  39.             new TwigFunction('sideMenu', function () {
  40.                 $return "";
  41.                 if(!Core::get('secure')) {
  42.                     $ing PageCategory::loadAll(\Empire\Core\Page::PAGE_TYPE_PUBLIC);
  43.                     $cat $ing[0];
  44.                     foreach($cat->subCategories() as $scat) {
  45.                         $return .= "<div class='menu'>";
  46.                         $return .= "<h2>" $scat->getName() . "</h2>\n";
  47.                         $return .= "<ul>\n";
  48.                         foreach ($scat->pages() as $page) {
  49.                             if($page->visible) {
  50.                                 $active $page->url == ltrim(Core::get('fullPage'), '/') ? 'class="menu-active-link"' '';
  51.                                 if (strpos($page->url"http://") !== && strpos($page->url"https://") !== ) {
  52.                                     $return .= "\t<li><a href='" Core::get('base_url') . $page->url "' $active><span><i class='fa fa-caret-right'></i></span> " $page->title "</a></li>\n";
  53.                                 } else {
  54.                                     $return .= "\t<li><a href='" $page->url "' $active><span><i class='fa fa-caret-right'></i></span> " $page->title "</a></li>\n";
  55.                                 }
  56.                             }
  57.                         }
  58.                         $return .= "</ul>\n</div>";
  59.                     }
  60.                 } elseif (Core::get('secure')) {
  61.                     $irms PageCategory::loadAll(\Empire\Core\Page::PAGE_TYPE_SECURE);
  62.                     foreach ($irms as $cat) {
  63.                         $pText "";
  64.                         foreach($cat->subCategories() as $scat) {
  65.                             foreach ($scat->pages() as $page) {
  66.                                 if($page->visible && $page->grantsAccess(Core::user())) {
  67.                                     $active $page->url === ltrim(Core::get('fullPage'), '/') ? 'class="menu-active-link"' '';
  68.                                     if(strpos($page->url"http://") !== && strpos($page->url"https://") !== ) {
  69.                                         $pText .= "\t<li><a href='" Core::get('base_url') . $page->url "' $active><span><i class='fa fa-caret-right'></i></span> " $page->title "</a></li>\n";
  70.                                     } else {
  71.                                         $pText .= "\t<li><a href='" $page->url "' $active><span><i class='fa fa-caret-right'></i></span> " $page->title "</a></li>\n";
  72.                                     }
  73.                                 }
  74.                             }
  75.                             if(strlen($pText) > 0) {
  76.                                 $return .= "<div class='menu'>";
  77.                                 $return .= "<h2>" $scat->name "</h2>\n";
  78.                                 $return .= "<ul>" $pText "</ul>\n</div>";
  79.                             }
  80.                         }
  81.                     }
  82.                 }
  83.                 return new Markup($return'UTF-8');
  84.             }) ];
  85.     }
  86. }