当前位置: 首页>>代码示例>>PHP>>正文


PHP F::RandomStr方法代码示例

本文整理汇总了PHP中F::RandomStr方法的典型用法代码示例。如果您正苦于以下问题:PHP F::RandomStr方法的具体用法?PHP F::RandomStr怎么用?PHP F::RandomStr使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在F的用法示例。


在下文中一共展示了F::RandomStr方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。

示例1: StepAdmin

 /**
  * Запрос данных администратора и сохранение их в базе данных
  *
  */
 protected function StepAdmin()
 {
     $this->SetSessionVar(self::SESSION_KEY_STEP_NAME, 'Admin');
     $this->SetStep('Admin');
     // * Передаем данные из запроса во вьювер, сохраняя значение в сессии
     $this->Assign('install_admin_login', $this->GetRequest('install_admin_login', 'admin', self::GET_VAR_FROM_SESSION), self::SET_VAR_IN_SESSION);
     $this->Assign('install_admin_mail', $this->GetRequest('install_admin_mail', 'admin@admin.adm', self::GET_VAR_FROM_SESSION), self::SET_VAR_IN_SESSION);
     // * Если данные формы не были отправлены, передаем значения по умолчанию
     if (!$this->GetRequest('install_admin_params', false)) {
         return $this->Layout('steps/admin.tpl');
     }
     // * Проверяем валидность введенных данных
     list($bResult, $aErrors) = $this->ValidateAdminFields();
     if (!$bResult) {
         foreach ($aErrors as $sError) {
             $this->aMessages[] = array('type' => 'error', 'text' => $sError);
         }
         $this->Layout('steps/admin.tpl');
         return false;
     }
     // * Подключаемся к базе данных и сохраняем новые данные администратора
     $aParams = $this->GetSessionVar('INSTALL_DATABASE_PARAMS');
     $oDb = $this->ValidateDBConnection($aParams);
     if (!$oDb) {
         $this->aMessages[] = array('type' => 'error', 'text' => $this->Lang('error_db_connection_invalid'));
         $this->Layout('steps/admin.tpl');
         return false;
     }
     $this->SelectDatabase($oDb, $aParams['name']);
     $sLocalConfigFile = $this->sConfigDir . '/' . self::LOCAL_CONFIG_FILE_NAME;
     if (!$this->bSkipAdmin) {
         // make and save "salt"
         $aSalt = array();
         $this->SaveConfig('security.salt_sess', $aSalt['sess'] = F::RandomStr(64, false), $sLocalConfigFile);
         $this->SaveConfig('security.salt_pass', $aSalt['pass'] = F::RandomStr(64, false), $sLocalConfigFile);
         $this->SaveConfig('security.salt_auth', $aSalt['auth'] = F::RandomStr(64, false), $sLocalConfigFile);
         // make salted password
         $sPass = F::DoSalt($this->GetRequest('install_admin_pass'), $aSalt['pass']);
         $bUpdated = $this->UpdateDBUser($oDb, $this->GetRequest('install_admin_login'), $sPass, $this->GetRequest('install_admin_mail'), $aParams['prefix']);
         if (!$bUpdated) {
             $this->aMessages[] = array('type' => 'error', 'text' => $this->Lang('error_db_saved') . '<br />' . mysqli_error($oDb));
             $this->Layout('steps/admin.tpl');
             return false;
         }
         // * Обновляем данные о пользовательском блоге
         $this->UpdateUserBlog($oDb, 'Blog by ' . $this->GetRequest('install_admin_login'), $aParams['prefix']);
     }
     // * Передаем управление на следующий шаг
     return $this->StepEnd();
 }
开发者ID:hard990,项目名称:altocms,代码行数:54,代码来源:index.php

