Если вы вызываете getcates('one'), вы передаёте параметр $nom, равный 'one'
Если вы вызываете getcates('two'), вы передаёте параметр $nom, равный 'two' и т.д.
В результате в методе $this->config[$nom.'catevideos'] превращается в
$this->config['onecatevideos'] или $this->config['twocatevideos'] и т.д.
Вот простой примерчик, как это работает
Тоесть, всё делает одна функция (write), а не три (writeone, writetwo, writethree);
$this->config[$nom.'catevideos'] не надо менять, а вот
$this->url ругаться не будет, поэтому смотрите, получаете вы то, что нужно или нет и если нет, то возможно
придётся заменить $this->url на $this->config["url"];
Просто я не знаю, как вы определяли поля класса и какие там взимосвязи и зависимости
Да. Вы сведёте несколько функций к одной.
Единственное, обратите внимание в методе
на $this->url и $this->key, как себя поведут и будут ли выскакивать ошибки?
Да, хотел вам это и написать.
переменные вида $this->value заменить на $this->config['value'],
а вида $value на $config['value']
Ну, теперь видите, сколько лишних и ненужных переменных инициализировали
Ну здесь вы собираете в массив для записи в файл. тут не надо
Нет необходимости что-то делать с $_SESSION исходя из сделанных изменений
Да, правильно
Смотрите, вы заменили
$settings = unserialize(base64_decode($infotxt));
на
$config = unserialize(base64_decode($infotxt));
и убрали все ненужные инициализации. У вас в коде
и до того, как изменили код было
но сейчас эти значения хранятся в массиве $config, следовательно нужно заменить
и тогда должно всё заработать. Так и с другими переменными, если ещё не заменили---------- Добавлено 29.07.2015 в 19:26 ----------
На лапше набираются опыта ))). Сначала функциональный подход, а потом, когда уже есть некая база, можно браться и за ООП и за MVC
Там были ненужные инициализации переменных, а так да - удобные функции.
А если прописав
$config = unserialize(base64_decode($infotxt))
вместо
$settings = unserialize(base64_decode($infotxt))
и убрав то, на что я указывал
в шаблонах вместо переменных вида
$zerocatename (или $this->zerocatename)
прописать
$config['zerocatename'] (или $this->config['zerocatename']),
то должно работать
Где вы используете переменные вида $zerocatename?
Ну как нет? ))) Они в $config, полученные отсюда $config = unserialize(base64_decode($infotxt));
Может я не понимаю, как там у вас устроено и морочу вам голову :))))
Smirnof, т.е у вас по сути из представленных вами двух файлов должно получится что-то типа этого
[Дублирую ваши комментарии]
Конфиг панели управления setup/config.php выглядит так,
где setting меняем на $config
Так выглядит конфиг самой "cms"
Вы его подключаете include ("setup/config.php");
Но из него убираете инициализации переменных
$zerocatename = $settings['zerocatename'];
$zerocatesearch = $settings['zerocatesearch'];
$zerocatevideos = $settings['zerocatevideos'];
$zeronumber = $settings['zeronumber'];
$zerosortingresults = $settings['zerosortingresults'];
$onecatename = $settings['onecatename'];
$onecatesearch = $settings['onecatesearch'];
$onecatevideos = $settings['onecatevideos'];
$onenumber = $settings['onenumber'];
$onesortingresults = $settings['onesortingresults'];
..........
$admin_username = $settings['admin_username'];
$admin_password = $settings['admin_password'];
так как у вас уже всё есть в массиве $settings
дальше в конфиге самой "cms"
исключаете объявление и инициализацию массива
$config = array(
// Your Site URL
"url" => "$url",
..............
ЕЩЕ КОД
//Slider
"zerocatename" => "$zerocatename",
"zerocatesearch" => "$zerocatesearch",
"zerocatevideos" => "$zerocatevideos",
"zeronumber" => "$zeronumber",
"zerosortingresults" => "$zerosortingresults",
//Category Home Page Video
"onecatename" => "$onecatename",
"onecatesearch" => "$onecatesearch",
"onecatevideos" => "$onecatevideos",
"onenumber" => "$onenumber",
так как он по сути дублирует $settings
и поскольку вы затем используете переменную $config, то чтобы не переписывать ниже идущий код - вы просто можете написать
$config=$settings;
// Server's timezone for more accurate data
"timezone" => "Russia/Moscow",
PS. если, конечно, я правильно понял в хитросплетениях файлов.
Ну вот, смотрите вы получили $settings = unserialize(base64_decode($infotxt));
затем у вас
дальше
........
"zerocatename" => $zerocatename,
т.е почему нельзя сразу сделать
"zerocatename" => $settings['zerocatename'],
а исходя из этого там, где потом используете $config['zerocatename'] использовать минуя все вышеприведённые манипуляции сразу $settings['zerocatename'] ?
Ну как в математике, если а=с и в=с, то а=в