Exponential Basic 2.4.0.1 Exponential Basic CMS — PHP Class Reference

ezpkernelweb.php
Go to the documentation of this file.
1 <?php
16 class ezpKernelWeb implements ezpWebBasedKernelHandler
17 {
21 private $mobileDeviceDetect;
22
26 private $policyCheckViewMap;
27
31 private $module;
32
36 private $warningList = array();
37
41 private $siteBasics;
42
46 private $actualRequestedURI;
47
51 private $oldURI;
52
56 private $completeRequestedURI;
57
63 private $access;
64
68 private $uri;
69
73 private $check;
74
78 private $site;
79
84 private $languageCode;
85
90 private $httpCharset;
91
97 protected $isInitialized = false;
98
107 protected $settings = array();
108
112 public function __construct( array $settings = array() )
113 {
114 if ( isset( $settings['injected-settings'] ) )
115 {
116 $injectedSettings = array();
117 foreach ( $settings['injected-settings'] as $keySetting => $injectedSetting )
118 {
119 list( $file, $section, $setting ) = explode( '/', $keySetting );
120 $injectedSettings[$file][$section][$setting] = $injectedSetting;
121 }
122 // Those settings override anything else in local .ini files and their overrides
123 eZINI::injectSettings( $injectedSettings );
124 }
125
126 if ( isset( $settings['injected-merge-settings'] ) )
127 {
128 $injectedSettings = array();
129 foreach ( $settings['injected-merge-settings'] as $keySetting => $injectedSetting )
130 {
131 list( $file, $section, $setting ) = explode( '/', $keySetting );
132 $injectedSettings[$file][$section][$setting] = $injectedSetting;
133 }
134 // Those settings override anything else in local .ini files and their overrides
135 eZINI::injectMergeSettings( $injectedSettings );
136 }
137
138 $this->settings = $settings + array(
139 'siteaccess' => null,
140 'use-exceptions' => false,
141 'session' => null,
142 'service-container' => null,
143 );
144 unset( $settings, $injectedSettings, $file, $section, $setting, $keySetting, $injectedSetting );
145
146 require_once __DIR__ . '/global_functions.php';
147 $this->setUseExceptions( $this->settings['use-exceptions'] );
148
149 $GLOBALS['eZSiteBasics'] = array(
150 'external-css' => true,
151 'show-page-layout' => true,
152 'module-run-required' => true,
153 'policy-check-required' => true,
154 'policy-check-omit-list' => array(),// List of module names which will skip policy checking
155 'url-translator-allowed' => true,
156 'validity-check-required' => false,
157 'user-object-required' => true,
158 'session-required' => true,
159 'db-required' => false,
160 'no-cache-adviced' => false,
161 'site-design-override' => false,
162 'module-repositories' => array(),// List of directories to search for modules
163 );
164 $this->siteBasics =& $GLOBALS['eZSiteBasics'];
165
166 // Reads settings from i18n.ini and passes them to eZTextCodec.
167 list(
168 $i18nSettings['internal-charset'],
169 $i18nSettings['http-charset'],
170 $i18nSettings['mbstring-extension']
171 ) = eZINI::instance( 'i18n.ini' )->variableMulti(
172 'CharacterSettings',
173 array( 'Charset', 'HTTPCharset', 'MBStringExtension' ),
174 array( false, false, 'enabled' )
175 );
176
177 eZTextCodec::updateSettings( $i18nSettings );// @todo Change so code only supports utf-8 in 5.0?
178
179 // Initialize debug settings.
180 eZUpdateDebugSettings();
181
182 // Set the different permissions/settings.
183 $ini = eZINI::instance();
184
185 // Set correct site timezone
186 $timezone = $ini->variable( "TimeZoneSettings", "TimeZone");
187 if ( $timezone )
188 {
189 date_default_timezone_set( $timezone );
190 }
191
192 list( $iniFilePermission, $iniDirPermission ) =
193 $ini->variableMulti( 'FileSettings', array( 'StorageFilePermissions', 'StorageDirPermissions' ) );
194
195 // OPTIMIZATION:
196 // Sets permission array as global variable, this avoids the eZCodePage include
197 $GLOBALS['EZCODEPAGEPERMISSIONS'] = array(
198 'file_permission' => octdec( $iniFilePermission ),
199 'dir_permission' => octdec( $iniDirPermission ),
200 'var_directory' => eZSys::cacheDirectory()
201 );
202 unset( $i18nSettings, $timezone, $iniFilePermission, $iniDirPermission );
203
204 eZExecution::addCleanupHandler(
205 function()
206 {
207 if ( class_exists( 'eZDB', false ) && eZDB::hasInstance() )
208 {
209 eZDB::instance()->setIsSQLOutputEnabled( false );
210 }
211 }
212 );
213
214 // Sets up the FatalErrorHandler
215 $this->setupFatalErrorHandler();
216
217 // Enable this line to get eZINI debug output
218 // eZINI::setIsDebugEnabled( true );
219 // Enable this line to turn off ini caching
220 // eZINI::setIsCacheEnabled( false);
221
222 if ( $ini->variable( 'RegionalSettings', 'Debug' ) === 'enabled' )
223 eZLocale::setIsDebugEnabled( true );
224
225 eZDebug::setHandleType( eZDebug::HANDLE_FROM_PHP );
226
227 $GLOBALS['eZGlobalRequestURI'] = eZSys::serverVariable( 'REQUEST_URI' );
228
229 // Initialize basic settings, such as vhless dirs and separators
230 if ( $this->hasServiceContainer() && $this->getServiceContainer()->has( 'request' ) )
231 {
232 eZSys::init(
233 basename( $this->getServiceContainer()->get( 'request' )->server->get( 'SCRIPT_FILENAME' ) ),
234 $ini->variable( 'SiteAccessSettings', 'ForceVirtualHost' ) === 'true'
235 );
236 }
237 else
238 {
239 eZSys::init(
240 'index.php',
241 $ini->variable( 'SiteAccessSettings', 'ForceVirtualHost' ) === 'true'
242 );
243 }
244
245 // Check for extension
246 eZExtension::activateExtensions( 'default' );
247 // Extension check end
248
249 // Use injected siteaccess if available or match it internally.
250 $this->access = isset( $this->settings['siteaccess'] ) ?
251 $this->settings['siteaccess'] :
252 eZSiteAccess::match(
253 eZURI::instance( eZSys::requestURI() ),
254 eZSys::hostname(),
255 eZSys::serverPort(),
256 eZSys::indexFile()
257 )
258 ;
259
260 eZSiteAccess::change( $this->access );
261 eZDebugSetting::writeDebug( 'kernel-siteaccess', $this->access, 'current siteaccess' );
262
263 // Check for siteaccess extension
264 eZExtension::activateExtensions( 'access' );
265 // Siteaccess extension check end
266
267 // Now that all extensions are activated and siteaccess has been changed, reset
268 // all eZINI instances as they may not take into account siteaccess specific settings.
269 eZINI::resetAllInstances( false );
270
271 ezpEvent::getInstance()->registerEventListeners();
272
273 $this->mobileDeviceDetect = new ezpMobileDeviceDetect( ezpMobileDeviceDetectFilter::getFilter() );
274 // eZSession::setSessionArray( $mainRequest->session );
275 }
276
277 private function setupFatalErrorHandler()
278 {
279 $errorINI = eZINI::instance( 'error.ini' );
280 if ( $errorINI->hasVariable( 'ErrorSettings-kernel', 'FatalErrorHandler' ) && is_callable( $errorINI->variable( 'ErrorSettings-kernel', 'FatalErrorHandler' ) ) )
281 {
282 eZExecution::addFatalErrorHandler( $errorINI->variable( 'ErrorSettings-kernel', 'FatalErrorHandler' ) );
283 }
284 else
285 {
286 eZExecution::addFatalErrorHandler(
287 function()
288 {
289 header("HTTP/1.1 500 Internal Server Error");
290 echo "<b>Fatal error</b>: The web server did not finish its request<br/>";
291 if ( ini_get('display_errors') == 1 )
292 {
293 if ( eZDebug::isDebugEnabled() )
294 echo "<p>The execution of Exponential was abruptly ended, the debug output is present below.</p>";
295 else
296 echo "<p>Debug information can be found in the log files normally placed in var/log/* or by enabling 'DebugOutput' in site.ini</p>";
297 }
298 else
299 {
300 echo "<p>Contact website owner with current url and info on what you did, and owner will be able to debug the issue further (by enabling 'display_errors' in php.ini).</p>";
301 }
302 eZDisplayResult( null );
303 }
304 );
305 }
306 eZExecution::setCleanExit();
307 }
308
312 public function run()
313 {
314 if ( $this->mobileDeviceDetect->isEnabled() )
315 {
316 $this->mobileDeviceDetect->process();
317
318 if ( $this->mobileDeviceDetect->isMobileDevice() )
319 $this->mobileDeviceDetect->redirect();
320 }
321
322 ob_start();
323 $this->requestInit();
324
325 // send header information
326 foreach (
327 eZHTTPHeader::headerOverrideArray( $this->uri ) +
328 array(
329 'Expires' => 'Mon, 26 Jul 1997 05:00:00 GMT',
330 'Last-Modified' => gmdate( 'D, d M Y H:i:s' ) . ' GMT',
331 'Cache-Control' => 'no-cache, must-revalidate',
332 'Pragma' => 'no-cache',
333 'X-Powered-By' => eZPublishSDK::EDITION,
334 'Content-Type' => 'text/html; charset=' . $this->httpCharset,
335 'Served-by' => isset( $_SERVER["SERVER_NAME"] ) ? $_SERVER['SERVER_NAME'] : null,
336 'Content-language' => $this->languageCode
337 ) as $key => $value
338 )
339 {
340 header( $key . ': ' . $value );
341 }
342
343 try
344 {
345 $moduleResult = $this->dispatchLoop();
346 }
347 catch ( Exception $e )
348 {
349 $this->shutdown();
350 throw $e;
351 }
352
353 $ini = eZINI::instance();
354
360 if ( $ini->variable( "SiteAccessSettings", "CheckValidity" ) !== 'true' )
361 {
362 $wwwDir = eZSys::wwwDir();
363 // On host based site accesses this can be empty, causing the cookie to be set for the current dir,
364 // but we want it to be set for the whole Exponential Basic site
365 $cookiePath = $wwwDir != '' ? $wwwDir : '/';
366
367 if ( eZUser::isCurrentUserRegistered() )
368 {
369 // Only set the cookie if it doesnt exist. This way we are not constantly sending the set request in the headers.
370 if ( !isset( $_COOKIE['is_logged_in'] ) || $_COOKIE['is_logged_in'] !== 'true' )
371 {
372 setcookie( 'is_logged_in', 'true', 0, $cookiePath );
373 }
374 }
375 else if ( isset( $_COOKIE['is_logged_in'] ) )
376 {
377 setcookie( 'is_logged_in', false, 0, $cookiePath );
378 }
379 }
380
381 if ( $this->module->exitStatus() == eZModule::STATUS_REDIRECT )
382 {
383 $this->shutdown();
384 return $this->redirect();
385 }
386
387 $uiContextName = $this->module->uiContextName();
388
389 // Store the last URI for access history for login redirection
390 // Only if user has session and only if there was no error or no redirects happen
391 if ( eZSession::hasStarted() && $this->module->exitStatus() == eZModule::STATUS_OK )
392 {
393 $currentURI = $this->completeRequestedURI;
394 if ( strlen( $currentURI ) > 0 && $currentURI[0] !== '/' )
395 $currentURI = '/' . $currentURI;
396
397 $lastAccessedURI = "";
398 $lastAccessedViewURI = "";
399
400 $http = eZHTTPTool::instance();
401
402 // Fetched stored session variables
403 if ( $http->hasSessionVariable( "LastAccessesURI" ) )
404 {
405 $lastAccessedViewURI = $http->sessionVariable( "LastAccessesURI" );
406 }
407 if ( $http->hasSessionVariable( "LastAccessedModifyingURI" ) )
408 {
409 $lastAccessedURI = $http->sessionVariable( "LastAccessedModifyingURI" );
410 }
411
412 // Update last accessed view page
413 if ( $currentURI != $lastAccessedViewURI &&
414 !in_array( $uiContextName, array( 'edit', 'administration', 'ajax', 'browse', 'authentication' ) ) )
415 {
416 $http->setSessionVariable( "LastAccessesURI", $currentURI );
417 }
418
419 // Update last accessed non-view page
420 if ( $currentURI != $lastAccessedURI && $uiContextName != 'ajax' )
421 {
422 $http->setSessionVariable( "LastAccessedModifyingURI", $currentURI );
423 }
424 }
425
426 eZDebug::addTimingPoint( "Module end '" . $this->module->attribute( 'name' ) . "'" );
427 if ( !is_array( $moduleResult ) )
428 {
429 eZDebug::writeError( 'Module did not return proper result: ' . $this->module->attribute( 'name' ), 'index.php' );
430 $moduleResult = array();
431 $moduleResult['content'] = false;
432 }
433
434 if ( !isset( $moduleResult['ui_context'] ) )
435 {
436 $moduleResult['ui_context'] = $uiContextName;
437 }
438 $moduleResult['ui_component'] = $this->module->uiComponentName();
439 $moduleResult['is_mobile_device'] = $this->mobileDeviceDetect->isMobileDevice();
440 $moduleResult['mobile_device_alias'] = $this->mobileDeviceDetect->getUserAgentAlias();
441
442 $templateResult = null;
443
444 eZDebug::setUseExternalCSS( $this->siteBasics['external-css'] );
445 if ( $this->siteBasics['show-page-layout'] )
446 {
447 $tpl = eZTemplate::factory();
448 if ( $tpl->hasVariable( 'node' ) )
449 $tpl->unsetVariable( 'node' );
450
451 if ( !isset( $moduleResult['path'] ) )
452 $moduleResult['path'] = false;
453 $moduleResult['uri'] = eZSys::requestURI();
454
455 $tpl->setVariable( "module_result", $moduleResult );
456
457 $meta = $ini->variable( 'SiteSettings', 'MetaDataArray' );
458
459 if ( !isset( $meta['description'] ) )
460 {
461 $metaDescription = "";
462 if ( isset( $moduleResult['path'] ) && is_array( $moduleResult['path'] ) )
463 {
464 foreach ( $moduleResult['path'] as $pathPart )
465 {
466 if ( isset( $pathPart['text'] ) )
467 $metaDescription .= $pathPart['text'] . " ";
468 }
469 }
470 $meta['description'] = $metaDescription;
471 }
472
473 $this->site['uri'] = $this->oldURI;
474 $this->site['redirect'] = false;
475 $this->site['meta'] = $meta;
476 $this->site['version'] = eZPublishSDK::version();
477 $this->site['page_title'] = $this->module->title();
478
479 $tpl->setVariable( "site", $this->site );
480
481 if ( $ini->variable( 'DebugSettings', 'DisplayDebugWarnings' ) === 'enabled' )
482 {
483 // Make sure any errors or warnings are reported
484 if ( isset( $GLOBALS['eZDebugError'] ) && $GLOBALS['eZDebugError'] )
485 {
486 eZAppendWarningItem(
487 array(
488 'error' => array(
489 'type' => 'error',
490 'number' => 1 ,
491 'count' => $GLOBALS['eZDebugErrorCount']
492 ),
493 'identifier' => 'ezdebug-first-error',
494 'text' => ezpI18n::tr( 'index.php', 'Some errors occurred, see debug for more information.' )
495 )
496 );
497 }
498
499 if ( isset( $GLOBALS['eZDebugWarning'] ) && $GLOBALS['eZDebugWarning'] )
500 {
501 eZAppendWarningItem(
502 array(
503 'error' => array(
504 'type' => 'warning',
505 'number' => 1,
506 'count' => $GLOBALS['eZDebugWarningCount']
507 ),
508 'identifier' => 'ezdebug-first-warning',
509 'text' => ezpI18n::tr( 'index.php', 'Some general warnings occured, see debug for more information.' )
510 )
511 );
512 }
513 }
514
515 if ( $this->siteBasics['user-object-required'] )
516 {
517 $currentUser = eZUser::currentUser();
518
519 $tpl->setVariable( "current_user", $currentUser );
520 $tpl->setVariable( "anonymous_user_id", $ini->variable( 'UserSettings', 'AnonymousUserID' ) );
521 }
522 else
523 {
524 $tpl->setVariable( "current_user", false );
525 $tpl->setVariable( "anonymous_user_id", false );
526 }
527
528 $tpl->setVariable( "access_type", $this->access );
529 $tpl->setVariable( 'warning_list', !empty( $this->warningList) ? $this->warningList : false );
530
531 $resource = "design:";
532 if ( is_string( $this->siteBasics['show-page-layout'] ) )
533 {
534 if ( strpos( $this->siteBasics['show-page-layout'], ":" ) !== false )
535 {
536 $resource = "";
537 }
538 }
539 else
540 {
541 $this->siteBasics['show-page-layout'] = "pagelayout.tpl";
542 }
543
544 // Set the navigation part
545 // Check for navigation part settings
546 $navigationPartString = 'ezcontentnavigationpart';
547 if ( isset( $moduleResult['navigation_part'] ) )
548 {
549 $navigationPartString = $moduleResult['navigation_part'];
550
551 // Fetch the navigation part
552 }
553 $navigationPart = eZNavigationPart::fetchPartByIdentifier( $navigationPartString );
554
555 $tpl->setVariable( 'navigation_part', $navigationPart );
556 $tpl->setVariable( 'uri_string', $this->uri->uriString() );
557 if ( isset( $moduleResult['requested_uri_string'] ) )
558 {
559 $tpl->setVariable( 'requested_uri_string', $moduleResult['requested_uri_string'] );
560 }
561 else
562 {
563 $tpl->setVariable( 'requested_uri_string', $this->actualRequestedURI );
564 }
565
566 // Set UI context and component
567 $tpl->setVariable( 'ui_context', $moduleResult['ui_context'] );
568 $tpl->setVariable( 'ui_component', $moduleResult['ui_component'] );
569
570 $templateResult = $tpl->fetch( $resource . $this->siteBasics['show-page-layout'] );
571 }
572 else
573 {
574 $templateResult = $moduleResult['content'];
575 }
576
577 eZDebug::addTimingPoint( "Script end" );
578
579 $content = trim( ob_get_clean() );
580
581 ob_start();
582 eZDB::checkTransactionCounter();
583 eZDisplayResult( $templateResult );
584 $content .= ob_get_clean();
585
586 $this->shutdown();
587
588 return new ezpKernelResult( $content, array( 'module_result' => $moduleResult ) );
589 }
590
594 protected function dispatchLoop()
595 {
596 $ini = eZINI::instance();
597
598 // Start the module loop
599 while ( $this->siteBasics['module-run-required'] )
600 {
601 $objectHasMovedError = false;
602 $objectHasMovedURI = false;
603 $this->actualRequestedURI = $this->uri->uriString();
604
605 // Extract user specified parameters
606 $userParameters = $this->uri->userParameters();
607
608 // Generate a URI which also includes the user parameters
609 $this->completeRequestedURI = $this->uri->originalURIString();
610
611 // Check for URL translation
612 if ( $this->siteBasics['url-translator-allowed'] && eZURLAliasML::urlTranslationEnabledByUri( $this->uri ) )
613 {
614 $translateResult = eZURLAliasML::translate( $this->uri );
615
616 if ( !is_string( $translateResult ) && $ini->variable( 'URLTranslator', 'WildcardTranslation' ) === 'enabled' )
617 {
618 $translateResult = eZURLWildcard::translate( $this->uri );
619 }
620
621 // Check if the URL has moved
622 if ( is_string( $translateResult ) )
623 {
624 $objectHasMovedURI = $translateResult;
625 foreach ( $userParameters as $name => $value )
626 {
627 $objectHasMovedURI .= '/(' . $name . ')/' . $value;
628 }
629
630 $objectHasMovedError = true;
631 }
632 }
633
634 if ( $this->uri->isEmpty() )
635 {
636 $tmp_uri = new eZURI( $ini->variable( "SiteSettings", "IndexPage" ) );
637 $moduleCheck = eZModule::accessAllowed( $tmp_uri );
638 }
639 else
640 {
641 $moduleCheck = eZModule::accessAllowed( $this->uri );
642 }
643
644 if ( !$moduleCheck['result'] )
645 {
646 if ( $ini->variable( "SiteSettings", "ErrorHandler" ) == "defaultpage" )
647 {
648 $defaultPage = $ini->variable( "SiteSettings", "DefaultPage" );
649 $this->uri->setURIString( $defaultPage );
650 $moduleCheck['result'] = true;
651 }
652 }
653
654 $displayMissingModule = false;
655 $this->oldURI = $this->uri;
656
657 if ( $this->uri->isEmpty() )
658 {
659 if ( !fetchModule( $tmp_uri, $this->check, $this->module, $moduleName, $functionName, $params ) )
660 $displayMissingModule = true;
661 }
662 else if ( !fetchModule( $this->uri, $this->check, $this->module, $moduleName, $functionName, $params ) )
663 {
664 if ( $ini->variable( "SiteSettings", "ErrorHandler" ) == "defaultpage" )
665 {
666 $tmp_uri = new eZURI( $ini->variable( "SiteSettings", "DefaultPage" ) );
667 if ( !fetchModule( $tmp_uri, $this->check, $this->module, $moduleName, $functionName, $params ) )
668 $displayMissingModule = true;
669 }
670 else
671 $displayMissingModule = true;
672 }
673
674 if ( !$displayMissingModule && $moduleCheck['result'] && $this->module instanceof eZModule )
675 {
676 // Run the module/function
677 eZDebug::addTimingPoint( "Module start '" . $this->module->attribute( 'name' ) . "'" );
678
679 $moduleAccessAllowed = true;
680 $omitPolicyCheck = true;
681 $runModuleView = true;
682
683 $availableViewsInModule = $this->module->attribute( 'views' );
684 if (
685 !isset( $availableViewsInModule[$functionName] )
686 && !$objectHasMovedError
687 && !isset( $this->module->Module['function']['script'] )
688 )
689 {
690 $moduleResult = $this->module->handleError( eZError::KERNEL_MODULE_VIEW_NOT_FOUND, 'kernel', array( "check" => $moduleCheck ) );
691 $runModuleView = false;
692 $this->siteBasics['policy-check-required'] = false;
693 $omitPolicyCheck = true;
694 }
695
696 if ( $this->siteBasics['policy-check-required'] )
697 {
698 $omitPolicyCheck = false;
699 $moduleName = $this->module->attribute( 'name' );
700 if ( in_array( $moduleName, $this->siteBasics['policy-check-omit-list'] ) )
701 $omitPolicyCheck = true;
702 else
703 {
704 $policyCheckViewMap = $this->getPolicyCheckViewMap( $this->siteBasics['policy-check-omit-list'] );
705 if ( isset( $policyCheckViewMap[$moduleName][$functionName] ) )
706 $omitPolicyCheck = true;
707 }
708 }
709 if ( !$omitPolicyCheck )
710 {
711 $currentUser = eZUser::currentUser();
712 $siteAccessResult = $currentUser->hasAccessTo( 'user', 'login' );
713
714 $hasAccessToSite = false;
715 if ( $siteAccessResult[ 'accessWord' ] === 'limited' )
716 {
717 $policyChecked = false;
718 foreach ( array_keys( $siteAccessResult['policies'] ) as $key )
719 {
720 $policy = $siteAccessResult['policies'][$key];
721 if ( isset( $policy['SiteAccess'] ) )
722 {
723 $policyChecked = true;
724 $crc32AccessName = eZSys::ezcrc32( $this->access[ 'name' ] );
725 eZDebugSetting::writeDebug( 'kernel-siteaccess', $policy['SiteAccess'], $crc32AccessName );
726 if ( in_array( $crc32AccessName, $policy['SiteAccess'] ) )
727 {
728 $hasAccessToSite = true;
729 break;
730 }
731 }
732 if ( $hasAccessToSite )
733 break;
734 }
735 if ( !$policyChecked )
736 $hasAccessToSite = true;
737 }
738 else if ( $siteAccessResult[ 'accessWord' ] === 'yes' )
739 {
740 eZDebugSetting::writeDebug( 'kernel-siteaccess', "access is yes" );
741 $hasAccessToSite = true;
742 }
743 else if ( $siteAccessResult['accessWord'] === 'no' )
744 {
745 $accessList = $siteAccessResult['accessList'];
746 }
747
748 if ( $hasAccessToSite )
749 {
750 $accessParams = array();
751 $moduleAccessAllowed = $currentUser->hasAccessToView( $this->module, $functionName, $accessParams );
752 if ( isset( $accessParams['accessList'] ) )
753 {
754 $accessList = $accessParams['accessList'];
755 }
756 }
757 else
758 {
759 eZDebugSetting::writeDebug( 'kernel-siteaccess', $this->access, 'not able to get access to siteaccess' );
760 $moduleAccessAllowed = false;
761 if ( $ini->variable( "SiteAccessSettings", "RequireUserLogin" ) == "true" )
762 {
763 $this->module = eZModule::exists( 'user' );
764 if ( $this->module instanceof eZModule )
765 {
766 $moduleResult = $this->module->run(
767 'login',
768 array(),
769 array(
770 'SiteAccessAllowed' => false,
771 'SiteAccessName' => $this->access['name']
772 )
773 );
774 $runModuleView = false;
775 }
776 }
777 }
778 }
779
780 $GLOBALS['eZRequestedModule'] = $this->module;
781
782 if ( $runModuleView )
783 {
784 if ( $objectHasMovedError == true )
785 {
786 $moduleResult = $this->module->handleError( eZError::KERNEL_MOVED, 'kernel', array( 'new_location' => $objectHasMovedURI ) );
787 }
788 else if ( !$moduleAccessAllowed )
789 {
790 if ( isset( $availableViewsInModule[$functionName][ 'default_navigation_part' ] ) )
791 {
792 $defaultNavigationPart = $availableViewsInModule[$functionName][ 'default_navigation_part' ];
793 }
794
795 if ( isset( $accessList ) )
796 $moduleResult = $this->module->handleError( eZError::KERNEL_ACCESS_DENIED, 'kernel', array( 'AccessList' => $accessList ) );
797 else
798 $moduleResult = $this->module->handleError( eZError::KERNEL_ACCESS_DENIED, 'kernel' );
799
800 if ( isset( $defaultNavigationPart ) )
801 {
802 $moduleResult['navigation_part'] = $defaultNavigationPart;
803 unset( $defaultNavigationPart );
804 }
805 }
806 else
807 {
808 if ( !isset( $userParameters ) )
809 {
810 $userParameters = false;
811 }
812
813 // Check if we should switch access mode (http/https) for this module view.
814 eZSSLZone::checkModuleView( $this->module->attribute( 'name' ), $functionName );
815
816 $moduleResult = $this->module->run( $functionName, $params, false, $userParameters );
817
818 if ( $this->module->exitStatus() == eZModule::STATUS_FAILED && $moduleResult == null )
819 $moduleResult = $this->module->handleError(
820 eZError::KERNEL_MODULE_VIEW_NOT_FOUND,
821 'kernel',
822 array(
823 'module' => $moduleName,
824 'view' => $functionName
825 )
826 );
827 }
828 }
829 }
830 else if ( $moduleCheck['result'] )
831 {
832 eZDebug::writeError( "Undefined module: $moduleName", "index" );
833 $this->module = new eZModule( "", "", $moduleName );
834 $GLOBALS['eZRequestedModule'] = $this->module;
835 $moduleResult = $this->module->handleError( eZError::KERNEL_MODULE_NOT_FOUND, 'kernel', array( 'module' => $moduleName ) );
836 }
837 else
838 {
839 if ( $moduleCheck['view_checked'] )
840 eZDebug::writeError( "View '" . $moduleCheck['view'] . "' in module '" . $moduleCheck['module'] . "' is disabled", "index" );
841 else
842 eZDebug::writeError( "Module '" . $moduleCheck['module'] . "' is disabled", "index" );
843 $GLOBALS['eZRequestedModule'] = $this->module = new eZModule( "", "", $moduleCheck['module'] );
844 $moduleResult = $this->module->handleError( eZError::KERNEL_MODULE_DISABLED, 'kernel', array( 'check' => $moduleCheck ) );
845 }
846 $this->siteBasics['module-run-required'] = false;
847 if ( isset( $moduleResult['rerun_uri'] ) )
848 {
849 $this->uri = eZURI::instance( $moduleResult['rerun_uri'] );
850 $this->siteBasics['module-run-required'] = true;
851 }
852 else if ( $this->module->exitStatus() == eZModule::STATUS_RERUN )
853 {
854 eZDebug::writeError( 'No rerun URI specified on eZModule::STATUS_RERUN, cannot set URI', 'index.php' );
855 }
856
857 if ( is_array( $moduleResult ) )
858 {
859 if ( isset( $moduleResult["pagelayout"] ) )
860 {
861 $this->siteBasics['show-page-layout'] = $moduleResult["pagelayout"];
862 $GLOBALS['eZCustomPageLayout'] = $moduleResult["pagelayout"];
863 }
864 if ( isset( $moduleResult["external_css"] ) )
865 $this->siteBasics['external-css'] = $moduleResult["external_css"];
866 }
867 }
868
869 return $moduleResult;
870 }
871
879 protected function getPolicyCheckViewMap( array $policyCheckOmitList )
880 {
881 if ( $this->policyCheckViewMap !== null )
882 return $this->policyCheckViewMap;
883
884 $this->policyCheckViewMap = array();
885 foreach ( $policyCheckOmitList as $omitItem )
886 {
887 $items = explode( '/', $omitItem );
888 if ( count( $items ) > 1 )
889 {
890 $module = $items[0];
891 if ( !isset( $this->policyCheckViewMap[$module] ) )
892 $this->policyCheckViewMap[$module] = array();
893 $this->policyCheckViewMap[$module][$items[1]] = true;
894 }
895 }
896
897 return $this->policyCheckViewMap;
898 }
899
903 protected function redirect()
904 {
905 $GLOBALS['eZRedirection'] = true;
906 $ini = eZINI::instance();
907 $automaticRedirect = true;
908
909 if ( $GLOBALS['eZDebugAllowed'] && ( $redirUri = $ini->variable( 'DebugSettings', 'DebugRedirection' ) ) !== 'disabled' )
910 {
911 if ( $redirUri == "enabled" )
912 {
913 $automaticRedirect = false;
914 }
915 else
916 {
917 $uri = eZURI::instance( eZSys::requestURI() );
918 $uri->toBeginning();
919 foreach ( $ini->variableArray( "DebugSettings", "DebugRedirection" ) as $redirUri )
920 {
921 $redirUri = new eZURI( $redirUri );
922 if ( $redirUri->matchBase( $uri ) )
923 {
924 $automaticRedirect = false;
925 break;
926 }
927 }
928 }
929 }
930
931 $redirectURI = eZSys::indexDir();
932
933 $moduleRedirectUri = $this->module->redirectURI();
934 if ( $ini->variable( 'URLTranslator', 'Translation' ) === 'enabled' &&
935 eZURLAliasML::urlTranslationEnabledByUri( new eZURI( $moduleRedirectUri ) ) )
936 {
937 $translatedModuleRedirectUri = $moduleRedirectUri;
938 if ( eZURLAliasML::translate( $translatedModuleRedirectUri, true ) )
939 {
940 $moduleRedirectUri = $translatedModuleRedirectUri;
941 if ( strlen( $moduleRedirectUri ) > 0 && $moduleRedirectUri[0] !== '/' )
942 $moduleRedirectUri = '/' . $moduleRedirectUri;
943 }
944 }
945
946 if ( preg_match( '#^(\w+:)|^//#', $moduleRedirectUri ) )
947 {
948 $redirectURI = $moduleRedirectUri;
949 }
950 else
951 {
952 $leftSlash = strlen( $redirectURI ) > 0 && $redirectURI[strlen( $redirectURI ) - 1] === '/';
953 $rightSlash = strlen( $moduleRedirectUri ) > 0 && $moduleRedirectUri[0] === '/';
954
955 if ( !$leftSlash && !$rightSlash ) // Both are without a slash, so add one
956 $moduleRedirectUri = '/' . $moduleRedirectUri;
957 else if ( $leftSlash && $rightSlash ) // Both are with a slash, so we remove one
958 $moduleRedirectUri = substr( $moduleRedirectUri, 1 );
959
960 // In some cases $moduleRedirectUri can already contain $redirectURI (including the siteaccess).
961 if ( !empty( $redirectURI ) && strpos( $moduleRedirectUri, $redirectURI ) === 0 )
962 {
963 $redirectURI = $moduleRedirectUri;
964 }
965 else
966 {
967 $redirectURI .= $moduleRedirectUri;
968 }
969 }
970
971 // After the module redirect url is completed, add the queryString params so they carry over the redirect operation
972 $redirectURI .= eZSys::queryString();
973
974 if ( $ini->variable( 'ContentSettings', 'StaticCache' ) == 'enabled' )
975 {
976 $staticCacheHandlerClassName = $ini->variable( 'ContentSettings', 'StaticCacheHandler' );
977 $staticCacheHandlerClassName::executeActions();
978 }
979
980 eZDB::checkTransactionCounter();
981
982 if ( !$automaticRedirect )
983 {
984 // Make sure any errors or warnings are reported
985 if ( $ini->variable( 'DebugSettings', 'DisplayDebugWarnings' ) === 'enabled' )
986 {
987 if ( isset( $GLOBALS['eZDebugError'] ) && $GLOBALS['eZDebugError'] )
988 {
989 eZAppendWarningItem(
990 array(
991 'error' => array(
992 'type' => 'error',
993 'number' => 1,
994 'count' => $GLOBALS['eZDebugErrorCount']
995 ),
996 'identifier' => 'ezdebug-first-error',
997 'text' => ezpI18n::tr( 'index.php', 'Some errors occurred, see debug for more information.' )
998 )
999 );
1000 }
1001
1002 if ( isset( $GLOBALS['eZDebugWarning'] ) && $GLOBALS['eZDebugWarning'] )
1003 {
1004 eZAppendWarningItem(
1005 array(
1006 'error' => array(
1007 'type' => 'warning',
1008 'number' => 1,
1009 'count' => $GLOBALS['eZDebugWarningCount']
1010 ),
1011 'identifier' => 'ezdebug-first-warning',
1012 'text' => ezpI18n::tr( 'index.php', 'Some general warnings occured, see debug for more information.' )
1013 )
1014 );
1015 }
1016 }
1017
1018 $tpl = eZTemplate::factory();
1019 $tpl->setVariable( 'site', $this->site );
1020 $tpl->setVariable( 'warning_list', !empty( $this->warningList ) ? $this->warningList : false );
1021 $tpl->setVariable( 'redirect_uri', eZURI::encodeURL( $redirectURI ) );
1022 $templateResult = $tpl->fetch( 'design:redirect.tpl' );
1023
1024 eZDebug::addTimingPoint( "Script end" );
1025
1026 eZDisplayResult( $templateResult );
1027 eZExecution::cleanExit();
1028 }
1029
1030 return eZHTTPTool::redirect( $redirectURI, array(), $this->module->redirectStatus(), true, true );
1031 }
1032
1037 protected function sessionInit()
1038 {
1039 if ( !isset( $this->settings['session'] ) || !$this->settings['session']['configured'] )
1040 {
1041 // running without Symfony2 or session is not configured
1042 // we keep the historic behaviour
1043 $ini = eZINI::instance();
1044 if ( $ini->variable( 'Session', 'ForceStart' ) === 'enabled' )
1045 eZSession::start();
1046 else
1047 eZSession::lazyStart();
1048 }
1049 else
1050 {
1051 $sfHandler = new ezpSessionHandlerSymfony(
1052 $this->settings['session']['has_previous']
1053 || $this->settings['session']['started']
1054 );
1055 $sfHandler->setStorage( $this->settings['session']['storage'] );
1056 eZSession::init(
1057 $this->settings['session']['name'],
1058 $this->settings['session']['started'],
1059 $this->settings['session']['namespace'],
1060 $sfHandler
1061 );
1062 }
1063
1064 // let session specify if db is required
1065 $this->siteBasics['db-required'] = eZSession::getHandlerInstance()->dbRequired();
1066 }
1067
1068 protected function requestInit()
1069 {
1070 if ( $this->isInitialized )
1071 return;
1072
1073 eZExecution::setCleanExit( false );
1074 $scriptStartTime = microtime( true );
1075
1076 $GLOBALS['eZRedirection'] = false;
1077 $this->access = eZSiteAccess::current();
1078
1079 eZDebug::setScriptStart( $scriptStartTime );
1080
1081 eZDebug::addTimingPoint( "Script start" );
1082
1083 $this->uri = eZURI::instance( eZSys::requestURI() );
1084 $GLOBALS['eZRequestedURI'] = $this->uri;
1085
1086 // Be able to do general events early in process
1087 ezpEvent::getInstance()->notify( 'request/preinput', array( $this->uri ) );
1088
1089 // Initialize module loading
1090 $this->siteBasics['module-repositories'] = eZModule::activeModuleRepositories();
1091 eZModule::setGlobalPathList( $this->siteBasics['module-repositories'] );
1092
1093 // make sure we get a new $ini instance now that it has been reset
1094 $ini = eZINI::instance();
1095
1096 // pre check, setup wizard related so needs to be before session/db init
1097 // TODO: Move validity check in the constructor? Setup is not meant to be launched at each (sub)request is it?
1098 if ( $ini->variable( 'SiteAccessSettings', 'CheckValidity' ) === 'true' )
1099 {
1100 $this->check = array( 'module' => 'setup', 'function' => 'init' );
1101 // Turn off some features that won't bee needed yet
1102 $this->siteBasics['policy-check-omit-list'][] = 'setup';
1103 $this->siteBasics['show-page-layout'] = $ini->variable( 'SetupSettings', 'PageLayout' );
1104 $this->siteBasics['validity-check-required'] = true;
1105 $this->siteBasics['session-required'] = $this->siteBasics['user-object-required'] = false;
1106 $this->siteBasics['db-required'] = $this->siteBasics['no-cache-adviced'] = $this->siteBasics['url-translator-allowed'] = false;
1107 $this->siteBasics['site-design-override'] = $ini->variable( 'SetupSettings', 'OverrideSiteDesign' );
1108 $this->access = eZSiteAccess::change( array( 'name' => 'setup', 'type' => eZSiteAccess::TYPE_URI ) );
1109 eZTranslatorManager::enableDynamicTranslations();
1110 }
1111
1112 if ( $this->siteBasics['session-required'] )
1113 {
1114 // Check if this should be run in a cronjob
1115 if ( $ini->variable( 'Session', 'BasketCleanup' ) !== 'cronjob' )
1116 {
1117 eZSession::addCallback(
1118 'destroy_pre',
1119 function ( eZDBInterface $db, $key, $escapedKey )
1120 {
1121 $basket = eZBasket::fetch( $key );
1122 if ( $basket instanceof eZBasket )
1123 $basket->remove();
1124 }
1125 );
1126 eZSession::addCallback(
1127 'gc_pre',
1128 function ( eZDBInterface $db, $time )
1129 {
1130 eZBasket::cleanupExpired( $time );
1131 }
1132 );
1133
1134 eZSession::addCallback(
1135 'cleanup_pre',
1136 function ( eZDBInterface $db )
1137 {
1138 eZBasket::cleanup();
1139 }
1140 );
1141 }
1142
1143 // addCallBack to update session id for shop basket on session regenerate
1144 eZSession::addCallback(
1145 'regenerate_post',
1146 function ( eZDBInterface $db, $escNewKey, $escOldKey )
1147 {
1148 $db->query( "UPDATE ezbasket SET session_id='{$escNewKey}' WHERE session_id='{$escOldKey}'" );
1149 }
1150 );
1151
1152 // TODO: Session starting should be made only once in the constructor
1153 $this->sessionInit();
1154 }
1155
1156 // if $this->siteBasics['db-required'], open a db connection and check that db is connected
1157 if ( $this->siteBasics['db-required'] && !eZDB::instance()->isConnected() )
1158 {
1159 $this->warningList[] = array(
1160 'error' => array(
1161 'type' => 'kernel',
1162 'number' => eZError::KERNEL_NO_DB_CONNECTION
1163 ),
1164 'text' => 'No database connection could be made, the system might not behave properly.'
1165 );
1166 }
1167
1168 // pre check, RequireUserLogin & FORCE_LOGIN related so needs to be after session init
1169 if ( !isset( $this->check ) )
1170 {
1171 $this->check = eZUserLoginHandler::preCheck( $this->siteBasics, $this->uri );
1172 }
1173
1174 ezpEvent::getInstance()->notify( 'request/input', array( $this->uri ) );
1175
1176 // Initialize with locale settings
1177 // TODO: Move to constructor? Is it relevant to init the locale/charset for each (sub)requests?
1178 $this->languageCode = eZLocale::instance()->httpLocaleCode();
1179 $phpLocale = trim( $ini->variable( 'RegionalSettings', 'SystemLocale' ) );
1180 if ( $phpLocale != '' )
1181 {
1182 setlocale( LC_ALL, explode( ',', $phpLocale ) );
1183 }
1184
1185 $this->httpCharset = eZTextCodec::httpCharset();
1186
1187 // TODO: are these parameters supposed to vary across potential sub-requests?
1188 $this->site = array(
1189 'title' => $ini->variable( 'SiteSettings', 'SiteName' ),
1190 'design' => $ini->variable( 'DesignSettings', 'SiteDesign' ),
1191 'http_equiv' => array(
1192 'Content-Type' => 'text/html; charset=' . $this->httpCharset,
1193 'Content-language' => $this->languageCode
1194 )
1195 );
1196
1197 // Read role settings
1198 $this->siteBasics['policy-check-omit-list'] = array_merge(
1199 $this->siteBasics['policy-check-omit-list'],
1200 $ini->variable( 'RoleSettings', 'PolicyOmitList' )
1201 );
1202
1203 $this->isInitialized = true;
1204
1209 eZDebug::checkDebugByUser();
1210 }
1211
1215 public function runCallback( \Closure $callback, $postReinitialize = true )
1216 {
1217 $this->requestInit();
1218
1219 try
1220 {
1221 $return = $callback();
1222 }
1223 catch ( Exception $e )
1224 {
1225 $this->shutdown( $postReinitialize );
1226 throw $e;
1227 }
1228
1229 $this->shutdown( $postReinitialize );
1230
1231 return $return;
1232 }
1233
1237 protected function shutdown( $reInitialize = true )
1238 {
1239 eZExecution::cleanup();
1240 eZExecution::setCleanExit();
1241 eZExpiryHandler::shutdown();
1242 if ( $reInitialize )
1243 $this->isInitialized = false;
1244 }
1245
1251 public function setUseExceptions( $useExceptions )
1252 {
1253 eZModule::$useExceptions = (bool)$useExceptions;
1254 }
1255
1259 public function reInitialize()
1260 {
1261 $this->isInitialized = false;
1262 }
1263
1270 public function hasServiceContainer()
1271 {
1272 return isset( $this->settings['service-container'] );
1273 }
1274
1281 public function getServiceContainer()
1282 {
1283 return $this->settings['service-container'];
1284 }
1285
1291 public function setUsePagelayout( $usePagelayout )
1292 {
1293 $this->siteBasics['show-page-layout'] = (bool)$usePagelayout;
1294 }
1295 }
$items
$items
Definition: admin/orderview.php:211
$http
$http
Definition: authorize.php:20
eZDebugSetting\writeDebug
static writeDebug( $conditionName, $string, $label="")
Definition: ezdebugsetting.php:128
eZDebug\writeError
static writeError( $string, $label="", $backgroundClass="")
Definition: ezdebug.php:546
eZDebug\setUseExternalCSS
static setUseExternalCSS( $use)
Definition: ezdebug.php:655
eZDebug\isDebugEnabled
static isDebugEnabled()
Definition: ezdebug.php:1028
eZDebug\HANDLE_FROM_PHP
const HANDLE_FROM_PHP
Definition: ezdebug.php:76
eZDebug\setHandleType
static setHandleType( $type)
Definition: ezdebug.php:248
eZDebug\addTimingPoint
static addTimingPoint( $description="")
Definition: ezdebug.php:677
eZDebug\setScriptStart
static setScriptStart( $time=false)
Definition: ezdebug.php:1290
eZDebug\checkDebugByUser
static checkDebugByUser()
Definition: ezdebug.php:1185
eZExecution\addCleanupHandler
static addCleanupHandler( $handler)
Definition: ezexecution.php:55
eZExecution\setCleanExit
static setCleanExit( $hasCleanExit=true)
Definition: ezexecution.php:29
eZExecution\cleanup
static cleanup()
Definition: ezexecution.php:37
eZExecution\cleanExit
static cleanExit()
Definition: ezexecution.php:101
eZExecution\addFatalErrorHandler
static addFatalErrorHandler( $handler)
Definition: ezexecution.php:75
eZExtension\activateExtensions
static activateExtensions( $extensionType='default', eZINI $siteINI=null)
Definition: ezextension.php:188
eZHTTPHeader\headerOverrideArray
static headerOverrideArray( $uri)
Definition: ezhttpheader.php:58
eZModule
Definition: ezmodule.php:54
eZModule\$useExceptions
static $useExceptions
Definition: ezmodule.php:258
eZModule\exists
exists( $name)
Definition: ezmodule.php:214
eZPublishSDK\version
static version( $withRelease=true, $asAlias=false, $withState=true)
Definition: version.php:31
eZPublishSDK\EDITION
const EDITION
Definition: version.php:24
eZSession\hasStarted
static hasStarted()
Definition: lib/ezsession/classes/ezsession.php:569
eZSession\start
static start( $cookieTimeout=false)
Definition: lib/ezsession/classes/ezsession.php:384
eZSession\init
static init( $name, $started, $ns, ezpSessionHandler $handler)
Definition: lib/ezsession/classes/ezsession.php:428
eZSession\addCallback
static addCallback( $type, $callback)
Definition: lib/ezsession/classes/ezsession.php:622
eZSession\lazyStart
static lazyStart( $startIfUserHasCookie=true)
Definition: lib/ezsession/classes/ezsession.php:401
eZSession\getHandlerInstance
static getHandlerInstance(ezpSessionHandler|null $handler=null)
Definition: lib/ezsession/classes/ezsession.php:580
eZSiteAccess\TYPE_URI
const TYPE_URI
Definition: ezsiteaccess.php:25
eZSiteAccess\match
static match(eZURI $uri, $host, $port=80, $file='/index.php')
Definition: ezsiteaccess.php:104
eZSiteAccess\current
static current()
Definition: ezsiteaccess.php:676
eZSiteAccess\change
static change(array $access, eZINI $siteINI=null)
Definition: ezsiteaccess.php:504
eZSys\indexDir
static indexDir( $withAccessList=true)
Definition: ezsys.php:594
eZSys\serverVariable
static serverVariable( $variableName, $quiet=false)
Definition: ezsys.php:857
eZSys\serverPort
static serverPort()
Definition: ezsys.php:824
eZSys\requestURI
static requestURI()
Definition: ezsys.php:1263
eZSys\hostname
static hostname()
Definition: ezsys.php:677
eZSys\wwwDir
static wwwDir()
Definition: ezsys.php:583
eZSys\queryString
static queryString()
Definition: ezsys.php:608
eZSys\ezcrc32
static ezcrc32( $string)
Definition: ezsys.php:1298
eZSys\init
static init( $index='index.php', $forceVirtualHost=null)
Definition: ezsys.php:1104
eZSys\indexFile
static indexFile( $withAccessPath=true)
Definition: ezsys.php:619
eZSys\cacheDirectory
static cacheDirectory()
Definition: ezsys.php:528
eZTextCodec\updateSettings
static updateSettings( $settings)
Definition: ezi18n/classes/eztextcodec.php:527
eZTextCodec\httpCharset
static httpCharset()
Definition: ezi18n/classes/eztextcodec.php:569
eZTranslatorManager\enableDynamicTranslations
static enableDynamicTranslations( $enable=true)
Definition: eztranslatormanager.php:202
eZURI
Definition: ezuri.php:29
eZURI\instance
static instance( $uri=false)
Definition: ezuri.php:575
eZURI\encodeURL
static encodeURL( $url)
Definition: ezuri.php:195
eZUser\currentUser
static & currentUser()
Definition: ezuser.php:896
$ini
$ini
Definition: classes/admin/linklist.php:64
ezpEvent\getInstance
static getInstance()
Definition: ezpevent.php:176
ezpKernelResult
Definition: ezpkernelresult.php:15
ezpKernelWeb
Definition: ezpkernelweb.php:17
ezpKernelWeb\hasServiceContainer
hasServiceContainer()
Definition: ezpkernelweb.php:1270
ezpKernelWeb\getServiceContainer
getServiceContainer()
Definition: ezpkernelweb.php:1281
ezpKernelWeb\$actualRequestedURI
$actualRequestedURI
Definition: ezpkernelweb.php:46
ezpKernelWeb\redirect
redirect()
Definition: ezpkernelweb.php:903
ezpKernelWeb\$warningList
$warningList
Definition: ezpkernelweb.php:36
ezpKernelWeb\$completeRequestedURI
$completeRequestedURI
Definition: ezpkernelweb.php:56
ezpKernelWeb\setUsePagelayout
setUsePagelayout( $usePagelayout)
Definition: ezpkernelweb.php:1291
ezpKernelWeb\$siteBasics
$siteBasics
Definition: ezpkernelweb.php:41
ezpKernelWeb\$check
$check
Definition: ezpkernelweb.php:73
ezpKernelWeb\sessionInit
sessionInit()
Definition: ezpkernelweb.php:1037
ezpKernelWeb\run
run()
Definition: ezpkernelweb.php:312
ezpKernelWeb\$site
$site
Definition: ezpkernelweb.php:78
ezpKernelWeb\$uri
$uri
Definition: ezpkernelweb.php:68
ezpKernelWeb\dispatchLoop
dispatchLoop()
Definition: ezpkernelweb.php:594
ezpKernelWeb\$access
$access
Definition: ezpkernelweb.php:63
ezpKernelWeb\$httpCharset
$httpCharset
Definition: ezpkernelweb.php:90
ezpKernelWeb\reInitialize
reInitialize()
Definition: ezpkernelweb.php:1259
ezpKernelWeb\$oldURI
$oldURI
Definition: ezpkernelweb.php:51
ezpKernelWeb\$isInitialized
$isInitialized
Definition: ezpkernelweb.php:97
ezpKernelWeb\setupFatalErrorHandler
setupFatalErrorHandler()
Definition: ezpkernelweb.php:277
ezpKernelWeb\getPolicyCheckViewMap
getPolicyCheckViewMap(array $policyCheckOmitList)
Definition: ezpkernelweb.php:879
ezpKernelWeb\$settings
$settings
Definition: ezpkernelweb.php:107
ezpKernelWeb\setUseExceptions
setUseExceptions( $useExceptions)
Definition: ezpkernelweb.php:1251
ezpKernelWeb\runCallback
runCallback(\Closure $callback, $postReinitialize=true)
Definition: ezpkernelweb.php:1215
ezpKernelWeb\$mobileDeviceDetect
$mobileDeviceDetect
Definition: ezpkernelweb.php:21
ezpKernelWeb\__construct
__construct(array $settings=array())
Definition: ezpkernelweb.php:112
ezpKernelWeb\$languageCode
$languageCode
Definition: ezpkernelweb.php:84
ezpKernelWeb\shutdown
shutdown( $reInitialize=true)
Definition: ezpkernelweb.php:1237
ezpKernelWeb\$policyCheckViewMap
$policyCheckViewMap
Definition: ezpkernelweb.php:26
ezpKernelWeb\requestInit
requestInit()
Definition: ezpkernelweb.php:1068
ezpKernelWeb\$module
$module
Definition: ezpkernelweb.php:31
ezpMobileDeviceDetectFilter\getFilter
static getFilter()
Definition: ezpmobiledevicedetectfilter.php:20
ezpMobileDeviceDetect
Definition: ezpmobiledevicedetect.php:16
ezpSessionHandlerSymfony
Definition: ezpsessionhandlersymfony.php:21
$name
$name
Definition: companytypelist.php:194
$db
$db
Definition: ezarticle/user/authorlist.php:53
$file
$file
Definition: ezfilemanager/user/filedownload.php:35
$content
$content
Definition: ezimagecatalogue/admin/filedownload.php:53
$section
$section
Definition: ezimagecatalogue/user/categoryedit.php:393
eZDisplayResult
eZDisplayResult( $templateResult)
Definition: global_functions.php:56
eZUpdateDebugSettings
eZUpdateDebugSettings()
Definition: global_functions.php:88
fetchModule
fetchModule(eZURI $uri, $check, &$module, &$moduleName, &$functionName, &$params)
Definition: global_functions.php:144
eZAppendWarningItem
eZAppendWarningItem( $parameters=array())
Definition: global_functions.php:119
$time
$time
Definition: homepage.php:327
ezpWebBasedKernelHandler
Definition: ezpwebbasedkernelhandler.php:15
$tpl
$tpl
Definition: mailtofriend.php:58
$wwwDir
$wwwDir
Definition: singlelist.php:33
$currentUser
$currentUser
Definition: surveyedit.php:54
Copyright © 1998 – 2026 7x. All rights reserved. Licensed under the GNU GPLv2+.