Вы
помните, что в RunCms большинство файлов блокированы для перезаписи и
выполнения установленными соответствующими правами. Исключениями были
файлы конфигураций и папки сохранения конфигураций. Для этого эти файлы
и папки должны были быть перезаписываемыми и используются для
хранения данных, которые изменяются время от времени. Типичный пример -
данные конфигурации для нашего модуля. Мы можем сохранять
параметры из меню администрирования и использовать , читая
код, для наших блоков или страниц. Это далеко не единственное
использование, но достаточное для примера.
Создайте новую подпапку
mymodule/cache и скопируйте туда уже знакомый файл index.html .
Создайте новый файл в этой папке config.php. Установите права для папки
в 777 и config.php в 666 (index.html должен
остаться 644). Мы нуждаемся в двух ситуациях в коде. Одна, чтобы
записать конфигурацию и другая, чтобы её прочитать.
Сохранение
конфигурации несколько усложнено. Следующий код должен находиться в
admin/index.php. (Чтобы сделать это, мы должны добавить 'switch' - 'переключатель' в admin/index.php, чтобы иметь выбор различных
function configsave() {
// prepare the content we want (probably from a form not shown here)
$content = "<?PHPn";
$content .= "$mymoduleConfig['parameter1'] = value1 \n";
$content .= "$mymoduleConfig['parameter2'] = value2 \n";
$content .= "?>";
// open the config.php file (showing an error if it won't open)
and write the data
$filename = "../cache/config.php";
if ( $file = fopen($filename, "w") ) {
fwrite($file, $content);
fclose($file);
} else {
redirect_header("index.php", 1, _NOTUPDATED);
exit();
}
// reload index.php with a 'write successful' message
redirect_header("index.php", 1, _UPDATED);
exit();
}
Чтение намного проще:
include_once("./cache/config.php");
Вот.
Этот код вставит текущее содержание нашего файла конфигурации в наш
рабочий код, когда это потребуется. Это создаст массив, названный
$mymoduleConfig с параметрами, и значениями записываемыми функцией. Таким образом, мы можем теперь обратиться к $mymoduleConfig['parameter1'], и это даст нам значение 'value1'.
Чтобы
показать более практический пример, мы могли бы хотеть установить число
цитат, которым мы показываем на странице. Чтобы сделать это, напишите
код например: