Настройки для сайта удобно хранить в файле конфигурации.
Например создать файл в application/config/app.php
Код:
<?php defined('SYSPATH') or die('No direct script access.');
return array(
'sitename' => 'Разработка на Kohana',
'siteslogan' => 'Быстрая разработка сайтов на фреймворке Kohana 3.2',
'copy' => '© Все права защищены, 2012.',
'blog' => array(
'per_page_frontend' => 3,
'per_page_backend' => 15,
'image_thumb_width' => 160,
'image_thumb_height' => 130,
'image_thumb_quality' => 70,
),
);
Доступ к настройкам осуществляется так:
Код:
$config = $Kohana::$config->load('app');
echo $config('sitename');
echo $config('blog.per_page_frontend');
echo $config('blog.image_thumb_height');
Но в Kohana нет метода save(), чтобы можно было сохранить эти настройки.
Тогда мы сделаем так: создаем в application/classes/ папку config в ней файл group.php с таким содержимым:
Код:
<?php defined('SYSPATH') or die('No direct script access.');
class Config_Group extends Kohana_Config_Group
{
public function save()
{
$files = Kohana::find_file('config', $this->_group_name);
if (count($files) == 1)
$filename = $files[0];
else
$filename = $files[count($files)-1];
file_put_contents($filename, $this->encode($this->getArrayCopy()));
}
protected function encode($array, $pref = "\t")
{
if ($pref == "\t")
$res = "<?php defined('SYSPATH') or die('No direct script access.');\n\nreturn array(\n";
else
$res = "array(\n";
foreach ($array as $i => $v)
$res .= $pref . (!is_numeric($i) ? "'" . str_replace("'", "\\'", $i) . "' => " : "") .
(is_array($v)
? self::encode($v, $pref . "\t")
: (is_numeric($v)
? $v
: (is_bool($v)
? ($v ? 'true' : 'false')
: "'" . preg_replace("/(?<!\\\)'/ui", "\\'", str_replace("\\'", "\\\\\\'", $v)) . "'"))) . ",\n";
return $res . substr($pref, 0, -1) . ($pref == "\t" ? ");" : ")");
}
}
Теперь нам доступен метод save()
Код:
$config = $Kohana::$config->load('app');
$config['sitename'] = 'Мой сайт';
$config['siteslogan'] = 'Мой первый сайт';
$config->save();
Примечание. При сохранении убираются все комментарии, если они были в изначальном файле, лишние пробелы.
P.S. Решение не мое, взято отсюда:
http://phpforum.ru/index.php?s=89a5be00 ... opic=56608 Там, кстати, есть что скачать и посмотреть. Есть и видеоурок: "Пишем редактор строк i18n"
Решение полезное и хорошее, я им пользуюсь, думаю Alehandr мне простит, что я здесь разместил)