Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在TTU新闻记录的TYPO3调度程序任务中生成URL?_Php_Typo3_Scheduler_Tt News - Fatal编程技术网

Php 如何在TTU新闻记录的TYPO3调度程序任务中生成URL?

Php 如何在TTU新闻记录的TYPO3调度程序任务中生成URL?,php,typo3,scheduler,tt-news,Php,Typo3,Scheduler,Tt News,我目前正在为TYPO3(4.7.7)编写一个调度程序 在我的任务中,我需要一些tt_新闻记录的URL。我试图像在“pxa_newstofb”扩展中那样“引导”前端,但这不起作用。下面是我当前的类,它应该生成到新闻记录的链接: <?php abstract class tx_myextension_newshelper { /** * @var tslib_cObj */ protected $cObj; function __constru

我目前正在为TYPO3(4.7.7)编写一个调度程序

在我的任务中,我需要一些tt_新闻记录的URL。我试图像在“pxa_newstofb”扩展中那样“引导”前端,但这不起作用。下面是我当前的类,它应该生成到新闻记录的链接:

<?php

abstract class tx_myextension_newshelper {

    /**
     * @var tslib_cObj
     */
    protected $cObj;

    function __construct() {
    }

    /**
     * Creates a URL for the given news
     *
     * @param $news
     * @return string
     */
    public function link($news) {
        // Init frontend
        $this->initTSFE($news['pid']);

        $newsLink = $this->cObj->typoLink_URL(array(
            'no_cache' => false,
            'parameter' => $news['pid'],
            'additionalParams' => '&tx_ttnews[tt_news]=' . $news['uid'],
            'useCacheHash' => true
        ));

        if (substr($newsLink, 0, 7) != 'http://' || substr($newsLink, 0, 8) != 'https://') {
            $newsLink = $this->host($news) . $newsLink;
        }

        return $newsLink;
    }

    public function host($news) {
        return 'http://localhost/';
    }

    /**
     * Initialize frontend
     *
     * @param int $pageUid
     */
    public function initTSFE($pageUid = 1) {

        global $GLOBALS, $TSFE, $TYPO3_CONF_VARS;

        $this->cObj = t3lib_div::makeInstance('tslib_cObj');
        $temp_TTclassName = t3lib_div::makeInstance('t3lib_timeTrack');
        $GLOBALS['TT'] = new $temp_TTclassName();
        $GLOBALS['TT']->start();

        $TSFE = new tslib_fe($TYPO3_CONF_VARS, $pageUid, 0, 0);
        $TSFE->connectToDB();
        $TSFE->initFEuser();
        $TSFE->fetch_the_id();
        $TSFE->getPageAndRootline();
        $TSFE->initTemplate();
        $TSFE->forceTemplateParsing = 1;
        $TSFE->getConfigArray();
        $TSFE->initUserGroups();
        $TSFE->initTemplate();
        $TSFE->determineId();

        $GLOBALS['TSFE'] = $TSFE;
        $this->cObj->start(array(),'');
    }
}

?>

每次我执行任务时,都会显示一个没有css的“404”(前端-)页面。为tt_新闻扩展创建前端URL是否有智能解决方案


系统:带有RealURL的Typo3 CMS 4.7.7介绍包。

好的解决方案是使用Dmitry Dulepov的名为“pagepath”的扩展。
您可以在这个ext中阅读文档—很简单。

好的解决方案是使用Dmitry Dulepov的扩展名“pagepath”。
您可以阅读此分机中的文档-很简单。

是。我用的是介绍包。我更新了我的问题,所以按照Krystian的回答做。是的。我用的是介绍包。我更新了我的问题。所以按照Krystian的回答做。谢谢,这很有效。我按如下方式更改了link()函数:
$newsLink=tx\u pagepath\u api::getPagePath($this->getSingleViewPageId($news['pid')),数组('tx\u ttnews[tt\u news]'=>$news['uid')
getSingleViewPageId返回新闻的singleView页面ID,该ID将存储在TSConfig中<代码>公共函数getSingleViewPageId($newsFolderPageId){$PageTconfig=t3lib\u BEfunc::getPagesTSconfig($newsFolderPageId);返回@$PageTconfig['tx\u ttnews.]['singlePid'];}谢谢,这很有效。我按如下方式更改了link()函数:
$newsLink=tx\u pagepath\u api::getPagePath($this->getSingleViewPageId($news['pid')),数组('tx\u ttnews[tt\u news]'=>$news['uid')
getSingleViewPageId返回新闻的singleView页面ID,该ID将存储在TSConfig中<代码>公共函数getSingleViewPageId($newsFolderPageId){$PageTconfig=t3lib\u BEfunc::getPagesTSconfig($newsFolderPageId);返回@$PageTconfig['tx\u ttnews.]['singlePid'];}