Доступ к $ _SESSION из-за пределов Joomla - PullRequest
0 голосов
/ 06 ноября 2011

Я использовал Joomla 1.5 для сайта, который я разработал для игровой компании. Часть сайта состоит из генератора персонажей для игры, которую они разработали. Проблема в том, что пользователи хотят иметь возможность распечатывать листы символов без окружающего его шаблона Joomla.

Что касается специфики, у меня установлено расширение directphp, и весь генератор написан на PHP (с небольшим JavaScript для обработки вещей, которые PHP не может). Поскольку генератор охватывает несколько десятков вызовов страницы, имеет смысл хранить все в $ _SESSION. Все это работает правильно. В попытке сделать принтер для печати конечных листов удобным, я попытался перенаправить пользователя на страницу за пределами Joomla (хотя на том же сервере и даже в той же папке), но не могу получить доступ к данным $ _SESSION с этой новой страницы.

Я видел несколько постов (несколько на этом сайте), которые указывают на загрузку Joomla Framework и доступ к нему таким образом, который я пробовал, но данные, которые я искал, похоже, там не содержатся. Кто-нибудь сталкивался с этой проблемой раньше или знает, как получить эти данные?

1 Ответ

1 голос
/ 07 ноября 2011

Вы делаете этот ПУТЬ сложнее, чем нужно. Вам не нужно писать дополнительный код, чтобы выполнить то, что вы пытаетесь сделать. Чтобы напечатать наш вывод компонента без всего шаблона Joomla, вы просто добавляете ?tmpl=component к своим URL-адресам, и Joomla будет отображать только вывод компонента без какого-либо шаблона. Если вы хотите присвоить ему пользовательскую таблицу стилей или что-то особенное, вы также можете добавить переопределение шаблона, добавив файл с именем component.php в папку шаблонов.

Чтобы управлять CSS на странице, вы можете добавить суффиксы класса страницы в пункты меню. Затем добавьте этот код в index.php, чтобы вы могли их использовать.

Где-то в голове добавить это:

$menu = &JSite::getMenu();
$active = $menu->getActive();
$pageclass = "";
if (is_object( $active )) :
    $params = new JParameter( $active->params );
    $pageclass = trim($params->get( 'pageclass_sfx' ));
endif;

Замените тег вашего тела следующим:

<body id="<?php echo $pageclass ? $pageclass : 'default'; ?>">

Любая страница, для которой вы не указали суффикс класса страницы, будет использовать default в качестве идентификатора тела, любая, которую вы делаете, будет использовать то, что вы указали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...