在TYPO3中限制带有IP的内容元素


Restrict content elements with IP in TYPO3

我的要求是限制具有特定国家IP的内容元素(例如:奥地利)。这意味着从奥地利ip访问网站的人应该可以看到内容元素,而对所有其他用户来说,它应该是隐藏的。我正在使用geoip解决方案来检查国家。我写了一个用户函数来实现这个特性。我写了一个小扩展,并设置隐藏的标志1和0基于国家。但是由于TYPO3缓存,我想每次都清除缓存以反映前端的变化。我将扩展包含为USER_INT,并且扩展是不可缓存的。但不幸的是,这不起作用。功能正常,但由于缓存更改不能实时反映

$uid = 175; // uid of the content element needs to be hidden         
$geoplugin = new 'geoPlugin();
$geoplugin->locate();
$countryCode = $geoplugin->countryCode;
if( $countryCode == 'AT' ){
    $GLOBALS['TYPO3_DB']->exec_UPDATEquery('tt_content', 'uid IN ('.$uid.')', array('hidden' => 0));
}else{
    $GLOBALS['TYPO3_DB']->exec_UPDATEquery('tt_content', 'uid IN ('.$uid.')', array('hidden' => 1));
}

在TYPO3中是否有任何方法可以限制特定IP/国家的内容元素?或者你们能建议解决这个问题吗?

Jost的解决方案比根据访问者的国家在数据库中隐藏元素要简单得多。顺便说一下,数据库可能在每次用户访问时都发生了变化。