示例2: _eventRecoverySend

 protected function _eventRecoverySend($sRecoveryCode)
 {
     /** @var ModuleUser_EntityReminder $oReminder */
     if ($oReminder = E::ModuleUser()->GetReminderByCode($sRecoveryCode)) {
         /** @var ModuleUser_EntityUser $oUser */
         if ($oReminder->IsValid() && ($oUser = E::ModuleUser()->GetUserById($oReminder->getUserId()))) {
             $sNewPassword = F::RandomStr(7);
             $oUser->setPassword($sNewPassword, true);
             if (E::ModuleUser()->Update($oUser)) {
                 // Do logout of current user
                 E::ModuleUser()->Logout();
                 // Close all sessions of this user
                 E::ModuleUser()->CloseAllSessions($oUser);
                 $oReminder->setDateUsed(F::Now());
                 $oReminder->setIsUsed(1);
                 E::ModuleUser()->UpdateReminder($oReminder);
                 E::ModuleNotify()->SendReminderPassword($oUser, $sNewPassword);
                 $this->SetTemplateAction('reminder_confirm');
                 if (($sUrl = F::GetPost('return_url')) || ($sUrl = F::GetPost('return-path'))) {
                     E::ModuleViewer()->Assign('return-path', $sUrl);
                 }
                 return true;
             }
         }
     }
     return false;
 }
开发者ID:hard990,项目名称:altocms,代码行数:27,代码来源:ActionLogin.class.php

示例3: SaveUpload

 /**
  * @param string $sFile
  *
  * @return string|bool
  */
 public function SaveUpload($sFile)
 {
     if ($oImage = $this->GetImage()) {
         if ($sTmpFile = F::File_GetUploadDir() . F::RandomStr() . '.' . pathinfo($sFile, PATHINFO_EXTENSION)) {
             if (F::File_CheckDir(dirname($sTmpFile))) {
                 $oImage->save($sTmpFile);
                 if (E::ModuleUploader()->Move($sTmpFile, $sFile)) {
                     return $sFile;
                 }
             }
         }
     }
     return false;
 }
开发者ID:hard990,项目名称:altocms,代码行数:19,代码来源:Image.entity.class.php

示例4: MakeUserChangemail

 /**
  * Формирование процесса смены емайла в профиле пользователя
  *
  * @param ModuleUser_EntityUser $oUser       Объект пользователя
  * @param string                $sMailNew    Новый емайл
  *
  * @return bool|ModuleUser_EntityChangemail
  */
 public function MakeUserChangemail($oUser, $sMailNew)
 {
     /** @var ModuleUser_EntityChangemail $oChangemail */
     $oChangemail = E::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(F::RandomStr(32));
     $oChangemail->setCodeTo(F::RandomStr(32));
     if ($this->AddUserChangemail($oChangemail)) {
         // * Если у пользователя раньше не было емайла, то сразу шлем подтверждение на новый емайл
         if (!$oChangemail->getMailFrom()) {
             $oChangemail->setConfirmFrom(1);
             E::ModuleUser()->UpdateUserChangemail($oChangemail);
             // * Отправляем уведомление на новый емайл
             E::ModuleNotify()->Send($oChangemail->getMailTo(), 'user_changemail_to.tpl', E::ModuleLang()->Get('notify_subject_user_changemail'), array('oUser' => $oUser, 'oChangemail' => $oChangemail), null, true);
         } else {
             // * Отправляем уведомление на старый емайл
             E::ModuleNotify()->Send($oUser, 'user_changemail_from.tpl', E::ModuleLang()->Get('notify_subject_user_changemail'), array('oUser' => $oUser, 'oChangemail' => $oChangemail), null, true);
         }
         return $oChangemail;
     }
     return false;
 }
开发者ID:AntiqS,项目名称:altocms,代码行数:35,代码来源:User.class.php

