/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/main
/lib
/eventmanager.php
$args[] = $event;
}
else
{
$args = array_merge($args, array_values($event->getParameters()));
}
$callback = null;
if (isset($handler['CALLBACK']))
{
$callback = $handler['CALLBACK'];
}
elseif (!empty($handler['TO_CLASS']) && !empty($handler['TO_METHOD']) && class_exists($handler['TO_CLASS']))
{
$callback = [$handler['TO_CLASS'], $handler['TO_METHOD']];
}
if ($callback != null)
{
$result = call_user_func_array($callback, $args);
}
else
{
$result = $includeResult;
}
if (($result != null) && !($result instanceof EventResult))
{
$result = new EventResult(EventResult::UNDEFINED, $result, $handler['TO_MODULE_ID'] ?? null);
}
$event->addDebugInfo($result);
if ($result != null)
{
$event->addResult($result);
}
}
}
catch (\Exception $ex)
Arguments
"call_user_func_array(): Argument #1 ($callback) must be a valid callback, non-static method ItpandaSeo::ConcatNotEmpty() cannot be called statically"
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/main
/lib
/eventmanager.php
$args[] = $event;
}
else
{
$args = array_merge($args, array_values($event->getParameters()));
}
$callback = null;
if (isset($handler['CALLBACK']))
{
$callback = $handler['CALLBACK'];
}
elseif (!empty($handler['TO_CLASS']) && !empty($handler['TO_METHOD']) && class_exists($handler['TO_CLASS']))
{
$callback = [$handler['TO_CLASS'], $handler['TO_METHOD']];
}
if ($callback != null)
{
$result = call_user_func_array($callback, $args);
}
else
{
$result = $includeResult;
}
if (($result != null) && !($result instanceof EventResult))
{
$result = new EventResult(EventResult::UNDEFINED, $result, $handler['TO_MODULE_ID'] ?? null);
}
$event->addDebugInfo($result);
if ($result != null)
{
$event->addResult($result);
}
}
}
catch (\Exception $ex)
Arguments
array:2 [
0 => "ItpandaSeo"
1 => "ConcatNotEmpty"
]
array:1 [
0 => Event {}
]
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/main
/lib
/eventmanager.php
$handlersTmp = $handlers;
$handlers = [];
foreach ($handlersTmp as $handler)
{
if (isset($handler['TO_MODULE_ID']) && in_array($handler['TO_MODULE_ID'], $filter))
{
$handlers[] = $handler;
}
}
}
return $handlers;
}
public function send(Event $event)
{
$handlers = $this->findEventHandlers($event->getModuleId(), $event->getEventType(), $event->getFilter());
foreach ($handlers as $handler)
{
$this->sendToEventHandler($handler, $event);
}
}
protected function sendToEventHandler(array $handler, Event $event)
{
try
{
$result = true;
$includeResult = true;
$event->addDebugInfo($handler);
if (!empty($handler['TO_MODULE_ID']) && ($handler['TO_MODULE_ID'] != 'main'))
{
$result = Loader::includeModule($handler['TO_MODULE_ID']);
}
elseif (!empty($handler['TO_PATH']))
{
$path = ltrim($handler['TO_PATH'], '/');
if (($path = Loader::getLocal($path)) !== false)
Arguments
array:9 [
"SORT" => 100
"TO_MODULE_ID" => "itpanda.seo"
"TO_PATH" => ""
"TO_CLASS" => "ItpandaSeo"
"TO_METHOD" => "ConcatNotEmpty"
"TO_METHOD_ARG" => []
"VERSION" => "2"
"TO_NAME" => "ItpandaSeo::ConcatNotEmpty (itpanda.seo)"
"FROM_DB" => true
]
Event {}
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/main
/lib
/event.php
*/
public function getResults()
{
return $this->results;
}
public function addResult(EventResult $result)
{
$this->results[] = $result;
}
public function getSender()
{
return $this->sender;
}
public function send($sender = null)
{
$this->sender = $sender;
EventManager::getInstance()->send($this);
}
public function addException(\Exception $exception)
{
$this->exceptions[] = $exception;
}
public function getExceptions()
{
return $this->exceptions;
}
public function turnDebugOn()
{
$this->debugMode = true;
}
public function isDebugOn()
{
return $this->debugMode;
Arguments
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/iblock
/lib
/template
/functions
/fabric.php
if (!is_string($functionName))
{
return new FunctionBase($data);
}
if (isset(self::$defaultFunctionMap[$functionName]))
{
/** @var FunctionBase $functionClass */
$functionClass = self::$defaultFunctionMap[$functionName];
return new $functionClass($data);
}
elseif (isset(self::$functionMap[$functionName]))
{
/** @var FunctionBase $functionClass */
$functionClass = self::$functionMap[$functionName];
return new $functionClass($data);
}
else
{
$event = new \Bitrix\Main\Event("iblock", "OnTemplateGetFunctionClass", array($functionName));
$event->send();
if ($event->getResults())
{
foreach($event->getResults() as $evenResult)
{
if($evenResult->getType() == \Bitrix\Main\EventResult::SUCCESS)
{
$functionClass = $evenResult->getParameters();
if (is_string($functionClass) && class_exists($functionClass))
{
self::$functionMap[$functionName] = $functionClass;
}
break;
}
}
}
if (isset(self::$functionMap[$functionName]))
{
$functionClass = self::$functionMap[$functionName];
return new $functionClass($data);
}
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/iblock
/lib
/template
/engine.php
*
* @return void
*/
public function addParameter(NodeBase $parameter)
{
$this->parameters[] = $parameter;
}
/**
* Uses Functions\Fabric to get an instance of the function object by it's name.
* On success calls onPrepareParameters, then calculate method.
* Otherwise returns an empty string.
*
* @param Entity\Base $entity Sets the context of processing.
*
* @return string
*/
public function process(Entity\Base $entity)
{
$functionObject = Functions\Fabric::createInstance($this->functionName);
if ($functionObject instanceof Functions\FunctionBase)
{
$arguments = $functionObject->onPrepareParameters($entity, $this->parameters);
return $functionObject->calculate($arguments);
}
else
{
return "";
}
}
}
Arguments
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/iblock
/lib
/template
/engine.php
));
$this->modifiers[] = $modifierFunction;
}
}
/**
* Calls process for each of it's children.
* Returns concatenation of their results.
*
* @param Entity\Base $entity Sets the context of processing.
*
* @return string
*/
public function process(Entity\Base $entity)
{
$content = "";
/** @var NodeBase $child*/
foreach ($this->children as $child)
{
$childContent = $child->process($entity);
if (is_array($childContent))
$content .= implode(" ", $childContent);
else
$content .= $childContent;
}
/** @var Functions\FunctionBase $modifier*/
foreach ($this->modifiers as $modifier)
{
$node = new NodeText($content);
$arguments = $modifier->onPrepareParameters($entity, array($node));
$content = $modifier->calculate($arguments);
}
return $content;
}
}
/**
* Class NodeText
* Plain text node
*
Arguments
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/iblock
/lib
/template
/engine.php
{
/**
* Takes an entity (Element, Section or Iblock) and processes the template.
* <code>
* if (\Bitrix\Main\Loader::includeModule('iblock'))
* {
* $e = new \Bitrix\Iblock\Template\Entity\Element(6369);
* echo "<pre>", print_r(\Bitrix\Iblock\Template\Engine::process($e, "Name: {=this.Name}. Code:{=this.code}"), 1), "</pre>";
* }
* </code>
*
* @param Entity\Base $entity Context entity for template processing.
* @param string $template Template to make substitutions in.
*
* @return string
*/
public static function process(Entity\Base $entity, $template)
{
$rootNode = self::parseTemplateTree($template, new NodeRoot);
return $rootNode->process($entity);
}
/**
* Splits template by tokens and builds execution tree.
*
* @param string $template Source expression.
* @param NodeRoot $parent Root node.
*
* @return NodeRoot
*/
protected static function parseTemplateTree($template, NodeRoot $parent)
{
list($template, $modifiers) = Helper::splitTemplate($template);
if ($modifiers != "")
$parent->setModifiers($modifiers);
$parsedTemplate = preg_split('/({=|})/', $template, -1, PREG_SPLIT_DELIM_CAPTURE);
while (($token = array_shift($parsedTemplate)) !== null)
{
$node = null;
Arguments
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/aspro.smartseo
/classes
/general
/SmartseoEngine.php
\Aspro\Smartseo\Models\SmartseoSeoTemplateTable::ENTITY_TYPE_FILTER_RULE => $dataScope['RULE_ID'],
\Aspro\Smartseo\Models\SmartseoSeoTemplateTable::ENTITY_TYPE_FILTER_CONDITION => $dataScope['CONDITION_ID'],
\Aspro\Smartseo\Models\SmartseoSeoTemplateTable::ENTITY_TYPE_FILTER_URL => $dataScope['URL_ID'],
]);
if (!$seoTemplates) {
return;
}
$element = new \Aspro\Smartseo\Template\Entity\FilterRuleUrl($dataScope['URL_ID']);
$currentSeoProperty = Smartseo::getCurrentSeoProperty();
foreach ($seoTemplates as $seoProperty) {
if (!$seoProperty['TEMPLATE']) {
$currentSeoProperty[$code] = '';
continue;
}
$currentSeoProperty[$seoProperty['CODE']] = \Bitrix\Main\Text\HtmlFilter::encode(
\Bitrix\Iblock\Template\Engine::process($element, $seoProperty['TEMPLATE'])
);
}
Smartseo::setCurrentSeoProperty($currentSeoProperty);
}
static public function replaceSeoPropertyOnPage()
{
if(!Smartseo::validateModules()) {
return;
}
if (!Smartseo::getCurrentData()) {
return;
}
if (!Smartseo::getCurrentSeoProperty()) {
return;
}
Arguments
FilterRuleUrl {}
"{=property.IP_PROP958} {=aspro_morphy {=property.attr_form} "ср" "ед"}"
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/aspro.smartseo
/classes
/general
/SmartseoEventHandler.php
namespace Aspro\Smartseo\General;
class SmartseoEventHandler
{
static public function onPageStart()
{
global $APPLICATION;
Smartseo::init();
if (\CSite::InDir('/bitrix/')) {
Smartseo::fixBitrixCoreAjaxAuth();
return;
}
SmartseoEngine::urlRewrite();
SmartseoEngine::loadSeoPropertyForPage();
}
static public function onEpilog()
{
if (\CSite::InDir('/bitrix/')) {
return;
}
SmartseoEngine::disallowPageIndexUrl();
SmartseoEngine::replaceSeoPropertyOnPage();
}
static public function onEndBufferContent(&$bufferContent)
{
if (\CSite::InDir('/bitrix/')) {
return;
}
if(Smartseo::getSettingObject()->isReplaceSnippetPage()) {
SmartseoEngine::replaceSnippetInContent($bufferContent);
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/main
/tools.php
}
else
{
$args = $arParams;
}
//TODO: Возможно заменить на EventManager::getInstance()->getLastEvent();
global $BX_MODULE_EVENT_LAST;
$BX_MODULE_EVENT_LAST = $arEvent;
if (isset($arEvent["CALLBACK"]))
{
$result = call_user_func_array($arEvent["CALLBACK"], $args);
}
else
{
//php bug: http://bugs.php.net/bug.php?id=47948
if (class_exists($arEvent["TO_CLASS"]) && is_callable([$arEvent["TO_CLASS"], $arEvent["TO_METHOD"]]))
{
$result = call_user_func_array([$arEvent["TO_CLASS"], $arEvent["TO_METHOD"]], $args);
}
else
{
$exception = new SystemException("Event handler error: could not invoke {$arEvent["TO_CLASS"]}::{$arEvent["TO_METHOD"]}. Class or method does not exist.");
$application = Application::getInstance();
$exceptionHandler = $application->getExceptionHandler();
$exceptionHandler->writeToLog($exception);
$result = null;
}
}
return $result;
}
function UnRegisterModuleDependences($FROM_MODULE_ID, $MESSAGE_ID, $TO_MODULE_ID, $TO_CLASS = "", $TO_METHOD = "", $TO_PATH = "", $TO_METHOD_ARG = [])
{
$eventManager = Main\EventManager::getInstance();
$eventManager->unRegisterEventHandler($FROM_MODULE_ID, $MESSAGE_ID, $TO_MODULE_ID, $TO_CLASS, $TO_METHOD, $TO_PATH, $TO_METHOD_ARG);
}
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/main
/include.php
{
$application->addBackgroundJob(["CAgent", "CheckAgents"], [], \Bitrix\Main\Application::JOB_PRIORITY_LOW);
}
//send email events
if (COption::GetOptionString("main", "check_events", "Y") !== "N")
{
$application->addBackgroundJob(['\Bitrix\Main\Mail\EventManager', 'checkEvents'], [], \Bitrix\Main\Application::JOB_PRIORITY_LOW-1);
}
$healerOfEarlySessionStart = new HealerEarlySessionStart();
$healerOfEarlySessionStart->process($application->getKernelSession());
$kernelSession = $application->getKernelSession();
$kernelSession->start();
$application->getSessionLocalStorageManager()->setUniqueId($kernelSession->getId());
foreach (GetModuleEvents("main", "OnPageStart", true) as $arEvent)
{
ExecuteModuleEventEx($arEvent);
}
//define global user object
$GLOBALS["USER"] = new CUser;
//session control from group policy
$arPolicy = $GLOBALS["USER"]->GetSecurityPolicy();
$currTime = time();
if (
(
//IP address changed
$kernelSession['SESS_IP']
&& $arPolicy["SESSION_IP_MASK"] <> ''
&& (
(ip2long($arPolicy["SESSION_IP_MASK"]) & ip2long($kernelSession['SESS_IP']))
!=
(ip2long($arPolicy["SESSION_IP_MASK"]) & ip2long($_SERVER['REMOTE_ADDR']))
)
)
||
Arguments
array:11 [
"SORT" => 100
"TO_MODULE_ID" => "aspro.smartseo"
"TO_PATH" => ""
"TO_CLASS" => "\Aspro\Smartseo\General\SmartseoEventHandler"
"TO_METHOD" => "onPageStart"
"TO_METHOD_ARG" => []
"VERSION" => "2"
"TO_NAME" => "\Aspro\Smartseo\General\SmartseoEventHandler::onPageStart (aspro.smartseo)"
"FROM_DB" => true
"FROM_MODULE_ID" => "main"
"MESSAGE_ID" => "OnPageStart"
]
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/main
/include
/prolog_before.php
<?php
if (!defined('START_EXEC_PROLOG_BEFORE_1'))
{
define("START_EXEC_PROLOG_BEFORE_1", microtime(true));
}
$GLOBALS["BX_STATE"] = "PB";
if(isset($_REQUEST["BX_STATE"])) unset($_REQUEST["BX_STATE"]);
if(isset($_GET["BX_STATE"])) unset($_GET["BX_STATE"]);
if(isset($_POST["BX_STATE"])) unset($_POST["BX_STATE"]);
if(isset($_COOKIE["BX_STATE"])) unset($_COOKIE["BX_STATE"]);
if(isset($_FILES["BX_STATE"])) unset($_FILES["BX_STATE"]);
if(!isset($USER)) {global $USER;}
if(!isset($APPLICATION)) {global $APPLICATION;}
if(!isset($DB)) {global $DB;}
require_once(__DIR__."/../include.php");
CMain::PrologActions();
if (!defined('START_EXEC_PROLOG_BEFORE_2'))
{
define("START_EXEC_PROLOG_BEFORE_2", microtime(true));
}
Arguments
"/var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/include.php"
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/main
/include
/prolog.php
<?php
require_once(__DIR__ . "/../bx_root.php");
if (file_exists($_SERVER["DOCUMENT_ROOT"].BX_PERSONAL_ROOT."/html_pages/.enabled"))
{
require_once(__DIR__ . "/../lib/composite/responder.php");
Bitrix\Main\Composite\Responder::respond();
}
require_once(__DIR__ . "/prolog_before.php");
require($_SERVER["DOCUMENT_ROOT"].BX_ROOT."/modules/main/include/prolog_after.php");
Arguments
"/var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/include/prolog_before.php"
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/header.php
<?require_once($_SERVER["DOCUMENT_ROOT"]."/bitrix/modules/main/include/prolog.php");?>
Arguments
"/var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/include/prolog.php"
/var
/www
/www-root
/data
/www
/vannstudio.ru
/catalog
/index.php
<?require($_SERVER["DOCUMENT_ROOT"]."/bitrix/header.php");
$APPLICATION->SetTitle("Каталог товаров сантехники Vannstudio.ru");
$APPLICATION->IncludeComponent(
"bitrix:catalog",
"main",
array(
"IBLOCK_TYPE" => "aspro_max_catalog",
"IBLOCK_ID" => "2",
"HIDE_NOT_AVAILABLE" => "Y",
"BASKET_URL" => "/basket/",
"ACTION_VARIABLE" => "action",
"PRODUCT_ID_VARIABLE" => "id",
"SECTION_ID_VARIABLE" => "SECTION_ID",
"PRODUCT_QUANTITY_VARIABLE" => "quantity",
"PRODUCT_PROPS_VARIABLE" => "prop",
"SEF_MODE" => "Y",
"SEF_FOLDER" => "/catalog/",
"AJAX_MODE" => "N",
"AJAX_OPTION_JUMP" => "N",
"AJAX_OPTION_STYLE" => "Y",
"AJAX_OPTION_HISTORY" => "Y",
"CACHE_TYPE" => "A",
"CACHE_TIME" => "3600000",
"CACHE_FILTER" => "Y",
"CACHE_GROUPS" => "Y",
"SET_TITLE" => "Y",
"SET_STATUS_404" => "Y",
"USE_ELEMENT_COUNTER" => "Y",
"USE_FILTER" => "Y",
"FILTER_NAME" => "MAX_SMART_FILTER",
"FILTER_FIELD_CODE" => array(
0 => "",
1 => "",
),
"FILTER_PROPERTY_CODE" => array(
0 => "",
1 => "WF_SALE",
2 => "WF_NOTE",
3 => "attr_deliveryprice_tk_other",
4 => "attr_manufacturer_warranty",
Arguments
"/var/www/www-root/data/www/vannstudio.ru/bitrix/header.php"
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/modules
/main
/include
/urlrewrite.php
if ((str_starts_with($urlTmp, "upload/") || (str_starts_with($urlTmp, "bitrix/") && !str_starts_with($urlTmp, "bitrix/services/") && !str_starts_with($urlTmp, "bitrix/groupdavphp"))))
continue;
$ext = strtolower(GetFileExtension($url));
if ($ext != "php")
continue;
// D7 response is not available here
if(stristr(php_sapi_name(), "cgi") !== false && (!defined("BX_HTTP_STATUS") || BX_HTTP_STATUS == false))
{
header("Status: 200 OK");
}
else
{
header($_SERVER["SERVER_PROTOCOL"]." 200 OK");
}
$_SERVER["REAL_FILE_PATH"] = $url;
include_once($io->GetPhysicalName($_SERVER['DOCUMENT_ROOT'].$url));
die();
}
}
}
//admin section 404
if(str_starts_with($requestUri, "/bitrix/admin/"))
{
$_SERVER["REAL_FILE_PATH"] = "/bitrix/admin/404.php";
include($_SERVER["DOCUMENT_ROOT"]."/bitrix/admin/404.php");
die();
}
define("BX_CHECK_SHORT_URI", true);
Arguments
"/var/www/www-root/data/www/vannstudio.ru/catalog/index.php"
/var
/www
/www-root
/data
/www
/vannstudio.ru
/bitrix
/urlrewrite.php
<?
include_once($_SERVER['DOCUMENT_ROOT'].'/bitrix/modules/main/include/urlrewrite.php');
if(file_exists($_SERVER['DOCUMENT_ROOT'].'/404.php'))
include_once($_SERVER['DOCUMENT_ROOT'].'/404.php');
?>
Arguments
"/var/www/www-root/data/www/vannstudio.ru/bitrix/modules/main/include/urlrewrite.php"