Popular

Phalcon\Image\Exception: Installed GD does not support 'j' images
Phalcon Framework 5.6.1

Phalcon\Image\Exception: Installed GD does not support 'j' images

/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Image.php (84)
#0Phalcon\Image\Adapter\Gd->processSave
#1Phalcon\Image\Adapter\AbstractAdapter->save
/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Image.php (84)
<?php
 
namespace CLSystems\PhalCMS\Lib\Helper;
//
//include_once "../../../../vendor/imagecow/imagecow/src/Image.php";
 
use Exception;
use Imagecow\Image as ImageHandler;
use Phalcon\Image\Adapter\Gd;
use Phalcon\Image\Enum;
 
class Image
{
  protected $imageUri;
  protected $imageFile;
  protected $imageThumbUri;
 
  public function __construct($imageFile)
  {
    if (strpos($imageFile, BASE_PATH . '/public/upload/') !== 0)
    {
      $imageFile = BASE_PATH . '/public/upload/' . $imageFile;
    }
 
    $this->imageFile     = $imageFile;
    $this->imageUri      = str_replace(BASE_PATH . '/public', DOMAIN, $this->imageFile);
    $this->imageThumbUri = dirname($this->imageUri) . '/thumbs';
  }
 
  public function getResize($width = null, $height = null)
  {
    if (null === $width && null === $height)
    {
      $width = 100;
    }
 
    preg_match('#^.*(\.[^.]*)$#', $this->imageFile, $matches);
    $extension = $matches[1];
    $thumbName = basename($this->imageFile, $extension) . '_' . ($width ?: 0) . 'x' . ($height ?: 0) . $extension;
    $thumbPath = dirname($this->imageFile) . '/thumbs';
 
    if (!is_file($thumbPath . '/' . $thumbName))
    {
      if (!is_dir($thumbPath))
      {
        mkdir($thumbPath, 0777, true);
      }
 
      if ($width && $height)
      {
        $master = Enum::AUTO;
      }
      elseif ($width)
      {
        $master = Enum::WIDTH;
      }
      else
      {
        $master = Enum::HEIGHT;
      }
 
      try
      {
        $handler = new Gd($this->imageFile);
        $handler->resize($width, $height, $master);
        $handler->save($thumbPath . '/' . $thumbName, 100);
      }
      catch (Exception $exception)
      {
//        debugVar($exception);
        try
        {
          $handler = ImageHandler::fromFile($this->imageFile, ImageHandler::LIB_IMAGICK);
          $handler->quality(100);
          $handler->resize($width, $height);
          $handler->format('jpg');
          $handler->save($thumbPath . '/' . $thumbName);
        }
        catch (Exception $exception)
        {
          $this->imageFile = BASE_PATH . '/public/upload/image_not_found.png';
          $handler = new Gd($this->imageFile);
          $handler->resize($width, $height, $master);
          $handler->save($thumbPath . '/' . $thumbName, 100);
        }
      }
 
    }
 
    return $this->imageThumbUri . '/' . $thumbName;
  }
 
  public function getRatio($width = null)
  {
    $imageLoc = self::getResize($width);
    if (false === empty($imageLoc))
    {
      [$width, $height, $type, $attr] = getimagesize($imageLoc);
      if ($height === 0 || true === empty($height))
      {
        $height = 1;
      }
      $aspect = $width / $height;
    }
    else
    {
      $aspect = 1;
    }
    return $aspect;
  }
 
  public function getUri()
  {
    return $this->imageUri;
  }
 
  public function exists()
  {
    return is_file($this->imageFile);
  }
 
  public static function loadImage($imageString, $returnFirst = true)
  {
    $imageString = trim($imageString);
    $imageList   = [];
 
    if (strpos($imageString, '[') === 0
      || strpos($imageString, '{') === 0
    )
    {
      $images = json_decode($imageString, true) ?: [];
    }
    else
    {
      $images = [$imageString];
    }
 
    if ($images)
    {
      foreach ($images as $image)
      {
        $handler = new Image($image);
 
        if ($handler->exists())
        {
          $imageList[] = $handler;
        }
      }
 
      if ($imageList)
      {
        return $returnFirst ? $imageList[0] : $imageList;
      }
    }
 
    return false;
  }
}
#2CLSystems\PhalCMS\Lib\Helper\Image->getResize
/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Image.php (95)
<?php
 
namespace CLSystems\PhalCMS\Lib\Helper;
//
//include_once "../../../../vendor/imagecow/imagecow/src/Image.php";
 
use Exception;
use Imagecow\Image as ImageHandler;
use Phalcon\Image\Adapter\Gd;
use Phalcon\Image\Enum;
 
class Image
{
  protected $imageUri;
  protected $imageFile;
  protected $imageThumbUri;
 
  public function __construct($imageFile)
  {
    if (strpos($imageFile, BASE_PATH . '/public/upload/') !== 0)
    {
      $imageFile = BASE_PATH . '/public/upload/' . $imageFile;
    }
 
    $this->imageFile     = $imageFile;
    $this->imageUri      = str_replace(BASE_PATH . '/public', DOMAIN, $this->imageFile);
    $this->imageThumbUri = dirname($this->imageUri) . '/thumbs';
  }
 
  public function getResize($width = null, $height = null)
  {
    if (null === $width && null === $height)
    {
      $width = 100;
    }
 
    preg_match('#^.*(\.[^.]*)$#', $this->imageFile, $matches);
    $extension = $matches[1];
    $thumbName = basename($this->imageFile, $extension) . '_' . ($width ?: 0) . 'x' . ($height ?: 0) . $extension;
    $thumbPath = dirname($this->imageFile) . '/thumbs';
 
    if (!is_file($thumbPath . '/' . $thumbName))
    {
      if (!is_dir($thumbPath))
      {
        mkdir($thumbPath, 0777, true);
      }
 
      if ($width && $height)
      {
        $master = Enum::AUTO;
      }
      elseif ($width)
      {
        $master = Enum::WIDTH;
      }
      else
      {
        $master = Enum::HEIGHT;
      }
 
      try
      {
        $handler = new Gd($this->imageFile);
        $handler->resize($width, $height, $master);
        $handler->save($thumbPath . '/' . $thumbName, 100);
      }
      catch (Exception $exception)
      {
//        debugVar($exception);
        try
        {
          $handler = ImageHandler::fromFile($this->imageFile, ImageHandler::LIB_IMAGICK);
          $handler->quality(100);
          $handler->resize($width, $height);
          $handler->format('jpg');
          $handler->save($thumbPath . '/' . $thumbName);
        }
        catch (Exception $exception)
        {
          $this->imageFile = BASE_PATH . '/public/upload/image_not_found.png';
          $handler = new Gd($this->imageFile);
          $handler->resize($width, $height, $master);
          $handler->save($thumbPath . '/' . $thumbName, 100);
        }
      }
 
    }
 
    return $this->imageThumbUri . '/' . $thumbName;
  }
 
  public function getRatio($width = null)
  {
    $imageLoc = self::getResize($width);
    if (false === empty($imageLoc))
    {
      [$width, $height, $type, $attr] = getimagesize($imageLoc);
      if ($height === 0 || true === empty($height))
      {
        $height = 1;
      }
      $aspect = $width / $height;
    }
    else
    {
      $aspect = 1;
    }
    return $aspect;
  }
 
  public function getUri()
  {
    return $this->imageUri;
  }
 
  public function exists()
  {
    return is_file($this->imageFile);
  }
 
