CakePHP 入力フォームã§ç¢ºèªç”»é¢ã‚’表示ã™ã‚‹æ–¹æ³•

CakePHP 2 Comments »

フォームを入力後ã€ã™ãã«ä¿å­˜ã§ã¯ãªã一度確èªç”»é¢ã‚’表示ã•ã›ãŸã„å ´åˆã®ã‚„り方。

ã“ã¡ã‚‰ã«è©³ã—ã„ã‚„ã‚Šæ–¹ãŒæ›¸ã„ã¦ã‚りã¾ã™ã€‚
http://www12.atwiki.jp/nezox/pages/6.html

ãƒã‚¤ãƒ³ãƒˆã¯

  • 入力フォームã§
    <input type="hidden" name="mode" value="confirm">

    ã¨ã™ã‚‹ã€‚

  • コントローラ㮠add アクションã§ãƒãƒªãƒ‡ãƒ¼ã‚·ãƒ§ãƒ³ãƒã‚§ãƒƒã‚¯å¾Œã«
     if (@$_POST["mode"]=="confirm") {
        // 確èªç”»é¢ã‚’表示ã™ã‚‹
        $this->render('confirm');
    } else {
        // ä¿å­˜å‡¦ç†
        if ($this->User->save($this->data)) {
            $this->flash('Your post has been saved.', '/users');
        }
    }
  • 確èªç”»é¢ã® view ã‚’ confirm.thtml を作æˆ
     <h1>確èªç”»é¢</h1>
    <form action="<?php echo $html->url('/users/add'); ?>" method="post">
    ログインID:
    <?php echo $html->tagValue('Users/login_id'); ?
    <?php echo $html->hidden('Users/login_id', array('value'=>$html->tagValue('Users/login_id'))); ?>
    <input type="button" value="戻る" onclick="history.back();">
    <input type="submit" value="æ–°è¦ç™»éŒ²">
    </form>

CakePHP ã§ Smarty を使用ã™ã‚‹ãƒ¡ãƒ¢

CakePHP, Smarty 2 Comments »

Smarty ã‚’ CakePHP ã§ä½¿ç”¨ã™ã‚‹æ–¹æ³•を調ã¹ãŸãƒ¡ãƒ¢

Smarty ã®ç”¨æ„

Smarty ディレクトリを/vendors ディレクトリã¸ã‚³ãƒ”ー

/vendors/smarty/Smarty.class.php

ã®ã‚ˆã†ã«ãªã‚‹ã€‚

Smarty ãŒä½¿ç”¨ã™ã‚‹ãƒ‡ã‚£ãƒ¬ã‚¯ãƒˆãƒªã‚’作æˆ

/app/tmp/smarty/cache/
/app/tmp/smarty/compile/

Smarty 用㮠View ã‚¯ãƒ©ã‚¹ã®æº–å‚™

レンダリングを任ã›ã‚‹ Smarty View Class を設定ã—ã¾ã™ã€‚
Smarty View Class をダウンロードã—㦠smarty.php ã¨ãƒªãƒãƒ¼ãƒ ã—ã¦

/app/views/

ã«é…ç½®ã™ã‚‹ã€‚

smarty ã¨ã„ã†åå‰ã®ã‚µãƒ–ディレクトリを使用ã—ãªã„ãªã‚‰
$this->subDir = 'smarty'.DS;
をコメントアウトã™ã‚‹ã€‚
ã¾ãŸã€
$this->Smarty->assign_by_ref('view', $this);
ã‚’
$this->Smarty->assign_by_ref('this', $this);
ã«å¤‰æ›´ã™ã‚‹ã€‚
ã“ã®å¤‰æ›´ã¯ãƒ†ãƒ³ãƒ—レートã®ä¸­ã§ $this ã‚’ .thtml ã¨åŒã˜ã‚ˆã†ã«ä½¿ç”¨ã—ãŸã„å ´åˆã«å¿…è¦ã€‚

