カテゴリ: ヘルパー

ページ: << 1 2 3 4 >>

linkさせる時に常にスラッシュを付ける方法とその時の注意点

パーマリンク 2008/10/09 16:57:57 著者: cakephp メール
カテゴリ: ヘルパー

CakePHP1.2 RC2

リンク表示させる時に便利なヘルパーが、HTMLヘルパーのinkメソッド HtmlHelper::link() です。
生成されるリンクの最後に常にスラッシュをつけて表示させたい場合は、このメソッドをカスタマイズします。

cake/libs/views/helpers/html.php を app/views/helpers/html.php にコピーします。

link メソッド内の return の直前に下記内容を追加します。

if (substr($url, -1) != '/') {
    $url = $url . '/';
}

これで、リンクの最後にはスラッシュが常に付いた状態になります。

ただし、このままだと一つ問題が生じます。

TextHelper::autoLinkEmails() を利用すると、自動で mailto のリンクを作成してくれるのですが、内部で HtmlHelper::link() を呼び出している為に、mailto のリンクの最後にまでスラッシュが付いてしまいます。

ですので、それを回避する為に、先ほどの部分を下記の様に変更します。

if (substr($url, 0, 7) != 'mailto:' && substr($url, -1) != '/') {
    $url = $url . '/';
}

郵便番号にハイフンを入れて表示してくれるヘルパー

パーマリンク 2008/10/08 16:54:18 著者: cakephp メール
カテゴリ: ヘルパー, ビュー

CakePHP1.2 RC2

DB で郵便番号を持たせる時は、ハイフンなしの 7 桁で持たせる場合があります。
ですが、表示させる時には、ハイフンをつけて表示させたいものです。
そんな時に使うヘルパーです。

cake/libs/view/helpers/text.php を app/views/helpers/text.php にコピーします。
そのファイルに下記内容を追加します。

function zip($text) {
    if (!empty($text) && strpos($text, '-') === false && strlen(trim($text)) == 7) {
        $text = substr($text, 0, 3) . '-' . substr($text, 3, 4);
    }
    return $text;
}


そして、View から下記のように呼び出せば、ハイフン付きの郵便番号が表示されます。

<?php e($text->zip($data['Sample']['zip'])); ?>

HtmlHelper::link()のデフォルト設定

パーマリンク 2008/09/14 19:19:45 著者: cakephp メール
カテゴリ: ヘルパー

CakePHP1.2

HtmlHelper::link()を使えば、リンクタグを生成してくれます。
その時の表示文字に対して、htmlspecialchars をデフォルトでつけてくれます。

該当箇所

[cake/libs/view/helpers/html.php]
if ($escapeTitle === true) {
	$title = htmlspecialchars($title, ENT_QUOTES);
} elseif (is_string($escapeTitle)) {
	$title = htmlentities($title, ENT_QUOTES, $escapeTitle);
}


$title以外にも、第3パラメータの$htmlAttributes内部の文字もエスケープしてくれます。

ラジオボタンの作り方

パーマリンク 2008/07/18 16:29:17 著者: cakephp メール
カテゴリ: ヘルパー, ビュー

CakePHP1.2 RC2

<?php e($form->radio('Sample/flg', array('0' => 'なし', '1' => 'あり'))); ?>

これだけでラジオボタンが作成できます。

デフォルトで LEGEND タグを付けてくれますが、外したい場合は、

<?php e($form->radio('Sample/flg', array('0' => 'なし', '1' => 'あり'), array('legend' => false))); ?>


デフォルトで選択状態にしたい場合は、

<?php e($form->radio('Sample/flg', array('0' => 'なし', '1' => 'あり'), array('value' => '1'))); ?>

とすると、「あり」が選択されます。


ラジオボタンを複数並べる時に縦並びにしたい場合は、

<?php e($form->radio('Sample/flg', array('0' => 'なし', '1' => 'あり'), array('separator' => '<br>'))); ?>

とすると、改行されて表示されます。


CakePHP1.1 ではラジオボタンのテキスト部分をクリックしても選択された状態にならなかったのですが、1.2 ではデフォルトでテキストをクリックした時に、そのラジオボタンが選択された状態になっています。

条件付きでのページ送り機能

パーマリンク 2008/07/12 10:33:59 著者: cakephp メール
カテゴリ: ヘルパー, ビュー, コントローラー

CakePHP1.2 RC2

ページ送りの基本については「ページ送り機能1.2 RC2(基本版)」をご覧ください。



View の「戻る」に条件を追加します。

<?php e($paginator->prev('戻る', array('url' => array('keyword' => urlencode($keyword))))); ?>



1 | 2 | 3 | 4 などのページ番号のリンクに条件を追加します。

<?php
    e($paginator->numbers(
                    array(
                        'separator' => '&nbsp;',
                        'modulus' => 14,
                        'url' => array('keyword' => urlencode($keyword))
                    )
                  ));
?>



あとは、Controller 側で $keyword に値をセットすることで、ページ送りの各リンクが ~/keyword:{$keyword} という感じになります。
※"keyword"という文字列は任意文字列

<< 1 2 3 4 >>

2018年8月
 << <   > >>
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31  

CakePHPに関する情報をまとめていきます。

開発スピードがアップできればうれしいです。

>>連絡はこちらへどうぞ



CakePHP最新版
CakePHP 1.2.3.8166


CakePHPの書籍

CakePHPによる実践Webアプリケーション開発

CakePHP1.2で作成する人にオススメ。
とても参考になります。

まるごとPHP!(vol.2)

安藤さんの解説が載っています。
AmazonのPagination部分は参考になります。

CakePHPによるWebアプリケーション開発

まだ読んだことありません

CakePHPポケットリファレンス
CakePHPポケットリファレンス
CakePHP1.2 でやるなら、これがあると何かと便利♪

CakePHP徹底入門
CakePHP徹底入門
CakePHP1.2 を今から始めるならここから

Fast CakePHP
Fast CakePHP
シンプルでわかりやすい CakePHP の入門書

CakePHPガイドブック
CakePHPガイドブック
CakePHP1.1 ではとても参考にした CakePHP 最初の入門書

検索

XMLフィード

16ブログ     powered by b2evolution