ホームページ  >  記事  >  php教程  >  Smarty+QUICKFORM 小規模デモ

Smarty+QUICKFORM 小規模デモ

WBOY
WBOYオリジナル
2016-06-13 12:33:34988ブラウズ

会社では SMARTY 開発モデルと組み合わせた Quickform を必要としているため、ここ数日間取り組んできました。Quickform は、フォーム コントロールと検証フォーム用の JS コードを迅速に生成できる PEAR クラス ライブラリです。これは、JS と HTML を生成するのが早いのではないかと思われるかもしれません。フォームコントロールだけではクイックフォームの利点は発揮できませんが、例えばOAのバックエンドなどでフォームコントロールの数が多い場合には、クイックフォームを使用するとコードが明瞭でメンテナンスが容易になるという特徴があります。大規模および中規模のプロジェクトの開発に非常に適しています。さらに便利なのは、smarty で簡単に使用できることです。ナンセンスな話はやめてください。ただし、誰でも理解できるのが最善です。 PEAR をインストールする前に、http://hi.baidu.com/wanghaozi/blog/item/81cfb7003f973687e850cd3e.html を参照してください。
弊社で使用しているクイックフォームは独自に改良したものなので、ネット上で見るものとは多少異なりますが、ここで著作権の関係で説明するのは不便なので、誰でも理解できるように簡単にコアコードを示します。 興味のある 友達 は、この HAOHAPPY 記事を読むことができます: http://www.phpe.net/articles/418.shtml
[php]

/*
*作成者: Hui Boss
*ページ: path.cfg.php
*機能: システム パス設定
*著作権: 任意のコピー^_^
*/

$global['path']['conf'] = $global['path']['root'] 'conf/';//システムを定義します。構成ファイルのパス
$global['path']['lib'] = $global['path']['root'] 'lib/';//システム ライブラリ ファイルのパスを定義します

?>
[/php]
[php]

/*
*著者: Hui Boss
*ページ: Smarty.cfg.php
*機能:smartyの基本設定
*著作権:自由にコピー^_^
*/

//テンプレートパスを定義
$global['smarty'][' template_dir '] = $global['path']['root'] . 'lib/smarty/templates';
//テンプレートのコンパイルディレクトリを定義します
$global['smarty']['compile_dir'] = $ global['path']['root'] . 'lib/smarty/templates_c';
//smarty 構成フォルダーのパスを定義します
$global['smarty']['config_dir'] = $global[ 'パス']['conf']; 'lib/smarty/configs';

//$global['smarty']['compile_check'] = true;
/ /smarty エラー レポートを無効に設定します
$global['smarty']['debugging '] = false;
//キャッシュをオフにする
$global['smarty']['caching'] = false ;
//$global['smarty']['cache_lifetime'] = 6000;

//左右の境界文字を定義
$global['smarty']['left_delimiter'] = '<{';
$global['smarty']['right_delimiter'] = '}>';

?>
[/php]
[php ]

/*
*著者: Hui Boss
*ページ: common.cfg.php
*機能: グローバル構成
*著作権: copyお好みで^_^
*/

$global['path'] ['root'] = dirname(__FILE__) . '/';//ルートディレクトリを設定します
require( $global['path']['conf'] . 'conf/path.cfg.php');

require($global['path']['conf'] . 'smarty.cfg. php');
//smarty クラス ライブラリが含まれます
require($global['path'] ['lib'] . 'smarty/libs/Smarty.class.php');

//smarty 設定
$tpl = new Smarty();
$tpl->template_dir = $global['smarty']['template_dir'];
$tpl->compile_dir = $global ['smarty']['compile_dir'];
$tpl->config_dir = $global[' Smarty']['config_dir'];

$tpl->debugging = $global[ 'smarty']['debugging'];
$tpl->caching = $global['smarty ']['caching'];
$tpl->cache_lifetime = $global['smarty'] ['cache_lifetime'];

$tpl->left_delimiter = $global['smarty' ]['left_delimiter'];
$tpl->right_delimiter = $global['smarty'][ 'right_delimiter'];
unset($global['smarty']);

ini_set('include_path', ini_get('include_path') .
PATH_SEPARATOR . $global['path'] ['lib'] . 'pear/');//pear ライブラリ ファイルをロードします
?>
[/php]
[php]

/*
*作者:Hui Boss
*ページ:index.php
*機能:UI
*著作権:自由にコピー^_^
*/

require_once('common.inc.php');// グローバル設定をロードします

// クイックフォーム クラス ライブラリが含まれます
require($global['path']['lib'] . 'pear /HTML/QuickForm.php');

$form = new HTML_QuickForm('changepwdform') //クイックフォーム インスタンスを生成します。パラメータはフォーム名です

/*
*Startフォーム要素の追加
*パラメータは次のとおりです: フォーム要素のタイプ、名前、(ボタンのラベルのテキスト)、スタイル
*/
$form->addElement('password','adminPwd','', 'style="width:120px"');
$form->addElement('password','newPwd ','','style="width:120px"');
$form-> ;addElement('password','newPwd2','','style="width:120px"');
$form->addElement('submit','btnSubmit','パスワードの変更','style ="width:100px"');

//検証ルールを追加し、JS を自動的に生成します
$form->addRule('adminPwd','パスワードを空にすることはできません! ','required','','client');
$form->addRule('newPwd','新しいパスワードを空にすることはできません!','required','','client');
$form->addRule('newPwd2','新しいパスワードをもう一度入力してください!','required','client');
$form->addRule(array('newPwd',' newPwd2' ),"2 回入力したパスワードは一致しません。",'compare','','client');
$form->;//フォーム送信を無効にする

//フォーム データを配列に割り当てる
$tpl-> assign('form_data',$form->toArray());

//テンプレートを表示
$tpl->display('index.tpl');


?>
[/php]
テンプレートコード:

コードをコピー コードは次のとおりです:



クイックフォーム



🎜><フォーム <{$form_data.attributes}>
bgcolor="#F6F6F6" style="font-size:9pt" class="AddTable">


"47%">
既存の管理者パスワード

🎜>
🎜>
管理者パスワードの変更
< form_data.adminPwd.html}>
新しいパスワードを再度入力してください

tr>
;

HTML>


ここで、なぜパス定義が非常に複雑で絶対パスが使用されるのか疑問に思われるかもしれません。これは最近、企業プロジェクトのニーズに合わせて調整されました (笑)。実際、これは大規模なプロジェクトをデプロイする場合に役立ちます。もちろん、ここでは簡単に紹介するだけなので、quickform や Smarty に触れたことのない初心者は混乱すると思います。興味があれば、さらに詳しく調べて最終的に確認してください。効果:

この文は、2 回入力されたパスワードが同じかどうかを判断するために使用されます:
[php]
$form->addRule(array('newPwd','newPwd2') ,"2 回入力されたパスワードは矛盾しています!",'compare','','client');
[/php]
このコードは簡潔でわかりやすいですか? XAJAX と組み合わせて学習体験を共有していきます。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。