示例5: _eventMenuEdit

 protected function _eventMenuEdit()
 {
     // * Получаем тип
     $sMenuId = $this->GetParam(1);
     if (!($oMenu = E::ModuleMenu()->GetMenu($sMenuId))) {
         return parent::EventNotFound();
     }
     E::ModuleViewer()->Assign('oMenu', $oMenu);
     if (strpos($oMenu->getId(), 'submenu_') === 0) {
         E::ModuleViewer()->Assign('isSubMenu', E::ModuleLang()->Get('action.admin.menu_manager_submenu'));
     }
     // * Устанавливаем шаблон вывода
     $this->_setTitle(E::ModuleLang()->Get('action.admin.menu_manager_edit_menu'));
     $this->SetTemplateAction('settings/menumanager_edit');
     // * Проверяем отправлена ли форма с данными
     if (getRequestPost('submit_add_new_item')) {
         if (!(($sItemLink = trim(F::GetRequestStr('menu-item-link'))) && ($sItemTitle = trim(F::GetRequestStr('menu-item-title'))))) {
             E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('menu_manager_item_add_error'), E::ModuleLang()->Get('error'));
             return null;
         }
         $sRoot = F::GetRequest('menu-item-place');
         if ($sRoot == 'root_item') {
             $sItemName = F::RandomStr(10);
             // Добавим имя в объявление
             $aAllowedData = array_values(Config::Get("menu.data.{$oMenu->getId()}.init.fill.list"));
             if (count($aAllowedData) > 1 && isset($aAllowedData[0]) && $aAllowedData[0] == '*') {
                 unset($aAllowedData[0]);
             }
             if (is_array($aAllowedData) && isset($aAllowedData[0]) && $aAllowedData[0] == '*') {
                 $aAllowedData = array_keys(Config::Get("menu.data.{$oMenu->getId()}.list"));
             }
             $aNewItems = array_merge($aAllowedData, array($sItemName));
             $sMenuKey = "menu.data.{$oMenu->getId()}";
             $aMenu = C::Get($sMenuKey);
             $aMenu['init']['fill']['list'] = $aNewItems;
             // Добавим имя в список
             $aNewItemConfig = array($sItemName => array('text' => $sItemTitle, 'link' => $sItemLink, 'active' => false));
             $aNewItemConfig = array_merge(Config::Get("menu.data.{$oMenu->getId()}.list"), $aNewItemConfig);
             $aMenu['list'] = $aNewItemConfig;
             Config::WriteCustomConfig(array($sMenuKey => $aMenu), false);
             R::Location("admin/settings-menumanager/edit/{$sMenuId}");
             return null;
         } elseif ($sRoot) {
             // Разрешенные идентификаторы меню
             $aAllowedData = array_values(Config::Get("menu.data.{$oMenu->getId()}.init.fill.list"));
             if (count($aAllowedData) > 1 && isset($aAllowedData[0]) && $aAllowedData[0] == '*') {
                 unset($aAllowedData[0]);
             }
             if (is_array($aAllowedData) && isset($aAllowedData[0]) && $aAllowedData[0] == '*') {
                 $aAllowedData = array_keys(Config::Get("menu.data.{$oMenu->getId()}.list"));
             }
             if (!in_array($sRoot, $aAllowedData)) {
                 E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('menu_manager_item_add_error'), E::ModuleLang()->Get('error'));
                 return null;
             }
             // Проверим есть ли подменю для этого элемента?
             $sSubMenuName = Config::Get("menu.data.{$oMenu->getId()}.list.{$sRoot}.submenu");
             if (!$sSubMenuName) {
                 $sSubMenuName = 'submenu_' . F::RandomStr(10);
                 // Сохраним указатель на подменю
                 $sMenuListKey = "menu.data.{$oMenu->getId()}";
                 $aMenu = C::Get($sMenuListKey);
                 if ($aMenu) {
                     $aMenu['list'][$sRoot]['submenu'] = $sSubMenuName;
                     C::WriteCustomConfig(array($sMenuListKey => $aMenu), false);
                 }
                 // Сохраним само пордменю
                 $aSubmenu = array('init' => array('fill' => array('list' => array('*'))), 'list' => array());
                 Config::WriteCustomConfig(array("menu.data.{$sSubMenuName}" => $aSubmenu), false);
             }
             // Добавим новый элемент в подменю
             $sItemName = F::RandomStr(10);
             // Добавим имя в объявление
             $sMenuKey = "menu.data.{$sSubMenuName}";
             $aMenu = C::Get($sMenuKey);
             $aAllowedData = isset($aMenu['init']['fill']['list']) ? array_values($aMenu['init']['fill']['list']) : array();
             if (is_array($aAllowedData) && isset($aAllowedData[0]) && $aAllowedData[0] == '*') {
                 $aAllowedData = isset($aMenu['list']) ? array_keys($aMenu['list']) : array();
             }
             if (count($aAllowedData) > 1 && isset($aAllowedData[0]) && $aAllowedData[0] == '*') {
                 unset($aAllowedData[0]);
             }
             $aNewItems = array_merge($aAllowedData, array($sItemName));
             $aMenu['init']['fill']['list'] = $aNewItems;
             // Добавим имя в список
             $aNewItemConfig = array($sItemName => array('text' => $sItemTitle, 'link' => $sItemLink, 'active' => false));
             $aNewItemConfig = array_merge(isset($aMenu['list']) ? $aMenu['list'] : array(), $aNewItemConfig);
             $aMenu['list'] = $aNewItemConfig;
             Config::WriteCustomConfig(array($sMenuKey => $aMenu), false);
             R::Location("admin/settings-menumanager/edit/{$sMenuId}");
             return null;
         }
         E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('menu_manager_item_add_error'), E::ModuleLang()->Get('error'));
         return null;
     }
     return null;
 }
