本文整理汇总了PHP中F::File_NormPath方法的典型用法代码示例。如果您正苦于以下问题:PHP F::File_NormPath方法的具体用法?PHP F::File_NormPath怎么用?PHP F::File_NormPath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类F
的用法示例。
在下文中一共展示了F::File_NormPath方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Init
/**
* Инициализация модуля
*
*/
public function Init()
{
E::ModuleHook()->Run('lang_init_start');
$this->sDefaultLang = Config::Get('lang.default');
$this->aLangPaths = F::File_NormPath(Config::Get('lang.paths'));
// Проверку на языки делаем, только если сайт мультиязычный
if (Config::Get('lang.multilang')) {
// Время хранение языка в куках
$nSavePeriod = F::ToSeconds(Config::Get('lang.save'));
$sLangKey = is_string(Config::Get('lang.in_get')) ? Config::Get('lang.in_get') : 'lang';
// Получаем язык, если он был задан в URL
$this->sCurrentLang = R::GetLang();
// Проверка куки, если требуется
if (!$this->sCurrentLang && $nSavePeriod) {
$sLang = (string) E::ModuleSession()->GetCookie($sLangKey);
if ($sLang) {
$this->sCurrentLang = $sLang;
}
}
if (!$this->sCurrentLang) {
$this->sCurrentLang = Config::Get('lang.current');
}
} else {
$this->sCurrentLang = Config::Get('lang.current');
}
// Проверяем на случай старого обозначения языков
$this->sDefaultLang = $this->_checkLang($this->sDefaultLang);
$this->sCurrentLang = $this->_checkLang($this->sCurrentLang);
if ($this->sCurrentLang && Config::Get('lang.multilang') && $nSavePeriod) {
// Пишем в куки, если требуется
E::ModuleSession()->SetCookie($sLangKey, $this->sCurrentLang, $nSavePeriod);
}
$this->InitLang();
}
示例2: smarty_function_asset
/**
* Plugin for Smarty
* Returns URL for skin asset file
*
* @param array $aParams
* @param Smarty_Internal_Template $oSmartyTemplate
*
* @return string
*/
function smarty_function_asset($aParams, $oSmartyTemplate)
{
if (empty($aParams['skin']) && empty($aParams['file'])) {
trigger_error('Asset: missing "file" parametr', E_USER_WARNING);
return '';
}
if (isset($aParams['file'])) {
if (stripos($aParams['file'], 'http://') === 0 || stripos($aParams['file'], 'https://') === 0 || stripos($aParams['file'], 'http://') === 0) {
$sUrl = $aParams['file'];
} else {
if (F::File_LocalDir($aParams['file'])) {
$sFile = $aParams['file'];
} else {
// Need URL to asset file
if (empty($aParams['skin'])) {
$sSkin = E::ModuleViewer()->GetConfigSkin();
} else {
$sSkin = $aParams['skin'];
}
if (isset($aParams['theme'])) {
if (is_bool($aParams['theme'])) {
$sTheme = E::ModuleViewer()->GetConfigTheme();
} else {
$sTheme = $aParams['theme'];
}
} else {
$sTheme = '';
}
if ($sTheme) {
$sTheme = 'themes/' . $sTheme . '/';
}
if (isset($aParams['plugin'])) {
$sFile = Plugin::GetTemplateFile($aParams['plugin'], $aParams['file']);
} else {
$sFile = Config::Get('path.skins.dir') . '/' . $sSkin . '/' . $sTheme . $aParams['file'];
}
}
if (isset($aParams['prepare'])) {
/** @var ModuleViewerAsset $oLocalViewerAsset */
$oLocalViewerAsset = new ModuleViewerAsset();
$oLocalViewerAsset->AddFiles(F::File_GetExtension($sFile, true), array($sFile));
$oLocalViewerAsset->Prepare();
$sUrl = $oLocalViewerAsset->AssetFileUrl(F::File_NormPath($sFile));
} else {
$sUrl = E::ModuleViewerAsset()->File2Link($sFile, 'skin/' . $sSkin . '/');
}
}
} else {
// Need URL to asset dir
$sUrl = E::ModuleViewer()->GetAssetUrl() . 'skin/' . $aParams['skin'] . '/';
}
return $sUrl;
}
示例3: EventConfig
public function EventConfig()
{
$sFile = Plugin::GetPath(__CLASS__) . 'config/sphinx-src.conf';
$sText = F::File_GetContents($sFile);
$sPath = F::File_NormPath(Config::Get('plugin.sphinx.path') . '/');
$sDescription = E::ModuleLang()->Get('plugin.sphinx.conf_description', array('path' => $sPath, 'prefix' => Config::Get('plugin.sphinx.prefix')));
$sDescription = preg_replace('/\\s\\s+/', ' ', str_replace("\n", "\n## ", $sDescription));
$sTitle = E::ModuleLang()->Get('plugin.sphinx.conf_title');
$aData = array('{{title}}' => $sTitle, '{{description}}' => $sDescription, '{{db_type}}' => Config::Get('db.params.type') == 'postgresql' ? 'pgsql' : 'mysql', '{{db_host}}' => Config::Get('db.params.host'), '{{db_user}}' => Config::Get('db.params.user'), '{{db_pass}}' => Config::Get('db.params.pass'), '{{db_name}}' => Config::Get('db.params.dbname'), '{{db_port}}' => Config::Get('db.params.port'), '{{db_prefix}}' => Config::Get('db.table.prefix'), '{{db_socket}}' => Config::Get('plugin.sphinx.db_socket'), '{{spinx_prefix}}' => Config::Get('plugin.sphinx.prefix'), '{{spinx_path}}' => $sPath);
$sText = str_replace(array_keys($aData), array_values($aData), $sText);
echo '<pre>';
echo $sText;
echo '</pre>';
exit;
}
示例4: getTemplatePathPlugin
/**
* Возвращает путь к текущему шаблону плагина
*
* @return string
*/
public function getTemplatePathPlugin()
{
if (is_null($this->sTemplatePathPlugin)) {
preg_match('/^Plugin([\\w]+)_Action([\\w]+)$/i', $this->GetActionClass(), $aMatches);
/**
* Проверяем в списке шаблонов
*/
$sPlugin = strtolower($aMatches[1]);
$sAction = strtolower($aMatches[2]);
$sPluginDir = Plugin::GetDir($sPlugin);
$aPaths = glob($sPluginDir . '/templates/skin/*/actions/' . $sAction, GLOB_ONLYDIR);
$sTemplateName = $aPaths && in_array(Config::Get('view.skin'), array_map(create_function('$sPath', 'preg_match("/skin\\/([\\w\\-]+)\\/actions/i",$sPath,$aMatches); return $aMatches[1];'), $aPaths)) ? Config::Get('view.skin') : 'default';
$sDir = F::File_NormPath($sPluginDir . '/templates/skin/' . $sTemplateName . '/');
$this->sTemplatePathPlugin = is_dir($sDir) ? $sDir : null;
}
return $this->sTemplatePathPlugin;
}
示例5: Init
/**
* Инициализация модуля
*
*/
public function Init()
{
E::ModuleHook()->Run('lang_init_start');
$this->sDefaultLang = Config::Get('lang.default');
$this->aLangPaths = F::File_NormPath(Config::Get('lang.paths'));
$this->bDeleteUndefinedVars = Config::Get('module.lang.delete_undefined');
// Allowed languages
$aLangsAllow = (array) Config::Get('lang.allow');
// Проверку на языки делаем, только если сайт мультиязычный
if (Config::Get('lang.multilang')) {
// Время хранение языка в куках
$iSavePeriod = F::ToSeconds(Config::Get('lang.save'));
$sLangKey = is_string(Config::Get('lang.in_get')) ? Config::Get('lang.in_get') : 'lang';
// Получаем язык, если он был задан в URL
$this->sCurrentLang = R::GetLang();
// Проверка куки, если требуется
if (!$this->sCurrentLang && $iSavePeriod) {
$sLang = (string) E::ModuleSession()->GetCookie($sLangKey);
if ($sLang) {
$this->sCurrentLang = $sLang;
}
}
if (!$this->sCurrentLang) {
$this->sCurrentLang = Config::Get('lang.current');
}
} else {
$this->sCurrentLang = Config::Get('lang.current');
$iSavePeriod = 0;
$sLangKey = null;
}
// Current language must be in allowed languages
if (!in_array($this->sCurrentLang, $aLangsAllow)) {
$this->sCurrentLang = reset($aLangsAllow);
}
// Проверяем на случай старого обозначения языков
$this->sDefaultLang = $this->_checkLang($this->sDefaultLang);
$this->sCurrentLang = $this->_checkLang($this->sCurrentLang);
if ($this->sCurrentLang && Config::Get('lang.multilang') && $iSavePeriod) {
// Пишем в куки, если требуется
E::ModuleSession()->SetCookie($sLangKey, $this->sCurrentLang, $iSavePeriod);
}
$this->InitLang();
}
示例6: _getUserUploadDir
/**
* Path to user's upload dir
*
* @param int $iUserId
* @param string $sDir
* @param bool $bAutoMake
*
* @return string
*/
protected function _getUserUploadDir($iUserId, $sDir, $bAutoMake = true)
{
$nMaxLen = 6;
$nSplitLen = 2;
$sPath = join('/', str_split(str_pad($iUserId, $nMaxLen, '0', STR_PAD_LEFT), $nSplitLen));
$sResult = F::File_NormPath(F::File_RootDir() . $sDir . $sPath . '/');
if ($bAutoMake) {
F::File_CheckDir($sResult, $bAutoMake);
}
return $sResult;
}
示例7: 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');
}
示例8: GetTemplatePath
/**
* Returns full path to email templates by name and plugin
*
* @param string $sName Template name
* @param string|object $xPlugin Name or class of plugin
*
* @return string
*/
public function GetTemplatePath($sName, $xPlugin = null)
{
if ($xPlugin) {
$sPluginName = Plugin::GetPluginName($xPlugin);
} else {
$sPluginName = '';
}
$sCacheKey = 'template_path_' . $sName . '-' . $sPluginName;
if (false === ($sResult = E::ModuleCache()->Get($sCacheKey, 'tmp'))) {
$bFound = false;
if ($sPluginName) {
$sDir = Plugin::GetTemplateDir($sPluginName) . $this->sDir . '/';
} else {
$sDir = F::File_NormPath(E::ModuleViewer()->GetTemplateDir() . '/' . $this->sDir . '/');
}
// Find template by current language
$sLangDir = $sDir . E::ModuleLang()->GetLang();
if (is_dir($sLangDir)) {
$sResult = $sLangDir . '/' . $sName;
$bFound = true;
}
if (!$bFound) {
// Find by aliases of current language
if ($aAliases = E::ModuleLang()->GetLangAliases()) {
foreach ($aAliases as $sAlias) {
if (is_dir($sLangDir = $sDir . $sAlias)) {
$sResult = $sLangDir . '/' . $sName;
$bFound = true;
break;
}
}
}
}
if (!$bFound) {
// Find template by default language
$sLangDir = $sDir . E::ModuleLang()->GetDefaultLang();
if (is_dir($sLangDir)) {
$sResult = $sLangDir . '/' . $sName;
$bFound = true;
}
}
if (!$bFound) {
// Find by aliases of default language
if ($aAliases = E::ModuleLang()->GetDefaultLangAliases()) {
foreach ($aAliases as $sAlias) {
if (is_dir($sLangDir = $sDir . $sAlias)) {
$sResult = $sLangDir . '/' . $sName;
$bFound = true;
break;
}
}
}
}
if (!$bFound) {
$sResult = $sDir . E::ModuleLang()->GetLangDefault() . '/' . $sName;
}
if (is_dir($sResult)) {
E::ModuleCache()->Set($sResult, $sCacheKey, array(), 'P30D', 'tmp');
}
}
return $sResult;
}
示例9: GetTemplateDir
/**
* Возвращает путь к папке скина
*
* @param bool $bSiteSkin - Если задано, то возвращает скин, установленный для сайта (игнорирует скин экшена)
*
* @return string
*/
public function GetTemplateDir($bSiteSkin = true)
{
if ($bSiteSkin) {
return F::File_NormPath(Config::Get('path.skins.dir') . '/' . $this->GetConfigSkin($bSiteSkin));
} else {
return Config::Get('path.smarty.template');
}
}
示例10: AddFilesToAssets
/**
* @param string $sType
* @param array $aFiles
* @param array $aOptions
*/
public function AddFilesToAssets($sType, $aFiles, $aOptions = array())
{
if (!is_array($aFiles)) {
$aFiles = array(array('file' => (string) $aFiles));
}
$aAssetFiles = array();
$aFileList = array();
// seek wildcards - if name hase '*' then add files by pattern
foreach ($aFiles as $sFileName => $aFileParams) {
if (strpos($sFileName, '*')) {
unset($aFiles[$sFileName]);
$aFoundFiles = F::File_ReadFileList($sFileName, 0, true);
if ($aFoundFiles) {
foreach ($aFoundFiles as $sAddFile) {
$sAddType = F::File_GetExtension($sAddFile, true);
$aFileParams['name'] = $sAddFile;
$aFileParams['file'] = $sAddFile;
if ($sAddType == $sType) {
$aFileList[$sAddFile] = $aFileParams;
} else {
$this->AddFilesToAssets($sAddType, array($sAddFile => $aFileParams), $aOptions);
}
}
}
} else {
$aFileList[$sFileName] = $aFileParams;
}
}
foreach ($aFileList as $sFileName => $aFileParams) {
// extract & normalize full file path
if (isset($aFileParams['file'])) {
$sFile = F::File_NormPath($aFileParams['file']);
} else {
$sFile = F::File_NormPath((string) $sFileName);
}
$sName = isset($aFileParams['name']) ? $aFileParams['name'] : $sFile;
if (!is_array($aFileParams)) {
$aFileParams = array();
}
$aFileParams['file'] = F::File_NormPath($sFile);
$aFileParams['name'] = F::File_NormPath($sName);
$aAssetFiles[$sName] = $aFileParams;
}
return $this->_add($sType, $aAssetFiles, $aOptions);
}
示例11: GetFile
/**
* Returns full dir path to media resource
*
* @return string
*/
public function GetFile()
{
$sPathFile = $this->GetPathFile();
if (substr($sPathFile, 0, 1) == '@') {
$sPathFile = F::File_NormPath(F::File_RootDir() . '/' . substr($sPathFile, 1));
}
return $sPathFile;
}
示例12: Url2Dir
/**
* @param string $sUrl
*
* @return string
*/
public function Url2Dir($sUrl)
{
if (F::File_LocalUrl($sUrl)) {
$sDir = F::File_Url2Dir($sUrl);
if (strpos($sDir, Config::Get('path.uploads.root')) === 0) {
$sDir = F::File_NormPath(Config::Get('path.static.dir') . $sDir);
} elseif (Config::Get('path.root.subdir') && strpos($sDir, Config::Get('path.root.subdir') . Config::Get('path.uploads.root')) === 0) {
$sRootPath = substr(Config::Get('path.static.dir'), 0, -strlen(Config::Get('path.root.subdir')));
$sDir = F::File_NormPath($sRootPath . $sDir);
}
return $sDir;
}
}
示例13: GetDir
/**
* Returns dir of template widget
*
* @return mixed
*/
public function GetDir()
{
$sDir = $this->getProp('_dir');
if (is_null($sDir)) {
$sDir = $this->GetParam('dir');
if ($sPlugin = $this->GetPluginId()) {
$sDir = F::File_NormPath(Plugin::GetTemplateDir($sPlugin) . '/' . $sDir);
}
$this->setProp('_dir', $sDir);
}
return $sDir;
}
示例14: RealUrl
/**
* Приведение адреса к абсолютному виду
*
* Путь в $sLocation может быть как абсолютным, так и относительным.
* Абсолютный путь определяется по наличию хоста
*
* Если задан относительный путь, то итоговый URL определяется в зависимости от второго парамтера.
* Если $bRealHost == false (по умолчанию), то за основу берется root-адрес сайта, который задан в конфигурации.
* В противном случае основа адреса - это реальный адрес хоста из $_SERVER['SERVER_NAME']
*
* @param string $sLocation - адрес перехода (напр., 'http://ya.ru/demo/', '/123.html', 'blog/add/')
* @param bool $bRealHost - в случае относительной адресации брать адрес хоста из конфига или реальный
*
* @return string
*/
public static function RealUrl($sLocation, $bRealHost = false)
{
$sProtocol = static::HttpProtocol();
$aParts = parse_url($sLocation);
// если парсером хост не обнаружен, то задан относительный путь
if (!isset($aParts['host'])) {
if (!$bRealHost) {
$sUrl = F::File_RootUrl() . $sLocation;
} else {
if (strpos($sProtocol, 'HTTPS') === 0) {
$sUrl = 'https://';
} else {
$sUrl = 'http://';
}
if (isset($_SERVER['SERVER_NAME'])) {
$sUrl .= $_SERVER['SERVER_NAME'];
}
if (substr($sLocation, 0, 1) == '/') {
$sUrl .= $sLocation;
} else {
if (isset($_SERVER['REQUEST_URI'])) {
$sUri = $_SERVER['REQUEST_URI'];
if ($n = strpos($sUri, '?')) {
$sUri = substr($sUri, 0, $n);
}
if ($n = strpos($sUri, '#')) {
$sUri = substr($sUri, 0, $n);
}
$sUrl .= '/' . $sUri;
}
$sUrl .= '/' . $sLocation;
}
}
} else {
$sUrl = $sLocation;
}
return F::File_NormPath($sUrl);
}
示例15: getLink
/**
* Возвращает ссылку фото определенного размера
*
* @param string|null $xSize Размер фото, например, '100' или '150crop' или '150x100' или 'x100'
*
* @return null|string
*/
public function getLink($xSize = null)
{
if ($sUrl = $this->getPath()) {
if ($xSize) {
$sResizedUrl = $this->getProp('_size-' . $xSize . '-url');
if ($sResizedUrl) {
return $sResizedUrl;
}
$aPathInfo = pathinfo($sUrl);
if (E::ActivePlugin('ls')) {
// Включена совместимость с LS
$sResizedUrl = $aPathInfo['dirname'] . '/' . $aPathInfo['filename'] . '_' . $xSize . '.' . $aPathInfo['extension'];
if (F::File_LocalUrl($sResizedUrl) && !F::File_Exists(F::File_Url2Dir($sResizedUrl))) {
$sResizedUrl = '';
}
}
if (!$sResizedUrl) {
$sModSuffix = F::File_ImgModSuffix($xSize, $aPathInfo['extension']);
if ($sModSuffix) {
$sResizedUrl = $sUrl . $sModSuffix;
if (Config::Get('module.image.autoresize')) {
$sFile = E::ModuleUploader()->Url2Dir($sResizedUrl);
$this->setProp('_size-' . $xSize . '-file', $sFile);
if (!F::File_Exists($sFile)) {
E::ModuleImg()->Duplicate($sFile);
}
}
}
}
if ($sResizedUrl) {
$sUrl = F::File_NormPath($sResizedUrl);
}
$this->setProp('_size-' . $xSize . '-url', $sUrl);
}
}
return $sUrl;
}