本文整理汇总了PHP中E::ModuleImg方法的典型用法代码示例。如果您正苦于以下问题:PHP E::ModuleImg方法的具体用法?PHP E::ModuleImg怎么用?PHP E::ModuleImg使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类E
的用法示例。
在下文中一共展示了E::ModuleImg方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: get
public function get($sProp)
{
if (substr($sProp, -7) == '.driver') {
$sDriver = E::ModuleImg()->GetDriver();
if (!class_exists('\\PHPixie\\Image\\' . $sDriver, false)) {
F::IncludeLib('PHPixie/Image/' . $sDriver . '.php');
}
return $sDriver;
}
return null;
}
示例2: _getImageObject
/**
* @return bool|ModuleImg_EntityImage|null
*/
protected function _getImageObject()
{
if ($this->isImage()) {
$oImg = $this->getProp('__image');
if ($oImg === null) {
if (!($sFile = $this->GetFile()) || !($oImg = E::ModuleImg()->Read($sFile))) {
$oImg = false;
}
}
return $oImg;
}
return null;
}
示例3: EventUploads
/**
* Makes image with new size
*/
public function EventUploads()
{
// Раз оказались здесь, то нет соответствующего изображения. Пробуем его создать
$sUrl = F::File_RootUrl() . '/' . $this->sCurrentEvent . '/' . implode('/', $this->GetParams());
$sFile = F::File_Url2Dir($sUrl);
$sNewFile = E::ModuleImg()->Duplicate($sFile);
if (!$sNewFile) {
if (preg_match('/\\-(\\d+)x(\\d+)\\.[a-z]{3}$/i', $sFile, $aMatches)) {
$nSize = $aMatches[1];
} else {
$nSize = 0;
}
if (strpos(basename($sFile), 'avatar_blog') === 0) {
// Запрашивается аватар блога
$sNewFile = E::ModuleImg()->AutoresizeSkinImage($sFile, 'avatar_blog', $nSize ? $nSize : self::BLOG_AVATAR_SIZE);
} elseif (strpos(basename($sFile), 'avatar') === 0) {
// Запрашивается аватар
$sNewFile = E::ModuleImg()->AutoresizeSkinImage($sFile, 'avatar', $nSize ? $nSize : self::USER_AVATAR_SIZE);
} elseif (strpos(basename($sFile), 'user_photo') === 0) {
// Запрашивается фото
$sNewFile = E::ModuleImg()->AutoresizeSkinImage($sFile, 'user_photo', $nSize ? $nSize : self::USER_PHOTO_SIZE);
}
}
// Если файл успешно создан, то выводим его
if ($sNewFile) {
if (headers_sent($sFile, $nLine)) {
R::Location($sUrl . '?rnd=' . uniqid());
} else {
header_remove();
E::ModuleImg()->RenderFile($sNewFile);
exit;
}
}
F::HttpHeader('404 Not Found');
exit;
}
示例4: GetDefaultPhotoUrl
/**
* Returns URL for default photo of current skin
*
* @param int|string $xSize
*
* @return string
*/
public function GetDefaultPhotoUrl($xSize = null)
{
$sPath = E::ModuleUploader()->GetUserAvatarDir(0) . 'user_photo_' . Config::Get('view.skin', Config::LEVEL_CUSTOM) . '_' . ($this->getProfileSex() == 'woman' ? 'female' : 'male') . '.png';
if ($xSize) {
if (strpos($xSize, 'x') !== false) {
list($nW, $nH) = array_map('intval', explode('x', $xSize));
} else {
$nW = $nH = intval($xSize);
}
$sPath .= '-' . $nW . 'x' . $nH . '.' . pathinfo($sPath, PATHINFO_EXTENSION);
} else {
$nW = $nH = self::DEFAULT_PHOTO_SIZE;
}
if (Config::Get('module.image.autoresize') && !F::File_Exists($sPath)) {
E::ModuleImg()->AutoresizeSkinImage($sPath, 'user_photo', max($nH, $nW));
}
return E::ModuleUploader()->Dir2Url($sPath);
}
示例5: EventMultiUpload
/**
* Загружаем картинку
*/
public function EventMultiUpload()
{
// Устанавливаем формат Ajax ответа
E::ModuleViewer()->SetResponseAjax('json', FALSE);
E::ModuleSecurity()->ValidateSendForm();
// Проверяем, загружен ли файл
if (!($aUploadedFile = $this->GetUploadedFile('uploader-upload-image'))) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('error_upload_image'), E::ModuleLang()->Get('error'));
return false;
}
$sTarget = F::GetRequest('target', FALSE);
$sTargetId = F::GetRequest('target_id', FALSE);
$oTarget = E::ModuleUploader()->CheckAccessAndGetTarget($sTarget, $sTargetId);
$bTmp = F::GetRequest('tmp', FALSE);
$bTmp = $bTmp == 'true' ? true : false;
// Проверяем, целевой объект и права на его редактирование
if (!$oTarget) {
// Здесь два варианта, либо редактировать нельзя, либо можно, но топика еще нет
if ($oTarget === TRUE) {
// Будем делать временную картинку
} else {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('not_access'), E::ModuleLang()->Get('error'));
return false;
}
}
// Ошибок пока нет
$sError = '';
// Сделаем временный файд
$sTmpFile = E::ModuleUploader()->UploadLocal($aUploadedFile);
// Вызовем хук перед началом загрузки картинки
E::ModuleHook()->Run('uploader_upload_before', array('oTarget' => $oTarget, 'sTmpFile' => $sTmpFile, 'sTarget' => $sTarget));
// Если все ок, и по миме проходит, то
if ($sTmpFile && E::ModuleImg()->MimeType($sTmpFile)) {
// Проверим, проходит ли по количеству
if (!E::ModuleUploader()->GetAllowedCount($sTarget = F::GetRequest('target', FALSE), $sTargetId = F::GetRequest('target_id', FALSE))) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('uploader_photoset_error_count_photos', array('MAX' => Config::Get('module.topic.photoset.count_photos_max'))), E::ModuleLang()->Get('error'));
return FALSE;
}
// Определим, существует ли объект или он будет создан позже
if (!($sTmpKey = E::ModuleSession()->GetCookie(ModuleUploader::COOKIE_TARGET_TMP)) && $sTargetId == '0' && $bTmp) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('error_upload_image'), E::ModuleLang()->Get('error'));
return FALSE;
}
// Пересохраним файл из кэша
// Сохраняем фото во временный файл
$oImg = E::ModuleImg()->Read($sTmpFile);
$sExtension = strtolower(pathinfo($sTmpFile, PATHINFO_EXTENSION));
if (!($sTmpFile = $oImg->Save(F::File_UploadUniqname($sExtension)))) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('error_upload_image'), E::ModuleLang()->Get('error'));
return FALSE;
}
// Окончательная запись файла только через модуль Uploader
if ($oStoredFile = E::ModuleUploader()->StoreImage($sTmpFile, $sTarget, $sTargetId, null, true)) {
/** @var ModuleMresource_EntityMresource $oResource */
//$oResource = $this->AddUploadedFileRelationInfo($oStoredFile, $sTarget, $sTargetId, TRUE);
$oResource = E::ModuleMresource()->GetMresourcesByUuid($oStoredFile->getUuid());
$sFile = $oStoredFile->GetUrl();
if ($oResource) {
$oResource->setType(ModuleMresource::TYPE_PHOTO);
E::ModuleMresource()->UpdateType($oResource);
}
$sFilePreview = $sFile;
if ($sSize = F::GetRequest('crop_size', FALSE)) {
$sFilePreview = E::ModuleUploader()->ResizeTargetImage($sFile, $sSize);
}
// Запускаем хук на действия после загрузки картинки
E::ModuleHook()->Run('uploader_upload_image_after', array('sFile' => $sFile, 'sFilePreview' => $sFilePreview, 'sTargetId' => $sTargetId, 'sTarget' => $sTarget, 'oTarget' => $oTarget));
E::ModuleViewer()->AssignAjax('file', $sFilePreview);
E::ModuleViewer()->AssignAjax('id', $oResource->getMresourceId());
// Чистим
E::ModuleImg()->Delete($sTmpFile);
return TRUE;
}
} else {
// Ошибки загрузки картинки
$sError = E::ModuleUploader()->GetErrorMsg();
if (!$sError) {
$sError = E::ModuleLang()->Get('error_upload_image');
}
}
// Выведем ошибки пользователю
E::ModuleMessage()->AddError($sError, E::ModuleLang()->Get('error'));
// Удалим ранее загруженый файл
F::File_Delete($sTmpFile);
}
示例6: _getInfoData
protected function _getInfoData()
{
$aPlugins = E::ModulePlugin()->GetList(null, false);
$aActivePlugins = E::ModulePlugin()->GetActivePlugins();
$aPluginList = array();
foreach ($aActivePlugins as $aPlugin) {
if (is_array($aPlugin)) {
$sPlugin = $aPlugin['id'];
} else {
$sPlugin = (string) $aPlugin;
}
if (isset($aPlugins[$sPlugin])) {
$oPluginEntity = $aPlugins[$sPlugin];
$sPluginName = $oPluginEntity->GetName();
$aPluginInfo = array('item' => $sPlugin, 'label' => $sPluginName);
if ($sVersion = $oPluginEntity->GetVersion()) {
$aPluginInfo['value'] = 'v.' . $sVersion;
}
$sPluginClass = 'Plugin' . ucfirst($sPlugin);
if (class_exists($sPluginClass) && method_exists($sPluginClass, 'GetUpdateInfo')) {
$oPlugin = new $sPluginClass();
$aPluginInfo['.html'] = ' - ' . $oPlugin->GetUpdateInfo();
}
$aPluginList[$sPlugin] = $aPluginInfo;
}
}
$aSiteStat = E::ModuleAdmin()->GetSiteStat();
$sSmartyVersion = E::ModuleViewer()->GetSmartyVersion();
$aImgSupport = E::ModuleImg()->GetDriversInfo();
$sImgSupport = '';
if ($aImgSupport) {
foreach ($aImgSupport as $sDriver => $sVersion) {
if ($sImgSupport) {
$sImgSupport .= '; ';
}
$sImgSupport .= $sDriver . ': ' . $sVersion;
}
} else {
$sImgSupport = 'none';
}
$aInfo = array('versions' => array('label' => E::ModuleLang()->Get('action.admin.info_versions'), 'data' => array('php' => array('label' => E::ModuleLang()->Get('action.admin.info_version_php'), 'value' => PHP_VERSION), 'img' => array('label' => E::ModuleLang()->Get('action.admin.info_version_img'), 'value' => $sImgSupport), 'smarty' => array('label' => E::ModuleLang()->Get('action.admin.info_version_smarty'), 'value' => $sSmartyVersion ? $sSmartyVersion : 'n/a'), 'alto' => array('label' => E::ModuleLang()->Get('action.admin.info_version_alto'), 'value' => ALTO_VERSION))), 'site' => array('label' => E::ModuleLang()->Get('action.admin.site_info'), 'data' => array('url' => array('label' => E::ModuleLang()->Get('action.admin.info_site_url'), 'value' => Config::Get('path.root.url')), 'skin' => array('label' => E::ModuleLang()->Get('action.admin.info_site_skin'), 'value' => Config::Get('view.skin', Config::LEVEL_CUSTOM)), 'client' => array('label' => E::ModuleLang()->Get('action.admin.info_site_client'), 'value' => $_SERVER['HTTP_USER_AGENT']), 'empty' => array('label' => '', 'value' => ''))), 'plugins' => array('label' => E::ModuleLang()->Get('action.admin.active_plugins'), 'data' => $aPluginList), 'stats' => array('label' => E::ModuleLang()->Get('action.admin.site_statistics'), 'data' => array('users' => array('label' => E::ModuleLang()->Get('action.admin.site_stat_users'), 'value' => $aSiteStat['users']), 'blogs' => array('label' => E::ModuleLang()->Get('action.admin.site_stat_blogs'), 'value' => $aSiteStat['blogs']), 'topics' => array('label' => E::ModuleLang()->Get('action.admin.site_stat_topics'), 'value' => $aSiteStat['topics']), 'comments' => array('label' => E::ModuleLang()->Get('action.admin.site_stat_comments'), 'value' => $aSiteStat['comments']))));
return $aInfo;
}
示例7: DeleteMresources
/**
* Deletes media resources by ID
*
* @param $aMresources
* @param $bDeleteFiles
* @param $bNoCheckTargets
*
* @return bool
*/
public function DeleteMresources($aMresources, $bDeleteFiles = true, $bNoCheckTargets = false)
{
$aId = $this->_entitiesId($aMresources);
$bResult = true;
if ($aId) {
if ($bDeleteFiles) {
$aMresources = $this->oMapper->GetMresourcesById($aId);
if (!$bNoCheckTargets && $aMresources) {
/** @var ModuleMresource_EntityMresource $oMresource */
foreach ($aMresources as $oMresource) {
// Если число ссылок > 0, то не удаляем
if ($oMresource->getTargetsCount() > 0) {
$iIdx = array_search($oMresource->getId(), $aId);
if ($iIdx !== false) {
unset($aId[$iIdx]);
}
}
}
}
}
$bResult = $this->oMapper->DeleteMresources($aId);
if ($bDeleteFiles) {
if ($bResult && $aMresources && $aId) {
// Удаляем файлы
foreach ($aId as $nId) {
if (isset($aMresources[$nId]) && $aMresources[$nId]->IsFile() && $aMresources[$nId]->CanDelete()) {
if ($aMresources[$nId]->IsImage()) {
E::ModuleImg()->Delete($aMresources[$nId]->GetFile());
} else {
F::File_Delete($aMresources[$nId]->GetFile());
}
}
}
}
}
}
E::ModuleCache()->CleanByTags(array('mresource_update', 'mresource_rel_update'));
return $bResult;
}
示例8: GetDefaultPhotoUrl
/**
* @param int|string $xSize
* @param string $sSex
*
* @return string
*/
public function GetDefaultPhotoUrl($xSize, $sSex)
{
$sPath = E::ModuleUploader()->GetUserAvatarDir(0) . 'user_photo_' . Config::Get('view.skin', Config::LEVEL_CUSTOM) . '_' . $sSex . '.png';
if (strpos($xSize, 'x') !== false) {
list($nW, $nH) = array_map('intval', explode('x', $xSize));
} else {
$nW = $nH = (int) $xSize;
}
$sPath .= '-' . $nW . 'x' . $nH . '.' . pathinfo($sPath, PATHINFO_EXTENSION);
if (Config::Get('module.image.autoresize') && !F::File_Exists($sPath)) {
$sPath = E::ModuleImg()->AutoresizeSkinImage($sPath, 'user_photo', max($nH, $nW));
}
return E::ModuleUploader()->Dir2Url($sPath);
}
示例9: DeletePhoto
/**
* Удаляет фото пользователя
*
* @param ModuleUser_EntityUser $oUser
*/
public function DeletePhoto($oUser)
{
E::ModuleImg()->Delete(E::ModuleUploader()->Url2Dir($oUser->getProfilePhoto()));
}
示例10: getDefaultAvatarUrl
/**
* Returns default avatar of the blog
*
* @param int|string $xSize
*
* @return string
*/
public function getDefaultAvatarUrl($xSize = null)
{
if (!$xSize) {
if (Config::Get('module.user.profile_avatar_size')) {
$xSize = Config::Get('module.user.profile_avatar_size');
} else {
$xSize = self::DEFAULT_AVATAR_SIZE;
}
}
$sPath = E::ModuleUploader()->GetUserAvatarDir(0) . 'avatar_blog_' . Config::Get('view.skin', Config::LEVEL_CUSTOM) . '.png';
$sResizePath = null;
if ($xSize) {
if ($sRealSize = C::Get('module.uploader.images.profile_avatar.size.' . $xSize)) {
$xSize = $sRealSize;
}
if (is_string($xSize) && $xSize[0] == 'x') {
$xSize = substr($xSize, 1);
}
if ($iSize = intval($xSize)) {
$sResizePath = $sPath . '-' . $iSize . 'x' . $iSize . '.' . strtolower(pathinfo($sPath, PATHINFO_EXTENSION));
if (Config::Get('module.image.autoresize') && !F::File_Exists($sResizePath)) {
$sResizePath = E::ModuleImg()->AutoresizeSkinImage($sResizePath, 'avatar_blog', $iSize ? $iSize : null);
}
}
}
if ($sResizePath) {
$sPath = $sResizePath;
} elseif (!F::File_Exists($sPath)) {
$sPath = E::ModuleImg()->AutoresizeSkinImage($sPath, 'avatar_blog', null);
}
return E::ModuleUploader()->Dir2Url($sPath);
}
示例11: ResizeTargetImage
/**
* Возвращает URL изображения по новому размеру
*
* @param string $sOriginalPath
* @param string $xSize
*
* @return string
*/
public function ResizeTargetImage($sOriginalPath, $xSize)
{
$sModSuffix = F::File_ImgModSuffix($xSize, pathinfo($sOriginalPath, PATHINFO_EXTENSION));
$sUrl = $sOriginalPath . $sModSuffix;
if (Config::Get('module.image.autoresize')) {
$sFile = $this->Url2Dir($sUrl);
if (!F::File_Exists($sFile)) {
E::ModuleImg()->Duplicate($sFile);
}
}
if ($sUrl[0] == '@') {
$sUrl = Config::Get('path.root.url') . substr($sUrl, 1);
}
return $sUrl;
}
示例12: DeleteAvatar
/**
* Удаляет аватар блога с сервера
*
* @param ModuleBlog_EntityBlog $oBlog Блог
*/
public function DeleteAvatar($oBlog)
{
if ($oBlog) {
// * Если аватар есть, удаляем его и его рейсайзы (старая схема)
if ($sUrl = $oBlog->getAvatar()) {
E::ModuleImg()->Delete(E::ModuleUploader()->Url2Dir($sUrl));
}
// Deletes blog avatar from media resources
E::ModuleMresource()->DeleteMresourcesRelByTarget('blog_avatar', $oBlog->getid());
}
}
示例13: ResizeTargetImage
/**
* Возвращает URL изображения по новому размеру
*
* @param string $sOriginalPath
* @param string $xSize
*
* @return string
*/
public function ResizeTargetImage($sOriginalPath, $xSize)
{
$sModSuffix = F::File_ImgModSuffix($xSize, pathinfo($sOriginalPath, PATHINFO_EXTENSION));
$sUrl = $sOriginalPath . $sModSuffix;
if (Config::Get('module.image.autoresize')) {
$sFile = $this->Url2Dir($sUrl);
if ($sFile && !F::File_Exists($sFile)) {
E::ModuleImg()->Duplicate($sFile);
}
}
$sUrl = $this->CompleteUrl($sUrl);
return $sUrl;
}
示例14: 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);
}
示例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;
}