  public static function loadImage($imageString, $returnFirst = true)
  {
    $imageString = trim($imageString);
    $imageList   = [];
 
    if (strpos($imageString, '[') === 0
      || strpos($imageString, '{') === 0
    )
    {
      $images = json_decode($imageString, true) ?: [];
    }
    else
    {
      $images = [$imageString];
    }
 
    if ($images)
    {
      foreach ($images as $image)
      {
        $handler = new Image($image);
 
        if ($handler->exists())
        {
          $imageList[] = $handler;
        }
      }
 
      if ($imageList)
      {
        return $returnFirst ? $imageList[0] : $imageList;
      }
    }
 
    return false;
  }
}
#3CLSystems\PhalCMS\Lib\Helper\Image->getRatio
/var/www/html/discounts-n-coupons.com/cache/volt/Widget_FlashNews_Tmpl_Content_BlogList.volt.php (26)
<div class="blog-list">
    <?php foreach ($posts as $post) { ?>
        <article class="uk-section uk-section-small uk-padding-remove-top">
            <header>
                <h3 class="uk-margin-remove-adjacent uk-text-bold uk-margin-small-bottom">
                    <a class="uk-link-reset" href="<?= $post->link ?>">
                        <?= html_entity_decode($post->t('title')) ?>
                    </a>
                </h3>
                <p class="uk-article-meta">
                    <!--<?= CLSystems\PhalCMS\Lib\Helper\Text::_('written-on', ['date' => CLSystems\PhalCMS\Lib\Helper\Date::relative($post->createdAt)]) ?>-->
 
                    <?php $category = $post->category; ?>
                    <?php if (!empty($category)) { ?>
                        <?= CLSystems\PhalCMS\Lib\Helper\Text::_('posted-in') . ' ' ?>
                        <a href="<?= $category->link ?>">
                            <?= $category->t('title') . ' | ' ?>
                        </a>
                    <?php } ?>
                    <?= CLSystems\PhalCMS\Lib\Helper\IconSvg::render('eye') . ' ' . CLSystems\PhalCMS\Lib\Helper\Text::plural('hits',$post->hits,['hits' => $post->hits]) . '.' ?>
                </p>
            </header>
 
            <?php $image = CLSystems\PhalCMS\Lib\Helper\Image::loadImage($post->image); ?>
            <?php if (!empty($image)) { ?>
                <?php $ratio = $image->getRatio(850); ?>
                <a href="<?= $post->link ?>">
                    <div style="--aspect-ratio: <?= $ratio ?>/1">
                        <img width="850" data-src="<?= $image->getResize(850) ?>" alt="<?= $this->escaper->attributes($post->t('title')) ?>" uk-img/>
                    </div>
                </a>
            <?php } ?>
 
            <?php $summary = trim($post->summary()); ?>
            <?php if (!empty($summary)) { ?>
                <div class="post-summary uk-text-meta uk-margin">
                    <?= html_entity_decode($summary) ?>
                </div>
            <?php } ?>
 
            <a href="<?= $post->link ?>"
               class="uk-button uk-button-default uk-button-small uk-margin">
                <?= CLSystems\PhalCMS\Lib\Helper\Text::_('read-more') ?>
            </a>
            <hr/>
        </article>
    <?php } ?>
    <?= $pagination ?>
</div>
#4Phalcon\Mvc\View\Engine\Volt->render
#5Phalcon\Mvc\View->engineRender
#6Phalcon\Mvc\View->partial
#7Phalcon\Mvc\View->getPartial
/var/www/html/discounts-n-coupons.com/src/app/Widget/FlashNews/FlashNews.php (110)
<?php
 
namespace CLSystems\PhalCMS\Widget\FlashNews;
 
use Phalcon\Paginator\Adapter\QueryBuilder as Paginator;
use CLSystems\PhalCMS\Lib\Factory;
use CLSystems\PhalCMS\Lib\Widget;
use CLSystems\PhalCMS\Lib\Mvc\Model\Post;
use CLSystems\PhalCMS\Lib\Mvc\Model\PostCategory;
 
class FlashNews extends Widget
{
    public function getContent()
    {
        $cid = $this->widget->get('params.categoryIds', []);
        $postsNum = $this->widget->get('params.postsNum', 10, 'uint');
 
        if (count($cid)) {
            $bindIds = [];
            $nested = new PostCategory;
 
            foreach ($cid as $id) {
                if ($tree = $nested->getTree((int)$id)) {
                    foreach ($tree as $node) {
                        $bindIds[] = (int)$node->id;
                    }
                }
            }
 
            if (empty($bindIds)) {
                return null;
            }
 
            $queryBuilder = Post::query()
                ->createBuilder()
                ->from(['post' => Post::class])
                ->where('post.parentId IN ({cid:array})', ['cid' => array_unique($bindIds)])
                ->andWhere('post.state = :state:', ['state' => 'P']);
 
            switch ($this->widget->get('params.orderBy', 'latest'))
      {
                case 'random':
          $db = Factory::getService('db');
          $randomIds = [];
          $selectedIds = $db->query("
            SELECT a.id
            FROM wgz1tq_ucm_items a
            JOIN ( SELECT id FROM
                ( SELECT id
                  FROM ( SELECT MIN(id) + (MAX(id) - MIN(id) + 1 - 50) * RAND() AS start FROM wgz1tq_ucm_items ) AS init
                  JOIN wgz1tq_ucm_items y
                  WHERE    y.id > init.start
                  ORDER BY y.id
                  LIMIT 500           -- Inflated to deal with gaps
                ) z ORDER BY RAND()
                LIMIT 10                -- number of rows desired (change to 1 if looking for a single row)
               ) r ON a.id = r.id;
          ")->fetchAll();
          foreach ($selectedIds as $selectedId)
          {
            $randomIds[] = $selectedId['id'];
          }
 
          $queryBuilder
            ->andWhere('post.id IN ({ids:array})', ['ids' => $randomIds])
            ->orderBy('post.id asc');
                    break;
 
                case 'views':
                    $queryBuilder->orderBy('hits desc');
                    break;
 
                case 'titleAsc':
                    $queryBuilder->orderBy('title asc');
                    break;
 
                case 'titleDesc':
                    $queryBuilder->orderBy('title desc');
                    break;
 
                default:
                    $queryBuilder->orderBy('id desc');
                    break;
            }
 
            // Init renderer
            $renderer = $this->getRenderer();
            $partial = 'Content/' . $this->getPartialId();
 
            if ('BlogList' === $this->widget->get('params.displayLayout', 'FlashNews'))
      {
                $paginator = new Paginator(
                    [
                        'builder' => $queryBuilder,
                        'limit'   => $postsNum,
                        'page'    => Factory::getService('request')->get('page', ['absint'], 0),
                    ]
                );
 
                $paginate = $paginator->paginate();
 
                if ($paginate->getTotalItems()) {
                    return $renderer->getPartial(
                        $partial,
                        [
                            'posts'      => $paginate->getItems(),
                            'pagination' => Factory::getService('view')->getPartial(
                                'Pagination/Pagination',
                                [
                                    'paginator' => $paginator,
                                ]
                            ),
                        ]
                    );
                }
            }
      else
      {
                $posts = $queryBuilder->limit($postsNum, 0)->getQuery()->execute();
 
                if ($posts->count()) {
                    return $renderer->getPartial($partial, ['posts' => $posts]);
                }
            }
        }
 
        return null;
    }
 
  public static function toSql(\Phalcon\Mvc\Model\Query\BuilderInterface $builder) : string
  {
    $data = $builder->getQuery()->getSql();
 
    ['sql' => $sql, 'bind' => $binds, 'bindTypes' => $bindTypes] = $data;
 
    $finalSql = $sql;
    foreach ($binds as $name => $value) {
      $formattedValue = $value;
 
      if (\is_object($value)) {
        $formattedValue = (string)$value;
      }
 
      if (\is_string($formattedValue)) {
        $formattedValue = sprintf("'%s'", $formattedValue);
      }
      $finalSql = str_replace(":$name:", $formattedValue, $finalSql);
    }
 
    return $finalSql;
  }
}
#8CLSystems\PhalCMS\Widget\FlashNews\FlashNews->getContent
/var/www/html/discounts-n-coupons.com/src/app/Lib/Widget.php (84)
<?php
 
namespace CLSystems\PhalCMS\Lib;
 
use CLSystems\PhalCMS\Lib\Mvc\View\ViewBase;
use CLSystems\Php\Registry;
use ReflectionClass;
 
class Widget
{
  /** @var Registry */
  protected $widget;
 
