带有ext:getcontentbyajax的TYPO3 4.7

带有ext:getcontentbyajax的TYPO3 4.7,ajax,typo3,frontend,Ajax,Typo3,Frontend,json输出不是由TYPO3版本中的Ext生成的。4.7. 它调用一个500内部服务器错误。在服务器日志中,我发现错误在/lib/class.tx_getcontentbyajax.php的第42行。 开关(t3lib_div::_GP('todo')){ 我发现了一个关于4.7的问题: t3lib\u div::GPvar()更改为t3lib\u div::\u GP() 当您将所有GPvar更改为_GP时,扩展工作正常 这里更改了getcontentbyajax扩展的main()形式/li

json输出不是由TYPO3版本中的Ext生成的。4.7. 它调用一个500内部服务器错误。在服务器日志中,我发现错误在/lib/class.tx_getcontentbyajax.php的第42行。
开关(t3lib_div::_GP('todo')){
我发现了一个关于4.7的问题:

t3lib\u div::GPvar()
更改为
t3lib\u div::\u GP()

当您将所有GPvar更改为_GP时,扩展工作正常

这里更改了getcontentbyajax扩展的main()形式/lib/class.tx_getcontentbyajax.php方法:

public function main(){

    switch(t3lib_div::_GP('todo')){ 
        case 'pagebrowser':
            $href = str_replace(t3lib_div::getIndpEnv('TYPO3_SITE_URL'), '', t3lib_div::_GP('href')); // IE6 has problems
            $requestedPage = file_get_contents(urldecode(t3lib_div::getIndpEnv('TYPO3_SITE_URL') . $href));
            /*preg_match('/<div.*?id\=[\"]{0,1}' . t3lib_div::GPvar('part') . '[\"]{0,1}.*?>[\r\n]{0,2}<!--ajaxreplace-->[\s]{0,}(.*?)[\s]{0,}<!--ajaxreplace-->[\r\n]{0,2}<\/div>/s', $requestedPage, $matches);*/
            preg_match('/<!--ajaxreplace-->(.*?)<!--ajaxreplace-->/s', $requestedPage, $matchesContent);
            preg_match('/<title>(.*?)<\/title>/s', $requestedPage, $matchesTitle);

            if(array_key_exists(1, $matchesContent)){
                if(array_key_exists(1, $matchesTitle)){
                    $this->data['title'] = $matchesTitle[1];
                }
                $this->data['content'] = $matchesContent[1];
                $this->data['success'] = true;
            } else {
                $this->data['content'] = 'An error occured, please reload the site or <a href="' . t3lib_div::_GP('href') . '" class="no-ajax">click this link</a> to load your desired page.';
                $this->data['success'] = false;
            }

            // hook
            if (is_array($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['getcontentbyajax']['mainHook'])){
                foreach ($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['getcontentbyajax']['mainHook'] as $_classRef){
                    $_procObj = & t3lib_div::getUserObj($_classRef);
                    $this->data = $_procObj->extraGlobalMarkerProcessor($this, $this->data);
                }
            }
        break;
    }
    echo json_encode($this->data);
}
public函数main(){
开关(t3lib_div::_GP('todo')){
案例“页面浏览器”:
$href=str_replace(t3lib_div::getIndpEnv('TYPO3_SITE_URL'),'',t3lib_div::_GP('href');//IE6有问题
$requestedPage=file_get_contents(urldecode(t3lib_div::getIndpEnv('TYPO3_SITE_URL')。$href));
/*preg_match('/[\r\n]{0,2}[\s]{0,}(.*?[\s]{0,}[\r\n]{0,2}/s',$requestedPage,$matches)*/
预匹配(“/(.*?)/s”,$requestedPage,$matchesContent);
preg_match(“/(.*?)/s”,$requestedPage,$matchestle);
如果(数组\键\存在(1,$matchesContent)){
如果(数组\键\存在(1,$matchestile)){
$this->data['title']=$matchestile[1];
}
$this->data['content']=$matchesContent[1];
$this->data['success']=true;
}否则{
$this->data['content']='发生错误,请重新加载网站或加载所需页面';
$this->data['success']=false;
}
//钩子
if(是数组($GLOBALS['TYPO3\u CONF\u VARS']['EXTCONF']['getcontentbyajax']['mainHook'])){
foreach($GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['getcontentbyajax']['mainHook']as$\u classRef){
$\u procObj=&t3lib\u div::getUserObj($\u classRef);
$this->data=$\u procObj->extralGlobalMarkerProcessor($this,$this->data);
}
}
打破
}
echo json_encode($this->data);
}

感谢分享-还有什么问题吗?t3lib_div::GPvar()在TYPO3 3.6中被弃用,并在TYPO3 4.6中被删除。请改用t3lib_div::GP。