カテゴリ: ヘルパー

ページ: << 1 2 3 4

ページ送り機能(基本版)

パーマリンク 2008/06/30 16:30:42 著者: cakephp メール
カテゴリ: ヘルパー, ビュー, コンポーネント, コントローラー

【CakePHP1.1】
ページ送り機能の基本版です。

http://bakery.cakephp.org/articles/view/pagination-component
上記ソースを app/controllers/components/pagination.php に設置します。

http://bakery.cakephp.org/articles/view/pagination-helper
上記ソースを app/views/helpers/pagination.php に設置します。

http://bakery.cakephp.org/articles/view/pagination-element
上記ソースを app/views/elements/pagination.thtml に設置します。


コントローラーに下記のように書きます。

<?php 
class SamplesController extends AppController
{
    var $uses = array('Sample');
	var $components = array ('Pagination');
	var $helpers = array('Pagination');

	function index() {	
		$conds = NULL;
		list($order,$limit,$page) = $this->Pagination->init($conds);
		$data = $this->Sample->findAll($conds, NULL, $order, $limit, $page);

		$this->set('data',$data);
	}
}


ビューは下記のように書けば、ページ送りが表示されます。

<?php e($this->renderElement('pagination')); ?>


細かい内容を変更する場合は、設置したヘルパーなどを変更します。

HtmlHelper::tagValue の注意点

パーマリンク 2008/06/20 14:21:19 著者: cakephp メール
カテゴリ: ヘルパー, ビュー

CakePHP1.1

モデルのデータを出力する場合に HtmlHelper::tagValue を利用しますが、

<?php e($html->tagValue('Sample/name')); ?>

とすると、エスケープ処理がされないまま出力されてしまいます。

ですので、

<?php e(h($html->tagValue('Sample/name'))); ?>

としましょう。

日付のセレクトボックスの作り方

パーマリンク 2008/06/02 15:23:34 著者: cakephp メール
カテゴリ: ヘルパー

CakePHP1.2 RC3

1.2 では Form ヘルパーの dateTime を利用すると簡単にセレクトボックスを作成することができます。

<?php e($form->datetime('date', 'YMD', 'NONE', '2008-10-10', array('minYear' => 2008, 'maxYear' => date('Y'), 'monthNames' => false), false)); ?>


CakePHP1.1

日付のセレクトボックスを作るには、hlmlヘルパーのdateTimeOptionTagを使えばできます。

APIドキュメント

HtmlHelper::dateTimeOptionTag (	$tagName,
		$dateFormat = 'DMY',
		$timeFormat = '12',
		$selected = null,
		$selectAttr = null,
		$optionAttr = null,
		$showEmpty = true	 
	)

Returns a set of SELECT elements for a full datetime setup: day, month and year, and then time.

Parameters:
    	string 	$tagName Prefix name for the SELECT element
    	string 	$dateFormat DMY, MDY, YMD or NONE.
    	string 	$timeFormat 12, 24, NONE
    	string 	$selected Option which is selected.
    	array 	$optionAttr Attribute array for the option elements.

Returns:
    string The HTML formatted OPTION element public 

Definition at line 688 of file html.php.

References $elements, and $pos.


使い方はViewに下記の通りに書けば表示されます。

<?php echo $html->dateTimeOptionTag('Sample/name', 'YMD', '24'); ?>

細かい設定は上記のドキュメントの通りです。


この状態だと、「2008-May-1」のように月の部分が英語で表示されるのでhtmlヘルパー内の下記の部分を変更して、日本語(数字)にします。

app/views/helpers/html.php

	function monthOptionTag($tagName, $value = null, $selected = null, $selectAttr = null, $optionAttr = null, $showEmpty = true) {
		:
		// 変更前
//		$months = array('01' => 'January', '02' => 'February', '03' => 'March', '04' => 'April', '05' => 'May', '06' => 'June', '07' => 'July', '08' => 'August', '09' => 'September', '10' => 'October', '11' => 'November', '12' => 'December');
		// 変更後
		$months = array('01' => '1', '02' => '2', '03' => '3', '04' => '4', '05' => '5', '06' => '6', '07' => '7', '08' => '8', '09' => '9', '10' => '10', '11' => '11', '12' => '12');
		:
	}


「-」も日本語に変更したい場合は、同ファイルの下記の部分を変更します。
app/views/helpers/html.php

	function dateTimeOptionTag($tagName, $dateFormat = 'DMY', $timeFormat = '12', $selected = null, $selectAttr = null, $optionAttr = null, $showEmpty = true) {
		:
			case 'YMD':
				// 変更前
/*
				$opt = $this->yearOptionTag($tagName, null, null, null, $year, $selectYearAttr, $optionAttr, $showEmpty) . '-' .
				$this->monthOptionTag($tagName, null, $month, $selectMonthAttr, $optionAttr, $showEmpty) . '-' .
				$this->dayOptionTag($tagName, null, $day, $selectDayAttr, $optionAttr, $showEmpty);
*/
				// 変更後
		                $opt = $this->yearOptionTag($tagName, null, null, null, $year, $selectYearAttr, $optionAttr, $showEmpty) . '年' .
                		$this->monthOptionTag($tagName, null, $month, $selectMonthAttr, $optionAttr, $showEmpty) . '月' .
		                $this->dayOptionTag($tagName, null, $day, $selectDayAttr, $optionAttr, $showEmpty).'日';
		:
	}

<< 1 2 3 4

2018年12月
 << <   > >>
            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