  final public function __construct(Registry $widget)
  {
    $this->widget = $widget;
    $this->onConstruct();
  }
 
  public function onConstruct()
  {
 
  }
 
  public function getTitle()
  {
    return $this->widget->get('title');
  }
 
  public function getRenderData()
  {
    return [
      'widget' => $this->widget,
    ];
  }
 
  public function getPartialId()
  {
    return $this->widget->get('params.displayLayout', $this->widget->get('manifest.name'));
  }
 
  public function getContent()
  {
    $content = $this->widget->get('params.content', null);
 
    if (null !== $content && is_string($content))
    {
      return $content;
    }
 
    return $this->getRenderer()
      ->getPartial('Content/' . $this->getPartialId(), $this->getRenderData());
  }
 
  public function getRenderer()
  {
    static $renderers = [];
    $class = get_class($this);
 
    if (isset($renderers[$class]))
    {
      return $renderers[$class];
    }
 
    $renderers[$class] = ViewBase::getInstance();
    $reflectionClass   = new ReflectionClass($this);
    $renderers[$class]->setViewsDir(
      [
        TPL_SITE_PATH . '/Tmpl/Widget',
        TPL_SITE_PATH . '/Widget',
        dirname($reflectionClass->getFileName()) . '/Tmpl/',
        TPL_SYSTEM_PATH . '/Widget/',
      ]
    );
 
    $renderers[$class]->disable();
 
    return $renderers[$class];
  }
 
  public function render($wrapper = null)
  {
    $title   = $this->getTitle();
    $content = $this->getContent();
 
    if ($title || $content)
    {
      $widgetData = [
        'widget'  => $this->widget,
        'title'   => $title,
        'content' => $content,
      ];
 
      if (null === $wrapper)
      {
        $wrapper = 'Wrapper';
      }
 
      return $this->getRenderer()
        ->getPartial('Wrapper/' . $wrapper, $widgetData);
    }
 
    return null;
  }
}
#9CLSystems\PhalCMS\Lib\Widget->render
/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Widget.php (144)
<?php
 
namespace CLSystems\PhalCMS\Lib\Helper;
 
use Phalcon\Autoload\Loader;
use CLSystems\PhalCMS\Lib\Mvc\Model\Translation;
use CLSystems\PhalCMS\Lib\Widget as CmsWidget;
use CLSystems\PhalCMS\Lib\Mvc\Model\Config as ConfigModel;
use CLSystems\PhalCMS\Lib\Form\Form;
use CLSystems\PhalCMS\Lib\Form\Field;
use CLSystems\Php\Registry;
 
class Widget
{
  /** @var array */
  protected static $widgets = null;
 
  protected static function appendWidget($widgetPath, $coreWidgets)
  {
    $widgetName  = basename($widgetPath);
    $widgetClass = 'CLSystems\\PhalCMS\\Widget\\' . $widgetName . '\\' . $widgetName;
    $configFile  = $widgetPath . '/Config.php';
 
    if (class_exists($widgetClass)
      && is_file($configFile)
    )
    {
      $widgetConfig = new Registry;
      $widgetConfig->set('isCmsCore', in_array($widgetClass, $coreWidgets));
      $widgetConfig->set('manifest', $widgetConfig->parse($configFile));
      self::$widgets[$widgetClass] = $widgetConfig;
    }
  }
 
  public static function getWidgets()
  {
    if (null === self::$widgets)
    {
      self::$widgets   = [];
      $coreWidgets     = Config::get('core.widgets', []);
      $template        = Config::getTemplate()->name;
      $widgetTmplPaths = [
        APP_PATH . '/Tmpl/Site/' . $template . '/Tmpl/Widget',
        APP_PATH . '/Tmpl/Site/' . $template . '/Widget',
      ];
 
      foreach ($widgetTmplPaths as $widgetTmplPath)
      {
        if (is_dir($widgetTmplPath))
        {
          (new Loader)
            ->setNamespaces(
              [
                'CLSystems\\PhalCMS\\Widget' => $widgetTmplPath,
              ]
            )
            ->register();
 
          foreach (FileSystem::scanDirs($widgetTmplPath) as $widgetPath)
          {
            self::appendWidget($widgetPath, $coreWidgets);
          }
        }
      }
 
      foreach (FileSystem::scanDirs(WIDGET_PATH) as $widgetPath)
      {
        self::appendWidget($widgetPath, $coreWidgets);
      }
 
      $plugins = Event::getPlugins(true);
 
      if (!empty($plugins['Cms']))
      {
        /** @var Registry $pluginConfig */
        foreach ($plugins['Cms'] as $pluginConfig)
        {
          $widgetPluginPath = PLUGIN_PATH . '/Cms/' . $pluginConfig->get('manifest.name') . '/Widget';
 
          if (is_dir($widgetPluginPath))
          {
            foreach (FileSystem::scanDirs($widgetPluginPath) as $widgetPath)
            {
              self::appendWidget($widgetPath, $coreWidgets);
            }
          }
        }
      }
    }
 
    return self::$widgets;
  }
 
  public static function renderPosition($position, $wrapper = null)
  {
    $results     = '';
    $widgetItems = self::getWidgetItems();
 
    if (isset($widgetItems[$position]))
    {
      foreach ($widgetItems[$position] as $widget)
      {
        $results .= self::render($widget, $wrapper);
      }
    }
 
    return $results;
  }
 
  public static function createWidget($widgetName, $params = [], $render = true, $wrapper = null)
  {
    $widgets     = self::getWidgets();
    $widgetClass = 'CLSystems\\PhalCMS\\Widget\\' . $widgetName . '\\' . $widgetName;
 
    if (!isset($widgets[$widgetClass]))
    {
      return false;
    }
 
    $widgetConfig = clone $widgets[$widgetClass];
    $widgetConfig->set('params', $widgetConfig->parse($params));
    $widgetConfig->set('id', null);
 
    if ($render)
    {
      return self::render($widgetConfig, $wrapper);
    }
 
    return $widgetConfig;
  }
 
  public static function render(Registry $widgetConfig, $wrapper = null)
  {
    $widgets     = self::getWidgets();
    $name        = $widgetConfig->get('manifest.name');
    $widgetClass = 'CLSystems\\PhalCMS\\Widget\\' . $name . '\\' . $name;
 
    if (isset($widgets[$widgetClass]))
    {
      $widget = new $widgetClass($widgetConfig);
 
      if ($widget instanceof CmsWidget)
      {
        return $widget->render($wrapper);
      }
    }
 
    return null;
  }
 
  public static function getWidgetItems()
  {
    static $widgetItems = null;
 
    if (null === $widgetItems)
    {
      $widgetItems = [];
      $widgets     = self::getWidgets();
      $entities    = ConfigModel::find(
        [
          'conditions' => 'context LIKE :context:',
          'bind'       => [
            'context' => 'cms.config.widget.item.%',
          ],
          'order'      => 'ordering ASC',
        ]
      );
 
      $translate = Language::isMultilingual() && Uri::isClient('site');
 
      foreach ($entities as $widget)
      {
        /** @var ConfigModel $widget */
        $widgetConfig = new Registry($widget->data);
        $widgetConfig->set('id', $widget->id);
        $name        = $widgetConfig->get('manifest.name');
        $widgetClass = 'CLSystems\\PhalCMS\\Widget\\' . $name . '\\' . $name;
 
        if (isset($widgets[$widgetClass]))
        {
          if ($translate)
          {
            $translations = $widget->getTranslations();
 
            if (isset($translations['data']))
            {
              $widgetConfig->merge($translations['data']);
            }
          }
 
          // Merge manifest and some global data
          $widgetConfig->merge($widgets[$widgetClass]);
          $widgetItems[$widgetConfig->get('position')][] = $widgetConfig;
        }
      }
    }
 
    return $widgetItems;
  }
 
