Exponential 6.0.13 Exponential Enterprise Open Source CMS - PHP Class Reference

ezsiteaccess.php
Go to the documentation of this file.
1 <?php
16 class eZSiteAccess
17 {
23 const TYPE_DEFAULT = 1;
24 const TYPE_URI = 2;
25 const TYPE_PORT = 3;
26 const TYPE_HTTP_HOST = 4;
27 const TYPE_INDEX_FILE = 5;
28 const TYPE_STATIC = 6;
29 const TYPE_SERVER_VAR = 7;
30 const TYPE_URL = 8;
31 const TYPE_HTTP_HOST_URI = 9;
32 const TYPE_CUSTOM = 10;
33
34 const SUBTYPE_PRE = 1;
35 const SUBTYPE_POST = 2;
36
37 static function siteAccessList()
38 {
39 $siteAccessList = array();
40 $ini = eZINI::instance();
41 $availableSiteAccessList = $ini->variable( 'SiteAccessSettings', 'AvailableSiteAccessList' );
42 if ( !is_array( $availableSiteAccessList ) )
43 $availableSiteAccessList = array();
44
45 $serverSiteAccess = eZSys::serverVariable( $ini->variable( 'SiteAccessSettings', 'ServerVariableName' ), true );
46 if ( $serverSiteAccess )
47 $availableSiteAccessList[] = $serverSiteAccess;
48
49 $availableSiteAccessList = array_unique( $availableSiteAccessList );
50 foreach ( $availableSiteAccessList as $siteAccessName )
51 {
52 $siteAccessItem = array();
53 $siteAccessItem['name'] = $siteAccessName;
54 $siteAccessItem['id'] = eZSys::ezcrc32( $siteAccessName );
55 $siteAccessList[] = $siteAccessItem;
56 }
57 return $siteAccessList;
58 }
59
66 static function findPathToSiteAccess( $siteAccess )
67 {
68 $ini = eZINI::instance();
69 $siteAccessList = $ini->variable( 'SiteAccessSettings', 'AvailableSiteAccessList' );
70 if ( !in_array( $siteAccess, $siteAccessList ) )
71 return false;
72
73 $currentPath = 'settings/siteaccess/' . $siteAccess;
74 if ( file_exists( $currentPath ) )
75 return $currentPath;
76
77 $activeExtensions = eZExtension::activeExtensions();
78 $baseDir = eZExtension::baseDirectory();
79 foreach ( $activeExtensions as $extension )
80 {
81 $currentPath = $baseDir . '/' . $extension . '/settings/siteaccess/' . $siteAccess;
82 if ( file_exists( $currentPath ) )
83 return $currentPath;
84 }
85
86 return 'settings/siteaccess/' . $siteAccess;
87 }
88
103 public static function match( eZURI $uri, $host, $port = 80, $file = '/index.php' )
104 {
105 eZDebugSetting::writeDebug( 'kernel-siteaccess', array( 'uri' => $uri,
106 'host' => $host,
107 'port' => $port,
108 'file' => $file ), __METHOD__ );
109 $ini = eZINI::instance();
110 if ( $ini->hasVariable( 'SiteAccessSettings', 'StaticMatch' ) )
111 {
112 $match = $ini->variable( 'SiteAccessSettings', 'StaticMatch' );
113 if ( $match != '' )
114 {
115 $access = array( 'name' => $match,
116 'type' => eZSiteAccess::TYPE_STATIC,
117 'uri_part' => array() );
118 return $access;
119 }
120 }
121
122 list( $siteAccessList, $order ) =
123 $ini->variableMulti( 'SiteAccessSettings', array( 'AvailableSiteAccessList', 'MatchOrder' ) );
124 $access = array( 'name' => $ini->variable( 'SiteSettings', 'DefaultAccess' ),
125 'type' => eZSiteAccess::TYPE_DEFAULT,
126 'uri_part' => array() );
127
128 if ( $order == 'none' )
129 return $access;
130
131 $order = $ini->variableArray( 'SiteAccessSettings', 'MatchOrder' );
132
133 // Change the default type to eZSiteAccess::TYPE_URI if we're using URI MatchOrder.
134 // This is to keep backward compatiblity with the ezurl operator. ezurl has since
135 // rev 4949 added default siteaccess to generated URLs, even when there is
136 // no siteaccess in the current URL.
137 if ( in_array( 'uri', $order ) )
138 {
139 $access['type'] = eZSiteAccess::TYPE_URI;
140 }
141
142 foreach ( $order as $matchprobe )
143 {
144 $name = '';
145 $type = '';
146 $match_type = '';
147 $uri_part = array();
148
149 switch( $matchprobe )
150 {
151 case 'servervar':
152 {
153 if ( $serversiteaccess = eZSys::serverVariable( $ini->variable( 'SiteAccessSettings', 'ServerVariableName' ), true ) )
154 {
155 $access['name'] = $serversiteaccess;
156 $access['type'] = eZSiteAccess::TYPE_SERVER_VAR;
157 return $access;
158 }
159 else
160 continue 2;
161 } break;
162 case 'port':
163 {
164 if ( $ini->hasVariable( 'PortAccessSettings', $port ) )
165 {
166 $access['name'] = $ini->variable( 'PortAccessSettings', $port );
167 $access['type'] = eZSiteAccess::TYPE_PORT;
168 return $access;
169 }
170 else
171 continue 2;
172 } break;
173 case 'uri':
174 {
175 $type = eZSiteAccess::TYPE_URI;
176 $match_type = $ini->variable( 'SiteAccessSettings', 'URIMatchType' );
177
178 if ( $match_type == 'map' )
179 {
180 if ( $ini->hasVariable( 'SiteAccessSettings', 'URIMatchMapItems' ) )
181 {
182 $match_item = $uri->element( 0 );
183 $matchMapItems = $ini->variableArray( 'SiteAccessSettings', 'URIMatchMapItems' );
184 foreach ( $matchMapItems as $matchMapItem )
185 {
186 $matchMapURI = $matchMapItem[0];
187 $matchMapAccess = $matchMapItem[1];
188 if ( $access['name'] == $matchMapAccess and in_array( $matchMapAccess, $siteAccessList ) )
189 {
190 $uri_part = array( $matchMapURI );
191 }
192 if ( $matchMapURI == $match_item and in_array( $matchMapAccess, $siteAccessList ) )
193 {
194 $uri->increase( 1 );
195 $uri->dropBase();
196 $access['name'] = $matchMapAccess;
197 $access['type'] = $type;
198 $access['uri_part'] = array( $matchMapURI );
199 return $access;
200 }
201 }
202 }
203 }
204 else if ( $match_type == 'element' )
205 {
206 $match_index = $ini->variable( 'SiteAccessSettings', 'URIMatchElement' );
207 $elements = $uri->elements( false );
208 $elements = array_slice( $elements, 0, $match_index );
209 $name = implode( '_', $elements );
210 $uri_part = $elements;
211 }
212 else if ( $match_type == 'text' )
213 {
214 $match_item = $uri->elements();
215 $matcher_pre = $ini->variable( 'SiteAccessSettings', 'URIMatchSubtextPre' );
216 $matcher_post = $ini->variable( 'SiteAccessSettings', 'URIMatchSubtextPost' );
217 }
218 else if ( $match_type == 'regexp' )
219 {
220 $match_item = $uri->elements();
221 $matcher = $ini->variable( 'SiteAccessSettings', 'URIMatchRegexp' );
222 $match_num = $ini->variable( 'SiteAccessSettings', 'URIMatchRegexpItem' );
223 }
224 else
225 continue 2;
226 } break;
227 case 'host':
228 {
229 $type = eZSiteAccess::TYPE_HTTP_HOST;
230 $match_type = $ini->variable( 'SiteAccessSettings', 'HostMatchType' );
231 $match_item = $host;
232 if ( $match_type == 'map' )
233 {
234 if ( $ini->hasVariable( 'SiteAccessSettings', 'HostMatchMapItems' ) )
235 {
236 $matchMapItems = $ini->variableArray( 'SiteAccessSettings', 'HostMatchMapItems' );
237 foreach ( $matchMapItems as $matchMapItem )
238 {
239 $matchMapHost = $matchMapItem[0];
240 $matchMapAccess = $matchMapItem[1];
241 if ( $matchMapHost == $host )
242 {
243 $access['name'] = $matchMapAccess;
244 $access['type'] = $type;
245 return $access;
246 }
247 }
248 }
249 }
250 else if ( $match_type == 'element' )
251 {
252 $match_index = $ini->variable( 'SiteAccessSettings', 'HostMatchElement' );
253 $match_arr = explode( '.', $match_item );
254 $name = $match_arr[$match_index];
255 }
256 else if ( $match_type == 'text' )
257 {
258 $matcher_pre = $ini->variable( 'SiteAccessSettings', 'HostMatchSubtextPre' );
259 $matcher_post = $ini->variable( 'SiteAccessSettings', 'HostMatchSubtextPost' );
260 }
261 else if ( $match_type == 'regexp' )
262 {
263 $matcher = $ini->variable( 'SiteAccessSettings', 'HostMatchRegexp' );
264 $match_num = $ini->variable( 'SiteAccessSettings', 'HostMatchRegexpItem' );
265 }
266 else
267 continue 2;
268 } break;
269 case 'host_uri':
270 {
271 $type = eZSiteAccess::TYPE_HTTP_HOST_URI;
272 if ( $ini->hasVariable( 'SiteAccessSettings', 'HostUriMatchMapItems' ) )
273 {
274 $uriString = $uri->elements();
275 $matchMapItems = $ini->variableArray( 'SiteAccessSettings', 'HostUriMatchMapItems' );
276 $defaultHostMatchMethod = $ini->variable( 'SiteAccessSettings', 'HostUriMatchMethodDefault' );
277
278 foreach ( $matchMapItems as $matchMapItem )
279 {
280 $matchHost = $matchMapItem[0];
281 $matchURI = $matchMapItem[1];
282 $matchAccess = $matchMapItem[2];
283 $matchHostMethod = isset( $matchMapItem[3] ) ? $matchMapItem[3] : $defaultHostMatchMethod;
284
285 if ( $matchURI !== '' && !preg_match( "@^$matchURI\b@u", $uriString ) )
286 continue;
287
288 switch( $matchHostMethod )
289 {
290 case 'strict':
291 {
292 $hasHostMatch = ( $matchHost === $host );
293 } break;
294 case 'start':
295 {
296 $hasHostMatch = ( strpos($host, $matchHost) === 0 );
297 } break;
298 case 'end':
299 {
300 $hasHostMatch = ( strstr($host, $matchHost) === $matchHost );
301 } break;
302 case 'part':
303 {
304 $hasHostMatch = ( strpos($host, $matchHost) !== false );
305 } break;
306 default:
307 {
308 $hasHostMatch = false;
309 eZDebug::writeError( "Unknown host_uri host match: $matchHostMethod", "access" );
310 } break;
311 }
312
313 if ( $hasHostMatch )
314 {
315 if ( $matchURI !== '' )
316 {
317 $matchURIFolders = explode( '/', $matchURI );
318 $uri->increase( count( $matchURIFolders ) );
319 $uri->dropBase();
320 $access['uri_part'] = $matchURIFolders;
321 }
322 $access['name'] = $matchAccess;
323 $access['type'] = $type;
324 return $access;
325 }
326 }
327 }
328 } break;
329 case 'index':
330 {
331 $type = eZSiteAccess::TYPE_INDEX_FILE;
332 $match_type = $ini->variable( 'SiteAccessSettings', 'IndexMatchType' );
333 $match_item = $file;
334 if ( $match_type == 'element' )
335 {
336 $match_index = $ini->variable( 'SiteAccessSettings', 'IndexMatchElement' );
337 $match_pos = strpos( $match_item, '.php' );
338 if ( $match_pos !== false )
339 {
340 $match_item = substr( $match_item, 0, $match_pos );
341 $match_arr = explode( '_', $match_item );
342 $name = $match_arr[$match_index];
343 }
344 }
345 else if ( $match_type == 'text' )
346 {
347 $matcher_pre = $ini->variable( 'SiteAccessSettings', 'IndexMatchSubtextPre' );
348 $matcher_post = $ini->variable( 'SiteAccessSettings', 'IndexMatchSubtextPost' );
349 }
350 else if ( $match_type == 'regexp' )
351 {
352 $matcher = $ini->variable( 'SiteAccessSettings', 'IndexMatchRegexp' );
353 $match_num = $ini->variable( 'SiteAccessSettings', 'IndexMatchRegexpItem' );
354 }
355 else
356 continue 2;
357 } break;
358 default:
359 {
360 eZDebug::writeError( "Unknown access match: $matchprobe", "access" );
361 } break;
362 }
363
364 if ( $match_type == 'regexp' )
365 $name = self::matchRegexp( $match_item, $matcher, $match_num );
366 else if ( $match_type == 'text' )
367 $name = self::matchText( $match_item, $matcher_pre, $matcher_post );
368
369 if ( isset( $name ) && $name != '' )
370 {
371 $nameClean = self::washName( $name );
372
373 if ( in_array( $nameClean, $siteAccessList ) )
374 {
375 if ( $nameClean !== $name )
376 {
377 if ( !$ini->hasVariable( 'SiteAccessSettings', 'NormalizeSANames' ) || $ini->variable( 'SiteAccessSettings', 'NormalizeSANames' ) == 'enabled' )
378 {
379 $name = $nameClean;
380 if ( $ini->hasVariable( 'SiteAccessSettings', 'RedirectOnNormalize' ) && $ini->variable( 'SiteAccessSettings', 'RedirectOnNormalize' ) == 'enabled' )
381 {
382 header( $_SERVER['SERVER_PROTOCOL'] . " 301 Moved Permanently" );
383 header( "Status: 301 Moved Permanently" );
384 $uriSlice = $uri->URIArray;
385 array_shift( $uriSlice );
386 $newUri = $name . '/' . implode( '/' , $uriSlice );
387 $location = eZSys::indexDir() . "/" . eZURI::encodeIRI( $newUri );
388 header( "Location: " . $location );
389 eZExecution::cleanExit();
390 }
391 }
392 }
393 if ( $type == eZSiteAccess::TYPE_URI )
394 {
395 if ( $match_type == 'element' )
396 {
397 $uri->increase( $match_index );
398 $uri->dropBase();
399 }
400 else if ( $match_type == 'regexp' )
401 {
402 $uri->setURIString( $match_item );
403 }
404 else if ( $match_type == 'text' )
405 {
406 $uri->setURIString( $match_item );
407 }
408 }
409 $access['type'] = $type;
410 $access['name'] = $name;
411 $access['uri_part'] = $uri_part;
412 return $access;
413 }
414 }
415 }
416 return $access;
417 }
418
428 static function matchRegexp( &$text, $reg, $num )
429 {
430 $reg = str_replace( '/', "\\/", $reg );
431 if ( preg_match( "/$reg/", $text, $regs ) && $num < count( $regs ) )
432 {
433 $text = str_replace( $regs[$num], '', $text );
434 return $regs[$num];
435 }
436 return null;
437 }
438
448 static function matchText( &$text, $match_pre, $match_post )
449 {
450 $ret = null;
451 if ( $match_pre !== '' )
452 {
453 $pos = strpos( $text, $match_pre );
454 if ( $pos === false )
455 return null;
456
457 $ret = substr( $text, $pos + strlen( $match_pre ) );
458 $text = substr( $text, 0, $pos );
459 }
460 if ( $match_post !== '' )
461 {
462 $pos = strpos( $ret, $match_post );
463 if ( $pos === false )
464 return null;
465
466 $text .= substr( $ret, $pos + 1 );
467 $ret = substr( $ret, 0, $pos );
468 }
469 return $ret;
470 }
471
478 static function reInitialise()
479 {
480 if ( isset( $GLOBALS['eZCurrentAccess'] ) )
481 {
482 self::load( $GLOBALS['eZCurrentAccess'] );
483 return true;
484 }
485 else
486 {
487 return false;
488 }
489 }
490
503 static function change( array $access, ?eZINI $siteINI = null )
504 {
505 $name = $access['name'];
506 $GLOBALS['eZCurrentAccess'] =& $access;
507 if ( $siteINI !== null )
508 {
509 $ini = $siteINI;
510 }
511 else
512 {
513 $ini = eZINI::instance();
514 }
515
516 $ini->prependOverrideDir( "siteaccess/$name", false, 'siteaccess', 'siteaccess' );
517
518 /* Make sure extension siteaccesses are prepended */
519 eZExtension::prependExtensionSiteAccesses( $name, $ini );
520
521 $ini->loadCache();
522
523 // change some global settings if $siteINI is null
524 if ( $siteINI === null )
525 {
526 eZSys::clearAccessPath();
527 if ( empty( $access['uri_part'] ) || $access['uri_part'] === null )
528 {
529 if ( $ini->hasVariable('SiteSettings', 'SiteUriParts') )
530 $access['uri_part'] = $ini->variable('SiteSettings', 'SiteUriParts');
531 else if ( isset( $access['type'] ) && $access['type'] === eZSiteAccess::TYPE_URI )
532 $access['uri_part'] = array( $access['name'] );
533 else
534 $access['uri_part'] = array();
535 }
536
537 eZSys::setAccessPath( $access['uri_part'], $name );
538
539 eZContentLanguage::expireCache( false );
540
541 eZUpdateDebugSettings();
542 eZDebugSetting::writeDebug( 'kernel-siteaccess', "Updated settings to use siteaccess '$name'", __METHOD__ );
543 }
544
545 return $access;
546 }
547
560 private static function washName( $name )
561 {
562 return preg_replace(
563 array( '/[^a-zA-Z0-9]+/', '/_+/', '/^_/', '/_$/' ),
564 array( '_', '_', '', '' ),
565 $name
566 );
567 }
568
585 static function load( array $access, ?eZINI $siteINI = null )
586 {
587 $currentSiteAccess = $GLOBALS['eZCurrentAccess'];
588 unset( $GLOBALS['eZCurrentAccess'] );
589
590 // Clear all ini override dirs
591 if ( $siteINI instanceof eZINI )
592 {
593 $siteINI->resetOverrideDirs();
594 }
595 else
596 {
597 eZINI::resetAllInstances();
598 eZExtension::clearActiveExtensionsMemoryCache();
599 eZTemplateDesignResource::clearInMemoryCache();
600 }
601
602 // Reload extensions, siteaccess and access extensions
603 eZExtension::activateExtensions( 'default', $siteINI );
604 $access = self::change( $access, $siteINI );
605 eZExtension::activateExtensions( 'access', $siteINI );
606
607 // Restore current (old) siteacces if changes where only to be applied to locale instance of site.ini
608 if ( $siteINI instanceof eZINI )
609 {
610 $GLOBALS['eZCurrentAccess'] = $currentSiteAccess;
611 }
612 else
613 {
614 $moduleRepositories = eZModule::activeModuleRepositories();
615 eZModule::setGlobalPathList( $moduleRepositories );
616 }
617
618 return $access;
619 }
620
631 static function getIni( $siteAccess, $settingFile = 'site.ini' )
632 {
633 // return global if siteaccess is same as requested or false
634 if ( isset( $GLOBALS['eZCurrentAccess']['name'] )
635 && $GLOBALS['eZCurrentAccess']['name'] === $siteAccess )
636 {
637 return eZINI::instance( $settingFile );
638 }
639 else if ( !$siteAccess )
640 {
641 return eZINI::instance( $settingFile );
642 }
643
644 // create a site ini instance using $useLocalOverrides = true
645 $siteIni = new eZINI( 'site.ini', 'settings', null, null, true );
646
647 // create a dummy access definition (not used as long as $siteIni is sent to self::load() )
648 $access = array( 'name' => $siteAccess,
649 'type' => eZSiteAccess::TYPE_STATIC,
650 'uri_part' => array() );
651
652 // Load siteaccess but on our locale instance of site.ini only
653 $access = self::load( $access, $siteIni );
654
655 // if site.ini, return with no further work needed
656 if ( $settingFile === 'site.ini' )
657 {
658 return $siteIni;
659 }
660
661 // load settings file with $useLocalOverrides = true
662 $ini = new eZINI( $settingFile,'settings', null, null, true );
663 $ini->setOverrideDirs( $siteIni->overrideDirs( false ) );
664 $ini->load();
665
666 return $ini;
667 }
668
675 static function current()
676 {
677 if ( isset( $GLOBALS['eZCurrentAccess']['name'] ) )
678 return $GLOBALS['eZCurrentAccess'];
679 return null;
680 }
681
691 public static function saNameByLanguage( $language )
692 {
693 $ini = eZINI::instance();
694 if ( $ini->hasVariable( 'RegionalSettings', 'LanguageSA' ) )
695 {
696 $langMap = $ini->variable( 'RegionalSettings', 'LanguageSA' );
697 if ( !isset( $langMap[$language] ) )
698 {
699 return null;
700 }
701 $sa = $langMap[$language];
702 }
703 else
704 {
705 $sa = explode( '-', $language );
706 $sa = $sa[0];
707 }
708
709 if ( in_array( $sa, $ini->variable( 'SiteAccessSettings', 'RelatedSiteAccessList' ) ) )
710 {
711 return $sa;
712 }
713 eZDebug::writeWarning("Tried to find siteaccess based on '$language' but '$sa' is not a valid RelatedSiteAccessList[]", __METHOD__ );
714 return null;
715 }
716
722 public static function exists( $siteAccessName )
723 {
724 foreach ( eZSiteAccess::siteAccessList() as $siteaccessListItem )
725 {
726 if ( $siteaccessListItem['name'] == $siteAccessName )
727 {
728 return true;
729 }
730 }
731 return false;
732 }
733 }
eZContentLanguage\expireCache
static expireCache( $expireCluster=true)
Definition: ezcontentlanguage.php:916
eZDebugSetting\writeDebug
static writeDebug( $conditionName, $string, $label="")
Definition: ezdebugsetting.php:127
eZDebug\writeError
static writeError( $string, $label="", $backgroundClass="")
Definition: ezdebug.php:545
eZDebug\writeWarning
static writeWarning( $string, $label="", $backgroundClass="")
Definition: ezdebug.php:502
eZExecution\cleanExit
static cleanExit()
Definition: ezexecution.php:100
eZExtension\clearActiveExtensionsMemoryCache
static clearActiveExtensionsMemoryCache()
Definition: ezextension.php:639
eZExtension\activateExtensions
static activateExtensions( $extensionType='default', ?eZINI $siteINI=null)
Definition: ezextension.php:187
eZExtension\activeExtensions
static activeExtensions( $extensionType=false, eZINI|null $siteINI=null)
Definition: ezextension.php:60
eZExtension\baseDirectory
static baseDirectory(eZINI|null $siteINI=null)
Definition: ezextension.php:39
eZExtension\prependExtensionSiteAccesses
static prependExtensionSiteAccesses( $accessName=false, $ini=false, $globalDir=true, $identifier=null, $order=true)
Definition: ezextension.php:229
eZINI
Reads and writes .ini style configuration files.
eZModule\activeModuleRepositories
static activeModuleRepositories( $useExtensions=true)
Definition: ezmodule.php:1897
eZModule\setGlobalPathList
static setGlobalPathList( $pathList)
Definition: ezmodule.php:1951
eZSiteAccess
Definition: ezsiteaccess.php:17
eZSiteAccess\TYPE_HTTP_HOST
const TYPE_HTTP_HOST
Definition: ezsiteaccess.php:26
eZSiteAccess\reInitialise
static reInitialise()
Definition: ezsiteaccess.php:478
eZSiteAccess\load
static load(array $access, ?eZINI $siteINI=null)
Definition: ezsiteaccess.php:585
eZSiteAccess\SUBTYPE_POST
const SUBTYPE_POST
Definition: ezsiteaccess.php:35
eZSiteAccess\TYPE_URI
const TYPE_URI
Definition: ezsiteaccess.php:24
eZSiteAccess\TYPE_CUSTOM
const TYPE_CUSTOM
Definition: ezsiteaccess.php:32
eZSiteAccess\washName
static washName( $name)
Definition: ezsiteaccess.php:560
eZSiteAccess\siteAccessList
static siteAccessList()
Definition: ezsiteaccess.php:37
eZSiteAccess\match
static match(eZURI $uri, $host, $port=80, $file='/index.php')
Definition: ezsiteaccess.php:103
eZSiteAccess\current
static current()
Definition: ezsiteaccess.php:675
eZSiteAccess\TYPE_SERVER_VAR
const TYPE_SERVER_VAR
Definition: ezsiteaccess.php:29
eZSiteAccess\saNameByLanguage
static saNameByLanguage( $language)
Definition: ezsiteaccess.php:691
eZSiteAccess\matchText
static matchText(&$text, $match_pre, $match_post)
Definition: ezsiteaccess.php:448
eZSiteAccess\findPathToSiteAccess
static findPathToSiteAccess( $siteAccess)
Definition: ezsiteaccess.php:66
eZSiteAccess\getIni
static getIni( $siteAccess, $settingFile='site.ini')
Definition: ezsiteaccess.php:631
eZSiteAccess\TYPE_HTTP_HOST_URI
const TYPE_HTTP_HOST_URI
Definition: ezsiteaccess.php:31
eZSiteAccess\TYPE_URL
const TYPE_URL
Definition: ezsiteaccess.php:30
eZSiteAccess\matchRegexp
static matchRegexp(&$text, $reg, $num)
Definition: ezsiteaccess.php:428
eZSiteAccess\TYPE_PORT
const TYPE_PORT
Definition: ezsiteaccess.php:25
eZSiteAccess\TYPE_STATIC
const TYPE_STATIC
Definition: ezsiteaccess.php:28
eZSiteAccess\SUBTYPE_PRE
const SUBTYPE_PRE
Definition: ezsiteaccess.php:34
eZSiteAccess\change
static change(array $access, ?eZINI $siteINI=null)
Definition: ezsiteaccess.php:503
eZSiteAccess\exists
static exists( $siteAccessName)
Definition: ezsiteaccess.php:722
eZSiteAccess\TYPE_INDEX_FILE
const TYPE_INDEX_FILE
Definition: ezsiteaccess.php:27
eZSiteAccess\TYPE_DEFAULT
const TYPE_DEFAULT
Definition: ezsiteaccess.php:23
eZSys\indexDir
static indexDir( $withAccessList=true)
Definition: ezsys.php:593
eZSys\serverVariable
static serverVariable( $variableName, $quiet=false)
Definition: ezsys.php:856
eZSys\clearAccessPath
static clearAccessPath( $siteaccess=true)
Definition: ezsys.php:1059
eZSys\setAccessPath
static setAccessPath(array $path=array(), $name='undefined', $siteaccess=true)
Definition: ezsys.php:1045
eZSys\ezcrc32
static ezcrc32( $string)
Definition: ezsys.php:1297
eZTemplateDesignResource\clearInMemoryCache
static clearInMemoryCache()
Definition: eztemplatedesignresource.php:948
eZURI
Definition: ezuri.php:28
eZURI\dropBase
dropBase()
Definition: ezuri.php:429
eZURI\elements
elements( $as_text=true)
Definition: ezuri.php:345
eZURI\increase
increase( $num=1)
Definition: ezuri.php:416
eZURI\encodeIRI
static encodeIRI( $str)
Definition: ezuri.php:104
eZURI\element
element( $index=0, $relative=true)
Definition: ezuri.php:328
eZURI\setURIString
setURIString( $uri, $fullInitialize=true)
Definition: ezuri.php:220
Copyright © 1998 – 2026 7x. All rights reserved. Licensed under the GNU GPLv2+.