AppController ã®è¨­å®š

/app/app_controller.php

を作æˆ

class Appcontroller extends Controller{
    var $view = "Smarty";
}

実際ã®ä½¿ç”¨

view ã« .tpl ãŒã‚れ㰠Smarty テンプレートã¨ã—ã¦å‡¦ç†ã‚’行ã„ã€ãªã‘れã°ãƒ‡ãƒ•ォルト㮠.thtml を表示ã™ã‚‹ã‚ˆã†ã«ãªã‚‹ã€‚

.tpl ã®ä¸­ã§ã¯ .thtml ã§ä½¿ç”¨ã§ãるヘルパーも使用ã§ãる。
.thtml ã®ã€Œ<?php echoã€ã‚’「{ã€ã€ã€Œ;?>ã€ã‚’「}ã€ã«ã™ã‚Œã°ã»ã¼ãã®ã¾ã¾åˆ©ç”¨ã§ãる。

ãŸã ã€.thtml ã§ HTMLヘルパーを使用ã—ã¦ã„ã‚‹å ´åˆ

{$html->input('Post/name', array('size'=>'30'))}

ã®ã¾ã¾ã§ã¯ã€array(…) ã§ã‚¨ãƒ©ãƒ¼ã«ãªã‚‹ã€‚

ã“れを修正ã™ã‚‹ã«ã¯ã€Smarty ã®ãƒ—ラグインを使用ã—ã¦è§£æ±ºã™ã‚‹ã€‚
プラグインをダウンロードã—㦠function.assign_assoc.php ã«ãƒªãƒãƒ¼ãƒ ã—ã¦

/vendors/samrty/libs/plugins/

ã«é…ç½®ã™ã‚‹ã€‚

テンプレートã®å…ˆé ­ã§

{assign_assoc var='ArrayName' value='size=>30'}

ãªã©ã¨ã—ã¦

{$html->input('Post/name', $ArrayName)}

ã¨ã™ã‚Œã°OK.

ãŸã çµæ§‹æœ€å¾Œã®ã‚„ã¤ãŒé¢å€’ã‹ã‚‚。。。

CakePHP ãƒ†ãƒ³ãƒ—ãƒ¬ãƒ¼ãƒˆãƒ•ã‚¡ã‚¤ãƒ«ã®æ‹¡å¼µå­ã‚’変更ã™ã‚‹æ–¹æ³•

CakePHP No Comments »

CakePHP ã®ãƒ†ãƒ³ãƒ—レートファイルã¯ãƒ‡ãƒ•ォルトã§ã¯æ‹¡å¼µå­ãŒ .thtml ã§ã™ã€‚
ã“れを変更ã™ã‚‹ã«ã¯ã€ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ©ã®ãƒ¡ãƒ³ãƒå¤‰æ•° $ext ã«å¤‰æ›´ã—ãŸã„æ‹¡å¼µå­ã‚’設定ã™ã‚‹ã€‚例ãˆã° .html ã«ã™ã‚‹å ´åˆã¯

var $ext = '.html';

CakePHP HTMLヘルパー㧠select タグを表示ã™ã‚‹

CakePHP 1 Comment »

HTML ヘルパー㧠select タグを表示ã—ãŸã‹ã£ãŸãŒã€
マニュアルを見ã¦ã‚‚書ã‹ã‚Œã¦ã„ãªã‹ã£ãŸã®ã§ã€èª¿ã¹ãŸãƒ¡ãƒ¢

/cake/libs/view/helpers/html.php

を見る㨠selectTag ã¨ã„ã†ãƒ¡ã‚½ãƒƒãƒ‰ãŒã‚Šã€

