本文整理汇总了PHP中F::File_Exists方法的典型用法代码示例。如果您正苦于以下问题:PHP F::File_Exists方法的具体用法?PHP F::File_Exists怎么用?PHP F::File_Exists使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类F
的用法示例。
在下文中一共展示了F::File_Exists方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: _getTemplatePathByPlugin
protected function _getTemplatePathByPlugin($sName, $xPlugin, $sSubDir)
{
$sSavedSubDir = $this->sDir;
$this->sDir = $sSubDir;
$sFileName = parent::GetTemplatePath($sName, $xPlugin);
$this->sDir = $sSavedSubDir;
$sResult = $sFileName;
if (!F::File_Exists($sFileName)) {
if (strpos(basename($sFileName), 'email.notify.') === 0) {
if (F::File_Exists($sFileName = str_replace('email.notify.', 'notify.', $sFileName))) {
$sResult = $sFileName;
} elseif (F::File_Exists($sFileName = str_replace('email.notify.', 'email.', $sFileName))) {
$sResult = $sFileName;
} elseif (F::File_Exists($sFileName = str_replace('email.notify.', '', $sFileName))) {
$sResult = $sFileName;
}
} elseif (strpos(basename($sFileName), 'notify.notify.') === 0) {
if (F::File_Exists($sFileName = str_replace('notify.notify.', 'notify.', $sFileName))) {
$sResult = $sFileName;
} elseif (F::File_Exists($sFileName = str_replace('notify.notify.', 'email.', $sFileName))) {
$sResult = $sFileName;
} elseif (F::File_Exists($sFileName = str_replace('notify.notify.', '', $sFileName))) {
$sResult = $sFileName;
}
}
}
return $sResult;
}
示例2: EventSkin
protected function EventSkin()
{
$aParams = $this->GetParams();
$sSkinName = array_shift($aParams);
$sRelPath = implode('/', $aParams);
$sOriginalFile = Config::Get('path.skins.dir') . $sSkinName . '/' . $sRelPath;
if (F::File_Exists($sOriginalFile)) {
$sAssetFile = F::File_GetAssetDir() . 'skin/' . $sSkinName . '/' . $sRelPath;
if (F::File_Copy($sOriginalFile, $sAssetFile)) {
if (headers_sent($sFile, $nLine)) {
$sUrl = F::File_GetAssetUrl() . 'skin/' . $sSkinName . '/' . $sRelPath;
if (strpos($sUrl, '?')) {
$sUrl .= '&' . uniqid();
} else {
$sUrl .= '?' . uniqid();
}
R::Location($sUrl);
} else {
header_remove();
if ($sMimeType = F::File_MimeType($sAssetFile)) {
header('Content-Type: ' . $sMimeType);
}
echo file_get_contents($sAssetFile);
exit;
}
}
}
F::HttpHeader('404 Not Found');
exit;
}
示例3: GetSkinManifest
/**
* Load skin manifest from XML
*
* @param string $sSkin
* @param string $sSkinDir
*
* @return string|bool
*/
public function GetSkinManifest($sSkin, $sSkinDir = null)
{
if (!$sSkinDir) {
$sSkinDir = Config::Get('path.skins.dir') . $sSkin . '/';
}
if (F::File_Exists($sSkinDir . '/' . self::SKIN_XML_FILE)) {
$sXmlFile = $sSkinDir . '/' . self::SKIN_XML_FILE;
} else {
$sXmlFile = $sSkinDir . '/settings/' . self::SKIN_XML_FILE;
}
if ($sXml = F::File_GetContents($sXmlFile)) {
return $sXml;
}
return null;
}
示例4: _makeFileList
/**
* Make file list for loading
*
* @param $aPaths
* @param $sPattern
* @param $sLang
* @param bool $bExactMatch
* @param bool $bCheckAliases
*
* @return array
*/
public function _makeFileList($aPaths, $sPattern, $sLang, $bExactMatch = true, $bCheckAliases = true)
{
if (!is_array($aPaths)) {
$aPaths = array((string) $aPaths);
}
$aResult = array();
foreach ($aPaths as $sPath) {
$sPathPattern = $sPath . '/' . $sPattern;
$sLangFile = str_replace(static::LANG_PATTERN, $sLang, $sPathPattern);
if ($bExactMatch) {
if (F::File_Exists($sLangFile)) {
$aResult[] = $sLangFile;
}
} else {
if ($aFiles = glob($sLangFile)) {
$aResult = array_merge($aResult, $aFiles);
}
}
if (!$aResult && $bCheckAliases && ($aAliases = F::Str2Array(Config::Get('lang.aliases.' . $sLang)))) {
//If the language file is not found, then check its aliases
foreach ($aAliases as $sLangAlias) {
$aSubResult = $this->_makeFileList($aPaths, $sPattern, $sLangAlias, $bExactMatch, false);
if ($aSubResult) {
$aResult = array_merge($aResult, $aSubResult);
break;
}
}
}
}
return $aResult;
}
示例5: SetTemplateAction
/**
* Устанавливает какой шаблон выводить
*
* @param string $sTemplate Путь до шаблона относительно каталога шаблонов экшена
*/
protected function SetTemplateAction($sTemplate)
{
if (substr($sTemplate, -4) != '.tpl') {
$sTemplate = $sTemplate . '.tpl';
}
$sActionTemplatePath = $sTemplate;
if (!F::File_IsLocalDir($sActionTemplatePath)) {
// If not absolute path then defines real path of template
$aDelegates = E::ModulePlugin()->GetDelegationChain('action', $this->GetActionClass());
foreach ($aDelegates as $sAction) {
if (preg_match('/^(Plugin([\\w]+)_)?Action([\\w]+)$/i', $sAction, $aMatches)) {
// for LS-compatibility
$sActionNameOriginal = $aMatches[3];
// New-style action templates
$sActionName = strtolower($sActionNameOriginal);
$sTemplatePath = E::ModulePlugin()->GetDelegate('template', 'actions/' . $sActionName . '/action.' . $sActionName . '.' . $sTemplate);
$sActionTemplatePath = $sTemplatePath;
if (!empty($aMatches[1])) {
$aPluginTemplateDirs = array(Plugin::GetTemplateDir($sAction));
if (basename($aPluginTemplateDirs[0]) !== 'default') {
$aPluginTemplateDirs[] = dirname($aPluginTemplateDirs[0]) . '/default/';
}
if ($sTemplatePath = F::File_Exists('tpls/' . $sTemplatePath, $aPluginTemplateDirs)) {
$sActionTemplatePath = $sTemplatePath;
break;
}
if ($sTemplatePath = F::File_Exists($sTemplatePath, $aPluginTemplateDirs)) {
$sActionTemplatePath = $sTemplatePath;
break;
}
// LS-compatibility
if (E::ModulePlugin()->IsActivePlugin('ls')) {
$sLsTemplatePath = E::ModulePlugin()->GetDelegate('template', 'actions/Action' . ucfirst($sActionName) . '/' . $sTemplate);
if ($sTemplatePath = F::File_Exists($sLsTemplatePath, $aPluginTemplateDirs)) {
$sActionTemplatePath = $sTemplatePath;
break;
}
$sLsTemplatePath = E::ModulePlugin()->GetDelegate('template', 'actions/Action' . ucfirst($sActionNameOriginal) . '/' . $sTemplate);
if ($sTemplatePath = F::File_Exists($sLsTemplatePath, $aPluginTemplateDirs)) {
$sActionTemplatePath = $sTemplatePath;
break;
}
}
}
}
}
}
$this->sActionTemplate = $sActionTemplatePath;
}
示例6: EventResizePhoto
/**
* Вырезает из временной фотки область нужного размера, ту что задал пользователь
*/
protected function EventResizePhoto()
{
// * Устанавливаем формат Ajax ответа
$this->Viewer_SetResponseAjax('json');
// * Достаем из сессии временный файл
$sTmpFile = $this->Session_Get('sPhotoTmp');
$sPreviewFile = $this->Session_Get('sPhotoPreview');
if (!F::File_Exists($sTmpFile)) {
$this->Message_AddErrorSingle($this->Lang_Get('system_error'));
return;
}
// * Определяем размер большого фото для подсчета множителя пропорции
$fRation = 1;
if (($aSizeFile = getimagesize($sTmpFile)) && isset($aSizeFile[0])) {
// в self::PREVIEW_RESIZE задана максимальная сторона
$fRation = max($aSizeFile[0], $aSizeFile[1]) / self::PREVIEW_RESIZE;
// 200 - размер превью по которой пользователь определяет область для ресайза
if ($fRation < 1) {
$fRation = 1;
}
}
// * Получаем размер области из параметров
$aSize = $this->_getImageSize('size');
if ($aSize) {
$aSize = array('x1' => round($fRation * $aSize['x1']), 'y1' => round($fRation * $aSize['y1']), 'x2' => round($fRation * $aSize['x2']), 'y2' => round($fRation * $aSize['y2']));
}
// * Вырезаем фото
if ($sFileWeb = $this->User_UploadPhoto($sTmpFile, $this->oUserCurrent, $aSize)) {
// * Удаляем старые аватарки
$this->oUserCurrent->setProfilePhoto($sFileWeb);
$this->User_Update($this->oUserCurrent);
$this->Img_Delete($sTmpFile);
$this->Img_Delete($sPreviewFile);
// * Удаляем из сессии
$this->Session_Drop('sPhotoTmp');
$this->Session_Drop('sPhotoPreview');
$this->Viewer_AssignAjax('sFile', $this->oUserCurrent->getPhotoUrl());
$this->Viewer_AssignAjax('sTitleUpload', $this->Lang_Get('settings_profile_photo_change'));
} else {
$this->Message_AddError($this->Lang_Get('settings_profile_avatar_error'), $this->Lang_Get('error'));
}
}
示例7: _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);
}
}
示例8: GetClassPath
/**
* Возвращает информацию о пути до файла класса.
* Используется в {@link autoload автозагрузке}
*
* @static
*
* @param LsObject|string $oObject Объект - модуль, экшен, плагин, хук, сущность
* @param int $iArea В какой области проверять (классы движка, общие классы, плагины)
*
* @return null|string
*/
public static function GetClassPath($oObject, $iArea = self::CI_AREA_ACTUAL)
{
$aInfo = static::GetClassInfo($oObject, self::CI_OBJECT);
$sPluginDir = '';
if ($aInfo[self::CI_PLUGIN]) {
$sPlugin = F::StrUnderscore($aInfo[self::CI_PLUGIN]);
$aPlugins = F::GetPluginsList($iArea & self::CI_AREA_ALL_PLUGINS, false);
if (isset($aPlugins[$sPlugin]['dirname'])) {
$sPluginDir = $aPlugins[$sPlugin]['dirname'];
} else {
$sPluginDir = $sPlugin;
}
}
$aPathSeek = Config::Get('path.root.seek');
if ($aInfo[self::CI_ENTITY]) {
// Сущность
if ($aInfo[self::CI_PLUGIN]) {
// Сущность модуля плагина
$sFile = 'plugins/' . $sPluginDir . '/classes/modules/' . F::StrUnderscore($aInfo[self::CI_MODULE]) . '/entity/' . $aInfo[self::CI_ENTITY] . '.entity.class.php';
} else {
// Сущность модуля ядра
$sFile = 'classes/modules/' . strtolower($aInfo[self::CI_MODULE]) . '/entity/' . $aInfo[self::CI_ENTITY] . '.entity.class.php';
}
} elseif ($aInfo[self::CI_MAPPER]) {
// Маппер
if ($aInfo[self::CI_PLUGIN]) {
// Маппер модуля плагина
$sFile = 'plugins/' . $sPluginDir . '/classes/modules/' . F::StrUnderscore($aInfo[self::CI_MODULE]) . '/mapper/' . $aInfo[self::CI_MAPPER] . '.mapper.class.php';
} else {
// Маппер модуля ядра
$sFile = 'classes/modules/' . strtolower($aInfo[self::CI_MODULE]) . '/mapper/' . $aInfo[self::CI_MAPPER] . '.mapper.class.php';
}
} elseif ($aInfo[self::CI_ACTION]) {
// Экшн
if ($aInfo[self::CI_PLUGIN]) {
// Экшн плагина
$sFile = 'plugins/' . $sPluginDir . '/classes/actions/Action' . $aInfo[self::CI_ACTION] . '.class.php';
} else {
// Экшн ядра
$sFile = 'classes/actions/Action' . $aInfo[self::CI_ACTION] . '.class.php';
}
} elseif ($aInfo[self::CI_MODULE]) {
// Модуль
if ($aInfo[self::CI_PLUGIN]) {
// Модуль плагина
$sFile = 'plugins/' . $sPluginDir . '/classes/modules/' . F::StrUnderscore($aInfo[self::CI_MODULE]) . '/' . $aInfo[self::CI_MODULE] . '.class.php';
} else {
// Модуль ядра
$sFile = 'classes/modules/' . strtolower($aInfo[self::CI_MODULE]) . '/' . $aInfo[self::CI_MODULE] . '.class.php';
}
} elseif ($aInfo[self::CI_HOOK]) {
// Хук
if ($aInfo[self::CI_PLUGIN]) {
// Хук плагина
$sFile = 'plugins/' . $sPluginDir . '/classes/hooks/Hook' . $aInfo[self::CI_HOOK] . '.class.php';
} else {
// Хук ядра
$sFile = 'classes/hooks/Hook' . $aInfo[self::CI_HOOK] . '.class.php';
}
} elseif ($aInfo[self::CI_BLOCK]) {
// LS-compatible
if ($aInfo[self::CI_PLUGIN]) {
// Блок плагина
$sFile = 'plugins/' . $sPluginDir . '/classes/blocks/Block' . $aInfo[self::CI_BLOCK] . '.class.php';
} else {
// Блок ядра
$sFile = 'classes/blocks/Block' . $aInfo[self::CI_BLOCK] . '.class.php';
}
} elseif ($aInfo[self::CI_WIDGET]) {
// Виджет
if ($aInfo[self::CI_PLUGIN]) {
// Виджет плагина
$sFile = 'plugins/' . $sPluginDir . '/classes/widgets/Widget' . $aInfo[self::CI_WIDGET] . '.class.php';
} else {
// Блок ядра
$sFile = 'classes/widgets/Widget' . $aInfo[self::CI_WIDGET] . '.class.php';
}
} elseif ($aInfo[self::CI_PLUGIN]) {
// Плагин
$sFile = 'plugins/' . $sPluginDir . '/Plugin' . $aInfo[self::CI_PLUGIN] . '.class.php';
} else {
$sClassName = is_string($oObject) ? $oObject : get_class($oObject);
$sFile = $sClassName . '.class.php';
$aPathSeek = array(Config::Get('path.dir.engine') . '/classes/core/', Config::Get('path.dir.engine') . '/classes/abstract/');
}
$sPath = F::File_Exists($sFile, $aPathSeek);
return $sPath ? $sPath : null;
}
示例9: Init
/**
* Инициализируем нужный тип кеша
*
*/
public function Init()
{
$this->bUseCache = C::Get('sys.cache.use');
$this->sCacheType = C::Get('sys.cache.type');
$this->sCachePrefix = $this->GetCachePrefix();
$aCacheTypes = (array) C::Get('sys.cache.backends');
// Доступные механизмы кеширования
$this->aCacheTypesAvailable = array_map('strtolower', array_keys($aCacheTypes));
// Механизмы принудительного кеширования
$this->aCacheTypesForce = (array) C::Get('sys.cache.force');
if ($this->aCacheTypesForce === true) {
// Разрешены все
$this->aCacheTypesForce = $this->aCacheTypesAvailable;
} else {
// Разрешены только те, которые есть в списке доступных
$this->aCacheTypesForce = array_intersect(array_map('strtolower', $this->aCacheTypesForce), $this->aCacheTypesAvailable);
}
// По умолчанию кеширование данных полностью отключено
$this->nCacheMode = self::CACHE_MODE_NONE;
if ($this->_backendIsAvailable($this->sCacheType)) {
if ($this->bUseCache) {
// Включено автокеширование
$this->nCacheMode = $this->nCacheMode | self::CACHE_MODE_AUTO | self::CACHE_MODE_REQUEST;
} else {
// Включено кеширование по запросу
$this->nCacheMode = $this->nCacheMode | self::CACHE_MODE_REQUEST;
}
// Инициализация механизма кеширования по умолчанию
$this->_backendInit($this->sCacheType);
}
if ($this->aCacheTypesForce) {
// Разрешено принудительное кеширование
$this->nCacheMode = $this->nCacheMode | self::CACHE_MODE_FORCE;
}
if ($this->nCacheMode != self::CACHE_MODE_NONE) {
// Дабы не засорять место протухшим кешем, удаляем его в случайном порядке, например 1 из 50 раз
if (rand(1, $this->nRandClearOld) == 33) {
$this->Clean(Zend_Cache::CLEANING_MODE_OLD);
}
}
$sCheckFile = C::Get('sys.cache.dir') . self::CHECK_FILENAME;
if (F::File_CheckDir(C::Get('sys.cache.dir'), true)) {
// If the control file is not present, then we need to clear cache and create
if (!F::File_Exists($sCheckFile)) {
$this->Clean();
}
}
return $this->nCacheMode;
}
示例10: _getSkinFromConfig
protected function _getSkinFromConfig($sSkin)
{
$sSkinTheme = null;
if (F::File_Exists($sFile = Config::Get('path.skins.dir') . $sSkin . '/settings/config/config.php')) {
$aSkinConfig = F::IncludeFile($sFile, false, true);
if (isset($aSkinConfig['view']) && isset($aSkinConfig['view']['theme'])) {
$sSkinTheme = $aSkinConfig['view']['theme'];
} elseif (isset($aSkinConfig['view.theme'])) {
$sSkinTheme = $aSkinConfig['view.theme'];
}
}
return $sSkinTheme;
}
示例11: File2Link
/**
* @param string $sLocalFile
* @param string $sParentDir
*
* @return bool|string
*/
public function File2Link($sLocalFile, $sParentDir = null)
{
$sAssetFile = $this->AssetFileDir($sLocalFile, $sParentDir);
if (F::File_Exists($sAssetFile) || F::File_Copy($sLocalFile, $sAssetFile)) {
return $this->AssetFileUrl($sLocalFile, $sParentDir);
}
return false;
}
示例12: getDefaultAvatarUrl
/**
* Возвращает дефолтный аватар пользователя
*
* @param int|string $xSize
* @param string $sSex
*
* @return string
*/
public function getDefaultAvatarUrl($xSize = null, $sSex = null)
{
if (!$sSex) {
$sSex = $this->getProfileSex() === 'woman' ? 'female' : 'male';
}
if ($sSex !== 'female' && $sSex !== 'male') {
$sSex = 'male';
}
$sPath = E::ModuleUploader()->GetUserAvatarDir(0) . 'avatar_' . Config::Get('view.skin', Config::LEVEL_CUSTOM) . '_' . $sSex . '.png';
if (!$xSize) {
if (Config::Get('module.user.profile_avatar_size')) {
$xSize = Config::Get('module.user.profile_avatar_size');
} else {
$xSize = self::DEFAULT_AVATAR_SIZE;
}
}
if ($sRealSize = C::Get('module.uploader.images.profile_avatar.size.' . $xSize)) {
$xSize = $sRealSize;
}
if (is_string($xSize) && strpos($xSize, 'x')) {
list($nW, $nH) = array_map('intval', explode('x', $xSize));
} else {
$nW = $nH = intval($xSize);
}
$sResizePath = $sPath . '-' . $nW . 'x' . $nH . '.' . pathinfo($sPath, PATHINFO_EXTENSION);
if (Config::Get('module.image.autoresize') && !F::File_Exists($sResizePath)) {
$sResizePath = E::ModuleImg()->AutoresizeSkinImage($sResizePath, 'avatar', max($nH, $nW));
}
if ($sResizePath) {
$sPath = $sResizePath;
} elseif (!F::File_Exists($sPath)) {
$sPath = E::ModuleImg()->AutoresizeSkinImage($sPath, 'avatar', null);
}
return E::ModuleUploader()->Dir2Url($sPath);
}
示例13: File2Link
/**
* @param string $sLocalFile
* @param string $sParentDir
*
* @return bool|string
*/
public function File2Link($sLocalFile, $sParentDir = null)
{
$sAssetFile = $this->AssetFileDir($sLocalFile, $sParentDir);
$aInfo = F::File_PathInfo($sLocalFile);
if (F::File_Exists($sAssetFile) || F::File_Copy($aInfo['dirname'] . '/' . $aInfo['basename'], $sAssetFile)) {
return $this->AssetFileUrl($sLocalFile, $sParentDir);
}
return false;
}
示例14: Copy
/**
* Copy image file with other sizes
*
* @param string $sFile - full path of source image file
* @param string $sDestination - full path or newname only
* @param int $iWidth - new width
* @param int $iHeight - new height
* @param bool $bFit - to fit image's sizes into new sizes
* @param array $aOptions - to fit image's sizes into new sizes
*
* @return string|bool
*/
public function Copy($sFile, $sDestination, $iWidth = null, $iHeight = null, $bFit = true, $aOptions = array())
{
if (basename($sDestination) == $sDestination) {
$sDestination = dirname($sFile) . '/' . $sDestination;
}
try {
if (F::File_Exists($sFile) && ($oImg = $this->Read($sFile))) {
if ($iWidth || $iHeight) {
$oImg->Resize($iWidth, $iHeight, $bFit);
}
$oImg->Save($sDestination, $aOptions);
return $sDestination;
}
} catch (ErrorException $oE) {
$this->nError = -1;
}
return false;
}
示例15: _stageBegin
/**
* @param int $nStage
*
* @return bool
*/
protected function _stageBegin($nStage)
{
$sFile = F::File_GetAssetDir() . '_check/' . $this->GetHash();
if ($aCheckFiles = glob($sFile . '.{1,2,3}.begin.tmp', GLOB_BRACE)) {
$sCheckFile = reset($aCheckFiles);
// check time of tmp file
$nTime = filectime($sCheckFile);
if (!$nTime) {
$nTime = F::File_GetContents($sCheckFile);
}
if (time() < $nTime + ModuleViewerAsset::TMP_TIME) {
return false;
}
}
if ($nStage == 2 && ($aCheckFiles = glob($sFile . '.{2,3}.end.tmp', GLOB_BRACE))) {
return false;
} elseif ($nStage == 3 && F::File_Exists($sFile . '.3.end.tmp')) {
return false;
}
return F::File_PutContents($sFile . '.' . $nStage . '.begin.tmp', time());
}