|
Передача сессии при функции document() xslt
|
|||
---|---|---|---|
#18+
Здравствующие возникла такая необходимость чтобы использовании функции document() в XSLT шаблоне удаленной странице передавалась сессия пользователя, а также POST и GET с текущей страницы ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2013, 18:24 |
|
Передача сессии при функции document() xslt
|
|||
---|---|---|---|
#18+
Roman_error, Задача XSLT сделать из XML что-то. Трансформация может происходить на сервере, в пользовательском браузере, в командной строке... трансформер ничего не знает про сессию. Либо вы отдаете на клиент все, что хотите, в какой-то части XML, либо никак. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2013, 18:35 |
|
Передача сессии при функции document() xslt
|
|||
---|---|---|---|
#18+
Большое спасибо за ответ, но Вы знаете ситуация произошла в следующем. Всегда работал с UMI CMS, но сейчас есть проект который изначально делался не используя фреймворков и цмс. Я сразу туда привинтил XSLT шаблонизатор. Но понял что в отличее от UMI на который привык работать все шаблоны подключаемые через документ не перенимают параметров GET POST и сессии по чему мне прекрасно ясно, не ясно только того как добились этого в UMI очень хотелось бы повторить, но да же не знаю в какую сторону искать ... |
|||
:
Нравится:
Не нравится:
|
|||
19.04.2013, 23:16 |
|
Передача сессии при функции document() xslt
|
|||
---|---|---|---|
#18+
Roman_error, если трансформация происходит на сервере, то никаких проблем нет, трансформер принимает на вход и отдает в XSL любые параметры. Но для этого надо писать некоторое кол-во скриптов на серверном языке, на V8, питоне или еще чем-нибудь. Другое дело, что лучше все же взять cms, т.к это не первые грабли на которые вы наступили. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.04.2013, 12:05 |
|
Передача сессии при функции document() xslt
|
|||
---|---|---|---|
#18+
Большое спасибо полез в V8 ... |
|||
:
Нравится:
Не нравится:
|
|||
23.04.2013, 14:54 |
|
Передача сессии при функции document() xslt
|
|||
---|---|---|---|
#18+
Наконец решил данную проблему. streamWrapper Позволяет реализовывать собственные обработчики протоколов и потоков для дальнейшего использования со всеми функциями по работе с файловой системой. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 18:25 |
|
Передача сессии при функции document() xslt
|
|||
---|---|---|---|
#18+
mage.lanЛибо вы отдаете на клиент все, что хотите, в какой-то части XML, либо никак.У меня аналогичная ситуация, и потому приходится добавлять в корень левую ноду с данными, но вся работа происходит на сервере.mage.lanтрансформер принимает на вход и отдает в XSL любые параметрыЯ правильно понял, что таки можно передать трансформеру какие-то значения, которые можно подхватить в xsl, не трогая xml? Если да, как это сделать в дотнете? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.06.2013, 18:42 |
|
Передача сессии при функции document() xslt
|
|||
---|---|---|---|
#18+
Как получается создаешь оболочку потока к примеру edata:// и получается что на запрос document('edata://-путь-')/index Включается собственный класс данного потока в котором доступны все параметры включая сессию, get, post, переменные, содержание адресной строки и тд. А отдавать в этом потоке можно все что угодно, в моем случае это работа внутреннего класса. Пример инициализации потока в индексе $existed = in_array("edata", stream_get_wrappers()); if ($existed) { stream_wrapper_unregister("edata"); } stream_wrapper_register("edata", "edata"); А это пример класса самого потока <?php //session_id('1'); //session_start(); // var_dump($_COOKIE); /*file_put_contents ( 'tmp.info', $_SESSION['user'],FILE_APPEND);*/ //подключение основных классов и конект к базе //require('connection.php'); //$db_connect = new db_connect; //открытие сессии и проверка на пользователя + доступ для сервера через сессию пользователя +блок постранички class edata{ var $position; var $varname; var $count=true; function stream_open($path, $mode, $options, &$opened_path) //Открытие файла { $url = parse_url($path); $this->varname = $this->_url_stat($path); $this->position = 0; if($this->count===true){ $this->count=false; return true; }else{ return false; } return ; } function stream_tell() //Говарит на каком шагу находится { return $this->position; } function stream_read($count) //Шаг { $ret = substr($this->varname, $this->position, $count); $this->position += strlen($ret); return $ret; } function stream_eof() //Говарит о завершении { if($this->position >= strlen($this->varname)){ $this->count=true; return true; }else{ return false; } return ; } function url_stat($path){ //Данные о файле $tmp=array('0','0','0','0','0','0','0','0','0','0','0','0');//stat('tt.xml'); return $tmp; } function _url_stat($path) //Моя функция для получения внутреннего xml { $path=explode('/',$path); array_pop($path); $module=$path[2]; $method=$path[3]; foreach($path as $key => $val){ if($key>3){ $param[]=$val; } } if(isset($module) and isset($method)){ $module_obj = new $module; if(isset($param)){ $result=call_user_func_array(array($module_obj,$method), $param); }else{ $result=$module_obj->$method(); } $out=array('@attributes'=>array( 'module'=>$module,'method'=>$method),'index'=>$result); $Xslt = new Xslt; $xml=$Xslt->edata($out); return $xml; } } } ?> ... |
|||
:
Нравится:
Не нравится:
|
|||
14.06.2013, 16:05 |
|
|
start [/forum/topic.php?fid=14&fpage=17&tid=1332517]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
42ms |
get topic data: |
12ms |
get forum data: |
2ms |
get page messages: |
45ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 143ms |
0 / 0 |