HEX
Server: Apache
System: Linux WWW 6.1.0-40-amd64 #1 SMP PREEMPT_DYNAMIC Debian 6.1.153-1 (2025-09-20) x86_64
User: web11 (1011)
PHP: 8.2.29
Disabled: NONE
Upload Files
File: /var/www/biblioteka/wp-content/plugins/gallery-by-supsystic/src/GridGallery/Core/Module.php
<?php

/**
 * Class GridGallery_Core_Module
 * Core module
 *
 * @package GridGallery\Core
 * @author Artur Kovalevsky
 */
class GridGallery_Core_Module extends RscSgg_Mvc_Module
{
    /**
     * {@inheritdoc}
     */
    public function onInit()
    {
        parent::onInit();
        $path = dirname(dirname(dirname(dirname(__FILE__))));
        $url = plugins_url(basename($path));
        $config = $this->getEnvironment()->getConfig();

        //Clear plugin cache after update
        $optionName = $config->get('hooks_prefix') . 'plugin_version';
        $currentVersion = $config->get('plugin_version');
        $oldVersion = get_option($optionName);

        if (version_compare($oldVersion, $currentVersion) === -1) {
            $this->cleanGalleryCache();
            update_option($optionName, $currentVersion);
        }

        $config->add('plugin_url', $url);
        $config->add('plugin_path', $path);

        add_filter('gg_hooks_prefix', array($this, 'addHooksPrefix'), 10, 1);
		    add_action('init', array($this, 'registerTwigFunctions'), 10, 1);
    }
    /**
     * Adds the plugin's hooks prefix to the hook name
     *
     * @param string $hook The name of the hook
     * @return string
     */
    public function addHooksPrefix($hook)
    {
        $config = $this->getEnvironment()->getConfig();

        return $config->get('hooks_prefix') . $hook;
    }

    public function afterUiLoaded(Callable $callback)
    {
        if (!is_callable($callback)) {
            throw new InvalidArgumentException('$callback must be a callable');
        }

        add_action($this->addHooksPrefix('after_ui_loaded'), $callback);
    }

    public function buildProUrl(array $parameters = array())
    {
        $config = $this->getEnvironment()->getConfig();
        $homepage = 'https://supsystic.com/plugins/photo-gallery/';
        $campaign = 'gallery';

        if (!array_key_exists('utm_source', $parameters)) {
            $parameters['utm_source'] = 'plugin';
        }

        if (!array_key_exists('utm_campaign', $parameters)) {
            $parameters['utm_campaign'] = $campaign;
        }

        return $homepage . '?' . http_build_query($parameters);
    }

	public function getPluginDirectoryUrl($path)
	{
		return plugin_dir_url($this->getEnvironment()->getPluginPath() . '/index.php') . '/' . $path;
	}
    public function getCdnUrl() {
        return (is_ssl() ? 'https' : 'http').'://supsystic-42d7.kxcdn.com/';
    }

    public function registerTwigFunctions()
    {
        $twig = $this->getTwig();
    		$twig->addFunction(
    			new Twig_SupTwgSgg_SimpleFunction(
    				'plugin_directory_url', array($this, 'getPluginDirectoryUrl')
    			)
    		);
        $twig->addFunction(
            new Twig_SupTwgSgg_SimpleFunction(
                'build_pro_url', array($this, 'buildProUrl')
            )
        );
        $twig->addFunction(
            new Twig_SupTwgSgg_SimpleFunction(
                'translate', array($this, 'translate')
            )
        );
        $twig->addFunction(
            new Twig_SupTwgSgg_SimpleFunction(
                'getProUrl', array($this, 'getProUrl')
            )
        );
        $twig->addFunction(
            new Twig_SupTwgSgg_SimpleFunction(
                'dump', array($this, 'varDump')
            )
        );
        $config = $this->getEnvironment()->getConfig();
        $twig->addGlobal('SGG_PLUGIN_URL', SGG_PLUGIN_URL);
        $twig->addGlobal('SGG_PLUGIN_VERSION', $config->get('plugin_version'));
        $twig->addGlobal('SGG_PLUGIN_NAME', $config->get('plugin_name'));
        global $current_user;
        $twig->addGlobal('SGG_USER_NAME', $current_user->user_firstname.' '.$current_user->user_lastname);
        $twig->addGlobal('SGG_USER_EMAIL', $current_user->user_email);
        $twig->addGlobal('SGG_WEBSITE', get_bloginfo('url'));
        $twig->addGlobal('_wpnonce', wp_create_nonce('supsystic-gallery'));

        $show = true;
        $acRemind = get_option('sgg_ac_remind', false);
        if (!empty($acRemind)) {
          $currentDate = date('Y-m-d h:i:s');
          if ($currentDate > $acRemind) {
            $show = true;
          } else {
            $show = false;
          }
        }
        $acSubscribe = get_option('sgg_ac_subscribe', false);
        if (!empty($acSubscribe)) {
          $show = false;
        }
        $acDisabled = get_option('sgg_ac_disabled', false);
        if (!empty($acDisabled)) {
          $show = false;
        }

        $twig->addGlobal('SGG_AC_SHOW', $show);
        // delete_option('sgg_ac_remind');
        // delete_option('sgg_ac_disabled');
    }

    //Clear gallery cache after update
    private function cleanGalleryCache() {
        $cachePath = $this->getConfig()->get('plugin_cache_tables');
        if ($cachePath) {
            array_map('unlink', glob("$cachePath/*"));
        }
    }
}