self
(не $ self) относится к типу класса , где $this
относится к текущему экземпляру класса. self
предназначен для использования в статических функциях-членах, чтобы позволить вам получить доступ к статическим переменным-членам. $this
используется в нестатических функциях-членах и является ссылкой на экземпляр класса, для которого была вызвана функция-член.
Поскольку this
является объектом, вы используете его следующим образом: $this->member
Поскольку self
не является объектом, это в основном тип, который автоматически ссылается на текущий класс, вы используете его как : self::member
Если под регионами вы имеете в виду специальный «контейнер содержимого» (никогда не использовал WP / Drupal), то это очень просто.
Есть несколько способов сделать это, но тот, который появился На мой взгляд, сначала было следующее:
Создайте контейнеры в макете, например:
php echo $ yourHelper-> outputContent ("left"); ?>
Два варианта:
Примечание : Вероятно, есть более эффективные способы достичь того, что вы хотите, это только первое, что пришло мне в разум. Я бы порекомендовал составить план на бумаге, прежде чем вы начнете писать код, это повысит ваши шансы найти лучший способ для вашего приложения.
Недавно я создал помощник по боковой панели, который может вам пригодиться.
Вы определяете содержимое полей в элементах Cake, а затем добавляете их, вызывая ...
$sidebar->addBox(array('element'=>'my_sidebox_element');
.. . это будет отображать содержимое views / elements / my_sidebox_element
В качестве альтернативы вы можете указать содержимое блока inline:
$sidebar->startBox(array('title' => 'My Inline Box'));
<p>blah <b>blah</b> <span>blah</span></p>
$sidebar->endBox();
Вызов файла макета
echo $sidebar->getSidebar();
... и каждый из ваших блоков будет визуализируется как divs
Технически говоря, это не нужно использовать в качестве «боковой панели» - это в конечном итоге зависит от того, как вы визуализируете макет с помощью CSS.
См. задокументированный код для получения дополнительных сведений: