powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Передача сессии при функции document() xslt
9 сообщений из 9, страница 1 из 1
Передача сессии при функции document() xslt
    #38233351
Roman_error
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствующие возникла такая необходимость чтобы использовании функции document() в XSLT шаблоне удаленной странице передавалась сессия пользователя, а также POST и GET с текущей страницы
...
Рейтинг: 0 / 0
Передача сессии при функции document() xslt
    #38233368
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman_error,

Задача XSLT сделать из XML что-то. Трансформация может происходить на сервере, в пользовательском браузере, в командной строке... трансформер ничего не знает про сессию.

Либо вы отдаете на клиент все, что хотите, в какой-то части XML, либо никак.
...
Рейтинг: 0 / 0
Передача сессии при функции document() xslt
    #38233568
Roman_error
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо за ответ, но Вы знаете ситуация произошла в следующем. Всегда работал с UMI CMS, но сейчас есть проект который изначально делался не используя фреймворков и цмс. Я сразу туда привинтил XSLT шаблонизатор. Но понял что в отличее от UMI на который привык работать все шаблоны подключаемые через документ не перенимают параметров GET POST и сессии по чему мне прекрасно ясно, не ясно только того как добились этого в UMI очень хотелось бы повторить, но да же не знаю в какую сторону искать
...
Рейтинг: 0 / 0
Передача сессии при функции document() xslt
    #38234803
mage.lan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman_error,

если трансформация происходит на сервере, то никаких проблем нет, трансформер принимает на вход и отдает в XSL любые параметры. Но для этого надо писать некоторое кол-во скриптов на серверном языке, на V8, питоне или еще чем-нибудь.
Другое дело, что лучше все же взять cms, т.к это не первые грабли на которые вы наступили.
...
Рейтинг: 0 / 0
Передача сессии при функции document() xslt
    #38236695
Roman_error
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое спасибо полез в V8
...
Рейтинг: 0 / 0
Передача сессии при функции document() xslt
    #38287268
Roman_error
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Наконец решил данную проблему. streamWrapper Позволяет реализовывать собственные обработчики протоколов и потоков для дальнейшего использования со всеми функциями по работе с файловой системой.
...
Рейтинг: 0 / 0
Передача сессии при функции document() xslt
    #38287301
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mage.lanЛибо вы отдаете на клиент все, что хотите, в какой-то части XML, либо никак.У меня аналогичная ситуация, и потому приходится добавлять в корень левую ноду с данными, но вся работа происходит на сервере.mage.lanтрансформер принимает на вход и отдает в XSL любые параметрыЯ правильно понял, что таки можно передать трансформеру какие-то значения, которые можно подхватить в xsl, не трогая xml? Если да, как это сделать в дотнете?
...
Рейтинг: 0 / 0
Передача сессии при функции document() xslt
    #38298020
Roman_error
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Как получается создаешь оболочку потока к примеру 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;
}

}
}


?>
...
Рейтинг: 0 / 0
Передача сессии при функции document() xslt
    #38298025
Roman_error
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Извиняюсь за не удаленные коментарии, получается когда я взываю метод стороннего класса из класса потока в нем также доступны все значения
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / XML, XSL, XPath, XQuery [игнор отключен] [закрыт для гостей] / Передача сессии при функции document() xslt
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]