Linux Memo/Smarty
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
*Smarty [#c63da8dc]
RIGHT:更新日 &lastmod();
**Smartyのインストール [#t1ff2142]
ロジックを作成する作業と、HTMLデザインを編集する作業を分...
http://www.smarty.net/download.phpからダウンロード。
***設定 [#uc04dee8]
$ cd /usr/local/src
$ tar zxvf Smarty-2.6.19.tar.gz
$ cd /usr/local
$ su
# mv src/Smarty-2.6.19 .
# exit
$ cd
ホームディレクトリに作成するテンプレートを入れるフォルダs...
$ mkdir smatry_test
$ cd smatry_test
$ mkdir cache
$ mkdir configs
$ mkdir templates
$ mkdir templates_c
$ su
# chown -R apache.apache cache
# chown -R apache.apache templates_c
Smartyでwebアクセスする場所をsmarty_testとするため
# mkdir /var/www/html/smarty_test
''設定ファイル''
Smartyの環境を呼び出すのに必要
/var/www/html/smarty_test/init.php
<?php
// Linux スタイル (大文字の 'S' に注意)
define('SMARTY_DIR', '/usr/local/Smarty-2.6.19/libs/'); ...
require_once(SMARTY_DIR . 'Smarty.class.php');
$smarty = new Smarty();
// テンプレート、キャシュ等のディレクトリを指定。
$smarty->template_dir = '/home/okada/smatry_test/templat...
$smarty->compile_dir = '/home/okada/smatry_test/templat...
$smarty->config_dir = '/home/okada/smatry_test/configs...
$smarty->cache_dir = '/home/okada/smatry_test/cache/';
?>
/var/www/html/smarty_test/test.phpにアクセスページ(testペ...
<?php
require_once("/var/www/html/smarty_test/init.php");
$smarty->assign('name','JE2ISM');
$smarty->assign('name2','JF2LYU');
//** 次の行のコメントをはずすと、デバッギングコンソール...
//$smarty->debugging = true;
$smarty->display('index.tpl');
$smarty->display('index2.tpl');
?>
''/home/okada/smatry_test/templates/index.tpl''
{* Smarty *}
こんにちは、{$name}。ようこそ Smarty へ!
''/home/okada/smatry_test/templates/index2.tpl''
{* Smarty *}
<p>
こんにちは、{$name2}。<Br>
ようこそ Smarty へ!<Br>
''アクセス''
http://(サーバ)/smarty_test/test.php
''結果''
こんにちは、JE2ISM。ようこそ Smarty へ!
こんにちは、JF2LYU。
ようこそ Smarty へ!
**EC CUBEの複数の店のユーザを単一管理 [#g797abf6]
DBからテーブルをエクスポートしてそれを別テーブルにインポ...
ある時は上書きする。
''tbsync_new.php''(新規登録)~
<?php
$cmd = "/usr/bin/mysql -B --skip-column-names -u...
\--password=ism -D eccube_ism -e 'select * from dtb_cust...
exec($cmd, $output);
$fp=fopen("/home/okada/temp/dtb_customer.txt","w...
// fputs(implode("\n",$output) . "\n",$fp);
foreach ($output as $a){
// NULL文字は\Nとしてインポートの必要あり
$a = ereg_replace("NULL", "\N", $a);
fputs($fp,$a."\n");
}
fclose($fp);
// print_r($output);
// echo "<BR>\n";
// $a = implode("\n",$output) . "\n";
// echo "$a <BR>\n";
$cmd ="/usr/bin/mysqlimport --local eccube_ism2...
-u ism --password=ism --ignore -h 192.168.30.16";
exec($cmd);
?>
html/entry/complete.phpの最後の行に
require_once("/home/okada/temp/tbsync.php");
を追加
''tbsync_c.php''(登録削除を含むレコードコピー)~
<?php
// データ削除時に他のDBのレコードの書き換え(レコード全体)
// 元DBのデータ最終変更レコードのcustomer_idを抽出
$cmd = "/usr/bin/mysql -B --skip-column-names -u...
-D eccube_ism -e 'select customer_id from dtb_customer w...
update_date=(select max(update_date) from dtb_customer);...
exec($cmd, $id);
// echo "ID $id[0] \n";
// 元DBのデータ先のcustomer_idのレコードを抽出してTextフ...
$cmd = "/usr/bin/mysql -B --skip-column-names -u...
-D eccube_ism -e 'select * from dtb_customer where custo...
exec($cmd, $output);
// echo "$cmd <br>";
$fp=fopen("/home/okada/temp/dtb_customer.txt","w...
foreach ($output as $a){
// NULL文字は\Nとしてインポートの必要あり
$a = ereg_replace("NULL", "\N", $a);
fputs($fp,$a."\n");
}
fclose($fp);
// 元データの先のTextファイルを変更先DBにインポート
$cmd ="/usr/bin/mysqlimport --local eccube_ism2 ...
-u ism --password=ism -r -h 192.168.30.16";
exec($cmd);
?>
html/mypage/refusal_complete.php最後の行に
require_once("/home/okada/temp/tbsync_d.php");
を追加
''tbsync_r.php''(登録変更時のコピーただしpointはコピーさ...
<?php
// データ修正時にpointを変更さいないようにする。
// 元DBのデータ最終変更レコードのcustomer_idを抽出
$cmd = "/usr/bin/mysql -B --skip-column-names -u ...
-D eccube_ism -e 'select customer_id from dtb_customer w...
update_date=(select max(update_date) from dtb_customer);...
exec($cmd, $id);
// echo "ID $id[0] \n";
// 変更先DBの先のcustomer_idのpointを抽出 (1)
$cmd = "/usr/bin/mysql -B --skip-column-names -u...
-D eccube_ism2 -e 'select point from dtb_customer where \
customer_id =" . $id[0] .";' -h 192.168.30.16";
exec($cmd, $point);
// echo "Henkousaki Point $point[0] <Br>\n";
// 元DBのデータ先のcustomer_idのレコードを抽出してTextフ...
$cmd = "/usr/bin/mysql -B --skip-column-names -u...
-D eccube_ism -e 'select * from dtb_customer where \
customer_id =" . $id[0] . ";' -h 192.168.30.16";
exec($cmd, $output);
// echo "$cmd <br>";
$fp=fopen("/home/okada/temp/dtb_customer.txt","w...
foreach ($output as $a){
// NULL文字は\Nとしてインポートの必要あり
$a = ereg_replace("NULL", "\N", $a);
fputs($fp,$a."\n");
}
fclose($fp);
// 元データの先のTextファイルを変更先DBにインポート
$cmd ="/usr/bin/mysqlimport --local eccube_ism2 ...
-u ism --password=ism -r -h 192.168.30.16";
exec($cmd);
// 変更先DBのポイントを(1)で抽出したデータに書き換えて変...
$cmd ="/usr/bin/mysql -B --skip-column-names -u ...
-D eccube_ism2 -e 'update dtb_customer set point=" . $po...
where customer_id=" . $id[0] . ";' -h 192.168.30.16";
exec($cmd);
// echo "$cmd \n";
?>
html/mypage/change_complete.php最後の行に
require_once("/home/okada/temp/tbsync_r.php");
を追加
***Topの左上ヘッダーのロゴ画像をクリックしたとき指定URLへ...
指定URL http://www2.data-map.net/~okada/shop_top.html
# cd shop/data/Smarty/templates/default
# cp header.tpl header2.tpl
''header2.tpl''
<!--▼HEADER-->
<div id="header">
<h1>
<a href="http://www2.data-map.net/~okada/shop_top.ht...
<em><!--{$arrSiteInfo.shop_name|escape}-->/<!--{$t...
</a>
</h1>
<div id="information">
''data/class/SC_View.php''
103行あたりに追加
// ヘッダとフッタを割り当て
$header_tpl = USER_PATH . USER_PACKAGE_DIR . TEMP...
$footer_tpl = USER_PATH . USER_PACKAGE_DIR . TEMP...
// ユーザー作成のテンプレートが無ければ, 指定テン...
if (!$this->_smarty->template_exists($header_tpl)...
// Edit By JE2ISM
// if(ereg("/mypage/login.php", $_SERVER['REQ...
$_SERVER['REQUEST_URI'] ) || ereg("/entry/complete.php"...
if(ereg("/html/$", $_SERVER['REQUEST_URI'] ||...
transactionid=", $_SERVER['REQUEST_URI'] ))){
$header_tpl = TEMPLATE_DIR . "header2.tpl";
}else{
$header_tpl = TEMPLATE_DIR . "header.tpl";
}
}
if (!$this->_smarty->template_exists($footer_tpl)...
$footer_tpl = TEMPLATE_DIR . "footer.tpl";
}
***管理画面の顧客管理 [#v4e063bd]
''変更について''
data/class/pages/admin/customer/LC_Page_Admin_Customer_Ed...
197行ぐらいに追加
}
//-- 編集登録
$objDb->sfEditCustomerData($this->arr...
// 更新時にテーブルを同期させる(Edit...
require_once("/home/okada/temp/tbsyn...
}
}
}
//---- ページ表示
$objView->assignobj($this);
$objView->display(MAIN_FRAME);
''削除について''
data/class/pages/admin/customer/LC_Page_Admin_Customer.php
211行あたりに追加
// 顧客削除
if ($_POST['mode'] == "delete") {
$sql = "SELECT status,email FROM dtb_custome...
$result_customer = $objQuery->conn->getAll($...
if ($result_customer[0]["status"] == 2) { ...
$arrDel = array("del_flg" => 1, "update_...
$objQuery->conn->autoExecute("dtb_custom...
} elseif ($result_customer[0]["status"] == 1...
$sql = "DELETE FROM dtb_customer WHERE c...
$objQuery->conn->query($sql, array($_POS...
}
// 削除時にテーブルを同期させる(Edit by JE2I...
require_once("/home/okada/temp/tbsync_c.php"...
}
&color(red){''以下のように管理者画面での変更、削除Smarty...
''Smartyのコンパイル後を変更''
顧客管理で内容変更を行ったときtbsync.phpを実行させるにはS...
data/module/Smarty/libs/Smarty.class.phpを
* @var integer
*/
/* var $php_handling = SMARTY_PHP_PASSTHRU;*/
var $php_handling = SMARTY_PHP_ALLOW; <==変更
* @var array
*/
var $security_settings = array(
/* 'PHP_HANDLING' ...
'PHP_HANDLING' => ...
'IF_FUNCS' => ...
...
...
...
...
'INCLUDE_ANY' => ...
/* 'PHP_TAGS' ...
'PHP_TAGS' => ...
'MODIFIER_FUNCS' => ...
'ALLOW_CONSTANTS' =>...
);
のように変更する
本来はdata/Smarty/templates_c/default/admin/edit_complete...
data/Smarty/templates_c/default/admin/%%38^380^3807D...
</form>
</table>
<!-- 以下を追加 -->
<?php
require_once("/home/okada/temp/tbsync.php");
?>
<!--★★メインコンテンツ★★-->
これはコンパイル澄みなためdata/Smarty/templates_c/default...
''削除について''
data/Smarty/templates_c/default/admin/%%18^185^1850F...
function fnDelete(customer_id) {
if (confirm('この顧客情報を削除しても宜しいですか...
document.form1.mode.value = "delete"
document.form1['edit_customer_id'].value = cu...
document.form1.submit();
<?php ...
require_once("/home/okada/temp/tbsync.php"); ...
?> ...
return false;
}
}
&color(red){%%にすると%%abc%%のように取り消しになる...
終了行:
*Smarty [#c63da8dc]
RIGHT:更新日 &lastmod();
**Smartyのインストール [#t1ff2142]
ロジックを作成する作業と、HTMLデザインを編集する作業を分...
http://www.smarty.net/download.phpからダウンロード。
***設定 [#uc04dee8]
$ cd /usr/local/src
$ tar zxvf Smarty-2.6.19.tar.gz
$ cd /usr/local
$ su
# mv src/Smarty-2.6.19 .
# exit
$ cd
ホームディレクトリに作成するテンプレートを入れるフォルダs...
$ mkdir smatry_test
$ cd smatry_test
$ mkdir cache
$ mkdir configs
$ mkdir templates
$ mkdir templates_c
$ su
# chown -R apache.apache cache
# chown -R apache.apache templates_c
Smartyでwebアクセスする場所をsmarty_testとするため
# mkdir /var/www/html/smarty_test
''設定ファイル''
Smartyの環境を呼び出すのに必要
/var/www/html/smarty_test/init.php
<?php
// Linux スタイル (大文字の 'S' に注意)
define('SMARTY_DIR', '/usr/local/Smarty-2.6.19/libs/'); ...
require_once(SMARTY_DIR . 'Smarty.class.php');
$smarty = new Smarty();
// テンプレート、キャシュ等のディレクトリを指定。
$smarty->template_dir = '/home/okada/smatry_test/templat...
$smarty->compile_dir = '/home/okada/smatry_test/templat...
$smarty->config_dir = '/home/okada/smatry_test/configs...
$smarty->cache_dir = '/home/okada/smatry_test/cache/';
?>
/var/www/html/smarty_test/test.phpにアクセスページ(testペ...
<?php
require_once("/var/www/html/smarty_test/init.php");
$smarty->assign('name','JE2ISM');
$smarty->assign('name2','JF2LYU');
//** 次の行のコメントをはずすと、デバッギングコンソール...
//$smarty->debugging = true;
$smarty->display('index.tpl');
$smarty->display('index2.tpl');
?>
''/home/okada/smatry_test/templates/index.tpl''
{* Smarty *}
こんにちは、{$name}。ようこそ Smarty へ!
''/home/okada/smatry_test/templates/index2.tpl''
{* Smarty *}
<p>
こんにちは、{$name2}。<Br>
ようこそ Smarty へ!<Br>
''アクセス''
http://(サーバ)/smarty_test/test.php
''結果''
こんにちは、JE2ISM。ようこそ Smarty へ!
こんにちは、JF2LYU。
ようこそ Smarty へ!
**EC CUBEの複数の店のユーザを単一管理 [#g797abf6]
DBからテーブルをエクスポートしてそれを別テーブルにインポ...
ある時は上書きする。
''tbsync_new.php''(新規登録)~
<?php
$cmd = "/usr/bin/mysql -B --skip-column-names -u...
\--password=ism -D eccube_ism -e 'select * from dtb_cust...
exec($cmd, $output);
$fp=fopen("/home/okada/temp/dtb_customer.txt","w...
// fputs(implode("\n",$output) . "\n",$fp);
foreach ($output as $a){
// NULL文字は\Nとしてインポートの必要あり
$a = ereg_replace("NULL", "\N", $a);
fputs($fp,$a."\n");
}
fclose($fp);
// print_r($output);
// echo "<BR>\n";
// $a = implode("\n",$output) . "\n";
// echo "$a <BR>\n";
$cmd ="/usr/bin/mysqlimport --local eccube_ism2...
-u ism --password=ism --ignore -h 192.168.30.16";
exec($cmd);
?>
html/entry/complete.phpの最後の行に
require_once("/home/okada/temp/tbsync.php");
を追加
''tbsync_c.php''(登録削除を含むレコードコピー)~
<?php
// データ削除時に他のDBのレコードの書き換え(レコード全体)
// 元DBのデータ最終変更レコードのcustomer_idを抽出
$cmd = "/usr/bin/mysql -B --skip-column-names -u...
-D eccube_ism -e 'select customer_id from dtb_customer w...
update_date=(select max(update_date) from dtb_customer);...
exec($cmd, $id);
// echo "ID $id[0] \n";
// 元DBのデータ先のcustomer_idのレコードを抽出してTextフ...
$cmd = "/usr/bin/mysql -B --skip-column-names -u...
-D eccube_ism -e 'select * from dtb_customer where custo...
exec($cmd, $output);
// echo "$cmd <br>";
$fp=fopen("/home/okada/temp/dtb_customer.txt","w...
foreach ($output as $a){
// NULL文字は\Nとしてインポートの必要あり
$a = ereg_replace("NULL", "\N", $a);
fputs($fp,$a."\n");
}
fclose($fp);
// 元データの先のTextファイルを変更先DBにインポート
$cmd ="/usr/bin/mysqlimport --local eccube_ism2 ...
-u ism --password=ism -r -h 192.168.30.16";
exec($cmd);
?>
html/mypage/refusal_complete.php最後の行に
require_once("/home/okada/temp/tbsync_d.php");
を追加
''tbsync_r.php''(登録変更時のコピーただしpointはコピーさ...
<?php
// データ修正時にpointを変更さいないようにする。
// 元DBのデータ最終変更レコードのcustomer_idを抽出
$cmd = "/usr/bin/mysql -B --skip-column-names -u ...
-D eccube_ism -e 'select customer_id from dtb_customer w...
update_date=(select max(update_date) from dtb_customer);...
exec($cmd, $id);
// echo "ID $id[0] \n";
// 変更先DBの先のcustomer_idのpointを抽出 (1)
$cmd = "/usr/bin/mysql -B --skip-column-names -u...
-D eccube_ism2 -e 'select point from dtb_customer where \
customer_id =" . $id[0] .";' -h 192.168.30.16";
exec($cmd, $point);
// echo "Henkousaki Point $point[0] <Br>\n";
// 元DBのデータ先のcustomer_idのレコードを抽出してTextフ...
$cmd = "/usr/bin/mysql -B --skip-column-names -u...
-D eccube_ism -e 'select * from dtb_customer where \
customer_id =" . $id[0] . ";' -h 192.168.30.16";
exec($cmd, $output);
// echo "$cmd <br>";
$fp=fopen("/home/okada/temp/dtb_customer.txt","w...
foreach ($output as $a){
// NULL文字は\Nとしてインポートの必要あり
$a = ereg_replace("NULL", "\N", $a);
fputs($fp,$a."\n");
}
fclose($fp);
// 元データの先のTextファイルを変更先DBにインポート
$cmd ="/usr/bin/mysqlimport --local eccube_ism2 ...
-u ism --password=ism -r -h 192.168.30.16";
exec($cmd);
// 変更先DBのポイントを(1)で抽出したデータに書き換えて変...
$cmd ="/usr/bin/mysql -B --skip-column-names -u ...
-D eccube_ism2 -e 'update dtb_customer set point=" . $po...
where customer_id=" . $id[0] . ";' -h 192.168.30.16";
exec($cmd);
// echo "$cmd \n";
?>
html/mypage/change_complete.php最後の行に
require_once("/home/okada/temp/tbsync_r.php");
を追加
***Topの左上ヘッダーのロゴ画像をクリックしたとき指定URLへ...
指定URL http://www2.data-map.net/~okada/shop_top.html
# cd shop/data/Smarty/templates/default
# cp header.tpl header2.tpl
''header2.tpl''
<!--▼HEADER-->
<div id="header">
<h1>
<a href="http://www2.data-map.net/~okada/shop_top.ht...
<em><!--{$arrSiteInfo.shop_name|escape}-->/<!--{$t...
</a>
</h1>
<div id="information">
''data/class/SC_View.php''
103行あたりに追加
// ヘッダとフッタを割り当て
$header_tpl = USER_PATH . USER_PACKAGE_DIR . TEMP...
$footer_tpl = USER_PATH . USER_PACKAGE_DIR . TEMP...
// ユーザー作成のテンプレートが無ければ, 指定テン...
if (!$this->_smarty->template_exists($header_tpl)...
// Edit By JE2ISM
// if(ereg("/mypage/login.php", $_SERVER['REQ...
$_SERVER['REQUEST_URI'] ) || ereg("/entry/complete.php"...
if(ereg("/html/$", $_SERVER['REQUEST_URI'] ||...
transactionid=", $_SERVER['REQUEST_URI'] ))){
$header_tpl = TEMPLATE_DIR . "header2.tpl";
}else{
$header_tpl = TEMPLATE_DIR . "header.tpl";
}
}
if (!$this->_smarty->template_exists($footer_tpl)...
$footer_tpl = TEMPLATE_DIR . "footer.tpl";
}
***管理画面の顧客管理 [#v4e063bd]
''変更について''
data/class/pages/admin/customer/LC_Page_Admin_Customer_Ed...
197行ぐらいに追加
}
//-- 編集登録
$objDb->sfEditCustomerData($this->arr...
// 更新時にテーブルを同期させる(Edit...
require_once("/home/okada/temp/tbsyn...
}
}
}
//---- ページ表示
$objView->assignobj($this);
$objView->display(MAIN_FRAME);
''削除について''
data/class/pages/admin/customer/LC_Page_Admin_Customer.php
211行あたりに追加
// 顧客削除
if ($_POST['mode'] == "delete") {
$sql = "SELECT status,email FROM dtb_custome...
$result_customer = $objQuery->conn->getAll($...
if ($result_customer[0]["status"] == 2) { ...
$arrDel = array("del_flg" => 1, "update_...
$objQuery->conn->autoExecute("dtb_custom...
} elseif ($result_customer[0]["status"] == 1...
$sql = "DELETE FROM dtb_customer WHERE c...
$objQuery->conn->query($sql, array($_POS...
}
// 削除時にテーブルを同期させる(Edit by JE2I...
require_once("/home/okada/temp/tbsync_c.php"...
}
&color(red){''以下のように管理者画面での変更、削除Smarty...
''Smartyのコンパイル後を変更''
顧客管理で内容変更を行ったときtbsync.phpを実行させるにはS...
data/module/Smarty/libs/Smarty.class.phpを
* @var integer
*/
/* var $php_handling = SMARTY_PHP_PASSTHRU;*/
var $php_handling = SMARTY_PHP_ALLOW; <==変更
* @var array
*/
var $security_settings = array(
/* 'PHP_HANDLING' ...
'PHP_HANDLING' => ...
'IF_FUNCS' => ...
...
...
...
...
'INCLUDE_ANY' => ...
/* 'PHP_TAGS' ...
'PHP_TAGS' => ...
'MODIFIER_FUNCS' => ...
'ALLOW_CONSTANTS' =>...
);
のように変更する
本来はdata/Smarty/templates_c/default/admin/edit_complete...
data/Smarty/templates_c/default/admin/%%38^380^3807D...
</form>
</table>
<!-- 以下を追加 -->
<?php
require_once("/home/okada/temp/tbsync.php");
?>
<!--★★メインコンテンツ★★-->
これはコンパイル澄みなためdata/Smarty/templates_c/default...
''削除について''
data/Smarty/templates_c/default/admin/%%18^185^1850F...
function fnDelete(customer_id) {
if (confirm('この顧客情報を削除しても宜しいですか...
document.form1.mode.value = "delete"
document.form1['edit_customer_id'].value = cu...
document.form1.submit();
<?php ...
require_once("/home/okada/temp/tbsync.php"); ...
?> ...
return false;
}
}
&color(red){%%にすると%%abc%%のように取り消しになる...
ページ名: