Swir

Рейтинг
95
Регистрация
19.11.2014
Smirnof:
Это совсем мне понятно

Единственное, появился вопрос, куда делось все остальное

$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'];
и т.д.
как об этом узнает скрипт, если ни в одном из конфигов этого нет?
Из settings.txt файла?

Где вы используете переменные вида $zerocatename?

Ну как нет? ))) Они в $config, полученные отсюда $config = unserialize(base64_decode($infotxt));

Может я не понимаю, как там у вас устроено и морочу вам голову :))))

Smirnof, т.е у вас по сути из представленных вами двух файлов должно получится что-то типа этого

[Дублирую ваши комментарии]

Конфиг панели управления setup/config.php выглядит так,

где setting меняем на $config


<?php

if (file_exists($filename)) {
$infotxt = file_get_contents($filename);
$config = unserialize(base64_decode($infotxt));

} else {
echo "The file configuration file is missing. Please run the setup again";
}

?>

Так выглядит конфиг самой "cms"


<?php
$filename="setup/settings.txt";
include ("setup/config.php");

// Server's timezone for more accurate data
"timezone" => "Russia/Moscow",

// Cache Data - If you notice anomalies, disable this. You should enable this when you get high hits
"cache" => TRUE,

// Enable mode_rewrite? e.g. user/login instead of index.php?a=user/login
"mod_rewrite" => TRUE,

// Enable Compression? Makes your website faster
"gzip" => TRUE,

);

// Include core.php
include ('Core.php');

?>
Smirnof:
Теперь вроде бы понял.
Т.е. подключать в конфиг "cms" - include ("setup/config.php");
нет нужды в таком случае?

В общем буду все пробовать. Спасибо.


p.s. вообще я позже хотел собрать все в одном конфиг файле, возможно то про что вы говорите это и есть.

Вы его подключаете 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. если, конечно, я правильно понял в хитросплетениях файлов.


Просто попробуйте прописать, ничего пока не стирая

$config=$settings;

перед
..............

// Server's timezone for more accurate data
"timezone" => "Russia/Moscow",

и проверьте, будет работать как работало или нет
Smirnof:
Может по тому, что сначала нужно получить-декодировать данные из другого конфига, не знаю :(
попробовал $settings['zerocatename']; - вроде не работает.
Еще попробую.

Спасибо!

Ну вот, смотрите вы получили $settings = unserialize(base64_decode($infotxt));

затем у вас

$zerocatename = $settings['zerocatename'];

дальше

$config = array(

........

"zerocatename" => $zerocatename,

т.е почему нельзя сразу сделать

$config = array(

........

"zerocatename" => $settings['zerocatename'],

а исходя из этого там, где потом используете $config['zerocatename'] использовать минуя все вышеприведённые манипуляции сразу $settings['zerocatename'] ?

Ну как в математике, если а=с и в=с, то а=в

Smirnof:
Спасибо, буду исправлять.


Я правильно понял, можно использовать
$settings['zerocatename'];
вместо
$zerocatename = $settings['zerocatename']; ?

В таком случае

будет работать?

Спасибо.

Что я увидел

Грубо говоря, у вас

$a = $settings['a'];

$b = $settings['b'];

$c = $settings['c'];

Затем вы делаете

$config = array(

'a'=>$a,

'b'=>$b,

'c'=>$c,

);

В итоге мы по сути получаем $config = $settings;

Так почему сразу не использовать $settings?

Smirnof:
Спасибо.
Да, я только учусь.

Ну так, с наскоку, вашу архитектуру не понять :)

Просто несколько замечаний:

Зачем инициализировать столько новых переменных

$zerocatename = $settings['zerocatename'];

$zerocatesearch = $settings['zerocatesearch'];

$zerocatevideos = $settings['zerocatevideos'];

если сразу можно использовать элемент массива $settings['zerocatename'] там, где вы собираетесь использовать $zerocatename ну и т.д. Экономьте ресурсы.

Запись переменных в качестве значений элементов массива не требует кавычек, а сами ключи старайтесь заключать в одинарные кавычки

$config = array(

// Your Site URL

'url' => $url,

//Slider

'zerocatename' => $zerocatename,

'zerocatesearch' => $zerocatesearch,

Ну и пытайтесь осваивать тот же mysql

Как говорится, абы желание и всё получится

kostyanet:
Swir, а, понял, по вашему коду понял - ему нужна карта, чтобы из массива брать данные по алиасу, или вроде того.

Отсюда сразу мысли пойти в этот конфиг и научить его выдавать $this->config->catvideos[$name];

Ну ТС только учится и постепено придёт к пониманию от простого к сложному. Как и мы когда-то

lutskboy:
используйте тип поля enum

И перед каждой записью в таблицу ALTER TABLE :)

kostyanet:


$func=$base_name.'_'.$event_name;
/* и вызываем ее */
$$func();

Если не угадал - расскажите на человеческом языке что означают те самые коды про ютубу.

Из примера ТС переменные переменных не подойдут, ибо всё свелось к одному методу

Smirnof:
Здорово!
Спасибо, буду пробовать. Как вы считаете, так правильнее будет?
Т.е. вместо кучи кода использовать подобный шаблон.
От этой манипуляции что-то в + изменится, скорость к примеру или уменьшится кол-во запросов (хотя у меня нет бд, на файле работает все) :)

Если у вас будет десяток методов, которые можно свести к одному, и придётся что-то менять, то сами понимаете, что придётся их все лопатить, а так достаточно изменить что-то в одном.

Но если вдруг возникнут какие-то отдельные дополнительные условия для one, two и т.д., ну например для каждого из них изменится хост - для one https_://www.googleapisxxxx.com, для two - https_://www.bbbaxxxx.com, ну или ещё что-то, когда нельзя что-то универсилизировать, то метод обрастёт кучей if, else. Но в данном случае вряд ли, просто пример неудачный - что пришло в голову.

Количество запросов не уменьшится да и выигрыша в скорости не будет, если вы конечно не планировали наплодить миллион однотипных методов.

Просто таким образом удобнее поддерживать и соправождать и вообще-то так оно и должно быть

Всего: 174