Селектор размера текста PHP на сайте Drupal работает только при входе в систему - PullRequest
1 голос
/ 20 января 2010

У меня есть функция выбора размера текста PHP на сайте Drupal:

Он использует этот селектор ...:

<ul id="font-sizes">
        <li class="one"><a href="<?php global $base_url; print $base_url;?>/sites/all/themes/x/resize.php?set=small">Normal Font-Size</a></li>
        <li class="two"><a href="<?php global $base_url; print $base_url;?>/sites/all/themes/x/resize.php?set=medium">Medium Font-Size</a></li>
        <li class="three"><a href="<?php global $base_url; print $base_url;?>/sites/all/themes/x/resize.php?set=large">Large Font-Size</a></li>
</ul>

... которая изменяет ссылку на таблицу стилей ...:

<link rel="stylesheet" type="text/css" media="screen"  href="<?php global $base_url; print $base_url;?>/sites/all/themes/x/<?php echo isset($_COOKIE['sitestyle'])?$_COOKIE['sitestyle']:'small'; ?>.css" />

... используя этот файл (resize.php):

<?php setcookie ('sitestyle', $_GET['set'], time()+31536000,'/', 'mysite.co.uk', '0'); header("Location: ".$_SERVER['HTTP_REFERER']); ?>

Теперь моя проблема в том, что он работает нормально при входе в CMS (в качестве основного администратора или роли нижнего уровня), , но он просто не работает при доступе к сайту как анонимному пользователю . Я прошел через настройки разрешений, но я не вижу ничего, что могло бы повлиять на это. Поэтому я предполагаю, что это связано с некоторыми высокоуровневыми средствами доступа к PHP, которые мне недоступны.

Есть идеи?

1 Ответ

2 голосов
/ 20 января 2010

Drupal часто устанавливается для кэширования страниц для анонимных пользователей. Таким образом, даже если файл cookie установлен, возвращаемая страница будет такой же.

Если ваш сервер может справиться с нагрузкой, вы можете отключить кэширование на странице производительности администратора, и тогда оно должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...