HtmlHelper
-
class HtmlHelper(View $view, array $settings = array())
CakePHP における HtmlHelper の役割は、 HTML に関連するオプションを
より簡単、高速に作成し、より弾力的なものに変えることです。
このヘルパーを使うことで、アプリケーションの足どりはより軽くなり、
そしてドメインのルートが置かれている場所に関して、よりフレキシブル
なものになるでしょう。
HtmlHelper にある多くのメソッドは $options
という
引数を持っています。これにより、いかなる追加属性もタグに
付け加えることができます。これは $options
を使う
方法についての簡単な例です。
付けられる属性: <tag class="someClass" />
配列での指定: array('class' => 'someClass')
付けられる属性: <tag name="foo" value="bar" />
配列での指定: array('name' => 'foo', 'value' => 'bar')
注釈
HtmlHelpler は既定ではすべてのビューで使うことができます。
このヘルパーが存在しないという旨のエラーが発生したとき、
たいていの原因はコントローラーで変数 $helpers
を手動で
設定した際、名前を書き忘れたことです。
HtmlHelper が出力するタグの変更
-
HtmlHelper::loadConfig(mixed $configFile, string $path = null)
HtmlHelper
組み込みのタグ設定は、 XH|TML に準拠したものです。
そのため、 HTML5 に準拠した HTML を生成するためには、新しいタグの設定を
作成して読み込む必要があります。出力されるタグを変更するためには、
app/Config/html5_tags.php
というファイルを作成し、以下の内容を記述します。
$config = array('tags' => array(
'css' => '<link rel="%s" href="%s" %s>',
'style' => '<style%s>%s</style>',
'charset' => '<meta charset="%s">',
'javascriptblock' => '<script%s>%s</script>',
'javascriptstart' => '<script>',
'javascriptlink' => '<script src="%s"%s></script>',
// ...
));
そのあと、 $this->Html->loadConfig('html5_tags');
と記述することでこのタグ設定をロードできます。
HtmlHelper を使ったパンくずリストの作成
-
HtmlHelper::getCrumbs(string $separator = '»', string|array|bool $startText = false)
CakePHP はパンくずリストを自動生成する組み込みメソッドを持っています。
設置するにはまず、レイアウトテンプレートに以下のようなコードを追加します。
echo $this->Html->getCrumbs(' > ', 'Home');
$startText
のオプションは1つの配列も受け付けます。
これにより、生成された最初のリンクへのさらなる制御を可能にします。
echo $this->Html->getCrumbs(' > ', array(
'text' => $this->Html->image('home.png'),
'url' => array('controller' => 'pages', 'action' => 'display', 'home'),
'escape' => false
));
text
または url
でないキーは、 $options
パラメータとして
link()
に渡されます。
バージョン 2.1 で変更: $startText
パラメータは配列も受け入れることができます。
-
HtmlHelper::addCrumb(string $name, string $link = null, mixed $options = null)
ビューでページのそれぞれにパンくずリストを作るため、
以下のコードを加えたとします。
$this->Html->addCrumb('ユーザー', '/users');
$this->Html->addCrumb('ユーザーの追加', array('controller' => 'users', 'action' => 'add'));
すると、レイアウトで getCrumbs
を書いたたところに、
"Home > ユーザー > ユーザーの追加" というパンくずリストが追加されます。
-
HtmlHelper::getCrumbList(array $options = array(), mixed $startText)
- パラメータ:
-
(X)HTML のリストとしてパンくずリストを返します。
このメソッドは、リストと要素の作成に HtmlHelper::tag()
を使用します。
getCrumbs()
と同じように使うには、あらゆるパンくずリストの項目が
加えられたオプションを使用します。 $startText
パラメータを設定すると
パンくずリストの最初のリンクとテキストを指定することができます。
これは、つねにパンくずリストにトップを含めておきたいときに便利です。
このオプションは getCrumbs()
の $startText
オプションと同じ働きをします。
バージョン 2.1 で変更: $startText
が追加されました。
バージョン 2.3 で変更: 'separator'と 'firstClass' 、 'lastClass' のオプションが追加されました。
バージョン 2.5 で変更: 'escape' オプションが追加されました。