我正在使用一个非常简单的样式表开关由PHP。它一直很好,但几天前我打开缓存模式,现在它只适用于登录用户。如果关闭缓存模式,它将再次为两个用户工作。Drupal缓存和样式表开关
基本上代码看起来是这样
在page.php文件头
<?php
if(isset($_COOKIE['style'])){
$style=$_COOKIE['style'];
} else {
$style='green';
}
?>
<link type="text/css" rel="stylesheet" href="/css/<?php echo $style ?>.css">
它通过
<a href="http://www.mydomain.com/switch.php?style=blue">Blue</a>
切换在switch.php
<?php setcookie('style', $_GET['style'], time()+31536000);
header('Location:'.$HTTP_SERVER_VARS['HTTP_REFERER']);
?>
我做了很多研究,但找不到正确的方法。如果可以的话请帮忙。谢谢
非常感谢你的回应。我之前看过这篇文章。我没有尝试它,因为我希望用户能够在主菜单上而不是在页面上切换它。 onclick =“setActiveStyleSheet('')似乎有点难以在主菜单上实现。可能是我应该放弃对此的偏好。如果我打开缓存模式,客户端切换器可能是我唯一的选择。 – mesmer 2009-10-18 08:22:07
+1 - 启用缓存几乎可以“禁用”任何自定义PHP代码,这些代码会改变为特定URL提供服务的页面,因为该页面确实将作为直接从缓存表中取得的“静态”版本提供。客户端解决方案将是明显的解决方法。 – 2009-10-18 14:21:55