开发者ID:ZeoNish,项目名称:altocms,代码行数:97,代码来源:ActionAdmin.class.php

示例6: Uniqname

 /**
  * Возвращает уникальное имя файла для конкретной папки
  *
  * @param     $sDir
  * @param     $sExtension
  * @param int $nLength
  *
  * @return string
  */
 public static function Uniqname($sDir, $sExtension, $nLength = 8)
 {
     $sFileName = F::RandomStr($nLength) . ($sExtension ? '.' . trim($sExtension, '.') : '');
     while (static::Exists($sDir . '/' . $sFileName)) {
         $sFileName = static::Uniqname($sDir, $sExtension, $nLength);
     }
     return static::NormPath($sDir . '/' . $sFileName);
 }
开发者ID:Azany,项目名称:altocms,代码行数:17,代码来源:File.php

示例7: EventAjaxRegistration

 /**
  * Обработка Ajax регистрации
  */
 protected function EventAjaxRegistration()
 {
     // * Устанавливаем формат Ajax ответа
     E::ModuleViewer()->SetResponseAjax('json');
     E::ModuleSecurity()->ValidateSendForm();
     // * Создаем объект пользователя и устанавливаем сценарий валидации
     /** @var ModuleUser_EntityUser $oUser */
     $oUser = E::GetEntity('ModuleUser_EntityUser');
     $oUser->_setValidateScenario('registration');
     // * Заполняем поля (данные)
     $oUser->setLogin($this->GetPost('login'));
     $oUser->setMail($this->GetPost('mail'));
     $oUser->setPassword($this->GetPost('password'));
     $oUser->setPasswordConfirm($this->GetPost('password_confirm'));
     $oUser->setCaptcha($this->GetPost('captcha'));
     $oUser->setDateRegister(F::Now());
     $oUser->setIpRegister(F::GetUserIp());
     // * Если используется активация, то генерим код активации
     if (Config::Get('general.reg.activation')) {
         $oUser->setActivate(0);
         $oUser->setActivationKey(F::RandomStr());
     } else {
         $oUser->setActivate(1);
         $oUser->setActivationKey(null);
     }
     E::ModuleHook()->Run('registration_validate_before', array('oUser' => $oUser));
     // * Запускаем валидацию
     if ($oUser->_Validate()) {
         // Сбросим капчу // issue#342.
         E::ModuleSession()->Drop(E::ModuleCaptcha()->GetKeyName());
         E::ModuleHook()->Run('registration_validate_after', array('oUser' => $oUser));
         $oUser->setPassword($oUser->getPassword(), true);
         if ($this->_addUser($oUser)) {
             E::ModuleHook()->Run('registration_after', array('oUser' => $oUser));
             // * Подписываем пользователя на дефолтные события в ленте активности
             E::ModuleStream()->SwitchUserEventDefaultTypes($oUser->getId());
             // * Если юзер зарегистрировался по приглашению то обновляем инвайт
             if (Config::Get('general.reg.invite') && ($oInvite = E::ModuleUser()->GetInviteByCode($this->GetInviteRegister()))) {
                 $oInvite->setUserToId($oUser->getId());
                 $oInvite->setDateUsed(F::Now());
                 $oInvite->setUsed(1);
                 E::ModuleUser()->UpdateInvite($oInvite);
             }
             // * Если стоит регистрация с активацией то проводим её
             if (Config::Get('general.reg.activation')) {
                 // * Отправляем на мыло письмо о подтверждении регистрации
                 E::ModuleNotify()->SendRegistrationActivate($oUser, F::GetRequestStr('password'));
                 E::ModuleViewer()->AssignAjax('sUrlRedirect', R::GetPath('registration') . 'confirm/');
             } else {
                 E::ModuleNotify()->SendRegistration($oUser, F::GetRequestStr('password'));
                 $oUser = E::ModuleUser()->GetUserById($oUser->getId());
                 // * Сразу авторизуем
                 E::ModuleUser()->Authorization($oUser, false);
                 $this->DropInviteRegister();
                 // * Определяем URL для редиректа после авторизации
                 $sUrl = Config::Get('module.user.redirect_after_registration');
                 if (F::GetRequestStr('return-path')) {
                     $sUrl = F::GetRequestStr('return-path');
                 }
                 E::ModuleViewer()->AssignAjax('sUrlRedirect', $sUrl ? $sUrl : Config::Get('path.root.url'));
                 E::ModuleMessage()->AddNoticeSingle(E::ModuleLang()->Get('registration_ok'));
             }
         } else {
             E::ModuleMessage()->AddErrorSingle(E::ModuleLang()->Get('system_error'));
             return;
         }
     } else {
         // * Получаем ошибки
         E::ModuleViewer()->AssignAjax('aErrors', $oUser->_getValidateErrors());
     }
 }
