| #0 | Phalcon\Mvc\View\Engine\Volt->render |
| #1 | Phalcon\Mvc\View->engineRender |
| #2 | Phalcon\Mvc\View->partial |
| #3 | Phalcon\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>
|
| #4 | Phalcon\Mvc\View\Engine\Volt->render |
| #5 | Phalcon\Mvc\View->engineRender |
| #6 | Phalcon\Mvc\View->processRender |
| #7 | Phalcon\Mvc\View->render |
| #8 | Phalcon\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;
}
}
|
| #9 | Application->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;
}
}
|
| #10 | Application->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) {
}
|
| Key | Value |
|---|---|
| _url | /historias/cadiz/2026-05-11/6a026e085cb87dd5f70dbc59 |
| c | 1 |
| d | 1 |
| l | disliked |
| Key | Value |
|---|---|
| USER | www-data |
| HOME | /var/www |
| HTTP_CONNECTION | close |
| HTTP_X_FORWARDED_FOR | 216.73.217.70 |
| HTTP_X_FORWARDED_PROTO | http |
| HTTP_ACCEPT_ENCODING | gzip, br, zstd, deflate |
| HTTP_USER_AGENT | Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; +claudebot@anthropic.com) |
| HTTP_ACCEPT | */* |
| DISABLE_ANTEVENIO | 0 |
| DISABLE_MOBUSI | 0 |
| DISABLE_MASSARIUS | 0 |
| DISABLE_RELATEDCONTENT | 0 |
| DISABLE_ADSENSE | 0 |
| ADS_DEFER | 0 |
| PHALCON_APP | web |
| CHATHISPANOENGINE_REVISION | development |
| CHATHISPANOENGINE_INSTANCE | virtualbox |
| SCRIPT_FILENAME | /srv/ChatHispanoEngine/releases/20260722121326/public/index.php |
| PATH_TRANSLATED | /srv/ChatHispanoEngine/current/public |
| PATH_INFO | |
| HTTP_HOST | test.chathispano.com |
| REDIRECT_STATUS | 200 |
| SERVER_NAME | test.chathispano.com |
| SERVER_PORT | 80 |
| SERVER_ADDR | 10.234.61.101 |
| REMOTE_USER | |
| REMOTE_PORT | 56800 |
| REMOTE_ADDR | 10.234.61.151 |
| SERVER_SOFTWARE | nginx/1.26.3 |
| GATEWAY_INTERFACE | CGI/1.1 |
| REQUEST_SCHEME | http |
| SERVER_PROTOCOL | HTTP/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_METHOD | GET |
| QUERY_STRING | _url=/historias/cadiz/2026-05-11/6a026e085cb87dd5f70dbc59&c=1&d=1&l=disliked |
| FCGI_ROLE | RESPONDER |
| PHP_SELF | /index.php |
| REQUEST_TIME_FLOAT | 1784732746.5271 |
| REQUEST_TIME | 1784732746 |
| # | 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 | |
|---|---|
| Usage | 6291456 |