  public static function renderForm(Registry $widgetData)
  {
    $widgetId   = $widgetData->get('id', 0, 'uint');
    $idIndex    = $widgetId ?: uniqid();
    $configForm = '<div class="widget-params">';
    $form       = new Form('FormData',
      [
        [
          'name'    => 'id',
          'type'    => 'Hidden',
          'value'   => $widgetId,
          'id'      => 'FormData-id' . $idIndex,
          'filters' => ['uint'],
        ],
        [
          'name'     => 'name',
          'type'     => 'Hidden',
          'required' => true,
          'value'    => $widgetData->get('manifest.name'),
          'id'       => 'FormData-name' . $idIndex,
          'filters'  => ['string', 'trim'],
        ],
        [
          'name'      => 'title',
          'type'      => 'Text',
          'label'     => 'title',
          'translate' => true,
          'value'     => $widgetData->get('title'),
          'id'        => 'FormData-title' . $idIndex,
          'filters'   => ['string', 'trim'],
        ],
        [
          'name'     => 'position',
          'type'     => 'Hidden',
          'required' => true,
          'value'    => $widgetData->get('position'),
          'id'       => 'FormData-position' . $idIndex,
          'filters'  => ['string', 'trim'],
        ],
      ]
    );
 
    $transParamsData = [];
 
    if ($widgetId && Language::isMultilingual())
    {
      $transData = Translation::find(
        [
          'conditions' => 'translationId LIKE :translationId:',
          'bind'       => [
            'translationId' => '%.config_data.id=' . $widgetId . '.data',
          ],
        ]
      );
 
      if ($transData->count())
      {
        $titleField = $form->getField('title');
 
        foreach ($transData as $transDatum)
        {
          $registry = new Registry($transDatum->translatedValue);
          $parts    = explode('.', $transDatum->translationId);
          $language = $parts[0];
          $titleField->setTranslationData($registry->get('title'), $language);
 
          foreach ($registry->get('params', []) as $name => $value)
          {
            $transParamsData[$name][$language] = $value;
          }
        }
      }
    }
 
    $configForm .= $form->renderFields();
 
    if ($widgetData->has('manifest.params'))
    {
      $form = new Form('FormData.params', $widgetData->get('manifest.params', []));
      $form->bind($widgetData->get('params', []), $transParamsData);
 
      foreach ($form->getFields() as $field)
      {
        /** @var Field $field */
        $field->setId($field->getId() . $idIndex);
        $configForm .= $field->render();
      }
    }
 
    $configForm .= '</div>';
 
    return $configForm;
  }
}
#10CLSystems\PhalCMS\Lib\Helper\Widget::render
/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Widget.php (103)
<?php
 
namespace CLSystems\PhalCMS\Lib\Helper;
 
use Phalcon\Autoload\Loader;
use CLSystems\PhalCMS\Lib\Mvc\Model\Translation;
use CLSystems\PhalCMS\Lib\Widget as CmsWidget;
use CLSystems\PhalCMS\Lib\Mvc\Model\Config as ConfigModel;
use CLSystems\PhalCMS\Lib\Form\Form;
use CLSystems\PhalCMS\Lib\Form\Field;
use CLSystems\Php\Registry;
 
class Widget
{
  /** @var array */
  protected static $widgets = null;
 
  protected static function appendWidget($widgetPath, $coreWidgets)
  {
    $widgetName  = basename($widgetPath);
    $widgetClass = 'CLSystems\\PhalCMS\\Widget\\' . $widgetName . '\\' . $widgetName;
    $configFile  = $widgetPath . '/Config.php';
 
    if (class_exists($widgetClass)
      && is_file($configFile)
    )
    {
      $widgetConfig = new Registry;
      $widgetConfig->set('isCmsCore', in_array($widgetClass, $coreWidgets));
      $widgetConfig->set('manifest', $widgetConfig->parse($configFile));
      self::$widgets[$widgetClass] = $widgetConfig;
    }
  }
 
  public static function getWidgets()
  {
    if (null === self::$widgets)
    {
      self::$widgets   = [];
      $coreWidgets     = Config::get('core.widgets', []);
      $template        = Config::getTemplate()->name;
      $widgetTmplPaths = [
        APP_PATH . '/Tmpl/Site/' . $template . '/Tmpl/Widget',
        APP_PATH . '/Tmpl/Site/' . $template . '/Widget',
      ];
 
      foreach ($widgetTmplPaths as $widgetTmplPath)
      {
        if (is_dir($widgetTmplPath))
        {
          (new Loader)
            ->setNamespaces(
              [
                'CLSystems\\PhalCMS\\Widget' => $widgetTmplPath,
              ]
            )
            ->register();
 
          foreach (FileSystem::scanDirs($widgetTmplPath) as $widgetPath)
          {
            self::appendWidget($widgetPath, $coreWidgets);
          }
        }
      }
 
      foreach (FileSystem::scanDirs(WIDGET_PATH) as $widgetPath)
      {
        self::appendWidget($widgetPath, $coreWidgets);
      }
 
      $plugins = Event::getPlugins(true);
 
      if (!empty($plugins['Cms']))
      {
        /** @var Registry $pluginConfig */
        foreach ($plugins['Cms'] as $pluginConfig)
        {
          $widgetPluginPath = PLUGIN_PATH . '/Cms/' . $pluginConfig->get('manifest.name') . '/Widget';
 
          if (is_dir($widgetPluginPath))
          {
            foreach (FileSystem::scanDirs($widgetPluginPath) as $widgetPath)
            {
              self::appendWidget($widgetPath, $coreWidgets);
            }
          }
        }
      }
    }
 
    return self::$widgets;
  }
 
  public static function renderPosition($position, $wrapper = null)
  {
    $results     = '';
    $widgetItems = self::getWidgetItems();
 
    if (isset($widgetItems[$position]))
    {
      foreach ($widgetItems[$position] as $widget)
      {
        $results .= self::render($widget, $wrapper);
      }
    }
 
    return $results;
  }
 
  public static function createWidget($widgetName, $params = [], $render = true, $wrapper = null)
  {
    $widgets     = self::getWidgets();
    $widgetClass = 'CLSystems\\PhalCMS\\Widget\\' . $widgetName . '\\' . $widgetName;
 
    if (!isset($widgets[$widgetClass]))
    {
      return false;
    }
 
    $widgetConfig = clone $widgets[$widgetClass];
    $widgetConfig->set('params', $widgetConfig->parse($params));
    $widgetConfig->set('id', null);
 
    if ($render)
    {
      return self::render($widgetConfig, $wrapper);
    }
 
    return $widgetConfig;
  }
 
  public static function render(Registry $widgetConfig, $wrapper = null)
  {
    $widgets     = self::getWidgets();
    $name        = $widgetConfig->get('manifest.name');
    $widgetClass = 'CLSystems\\PhalCMS\\Widget\\' . $name . '\\' . $name;
 
    if (isset($widgets[$widgetClass]))
    {
      $widget = new $widgetClass($widgetConfig);
 
      if ($widget instanceof CmsWidget)
      {
        return $widget->render($wrapper);
      }
    }
 
    return null;
  }
 
  public static function getWidgetItems()
  {
    static $widgetItems = null;
 
    if (null === $widgetItems)
    {
      $widgetItems = [];
      $widgets     = self::getWidgets();
      $entities    = ConfigModel::find(
        [
          'conditions' => 'context LIKE :context:',
          'bind'       => [
            'context' => 'cms.config.widget.item.%',
          ],
          'order'      => 'ordering ASC',
        ]
      );
 
      $translate = Language::isMultilingual() && Uri::isClient('site');
 
      foreach ($entities as $widget)
      {
        /** @var ConfigModel $widget */
        $widgetConfig = new Registry($widget->data);
        $widgetConfig->set('id', $widget->id);
        $name        = $widgetConfig->get('manifest.name');
        $widgetClass = 'CLSystems\\PhalCMS\\Widget\\' . $name . '\\' . $name;
 
        if (isset($widgets[$widgetClass]))
        {
          if ($translate)
          {
            $translations = $widget->getTranslations();
 
            if (isset($translations['data']))
            {
              $widgetConfig->merge($translations['data']);
            }
          }
 
          // Merge manifest and some global data
          $widgetConfig->merge($widgets[$widgetClass]);
          $widgetItems[$widgetConfig->get('position')][] = $widgetConfig;
        }
      }
    }
 
    return $widgetItems;
  }
 
