我需要在Drupal模板中运行PHP代码片段并阻止它被缓存。 PHP代码段嗅探cookie,如果找到,则返回基于cookie值的消息。
即:
if(isset($_GET['key'])) {
$cookievalue = $_GET['key'];
}
if(isset($_COOKIE['cookname'])) {
$cookievalue = $_COOKIE['cookname'];
}
switch ($cookievalue) {
case hmm01: echo "abc";
break;
case hmm02: echo "def";
break;
case hmm03: echo "ghi";
break;
default: echo "hello";
}
现在,Drupal根据首次缓存页面的时间并根据当时使用的cookie随机呈现邮件。
我无法看到关于如何进行此操作的大量信息 - 似乎您必须关闭页面的缓存而不是运行未缓存的PHP代码。
社区是否可以根据我发布的信息指导我如何使用关于Drupal模板和PHP的正确技术,或者将我引导到可能对我的情况有用的指南或教程?
答案 0 :(得分:1)
你的问题是Drupal缓存页面这是一件好事,因为否则你可能会获得巨大的性能。
一个解决方案虽然不那么漂亮,但是让js用Ajax发布数据。由于Drupal不缓存帖子请求,这可能是一个解决方案。然而,它依赖于js并提出额外的请求,这需要额外的系统资源。但至少它比disbling页面缓存更好。
在考虑之后,我认为更好的解决方案是创建一个自定义块。由于Drupal块具有自己的缓存系统,因此您应该能够获得所需的功能。使用hook_block