开发者ID:AntiqS,项目名称:altocms,代码行数:74,代码来源:ActionRegistration.class.php

示例8: AddTrackSimple

 /**
  * Создает подписку, если уже есть, то возвращает существующую
  *
  * @param string $sTargetType    Тип
  * @param string $sTargetId      ID владельца
  * @param string $sUserId        ID юзера
  *
  * @return ModuleSubscribe_EntityTrack|bool
  */
 public function AddTrackSimple($sTargetType, $sTargetId, $sUserId)
 {
     if (!$sUserId) {
         return false;
     }
     if (!($oTrack = E::ModuleSubscribe()->GetTrackByTargetAndUser($sTargetType, $sTargetId, $sUserId))) {
         $oTrack = E::GetEntity('ModuleSubscribe_EntityTrack');
         $oTrack->setTargetType($sTargetType);
         $oTrack->setTargetId($sTargetId);
         $oTrack->setUserId($sUserId);
         $oTrack->setDateAdd(date('Y-m-d H:i:s'));
         $oTrack->setKey(F::RandomStr(32));
         $oTrack->setIp(F::GetUserIp());
         $oTrack->setStatus(1);
         E::ModuleSubscribe()->AddTrack($oTrack);
     }
     return $oTrack;
 }
开发者ID:hard990,项目名称:altocms,代码行数:27,代码来源:Subscribe.class.php

示例9: _generateSecurityKey

 /**
  * Generates security key for the current session
  *
  * @return string
  */
 protected function _generateSecurityKey()
 {
     // Сохраняем текущий ключ для ajax-запросов
     if (F::AjaxRequest() && ($sKey = E::ModuleSession()->Get($this->sSecurityKeyName))) {
         return $sKey;
     }
     if (Config::Get('module.security.randomkey')) {
         return F::RandomStr($this->sSecurityKeyLen);
     } else {
         //return md5(E::ModuleSession()->GetId().Config::Get('module.security.hash'));
         return md5($this->GetUniqKey() . $this->GetClientHash() . Config::Get('module.security.hash'));
     }
 }
开发者ID:ZeoNish,项目名称:altocms,代码行数:18,代码来源:Security.class.php

示例10: EventAdd

 /**
  * Добавление топика
  *
  * @return mixed
  */
 protected function EventAdd()
 {
     // * Устанавливаем шаблон вывода
     $this->SetTemplateAction('add');
     E::ModuleViewer()->Assign('sMode', 'add');
     // * Вызов хуков
     E::ModuleHook()->Run('topic_add_show');
     // * Получаем тип контента
     if (!($this->oContentType = E::ModuleTopic()->GetContentTypeByUrl($this->sCurrentEvent))) {
         if (!($this->oContentType = E::ModuleTopic()->GetContentTypeDefault())) {
             return parent::EventNotFound();
         }
     }
     E::ModuleViewer()->Assign('oContentType', $this->oContentType);
     $this->sMenuSubItemSelect = $this->oContentType->getContentUrl();
     // * Если тип контента не доступен текущему юзеру
     if (!$this->oContentType->isAccessible()) {
         return parent::EventNotFound();
     }
     $aBlogFilter = array('user' => $this->oUserCurrent, 'content_type' => $this->oContentType);
     $aBlogsAllow = $this->_getAllowBlogs($aBlogFilter);
     // Такой тип контента не разрешен для пользователя ни в одном из типов блогов
     if (!$aBlogsAllow) {
         return parent::EventNotFound();
     }
     // Проверим можно ли писать в персональный блог такой тип контента
     /** @var ModuleBlog_EntityBlog $oAllowedBlog */
     $this->bPersonalBlogEnabled = FALSE;
     foreach ($aBlogsAllow as $oAllowedBlog) {
         // Нашли среди разрешенных персональный блог
         if ($oAllowedBlog->getType() == 'personal') {
             if (!$oAllowedBlog->getBlogType()->getContentTypes()) {
                 // типы контента не определены, значит, разрешен любой
                 $this->bPersonalBlogEnabled = TRUE;
             } else {
                 foreach ($oAllowedBlog->getBlogType()->getContentTypes() as $oContentType) {
                     if ($oContentType->getId() == $this->oContentType->getId()) {
                         $this->bPersonalBlogEnabled = TRUE;
                         break;
                     }
                 }
             }
             break;
         }
     }
     // * Загружаем переменные в шаблон
     E::ModuleViewer()->Assign('bPersonalBlog', $this->bPersonalBlogEnabled);
     E::ModuleViewer()->Assign('aBlogsAllow', $aBlogsAllow);
     E::ModuleViewer()->Assign('bEditDisabled', false);
     E::ModuleViewer()->AddHtmlTitle(E::ModuleLang()->Get('topic_topic_create') . ' ' . mb_strtolower($this->oContentType->getContentTitle(), 'UTF-8'));
     if (!is_numeric(F::GetRequest('topic_id'))) {
         $_REQUEST['topic_id'] = '';
     }
     $_REQUEST['topic_show_photoset'] = 1;
     // * Если нет временного ключа для нового топика, то генерируем; если есть, то загружаем фото по этому ключу
     if ($sTargetTmp = E::ModuleSession()->GetCookie('ls_photoset_target_tmp')) {
         E::ModuleSession()->SetCookie('ls_photoset_target_tmp', $sTargetTmp, 'P1D', false);
         E::ModuleViewer()->Assign('aPhotos', E::ModuleTopic()->GetPhotosByTargetTmp($sTargetTmp));
     } else {
         E::ModuleSession()->SetCookie('ls_photoset_target_tmp', F::RandomStr(), 'P1D', false);
     }
     // Если POST-запрос, то обрабатываем отправку формы
     if ($this->IsPost()) {
         return $this->SubmitAdd();
     }
     return null;
 }
开发者ID:AntiqS,项目名称:altocms,代码行数:72,代码来源:ActionContent.class.php

示例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;
}
开发者ID:ZeoNish,项目名称:altocms,代码行数:68,代码来源:function.imgs.php

示例12: func_generator

/**
 * генерирует случайную последовательность символов
 *
 * @param int $iLength
 *
 * @return string
 */
function func_generator($iLength = 10)
{
    if ($iLength > 32) {
        $iLength = 32;
    }
    return F::RandomStr($iLength);
}
开发者ID:AntiqS,项目名称:altocms,代码行数:14,代码来源:function.php

示例13: GenerateId

 /**
  * Гинерирует уникальный идентификатор
  *
  * @return string
  */
 protected function GenerateId()
 {
     return md5(F::RandomStr() . time());
 }
开发者ID:hard990,项目名称:altocms,代码行数:9,代码来源:Session.class.php

示例14: 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;
}
开发者ID:AntiqS,项目名称:altocms,代码行数:72,代码来源:function.img.php

示例15: 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-каналом
          */
         $bWatermark = isset($aParams['watermark_use']) ? $aParams['watermark_use'] : false;
         $oImage->resize($iWidthDest, $iHeightDest, !$iHeightDest, !$bWatermark);
         /**
          * Добавляем watermark согласно в конфигурации заданым параметрам
          */
         if ($bWatermark) {
             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 (!empty($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') . F::RandomStr(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:AntiqS,项目名称:altocms,代码行数:88,代码来源:Image.class.php


注:本文中的F::RandomStr方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。