質問 > フロント機能 > 変数宣言と画面遷移 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
gabriel |
投稿日時: 2011/10/19 22:39
対応状況: −−−
|
常連 登録日: 2011/8/18 居住地: 投稿: 35 |
変数宣言と画面遷移 お世話になります。
最近ECCUBEを始めたJava技術者です。(Ver 2.11) localhostで稼働させています。 Javaとは違った設計で、戸惑っております。 非常に初歩的な質問になりますが、ご教授お願い致します。 まず、ECCUBEでは変数の宣言がどこで行われているのかが わかりません。通常のファイルの中で <!--{ $test = "aaa"}--> と入力しても、対応されません。 どこか一つのファイルで管理しているのか、それとも その関連のファイルに(CartファイルならCartファイル関連に) 別途宣言されているのでしょうか? 詳しく教えて頂ければと思います。宜しくお願い致します。 次に画面遷移についてです。 こちらも初歩的とは思いますがお願い致します。 かごの中の画面に「更新」というボタンをつくり、其の画面を更新させたいと 思っています。 オプションとして、かごの中の画面に、セレクトボックスをつくり、そのセレクトボックスの 内容で、金額を変更させたいと思っています。 しかし、そもそも <form action=""> となっており、そのかごの中の画面からどこに遷移しているか分りません。 php→tpl→php→tplという風に表に出る画面と、裏で操作する画面が 交互に遷移していると思うのですが、どうなっているのでしょうか? もしご教授頂けるのであれば、Javaと置き換えて説明して頂ければ 幸いです。(置き換えなくても答えて貰えるだけで幸いです) 以上、非常に申し訳ありませんが,宜しくお願い致します。 [EC-CUBE] 2.11.1(新規インストール) [レンタルサーバ] localhost [OS] Windows [PHP] 5.11.6 [データベース] MySQL 5.1.34 [WEBサーバ] Apache [ブラウザ] Firefox6.0.2 |
ゲスト |
投稿日時: 2011/10/20 10:40
対応状況: −−−
|
Re: 変数宣言と画面遷移 引用:
まず、ECCUBEでは変数の宣言がどこで行われているのかが 変数宣言は、行いません。 右辺の型により左辺の方が動的に決まって行きます。 引用: 通常のファイルの中で 詳しくは、Smartyのリファレンスを参照して頂くとして、 上記は、左辺への右辺の代入にはなりません。 Smartyでの代入にはassignを使用します。 が、ここでの疑問は、phpの変数への代入と思いますので、 php側で $this->test = "aaa"; とすることで、 tplで<!--{ $test }-->と記述すると aaaが表示されます。 引用: どこか一つのファイルで管理しているのか、それとも 買い物でいうと、以下の様に遷移します。 1.html/cart/index.php 2.data/class_extends/page_extends/cart/LC_Page_Cart_Ex.php 3.data/class/pages/cart/LC_Page_Cart.php 4.data/Smarty/templates/default/cart/index.tpl 画面 →「1.」他。。。 LC_Page_Cart.php の$this->modeのswitch分岐をみると、 機能追加の方法が分かると思います。 引用: <form action=""> は<form action="?">と思うのですが、 ?はそのページ自身と言うことで、 html/cart/index.php になります。 |
|
gabriel |
投稿日時: 2011/10/20 18:30
対応状況: −−−
|
常連 登録日: 2011/8/18 居住地: 投稿: 35 |
Re: 変数宣言と画面遷移 素早い対応ありがとうございます。
$this->test = "aaa"; なのですが、どのphpファイルに入力するべきなのでしょうか? そして<form action="?">でのページ自身というところが 少し理解できません。 その構文で自分自身に再度アクセスして、何らかのもらってきた 値で次の購入確認画面にいくのでしょうか? そもそもそれぞれのファイルが何の動作をしているのかを 理解する必要があると思いました。 1.html/cart/index.php 2.data/class_extends/page_extends/cart/LC_Page_Cart_Ex.php 3.data/class/pages/cart/LC_Page_Cart.php 4.data/Smarty/templates/default/cart/index.tpl この四つのファイルはそれぞれどのような役割をしているのでしょうか? やりたいことといえば、カゴの中の画面で、セレクトボックスをつけて更新ボタンを設置し、そのセレクトボックスの中の内容によって料金の値段を上限させたいと思っています。 なので、更新ボタンを押したら、そのセレクトボックスの内容を読み込んで、再度カゴの中の画面に戻りたいと思っています。(そこで何かしらの値を与えてif文で料金を変更したいと思っています。) 何度も申し訳ありませんが、宜しくお願いします。 |
ゲスト |
投稿日時: 2011/10/20 20:53
対応状況: −−−
|
Re: 変数宣言と画面遷移 引用:
$this->test = "aaa"; 取り敢えず、 3.data/class/pages/cart/LC_Page_Cart.php で、良いです。 引用: そして<form action="?">でのページ自身というところが 例えば、商品数を、増減させると、 1.html/cart/index.php へ飛んで、LC_Page_Cart.phpの$this->modeのswitch分岐で 商品数が操作され、表示が更新されます。 よって↓が成立しています。 引用: その構文で自分自身に再度アクセスして、何らかのもらってきた 引用: この四つのファイルはそれぞれどのような役割をしているのでしょうか? 1.html/cart/index.php httpdのDocumentRoot配下のhttpアクセスを許可されている部分。 2.data/class_extends/page_extends/cart/LC_Page_Cart_Ex.php classの拡張。 小生は主にclassのオーバーライドに使用しています。 使用例を署名内のurlで公開してますので、 参考にしてみてください。 3.data/class/pages/cart/LC_Page_Cart.php classそのものです。 4.data/Smarty/templates/default/cart/index.tpl Smartyを利用した動的html生成用テンプレートです。 引用: やりたいことといえば、カゴの中の画面で、セレクトボックスをつけて更新ボタンを設置し、そのセレクトボックスの中の内容によって料金の値段を上限させたいと思っています。 4.data/Smarty/templates/default/cart/index.tpl 内のjava scriptを呼び出している所を理解して、 ご希望の動作を記述してください。 尚、eclipse-php を利用されると、 コードの把握と、コーディングの効率が、格段に向上します。 |
|
gabriel |
投稿日時: 2011/10/21 20:44
対応状況: −−−
|
常連 登録日: 2011/8/18 居住地: 投稿: 35 |
Re: 変数宣言と画面遷移 >Ringoさん
非常にお世話になっております。 少しずつですが、ECCUBEが理解できてきました。 なんとか画面繊維の内容については理解できました。 いろいろ複雑で倒れてしまいそうです。。。 そこで再度お聞きしたいのですが、画面遷移の 順序は理解できたのですが、値の受け渡しは どうしたらいいのでしょうか? もしPHPファイルの中で$test="10";($this->test = "10";) という記述をして それをtplで使用する際には{!--{$test}--}とすれば、 10が出力されるのですよね? それでは、その値にtplで再度値をプラスしたり、マイナスしたり 上書きするためにはどうしたらいいのでしょう? そして、tplファイルでselecBoxを作っているのですが、それを phpファイルの中の何かしらの変数に受け取らせるにはどうしたら いいでしょうか?それかsessionに突っ込んで使用するにはどういう 方法がありますでしょうか? 平たく書きますと、tpl→php→tplという様に値をやりとりしたいと思っているのです。Javaでいえば、session.getAttributeの様にやりとりできるのですが、PHPではやり方がわかりません。。。 そして初歩的すぎるとは思いますが、、 $objCartSess->delProduct($cart_no, $cartKey); このような変数はどこで最初に宣言されているのでしょうか? もう少しで光が見えそうです。 何度も申し訳ありませんが、ご教授をどうかお願い致します。 |
ゲスト |
投稿日時: 2011/10/21 22:49
対応状況: −−−
|
Re: 変数宣言と画面遷移 引用:
もしPHPファイルの中で php内での「$this->変数名」(「$this->」付き)が、 Smartyで参照出来る事に留意してください。 $testではphp内のローカル変数となります。 引用: それでは、その値にtplで再度値をプラスしたり、マイナスしたり 先にも示しています様に、処理「プラス、マイナス」はphp側で行います。 tpl側は 1.デフォルト値を表示する。 2.formで 1)処理モード 2)「値」 をphp側へ送り込む。 ことを行います。 (Smarty内でphpのインストラクションを記述できますが、eccubeでは非推奨です。) 引用: そして、tplファイルでselecBoxを作っているのですが、それを 概念的には 1.<select>タグで必要な選択肢を<option value="...>しておき 2.<a href="?" onclick="fnFormModeSubmit('form<!--{$key}-->','up','cart_no','<!--{$item.cart_no}-->'); return false"><img src="<!--{$TPL_URLPATH}-->img/button/btn_plus.jpg" width="16" height="16" alt="+" /></a> を流用して送り込みを記述し 3.php側で 1)$objFormParam = $this->lfInitParam($_REQUEST); で受け取り( 「function lfInitParam($arrRequest) {」に新name値の追加は必要) 2)switch($this->mode) { 部分で処理分岐し、selectboxの値に対応した値を「例:$this->arrData["hogehoge"]」に代入し 4.tpl側で「$arrData["hogehoge"]」を表示する となります。 fnFormModeSubmit()は「html/js/site.js」内で定義されています。 ここの部分は、時間が取れたら、サンプルコードで動作確認をした後、提示させて頂きたく、、、お時間ください。 引用: そして初歩的すぎるとは思いますが、、 2.11.1とのことですので、data/class/pages/cart/LC_Page_Cart.phpの77行目の
になります。 |
|
ゲスト |
投稿日時: 2011/10/24 11:18
対応状況: −−−
|
Re: 変数宣言と画面遷移 サンプルコードです。
|
|
gabriel |
投稿日時: 2011/10/24 14:30
対応状況: −−−
|
常連 登録日: 2011/8/18 居住地: 投稿: 35 |
Re: 変数宣言と画面遷移 >Ringo様
お世話になっております。 毎回サポートしていただきありがとうございます。 少しずつ前に進めており非常に感謝しています。 今回のコードについて、難しい内容ながらも いろいろと流用出来てとてもありがたいです。 しかし、私の言葉が不適切で要らぬ手間をかけさせて しまっております。 私が申し上げたかったのは、カートの中の商品ひとつひとつに セレクトボックスを設置し、その内容で、現在の単価+αと いう値段を設定したいという内容でした。 確かに上限と書いてしまっており、私の不徳の次第でございます。 もしよろしければ、再度サポートをお願いできませんでしょうか? |
ゲスト |
投稿日時: 2011/10/24 19:24
対応状況: −−−
|
Re: 変数宣言と画面遷移 引用:
[私が申し上げたかったのは、カートの中の商品ひとつひとつに ということで、 引用: $objCartSess->delProduct($cart_no, $cartKey); だったのでしょうか? data/class/SC_CartSession.php に、各種 function が定義されています。 それで、目的の処理は 1.tpl側にて先の様にselectboxを設け 2.php側にて
を流用して、SC_CartSession.phpに新設する「例:$objCartSess->addPrice(...)」を実行させ、 3.「2度目」の「data/class/pages/cart/LC_Page_Cart.php 」(SC_Response_Ex::reload(...))にて「// カート集計処理」以下を行わせる。 になるかと思います。 ところで「規格」機能を使用せず「かごの中」での本処理を希望されるのには、なにがしかの思惑が有るとの理解でよろしいでしょうか? |
|
gabriel |
投稿日時: 2011/10/25 8:45
対応状況: −−−
|
常連 登録日: 2011/8/18 居住地: 投稿: 35 |
Re: 変数宣言と画面遷移 >Ringo様
お世話になります。迅速な対応に感謝しております。 >ところで「規格」機能を使用せず「かごの中」での本処理を希望されるのには、なにがしかの思惑が有るとの理解でよろしいでしょうか? 実は、作成中のものは、トレーディングカード販売のECサイトでして、基本的に料金は一律400円、そして購入される枚数が11枚を超えると一律200円の料金に変更するというものです。(10枚で通常4000円なのですが、11枚になると2200円になる様なシステムです)そして、ラミネートしたものや、ケース付きというオプションをつけることにより、値段を+100円などに変更するという使用になります。 以前運営していたサイトでは、規格という形で運営していたのですが(他の方に作成していただいたサイト)その際に、お客様からいちいち商品を購入するごとに選ぶのが面倒なので、購入するときにいっぺんに変更できるようにしてほしいという要望が非常に多く、それが面倒でこのサイトでは買わないとおっしゃる方もいらっしゃったので、今回はこのような仕様にしようと考えました。 引用:
申し訳ないのですが、こちらの部分をもう少し詳しく書いていただけませんか? あと、商品単価がtplの方では、「$item.productsClass.price02」という記載になっているのですが、これはphp側ではなんという名前になっているのでしょうか? 度々ご迷惑をおかけしますが、宜しくお願いいたします。 |
(1) 2 » |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |