Phalcon Framework 5.9.3

ParseError: Unclosed '{' on line 30

/tmp/cache/volt/%%srv%%chathispanoengine%%releases%%20260722121326%%apps%%web%%views%%common%%menu.volt.compiled (42)
#0Phalcon\Mvc\View\Engine\Volt->render
#1Phalcon\Mvc\View->engineRender
#2Phalcon\Mvc\View->partial
#3Phalcon\Mvc\View\Engine\AbstractEngine->partial
/tmp/cache/volt/%%srv%%chathispanoengine%%releases%%20260722121326%%apps%%web%%views%%stories%%view.volt.compiled (39)
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8" />
        <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
        <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=5, user-scalable=yes">
        <meta name="keywords" content="chat, chats, chatear, chat gratis, red de chat, irc, ligar en chat, chat de ciudades, chat de pueblos, chatear gratis" />
 
        <?php if ($controller == 'index' && $action == 'index') { ?>
        <meta name="publisuites-verify-code" content="aHR0cHM6Ly9jaGF0aGlzcGFuby5jb20=" />
        <meta name="google-site-verification" content="qcxe2DWGaxmp1Db8zhwmwe5-A7BlJicc7R7hfTywm-4" />
        <meta name="msvalidate.01" content="8599F70ACD2A8328EADD494BDE2BD875" />
        <meta name="Trafficstars" content="73817">
        <?php } ?>
 
        <?php if (isset($amphtml)) { ?>
        <link rel="amphtml" href="<?= $amphtml ?>">
        <?php } ?>
 
        <?= $this->partial('common/tags') ?>
        <?= $this->partial('common/ads/head/massarius') ?>
 
        <!-- favicon -->
        <link rel="shortcut icon" href="/assets/web/images/favicon.ico" type="image/x-icon">
        <link rel="icon" href="/assets/web/images/favicon.ico" type="image/x-icon">
 
        <?= $this->partial('common/fonts-preload') ?>
 
        <link rel="stylesheet" href="https://massariuscdn.com/pubs/chathispano/index.css">
 
        <?= $this->partial('common/backgrounds') ?>
        <?= $this->partial('common/fonts') ?>
        <?= $this->assets->outputInlineCss('headerCss') ?>
    </head>
 
    <body class="container-fluid ps-0 pe-0 pb-0">
        <?= $this->partial('common/wall-underage') ?>
 
        <?= $this->partial('common/menu') ?>
        <?= $this->partial('common/be-premium-mobile') ?>
 
        <?php if (!$hasPremium && $controller != 'error' && $controller != 'paywall' && $controller != 'auth' && $controller != 'sexshop') { ?>
        <div class="container-xl banner-top pt-2 pb-2">
            <?= $this->partial('common/ads/banners/top') ?>
        </div>
        <?php } ?>
 
        <?php if ($controller == 'index' && $action == 'index') { ?>
        <div class="container-fluid main-content main-content-home">
            <div class="container-xl home-header">
                <?= $this->partial('index/home-header') ?>
            </div>
        </div>
        <?php } ?>
        <div class="container-fluid main-content">
            <?php if ($controller == 'index' && $action == 'index') { ?>
            <?php } else { ?>
            <div class="container-xl">
                <?= $this->partial('common/breadcrumb') ?>
            </div>
            <?php } ?>
            <div class="container-xl">
                <div class="row">
                    <div class="col-12 col-sm mt-3">
                        <?= $this->flashSession->output() ?>
                        
<h1 class="mb-4">
    <?= $this->translate->translate('Story from %name%', ['name' => $story->channel]) ?>
    <span class="badge bg-secondary"><?= $story->getDate('d/m/Y H:i') ?></span>
    <span class="badge bg-info"><?= $this->translate->translate('%views% views', ['views' => $story->views]) ?></span>
</h1>
    <div class="col-12 pb-2 text-end">
        <a href="/contactar?type=1&subtype=7&message=ID+<?= $story->_id->__toString() ?>%0A<?= $this->translate->translate('Channel') ?>+<?= $story->getChannelPretty() ?>%0A<?= $this->translate->translate('Date') ?>+<?= $story->getDate('Y-m-d+H:i:s') ?>%0A%0A"
            class="btn btn-danger">
            <span class="fa fa-paper-plane"></span>
            <?= $this->translate->translate('Report') ?>
        </a>
        <?php if ($hasDate == 1 && $hasChannel == 1) { ?>
        <a href="/historias/<?= $story->getChannelPretty() ?>/<?= $story->getDate('Y-m-d') ?>" class="btn btn-secondary d-none d-sm-inline-block">
        <?php } elseif ($hasDate == 1) { ?>
        <a href="/historias/<?= $story->getDate('Y-m-d') ?>" class="btn btn-secondary d-none d-sm-inline-block">
        <?php } elseif ($hasChannel == 1) { ?>
        <a href="/historias/<?= $story->getChannelPretty() ?>" class="btn btn-secondary d-none d-sm-inline-block">
        <?php } else { ?>
        <a href="/historias" class="btn btn-secondary d-none d-sm-inline-block">
        <?php } ?>
            <span class="fa fa-arrow-up"></span>
            <?= $this->translate->translate('Back') ?>
        </a>
        <?php if ($previousStory) { ?>
        <a href="/historias/<?= $previousStory->getChannelPretty() ?>/<?= $previousStory->getDate('Y-m-d') ?>/<?= $previousStory->_id->__toString() ?>?l=<?= $list ?>&d=<?= $hasDate ?>&c=<?= $hasChannel ?>"
            class="btn btn-primary">
            <span class="fa fa-arrow-left"></span>
            <?= $this->translate->translate('Previous story') ?>
        </a>
        <?php } ?>
        <?php if ($nextStory) { ?>
        <a href="/historias/<?= $nextStory->getChannelPretty() ?>/<?= $nextStory->getDate('Y-m-d') ?>/<?= $nextStory->_id->__toString() ?>?l=<?= $list ?>&d=<?= $hasDate ?>&c=<?= $hasChannel ?>"
            class="btn btn-primary">
            <span class="fa fa-arrow-right"></span>
            <?= $this->translate->translate('Next story') ?>
        </a>
        <?php } ?>
    </div>
 
<div class="card mb-2">
    <table data-bs-toggle="table" class="table table-sm table-striped table-borderless table-hover text-monospace">
        <thead class="thead-dark">
            <th class="text-center d-none d-sm-table-cell"><?= $this->translate->translate('Hour') ?></th>
            <th class="text-center d-none d-sm-table-cell"><?= $this->translate->translate('Nick') ?></th>
            <th class="d-none d-sm-table-cell"><?= $this->translate->translate('Message') ?></th>
            <th class="d-sm-none"><?= $this->translate->translate('Message') ?></th>
        </thead>
        <tbody>
            <?php foreach ($story->messages as $msg) { ?>
            <tr>
                <td class="text-center d-none d-sm-table-cell">
                    <font class="text-muted">[<?= date('H:i', $msg['date']) ?>]</font>
                </td>
                <td class="text-end d-none d-sm-table-cell">
                    <b><font style="color:<?= $msg['nick_color'] ?>"><?= $msg['anonimized_nick'] ?></font></b>
                </td>
                <td class="text-start d-none d-sm-table-cell" style="word-wrap:break-word;">
                    <?= $msg['message'] ?>
                </td>
                <td class="text-start d-sm-none" style="word-wrap:break-word;">
                    <font class="text-muted">[<?= date('H:i', $msg['date']) ?>]</font>
                    <b><font style="color:<?= $msg['nick_color'] ?>"><?= $msg['anonimized_nick'] ?></font></b>
                    <br />
                    <?= $msg['message'] ?>
                </td>
            </tr>
            <?php } ?>
        </tbody>
    </table>
</div>
    <div class="col-12 pb-2 text-end">
        <a href="/contactar?type=1&subtype=7&message=ID+<?= $story->_id->__toString() ?>%0A<?= $this->translate->translate('Channel') ?>+<?= $story->getChannelPretty() ?>%0A<?= $this->translate->translate('Date') ?>+<?= $story->getDate('Y-m-d+H:i:s') ?>%0A%0A"
            class="btn btn-danger">
            <span class="fa fa-paper-plane"></span>
            <?= $this->translate->translate('Report') ?>
        </a>
        <?php if ($hasDate == 1 && $hasChannel == 1) { ?>
        <a href="/historias/<?= $story->getChannelPretty() ?>/<?= $story->getDate('Y-m-d') ?>" class="btn btn-secondary d-none d-sm-inline-block">
        <?php } elseif ($hasDate == 1) { ?>
        <a href="/historias/<?= $story->getDate('Y-m-d') ?>" class="btn btn-secondary d-none d-sm-inline-block">
        <?php } elseif ($hasChannel == 1) { ?>
        <a href="/historias/<?= $story->getChannelPretty() ?>" class="btn btn-secondary d-none d-sm-inline-block">
        <?php } else { ?>
        <a href="/historias" class="btn btn-secondary d-none d-sm-inline-block">
        <?php } ?>
            <span class="fa fa-arrow-up"></span>
            <?= $this->translate->translate('Back') ?>
        </a>
        <?php if ($previousStory) { ?>
        <a href="/historias/<?= $previousStory->getChannelPretty() ?>/<?= $previousStory->getDate('Y-m-d') ?>/<?= $previousStory->_id->__toString() ?>?l=<?= $list ?>&d=<?= $hasDate ?>&c=<?= $hasChannel ?>"
            class="btn btn-primary">
            <span class="fa fa-arrow-left"></span>
            <?= $this->translate->translate('Previous story') ?>
        </a>
        <?php } ?>
        <?php if ($nextStory) { ?>
        <a href="/historias/<?= $nextStory->getChannelPretty() ?>/<?= $nextStory->getDate('Y-m-d') ?>/<?= $nextStory->_id->__toString() ?>?l=<?= $list ?>&d=<?= $hasDate ?>&c=<?= $hasChannel ?>"
            class="btn btn-primary">
            <span class="fa fa-arrow-right"></span>
            <?= $this->translate->translate('Next story') ?>
        </a>
        <?php } ?>
    </div>
 
<div class="card card-history-options">
    <div class="card-body text-center">
        <div class="btn-group">
            <a href="/historias/<?= $story->getChannelPretty() ?>/<?= $story->getDate('Y-m-d') ?>/<?= $story->_id->__toString() ?>/dislike"
                rel="nofollow" class="btn btn-danger">
                <span class="fa fa-thumbs-down"></span>
            </a>
            <div class="input-group-append">
                <span class="input-group-text <?php if ($story->getPoints() > 0) { ?>text-success<?php } elseif ($story->getPoints() < 0) { ?>text-danger<?php } ?>">
                    <b><?= $story->getPoints() ?></b>
                </span>
            </div>
            <a href="/historias/<?= $story->getChannelPretty() ?>/<?= $story->getDate('Y-m-d') ?>/<?= $story->_id->__toString() ?>/like"
                rel="nofollow" class="btn btn-success">
                <span class="fa fa-thumbs-up"></span>
            </a>
        </div>
        <font style="margin-left:10px;margin-right:10px;">|</font>
        <?php $this->partial('common/share', ['share_url' => $baseUri . 'historias/' . $story->getChannelPretty() . '/' . $story->getDate('Y-m-d') . '/' . $story->_id->__toString(), 'share_title' => $this->translate->translate('Sharing a story from channel %name% at #ChatHispano (%date%)', ['name' => $story->channel, 'date' => $story->getDate('d/m/Y')]), 'share_nourlencode' => 1, 'share_newline' => 0]); ?>
    </div>
</div>
<style>
.card.card-history-options {
    position: fixed;
    bottom: 10px;
    background-color: #eaeaea;
    box-shadow: 3px 3px #cccccc;
}
@media (min-width: 577px) {
    .card.card-history-options {
        left: 50%;
        transform: translateX(-50%);
    }
}
@media (max-width : 576px) {
    .card.card-history-options {
        left: 10px;
        right: 10px;
    }
}
</style>
 
                        <?php if (!$hasPremium && $controller != 'paywall' && $controller != 'auth' && $controller != 'error' && $controller != 'sexshop' && $section_gay != 1 && $section_lesbianas != 1 && $section_sex != 1) { ?>
                        <?php if ($ads_onnetwork_enabled) { ?><?= $this->partial('common/ads/video/onnetwork') ?><?php } ?>
                        <?php } ?>
                    </div>
                    <div class="col-12 col-sm-auto mt-3 sidebar sticky-sm-top align-self-start">
                        <?= $this->partial('common/panel-network-realtime') ?>
                        <?php if (!$hasPremium && $controller != 'paywall' && $controller != 'auth' && $controller != 'error' && $controller != 'sexshop') { ?>
                        <div class="card mt-3">
                            <div class="card-body">
                                <?= $this->partial('common/ads/banners/right') ?>
                            </div>
                        </div>
                        <?php } ?>
                        <?php if ($controller == 'index' && $action == 'index' && !$hasPremium) { ?>
                        <div class="card text-bg-light mt-3 overflow-hidden">
    <a href="/suscripciones/premium">
        <img alt="Chat Hispano PREMIUM" class="card-img-top"
        <?php if ($paywall_promo_enabled) { ?>
            src="/assets/web/images/<?= $paywall_promo_image ?>" />
        <?php } else { ?>
            src="/assets/web/images/hispano-large-premium.png" />
        <?php } ?>
    </a>
    <div class="card-body">
        <div class="d-grid gap-2">
            <a href="/suscripciones/premium" class="btn btn-primary" target="_blank">
                <?= $this->translate->translate('Try it free') ?>
            </a>
        </div>
    </div>
</div>
 
                        <?php } ?>
                    </div>
                </div>
                <?php if ($controller != 'paywall' && $controller != 'auth' && $controller != 'error' && $controller != 'profile' && $controller != 'sexshop') { ?>
                <div class="row">
                </div>
                <?php } ?>
            </div>
        </div>
 
        <?= $this->partial('common/footer') ?>
 
        <!-- main JavaScript -->
        <?= $this->assets->outputInlineJs('mainJs') ?>
        <?php if ($enable_moment) { ?>
        <?= $this->assets->outputInlineJs('momentJs') ?>
        <?php } ?>
        <?php if ($enable_charts) { ?>
        <?= $this->assets->outputInlineJs('chartJs') ?>
        <?php } ?>
        <?php if ($enable_editor) { ?>
        <?= $this->assets->outputJs('ckeditorJs') ?>
        <?php } ?>
        <?= $this->assets->outputInlineJs('pluginJs') ?>
 
        <script type="text/javascript">
            function load_massarius() {
                s = document.createElement('script');
                s.type = "text/javascript";
                s.src = "https://massariuscdn.com/pubs/chathispano/chathispano_hb_setup.js";
                document.body.appendChild(s);
            }
        </script>
 
        <?= $this->partial('common/js-underage') ?>
 
        <script type="text/javascript">
        $(document).ready(function() {
            /**********
             * PLUGIN *
             **********/
            var chathispano = new $.chathispano({
                'baseUri': "<?= $baseUri ?>",
                'locale': "<?= $locale ?>",
                'rev': "<?= $revision ?>",
                'tmpl_dir': '/assets/web/js/templates/',
                'storage_prefix': 'ChatHispanoWeb-',
                'language_file': 'web',
            });
            window.chathispano = chathispano;
            document.chathispano = chathispano;
            chathispano.init();
            chathispano.ready();
        });
        </script>
 
        
 
        <?php if (!$hasPremium && ($section_gay == 1 || $section_sex == 1)) { ?>
        <?= $this->partial('common/ads/trafficstars/avideo') ?>
        <?php } ?>
    </body>
</html>
#4Phalcon\Mvc\View\Engine\Volt->render
#5Phalcon\Mvc\View->engineRender
#6Phalcon\Mvc\View->processRender
#7Phalcon\Mvc\View->render
#8Phalcon\Mvc\Application->handle
/srv/ChatHispanoEngine/releases/20260722121326/apps/Application.php (150)
<?php
 
// namespace ChatHispanoEngine;
 
/**
 * Application driver class to initialize Phalcon and
 * other resources.
 */
class Application extends \Phalcon\Mvc\Application
{
    private static $mode = 'dev';
 
    private static $DEFAULT_MODULE = 'api';
 
    public const MODE_PRODUCTION = 'prod';
    public const MODE_STAGING = 'staging';
    public const MODE_TEST = 'test';
    public const MODE_DEVELOPMENT = 'dev';
 
    /**
     * Set application mode and error reporting level.
     */
    public function __construct($defaultModule, $env = 'dev')
    {
        $this->modules = array(
            'core' => array(
                'className' => 'ChatHispanoEngine\Core\Module',
                'path' => __DIR__.'/Core/Module.php',
            ),
            'api' => array(
                'className' => 'ChatHispanoEngine\Api\Module',
                'path' => __DIR__.'/Api/Module.php',
            ),
            'login' => array(
                'className' => 'ChatHispanoEngine\Login\Module',
                'path' => __DIR__.'/Login/Module.php',
            ),
            'oidc' => array(
                'className' => 'ChatHispanoEngine\Oidc\Module',
                'path' => __DIR__.'/Oidc/Module.php',
            ),
            'web' => array(
                'className' => 'ChatHispanoEngine\Web\Module',
                'path' => __DIR__.'/Web/Module.php',
            ),
            'backoffice' => array(
                'className' => 'ChatHispanoEngine\Backoffice\Module',
                'path' => __DIR__.'/Backoffice/Module.php',
            ),
            'movil' => array(
                'className' => 'ChatHispanoEngine\Movil\Module',
                'path' => __DIR__.'/Movil/Module.php',
            ),
            'regwebexternal' => array(
                'className' => 'ChatHispanoEngine\RegWebExternal\Module',
                'path' => __DIR__.'/Regwebexternal/Module.php',
            ),
            'cdn' => array(
                'className' => 'ChatHispanoEngine\Cdn\Module',
                'path' => __DIR__.'/Cdn/Module.php',
            ),
            'shorten' => array(
                'className' => 'ChatHispanoEngine\Shorten\Module',
                'path' => __DIR__.'/Shorten/Module.php',
            ),
        );
 
        static::$DEFAULT_MODULE = $defaultModule;
        self::$mode = $env;
 
        self::$mode = trim(file_get_contents(__DIR__.'/../config/environment.txt'));
        define('ENVIRONMENT', self::$mode);
 
        if (!defined('PHALCON_MODE')) {
            $mode = getenv('PHALCON_MODE');
            $mode = $mode ? $mode : self::$mode;
            define('PHALCON_MODE', $mode);
        }
 
        switch (self::getMode()) {
            case self::MODE_PRODUCTION:
            case self::MODE_STAGING:
                error_reporting(0);
                break;
            case self::MODE_TEST:
            case self::MODE_DEVELOPMENT:
                ini_set('display_errors', 'On');
                error_reporting(E_ALL);
                break;
        }
    }
 
    /**
     * Register the services here to make them general or register in
     * the ModuleDefinition to make them module-specific.
     */
    protected function _registerServices()
    {
        $defaultModule = self::$DEFAULT_MODULE;
        $modules = $this->modules;
        $config = include __DIR__.'/../config/config.php';
        $env_config = include __DIR__.'/../config/config_'.ENVIRONMENT.'.php';
        $config->merge($env_config);
 
        $di = new \Phalcon\DI\FactoryDefault();
 
        include __DIR__.'/../config/loader.php';
        include __DIR__.'/../config/services.php';
        include __DIR__.'/../config/routing.php';
 
        $this->setDI($di);
    }
 
    /**
     * Run the application.
     */
    public function main()
    {
        if (static::MODE_PRODUCTION === static::getMode()) {
            $this->mainProd();
        } else {
            $this->mainDev();
        }
    }
 
    private function getRequestUri()
    {
        if (!isset($_SERVER)) {
            return "/";
        }
        if (!is_array($_SERVER)) {
            return "/";
        }
        if (!isset($_SERVER['REQUEST_URI'])) {
            return "/";
        }
        return $_SERVER['REQUEST_URI'];
    }
 
    /**
     * Run the development environment.
     */
    private function mainDev()
    {
        (new \Phalcon\Support\Debug())->listen();
 
        $this->_registerServices();
        $this->registerModules($this->modules);
 
        $response = $this->handle($this->getRequestUri());
        $response->send();
    }
 
    /**
     * Run the production environment.
     */
    private function mainProd()
    {
        try {
            $this->registerModules($this->modules);
            $this->_registerServices();
 
            $response = $this->handle($this->getRequestUri());
            $response->send();
        } catch (\Exception $e) {
            $logger = new \Phalcon\Logger\Adapter\Stream(__DIR__.'/../logs/'.date('Y-m-d').'.log');
            $msg = "[".$_SERVER['SERVER_NAME']."] [".$_SERVER['REQUEST_URI']."] [".$e->getCode()."] ".$e->getMessage()." at ".$e->getFile()." (".$e->getLine().")";
            $msg .= "\n".$e->getTraceAsString();
            $logger->process(new \Phalcon\Logger\Item($msg, "error", 100));
            $logger->close();
 
            // remove view contents from buffer
            ob_clean();
 
            $errorCode = 500;
            $errorView = __DIR__.'/../public/errors/error.html';
 
            if (401 === $e->getCode()) {
                // 401 UNAUTHORIZED
                $errorCode = 401;
            } elseif (403 === $e->getCode()) {
                // 403 FORBIDDEN
                $errorCode = 403;
            } elseif (404 === $e->getCode()
                || $e instanceof Phalcon\Mvc\View\Exception
                || $e instanceof Phalcon\Mvc\Dispatcher\Exception) {
                // 404 NOT FOUND
                $errorCode = 404;
            }
 
            // Get error view contents. Since we are including the view
            // file here you can use PHP and local vars inside the error view.
            ob_start();
            include_once $errorView;
            $contents = ob_get_contents();
            ob_end_clean();
 
            // send view to header
            $response = $this->getDI()->getShared('response');
            $response->resetHeaders()
                ->setStatusCode($errorCode, null)
                ->setContent($contents)
                ->send()
            ;
 
            /**
             * We try to register in MongoDB the error to be able to
             * track it in backoffice and/or receive emails
             */
            try {
                $system_log_manager = $this->getDI()->get('system_log_manager');
                if ($errorCode == 500) {
                    $system_log_manager->createError([
                        'ip' => $_SERVER['SERVER_ADDR'],
                        'host' => $_SERVER['SERVER_NAME'],
                        'process' => 'php-fpm',
                        'message' => $e->getMessage(),
                        'file' => $e->getFile(),
                        'line' => $e->getLine(),
                    ]);
                } else {
                    $system_log_manager->createWarning([
                        'ip' => $_SERVER['SERVER_ADDR'],
                        'host' => $_SERVER['SERVER_NAME'],
                        'process' => 'php-fpm',
                        'message' => $e->getMessage(),
                        'file' => $e->getFile(),
                        'line' => $e->getLine(),
                    ]);
                }
            } catch (\Exception $e) {
            }
        }
    }
 
    public function slowLog($t)
    {
        $config = $this->getDI()->get('config');
        $irc_manager = $this->getDI()->get('inspircd_irc_manager');
        $server = gethostname() ? gethostname() : 'unknown';
        $uri = "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
        if (substr($_SERVER['REQUEST_URI'], 0, 10) == '/historias') {
            return;
        }
        $msg = "\x02[SLOWLOG] [".str_pad($server, 6, " ", STR_PAD_LEFT)."] [".str_pad(round($t, 1), 5, " ", STR_PAD_LEFT)."s] PATH=\x02 ".$_SERVER['REQUEST_URI']
            ."\x02 TYPE=\x02 ".$_SERVER['REQUEST_METHOD']."\x02 URI=\x02 ".$uri;
        $irc_manager->privmsgOrderEnqueue('AAAAAI', $config->irc->debug_channel, $msg);
    }
 
    /**
     * Get the current mode.
     *
     * @return string
     */
    public static function getMode()
    {
        return self::$mode;
    }
}
#9Application->mainDev
/srv/ChatHispanoEngine/releases/20260722121326/apps/Application.php (122)
<?php
 
// namespace ChatHispanoEngine;
 
/**
 * Application driver class to initialize Phalcon and
 * other resources.
 */
class Application extends \Phalcon\Mvc\Application
{
    private static $mode = 'dev';
 
    private static $DEFAULT_MODULE = 'api';
 
    public const MODE_PRODUCTION = 'prod';
    public const MODE_STAGING = 'staging';
    public const MODE_TEST = 'test';
    public const MODE_DEVELOPMENT = 'dev';
 
    /**
     * Set application mode and error reporting level.
     */
    public function __construct($defaultModule, $env = 'dev')
    {
        $this->modules = array(
            'core' => array(
                'className' => 'ChatHispanoEngine\Core\Module',
                'path' => __DIR__.'/Core/Module.php',
            ),
            'api' => array(
                'className' => 'ChatHispanoEngine\Api\Module',
                'path' => __DIR__.'/Api/Module.php',
            ),
            'login' => array(
                'className' => 'ChatHispanoEngine\Login\Module',
                'path' => __DIR__.'/Login/Module.php',
            ),
            'oidc' => array(
                'className' => 'ChatHispanoEngine\Oidc\Module',
                'path' => __DIR__.'/Oidc/Module.php',
            ),
            'web' => array(
                'className' => 'ChatHispanoEngine\Web\Module',
                'path' => __DIR__.'/Web/Module.php',
            ),
            'backoffice' => array(
                'className' => 'ChatHispanoEngine\Backoffice\Module',
                'path' => __DIR__.'/Backoffice/Module.php',
            ),
            'movil' => array(
                'className' => 'ChatHispanoEngine\Movil\Module',
                'path' => __DIR__.'/Movil/Module.php',
            ),
            'regwebexternal' => array(
                'className' => 'ChatHispanoEngine\RegWebExternal\Module',
                'path' => __DIR__.'/Regwebexternal/Module.php',
            ),
            'cdn' => array(
                'className' => 'ChatHispanoEngine\Cdn\Module',
                'path' => __DIR__.'/Cdn/Module.php',
            ),
            'shorten' => array(
                'className' => 'ChatHispanoEngine\Shorten\Module',
                'path' => __DIR__.'/Shorten/Module.php',
            ),
        );
 
        static::$DEFAULT_MODULE = $defaultModule;
        self::$mode = $env;
 
        self::$mode = trim(file_get_contents(__DIR__.'/../config/environment.txt'));
        define('ENVIRONMENT', self::$mode);
 
        if (!defined('PHALCON_MODE')) {
            $mode = getenv('PHALCON_MODE');
            $mode = $mode ? $mode : self::$mode;
            define('PHALCON_MODE', $mode);
        }
 
        switch (self::getMode()) {
            case self::MODE_PRODUCTION:
            case self::MODE_STAGING:
                error_reporting(0);
                break;
            case self::MODE_TEST:
            case self::MODE_DEVELOPMENT:
                ini_set('display_errors', 'On');
                error_reporting(E_ALL);
                break;
        }
    }
 
    /**
     * Register the services here to make them general or register in
     * the ModuleDefinition to make them module-specific.
     */
    protected function _registerServices()
    {
        $defaultModule = self::$DEFAULT_MODULE;
        $modules = $this->modules;
        $config = include __DIR__.'/../config/config.php';
        $env_config = include __DIR__.'/../config/config_'.ENVIRONMENT.'.php';
        $config->merge($env_config);
 
        $di = new \Phalcon\DI\FactoryDefault();
 
        include __DIR__.'/../config/loader.php';
        include __DIR__.'/../config/services.php';
        include __DIR__.'/../config/routing.php';
 
        $this->setDI($di);
    }
 
    /**
     * Run the application.
     */
    public function main()
    {
        if (static::MODE_PRODUCTION === static::getMode()) {
            $this->mainProd();
        } else {
            $this->mainDev();
        }
    }
 
    private function getRequestUri()
    {
        if (!isset($_SERVER)) {
            return "/";
        }
        if (!is_array($_SERVER)) {
            return "/";
        }
        if (!isset($_SERVER['REQUEST_URI'])) {
            return "/";
        }
        return $_SERVER['REQUEST_URI'];
    }
 
    /**
     * Run the development environment.
     */
    private function mainDev()
    {
        (new \Phalcon\Support\Debug())->listen();
 
        $this->_registerServices();
        $this->registerModules($this->modules);
 
        $response = $this->handle($this->getRequestUri());
        $response->send();
    }
 
    /**
     * Run the production environment.
     */
    private function mainProd()
    {
        try {
            $this->registerModules($this->modules);
            $this->_registerServices();
 
            $response = $this->handle($this->getRequestUri());
            $response->send();
        } catch (\Exception $e) {
            $logger = new \Phalcon\Logger\Adapter\Stream(__DIR__.'/../logs/'.date('Y-m-d').'.log');
            $msg = "[".$_SERVER['SERVER_NAME']."] [".$_SERVER['REQUEST_URI']."] [".$e->getCode()."] ".$e->getMessage()." at ".$e->getFile()." (".$e->getLine().")";
            $msg .= "\n".$e->getTraceAsString();
            $logger->process(new \Phalcon\Logger\Item($msg, "error", 100));
            $logger->close();
 
            // remove view contents from buffer
            ob_clean();
 
            $errorCode = 500;
            $errorView = __DIR__.'/../public/errors/error.html';
 
            if (401 === $e->getCode()) {
                // 401 UNAUTHORIZED
                $errorCode = 401;
            } elseif (403 === $e->getCode()) {
                // 403 FORBIDDEN
                $errorCode = 403;
            } elseif (404 === $e->getCode()
                || $e instanceof Phalcon\Mvc\View\Exception
                || $e instanceof Phalcon\Mvc\Dispatcher\Exception) {
                // 404 NOT FOUND
                $errorCode = 404;
            }
 
            // Get error view contents. Since we are including the view
            // file here you can use PHP and local vars inside the error view.
            ob_start();
            include_once $errorView;
            $contents = ob_get_contents();
            ob_end_clean();
 
            // send view to header
            $response = $this->getDI()->getShared('response');
            $response->resetHeaders()
                ->setStatusCode($errorCode, null)
                ->setContent($contents)
                ->send()
            ;
 
            /**
             * We try to register in MongoDB the error to be able to
             * track it in backoffice and/or receive emails
             */
            try {
                $system_log_manager = $this->getDI()->get('system_log_manager');
                if ($errorCode == 500) {
                    $system_log_manager->createError([
                        'ip' => $_SERVER['SERVER_ADDR'],
                        'host' => $_SERVER['SERVER_NAME'],
                        'process' => 'php-fpm',
                        'message' => $e->getMessage(),
                        'file' => $e->getFile(),
                        'line' => $e->getLine(),
                    ]);
                } else {
                    $system_log_manager->createWarning([
                        'ip' => $_SERVER['SERVER_ADDR'],
                        'host' => $_SERVER['SERVER_NAME'],
                        'process' => 'php-fpm',
                        'message' => $e->getMessage(),
                        'file' => $e->getFile(),
                        'line' => $e->getLine(),
                    ]);
                }
            } catch (\Exception $e) {
            }
        }
    }
 
    public function slowLog($t)
    {
        $config = $this->getDI()->get('config');
        $irc_manager = $this->getDI()->get('inspircd_irc_manager');
        $server = gethostname() ? gethostname() : 'unknown';
        $uri = "https://".$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI'];
        if (substr($_SERVER['REQUEST_URI'], 0, 10) == '/historias') {
            return;
        }
        $msg = "\x02[SLOWLOG] [".str_pad($server, 6, " ", STR_PAD_LEFT)."] [".str_pad(round($t, 1), 5, " ", STR_PAD_LEFT)."s] PATH=\x02 ".$_SERVER['REQUEST_URI']
            ."\x02 TYPE=\x02 ".$_SERVER['REQUEST_METHOD']."\x02 URI=\x02 ".$uri;
        $irc_manager->privmsgOrderEnqueue('AAAAAI', $config->irc->debug_channel, $msg);
    }
 
    /**
     * Get the current mode.
     *
     * @return string
     */
    public static function getMode()
    {
        return self::$mode;
    }
}
#10Application->main
/srv/ChatHispanoEngine/releases/20260722121326/public/index.php (13)
<?php
 
date_default_timezone_set('Europe/Madrid');
 
require_once __DIR__.'/../vendor/autoload.php';
require_once __DIR__.'/../apps/Application.php';
 
if (isset($_SERVER['PHALCON_APP'])) {
    $app = new Application($_SERVER['PHALCON_APP']);
} else {
    $app = new Application('web');
}
$app->main();
 
try {
    $t = microtime(true) - $_SERVER["REQUEST_TIME_FLOAT"];
    if ($t > 6) {
        $app->slowLog($t);
    }
} catch (\Exception $e) {
}
KeyValue
_url/historias/cadiz/2026-05-11/6a026e085cb87dd5f70dbc59
c1
d1
ldisliked
KeyValue
USERwww-data
HOME/var/www
HTTP_CONNECTIONclose
HTTP_X_FORWARDED_FOR216.73.217.70
HTTP_X_FORWARDED_PROTOhttp
HTTP_ACCEPT_ENCODINGgzip, br, zstd, deflate
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com)
HTTP_ACCEPT*/*
DISABLE_ANTEVENIO0
DISABLE_MOBUSI0
DISABLE_MASSARIUS0
DISABLE_RELATEDCONTENT0
DISABLE_ADSENSE0
ADS_DEFER0
PHALCON_APPweb
CHATHISPANOENGINE_REVISIONdevelopment
CHATHISPANOENGINE_INSTANCEvirtualbox
SCRIPT_FILENAME/srv/ChatHispanoEngine/releases/20260722121326/public/index.php
PATH_TRANSLATED/srv/ChatHispanoEngine/current/public
PATH_INFO
HTTP_HOSTtest.chathispano.com
REDIRECT_STATUS200
SERVER_NAMEtest.chathispano.com
SERVER_PORT80
SERVER_ADDR10.234.61.101
REMOTE_USER
REMOTE_PORT56800
REMOTE_ADDR10.234.61.151
SERVER_SOFTWAREnginx/1.26.3
GATEWAY_INTERFACECGI/1.1
REQUEST_SCHEMEhttp
SERVER_PROTOCOLHTTP/1.1
DOCUMENT_ROOT/srv/ChatHispanoEngine/releases/20260722121326/public
DOCUMENT_URI/index.php
REQUEST_URI/historias/cadiz/2026-05-11/6a026e085cb87dd5f70dbc59?c=1&d=1&l=disliked
SCRIPT_NAME/index.php
CONTENT_LENGTH
CONTENT_TYPE
REQUEST_METHODGET
QUERY_STRING_url=/historias/cadiz/2026-05-11/6a026e085cb87dd5f70dbc59&c=1&d=1&l=disliked
FCGI_ROLERESPONDER
PHP_SELF/index.php
REQUEST_TIME_FLOAT1784732746.5271
REQUEST_TIME1784732746
#Path
0/srv/ChatHispanoEngine/releases/20260722121326/public/index.php
1/srv/ChatHispanoEngine/releases/20260722121326/vendor/autoload.php
2/srv/ChatHispanoEngine/releases/20260722121326/vendor/composer/autoload_real.php
3/srv/ChatHispanoEngine/releases/20260722121326/vendor/composer/platform_check.php
4/srv/ChatHispanoEngine/releases/20260722121326/vendor/composer/ClassLoader.php
5/srv/ChatHispanoEngine/releases/20260722121326/vendor/composer/include_paths.php
6/srv/ChatHispanoEngine/releases/20260722121326/vendor/composer/autoload_static.php
7/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/polyfill-mbstring/bootstrap.php
8/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/polyfill-mbstring/bootstrap80.php
9/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/deprecation-contracts/function.php
10/srv/ChatHispanoEngine/releases/20260722121326/vendor/amphp/amp/lib/functions.php
11/srv/ChatHispanoEngine/releases/20260722121326/vendor/amphp/amp/lib/Internal/functions.php
12/srv/ChatHispanoEngine/releases/20260722121326/vendor/react/promise/src/functions_include.php
13/srv/ChatHispanoEngine/releases/20260722121326/vendor/react/promise/src/functions.php
14/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/polyfill-ctype/bootstrap.php
15/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/polyfill-ctype/bootstrap80.php
16/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/polyfill-intl-normalizer/bootstrap.php
17/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/polyfill-intl-normalizer/bootstrap80.php
18/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/polyfill-php85/bootstrap.php
19/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/polyfill-php85/bootstrap80.php
20/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/polyfill-php84/bootstrap.php
21/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/polyfill-intl-grapheme/bootstrap.php
22/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/polyfill-intl-grapheme/bootstrap80.php
23/srv/ChatHispanoEngine/releases/20260722121326/vendor/amphp/byte-stream/lib/functions.php
24/srv/ChatHispanoEngine/releases/20260722121326/vendor/illuminate/collections/functions.php
25/srv/ChatHispanoEngine/releases/20260722121326/vendor/illuminate/collections/helpers.php
26/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/string/Resources/functions.php
27/srv/ChatHispanoEngine/releases/20260722121326/vendor/myclabs/deep-copy/src/DeepCopy/deep_copy.php
28/srv/ChatHispanoEngine/releases/20260722121326/vendor/ralouphie/getallheaders/src/getallheaders.php
29/srv/ChatHispanoEngine/releases/20260722121326/vendor/phpunit/phpunit/src/Framework/Assert/Functions.php
30/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/clock/Resources/now.php
31/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/polyfill-intl-idn/bootstrap.php
32/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/translation/Resources/functions.php
33/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/var-dumper/Resources/functions/dump.php
34/srv/ChatHispanoEngine/releases/20260722121326/vendor/guzzlehttp/guzzle/src/functions_include.php
35/srv/ChatHispanoEngine/releases/20260722121326/vendor/guzzlehttp/guzzle/src/functions.php
36/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/polyfill-php80/bootstrap.php
37/srv/ChatHispanoEngine/releases/20260722121326/vendor/amphp/process/lib/functions.php
38/srv/ChatHispanoEngine/releases/20260722121326/vendor/amphp/serialization/src/functions.php
39/srv/ChatHispanoEngine/releases/20260722121326/vendor/amphp/sync/src/functions.php
40/srv/ChatHispanoEngine/releases/20260722121326/vendor/amphp/sync/src/ConcurrentIterator/functions.php
41/srv/ChatHispanoEngine/releases/20260722121326/vendor/illuminate/reflection/helpers.php
42/srv/ChatHispanoEngine/releases/20260722121326/vendor/psy/psysh/src/functions.php
43/srv/ChatHispanoEngine/releases/20260722121326/vendor/daverandom/libdns/src/functions.php
44/srv/ChatHispanoEngine/releases/20260722121326/vendor/illuminate/support/functions.php
45/srv/ChatHispanoEngine/releases/20260722121326/vendor/illuminate/support/helpers.php
46/srv/ChatHispanoEngine/releases/20260722121326/vendor/symfony/polyfill-php81/bootstrap.php
47/srv/ChatHispanoEngine/releases/20260722121326/vendor/amphp/dns/lib/functions.php
48/srv/ChatHispanoEngine/releases/20260722121326/vendor/codeception/codeception/functions.php
49/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/functions.php
50/srv/ChatHispanoEngine/releases/20260722121326/apps/Application.php
51/srv/ChatHispanoEngine/releases/20260722121326/config/config.php
52/srv/ChatHispanoEngine/releases/20260722121326/config/config_staging.php
53/srv/ChatHispanoEngine/releases/20260722121326/config/loader.php
54/srv/ChatHispanoEngine/releases/20260722121326/config/services.php
55/srv/ChatHispanoEngine/releases/20260722121326/config/managers.php
56/srv/ChatHispanoEngine/releases/20260722121326/config/routing.php
57/srv/ChatHispanoEngine/releases/20260722121326/apps/Web/config/routing.php
58/srv/ChatHispanoEngine/releases/20260722121326/apps/Web/Module.php
59/srv/ChatHispanoEngine/releases/20260722121326/apps/Web/config/config.php
60/srv/ChatHispanoEngine/releases/20260722121326/apps/Web/config/services.php
61/srv/ChatHispanoEngine/releases/20260722121326/apps/Web/config/managers.php
62/srv/ChatHispanoEngine/releases/20260722121326/apps/Web/Controllers/StoriesController.php
63/srv/ChatHispanoEngine/releases/20260722121326/apps/Web/Controllers/BaseController.php
64/srv/ChatHispanoEngine/releases/20260722121326/apps/Core/Controllers/BaseController.php
65/srv/ChatHispanoEngine/releases/20260722121326/vendor/iwalkalone/translator/src/Translator.php
66/srv/ChatHispanoEngine/releases/20260722121326/apps/Web/Auth/Auth.php
67/srv/ChatHispanoEngine/releases/20260722121326/apps/Core/Managers/InspIRCd/GlineManager.php
68/srv/ChatHispanoEngine/releases/20260722121326/apps/Core/Models/InspIRCd/Gline.php
69/srv/ChatHispanoEngine/releases/20260722121326/apps/Core/Models/BaseCollection.php
70/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Client.php
71/srv/ChatHispanoEngine/releases/20260722121326/vendor/composer/InstalledVersions.php
72/srv/ChatHispanoEngine/releases/20260722121326/vendor/composer/installed.php
73/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Builder/BuilderEncoder.php
74/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Codec/EncodeIfSupported.php
75/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Codec/Encoder.php
76/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Builder/Encoder/PipelineEncoder.php
77/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Builder/Encoder/RecursiveEncode.php
78/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Builder/Encoder/VariableEncoder.php
79/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Builder/Encoder/DictionaryEncoder.php
80/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Builder/Encoder/FieldPathEncoder.php
81/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Builder/Encoder/CombinedFieldQueryEncoder.php
82/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Builder/Encoder/QueryEncoder.php
83/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Builder/Encoder/OutputWindowEncoder.php
84/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Builder/Encoder/OperatorEncoder.php
85/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Builder/Encoder/DateTimeEncoder.php
86/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Database.php
87/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Collection.php
88/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Operation/FindOne.php
89/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Operation/Explainable.php
90/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Operation/Find.php
91/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Model/BSONArray.php
92/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Model/BSONDocument.php
93/srv/ChatHispanoEngine/releases/20260722121326/apps/Core/Managers/InspIRCd/ChannelManager.php
94/srv/ChatHispanoEngine/releases/20260722121326/apps/Core/Models/Channel/Datasheet.php
95/srv/ChatHispanoEngine/releases/20260722121326/apps/Core/Managers/VivelavitaManager.php
96/srv/ChatHispanoEngine/releases/20260722121326/apps/Core/Managers/InspIRCd/ChannelLoggerManager.php
97/srv/ChatHispanoEngine/releases/20260722121326/apps/Core/Models/InspIRCd/Channel/Story.php
98/srv/ChatHispanoEngine/releases/20260722121326/apps/Core/Library/MobileDetect.php
99/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Operation/UpdateOne.php
100/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/Operation/Update.php
101/srv/ChatHispanoEngine/releases/20260722121326/vendor/mongodb/mongodb/src/UpdateResult.php
102/tmp/cache/volt/%%srv%%chathispanoengine%%releases%%20260722121326%%apps%%web%%views%%stories%%view.volt.compiled
103/tmp/cache/volt/%%srv%%chathispanoengine%%releases%%20260722121326%%apps%%web%%views%%common%%tags.volt.compiled
104/tmp/cache/volt/%%srv%%chathispanoengine%%releases%%20260722121326%%apps%%web%%views%%common%%ads%%head%%massarius.volt.compiled
105/tmp/cache/volt/%%srv%%chathispanoengine%%releases%%20260722121326%%apps%%web%%views%%common%%fonts-preload.volt.compiled
106/tmp/cache/volt/%%srv%%chathispanoengine%%releases%%20260722121326%%apps%%web%%views%%common%%backgrounds.volt.compiled
107/tmp/cache/volt/%%srv%%chathispanoengine%%releases%%20260722121326%%apps%%web%%views%%common%%fonts.volt.compiled
108/tmp/cache/volt/%%srv%%chathispanoengine%%releases%%20260722121326%%apps%%web%%views%%common%%wall-underage.volt.compiled
Memory
Usage6291456