Whoops \ Exception \ ErrorException (E_NOTICE)
Trying to access array offset on value of type int Whoops\Exception\ErrorException thrown with message "Trying to access array offset on value of type int" Stacktrace: #15 Whoops\Exception\ErrorException in /home/sistemasignprod/public_html/estilosytendencias.com.co/libraries/gantry5/classes/Gantry/Component/Assignments/AbstractAssignments.php:140 #14 Gantry\Component\Whoops\SystemFacade:handleError in /home/sistemasignprod/public_html/estilosytendencias.com.co/libraries/gantry5/classes/Gantry/Component/Assignments/AbstractAssignments.php:140 #13 Gantry\Component\Assignments\AbstractAssignments:loadAssignments in /home/sistemasignprod/public_html/estilosytendencias.com.co/libraries/gantry5/classes/Gantry/Framework/Assignments.php:47 #12 Gantry\Framework\Assignments:loadAssignments in /home/sistemasignprod/public_html/estilosytendencias.com.co/libraries/gantry5/classes/Gantry/Component/Assignments/AbstractAssignments.php:303 #11 Gantry\Component\Assignments\AbstractAssignments:init in /home/sistemasignprod/public_html/estilosytendencias.com.co/libraries/gantry5/classes/Gantry/Component/Assignments/AbstractAssignments.php:104 #10 Gantry\Component\Assignments\AbstractAssignments:scores in /home/sistemasignprod/public_html/estilosytendencias.com.co/libraries/gantry5/classes/Gantry/Component/Assignments/AbstractAssignments.php:91 #9 Gantry\Component\Assignments\AbstractAssignments:select in /home/sistemasignprod/public_html/estilosytendencias.com.co/plugins/system/gantry5/gantry5.php:246 #8 plgSystemGantry5:onAfterRouteSite in /home/sistemasignprod/public_html/estilosytendencias.com.co/plugins/system/gantry5/gantry5.php:57 #7 plgSystemGantry5:onAfterRoute in /home/sistemasignprod/public_html/estilosytendencias.com.co/libraries/joomla/event/event.php:70 #6 JEvent:update in /home/sistemasignprod/public_html/estilosytendencias.com.co/libraries/joomla/event/dispatcher.php:160 #5 JEventDispatcher:trigger in /home/sistemasignprod/public_html/estilosytendencias.com.co/libraries/src/Application/BaseApplication.php:108 #4 Joomla\CMS\Application\BaseApplication:triggerEvent in /home/sistemasignprod/public_html/estilosytendencias.com.co/libraries/src/Application/CMSApplication.php:1122 #3 Joomla\CMS\Application\CMSApplication:route in /home/sistemasignprod/public_html/estilosytendencias.com.co/libraries/src/Application/SiteApplication.php:796 #2 Joomla\CMS\Application\SiteApplication:route in /home/sistemasignprod/public_html/estilosytendencias.com.co/libraries/src/Application/SiteApplication.php:218 #1 Joomla\CMS\Application\SiteApplication:doExecute in /home/sistemasignprod/public_html/estilosytendencias.com.co/libraries/src/Application/CMSApplication.php:196 #0 Joomla\CMS\Application\CMSApplication:execute in /home/sistemasignprod/public_html/estilosytendencias.com.co/index.php:49
Stack frames (16)
15
Whoops
\
Exception
\
ErrorException
/
classes
/
Gantry
/
Component
/
Assignments
/
AbstractAssignments.php
140
14
Gantry
\
Component
\
Whoops
\
SystemFacade
handleError
/
classes
/
Gantry
/
Component
/
Assignments
/
AbstractAssignments.php
140
13
Gantry
\
Component
\
Assignments
\
AbstractAssignments
loadAssignments
/
classes
/
Gantry
/
Framework
/
Assignments.php
47
12
Gantry
\
Framework
\
Assignments
loadAssignments
/
classes
/
Gantry
/
Component
/
Assignments
/
AbstractAssignments.php
303
11
Gantry
\
Component
\
Assignments
\
AbstractAssignments
init
/
classes
/
Gantry
/
Component
/
Assignments
/
AbstractAssignments.php
104
10
Gantry
\
Component
\
Assignments
\
AbstractAssignments
scores
/
classes
/
Gantry
/
Component
/
Assignments
/
AbstractAssignments.php
91
9
Gantry
\
Component
\
Assignments
\
AbstractAssignments
select
/
home
/
sistemasignprod
/
public_html
/
estilosytendencias.com.co
/
plugins
/
system
/
gantry5
/
gantry5.php
246
8
plgSystemGantry5
onAfterRouteSite
/
home
/
sistemasignprod
/
public_html
/
estilosytendencias.com.co
/
plugins
/
system
/
gantry5
/
gantry5.php
57
7
plgSystemGantry5
onAfterRoute
/
home
/
sistemasignprod
/
public_html
/
estilosytendencias.com.co
/
libraries
/
joomla
/
event
/
event.php
70
6
JEvent
update
/
home
/
sistemasignprod
/
public_html
/
estilosytendencias.com.co
/
libraries
/
joomla
/
event
/
dispatcher.php
160
5
JEventDispatcher
trigger
/
home
/
sistemasignprod
/
public_html
/
estilosytendencias.com.co
/
libraries
/
src
/
Application
/
BaseApplication.php
108
4
Joomla
\
CMS
\
Application
\
BaseApplication
triggerEvent
/
home
/
sistemasignprod
/
public_html
/
estilosytendencias.com.co
/
libraries
/
src
/
Application
/
CMSApplication.php
1122
3
Joomla
\
CMS
\
Application
\
CMSApplication
route
/
home
/
sistemasignprod
/
public_html
/
estilosytendencias.com.co
/
libraries
/
src
/
Application
/
SiteApplication.php
796
2
Joomla
\
CMS
\
Application
\
SiteApplication
route
/
home
/
sistemasignprod
/
public_html
/
estilosytendencias.com.co
/
libraries
/
src
/
Application
/
SiteApplication.php
218
1
Joomla
\
CMS
\
Application
\
SiteApplication
doExecute
/
home
/
sistemasignprod
/
public_html
/
estilosytendencias.com.co
/
libraries
/
src
/
Application
/
CMSApplication.php
196
0
Joomla
\
CMS
\
Application
\
CMSApplication
execute
/
home
/
sistemasignprod
/
public_html
/
estilosytendencias.com.co
/
index.php
49
 
    /**
     * Load all assignments.
     *
     * @return array
     */
    public function loadAssignments()
    {
        $gantry = Gantry::instance();
 
        /** @var UniformResourceLocator $locator */
        $locator = $gantry['locator'];
 
        // Find all the assignment files.
        $paths = $locator->findResources("gantry-config://");
        $files = (new ConfigFileFinder)->locateFileInFolder('assignments', $paths);
 
        // Make sure that base or system outlines aren't in the list.
        foreach ($files as $key => $array) {
            if ($key && (((string)$key[0]) === '_' || $key === 'default')) {
                unset($files[$key]);
            }
        }
 
        $cache = $locator->findResource('gantry-cache://theme/compiled/config', true, true);
 
        $config = new CompiledConfig($cache, [$files], GANTRY5_ROOT);
 
        return $config->load()->toArray();
    }
 
    /**
     * Get all assignments for the current page.
     *
     * @return array
     */
    public function getPage()
    {
        $list = [];
 
 
    /**
     * Load all assignments.
     *
     * @return array
     */
    public function loadAssignments()
    {
        $gantry = Gantry::instance();
 
        /** @var UniformResourceLocator $locator */
        $locator = $gantry['locator'];
 
        // Find all the assignment files.
        $paths = $locator->findResources("gantry-config://");
        $files = (new ConfigFileFinder)->locateFileInFolder('assignments', $paths);
 
        // Make sure that base or system outlines aren't in the list.
        foreach ($files as $key => $array) {
            if ($key && (((string)$key[0]) === '_' || $key === 'default')) {
                unset($files[$key]);
            }
        }
 
        $cache = $locator->findResource('gantry-cache://theme/compiled/config', true, true);
 
        $config = new CompiledConfig($cache, [$files], GANTRY5_ROOT);
 
        return $config->load()->toArray();
    }
 
    /**
     * Get all assignments for the current page.
     *
     * @return array
     */
    public function getPage()
    {
        $list = [];
 
    {
        $app = \JFactory::getApplication();
 
        if (!$app->isSite()) {
            return [];
        }
 
        // Get current template, style id and rules.
        $template = $app->getTemplate();
        $active = $app->getMenu()->getActive();
        if ($active) {
            $style = (int) $active->template_style_id;
            $rules = [$active->menutype => [$active->id => true]];
        } else {
            $style = 0;
            $rules = [];
        }
 
        // Load saved assignments.
        $assignments = parent::loadAssignments();
 
        // Add missing template styles from Joomla.
        $styles = StyleHelper::loadStyles($template);
        $assignments += array_fill_keys(array_keys($styles), []);
 
        foreach ($assignments as $id => &$assignment) {
            // Add current menu item if it has been assigned to the style.
            $assignment['menu'] = $style === $id ? $rules : [];
 
            // Always add the current template style.
            $assignment['style'] =  ['id' => [$id => true]];
        }
 
        return $assignments;
    }
 
    /**
     * Save assignments for the configuration.
     *
     * @param array $data
     */
    public function setAssignment($value)
    {
    }
 
    /**
     * Get extra options for assignments.
     *
     * @return array
     */
    public function assignmentOptions()
    {
        return [];
    }
 
    protected function init()
    {
        if (!$this->filter) {
            $this->filter = new AssignmentFilter;
            $this->candidates = $this->loadAssignments();
            $this->page = $this->getPage();
        }
    }
 
    /**
     * Return list of assignment types.
     *
     * @return array
     */
    abstract public function types();
}
 
     *
     * @param string $default
     * @return string
     */
    public function select($default = 'default')
    {
        $scores = $this->scores();
 
        return key($scores) ?: $default;
    }
 
    /**
     * List matching outlines sorted by score.
     *
     * @param array $candidates
     * @return array
     */
    public function scores(array $candidates = null)
    {
        $this->init();
        $candidates = $candidates ?: $this->candidates;
        return $this->filter->scores($candidates, $this->page, $this->specialFilterMethod);
    }
 
    /**
     * List matching outlines with matched assignments.
     *
     * @param array $candidates
     * @return array
     */
    public function matches(array $candidates = null)
    {
        $this->init();
        $candidates = $candidates ?: $this->candidates;
        return $this->filter->matches($candidates, $this->page, $this->specialFilterMethod);
    }
 
    /**
     * Load all assignments.
     *
 
    /**
     * Set (save) assignments.
     *
     * @param array $data
     */
    public function set(array $data)
    {
        $this->save($data);
    }
 
    /**
     * Select assigned outline.
     *
     * @param string $default
     * @return string
     */
    public function select($default = 'default')
    {
        $scores = $this->scores();
 
        return key($scores) ?: $default;
    }
 
    /**
     * List matching outlines sorted by score.
     *
     * @param array $candidates
     * @return array
     */
    public function scores(array $candidates = null)
    {
        $this->init();
        $candidates = $candidates ?: $this->candidates;
        return $this->filter->scores($candidates, $this->page, $this->specialFilterMethod);
    }
 
    /**
     * List matching outlines with matched assignments.
     *
 
            include_once $themePath;
        }
 
        GANTRY_DEBUGGER && \Gantry\Debugger::addMessage("Using Gantry 5 template {$templateName}");
 
        /** @var Gantry\Framework\Theme $theme */
        $theme = $gantry['theme'];
 
        $assignments = new \Gantry\Framework\Assignments();
 
        if (GANTRY_DEBUGGER) {
            \Gantry\Debugger::addMessage('Selecting outline (rules, matches, scores):', 'debug');
            \Gantry\Debugger::addMessage($assignments->getPage(), 'debug');
            \Gantry\Debugger::addMessage($assignments->loadAssignments(), 'debug');
            \Gantry\Debugger::addMessage($assignments->matches(), 'debug');
            \Gantry\Debugger::addMessage($assignments->scores(), 'debug');
        }
 
        $theme->setLayout($assignments->select());
 
        if (!$this->params->get('production', 0) || $this->params->get('asset_timestamps', 1)) {
            $age = (int) ($this->params->get('asset_timestamps_period', 7) * 86400);
            Gantry\Framework\Document::$timestamp_age = $age > 0 ? $age : PHP_INT_MAX;
        } else {
            Gantry\Framework\Document::$timestamp_age = 0;
        }
    }
 
    /**
     * Re-route Gantry templates to Gantry Administration component.
     */
    private function onAfterRouteAdmin()
    {
        $input = $this->app->input;
 
        $option = $input->getCmd('option');
        $task   = $input->getCmd('task');
 
        if (in_array($option, array('com_templates', 'com_advancedtemplates')) && $task && strpos($task, 'style') === 0) {
                );
            }
            return;
        }
 
        parent::__construct($subject, $config);
    }
 
    /**
     * Return global configuration for Gantry5.
     */
    public function onGantryGlobalConfig(&$global)
    {
        $global = $this->params->toArray();
    }
 
    public function onAfterRoute()
    {
        if ($this->app->isSite()) {
            $this->onAfterRouteSite();
 
        } elseif ($this->app->isAdmin()) {
            $this->onAfterRouteAdmin();
        }
    }
 
    public function onAfterRender()
    {
        if ($this->app->isSite() && class_exists('Gantry\Framework\Gantry')) {
            $this->onAfterRenderSite();
 
        } elseif ($this->app->isAdmin()) {
            $this->onAfterRenderAdmin();
        }
    }
 
    /**
     * @param object $module
     * @param array $attribs
     */
     * @param   array  &$args  Arguments
     *
     * @return  mixed  Routine return value
     *
     * @since   1.5
     */
    public function update(&$args)
    {
        // First let's get the event from the argument array.  Next we will unset the
        // event argument as it has no bearing on the method to handle the event.
        $event = $args['event'];
        unset($args['event']);
 
        /*
         * If the method to handle an event exists, call it and return its return
         * value.  If it does not exist, return null.
         */
        if (method_exists($this, $event))
        {
            return call_user_func_array(array($this, $event), $args);
        }
    }
}
 
        if (!isset($this->_methods[$event]) || empty($this->_methods[$event]))
        {
            // No Plugins Associated To Event!
            return $result;
        }
 
        // Loop through all plugins having a method matching our event
        foreach ($this->_methods[$event] as $key)
        {
            // Check if the plugin is present.
            if (!isset($this->_observers[$key]))
            {
                continue;
            }
 
            // Fire the event for an object based observer.
            if (is_object($this->_observers[$key]))
            {
                $args['event'] = $event;
                $value = $this->_observers[$key]->update($args);
            }
            // Fire the event for a function based observer.
            elseif (is_array($this->_observers[$key]))
            {
                $value = call_user_func_array($this->_observers[$key]['handler'], $args);
            }
 
            if (isset($value))
            {
                $result[] = $value;
            }
        }
 
        return $result;
    }
 
    /**
     * Attach an observer object
     *
     * @param   object  $observer  An observer object to attach
        }
 
        return $this;
    }
 
    /**
     * Calls all handlers associated with an event group.
     *
     * @param   string  $event  The event name.
     * @param   array   $args   An array of arguments (optional).
     *
     * @return  array   An array of results from each function call, or null if no dispatcher is defined.
     *
     * @since   3.0.0
     */
    public function triggerEvent($event, array $args = null)
    {
        if ($this->dispatcher instanceof \JEventDispatcher)
        {
            return $this->dispatcher->trigger($event, $args);
        }
 
        return;
    }
 
    /**
     * Allows the application to load a custom or default dispatcher.
     *
     * The logic and options for creating this object are adequately generic for default cases
     * but for many applications it will make sense to override this method and create event
     * dispatchers, if required, based on more specific needs.
     *
     * @param   \JEventDispatcher  $dispatcher  An optional dispatcher object. If omitted, the factory dispatcher is created.
     *
     * @return  BaseApplication This method is chainable.
     *
     * @since   3.0.0
     */
    public function loadDispatcher(\JEventDispatcher $dispatcher = null)
    {
 
                    $this->setHeader('Expires', 'Wed, 17 Aug 2005 00:00:00 GMT', true);
                    $this->setHeader('Last-Modified', gmdate('D, d M Y H:i:s') . ' GMT', true);
                    $this->setHeader('Cache-Control', 'no-store, no-cache, must-revalidate, post-check=0, pre-check=0', false);
                    $this->setHeader('Pragma', 'no-cache');
                    $this->sendHeaders();
 
                    $this->redirect((string) $oldUri, 301);
                }
            }
        }
 
        foreach ($result as $key => $value)
        {
            $this->input->def($key, $value);
        }
 
        // Trigger the onAfterRoute event.
        \JPluginHelper::importPlugin('system');
        $this->triggerEvent('onAfterRoute');
    }
 
    /**
     * Sets the value of a user state variable.
     *
     * @param   string  $key    The path of the state.
     * @param   mixed   $value  The value of the variable.
     *
     * @return  mixed  The previous state, if one existed.
     *
     * @since   3.2
     */
    public function setUserState($key, $value)
    {
        $session = \JFactory::getSession();
        $registry = $session->get('registry');
 
        if ($registry !== null)
        {
            return $registry->set($key, $value);
 
        parent::render();
    }
 
    /**
     * Route the application.
     *
     * Routing is the process of examining the request environment to determine which
     * component should receive the request. The component optional parameters
     * are then set in the request object to be processed when the application is being
     * dispatched.
     *
     * @return  void
     *
     * @since   3.2
     */
    protected function route()
    {
        // Execute the parent method
        parent::route();
 
        $Itemid = $this->input->getInt('Itemid', null);
        $this->authorise($Itemid);
    }
 
    /**
     * Set the current state of the detect browser option.
     *
     * @param   boolean  $state  The new state of the detect browser option
     *
     * @return    boolean     The previous state
     *
     * @since    3.2
     */
    public function setDetectBrowser($state = false)
    {
        $old = $this->_detect_browser;
        $this->_detect_browser = $state;
 
        return $old;
        $this->triggerEvent('onAfterDispatch');
    }
 
    /**
     * Method to run the Web application routines.
     *
     * @return  void
     *
     * @since   3.2
     */
    protected function doExecute()
    {
        // Initialise the application
        $this->initialiseApp();
 
        // Mark afterInitialise in the profiler.
        JDEBUG ? $this->profiler->mark('afterInitialise') : null;
 
        // Route the application
        $this->route();
 
        // Mark afterRoute in the profiler.
        JDEBUG ? $this->profiler->mark('afterRoute') : null;
 
        /*
         * Check if the user is required to reset their password
         *
         * Before $this->route(); "option" and "view" can't be safely read using:
         * $this->input->getCmd('option'); or $this->input->getCmd('view');
         * ex: due of the sef urls
         */
        $this->checkUserRequireReset('com_users', 'profile', 'edit', 'com_users/profile.save,com_users/profile.apply,com_users/user.logout');
 
        // Dispatch the application
        $this->dispatch();
 
        // Mark afterDispatch in the profiler.
        JDEBUG ? $this->profiler->mark('afterDispatch') : null;
    }
 
        $message = array('message' => $msg, 'type' => strtolower($type));
 
        if (!in_array($message, $this->_messageQueue))
        {
            // Enqueue the message.
            $this->_messageQueue[] = $message;
        }
    }
 
    /**
     * Execute the application.
     *
     * @return  void
     *
     * @since   3.2
     */
    public function execute()
    {
        // Perform application routines.
        $this->doExecute();
 
        // If we have an application document object, render it.
        if ($this->document instanceof \JDocument)
        {
            // Render the application output.
            $this->render();
        }
 
        // If gzip compression is enabled in configuration and the server is compliant, compress the output.
        if ($this->get('gzip') && !ini_get('zlib.output_compression') && ini_get('output_handler') !== 'ob_gzhandler')
        {
            $this->compress();
 
            // Trigger the onAfterCompress event.
            $this->triggerEvent('onAfterCompress');
        }
 
        // Send the application response.
        $this->respond();
 
{
    include_once __DIR__ . '/defines.php';
}
 
if (!defined('_JDEFINES'))
{
    define('JPATH_BASE', __DIR__);
    require_once JPATH_BASE . '/includes/defines.php';
}
 
require_once JPATH_BASE . '/includes/framework.php';
 
// Set profiler start time and memory usage and mark afterLoad in the profiler.
JDEBUG ? JProfiler::getInstance('Application')->setStart($startTime, $startMem)->mark('afterLoad') : null;
 
// Instantiate the application.
$app = JFactory::getApplication('site');
 
// Execute the application.
$app->execute();
 

Environment & details:

empty
empty
empty
empty
empty
Key Value
LSPHP_ENABLE_USER_INI on
PATH /usr/local/bin:/usr/bin:/bin
TEMP /tmp
TMP /tmp
TMPDIR /tmp
PWD /
HTTP_ACCEPT */*
CONTENT_LENGTH 0
HTTP_HOST estilosytendencias.com.co
HTTP_USER_AGENT claudebot
UNIQUE_ID ZflKZIwXd2-57PHcLKnCdQAAACE
SCRIPT_URL /
SCRIPT_URI http://estilosytendencias.com.co/
USER_ID 2830264
HTTP_AUTHORIZATION
SERVER_SIGNATURE
SERVER_SOFTWARE Apache
SERVER_NAME estilosytendencias.com.co
SERVER_ADDR 107.180.41.149
SERVER_PORT 80
REMOTE_ADDR 34.204.181.19
DOCUMENT_ROOT /home/sistemasignprod/public_html/estilosytendencias.com.co
REQUEST_SCHEME http
CONTEXT_PREFIX
CONTEXT_DOCUMENT_ROOT /home/sistemasignprod/public_html/estilosytendencias.com.co
SERVER_ADMIN webmaster@estilosytendencias.signproducts.com.co
SCRIPT_FILENAME /home/sistemasignprod/public_html/estilosytendencias.com.co/index.php
REMOTE_PORT 52860
SERVER_PROTOCOL HTTP/1.1
REQUEST_METHOD GET
QUERY_STRING
REQUEST_URI /
SCRIPT_NAME /index.php
PHP_SELF /index.php
REQUEST_TIME_FLOAT 1710836324.6378
REQUEST_TIME 1710836324
Key Value
LSPHP_ENABLE_USER_INI on
PATH /usr/local/bin:/usr/bin:/bin
TEMP /tmp
TMP /tmp
TMPDIR /tmp
PWD /
0. Whoops\Handler\PrettyPageHandler