Что лучший способ состоит в том, чтобы создать регионы в Вашем расположении CakePHP, подобном Виджетам WordPress или Блокам Drupal?

self (не $ self) относится к типу класса , где $this относится к текущему экземпляру класса. self предназначен для использования в статических функциях-членах, чтобы позволить вам получить доступ к статическим переменным-членам. $this используется в нестатических функциях-членах и является ссылкой на экземпляр класса, для которого была вызвана функция-член.

Поскольку this является объектом, вы используете его следующим образом: $this->member

Поскольку self не является объектом, это в основном тип, который автоматически ссылается на текущий класс, вы используете его как : self::member

1
задан Chuck Burgess 19 January 2013 в 19:24
поделиться

2 ответа

Если под регионами вы имеете в виду специальный «контейнер содержимого» (никогда не использовал WP / Drupal), то это очень просто.

Есть несколько способов сделать это, но тот, который появился На мой взгляд, сначала было следующее:

  1. Создайте помощник (или целый плагин) для обработки логики «какой контент в какой контейнер входит». Это не должно быть слишком сложно, потому что у вас есть много служебных классов Cake, которые помогут вам с этим (например, Configure class ). Очевидно, это должно быть настроено конечным пользователем.
  2. Создайте контейнеры в макете, например:

     
    outputContent ("left"); ?>
  3. Два варианта:

    • Контент должен быть основан на элементах; или
    • Контент должен быть основан на настраиваемых плагинах (которые фактически выполняют свои функции и выводят контент)

Примечание : Вероятно, есть более эффективные способы достичь того, что вы хотите, это только первое, что пришло мне в разум. Я бы порекомендовал составить план на бумаге, прежде чем вы начнете писать код, это повысит ваши шансы найти лучший способ для вашего приложения.

2
ответ дан 3 September 2019 в 01:17
поделиться

Недавно я создал помощник по боковой панели, который может вам пригодиться.

Вы определяете содержимое полей в элементах 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.

См. задокументированный код для получения дополнительных сведений:

SidebarHelper on GitHub

0
ответ дан 3 September 2019 в 01:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: