Как НЕ писать file_put_contents на КАЖДУЮ страницу загрузки

Я полностью новичок в PHP (2 недели), и я создал простой скрипт для Joomla, который будет сохранять параметры из параметров моей области администрирования, помещать эти значения в формат CSS и сохранять файл. Это целый длинный скрипт CSS, но вот пример этого...

<?php
ob_start();
?>

<?php
////////////// Custom colours set from the admin panel
if ($this->params->get('templateColor'))
{
?>
/* <?php echo($template); ?>: Custom Auto-Generated CSS Colors As Set in Admin Template     Parameters */

body.site {
border-top: 3px solid <?php echo $this->params->get('templateColor');?>;
background-color: <?php echo $this->params->get('templateBackgroundColor');?>
}
<?php
}
?>
 <?php

$googlefontcss = ob_get_contents();
ob_end_clean();
file_put_contents('templates/'.$template.'/css/googlefonts.css', $googlefontcss);
?>

Вот моя проблема, все эти вещи хранятся в файле помощника, который вызывается из моего индексного файла, но это приводит к тому, что файл CSS создается каждый раз, когда страница загружается, а не когда я настраиваю и сохраняю свои параметры в бэкэнд Конечно, если я получу много трафика, это вызовет нагрузку на сервер, даже если файл css довольно короткий (его длина больше, чем показано здесь).

Будучи новичком, я понятия не имею, как избежать этой проблемы, и вместо этого мне нужно записать файл только тогда, когда параметры изменены и сохранены. Кто-нибудь предлагает лучший способ?

1 ответ

Я действительно не понимаю, зачем тебе это вообще делать. Во-первых, у Joomla есть способ сохранить параметры для шаблона и использовать их, что вы и делаете. Он также имеет стандартный способ включить файл CSS в ваш шаблон. Вы можете легко сделать это с помощью плагина, если вы не хотите добавлять Style() непосредственно в файл шаблона. Также для google font api просто посмотрите, как это делает protostar.

Я действительно думаю, что вам нужно посмотреть на то, как шаблоны работают в Joomla - это не модифицирует ядро ​​для изменения индекса вашего шаблона, если вы не используете один из включенных шаблонов - в этом случае скопируйте его, что вы можете сделать с одним нажмите в 2.5 и 3.

Если вам действительно нужно это сделать, создайте плагин. В JED плагинов есть много примеров включения файла в шаблон. http://extensions.joomla.org/extensions/core-enhancements/coding-a-scripts-integration/head-code

Другие вопросы по тегам