Что я увидел
Грубо говоря, у вас
$a = $settings['a'];
$b = $settings['b'];
$c = $settings['c'];
Затем вы делаете
$config = array(
'a'=>$a,
'b'=>$b,
'c'=>$c,
);
В итоге мы по сути получаем $config = $settings;
Так почему сразу не использовать $settings?
Ну так, с наскоку, вашу архитектуру не понять :)
Просто несколько замечаний:
Зачем инициализировать столько новых переменных
$zerocatename = $settings['zerocatename'];
$zerocatesearch = $settings['zerocatesearch'];
$zerocatevideos = $settings['zerocatevideos'];
если сразу можно использовать элемент массива $settings['zerocatename'] там, где вы собираетесь использовать $zerocatename ну и т.д. Экономьте ресурсы.
Запись переменных в качестве значений элементов массива не требует кавычек, а сами ключи старайтесь заключать в одинарные кавычки
// Your Site URL
'url' => $url,
//Slider
'zerocatename' => $zerocatename,
'zerocatesearch' => $zerocatesearch,
Ну и пытайтесь осваивать тот же mysql
Как говорится, абы желание и всё получится
Ну ТС только учится и постепено придёт к пониманию от простого к сложному. Как и мы когда-то
И перед каждой записью в таблицу ALTER TABLE :)
Из примера ТС переменные переменных не подойдут, ибо всё свелось к одному методу
Если у вас будет десяток методов, которые можно свести к одному, и придётся что-то менять, то сами понимаете, что придётся их все лопатить, а так достаточно изменить что-то в одном.
Но если вдруг возникнут какие-то отдельные дополнительные условия для one, two и т.д., ну например для каждого из них изменится хост - для one https_://www.googleapisxxxx.com, для two - https_://www.bbbaxxxx.com, ну или ещё что-то, когда нельзя что-то универсилизировать, то метод обрастёт кучей if, else. Но в данном случае вряд ли, просто пример неудачный - что пришло в голову.
Количество запросов не уменьшится да и выигрыша в скорости не будет, если вы конечно не планировали наплодить миллион однотипных методов.
Просто таким образом удобнее поддерживать и соправождать и вообще-то так оно и должно быть
Не поле (переменная), а метод (функцию) как я понимаю
Да, возможно, например
И заменяете вызовы getonecate..., ...gettwocate на getcates($id, 'one'), getcates($id, 'two') и т.д
Не увидел, где у вас в методе используется $id? Может он не нужен,
тогда метод protected function getcates($nom)
а вызовы getcates('one'), getcates('two')
<div class="section-box">
<?php if(isset($this->config["onecatename"]) && $this->config["onecatename"]!=''):?>
<div class="section-header">
<h2 class="section-title">
<a class="name-link" href="<?php echo $this->config["url"] ?>/search/<?php echo $this->config["onecatesearch"] ?>">
<span class="name"><?php echo $this->config["onecatename"] ?></span>
</a>
</h2>
<a class="more-link" href="<?php echo $this->config["url"] ?>/search/<?php echo $this->config["onecatesearch"] ?>"><span>More <i class="mini-arrow-right"></i></span></a>
</div>
<?php endif;?>
<div class="section-content grid-small"><div class="nag cf">
<div class="my-trailers-slider"><?php echo $this->getonecate() ?></div>
Проверяет, определена ли переменная и если да и не равна пустой строке, то выводит.
У меня это висит уже неделю
Вы это кому? Гипотетическому студенту или автору темы?
В совете - такое принебрежение к человеческой личности и, по-моему, ничем немотивированное презрение. В таких советах, уж точно, кому надо, - не нуждаются :)