本文整理汇总了PHP中F::File_LocalPath方法的典型用法代码示例。如果您正苦于以下问题:PHP F::File_LocalPath方法的具体用法?PHP F::File_LocalPath怎么用?PHP F::File_LocalPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类F
的用法示例。
在下文中一共展示了F::File_LocalPath方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: GetPluginsList
/**
* Получить список плагинов
*
* @param bool $bAll - все плагины (иначе - только активные)
* @param bool $bIdOnly - только Id плагинов (иначе - вся строка с информацией о плагине)
*
* @return array
*/
public static function GetPluginsList($bAll = false, $bIdOnly = true)
{
$sPluginsDatFile = static::GetPluginsDatFile();
if (isset(self::$_aPluginList[$sPluginsDatFile][$bAll])) {
$aPlugins = self::$_aPluginList[$sPluginsDatFile][$bAll];
} else {
$sCommonPluginsDir = static::GetPluginsDir();
$aPlugins = array();
$aPluginsRaw = array();
if ($bAll) {
$aFiles = glob($sCommonPluginsDir . '{*,*/*}/plugin.xml', GLOB_BRACE);
if ($aFiles) {
foreach ($aFiles as $sXmlFile) {
$aPluginInfo = array();
$sXmlText = F::File_GetContents($sXmlFile);
$sDirName = dirname(F::File_LocalPath($sXmlFile, $sCommonPluginsDir));
if (preg_match('/\\<id\\>([\\w\\.\\/]+)\\<\\/id\\>/', $sXmlText, $aMatches)) {
$aPluginInfo['id'] = $aMatches[1];
} else {
$aPluginInfo['id'] = $sDirName;
}
$aPluginInfo['dirname'] = $sDirName;
$aPluginInfo['path'] = dirname($sXmlFile) . '/';
$aPluginInfo['manifest'] = $sXmlFile;
$aPlugins[$aPluginInfo['id']] = $aPluginInfo;
}
}
} else {
if (is_file($sPluginsDatFile) && ($aPluginsRaw = @file($sPluginsDatFile))) {
$aPluginsRaw = array_map('trim', $aPluginsRaw);
$aPluginsRaw = array_unique($aPluginsRaw);
}
if ($aPluginsRaw) {
foreach ($aPluginsRaw as $sPluginStr) {
if (($n = strpos($sPluginStr, ';')) !== false) {
if ($n === 0) {
continue;
}
$sPluginStr = trim(substr($sPluginStr, 0, $n));
}
if ($sPluginStr) {
$aPluginInfo = str_word_count($sPluginStr, 1, '0..9/_');
$aPluginInfo['id'] = $aPluginInfo[0];
if (empty($aPluginInfo[1])) {
$aPluginInfo['dirname'] = $aPluginInfo[0];
} else {
$aPluginInfo['dirname'] = $aPluginInfo[1];
}
$sXmlFile = $sCommonPluginsDir . '/' . $aPluginInfo['dirname'] . '/plugin.xml';
if (is_file($sXmlFile)) {
$aPluginInfo['path'] = dirname($sXmlFile) . '/';
$aPluginInfo['manifest'] = $sXmlFile;
$aPlugins[$aPluginInfo['id']] = $aPluginInfo;
}
}
}
}
}
$aPlugins = self::ExcludeByEnabledMask($aPlugins);
self::$_aPluginList[$sPluginsDatFile][$bAll] = $aPlugins;
}
if ($bIdOnly) {
$aPlugins = array_keys($aPlugins);
}
return $aPlugins;
}
示例2: _initSkin
/**
* Initialization of skin
*
*/
protected function _initSkin()
{
$this->sViewSkin = $this->GetConfigSkin();
// Load skin's config
$aConfig = array();
Config::ResetLevel(Config::LEVEL_SKIN);
$aSkinConfigPaths['sSkinConfigCommonPath'] = Config::Get('path.smarty.template') . '/settings/config/';
$aSkinConfigPaths['sSkinConfigAppPath'] = Config::Get('path.dir.app') . F::File_LocalPath($aSkinConfigPaths['sSkinConfigCommonPath'], Config::Get('path.dir.common'));
// Может загружаться основной конфиг скина, так и внешние секции конфига,
// которые задаются ключом 'config_load'
// (обычно это 'classes', 'assets', 'jevix', 'widgets', 'menu')
$aConfigNames = array('config') + F::Str2Array(Config::Get('config_load'));
// Config section that are loaded for the current skin
$aSkinConfigNames = array();
// ** Old skin version compatibility
$oSkin = E::ModuleSkin()->GetSkin($this->sViewSkin);
if (!$oSkin || !$oSkin->GetCompatible() || $oSkin->SkinCompatible('1.1', '<')) {
// 'head.default' may be used in skin config
C::Set('head.default', C::Get('assets.default'));
}
// Load configs from paths
foreach ($aConfigNames as $sConfigName) {
foreach ($aSkinConfigPaths as $sPath) {
$sFile = $sPath . $sConfigName . '.php';
if (F::File_Exists($sFile)) {
$aSubConfig = F::IncludeFile($sFile, false, true);
if ($sConfigName != 'config' && !isset($aSubConfig[$sConfigName])) {
$aSubConfig = array($sConfigName => $aSubConfig);
} elseif ($sConfigName == 'config' && isset($aSubConfig['head'])) {
// ** Old skin version compatibility
$aSubConfig['assets'] = $aSubConfig['head'];
unset($aSubConfig['head']);
}
// загружаем конфиг, что позволяет сразу использовать значения
// в остальных конфигах скина (assets и кастомном config.php) через Config::Get()
Config::Load($aSubConfig, false, null, null, $sFile);
if ($sConfigName != 'config' && !isset($aSkinConfigNames[$sConfigName])) {
$aSkinConfigNames[$sConfigName] = $sFile;
}
}
}
}
if (!$oSkin || !$oSkin->GetCompatible() || $oSkin->SkinCompatible('1.1', '<')) {
// 'head.default' may be used in skin config
C::Set('head.default', false);
}
Config::ResetLevel(Config::LEVEL_SKIN_CUSTOM);
$aStorageConfig = Config::ReadStorageConfig(null, true);
// Reload sections changed by user
if ($aSkinConfigNames) {
foreach (array_keys($aSkinConfigNames) as $sConfigName) {
if (isset($aStorageConfig[$sConfigName])) {
if (empty($aConfig)) {
$aConfig[$sConfigName] = $aStorageConfig[$sConfigName];
} else {
$aConfig = F::Array_MergeCombo($aConfig, array($sConfigName => $aStorageConfig[$sConfigName]));
}
}
}
}
// Checks skin's config from users settings
$sUserConfigKey = 'skin.' . $this->sViewSkin . '.config';
$aUserConfig = Config::Get($sUserConfigKey);
if ($aUserConfig) {
if (!$aConfig) {
$aConfig = $aUserConfig;
} else {
$aConfig = F::Array_MergeCombo($aConfig, $aUserConfig);
}
}
if ($aConfig) {
Config::Load($aConfig, false, null, null, $sUserConfigKey);
}
// Check skin theme and set one in config if it was changed
if ($this->GetConfigTheme() != Config::Get('view.theme')) {
Config::Set('view.theme', $this->GetConfigTheme());
}
// Load lang files for skin
E::ModuleLang()->LoadLangFileTemplate(E::ModuleLang()->GetLang());
// Load template variables from config
if (($aVars = Config::Get('view.assign')) && is_array($aVars)) {
$this->Assign($aVars);
}
}
示例3: _initSkin
/**
* Initialization of skin
*
*/
protected function _initSkin()
{
$this->sViewSkin = $this->GetConfigSkin();
// Load skin's config
$aConfig = array();
if (F::File_Exists($sFile = Config::Get('path.smarty.template') . '/settings/config/config.php')) {
$aConfig = F::IncludeFile($sFile, FALSE, TRUE);
}
if (F::File_Exists($sFile = Config::Get('path.smarty.template') . '/settings/config/menu.php')) {
$aConfig = F::Array_MergeCombo($aConfig, F::IncludeFile($sFile, false, true));
}
// $aConfigLoad = F::Str2Array(Config::Get('config_load'));
// if ($aConfigLoad) {
// foreach ($aConfigLoad as $sConfigName) {
// if (F::File_Exists($sFile = Config::Get('path.smarty.template') . "/settings/config/$sConfigName.php")) {
// $aConfig = array_merge($aConfig, F::IncludeFile($sFile, false, true));
// }
// }
// }
// Checks skin's config in app dir
$sFile = Config::Get('path.dir.app') . F::File_LocalPath($sFile, Config::Get('path.dir.common'));
if (F::File_Exists($sFile)) {
$aConfig = F::Array_MergeCombo($aConfig, F::IncludeFile($sFile, false, true));
}
// Checks skin's config from users settings
$aUserConfig = Config::Get('skin.' . $this->sViewSkin . '.config');
if ($aUserConfig) {
if (!$aConfig) {
$aConfig = $aUserConfig;
} else {
$aConfig = F::Array_MergeCombo($aConfig, $aUserConfig);
}
}
Config::ResetLevel(Config::LEVEL_SKIN);
if ($aConfig) {
Config::Load($aConfig, false, null, null, 'skin');
}
// Check skin theme and set one in config if it was changed
if ($this->GetConfigTheme() != Config::Get('view.theme')) {
Config::Set('view.theme', $this->GetConfigTheme());
}
// Load lang files for skin
E::ModuleLang()->LoadLangFileTemplate(E::ModuleLang()->GetLang());
// Skip skin widgets for local viewer
if (!$this->bLocal) {
// * Load skin widgets
if (F::File_Exists($sFile = Config::Get('path.smarty.template') . '/settings/config/widgets.php')) {
$aSkinWidgets = F::IncludeFile($sFile, false, true);
if (isset($aSkinWidgets['widgets']) && is_array($aSkinWidgets['widgets']) && count($aSkinWidgets['widgets'])) {
$aWidgets = array_merge(Config::Get('widgets'), $aSkinWidgets['widgets']);
Config::Set('widgets', $aWidgets);
}
}
}
// Load template variables from config
if (($aVars = Config::Get('view.assign')) && is_array($aVars)) {
$this->Assign($aVars);
}
}
示例4: AssetFileDir2Url
public function AssetFileDir2Url($sAssetFile)
{
$sFilePath = F::File_LocalPath($sAssetFile, F::File_GetAssetDir());
return F::File_GetAssetUrl() . $sFilePath;
}
示例5: LoadLangFileTemplate
/**
* Загружает языковой файл текущего шаблона
*
* @param string $sLangName Язык для загрузки
*/
public function LoadLangFileTemplate($sLangName = null, $sLangFor = null)
{
$aLangPaths = array(Config::Get('path.smarty.template') . '/settings/language/');
$aLangPaths[] = Config::Get('path.dir.app') . F::File_LocalPath($aLangPaths[0], Config::Get('path.dir.common'));
$this->_loadFiles($aLangPaths, $sLangName, null, $sLangFor);
}
示例6: Init
/**
* @param array $aConfig
*/
public static function Init($aConfig)
{
// Регистрация автозагрузчика классов
spl_autoload_register('Loader::Autoload');
Config::Load($aConfig);
$sConfigDir = Config::Get('path.dir.config');
// Load main config
Config::LoadFromFile($sConfigDir . '/config.php', false);
// Load additional config files if defined
$aConfigLoad = F::Str2Array(Config::Get('config_load'));
if ($aConfigLoad) {
self::_loadConfigSections($sConfigDir, $aConfigLoad);
}
// Includes all *.php files from {path.root.engine}/include/
$sIncludeDir = Config::Get('path.dir.engine') . '/include/';
self::_includeAllFiles($sIncludeDir);
// Load main config level (modules, local & plugins)
self::_loadConfigFiles($sConfigDir, Config::LEVEL_MAIN);
// Define app config dir
$sAppConfigDir = Config::Get('path.dir.app') . '/config/';
// Ups config level
Config::ResetLevel(Config::LEVEL_APP);
// Load application config level (modules, local & plugins)
self::_loadConfigFiles($sAppConfigDir, Config::LEVEL_APP);
// Load additional config files (the set could be changed in this point)
$aConfigLoad = F::Str2Array(Config::Get('config_load'));
if ($aConfigLoad) {
self::_loadConfigSections($sAppConfigDir, $aConfigLoad, Config::LEVEL_APP);
}
// Load include files of plugins
self::_loadIncludeFiles(Config::LEVEL_MAIN);
self::_loadIncludeFiles(Config::LEVEL_APP);
self::_checkRequiredDirs();
$aSeekDirClasses = array(Config::Get('path.dir.app'), Config::Get('path.dir.common'), Config::Get('path.dir.engine'));
Config::Set('path.root.seek', $aSeekDirClasses);
if (is_null(Config::Get('path.root.subdir'))) {
if (isset($_SERVER['DOCUMENT_ROOT'])) {
$sPathSubdir = '/' . F::File_LocalPath(ALTO_DIR, $_SERVER['DOCUMENT_ROOT']);
} elseif ($iOffset = Config::Get('path.offset_request_url')) {
$aParts = array_slice(explode('/', F::File_NormPath(ALTO_DIR)), -$iOffset);
$sPathSubdir = '/' . implode('/', $aParts);
} else {
$sPathSubdir = '';
}
Config::Set('path.root.subdir', $sPathSubdir);
}
// Подгружаем конфиг из файлового кеша, если он есть
Config::ResetLevel(Config::LEVEL_CUSTOM);
$aConfig = Config::ReadCustomConfig(null, true);
if ($aConfig) {
Config::Load($aConfig, false, null, null, 'custom');
}
// Задаем локаль по умолчанию
F::IncludeLib('UserLocale/UserLocale.class.php');
// Устанавливаем признак того, является ли сайт многоязычным
$aLangsAllow = (array) Config::Get('lang.allow');
if (sizeof($aLangsAllow) > 1) {
UserLocale::initLocales($aLangsAllow);
Config::Set('lang.multilang', true);
} else {
Config::Set('lang.multilang', false);
}
UserLocale::setLocale(Config::Get('lang.current'), array('local' => Config::Get('i18n.locale'), 'timezone' => Config::Get('i18n.timezone')));
Config::Set('i18n', UserLocale::getLocale());
F::IncludeFile(Config::Get('path.dir.engine') . '/classes/core/Engine.class.php');
}
示例7: MakeSingle
/**
* Создание ресурса из одиночного файла
*
* @param string $sAsset
* @param array $aFileParams
*
* @return bool
*/
public function MakeSingle($sAsset, $aFileParams)
{
$sFile = $aFileParams['file'];
if (isset($aFileParams['dir_from'])) {
$sLocalPath = F::File_LocalPath(dirname($sFile), $aFileParams['dir_from']);
$sDir = $aFileParams['dir_from'];
} else {
$sLocalPath = '';
$sDir = dirname($sFile);
}
if ($aFileParams['merge']) {
$sSubdir = $this->_makeSubdir($sAsset . $sDir);
} else {
$sSubdir = $this->_makeSubdir($sDir);
}
if ($sLocalPath) {
$sSubdir .= '/' . $sLocalPath;
}
$sDestination = F::File_GetAssetDir() . $sSubdir . '/' . basename($sFile);
$aFileParams['asset_file'] = $sDestination;
if (!$this->CheckDestination($sDestination)) {
if ($sDestination = $this->PrepareFile($sFile, $sDestination)) {
$this->AddLink($aFileParams['info']['extension'], E::ModuleViewerAsset()->AssetFileDir2Url($sDestination), $aFileParams);
} else {
F::SysWarning('Can not prepare asset file "' . $sFile . '"');
return false;
}
} else {
$this->AddLink($aFileParams['info']['extension'], E::ModuleViewerAsset()->AssetFileDir2Url($sDestination), $aFileParams);
}
return true;
}