5丁目通信(仮称)

とある5丁目で活動する還暦を過ぎたWebプログラマーの覚え書きです。それとかかってくる迷惑電話や、家業のアパート経営について。

投稿者: muneando

  • CakePHP URLの指定 - 例えば、htmlヘルパーのlinkのパラメータの話し

    CakePHPを使っていると、ヘルパーなどのリファレンスを解説本では簡単に説明を済ませているところに当たります。CakePHPのマニュアルをよく見れば書いているのですが(ただし、日本語サイトは遅れている場合があり)。

    例えばhtmlヘルパーのlinkの説明ところ。Webとか解説本には、

    HtmlHelper::link($title, $url = null, $htmlAttributes = array(), $confirmMessage = false, $escapeTitle = true)
    
    $title : タイトル
    $url : リンク先URL
    $htmlAttributes : 属性
    $confirmMessage : 確認メッセージの有無
    $escapeTitle : エスケープの有無

    などど書いていています。$urlは、”http://testtest.jp/”のようなURLをテキストで設定するようにサンプルに書かれています。

    しかし、CakePHPではURLの指定は、

    array('controller' => コントローラ名, 'action'=>アクション名)

    のように連想配列で指定可能なのです。もし、管理者サイトでは、

    array(Configure::read('Routing.admin') => true,'controller' => コントローラ名, 'action'=>アクション名)

    のようにすればいいのです。アクション名には’admin_’とかは付ける必要はありません。

    CakePHPを使いこなしている人なら当たり前かもしれませんが。一応、自分の覚え書きです。

    あとlinkのURLに関連して、ここのサイトに書かれていますが(感謝!)、IDなどの検索条件のパラメータをpaginatorヘルパーに含めるには、 Veiwで$paginator->optionsにurlをキーにした連想配列を設定すればいいようです。Veiwで$paginator->optionsのurlに設定してしまうと、View内のpaginatorヘルパーでsort()などのリンク先には、’val1/val2’が勝手に付けてくれます。

    もし、このようにパラメータが付けてアクセスしたときに、

    http://testtest.jp/コントローラー/アクション/val1/val2/

    ビューの最初で

    <?php
    $paginator->options = array(
      'url' => $this->passedArgs
      );
    ?>

    とすると、passedArgs変数は、パラメータを持っていますので、ビュー内の

    <?php echo $paginator->sort('title');?>

    は、

    http://testtest.jp/コントローラー/アクション/val1/val2/page:1/sort:title/direction:asc

    というようなパラメータを付けたリンクを作ってくれます。

    著:山田祥寛
    ¥3,366 (2025/03/12 08:20時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/16 09:41時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/12 08:21時点 | Amazon調べ)
  • CakePHP 日付の月の選択フォーマットの指定。月を英文から数字で表示する話し

    CakePHP

    現在、CakePHPでニュースリリース管理を作成しています。そこで、リリースの日付を入力するところがあるのですが、CakePHPのそのままのHtmlヘルパーを使って日付を入力してしまうと、日本人向けではないフォーマットで選択させてしまう。

    例えば、

    $option_datetime = array(
      'type'         => 'datetime',
      'timeFormat'=> 24,
      'dateFormat'=> 'YMD',
      'legend'    => false,
      'label'        => false,
      'div'        => false,
      'interval'    => 15,
    );
    
    echo $form->input('release_date', $option_datetime);

    のようにする。

    これだと、月が英文(”Januaru” ~”December”)で選択させる。dateFormat属性の指定は、date()のfomartになるかと思えば違っていた。仕方ないので、formヘルパー(/cake/libs/view/helpers/form.php)に手を入れようとした。しかし、FormHelperクラスの__generateOptionsメソッドのこの部分

    case 'month':
      if ($options['monthNames']) {
        $data['01'] = __('January', true);
        $data['02'] = __('February', true);
        $data['03'] = __('March', true);
        $data['04'] = __('April', true);
        $data['05'] = __('May', true);
        $data['06'] = __('June', true);
        $data['07'] = __('July', true);
        $data['08'] = __('August', true);
        $data['09'] = __('September', true);
        $data['10'] = __('October', true);
        $data['11'] = __('November', true);
        $data['12'] = __('December', true);
      } else {
        for ($m = 1; $m <= 12; $m++) {
          $data[sprintf("%02s", $m)] = strftime("%m", mktime(1, 1, 1, $m, 1, 1999));
        }
      }
    break;

    を見ると、マニュアルにないmonthNames属性があることがわかる。上記の$option_datetimeに

    'monthNames' => false,

    を追加すれば、月が’01’~’12’になる。ソースは読んでみるものだ。

    しかし、このソースを書いた人は、date()を頭にないような感じがする。本当ならば、dateFormat属性がdate()のフォーマット指定のように振る舞えればいいのだが。

    著:山田祥寛
    ¥3,366 (2025/03/12 08:20時点 | Amazon調べ)
    著:松浦 健一郎, 著:司 ゆき
    ¥2,574 (2025/03/16 09:41時点 | Amazon調べ)
    著:谷藤賢一, 著:徳丸浩
    ¥2,750 (2025/03/12 08:21時点 | Amazon調べ)
  • 書籍購入:怪人二十面相・伝 北村想

    怪人二十面相・伝怪人二十面相・伝 PART2を購入。現在公開中の映画「K-20怪人二十面相・伝」の原作になっているが、ストーリーは全然違う。主人公は二十面相で敵役は明智小五郎(+小林少年)というところが一緒か。大昔の活劇を見ている感じ。

  • 書籍購入:Amazon EC2/S3クラウド入門

    何を買ったかわからなくなるので、書籍購入のメモを載せていきます。たまにはレビューも書くかもしれません。

    Amazon EC2/S3クラウド入門

    たまたま、本屋で平積みされているところを手にとって、おもしろそうだから購入。

    もう、アマゾンから購入しないと書いておきながら、このサービスを利用しようか迷っている。専用サーバーを借りるより、とりあえず1台借りて、何かのプロジェクトをスタートしてみるにはいいかもしれない。S3は、大きなバックアップストレージにはいいかもしれないが、いろいろ計算してみないと、高くつきそう。

    そういえば、著者の会社の方と青山事務所でお会いしたことがあります。もしかしたら、ご本人?

  • マインドマップ - xmind

    最近お付き合いしている会社の営業さんから、マインドマップでまとめられた資料が届く。その会社は、記事録から資料をマインドマップでまとめているようです。

    マインドマップは何だかおもしろそうということで、を買い込み、試しに書いてみると、やはりおもしろい。そこで、簡単にマインドマップを書けるツールを探していましたら、ヒットしたのはFreeMindXMind

    FreeMindが定番らしいのですが、XMindを選択。XMindは普通のアプリケーションだけではなく、Eclipseのプラグインでも提供されるのが気に入った。それと、EnterとTabキーでどんどんトピックを追加できるのが便利。ただ、トピックをマウスで移動するのがわかりにくい。

    システムの要求仕様を頭から叩き出すに使えそうです。

    娘にマインドマップをちょっと教えたら、自分でどんどん書き出した。彼女は絵が書くのが好きなので、イメージがほとんど占める楽しいマインドマップになっていました。

    マインドマップは、登録商標らしいので、本来なら丸Rが必要? ちょっとこの辺りがやらしいところ。

  • だんだんずれてきているかも。

    正月のお笑い番組を見ていたときのこと。娘は大受けしているのに、こちらは全然おもしろくない。

    これのどこがおもしろいのと、娘に聞いてもわからない。

    これは自分がずれてきているをいうことなのか?

    いまなら、1時間のお笑い番組で一回もクスとも笑わない自信がある・・・。

  • サーバーが止まる。また・・・。

    本日、20:30位から、借りているサーバーが止まっていたようです。Webへのアクセスもできないしメールもダメ。

    しょうがないかなと、いつもの通り復旧を待っていたら、30分ほどでなおりました。このレンタルサーバー会社は、レポートを送ってもいつも調査しますで回答なし。障害情報にも何も出さないし・・・。

    と言っているうちに、お客様から「メールが戻ってくるよ」と指摘される。

    このブログもそのサーバーでサービスしているのですが、そろそろ次を考えなければいけないかも。

  • ようやく年賀状の整理が終わった話し

    青山オフィスに出社すると郵便受けに年賀状の束がありました。事務所を貸していただいている会社とうちの会社の年賀状を分けてみると、思ったほど届いていませんでした。

    R0010155

    筆まめで年賀状を出していますので、いただいた年賀状は受け取りのチェックをします。

    いつか差出人不明で返ってきています。ほとんど住所を更新してしなかった年賀状です。Webで住所を調べてもう一度印刷し直しです。会社名が変わった年賀状(隣のビルに移ったくらいで届けてくれないようです)があります。中にはその会社が解散したものがありました。去年より多いようです。

    R0010160

    これで、ようやく年賀状の処理も終わりです。再度宛先不明になって返ってきたら、そのときは諦めます。

    R0010154
  • ニューイヤーパーティに初めて参加した話し

    アマチュア無線の世界では、年の初めはニューイヤーパーティということらしいですが、6か月前に再開局してので、全くそんことは知りませんでした。試しに、430のFMを聞いていますと、普段とは違った多くの局の声が聞こえます。

    20局以上の更新のノルマがあるのですが、2日の午前と夕方で何とか20局の更新をクリアしました。3日はまだクリアしていない局のサービスで交信です。

    結果は、26局で完了。もちろん初めての参加です。

    早速、サーマリーとログを出力して、記念シール返送用の封筒と一緒に同封して、後は送るだけ。切手がないので、郵便局が開いたら買わなくては。

    ニューイヤーパーティは、これしか出てこないという局が多いのにびっくり。初めての交信が多かった。だけどカード交換のお約束もできたということは、みなさんニューイヤーパーティのためだけにJARLには毎年お金を払っているのでしょうか? それとも・・・・。

    あと、一局だけ私の7で始まるコールサインをなかなか取ってくれなかった。どうしても頭はJで始まると思い込まれているようで。7コールは、やはりイレギュラーのコールサインなのでしょうか?

    著:加納勉, 編集:Webon編集部
    ¥480 (2025/03/12 10:34時点 | Amazon調べ)
    CQ出版
    ¥1,650 (2025/03/12 10:34時点 | Amazon調べ)

    電波を出すには必ずアマチュア無線の国家資格が必要です。電波法令を守って楽しみましょう。

  • 「20世紀少年」を「21世紀少年」まで完読した話し

    この前の記事で「20世紀少年」完読って書きましたが、最後はなんだか終わってない感じでした。そこで、調べたら、続きは「21世紀少年」てことになっているのではないですか。

    早速、近くのトレッサ横浜の有隣堂に行って、「21世紀少年」上下巻を買ってきました。本当は、自転車で新横浜の方まで鶴見川沿いを行っての帰りに寄りました。

    R0010149

    早速トレッサ横浜のレストランで食事しながら完読。これで納得。主人公たちとは、5つほど若いのですが、そのころのことは地元にいてもほとんど忘れています。思い出せと言われても難しいかもしれません。