/**
* Returns a formatted SELECT element.
*
* @param string $fieldName Name attribute of the SELECT
* @param array $optionElements Array of the OPTION elements (as 'value'=>'Text' pairs) to be used in the SELECT element
* @param mixed $selected Selected option
* @param array $selectAttr Array of HTML options for the opening SELECT element
* @param array $optionAttr Array of HTML options for the enclosed OPTION elements
* @param boolean $show_empty If true, the empty select option is shown
* @param  boolean $return         Whether this method should return a value
* @return string Formatted SELECT element
* @access public
*/
function selectTag($fieldName, $optionElements, $selected = null, $selectAttr = array(), $optionAttr = null, $showEmpty = true, $return = false) {

ã¨å®šç¾©ã•れã¦ã„る。

ã‚ˆãæŒ‡å®šã—ãã†ãªå¼•æ•°ã¯

  • $fileName ã«ãƒ•ィールドå
  • $optionElements ã« option ã‚¿ã‚°ã«è¡¨ç¤ºã™ã‚‹ã‚‚ã®é…列
  • $selected ã«ãƒ‡ãƒ•ォルトã§é¸æŠžçŠ¶æ…‹ã«ã™ã‚‹ $optionElements ã®ã‚­ãƒ¼
  • $showEmpty ã¯ä¸€ç•ªæœ€åˆã® option タグを空 <option value=”"> </option> ã§è¡¨ç¤ºã™ã‚‹ã‹

コントローラã§

$this->set('questions', array(
    'å’æ¥­ã—ãŸå­¦æ ¡å',
    '好ããªãƒãƒ¼ãƒ å',
    'ペットã®åå‰',
    'ä¸¡è¦ªã®æ—§å§“',
    'å…許証ã®ä¸‹4æ¡',
    '好ããªæ˜ ç”»ã®é¡Œå',
    )
);

ã¨ã—ã¦

<?php echo $html->selectTag('Post/question', $questions, null, null, null); ?>

ã¨ã™ã‚Œã°OK.

よãã€Œé¸æŠžã—ã¦ãã ã•ã„ã€ãªã©ã®æ–‡è¨€ãŒ option ã‚¿ã‚°ã®å…ˆé ­ã«ã‚ã‚‹å ´åˆãŒã‚ã‚‹ãŒã€
ãã®ã‚ˆã†ã«è¡¨ç¤ºã—ãŸã„å ´åˆã¯

array(
'é¸æŠžã—ã¦ãã ã•ã„',
'å’æ¥­ã—ãŸå­¦æ ¡å',
'好ããªãƒãƒ¼ãƒ å',
'ペットã®åå‰',
'ä¸¡è¦ªã®æ—§å§“',
'å…許証ã®ä¸‹4æ¡',
'好ããªæ˜ ç”»ã®é¡Œå',
)

ã¨ã—ã¦ã€$html->selectTag ã®6番目ã®å¼•æ•°ã« false を指定ã™ã‚Œã°ç©ºã® option ã‚¿ã‚°ãŒè¡¨ç¤ºã•れãªããªã‚‹ã€‚
å¿…é ˆé¸æŠžã«ã—ãŸã„å ´åˆã¯ã€Œé¸æŠžã—ã¦ãã ã•ã„ã€ã®å€¤ãŒ0ãªã®ã§ã€0ä»¥å¤–ã®æ•°å­—ã§ãƒãƒªãƒ‡ãƒ¼ã‚·ãƒ§ãƒ³ãƒã‚§ãƒƒã‚¯ã™ã‚Œã°ã„ã„。

CakePHP ã®ã‚¨ãƒ¬ãƒ¡ãƒ³ãƒˆ

CakePHP 1 Comment »

é•ã†ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã§ã‚‚åŒã˜ãƒ‡ã‚¶ã‚¤ãƒ³ã®éƒ¨å“を使用ã™ã‚‹ã“ã¨ãŒã‚りã¾ã™ãŒã€ãã®å ´åˆã«ä½¿ç”¨ã™ã‚‹ã¨ã„ã„ã®ãŒã‚¨ãƒ¬ãƒ¡ãƒ³ãƒˆã§ã™ã€‚

エレメントを使用ã™ã‚‹ã«ã¯

/app/views/elements/

ã®ä¸­ã«æ‹¡å¼µå­ã€Œ.thtmlã€ã‚’ã¤ã‘ãŸãƒ•ァイルを作æˆã—ã¾ã™ã€‚

エレメントを使用ã™ã‚‹ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆå†…ã§

<?php echo $this->renderElement('hoge'); ?>

ã¨æ›¸ãã¨ã‚¨ãƒ¬ãƒ¡ãƒ³ãƒˆãŒè¡¨ç¤ºã•れã¾ã™ã€‚

例ãˆã°ã€ãƒ­ã‚°ã‚¤ãƒ³ãƒ•ォーム用ã®ã‚¨ãƒ¬ãƒ¡ãƒ³ãƒˆã‚’

/app/views/elements/login.thtml

ã¨ä½œæˆã—ãŸå ´åˆã¯

<?php echo $this->renderElement('login'); ?>

ã¨æ›¸ãã¾ã™ã€‚

ã¾ãŸã€ã‚¨ãƒ¬ãƒ¡ãƒ³ãƒˆå†…ã§ã¯ãã®ã¾ã¾ã§ã¯ãƒ‡ãƒ¼ã‚¿ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ããªã„ãŸã‚ã€
エレメント内ã§ãƒ‡ãƒ¼ã‚¿ã‚’å‚ç…§ã—ãŸã„å ´åˆã¯ã‚¨ãƒ¬ãƒ¡ãƒ³ã«ãƒ‡ãƒ¼ã‚¿ã‚’渡ã•ãªã„ã¨ã„ã‘ã¾ã›ã‚“。

<?php echo
$this->renderElement('login', array("user" => $user));
?>

ã¨ã€ãƒ‡ãƒ¼ã‚¿é…列を渡ã—ã¦ã‚¨ãƒ¬ãƒ¡ãƒ³ãƒˆã‚’呼ã¶ã“ã¨ã«ã‚ˆã‚Šã‚¨ãƒ¬ãƒ¡ãƒ³ãƒˆå†…ã§

<?php echo $user; ?>

ã®ã‚ˆã†ã«ã‚¢ã‚¯ã‚»ã‚¹ã§ãã¾ã™ã€‚

下記ã®è¨˜äº‹ãŒå‚考ã«ãªã‚Šã¾ã™ã€‚
CakePHP ã® view ã® elements ãŒã‚¢ã‚¯ã‚»ã‚¹ã§ãる変数
cakePHPã®ãƒžãƒ‹ãƒ¥ã‚¢ãƒ« 8.1.2 エレメント

CakePHP ã§ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’変更ã™ã‚‹

CakePHP No Comments »

レイアウトを変更ã™ã‚‹ã«ã¯

/app/views/layouts/default.thtml

を変更ã™ã‚Œã°OK。

コントローラ毎ãªã©ã«ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’変更ã—ãŸã„ã¨ãã¯

/app/views/layouts/hoge.thtml

ãªã©ã¨ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’作æˆã—ã¦ã€ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ©ã§

var $layout = "hoge.thtml";

ã¨ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã‚’指定ã™ã‚‹ã€‚

ã“ã®ãƒ¬ã‚¤ã‚¢ã‚¦ãƒˆã®ä¸­ã§ã‚¿ã‚¤ãƒˆãƒ«ã‚¿ã‚°ã‚’

<title><?php echo $title_for_layout?></title>

ã¨ã—ã¦ã„れã°ã€

$this->pageTitle('ã“ã®ãƒšãƒ¼ã‚¸ã®ã‚¿ã‚¤ãƒˆãƒ«');

ã¨ã‚³ãƒ³ãƒˆãƒ­ãƒ¼ãƒ©ã§æŒ‡å®šã™ã‚Œã°ã€ã‚¢ã‚¯ã‚·ãƒ§ãƒ³æ¯Žã«ã‚¿ã‚¤ãƒˆãƒ«ã‚’変更ã§ãる。

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS ログイン