【问题标题】:Typo3 eID, how to access configTypo3 eID,如何访问配置
【发布时间】:2011-12-11 17:34:06
【问题描述】:

我刚刚在 Typo3 中创建了一个 eID。我不知道如何从 Typo3 实例访问我的插件的配置数据。

我已经尝试了链接中的代码,但它不想工作。在调用“$TSFE->getConfigArray();”时,我不断收到异常“未找到 TypoScript 模板!”

http://lists.typo3.org/pipermail/typo3-dev/2006-December/021392.html

有什么想法吗?

谢谢。

【问题讨论】:

    标签: typo3


    【解决方案1】:

    在 eID 模式下,仅加载常规 TYPO3 前端的一小部分。不幸的是,没有加载 TypoScript。要仍然访问 TypoScript 配置,您需要手动加载它需要这样做的组件。不幸的是,这可能有点让人头疼。因此,在某些情况下,仅加载包含单个插件且不包含任何其他内容(没有标题等)的页面可能会更容易。

    如果您确实想自己加载 TypoScript 模板,您可以尝试以下方法:

    require_once(PATH_tslib.'class.tslib_fe.php');
    require_once(PATH_t3lib.'class.t3lib_userauth.php' );
    require_once(PATH_tslib.'class.tslib_feuserauth.php');
    require_once(PATH_t3lib.'class.t3lib_cs.php');
    require_once(PATH_tslib.'class.tslib_content.php') ;
    require_once(PATH_t3lib.'class.t3lib_tstemplate.php');
    require_once(PATH_t3lib.'class.t3lib_page.php');
    
    $TSFEclassName = t3lib_div::makeInstanceClassName('tslib_fe');
    $id = isset($HTTP_GET_VARS['id'])?$HTTP_GET_VARS['id']:0;
    
    $GLOBALS['TSFE'] = new $TSFEclassName($TYPO3_CONF_VARS, $id, '0', 1, '','','','');
    $GLOBALS['TSFE']->connectToMySQL();
    $GLOBALS['TSFE']->initFEuser();
    $GLOBALS['TSFE']->fetch_the_id();
    $GLOBALS['TSFE']->getPageAndRootline();
    $GLOBALS['TSFE']->initTemplate();
    $GLOBALS['TSFE']->tmpl->getFileName_backPath = PATH_site;
    $GLOBALS['TSFE']->forceTemplateParsing = 1;
    $GLOBALS['TSFE']->getConfigArray();
    
    $cObj = t3lib_div::makeInstance('tslib_cObj');
    

    这会初始化 TSFE 和 cObj,但也用于加载和解析 TypoScript 模板。你可能需要做一些修改(可能踢出一些东西)

    代码来自以下博客文章中的一位 cmets:http://sebastiaandejonge.com/blog/articles/2010/september/21/bringing-ajax-to-your-frontend-plugins/

    祝你好运!

    【讨论】:

    • 周末后我会看看这个。谢谢:D
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多