本文整理汇总了PHP中E::ModuleUploader方法的典型用法代码示例。如果您正苦于以下问题:PHP E::ModuleUploader方法的具体用法?PHP E::ModuleUploader怎么用?PHP E::ModuleUploader使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类E
的用法示例。
在下文中一共展示了E::ModuleUploader方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: Store
/**
* Saves file in storage
*
* @param string $sFile
* @param string $sDestination
*
* @return bool|ModuleUploader_EntityItem
*/
public function Store($sFile, $sDestination = null)
{
if (!$sDestination) {
$oUser = E::ModuleUser()->GetUserCurrent();
if (!$oUser) {
return false;
}
$sDestination = E::ModuleUploader()->GetUserFileDir($oUser->getId());
}
if ($sDestination) {
$sMimeType = ModuleImg::MimeType($sFile);
$bIsImage = strpos($sMimeType, 'image/') === 0;
$iUserId = E::UserId();
$sExtension = F::File_GetExtension($sFile, true);
if (substr($sDestination, -1) == '/') {
$sDestinationDir = $sDestination;
} else {
$sDestinationDir = dirname($sDestination) . '/';
}
$sUuid = ModuleMresource::CreateUuid('file', $sFile, md5_file($sFile), $iUserId);
$sDestination = $sDestinationDir . $sUuid . '.' . $sExtension;
if ($sStoredFile = E::ModuleUploader()->Move($sFile, $sDestination, true)) {
$oStoredItem = E::GetEntity('Uploader_Item', array('storage' => 'file', 'uuid' => $sUuid, 'original_filename' => basename($sFile), 'url' => $this->Dir2Url($sStoredFile), 'file' => $sStoredFile, 'user_id' => $iUserId, 'mime_type' => $sMimeType, 'is_image' => $bIsImage));
return $oStoredItem;
}
}
return false;
}
示例2: getImageUrl
/**
* @param null $xSize
*
* @return string|null
*/
public function getImageUrl($xSize = null)
{
$sUrl = $this->getPathUrl();
if ($sUrl) {
$sUrl = E::ModuleUploader()->CompleteUrl($sUrl);
if (!$xSize) {
return $sUrl;
}
return E::ModuleUploader()->ResizeTargetImage($sUrl, $xSize);
}
return null;
}
示例3: getImageUrl
/**
* @param null $xSize
*
* @return string|null
*/
public function getImageUrl($xSize = null)
{
$sUrl = $this->getPathUrl();
if ($sUrl) {
if (strpos($sUrl, '@') === 0) {
$sUrl = Config::Get('path.root.url') . substr($sUrl, 1);
}
if (!$xSize) {
return $sUrl;
}
return E::ModuleUploader()->ResizeTargetImage($sUrl, $xSize);
}
return null;
}
示例4: LinkTempResource
/**
* Прикрепляет временный ресурс к вновь созданному объекту
*
* @param string $sTargetType
* @param string $sTargetId
* @param $sTargetTmp
*
* @return bool|ModuleMresource_EntityMresource
*/
public function LinkTempResource($sTargetType, $sTargetId, $sTargetTmp)
{
if ($sTargetTmp && E::IsUser()) {
$sNewPath = E::ModuleUploader()->GetUserImageDir(E::UserId(), true, false);
$aMresourceRel = $this->GetMresourcesRelByTargetAndUser($sTargetType, 0, E::UserId());
if ($aMresourceRel) {
$oResource = array_shift($aMresourceRel);
$sOldPath = $oResource->GetFile();
$oStoredFile = E::ModuleUploader()->Store($sOldPath, $sNewPath);
/** @var ModuleMresource_EntityMresource $oResource */
$oResource = $this->GetMresourcesByUuid($oStoredFile->getUuid());
if ($oResource) {
$oResource->setUrl($this->NormalizeUrl(E::ModuleUploader()->GetTargetUrl($sTargetType, $sTargetId)));
$oResource->setType($sTargetType);
$oResource->setUserId(E::UserId());
// 4. В свойство поля записать адрес картинки
$this->UnlinkFile($sTargetType, 0, E::UserId());
$this->AddTargetRel($oResource, $sTargetType, $sTargetId);
return $oResource;
}
}
}
return false;
}
示例5: 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);
}
示例6: GetOptions
/**
* @param string $sFileExtension
* @param string $sPreset
* @param array $aOptions
*
* @return array
*/
public function GetOptions($sFileExtension = '*', $sPreset = null, $aOptions = array())
{
if (is_array($sPreset) && empty($aOptions)) {
$aOptions = $sPreset;
$sPreset = null;
}
if (!$sPreset && $sPreset !== 'default') {
$sPreset = 'images.' . $sPreset;
}
$aConfigOptions = E::ModuleUploader()->GetConfig($sFileExtension, $sPreset);
if ($aConfigOptions && $aOptions) {
/** @var DataArray $aParams */
$aOptions = F::Array_Merge($aConfigOptions, $aOptions);
} elseif (!$aOptions) {
$aOptions = $aConfigOptions;
}
return $aOptions;
}
示例7: smarty_function_img
/**
* Выводит изображение и прикрепляет его ко временному объекту
*
* @param $aParams
* @param Smarty $oSmarty
* @return string
*/
function smarty_function_img($aParams, &$oSmarty = NULL)
{
// Пропущен тип объекта
if (!isset($aParams['attr']['target-type'])) {
trigger_error("img: missing 'target-type' parameter", E_USER_WARNING);
return '';
}
// Пропущен идентификатор объекта
if (!isset($aParams['attr']['target-id'])) {
trigger_error("img: missing 'target-id' parameter", E_USER_WARNING);
return '';
}
// Получим тип объекта
$sTargetType = $aParams['attr']['target-type'];
unset($aParams['attr']['target-type']);
// Получим ид объекта
$iTargetId = intval($aParams['attr']['target-id']);
unset($aParams['attr']['target-id']);
// Получим ид объекта
$sCrop = isset($aParams['attr']['crop']) ? $aParams['attr']['crop'] : FALSE;
unset($aParams['attr']['crop']);
// Получим изображение по временному ключу, или создадим этот ключ
if (($sTargetTmp = E::ModuleSession()->GetCookie(ModuleUploader::COOKIE_TARGET_TMP)) && E::IsUser()) {
// Продлим куку
E::ModuleSession()->SetCookie(ModuleUploader::COOKIE_TARGET_TMP, $sTargetTmp, 'P1D', FALSE);
// Получим предыдущее изображение и если оно было, установим в качестве текущего
// Получим и удалим все ресурсы
$aMresourceRel = E::ModuleMresource()->GetMresourcesRelByTargetAndUser($sTargetType, $iTargetId, E::UserId());
if ($aMresourceRel) {
/** @var ModuleMresource_EntityMresource $oResource */
$oMresource = array_shift($aMresourceRel);
if ($oMresource) {
if ($sCrop) {
$aParams['attr']['src'] = E::ModuleUploader()->ResizeTargetImage($oMresource->GetUrl(), $sCrop);
} else {
$aParams['attr']['src'] = $oMresource->GetUrl();
}
$oSmarty->assign("bImageIsTemporary", TRUE);
}
}
} else {
// Куки нет, это значит, что пользователь первый раз создает этот тип
// и старой картинки просто нет
if ($iTargetId == '0') {
E::ModuleSession()->SetCookie(ModuleUploader::COOKIE_TARGET_TMP, F::RandomStr(), 'P1D', FALSE);
} else {
E::ModuleSession()->DelCookie(ModuleUploader::COOKIE_TARGET_TMP);
$sImage = E::ModuleUploader()->GetTargetImageUrl($sTargetType, $iTargetId, $sCrop);
if ($sImage) {
$aParams['attr']['src'] = $sImage;
$oSmarty->assign("bImageIsTemporary", TRUE);
}
}
}
// Формируем строку атрибутов изображения
$sAttr = '';
if (isset($aParams['attr']) && is_array($aParams['attr'])) {
foreach ($aParams['attr'] as $sAttrName => $sAttrValue) {
$sAttr .= ' ' . $sAttrName . '="' . $sAttrValue . '"';
}
}
// Сформируем тег изображения
$sImageTag = '<img ' . $sAttr . '/>';
return $sImageTag;
}
示例8: DeletePhoto
/**
* Удаляет фото пользователя
*
* @param ModuleUser_EntityUser $oUser
*
* @return bool
*/
public function DeletePhoto($oUser)
{
$bResult = true;
if ($sPhoto = $oUser->getProfilePhoto()) {
$sFile = E::ModuleUploader()->Url2Dir($sPhoto);
$bResult = E::ModuleImg()->Delete($sFile);
if ($bResult) {
$oUser->setProfilePhoto(null);
E::ModuleUser()->Update($oUser);
}
}
return $bResult;
}
示例9: 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);
}
示例10: EventSort
/**
* Меняет сортировку элементов фотосета
*/
public function EventSort()
{
// * Устанавливаем формат Ajax ответа
E::ModuleViewer()->SetResponseAjax('json');
// Проверяем, целевой объект и права на его редактирование
if (!($oTarget = E::ModuleUploader()->CheckAccessAndGetTarget($sTargetType = F::GetRequest('target', FALSE), $sTargetId = F::GetRequest('target_id', FALSE)))) {
E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('not_access'), E::ModuleLang()->Get('error'));
return;
}
if (!($aOrder = F::GetRequest('order', FALSE))) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('not_access'), E::ModuleLang()->Get('error'));
return;
}
if (!is_array($aOrder)) {
E::ModuleMessage()->AddError(E::ModuleLang()->Get('not_access'), E::ModuleLang()->Get('error'));
return;
}
E::ModuleMresource()->UpdateSort(array_flip($aOrder), $sTargetType, $sTargetId);
E::ModuleMessage()->AddNoticeSingle(E::ModuleLang()->Get('uploader_sort_changed'));
}
示例11: smarty_function_imgs
/**
* Выводит изображение и прикрепляет его ко временному объекту
*
* @param $aParams
* @param Smarty $oSmarty
* @return string
*/
function smarty_function_imgs($aParams, &$oSmarty = NULL)
{
// Пропущен тип объекта
if (!isset($aParams['target-type'])) {
trigger_error("img: missing 'target-type' parameter", E_USER_WARNING);
return '';
}
// Пропущен идентификатор объекта
if (!isset($aParams['target-id'])) {
trigger_error("img: missing 'target-id' parameter", E_USER_WARNING);
return '';
}
// Получим тип объекта
$sTargetType = $aParams['target-type'];
unset($aParams['target-type']);
// Получим ид объекта
$iTargetId = intval($aParams['target-id']);
unset($aParams['target-id']);
// Получим параметры обрезки объекта
$sCrop = isset($aParams['crop']) ? $aParams['crop'] : FALSE;
unset($aParams['crop']);
// Получим ид объекта
$sTemplate = isset($aParams['template']) ? $aParams['template'] : FALSE;
unset($aParams['template']);
// Получим изображение по временному ключу, или создадим этот ключ
$aParams['src'] = array();
if (($sTargetTmp = E::ModuleSession()->GetCookie(ModuleUploader::COOKIE_TARGET_TMP)) && E::IsUser()) {
// Продлим куку
E::ModuleSession()->SetCookie(ModuleUploader::COOKIE_TARGET_TMP, $sTargetTmp, 'P1D', FALSE);
} else {
// Куки нет, это значит, что пользователь первый раз создает этот тип
// и старой картинки просто нет
if ($iTargetId == '0') {
E::ModuleSession()->SetCookie(ModuleUploader::COOKIE_TARGET_TMP, F::RandomStr(), 'P1D', FALSE);
} else {
E::ModuleSession()->DelCookie(ModuleUploader::COOKIE_TARGET_TMP);
}
}
// Получим предыдущее изображение и если оно было, установим в качестве текущего
// Получим и удалим все ресурсы
$aMresourceRel = E::ModuleMresource()->GetMresourcesRelByTargetAndUser($sTargetType, $iTargetId, E::UserId());
if ($aMresourceRel && is_array($aMresourceRel)) {
/** @var ModuleMresource_EntityMresource $oResource */
foreach ($aMresourceRel as $oMresource) {
if ($sCrop) {
$aParams['src'][$oMresource->getMresourceId()] = array('url' => E::ModuleUploader()->ResizeTargetImage($oMresource->GetUrl(), $sCrop), 'cover' => $oMresource->IsCover());
} else {
$aParams['src'][$oMresource->getMresourceId()] = array('url' => $oMresource->GetUrl(), 'cover' => $oMresource->IsCover());
}
$oSmarty->assign("bHasImage", TRUE);
}
}
// Создадим массив картинок
$sItems = '';
if ($aParams['src']) {
foreach ($aParams['src'] as $sID => $aData) {
$sItems .= str_replace(array('ID', 'uploader_item_SRC', 'MARK_AS_PREVIEW'), array($sID, $aData['url'], $aData['cover'] ? E::ModuleLang()->Get('topic_photoset_is_preview') : E::ModuleLang()->Get('topic_photoset_mark_as_preview')), $sTemplate);
}
}
return $sItems;
}
示例12: GetPhotoUrl
/**
* Возвращает полный URL до фото профиля
*
* @param int|string $xSize - рвзмер (240 | '240x320')
*
* @return string
*/
public function GetPhotoUrl($xSize = null)
{
$sPropKey = '_photo_url_' . $xSize;
$sUrl = $this->getProp($sPropKey);
if (is_null($sUrl)) {
if (!$xSize) {
if (Config::Get('module.user.profile_photo_size')) {
$xSize = Config::Get('module.user.profile_photo_size');
} else {
$xSize = self::DEFAULT_PHOTO_SIZE;
}
}
if ($sRealSize = C::Get('module.uploader.images.profile_photo.size.' . $xSize)) {
$xSize = $sRealSize;
}
$sUrl = $this->_getProfileImageUrl('profile_photo', $xSize);
if (!$sUrl) {
// Old version compatibility
$sUrl = $this->getProfilePhoto();
if ($sUrl) {
if ($xSize) {
$sUrl = E::ModuleUploader()->ResizeTargetImage($sUrl, $xSize);
}
} else {
$sUrl = $this->GetDefaultPhotoUrl($xSize);
}
}
$this->setProp($sPropKey, $sUrl);
}
return $sUrl;
}
示例13: GetOptions
/**
* @param string $sFileExtension
* @param array $aOptions
*
* @return array
*/
public function GetOptions($sFileExtension = '*', $aOptions = array())
{
$aConfigOptions = E::ModuleUploader()->GetConfig($sFileExtension);
if ($aConfigOptions && $aOptions) {
/** @var DataArray $aParams */
$aOptions = F::Array_Merge($aConfigOptions, $aOptions);
} elseif (!$aOptions) {
$aOptions = $aConfigOptions;
}
return $aOptions;
}
示例14: getImgSize
public function getImgSize($sSize = null)
{
$aSize = $this->getProp('_size-' . $sSize . '-imgsize');
if (!$aSize) {
$sFile = $this->getProp('_size-' . $sSize . '-file');
if (!$sFile) {
$sUrl = $this->getLink($sSize);
$sFile = E::ModuleUploader()->Url2Dir($sUrl);
$this->setProp('_size-' . $sSize . '-file', $sFile);
}
if ($sFile && F::File_Exists($sFile)) {
$aSize = getimagesize($sFile);
$this->setProp('_size-' . $sSize . '-imgsize', $aSize);
}
}
return $aSize;
}
示例15: getWebPath
/**
* @param bool $xSize
*
* @return string
*/
public function getWebPath($xSize = FALSE)
{
$sUrl = E::ModuleUploader()->CompleteUrl($this->getPathUrl());
if (!$xSize) {
return $sUrl;
}
return E::ModuleUploader()->ResizeTargetImage($sUrl, $xSize);
}