Posts tagged ADC

Apple ID の氏名を日本語で登録したときに英語に修正する方法

2

ADC の登録は仕事でメインに使っているメールアドレスでしました。ADC にログインした後で、Edit Profile から修正しようとしても氏名だけは修正できない。氏名にマルチバイト文字が入っていると後々面倒なことになる。そのために普段使っているメールアドレスとは違うメールアドレスで登録しなおしたのですが、できればメインで使用しているメールアドレスを使いたい。そのときに下記のエントリを見つけました。
(続きを読む…)

CakePHP HTML ヘルパーで出力されるタグを変更する方法

2

ヘルパーで出力されるタグを変更する方法です。

やりたいこと

ビューで
< ?php echo $html->link('Love CakePHP', 'http://www.cakephp.org'); ?>
と書くと
<div class="link"><a href="http://www.cakephp.org" >Love CakePHP</a></div>
と div タグで囲んで表示するようにしたい。

概要

app/config 内に変更したいタグを定義してヘルパーの親クラス(AppHelper) で定義したタグを読み込むという方法です。
CakePHP1.1 と 1.2 で少し方法が違います。

CakePHP1.1

app/config に tags.ini.php というファイルを作成しここにタグを定義すると自動的に反映されます。
app/config/tags.ini.php
link = <div class="link"><a href="%s" %s>%s</a></div>

CakePHP1.2

app/config/tags.php

< ?php
$tags = array(
    'link' => '<div class="link"><a href="%s" %s>%s</a></div>'
);
?>

app/app_helper.php

< ?php
class AppHelper extends Helper {
    function __construct() {
        parent::__construct();
        $this->loadConfig();
    }
}
?>

CakePHP 1.2 の AppHelper::loadConfig は以下のようになっていてデフォルトでは app/config/tags.php を読み込み $this->tags にマージします。

function loadConfig($name = 'tags') {
    if (file_exists(APP . 'config' . DS . $name .'.php')) {
        require(APP . 'config' . DS . $name .'.php');
        if (isset($tags)) {
            $this->tags = array_merge($this->tags, $tags);
        }
    }
    return $this->tags;
}

AppHelper のコンストラクタで
$this->loadConfig("hoge.php");
とすれば hoge.php のように任意のファイルを読み込んでマージすることができます。

HTML ヘルパーが使用するタグは cake/libs/view/helpers/html.php で $tags として定義されています。
この中のフォーム関連のタグは Form ヘルパーでも使用していますので、上記の方法で Formヘルパーで使用するタグも変更できます。

参考URL
Overriding specific HTML tags before using helper methods | The Bakery, Everything CakePHP : Articles

Go to Top