  public static function renderForm(Registry $widgetData)
  {
    $widgetId   = $widgetData->get('id', 0, 'uint');
    $idIndex    = $widgetId ?: uniqid();
    $configForm = '<div class="widget-params">';
    $form       = new Form('FormData',
      [
        [
          'name'    => 'id',
          'type'    => 'Hidden',
          'value'   => $widgetId,
          'id'      => 'FormData-id' . $idIndex,
          'filters' => ['uint'],
        ],
        [
          'name'     => 'name',
          'type'     => 'Hidden',
          'required' => true,
          'value'    => $widgetData->get('manifest.name'),
          'id'       => 'FormData-name' . $idIndex,
          'filters'  => ['string', 'trim'],
        ],
        [
          'name'      => 'title',
          'type'      => 'Text',
          'label'     => 'title',
          'translate' => true,
          'value'     => $widgetData->get('title'),
          'id'        => 'FormData-title' . $idIndex,
          'filters'   => ['string', 'trim'],
        ],
        [
          'name'     => 'position',
          'type'     => 'Hidden',
          'required' => true,
          'value'    => $widgetData->get('position'),
          'id'       => 'FormData-position' . $idIndex,
          'filters'  => ['string', 'trim'],
        ],
      ]
    );
 
    $transParamsData = [];
 
    if ($widgetId && Language::isMultilingual())
    {
      $transData = Translation::find(
        [
          'conditions' => 'translationId LIKE :translationId:',
          'bind'       => [
            'translationId' => '%.config_data.id=' . $widgetId . '.data',
          ],
        ]
      );
 
      if ($transData->count())
      {
        $titleField = $form->getField('title');
 
        foreach ($transData as $transDatum)
        {
          $registry = new Registry($transDatum->translatedValue);
          $parts    = explode('.', $transDatum->translationId);
          $language = $parts[0];
          $titleField->setTranslationData($registry->get('title'), $language);
 
          foreach ($registry->get('params', []) as $name => $value)
          {
            $transParamsData[$name][$language] = $value;
          }
        }
      }
    }
 
    $configForm .= $form->renderFields();
 
    if ($widgetData->has('manifest.params'))
    {
      $form = new Form('FormData.params', $widgetData->get('manifest.params', []));
      $form->bind($widgetData->get('params', []), $transParamsData);
 
      foreach ($form->getFields() as $field)
      {
        /** @var Field $field */
        $field->setId($field->getId() . $idIndex);
        $configForm .= $field->render();
      }
    }
 
    $configForm .= '</div>';
 
    return $configForm;
  }
}
#11CLSystems\PhalCMS\Lib\Helper\Widget::renderPosition
/var/www/html/discounts-n-coupons.com/cache/volt/Tmpl_Site_PhalCMS_Block_Content.volt.php (14)
<div class="uk-section uk-section-small uk-section-default">
    <div class="uk-container">
        <?php if (CLSystems\PhalCMS\Lib\Helper\Uri::isHome()) { ?>
            <div class="uk-margin">
                <?= CLSystems\PhalCMS\Lib\Helper\Widget::renderPosition('FlashNews', 'Raw') ?>
            </div>
            <div class="uk-margin">
                <?= CLSystems\PhalCMS\Lib\Helper\Widget::renderPosition('Trending', 'HeadingLine') ?>
            </div>
            <div class="uk-margin">
                <div uk-grid>
                    <div class="uk-width-2-3@m">
                        <div uk-margin>
                            <?= CLSystems\PhalCMS\Lib\Helper\Widget::renderPosition('LatestNews', 'HeadingLine') ?>
                        </div>
                    </div>
                    <div class="uk-width-1-3@m">
                        <div uk-margin>
                            <?= CLSystems\PhalCMS\Lib\Helper\Widget::renderPosition('Aside', 'HeadingLine') ?>
                        </div>
                    </div>
                </div>
            </div>
        <?php } else { ?>
            <div uk-grid>
                <div class="uk-width-2-3@m">
                    <main id="main-content">
                        <?= $this->getContent() ?>
                    </main>
                </div>
                <div class="uk-width-1-3@m">
                    <aside id="aside">
                        <?= CLSystems\PhalCMS\Lib\Helper\Widget::renderPosition('Aside', 'HeadingLine') ?>
                    </aside>
                </div>
            </div>
        <?php } ?>
    </div>
</div>
#12Phalcon\Mvc\View\Engine\Volt->render
#13Phalcon\Mvc\View->engineRender
#14Phalcon\Mvc\View->partial
#15Phalcon\Mvc\View\Engine\AbstractEngine->partial
/var/www/html/discounts-n-coupons.com/cache/volt/Tmpl_Site_PhalCMS_Index.volt.php (100)
<!DOCTYPE html>
<html lang="<?= CLSystems\PhalCMS\Lib\Helper\Text::_('locale.code') ?>"
      dir="<?= CLSystems\PhalCMS\Lib\Helper\Text::_('locale.direction') ?>"
      data-uri-home="<?= (CLSystems\PhalCMS\Lib\Helper\Uri::isHome() ? 'true' : 'false') ?>"
      data-uri-root="<?= constant('DOMAIN') ?>"
      data-uri-base="<?= CLSystems\PhalCMS\Lib\Helper\Uri::getBaseUriPrefix() ?>">
<head>
    <meta name='ir-site-verification-token' value='-2029198168' />
    <meta charset="utf-8"/>
    <meta name="Cache-Control" content="public; max-age=262800">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <meta name="tradetracker-site-verification" content="c70bb2eb887731a6f422e7c73327fc4c9b537044" />
    <meta name="verification" content="3f8422a0391b4139f9757b9126474384" />
    <meta name="theme-color" content="#4285f4">
    <link rel="manifest" href="<?= constant('DOMAIN') . '/manifest.json' ?>">
    <!-- VDS1 -->
    <?php if (isset($metadata)) { ?>
        <?php if (!empty($metadata->metaKeys)) { ?>
            <meta name="keywords" content="<?= $metadata->metaKeys ?>"/>
        <?php } ?>
        <?php if (!empty($metadata->metaDesc)) { ?>
            <meta name="description" content="<?= $metadata->metaDesc ?>"/>
        <?php } ?>
        <?php if (!empty($metadata->contentRights)) { ?>
            <meta name="rights" content="<?= $metadata->contentRights ?>"/>
        <?php } ?>
        <?php if (!empty($metadata->metaRobots)) { ?>
            <meta name="robots" content="<?= $metadata->metaRobots ?>"/>
        <?php } ?>
 
        <?php if (!empty($metadata->metaTitle)) { ?>
            <?php if ($metadata->metaTitle == $siteName) { ?>
                <title><?= CLSystems\PhalCMS\Lib\Helper\Text::_('catch-phrase') ?> | <?= $this->escaper->html($siteName) ?></title>
            <?php } else { ?>
                <title><?= CLSystems\PhalCMS\Lib\Helper\Text::_($metadata->metaTitle) ?> | <?= CLSystems\PhalCMS\Lib\Helper\Date::getMonthYear() ?> | <?= $this->escaper->html($siteName) ?></title>
            <?php } ?>
        <?php } ?>
 
    <?php } ?>
 
    <link rel="canonical" href="<?= CLSystems\PhalCMS\Lib\Helper\Uri::fromServer() ?>" />
 
    
    <link rel="shortcut icon" href="<?= constant('DOMAIN') . '/assets/images/Sale-55x55.webp' ?>"/>
    <link rel="apple-touch-icon" href="<?= constant('DOMAIN') . '/assets/images/Sale-55x55.webp' ?>"/>
 
    <script src="<?= constant('DOMAIN') . '/assets/js/jquery-3.6.0/jquery.min.js' ?>"></script>
 
    <link rel="stylesheet" type="text/css" href="<?= constant('DOMAIN') . '/assets/css/uikit.min.css' ?>"/>
    <link rel="stylesheet" type="text/css" href="<?= constant('DOMAIN') . '/assets/css/custom.css' ?>?<?= date('ymdH') ?>"/>
 
    <?= implode(PHP_EOL, CLSystems\PhalCMS\Lib\Helper\Event::trigger('onSiteHead', ['System', 'Cms'])) ?>
 
    <script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "Organization",
            "name": "Discounts-N-Coupons",
            "url": "https://discounts-n-coupons.com",
            "description": "Are you completely addicted to discounts and coupons? Then view our very extensive range. Grab your discount quickly.",
            "image": "<?= constant('DOMAIN') . '/assets/images/icon-sale-shopping-bag.webp' ?>",
            "logo": "<?= constant('DOMAIN') . '/assets/images/icon-sale-shopping-bag-55x65.webp' ?>",
            "telephone": "0647794655",
            "address": {
                "@type": "PostalAddress",
                "streetAddress": "Molenweg 13",
                "addressLocality": "Putten",
                "addressRegion": "GLD",
                "postalCode": "3882AB",
                "addressCountry": "Nederland"
            }
        }
    </script>
 
    <script type="application/ld+json">
        {
            "@context": "https://schema.org",
            "@type": "WebSite",
            "name": "Discounts-N-Coupons",
            "url": "https://discounts-n-coupons.com",
            "potentialAction": {
                "@type": "SearchAction",
                "query-input": "required name=query",
                "target": "https://discounts-n-coupons.com/search?q={query}"
            }
        }
    </script>
</head>
<body>
 
<?= implode(PHP_EOL, CLSystems\PhalCMS\Lib\Helper\Event::trigger('onSiteBeforeContent', [], ['System', 'Cms'])) ?>
 
 
 
    <?= $this->partial('Block/BeforeContent') ?>
 
 
 
 
    <?= $this->partial('Block/Content') ?>
 
 
 
 
    <?= $this->partial('Block/AfterContent') ?>
 
 
 
<?= implode(PHP_EOL, CLSystems\PhalCMS\Lib\Helper\Event::trigger('onSiteAfterContent', [], ['System', 'Cms'])) ?>
 
 
 
 
<?= implode(PHP_EOL, CLSystems\PhalCMS\Lib\Helper\Event::trigger('onSiteAfterRender', [], ['System', 'Cms'])) ?>
 
<script defer src="<?= constant('DOMAIN') . '/assets/js/uikit-3.15.22/uikit.min.js' ?>"></script>
<script defer src="<?= constant('DOMAIN') . '/assets/js/uikit-3.15.22/uikit-icons.min.js' ?>"></script>
 
</body>
</html>
#16Phalcon\Mvc\View\Engine\Volt->render
#17Phalcon\Mvc\View->engineRender
#18Phalcon\Mvc\View->processRender
#19Phalcon\Mvc\View->render
#20Phalcon\Mvc\Application->handle
/var/www/html/discounts-n-coupons.com/src/app/Lib/CmsApplication.php (117)
<?php
 
namespace CLSystems\PhalCMS\Lib;
 
use Phalcon\Autoload\Loader;
use Phalcon\Http\Response;
use Phalcon\Events\Event;
use Phalcon\Mvc\Application;
use Phalcon\Mvc\Dispatcher;
use Phalcon\Mvc\View;
use CLSystems\PhalCMS\Lib\Helper\Asset;
use CLSystems\PhalCMS\Lib\Helper\Config;
use CLSystems\PhalCMS\Lib\Helper\Uri;
use CLSystems\PhalCMS\Lib\Helper\State;
use CLSystems\PhalCMS\Lib\Helper\User;
use CLSystems\PhalCMS\Lib\Helper\Event as EventHelper;
use CLSystems\PhalCMS\Lib\Mvc\View\ViewBase;
use CLSystems\Php\Registry;
use MatthiasMullie\Minify;
use Exception;
 
class CmsApplication extends Application
{
    public function execute()
    {
        try {
            $eventsManager = $this->di->getShared('eventsManager');
            $eventsManager->attach('application:beforeSendResponse', $this);
            $plugins = EventHelper::getPlugins();
            $systemEvents = [
                'application:beforeSendResponse',
                'dispatch:beforeExecuteRoute',
                'dispatch:beforeException',
                'dispatch:beforeDispatch',
                'dispatch:afterDispatch',
                'dispatch:afterInitialize',
            ];
 
            foreach ($plugins['System'] as $className => $config) {
                $handler = EventHelper::getHandler($className, $config);
 
                foreach ($systemEvents as $systemEvent) {
                    $eventsManager->attach($systemEvent, $handler);
                }
            }
 
            // Update view dirs
            define('TPL_SITE_PATH', APP_PATH . '/Tmpl/Site/' . Config::get('siteTemplate', 'PhalCMS'));
            define('TPL_ADMINISTRATOR_PATH', APP_PATH . '/Tmpl/Administrator');
            define('TPL_SYSTEM_PATH', APP_PATH . '/Tmpl/System');
 
            if (Uri::isClient('site')) {
                $viewDirs = [
                    TPL_SITE_PATH . '/Tmpl/',
                    TPL_SITE_PATH . '/',
                ];
            } else {
                $viewDirs = [
                    TPL_ADMINISTRATOR_PATH . '/',
                ];
            }
 
            foreach (['System', 'Cms'] as $plgGroup) {
                if (isset($plugins[$plgGroup])) {
                    /**
                     * @var string $pluginClass
                     * @var Registry $pluginConfig
                     */
 
 
                    foreach ($plugins[$plgGroup] as $pluginClass => $pluginConfig) {
                        $pluginName = $pluginConfig->get('manifest.name');
                        $pluginPath = PLUGIN_PATH . '/' . $plgGroup . '/' . $pluginName;
                        $psrPaths = [];
 
                        if (is_dir($pluginPath . '/Tmpl')) {
                            $viewDirs[] = $pluginPath . '/Tmpl/';
                        }
 
                        if (is_dir($pluginPath . '/Lib')) {
                            $psrPaths['CLSystems\\PhalCMS\\Lib'] = $pluginPath . '/Lib';
                        }
 
                        if (is_dir($pluginPath . '/Widget')) {
                            $psrPaths['CLSystems\\PhalCMS\\Widget'] = $pluginPath . '/Widget';
                        }
 
                        if ($psrPaths) {
                            (new Loader)
                                ->setNamespaces($psrPaths, true)
                                ->register();
                        }
                    }
                }
            }
 
            $viewDirs[] = TPL_SYSTEM_PATH . '/';
 
            /** @var ViewBase $view */
            $view = $this->di->getShared('view');
            $requestUri = $_SERVER['REQUEST_URI'];
 
            if (Config::get('siteOffline') === 'Y'
                && !User::getInstance()->access('super')
            ) {
                $this->view->setMainView('Offline/Index');
 
                if (strpos($requestUri, '/user/') !== 0) {
                    $requestUri = '';
                }
            } else {
                $view->setMainView('Index');
            }
 
            $view->setViewsDir($viewDirs);
            $this->setEventsManager($eventsManager);
            $this->handle($requestUri)->send();
        } catch (Exception $e) {
            if (true === DEVELOPMENT_MODE) {
                // Let Phalcon Debug catch this
                throw $e;
            }
 
            try {
                if (User::getInstance()->access('super')) {
                    State::setMark('exception', $e);
                }
 
                /**
                 * @var Dispatcher $dispatcher
                 * @var View $view
                 */
                $dispatcher = $this->getDI()->getShared('dispatcher');
                $dispatcher->setControllerName(Uri::isClient('administrator') ? 'admin_error' : 'error');
                $dispatcher->setActionName('show');
                $dispatcher->setParams(
                    [
                        'code'    => $e->getCode(),
                        'message' => $e->getMessage(),
                    ]
                );
 
                $view = $this->getDI()->getShared('view');
                $view->start();
                $dispatcher->dispatch();
                $view->render(
                    $dispatcher->getControllerName(),
                    $dispatcher->getActionName(),
                    $dispatcher->getParams()
                );
                $view->finish();
                echo $view->getContent();
            } catch (Exception $e2) {
                debugVar($e2->getMessage());
            }
        }
    }
 
