View file upload/src/addons/xenMade/ACPE/Listener.php

File size: 2.65Kb
<?php

namespace xenMade\ACPE;

use XF\Mvc\Entity\Entity;
use XF\Mvc\Entity\Manager;
use XF\Mvc\Entity\Structure;

class Listener
{
    public static function templater_template_post_render(\XF\Template\Templater $templater, &$type, &$template, array &$params)
    {
        if(\XF::app()->container('app.classType') == 'Admin')
        {
            if($template == 'PAGE_CONTAINER')
            {
                /** @var \xenMade\ACPE\Repository\Info $infoRepo */
                $infoRepo = \XF::repository('xenMade\ACPE:Info');

                /** @var \xenMade\ACPE\Repository\SoftwareVersions $versionRepo */
                $versionRepo = \XF::repository('xenMade\ACPE:SoftwareVersions');

                $sympleCache = \XF::app()->simpleCache();

                $debugMode = $sympleCache->getValue('xenMade/ACPE', 'debug_mode');

                $viewParams = [
                    'host' => $infoRepo->hostInfos(),
                    'server' => $infoRepo->serverInfos(),
                    'software_versions' => $versionRepo->getVersionsList(true),
                    'attachment_totals' => $infoRepo->generateAttachmentTotals(),
                    'debugMode' => $debugMode,
                ];

                $params = array_merge($params, $viewParams);
            }
        }
    }

    public static function app_setup(\XF\App $app)
    {
        $sympleCache = \XF::app()->simpleCache();
        $debugMode = $sympleCache->getValue('xenMade/ACPE', 'debug_mode');

        \XF::$debugMode = false;

        if($debugMode)
        {
            \XF::$debugMode = true;
            @ini_set('display_errors', true);
        }
    }

    public static function templater_macro_pre_render(\XF\Template\Templater $templater, &$type, &$template, &$name, array &$arguments, array &$globalVars)
    {
        if ($arguments['group']->group_id == 'acpe_settings')
        {
            $template = 'acpe_macros_acpe_settings';
        }

        if ($template == 'cron_list')
        {
            $template = 'acpe_cron_list';
        }
    }

    public static function templater_template_pre_render(\XF\Template\Templater $templater, &$type, &$template, array &$params)
    {
        if ($template == 'cron_list')
        {
            $template = 'acpe_cron_list';
        }
    }

    public static function entity_structur(\XF\Mvc\Entity\Manager $em, \XF\Mvc\Entity\Structure &$structure)
    {
        switch($structure->table)
        {
            case 'xf_option_group':
                $structure->columns['display_sort'] = ['type' => Entity::UINT, 'default' => 0];
                break;
        }
    }
}