本文整理汇总了PHP中func_generator函数的典型用法代码示例。如果您正苦于以下问题:PHP func_generator函数的具体用法?PHP func_generator怎么用?PHP func_generator使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了func_generator函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。
示例1: __construct
/**
* Инициализация
*
* @param string $sFileName Путь до файла лога профайлера
* @param bool $bEnable Статус активности
*/
protected function __construct($sFileName, $bEnable)
{
$this->bEnable = $bEnable;
$this->sFileName = $sFileName;
$this->sRequestId = func_generator(32);
$this->iTimeId = 0;
}
开发者ID:cbrspc,项目名称:LIVESTREET-1-DISTRIB,代码行数:13,代码来源:Profiler.class.php
示例2: EventReceptiondeskAdd
protected function EventReceptiondeskAdd()
{
$this->Lang_AddLangJs(array('topic_photoset_photo_delete', 'topic_photoset_mark_as_preview', 'topic_photoset_photo_delete_confirm', 'topic_photoset_is_preview', 'topic_photoset_upload_choose', 'plugin.receptiondesk.receptiondesk_admin_question_create_author_files_remove', 'plugin.receptiondesk.receptiondesk_admin_question_create_author_files_remove_confirm'));
$this->Viewer_AddHtmlTitle($this->Lang_Get('plugin.receptiondesk.receptiondesk_admin_question_create_title'));
$this->sMenuItemSelect = 'receptiondesk_create';
if (empty($_COOKIE['ls_receptiondesk_file_target_tmp'])) {
setcookie('ls_receptiondesk_file_target_tmp', func_generator(), time() + 24 * 3600, Config::Get('sys.cookie.path'), Config::Get('sys.cookie.host'));
} else {
setcookie('ls_receptiondesk_file_target_tmp', $_COOKIE['ls_receptiondesk_file_target_tmp'], time() + 24 * 3600, Config::Get('sys.cookie.path'), Config::Get('sys.cookie.host'));
$this->Viewer_Assign('aQuestionFiles', $this->PluginReceptiondesk_Tools_getFilesByTargetTmp($_COOKIE['ls_receptiondesk_file_target_tmp']));
}
$this->SetTemplateAction('create');
}
开发者ID:olegverstka,项目名称:kprf.dev,代码行数:13,代码来源:ActionReceptiondesk.class.php
示例3: EventSubscriptionAjaxSetSubscription
protected function EventSubscriptionAjaxSetSubscription()
{
$this->Viewer_SetResponseAjax('json');
require_once Config::Get('path.root.engine') . '/lib/external/XXTEA/encrypt.php';
if (!($sSubscriptionMail = getRequestStr('subscription_mail'))) {
$this->Message_AddErrorSingle($this->Lang_Get('plugin.subscription.subscription_mail_error_empty'), $this->Lang_Get('error'));
return;
}
$oSubscription = Engine::GetEntity('PluginSubscription_ModuleSubscription_EntitySubscription');
$oSubscription->_setValidateScenario('subscription_mail');
$oSubscription->setMail($sSubscriptionMail);
$oSubscription->_Validate();
if ($oSubscription->_hasValidateErrors()) {
$this->Message_AddErrorSingle($oSubscription->_getValidateError());
return false;
}
if ($oSubscription = $this->PluginSubscription_Subscription_GetSubscriptionByMail($sSubscriptionMail)) {
if ($oSubscription->getUnsubscribeHash()) {
$sUnsubscribeCode = $oSubscription->getUnsubscribeHash();
$sUnsubscribeCode .= base64_encode(xxtea_encrypt($oSubscription->getMail(), $oSubscription->getUnsubscribeHash()));
$sUnsubscribeCode = str_replace(array('/', '+'), array('{', '}'), $sUnsubscribeCode);
$this->Notify_Send($oSubscription->getMail(), 'notify.subscription_unsubscription.tpl', $this->Lang_Get('plugin.subscription.subscription_mail_message_subject'), array('sUnsubscribeCode' => $sUnsubscribeCode), 'subscription');
$this->Viewer_AssignAjax('sText', $this->Lang_Get('plugin.subscription.subscription_block_subscription_submit_unsubscrib_ok'));
} else {
if ($oSubscription->getSubscribeDate()) {
$this->Viewer_AssignAjax('sText', $this->Lang_Get('plugin.subscription.subscription_mail_error_used'));
} else {
$sSubscribeCode = $oSubscription->getSubscribeHash();
$sSubscribeCode .= base64_encode(xxtea_encrypt($oSubscription->getMail(), $oSubscription->getSubscribeHash()));
$sSubscribeCode = str_replace(array('/', '+'), array('{', '}'), $sSubscribeCode);
$this->Notify_Send($oSubscription->getMail(), 'notify.subscription_subscription.tpl', $this->Lang_Get('plugin.subscription.subscription_mail_message_subject'), array('sSubscribeCode' => $sSubscribeCode), 'subscription');
$this->Viewer_AssignAjax('sText', $this->Lang_Get('plugin.subscription.subscription_block_subscription_submit_repeatedly_ok'));
}
}
} else {
$oSubscription = Engine::GetEntity('PluginSubscription_ModuleSubscription_EntitySubscription');
$oSubscription->setMail($sSubscriptionMail);
$oSubscription->setSubscribeHash(func_generator());
if ($this->PluginSubscription_Subscription_AddSubscription($oSubscription)) {
$sSubscribeCode = $oSubscription->getSubscribeHash();
$sSubscribeCode .= base64_encode(xxtea_encrypt($oSubscription->getMail(), $oSubscription->getSubscribeHash()));
$sSubscribeCode = str_replace(array('/', '+'), array('{', '}'), $sSubscribeCode);
$this->Notify_Send($oSubscription->getMail(), 'notify.subscription_subscription.tpl', $this->Lang_Get('plugin.subscription.subscription_mail_message_subject'), array('sSubscribeCode' => $sSubscribeCode), 'subscription');
$this->Viewer_AssignAjax('sText', $this->Lang_Get('plugin.subscription.subscription_block_subscription_submit_ok'));
} else {
$this->Viewer_AssignAjax('sText', $this->Lang_Get('system_error'));
}
}
return true;
}
开发者ID:olegverstka,项目名称:kprf.dev,代码行数:50,代码来源:ActionAjax.class.php
示例4: EventSubscriptionNewsSubscribe
protected function EventSubscriptionNewsSubscribe()
{
if (!($sString = $this->GetParamEventMatch(1, 0))) {
return parent::EventNotFound();
}
$sString = str_replace(array('{', '}'), array('/', '+'), $sString);
$sHash = substr($sString, 0, 10);
require_once Config::Get('path.root.engine') . '/lib/external/XXTEA/encrypt.php';
$sMail = xxtea_decrypt(base64_decode(substr($sString, 10)), $sHash);
if (!($oSubscription = $this->PluginSubscription_Subscription_GetSubscriptionByMail($sMail, $sHash))) {
return parent::EventNotFound();
}
$oSubscription->setUnsubscribeHash(func_generator());
$oSubscription->setSubscribeDate(date("Y-m-d H:i:s"));
if (!$this->PluginSubscription_Subscription_UpdateSubscription($oSubscription)) {
return parent::EventNotFound();
}
$this->SetTemplateAction('news_subscribe');
}
开发者ID:olegverstka,项目名称:kprf.dev,代码行数:19,代码来源:ActionSubscription.class.php
示例5: CreateFilePreview
/**
* Создает превью у файла для определенного типа
*
* @param $oMedia
* @param $oTarget
*
* @return bool|string
*/
public function CreateFilePreview($oMedia, $oTarget)
{
if (!$this->GetTargetTypeParam($oTarget->getTargetType(), 'allow_preview')) {
return false;
}
/**
* Нужно удалить прошлое превью (если оно есть)
*/
$this->RemoveFilePreview($oMedia, $oTarget);
if ($oMedia->getType() == self::MEDIA_TYPE_IMAGE) {
$aParams = $this->Image_BuildParams('media.preview_' . $oTarget->getTargetType());
if (!($oImage = $this->Image_OpenFrom($oMedia->getFilePath(), $aParams))) {
return $this->Image_GetLastError();
}
/**
* Сохраняем во временный файл
*/
if (!($sFileTmp = $oImage->saveTmp())) {
return $this->Image_GetLastError();
}
unset($oImage);
/**
* Получаем список необходимых размеров превью
*/
$aSizes = $this->GetConfigParam('image.preview.sizes', $oTarget->getTargetType());
/**
* Каталог для сохранения превью
*/
$sPath = $this->GetSaveDir($oTarget->getTargetType(), $oTarget->getTargetId(), 'preview');
/**
* Уникальное имя файла
*/
$sFileName = func_generator(20);
/**
* Генерируем варианты с необходимыми размерами
*/
$sFileLast = $this->GenerateImageBySizes($sFileTmp, $sPath, $sFileName, $aSizes, $aParams);
$aSizeLast = end($aSizes);
$sReplaceSize = '_' . $aSizeLast['w'] . 'x' . $aSizeLast['h'];
if ($aSizeLast['crop']) {
$sReplaceSize .= 'crop';
}
$sFileLast = str_replace($sReplaceSize, '', $sFileLast);
/**
* Теперь можно удалить временный файл
*/
$this->Fs_RemoveFileLocal($sFileTmp);
/**
* Сохраняем данные во связи
*/
$oTarget->setDataOne('image_preview_sizes', $aSizes);
$oTarget->setDataOne('image_preview', $sFileLast);
$oTarget->setIsPreview(1);
$oTarget->Update();
/**
* Уведомляем объект о создании нового превью
*/
if ($oTarget->getTargetId()) {
$this->NotifyCreatePreviewTarget($oTarget->getTargetType(), $oTarget->getTargetId(), $oTarget);
}
return true;
}
}
开发者ID:pinguo-liguo,项目名称:livestreet,代码行数:71,代码来源:Media.class.php
示例6: EventAdd
/**
* Добавление ссылки
*
* @return unknown
*/
protected function EventAdd()
{
/**
* Проверяем авторизован ли юзер
*/
if (!$this->User_IsAuthorization()) {
$this->Message_AddErrorSingle($this->Lang_Get('not_access'), $this->Lang_Get('error'));
return Router::Action('error');
}
/**
* Меню
*/
$this->sMenuSubItemSelect = 'add';
/**
* Загружаем переменные в шаблон
*/
$this->Viewer_Assign('aBlogsAllow', $this->Blog_GetBlogsAllowByUser($this->oUserCurrent));
$this->Viewer_AddHtmlTitle($this->Lang_Get('topic_photoset_title_create'));
// Если нет временного ключа для нового топика, то генерируеи. если есть, то загружаем фото по этому ключу
if (empty($_COOKIE['ls_photoset_target_tmp'])) {
setcookie('ls_photoset_target_tmp', func_generator(), time() + 24 * 3600, Config::Get('sys.cookie.path'), Config::Get('sys.cookie.host'));
} else {
setcookie('ls_photoset_target_tmp', $_COOKIE['ls_photoset_target_tmp'], time() + 24 * 3600, Config::Get('sys.cookie.path'), Config::Get('sys.cookie.host'));
$this->Viewer_Assign('aPhotos', $this->Topic_getPhotosByTargetTmp($_COOKIE['ls_photoset_target_tmp']));
}
/**
* Обрабатываем отправку формы
*/
return $this->SubmitAdd();
}
开发者ID:randomtoy,项目名称:livestreet,代码行数:35,代码来源:ActionPhotoset.class.php
示例7: EventAjaxUploadAvatar
/**
* Загрузка аватара в блог
*/
protected function EventAjaxUploadAvatar()
{
/**
* Устанавливаем формат Ajax ответа
*/
$this->Viewer_SetResponseAjax('json');
if (!isset($_FILES['photo']['tmp_name'])) {
return $this->EventErrorDebug();
}
if (!($oBlog = $this->Blog_GetBlogById(getRequestStr('target_id')))) {
return $this->EventErrorDebug();
}
if (!$oBlog->isAllowEdit()) {
return $this->EventErrorDebug();
}
/**
* Копируем загруженный файл
*/
$sFileTmp = Config::Get('sys.cache.dir') . func_generator();
if (!move_uploaded_file($_FILES['photo']['tmp_name'], $sFileTmp)) {
return false;
}
/**
* Если объект изображения не создан, возвращаем ошибку
*/
if (!($oImage = $this->Image_Open($sFileTmp))) {
$this->Fs_RemoveFileLocal($sFileTmp);
$this->Message_AddError($this->Image_GetLastError());
return;
}
/**
* Ресайзим и сохраняем именьшенную копию
* Храним две копии - мелкую для показа пользователю и крупную в качестве исходной для ресайза
*/
$sDir = Config::Get('path.uploads.images') . "/tmp/blog/{$oBlog->getId()}";
if ($sFileOriginal = $oImage->resize(1000, null)->saveSmart($sDir, 'original')) {
if ($sFilePreview = $oImage->resize(350, null)->saveSmart($sDir, 'preview')) {
list($iOriginalWidth, $iOriginalHeight) = @getimagesize($this->Fs_GetPathServer($sFileOriginal));
list($iWidth, $iHeight) = @getimagesize($this->Fs_GetPathServer($sFilePreview));
/**
* Сохраняем в сессии временный файл с изображением
*/
$this->Session_Set('sBlogAvatarFileTmp', $sFileOriginal);
$this->Session_Set('sBlogAvatarFilePreviewTmp', $sFilePreview);
$this->Viewer_AssignAjax('path', $this->Fs_GetPathWeb($sFilePreview));
$this->Viewer_AssignAjax('original_width', $iOriginalWidth);
$this->Viewer_AssignAjax('original_height', $iOriginalHeight);
$this->Viewer_AssignAjax('width', $iWidth);
$this->Viewer_AssignAjax('height', $iHeight);
$this->Fs_RemoveFileLocal($sFileTmp);
return;
}
}
$this->Message_AddError($this->Image_GetLastError());
$this->Fs_RemoveFileLocal($sFileTmp);
}
开发者ID:pinguo-liguo,项目名称:livestreet,代码行数:59,代码来源:ActionBlog.class.php
示例8: EventReminder
/**
* Обработка напоминания пароля
*
*/
protected function EventReminder()
{
$this->Viewer_AddHtmlTitle($this->Lang_Get('password_reminder'));
if ($this->GetParam(0) == 'send') {
$this->SetTemplateAction('reminder_send');
return;
}
/**
* Проверка кода на восстановление пароля и генерация нового пароля
*/
if (func_check($this->GetParam(0), 'md5')) {
if ($oReminder = $this->User_GetReminderByCode($this->GetParam(0))) {
if (!$oReminder->getIsUsed() and strtotime($oReminder->getDateExpire()) > time() and $oUser = $this->User_GetUserById($oReminder->getUserId())) {
$sNewPassword = func_generator(7);
$oUser->setPassword(func_encrypt($sNewPassword));
if ($this->User_Update($oUser)) {
$oReminder->setDateUsed(date("Y-m-d H:i:s"));
$oReminder->setIsUsed(1);
$this->User_UpdateReminder($oReminder);
$this->Notify_SendReminderPassword($oUser, $sNewPassword);
$this->SetTemplateAction('reminder_confirm');
return;
}
}
}
$this->Message_AddErrorSingle($this->Lang_Get('password_reminder_bad_code'), $this->Lang_Get('error'));
return Router::Action('error');
}
/**
* Обрабатываем запрос на смену пароля
*/
if (isPost('submit_reminder')) {
if (func_check(getRequest('mail'), 'mail') and $oUser = $this->User_GetUserByMail(getRequest('mail'))) {
/**
* Формируем и отправляем ссылку на смену пароля
*/
$oReminder = Engine::GetEntity('User_Reminder');
$oReminder->setCode(func_generator(32));
$oReminder->setDateAdd(date("Y-m-d H:i:s"));
$oReminder->setDateExpire(date("Y-m-d H:i:s", time() + 60 * 60 * 24 * 7));
$oReminder->setDateUsed(null);
$oReminder->setIsUsed(0);
$oReminder->setUserId($oUser->getId());
if ($this->User_AddReminder($oReminder)) {
$this->Notify_SendReminderCode($oUser, $oReminder);
Router::Location(Router::GetPath('login') . 'reminder/send/');
}
} else {
$this->Message_AddError($this->Lang_Get('password_reminder_bad_email'), $this->Lang_Get('error'));
}
}
}
开发者ID:lifecom,项目名称:Huddlebuddle,代码行数:56,代码来源:ActionLogin.class.php
示例9: saveSmart
/**
* Сохраняет изображения в файл
*
* @param string $sDir Директория куда нужно сохранить изображение относительно корня сайта (path.root.server)
* @param string $sFile Имя файла для сохранения, без расширения (расширение подставляется автоматически в зависимости от типа изображения)
*
* @return bool | string При успешном сохранении возвращает полный путь до файла
*/
public function saveSmart($sDir, $sFile)
{
if (!($oImage = $this->getImage())) {
return false;
}
try {
$sFormat = $this->getParam('format_auto') && $this->getFormat() ? $this->getFormat() : $this->getParam('format');
$sFileTmp = Config::Get('path.tmp.server') . DIRECTORY_SEPARATOR . func_generator(20);
$oImage->save($sFileTmp, array('format' => $sFormat, 'quality' => $this->getParam('quality')));
$sFile .= '.' . $sFormat;
return $this->Image_SaveFileSmart($sFileTmp, $sDir, $sFile, 0666, true);
} catch (Exception $e) {
$this->setLastError($e->getMessage());
// TODO: fix exception for Gd driver
if (strpos($e->getFile(), 'Imagine' . DIRECTORY_SEPARATOR . 'Gd')) {
restore_error_handler();
}
}
return false;
}
开发者ID:KaMaToZzz,项目名称:livestreet-framework,代码行数:28,代码来源:Image.entity.class.php
示例10: EventUploadAvatar
/**
* Загрузка временной картинки для аватара
*/
protected function EventUploadAvatar()
{
/**
* Устанавливаем формат Ajax ответа
*/
$this->Viewer_SetResponseAjax('jsonIframe', false);
if (!isset($_FILES['avatar']['tmp_name'])) {
return false;
}
/**
* Копируем загруженный файл
*/
$sFileTmp = Config::Get('sys.cache.dir') . func_generator();
if (!move_uploaded_file($_FILES['avatar']['tmp_name'], $sFileTmp)) {
return false;
}
/**
* Ресайзим и сохраняем уменьшенную копию
*/
$sDir = Config::Get('path.uploads.images') . "/tmp/avatars/{$this->oUserCurrent->getId()}";
if ($sFileAvatar = $this->Image_Resize($sFileTmp, $sDir, 'original', Config::Get('view.img_max_width'), Config::Get('view.img_max_height'), 200, null, true)) {
/**
* Зписываем в сессию
*/
$this->Session_Set('sAvatarFileTmp', $sFileAvatar);
$this->Viewer_AssignAjax('sTmpFile', $this->Image_GetWebPath($sFileAvatar));
} else {
$this->Message_AddError($this->Image_GetLastError(), $this->Lang_Get('error'));
}
unlink($sFileTmp);
}
开发者ID:cbrspc,项目名称:LIVESTREET-1-DISTRIB,代码行数:34,代码来源:ActionSettings.class.php
示例11: saveSmart
/**
* Сохраняет изображение в файл
*
* @param string $sDir Директория куда нужно сохранить изображение относительно корня сайта (path.root.server)
* @param string $sFile Имя файла для сохранения, без расширения (расширение подставляется автоматически в зависимости от типа изображения)
* @param array $aParamsSave Дополнительные опции сохранения, например, не делать вотермарк
*
* @return bool | string При успешном сохранении возвращает полный путь до файла
*/
public function saveSmart($sDir, $sFile, $aParamsSave = array())
{
$_this = $this;
return $this->callExceptionMethod(function ($oImage) use($_this, $sDir, $sFile, $aParamsSave) {
$sFormat = $_this->getParam('format_auto') && $_this->getFormat() ? $_this->getFormat() : $_this->getParam('format');
$sFileTmp = Config::Get('path.tmp.server') . DIRECTORY_SEPARATOR . func_generator(20);
$_this->internalSave($sFileTmp, $sFormat, $aParamsSave);
$sFile .= '.' . $sFormat;
return $_this->Image_SaveFileSmart($sFileTmp, $sDir, $sFile, 0666, true);
});
}
开发者ID:vgrish,项目名称:livestreet-framework,代码行数:20,代码来源:Image.entity.class.php
示例12: Resize
/**
* Resize,copy image,
* make rounded corners and add watermark
*
* @param string $sFileSrc Исходный файл изображения
* @param string $sDirDest Директория куда нужно сохранить изображение относительно корня сайта (path.root.server)
* @param string $sFileDest Имя файла для сохранения, без расширения
* @param int $iWidthMax Максимально допустимая ширина изображения
* @param int $iHeightMax Максимало допустимая высота изображения
* @param int|null $iWidthDest Ширина необходимого изображения на выходе
* @param int|null $iHeightDest Высота необходимого изображения на выходе
* @param bool $bForcedMinSize Растягивать изображение по ширине или нет, если исходное меньше. При false - изображение будет растянуто
* @param array|null $aParams Параметры
* @param LiveImage|null $oImage Объект изображения, если null то будет содано автоматически
* @return string|bool Полный серверный путь до сохраненного изображения
*/
public function Resize($sFileSrc, $sDirDest, $sFileDest, $iWidthMax, $iHeightMax, $iWidthDest = null, $iHeightDest = null, $bForcedMinSize = true, $aParams = null, $oImage = null)
{
$this->ClearLastError();
/**
* Если параметры не переданы, устанавливаем действия по умолчанию
*/
if (!is_array($aParams)) {
$aParams = $this->aParamsDefault;
}
/**
* Если объект не передан как параметр,
* создаем новый
*/
if (!$oImage) {
$oImage = $this->CreateImageObject($sFileSrc);
}
if ($oImage->get_last_error()) {
$this->SetLastError($oImage->get_last_error());
return false;
}
$sFileDest .= '.' . $oImage->get_image_params('format');
if ($oImage->get_image_params('width') > $iWidthMax or $oImage->get_image_params('height') > $iHeightMax) {
return false;
}
if ($iWidthDest) {
if ($bForcedMinSize and $iWidthDest > $oImage->get_image_params('width')) {
$iWidthDest = $oImage->get_image_params('width');
}
/**
* Ресайзим и выводим результат в файл.
* Если не задана новая высота, то применяем масштабирование.
* Если нужно добавить Watermark, то запрещаем ручное управление alfa-каналом
*/
$oImage->resize($iWidthDest, $iHeightDest, !$iHeightDest, !$aParams['watermark_use']);
/**
* Добавляем watermark согласно в конфигурации заданым параметрам
*/
if ($aParams['watermark_use']) {
if ($oImage->get_image_params('width') > $aParams['watermark_min_width'] and $oImage->get_image_params('height') > $aParams['watermark_min_height']) {
switch ($aParams['watermark_type']) {
default:
case 'text':
$oImage->set_font($aParams['watermark_font_size'], 0, $aParams['path']['fonts'] . $aParams['watermark_font'] . '.ttf');
$oImage->watermark($aParams['watermark_text'], explode(',', $aParams['watermark_position'], 2), explode(',', $aParams['watermark_font_color']), explode(',', $aParams['watermark_back_color']), $aParams['watermark_font_alfa'], $aParams['watermark_back_alfa']);
break;
case 'image':
$oImage->paste_image($aParams['path']['watermarks'] . $aParams['watermark_image'], false, explode(',', $aParams['watermark_position'], 2));
break;
}
}
}
/**
* Скругляем углы
*/
if ($aParams['round_corner']) {
$oImage->round_corners($aParams['round_corner_radius'], $aParams['round_corner_rate']);
}
/**
* Для JPG формата устанавливаем output quality, если это предусмотрено в конфигурации
*/
if (isset($aParams['jpg_quality']) and $oImage->get_image_params('format') == 'jpg') {
$oImage->set_jpg_quality($aParams['jpg_quality']);
}
$sFileTmp = Config::Get('sys.cache.dir') . func_generator(20);
$oImage->output(null, $sFileTmp);
return $this->SaveFile($sFileTmp, $sDirDest, $sFileDest, 0666, true);
} else {
return $this->SaveFile($sFileSrc, $sDirDest, $sFileDest, 0666, false);
}
return false;
}
开发者ID:cbrspc,项目名称:LIVESTREET-1-DISTRIB,代码行数:87,代码来源:Image.class.php
示例13: beforeSaveValue
/**
* Дополнительная обработка перед сохранением значения
* Здесь нужно выполнять основную загрузку файла
*/
public function beforeSaveValue()
{
$oValue = $this->getValueObject();
$oProperty = $oValue->getProperty();
if (!($aFile = $oValue->getDataOne('file_raw'))) {
return true;
}
$oValue->setDataOne('file_raw', null);
/**
* Удаляем предыдущий файл
*/
if (isset($aFile['remove']) or isset($aFile['name'])) {
if ($aFilePrev = $oValue->getDataOne('file')) {
$this->RemoveFile($aFilePrev['path']);
$oValue->setDataOne('file', array());
$oValue->setValueVarchar(null);
}
}
if (isset($aFile['name'])) {
/**
* Выполняем загрузку файла
*/
$aPathInfo = pathinfo($aFile['name']);
$sExtension = isset($aPathInfo['extension']) ? $aPathInfo['extension'] : 'unknown';
$sFileName = func_generator(20) . '.' . $sExtension;
/**
* Копируем загруженный файл
*/
$sDirTmp = Config::Get('path.tmp.server') . '/property/';
if (!is_dir($sDirTmp)) {
@mkdir($sDirTmp, 0777, true);
}
$sFileTmp = $sDirTmp . $sFileName;
if (move_uploaded_file($aFile['tmp_name'], $sFileTmp)) {
$sDirSave = Config::Get('path.root.server') . $oProperty->getSaveFileDir();
if (!is_dir($sDirSave)) {
@mkdir($sDirSave, 0777, true);
}
$sFilePath = $sDirSave . $sFileName;
/**
* Сохраняем файл
*/
if ($sFilePathNew = $this->SaveFile($sFileTmp, $sFilePath, null, true)) {
/**
* Сохраняем данные о файле
*/
$oValue->setDataOne('file', array('path' => $sFilePathNew, 'size' => filesize($sFilePath), 'name' => htmlspecialchars($aPathInfo['filename']), 'extension' => htmlspecialchars($aPathInfo['extension'])));
/**
* Сохраняем уникальный ключ для доступа к файлу
*/
$oValue->setValueVarchar(func_generator(32));
return true;
}
}
}
}
开发者ID:pinguo-liguo,项目名称:livestreet,代码行数:60,代码来源:ValueTypeFile.entity.class.php
示例14: EventIndex
/**
* Показывает страничку регистрации и обрабатывает её
*
* @return unknown
*/
protected function EventIndex()
{
/**
* Если нажали кнопку "Зарегистрироваться"
*/
if (isPost('submit_register')) {
//Проверяем входные данные
$bError = false;
/**
* Проверка логина
*/
if (!func_check(getRequest('login'), 'login', 3, 30)) {
$this->Message_AddError($this->Lang_Get('registration_login_error'), $this->Lang_Get('error'));
$bError = true;
}
/**
* Проверка мыла
*/
if (!func_check(getRequest('mail'), 'mail')) {
$this->Message_AddError($this->Lang_Get('registration_mail_error'), $this->Lang_Get('error'));
$bError = true;
}
/**
* Проверка пароля
*/
if (!func_check(getRequest('password'), 'password', 5)) {
$this->Message_AddError($this->Lang_Get('registration_password_error'), $this->Lang_Get('error'));
$bError = true;
} elseif (getRequest('password') != getRequest('password_confirm')) {
$this->Message_AddError($this->Lang_Get('registration_password_error_different'), $this->Lang_Get('error'));
$bError = true;
}
/**
* Проверка капчи(циферки с картинки)
*/
if (!isset($_SESSION['captcha_keystring']) or $_SESSION['captcha_keystring'] != strtolower(getRequest('captcha'))) {
$this->Message_AddError($this->Lang_Get('registration_captcha_error'), $this->Lang_Get('error'));
$bError = true;
}
/**
* А не занят ли логин?
*/
if ($this->User_GetUserByLogin(getRequest('login'))) {
$this->Message_AddError($this->Lang_Get('registration_login_error_used'), $this->Lang_Get('error'));
$bError = true;
}
/**
* А не занято ли мыло?
*/
if ($this->User_GetUserByMail(getRequest('mail'))) {
$this->Message_AddError($this->Lang_Get('registration_mail_error_used'), $this->Lang_Get('error'));
$bError = true;
}
/**
* Если всё то пробуем зарегить
*/
if (!$bError) {
/**
* Создаем юзера
*/
$oUser = Engine::GetEntity('User');
$oUser->setLogin(getRequest('login'));
$oUser->setMail(getRequest('mail'));
$oUser->setPassword(func_encrypt(getRequest('password')));
$oUser->setDateRegister(date("Y-m-d H:i:s"));
$oUser->setIpRegister(func_getIp());
/**
* Если используется активация, то генерим код активации
*/
if (Config::Get('general.reg.activation')) {
$oUser->setActivate(0);
$oUser->setActivateKey(md5(func_generator() . time()));
} else {
$oUser->setActivate(1);
$oUser->setActivateKey(null);
}
/**
* Регистрируем
*/
if ($this->User_Add($oUser)) {
/**
* Убиваем каптчу
*/
unset($_SESSION['captcha_keystring']);
/**
* Создаем персональный блог
*/
$this->Blog_CreatePersonalBlog($oUser);
/**
* Если юзер зарегистрировался по приглашению то обновляем инвайт
*/
if (Config::Get('general.reg.invite') and $oInvite = $this->User_GetInviteByCode($this->GetInviteRegister())) {
$oInvite->setUserToId($oUser->getId());
$oInvite->setDateUsed(date("Y-m-d H:i:s"));
$oInvite->setUsed(1);
//.........这里部分代码省略.........
开发者ID:lifecom,项目名称:test,代码行数:101,代码来源:ActionRegistration.class.php
示例15: EventMediaGenerateTargetTmp
protected function EventMediaGenerateTargetTmp()
{
$sType = getRequestStr('type');
if ($this->Media_IsAllowTargetType($sType)) {
$sTmp = func_generator();
$this->Session_SetCookie('media_target_tmp_' . $sType, $sTmp, time() + 24 * 3600);
$this->Viewer_AssignAjax('sTmpKey', $sTmp);
}
}
开发者ID:pinguo-liguo,项目名称:livestreet,代码行数:9,代码来源:ActionAjax.class.php
示例16: UploadBlogAvatar
/**
* Загружает аватар в блог
*
* @param array $aFile Массив $_FILES при загрузке аватара
* @param ModuleBlog_EntityBlog $oBlog Блог
* @return bool
*/
public function UploadBlogAvatar($aFile, $oBlog)
{
if (!is_array($aFile) || !isset($aFile['tmp_name'])) {
return false;
}
$sFileTmp = Config::Get('sys.cache.dir') . func_generator();
if (!move_uploaded_file($aFile['tmp_name'], $sFileTmp)) {
return false;
}
$sPath = $this->Image_GetIdDir($oBlog->getOwnerId()) . "blogs/" . $oBlog->getId() . "/";
$aParams = $this->Image_BuildParams('avatar');
$oImage = $this->Image_CreateImageObject($sFileTmp);
/**
* Если объект изображения не создан,
* возвращаем ошибку
*/
if ($sError = $oImage->get_last_error()) {
// Вывод сообщения об ошибки, произошедшей при создании объекта изображения
// $this->Message_AddError($sError,$this->Lang_Get('error'));
@unlink($sFileTmp);
return false;
}
/**
* Срезаем квадрат
*/
$oImage = $this->Image_CropSquare($oImage);
$aSize = Config::Get('module.blog.avatar_size');
rsort($aSize, SORT_NUMERIC);
$sSizeBig = array_shift($aSize);
if ($oImage && ($sFileAvatar = $this->Image_Resize($sFileTmp, $sPath, "avatar_blog_{$oBlog->getUrl()}_{$sSizeBig}x{$sSizeBig}", Config::Get('view.img_max_width'), Config::Get('view.img_max_height'), $sSizeBig, $sSizeBig, false, $aParams, $oImage))) {
foreach ($aSize as $iSize) {
if ($iSize == 0) {
$this->Image_Resize($sFileTmp, $sPath, "avatar_blog_{$oBlog->getUrl()}", Config::Get('view.img_max_width'), Config::Get('view.img_max_height'), null, null, false, $aParams, $oImage);
} else {
$this->Image_Resize($sFileTmp, $sPath, "avatar_blog_{$oBlog->getUrl()}_{$iSize}x{$iSize}", Config::Get('view.img_max_width'), Config::Get('view.img_max_height'), $iSize, $iSize, false, $aParams, $oImage);
}
}
@unlink($sFileTmp);
/**
* Если все нормально, возвращаем расширение загруженного аватара
*/
return $this->Image_GetWebPath($sFileAvatar);
}
@unlink($sFileTmp);
/**
* В случае ошибки, возвращаем false
*/
return false;
}
开发者ID:lunavod,项目名称:bunker_stable,代码行数:56,代码来源:Blog.class.php
示例17: MakeUserChangemail
/**
* Формирование процесса смены емайла в профиле пользователя
*
* @param ModuleUser_EntityUser $oUser Объект пользователя
* @param string $sMailNew Новый емайл
* @return bool|ModuleUser_EntityChangemail
*/
public function MakeUserChangemail($oUser, $sMailNew)
{
$oChangemail = Engine::GetEntity('ModuleUser_EntityChangemail');
$oChangemail->setUserId($oUser->getId());
$oChangemail->setDateAdd(date("Y-m-d H:i:s"));
$oChangemail->setDateExpired(date("Y-m-d H:i:s", time() + 3 * 24 * 60 * 60));
// 3 дня для смены емайла
$oChangemail->setMailFrom($oUser->getMail() ? $oUser->getMail() : '');
$oChangemail->setMailTo($sMailNew);
$oChangemail->setCodeFrom(func_generator(32));
$oChangemail->setCodeTo(func_generator(32));
if ($this->AddUserChangemail($oChangemail)) {
/**
* Если у пользователя раньше не было емайла, то сразу шлем подтверждение на новый емайл
*/
if (!$oChangemail->getMailFrom()) {
$oChangemail->setConfirmFrom(1);
$this->User_UpdateUserChangemail($oChangemail);
/**
* Отправляем уведомление на новый емайл
*/
$this->Notify_Send($oChangemail->getMailTo(), 'notify.user_changemail_to.tpl', $this->Lang_Get('notify_subject_user_changemail'), array('oUser' => $oUser, 'oChangemail' => $oChangemail));
} else {
/**
* Отправляем уведомление на старый емайл
*/
$this->Notify_Send($oUser, 'notify.user_changemail_from.tpl', $this->Lang_Get('notify_subject_user_changemail'), array('oUser' => $oUser, 'oChangemail' => $oChangemail));
}
return $oChangemail;
}
return false;
}
开发者ID:lunavod,项目名称:bunker_stable,代码行数:39,代码来源:User.class.php
示例18: UploadTopicImageUrl
/**
* Загрузка изображений по переданному URL
*
* @param string $sUrl
* @param ModuleUser_EntityUser $oUser
* @return (string|bool)
*/
public function UploadTopicImageUrl($sUrl, $oUser)
{
/**
* Проверяем, является ли файл изображением
*/
if (!@getimagesize($sUrl)) {
return ModuleImage::UPLOAD_IMAGE_ERROR_TYPE;
}
/**
* Открываем файловый поток и считываем файл поблочно,
* контролируя максимальный размер изображения
*/
$oFile = fopen($sUrl, 'r');
if (!$oFile) {
return ModuleImage::UPLOAD_IMAGE_ERROR_READ;
}
$iMaxSizeKb = 500;
$iSizeKb = 0;
$sContent = '';
while (!feof($oFile) and $iSizeKb < $iMaxSizeKb) {
$sContent .= fread($oFile, 1024 * 1);
$iSizeKb++;
}
/**
* Если конец файла не достигнут,
* значит файл имеет недопустимый размер
*/
if (!feof($oFile)) {
return ModuleImage::UPLOAD_IMAGE_ERROR_SIZE;
}
fclose($oFile);
/**
* Создаем tmp-файл, для временного хранения изо
|
请发表评论