    protected function getCompressor($type)
    {
        if ('css' === $type) {
            $compressor = new Minify\CSS;
            $compressor->setImportExtensions(
                [
                    'gif' => 'data:image/gif',
                    'png' => 'data:image/png',
                    'svg' => 'data:image/svg+xml',
                ]
            );
        } else {
            $compressor = new Minify\JS;
        }
 
        return $compressor;
    }
 
    protected function compressAssets()
    {
        $basePath = PUBLIC_PATH . '/assets';
        $assets = Factory::getService('assets');
 
        foreach (Asset::getFiles() as $type => $files) {
            $fileName = md5(implode(':', $files)) . '.' . $type;
            $filePath = $basePath . '/compressed/' . $fileName;
            $fileUri = DOMAIN . '/assets/compressed/' . $fileName . (DEVELOPMENT_MODE ? '?' . time() : '');
            $hasAsset = is_file($filePath);
            $ucType = ucfirst($type);
            $addFunc = 'add' . $ucType;
 
            if ($hasAsset && !DEVELOPMENT_MODE) {
                call_user_func_array([$assets, $addFunc], [$fileUri, false]);
                continue;
            }
 
            $compressor = self::getCompressor($type);
 
            foreach ($files as $file) {
                $compressor->add($file);
            }
 
            if (!is_dir($basePath . '/compressed/')) {
                mkdir($basePath . '/compressed/', 0777, true);
            }
 
            if ($compressor->minify($filePath)) {
//                echo $filePath;
                $chmodFile = chmod($filePath, 0777);
                if (false === $chmodFile)
                {
                    touch($filePath);
                    chmod($filePath, 0777);
                }
                call_user_func_array([$assets, $addFunc], [$fileUri, false]);
            }
 
            unset($compressor);
        }
    }
 
    public function beforeSendResponse(Event $event, CmsApplication $app, Response $response)
    {
        $request = $this->di->getShared('request');
 
        if ($request->isAjax()) {
            return;
        }
 
        /** @var Asset $assets */
        $this->compressAssets();
        $assets = $this->di->getShared('assets');
 
        // Compress CSS
        ob_start();
        $assets->outputCss();
        $assets->outputInlineCss();
        $content = str_replace('</head>', ob_get_clean() . '</head>', $response->getContent());
 
        // Compress JS
        ob_start();
        $assets->outputJs();
        $assets->outputInlineJs();
        $code = Asset::getCode() . ob_get_clean();
 
        // Extra code (in the footer)
        $content = str_replace('</body>', $code . '</body>', $content);
        $response->setContent($content);
    }
}
#21CLSystems\PhalCMS\Lib\CmsApplication->execute
/var/www/html/discounts-n-coupons.com/public/index.php (14)
<?php
declare(strict_types=1);
 
error_reporting(E_ALL);
ini_set('display_errors', 'true');
 
use CLSystems\PhalCMS\Lib\Factory;
 
define('BASE_PATH', dirname(__DIR__));
 
require_once BASE_PATH . '/src/app/Lib/Factory.php';
 
