代码之家  ›  专栏  ›  技术社区  ›  baycisk

编辑typo3 CMS前端页面

  •  0
  • baycisk  · 技术社区  · 7 年前

    我得到一个使用typo3 cms的项目,任务很简单,在网站的头部分添加cookie使用通知。

    我以前从来没有做过typo3的工作,但我已经读过文档了。不知怎么的,我找不到要编辑的文件。即使是文档教程和文件结构也不同于我处理的项目。

    我也没有这个项目的任何项目文档,我不想让你做我的任务,但是我现在是空白的,不知道在哪里可以找到需要的相应文件。

    有什么建议或线索如何处理这个问题吗?

    根文件夹上的index.php如下:

    if (defined('E_DEPRECATED')) {
    error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
    } else {
        error_reporting(E_ALL ^ E_NOTICE);
    }
    
    
    // ******************
    // Constants defined
    // ******************
    
    define('PATH_thisScript', str_replace('//', '/', str_replace('\\', '/',
        (PHP_SAPI == 'fpm-fcgi' || PHP_SAPI == 'cgi' || PHP_SAPI == 'isapi' || PHP_SAPI == 'cgi-fcgi') &&
        ($_SERVER['ORIG_PATH_TRANSLATED'] ? $_SERVER['ORIG_PATH_TRANSLATED'] : $_SERVER['PATH_TRANSLATED']) ?
        ($_SERVER['ORIG_PATH_TRANSLATED'] ? $_SERVER['ORIG_PATH_TRANSLATED'] : $_SERVER['PATH_TRANSLATED']) :
        ($_SERVER['ORIG_SCRIPT_FILENAME'] ? $_SERVER['ORIG_SCRIPT_FILENAME'] : $_SERVER['SCRIPT_FILENAME']))));
    
    define('PATH_site', dirname(PATH_thisScript).'/');
    
    if (@is_dir(PATH_site.'typo3/sysext/cms/tslib/')) {
        define('PATH_tslib', PATH_site.'typo3/sysext/cms/tslib/');
    } elseif (@is_dir(PATH_site.'tslib/')) {
        define('PATH_tslib', PATH_site.'tslib/');
    } else {
    
    // define path to tslib/ here:
    $configured_tslib_path = '';
    
    // example:
    // $configured_tslib_path = '/var/www/mysite/typo3/sysext/cms/tslib/';
    
    define('PATH_tslib', $configured_tslib_path);
    }
    
    if (PATH_tslib=='') {
        die('Cannot find tslib/. Please set path by defining $configured_tslib_path in ' . htmlspecialchars(basename(PATH_thisScript)) . '.');
    }
    
    // ******************
    // include TSFE
    // ******************
    
    require (PATH_tslib.'index_ts.php');
    

    编辑: 添加@riccardo建议的界面截图(typo3版本4.4.4)

    enter image description here

    2 回复  |  直到 7 年前
        1
  •  0
  •   Riccardo De Contardi    7 年前

    你在运行哪个版本的typo3?正如Bernd所写,如果没有进一步的信息,很难帮助您……我将试着解释第一段,在那里你可以收集一些信息。

    1)使用具有管理权限的用户访问typo3后端

    2)尝试通过以下步骤识别主要的typoscript模板:

    Select TypoScript Template

    • 点击模板(1)
    • 点击带有typo3符号的“零”页面(2)
    • 您应该在右边看到一个打字脚本模板列表(3)。 单击标记为“is root”的那个

    2)之后,单击右侧区域的第一个下拉列表(使用“信息/修改”项并选择“TypoScript对象浏览器”(a.k.a.tsob)

    Select TSOB

    3)完成后,您应该看到一个表示典型脚本配置的“树”;

    • 确保选择了“设置”(1)
    • 搜索构建页面的对象,这很可能是 page = PAGE (2)

    TypoScript TSOB tree

    [已编辑答案]

    恐怕我得要一份调查补充资料

    你能确定你的网站标题呈现在不同对象的哪一部分吗?我的嫌疑犯会集中在 [home2] [outer_frameset] 对象; 希望它们包含通常的数组,比如:

    home2.10 = something 
    

    我认为最快(也是最脏)的附加方法 之前 整页应该是

    home2.1 = TEXT
    home2.1.value = <div>whatever your message would be </div>
    

    我不知道你是否需要比这更复杂的东西…

    我承认我从来没有在typo3中使用过框架,我想我上次使用框架时是……呃……大概9年前吧。

        2
  •  0
  •   Bernd Wilke πφ    7 年前

    不要更改index.php!!
    因为它是核心的一部分,在typo3更新时会被覆盖。

    因为有很多配置页面的选项,所以没有一个配方可以匹配所有的页面。

    我最好的建议是:找一个typo3 profi来查看您的安装,这样他就可以找到负责页面呈现的文件,并且可以包括cookie通知。
    还有一些扩展可以很容易地在页面中呈现这样的通知。但这一切都取决于安装的配置方式。没有进一步的了解就没什么可说的了。