我的要求是限制某个特定国家(例如:奥地利)IP的内容元素。这意味着访问奥地利知识产权网站的用户应该可以看到内容元素,对于所有其他用户来说,它应该是隐藏的。我正在使用geoip解决方案来检查国家/地区。我写了一个用户函数来实现这个功能。我写了一个小扩展名,并根据国家设置了隐藏标志1和0。但是由于TYPO3缓存,我想每次清除缓存以反映前端的变化。我将扩展名包含为USER_INT,并且扩展名是不可缓存的。但不幸的是不工作。功能性工作,但由于缓存更改不实时反映。限制TYPO3中IP的内容元素
$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 /国家的内容元素?或者你们可以建议一个解决方案来解决这个问题吗?
我的方法是创建我自己的未缓存的插件。在这个插件中,用户可以选择要显示的内容元素,以及内容应该可见/不可见的区域。然后,该插件仅呈现内容元素,或者不显示,具体取决于远程用户IP。 – Jost
你能想象通过ajax实现这样的过滤内容吗?然后,你会避免与缓存机制 – jokumer