0 Пользователей и 1 Гость просматривают эту тему.
  • 5 Ответов
  • 4850 Просмотров
*

uborshik

  • Осваиваюсь на форуме
  • 20
  • 2 / 0
функция getUserStateFromRequest
« : 03.05.2009, 23:40:58 »
Здравствуйте!
Наверно, не туда пишу, если, что -- перенесите.
Нигде в инете не смог достойного описания этой функции.
Вот мои исследования:
Цитировать
function getUserStateFromRequest( $key, $request, $default = null, $type = 'none' )

  Работа ф-ции:
  1. Вначале ищется значение в глобальном массиве $_SESSION, по пути переданном в первом параметре (путь $key -- названия ключей, в этом пути, разделены точками, если точек нет, то поиск значения $key будет начинаться от ключа -- [session]).
  2. Если такое значение нашлось в текущей сессии, то оно становится -- "текущим значением"(если дальнейший код данной ф-ции его не изменит), если нет, то устанавливается значение, которое был переданно в третьем параметре функции -- $default (либо 'null', если нет такого параметра).
  3. Ищется значение ключа $request, второго параметра данной ф-ции, в массиве $_REQUEST. Если такое значение есть, то   подразумевается, что пользователь ввел новое значение. И теперь это значение перезапишет сессионную переменную со старым значением на данное, и оно станет новым "текущим значением". Данная ф-ция вернет новое значение, которое теперь будет "текущим значением", на протяжении всей сессии, до его последующего изменения.
  4. Если ключ $request (второй параметр данной ф-ции) не найден в глобальном массиве $_REQUEST, то тогда данная ф-ция вернет значение руководствуясь пункту 2 данного "манускрипта".

Итог:
функция getUserStateFromRequest( $key, $request, $default = null, $type = 'none' ), записывает в сессионную переменную $key значение $request, если это значение установленно в глобальном массиве $_REQUEST, иначе оставляет свое старое значение, либо значение по-умолчанию, переданное в третьем параметре, если вообще никаких значений ни в сессионной, ни в $_REQUEST не найденно.


« Последнее редактирование: 03.05.2009, 23:56:22 от uborshik »
*

smart

  • Администратор
  • 6478
  • 1318 / 15
  • Хочешь сделать хорошо — сделай!
Re: функция getUserStateFromRequest
« Ответ #1 : 04.05.2009, 00:45:22 »
Хм, ну в принципе все так и есть (если посмотреть ее реализацию в /libraries/joomla/application/application.php)... Что же касается описания, то мне кажется там достаточно комментариев...
*

uborshik

  • Осваиваюсь на форуме
  • 20
  • 2 / 0
Re: функция getUserStateFromRequest
« Ответ #2 : 04.05.2009, 03:11:14 »
Ну, да, в общем то.
Единственное мне вот этот комментарий хлопот доставил:
Цитировать
@param   string   The key of the user state variable.
Очень интерестно стало, как парсится строка, если $key будет 'com_applicatelimitstart', а не 'com_applicate.limitstart'.
И не очень ясно из этого комментария, мне было, откуда будет браться это "состояние переменной юзера". Да и вообще, если честно, нифига я не понимал, что это за ф-ция. Потому что:
1 вариант объяснения:
Цитировать
getUserStateFromRequest ($имя переменной состояния пользователя, имя в запросе, значение по-умолчанию) - функция которая запоминает параметры пользователя на странице в админ части. Например при разбивке списка статей на страницы при поиске - можно запомнить ключевое поисковое слово или значение по сколько выдавать результатов на страницу.
Мне ни о чем не сказал, как я должен пользоваться ф-цией,
а второй:
Цитировать
... getUserStateFromRequest(), является более продвинутой функцией, чем JRequest::getVar()...
Меня просто в "ступор" ввел: я еще getVar(), толком не догнал, а тут  еще "более продвинутая функция"...



*

userxp

  • Живу я здесь
  • 2019
  • 403 / 6
  • Злой и ужасный бармалей
Re: функция getUserStateFromRequest
« Ответ #3 : 04.05.2009, 11:00:26 »
никак не пойму, что тебя смущает.
эта функция "связывает" переменную из REQUEST с переменной в SESSION.
производится выборка текущего значения из SESSION, сравнение его со значением по-умолчанию и потом проверкой состояния в REQUEST
Как правильно задавать вопрос службе технической поддержки  yes!
SGA CM 7.2.0 RC0 KANG Build GWK74 + s95allinonescript + CWM 5.0.2.6 + Modem XWKT3
*

uborshik

  • Осваиваюсь на форуме
  • 20
  • 2 / 0
Re: функция getUserStateFromRequest
« Ответ #4 : 04.05.2009, 11:56:36 »
Отправлено: Сегодня в 12:00:26
Автор: userxp
Цитировать
никак не пойму, что тебя смущает.
Ну теперь то и мне уже стало неловко себя чувствовать, от своего же топа, но с другой стороны, когда я эту ф-цию впервые увидел (не в "application.php", в одном из компонентов), то весьма растерялся, что даже чикушку выпил с горя.
 Я просто думал о "Joomla", как о чем-то сверхестественном. Это еще более подкреплялось полным незнанием предмета.
Сейчас я конечно, уже так не думаю, но думаю, что все-таки "Джуумла" весьма навороченный движок, что на удивление, не влияет на скорость его работы в интернете.
Если суметь правильно создать на "Джумле" сайт, а не тупо брать его готовый шаблон и подстраивать его под свой контент, то движок становится, довольно шустрым. Это мне напоминает работу некоторых визуальных редакторов HTML: после создания сайта в таком редакторе, надо немного "почистить" код от мусора, чтоб сайт не слишком тормозил.
*

vitalicc

  • Осваиваюсь на форуме
  • 14
  • 0 / 0
Re: Функция getUserStateFromRequest
« Ответ #5 : 24.05.2020, 19:42:59 »
Подскажите, зачем $key разделяется точками?
Есть ли еще способы, как увидеть ключ и значение сессии, например в БД?
Чтобы оставить сообщение,
Вам необходимо Войти или Зарегистрироваться
 

Не работает функция восстановления пароля

Автор VALAN

Ответов: 1
Просмотров: 1301
Последний ответ 13.12.2012, 14:41:48
от hooten
Функция onclick-при нажатии текст скрывается

Автор d.i.m.k.e.r.

Ответов: 3
Просмотров: 1706
Последний ответ 25.05.2012, 13:40:30
от d.i.m.k.e.r.
Не удалась функция Базы Данных с ошибкой 145, неустранимая ошибка - размер памяти исчерпан

Автор seriysokol

Ответов: 5
Просмотров: 2427
Последний ответ 18.02.2012, 10:04:28
от JohnGonzo
Функция include в материале!

Автор art22

Ответов: 4
Просмотров: 1390
Последний ответ 11.07.2011, 19:24:19
от art22
Функция "Разрыв страницы"

Автор Яфет

Ответов: 10
Просмотров: 4037
Последний ответ 11.02.2011, 16:44:12
от reklamacng