// Execute application
Factory::getApplication()->execute();
KeyValue
page4
KeyValue
PATH/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
TEMP/var/www/clients/client1/web1/tmp
TMPDIR/var/www/clients/client1/web1/tmp
TMP/var/www/clients/client1/web1/tmp
HOSTNAME
USERweb1
HOME/var/www/clients/client1/web1
SCRIPT_NAME/index.php
REQUEST_URI/?page=4
QUERY_STRINGpage=4
REQUEST_METHODGET
SERVER_PROTOCOLHTTP/2.0
GATEWAY_INTERFACECGI/1.1
REMOTE_PORT48911
SCRIPT_FILENAME/var/www/clients/client1/web1/web/index.php
SERVER_ADMINwebmaster@discounts-n-coupons.com
CONTEXT_DOCUMENT_ROOT/var/www/clients/client1/web1/web
CONTEXT_PREFIX
REQUEST_SCHEMEhttps
DOCUMENT_ROOT/var/www/clients/client1/web1/web
REMOTE_ADDR18.221.239.148
SERVER_PORT443
SERVER_ADDR207.244.255.14
SERVER_NAMEdiscounts-n-coupons.com
SERVER_SOFTWAREApache
SERVER_SIGNATURE
HTTP_HOSTdiscounts-n-coupons.com
HTTP_USER_AGENTclaudebot
HTTP_ACCEPT*/*
proxy-nokeepalive1
SSL_TLS_SNIdiscounts-n-coupons.com
HTTPSon
H2_STREAM_TAG1303489-1117-7
H2_STREAM_ID7
H2_PUSHED_ON
H2_PUSHED
H2_PUSHoff
H2PUSHoff
HTTP2on
FCGI_ROLERESPONDER
PHP_SELF/index.php
REQUEST_TIME_FLOAT1713482515.9975
REQUEST_TIME1713482515
#Path
0/var/www/html/discounts-n-coupons.com/public/index.php
1/var/www/html/discounts-n-coupons.com/src/app/Lib/Factory.php
2/var/www/html/discounts-n-coupons.com/src/app/Config/Define.php
3/var/www/html/discounts-n-coupons.com/src/app/Config/Loader.php
4/var/www/html/discounts-n-coupons.com/vendor/autoload.php
5/var/www/html/discounts-n-coupons.com/vendor/composer/autoload_real.php
6/var/www/html/discounts-n-coupons.com/vendor/composer/platform_check.php
7/var/www/html/discounts-n-coupons.com/vendor/composer/ClassLoader.php
8/var/www/html/discounts-n-coupons.com/vendor/composer/autoload_static.php
9/var/www/html/discounts-n-coupons.com/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php
10/var/www/html/discounts-n-coupons.com/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php
11/var/www/html/discounts-n-coupons.com/vendor/symfony/polyfill-mbstring/bootstrap.php
12/var/www/html/discounts-n-coupons.com/vendor/symfony/polyfill-mbstring/bootstrap80.php
13/var/www/html/discounts-n-coupons.com/vendor/symfony/deprecation-contracts/function.php
14/var/www/html/discounts-n-coupons.com/vendor/ralouphie/getallheaders/src/getallheaders.php
15/var/www/html/discounts-n-coupons.com/vendor/symfony/polyfill-ctype/bootstrap.php
16/var/www/html/discounts-n-coupons.com/vendor/symfony/polyfill-ctype/bootstrap80.php
17/var/www/html/discounts-n-coupons.com/vendor/guzzlehttp/promises/src/functions_include.php
18/var/www/html/discounts-n-coupons.com/vendor/guzzlehttp/promises/src/functions.php
19/var/www/html/discounts-n-coupons.com/vendor/symfony/polyfill-intl-grapheme/bootstrap.php
20/var/www/html/discounts-n-coupons.com/vendor/symfony/polyfill-intl-normalizer/bootstrap.php
21/var/www/html/discounts-n-coupons.com/vendor/symfony/polyfill-intl-normalizer/bootstrap80.php
22/var/www/html/discounts-n-coupons.com/vendor/symfony/string/Resources/functions.php
23/var/www/html/discounts-n-coupons.com/vendor/guzzlehttp/guzzle/src/functions_include.php
24/var/www/html/discounts-n-coupons.com/vendor/guzzlehttp/guzzle/src/functions.php
25/var/www/html/discounts-n-coupons.com/vendor/symfony/var-dumper/Resources/functions/dump.php
26/var/www/html/discounts-n-coupons.com/vendor/phpseclib/phpseclib/phpseclib/bootstrap.php
27/var/www/html/discounts-n-coupons.com/vendor/google/apiclient-services/autoload.php
28/var/www/html/discounts-n-coupons.com/vendor/psy/psysh/src/functions.php
29/var/www/html/discounts-n-coupons.com/vendor/codeception/codeception/functions.php
30/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/aliases.php
31/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Client.php
32/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Service.php
33/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/AccessToken/Revoke.php
34/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/AccessToken/Verify.php
35/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Model.php
36/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Utils/UriTemplate.php
37/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/AuthHandler/Guzzle6AuthHandler.php
38/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/AuthHandler/Guzzle7AuthHandler.php
39/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/AuthHandler/Guzzle5AuthHandler.php
40/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/AuthHandler/AuthHandlerFactory.php
41/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Http/Batch.php
42/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Http/MediaFileUpload.php
43/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Http/REST.php
44/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Task/Retryable.php
45/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Task/Exception.php
46/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Exception.php
47/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Task/Runner.php
48/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Collection.php
49/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Service/Exception.php
50/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Service/Resource.php
51/var/www/html/discounts-n-coupons.com/vendor/google/apiclient/src/Task/Composer.php
52/var/www/html/discounts-n-coupons.com/vendor/phalcon/dd/src/helper.php
53/var/www/html/discounts-n-coupons.com/vendor/clsystems/php-registry/src/Registry.php
54/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Config.php
55/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Asset.php
56/var/www/html/discounts-n-coupons.com/src/app/Lib/Mvc/View/ViewBase.php
57/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Volt.php
58/var/www/html/discounts-n-coupons.com/src/app/Lib/CmsApplication.php
59/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Language.php
60/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/FileSystem.php
61/var/www/html/discounts-n-coupons.com/src/app/Language/de-DE/Locale.php
62/var/www/html/discounts-n-coupons.com/src/app/Language/en-GB/Locale.php
63/var/www/html/discounts-n-coupons.com/src/app/Language/nl-NL/Locale.php
64/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Uri.php
65/var/www/html/discounts-n-coupons.com/src/app/Language/en-GB/en-GB.php
66/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Event.php
67/var/www/html/discounts-n-coupons.com/src/app/Lib/Mvc/Model/Config.php
68/var/www/html/discounts-n-coupons.com/src/app/Lib/Mvc/Model/ModelBase.php
69/var/www/html/discounts-n-coupons.com/src/app/Plugin/Cms/SiteMap/SiteMap.php
70/var/www/html/discounts-n-coupons.com/src/app/Lib/Plugin.php
71/var/www/html/discounts-n-coupons.com/src/app/Plugin/Cms/SiteMap/Language/en-GB.php
72/var/www/html/discounts-n-coupons.com/src/app/Plugin/Cms/SocialLogin/SocialLogin.php
73/var/www/html/discounts-n-coupons.com/src/app/Plugin/System/Backup/Backup.php
74/var/www/html/discounts-n-coupons.com/src/app/Plugin/System/Backup/Language/en-GB.php
75/var/www/html/discounts-n-coupons.com/src/app/Plugin/System/Cms/Cms.php
76/var/www/html/discounts-n-coupons.com/src/app/Config/Router.php
77/var/www/html/discounts-n-coupons.com/src/app/Config/Router/Site.php
78/var/www/html/discounts-n-coupons.com/src/app/Lib/Mvc/Controller/IndexController.php
79/var/www/html/discounts-n-coupons.com/src/app/Lib/Mvc/Controller/ControllerBase.php
80/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/User.php
81/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/State.php
82/var/www/html/discounts-n-coupons.com/src/app/Lib/Mvc/Model/User.php
83/var/www/html/discounts-n-coupons.com/cache/volt/Tmpl_Site_PhalCMS_Index.volt.php
84/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Text.php
85/var/www/html/discounts-n-coupons.com/cache/volt/Tmpl_Site_PhalCMS_Block_BeforeContent.volt.php
86/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Menu.php
87/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Widget.php
88/var/www/html/discounts-n-coupons.com/src/app/Tmpl/Site/PhalCMS/Config.php
89/var/www/html/discounts-n-coupons.com/src/app/Widget/Code/Code.php
90/var/www/html/discounts-n-coupons.com/src/app/Lib/Widget.php
91/var/www/html/discounts-n-coupons.com/src/app/Widget/Code/Config.php
92/var/www/html/discounts-n-coupons.com/src/app/Widget/Content/Content.php
93/var/www/html/discounts-n-coupons.com/src/app/Widget/Content/Config.php
94/var/www/html/discounts-n-coupons.com/src/app/Widget/FlashNews/FlashNews.php
95/var/www/html/discounts-n-coupons.com/src/app/Widget/FlashNews/Config.php
96/var/www/html/discounts-n-coupons.com/src/app/Widget/LanguageSwitcher/LanguageSwitcher.php
97/var/www/html/discounts-n-coupons.com/src/app/Widget/LanguageSwitcher/Config.php
98/var/www/html/discounts-n-coupons.com/src/app/Widget/Login/Login.php
99/var/www/html/discounts-n-coupons.com/src/app/Widget/Login/Config.php
100/var/www/html/discounts-n-coupons.com/src/app/Widget/Menu/Menu.php
101/var/www/html/discounts-n-coupons.com/src/app/Widget/Menu/Config.php
102/var/www/html/discounts-n-coupons.com/src/app/Widget/SocialShare/SocialShare.php
103/var/www/html/discounts-n-coupons.com/src/app/Widget/SocialShare/Config.php
104/var/www/html/discounts-n-coupons.com/src/app/Widget/TagCloud/TagCloud.php
105/var/www/html/discounts-n-coupons.com/src/app/Widget/TagCloud/Config.php
106/var/www/html/discounts-n-coupons.com/src/app/Lib/Mvc/Model/PostCategory.php
107/var/www/html/discounts-n-coupons.com/src/app/Lib/Mvc/Model/Nested.php
108/var/www/html/discounts-n-coupons.com/src/app/Lib/Mvc/Model/UcmItem.php
109/var/www/html/discounts-n-coupons.com/cache/volt/Widget_Menu_Tmpl_Content_Navbar.volt.php
110/var/www/html/discounts-n-coupons.com/cache/volt/Widget_Menu_Tmpl_Content_NavItem.volt.php
111/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/IconSvg.php
112/var/www/html/discounts-n-coupons.com/cache/volt/Tmpl_System_Widget_Wrapper_Raw.volt.php
113/var/www/html/discounts-n-coupons.com/cache/volt/Widget_LanguageSwitcher_Tmpl_Content_Dropdown.volt.php
114/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Utility.php
115/var/www/html/discounts-n-coupons.com/cache/volt/Tmpl_Site_PhalCMS_Block_Content.volt.php
116/var/www/html/discounts-n-coupons.com/vendor/clsystems/php-filter/src/Filter.php
117/var/www/html/discounts-n-coupons.com/src/app/Lib/Mvc/Model/Post.php
118/var/www/html/discounts-n-coupons.com/cache/volt/Widget_FlashNews_Tmpl_Content_SliderNews.volt.php
119/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Image.php
120/var/www/html/discounts-n-coupons.com/cache/volt/Tmpl_Site_PhalCMS_Widget_Wrapper_HeadingLine.volt.php
121/var/www/html/discounts-n-coupons.com/cache/volt/Tmpl_System_Pagination_Pagination.volt.php
122/var/www/html/discounts-n-coupons.com/cache/volt/Widget_FlashNews_Tmpl_Content_BlogList.volt.php
123/var/www/html/discounts-n-coupons.com/src/app/Lib/Helper/Date.php
124/var/www/html/discounts-n-coupons.com/vendor/imagecow/imagecow/src/Image.php
125/var/www/html/discounts-n-coupons.com/vendor/imagecow/imagecow/src/Libs/Imagick.php
126/var/www/html/discounts-n-coupons.com/vendor/imagecow/imagecow/src/Libs/AbstractLib.php
127/var/www/html/discounts-n-coupons.com/vendor/imagecow/imagecow/src/Libs/LibInterface.php
128/var/www/html/discounts-n-coupons.com/vendor/imagecow/imagecow/src/ImageException.php
Memory
Usage2097152