/** * Appends the override directory $dir to the override directory list. * Appends override dir to 'override' scope if scope is not defined, meaning above anything else. * See {@link eZINI::defaultOverrideDirs()} for how these parameters are used. * * @param string $dir * @param bool $globalDir * @param string|false $identifier Will overwrite existing directory with same identifier if set * @param string|null $scope * @return bool True if new dir was appended, false if there was a $identifier match and a overwrite */ function appendOverrideDir($dir, $globalDir = false, $identifier = false, $scope = null) { if (eZINI::isDebugEnabled()) { eZDebug::writeNotice("Appending override dir '{$dir}'", __METHOD__); } if ($this->UseLocalOverrides == true) { $dirs =& $this->LocalOverrideDirArray; } else { $dirs =& self::$GlobalOverrideDirArray; } $scope = self::selectOverrideScope($scope, $identifier, $dir, 'override'); // Check if the override with the current identifier already exists $overrideOverwritten = false; if ($identifier && isset($dirs[$scope][$identifier])) { $dirs[$scope][$identifier] = array($dir, $globalDir); $overrideOverwritten = true; } else { if ($identifier) { $dirs[$scope][$identifier] = array($dir, $globalDir); } else { $dirs[$scope][] = array($dir, $globalDir); } } $this->CacheFile = false; return $overrideOverwritten === false; }