从Joomla外部访问$_SESSION


Accessing $_SESSION from outside of Joomla

我在为一家游戏公司开发网站时使用了Joomla 1.5。网站的一部分由他们开发的游戏角色生成器组成。问题是,用户希望能够打印字符表,没有Joomla模板包围它。

至于细节,我已经安装了directphp扩展,整个生成器是用PHP编写的(用一点JavaScript来处理PHP不能处理的事情)。由于生成器跨越几十个页面调用,因此将所有内容存储在$_SESSION中是有意义的。所有这些都能正常工作。为了使最终的表单打印机友好,我尝试将用户重定向到Joomla之外的页面(尽管在同一服务器上,甚至在同一文件夹中),但我无法从这个新页面访问$_SESSION数据。

我已经看到了几个帖子(在这个网站上的几个),指出加载Joomla框架并以这种方式访问它,我已经尝试过了,但是我正在寻找的数据似乎不包含在那里。有人以前遇到过这个问题吗,或者知道如何获得这些数据吗?

你让这种方式变得比它需要的更困难。您不需要编写任何额外的代码来完成您正在尝试做的事情。为了打印没有所有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标签替换为:

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

任何你没有指定页面类后缀的页面将使用default作为正文ID,任何你做的将使用任何你指定的