> フロント機能 > eccubeのphpファイル内でのインクルード文に関してのご質問 |
フロント機能
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | 下へ |
投稿者 | スレッド |
---|---|
bio |
投稿日時: 2016/3/27 0:25
対応状況: −−−
|
一人前 登録日: 2013/3/13 居住地: 投稿: 81 |
eccubeのphpファイル内でのインクルード文に関してのご質問 eccube ver3系
お世話になります。eccubeの全般的な質問になると思います。 Eccubeでtplファイルのインクルード文は以下の記述になりますが、 <!--{include file="`$smarty.const.TEMPLATE_REALDIR`new_products_include.tpl"}--> phpファイル(クエリーの条件文が多いためインクルードしたい)でのインクルード文はどのような記述にすればよろしいのでしょうか。 デフォルトの設定で何か参考にできる記述はございませんでしょうか。 |
bio |
投稿日時: 2016/3/30 15:16
対応状況: −−−
|
一人前 登録日: 2013/3/13 居住地: 投稿: 81 |
Re: eccubeのphpファイル内でのインクルード文に関してのご質問 お世話になっております。
新たに設定したブロックを呼び出すphpファイル内で使うクエリーのwhere句でif、elseifを多用して条件分岐をしています。その条件分岐が多すぎる、および他のファイルでも使用可能という理由からインクルードにしました。phpファイル(LC_Page_FrontParts_Bloc_Product_List.php)内から*自作したif,elseif文を多用したインクルードファイルを呼び出すための正しい記述方法をお教え願いませんでしょうか。 以下は試したインクルードの記述とエラーメッセージ。 ? <!--{include_php file=$smarty.const.HTML_PATH|cat:"pages/frontparts/test.php"}--> 上記の記述では以下のようなエラーメッセージが出ます。 error(E_PARSE): syntax error, unexpected '<' on [/var/www/vhosts/xxxx/httpdocs/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List.php(136)] from customer_id = ? include(‘/frontparts/test.php’); 上記の記述では 2016/03/30 14:27:17 [/products/detail.php] Warning(E_WARNING): include(/frontparts/test.php) [<a href='function.include'>function.include</a>]: failed to open stream: そのようなファイルやディレクトリはありません on [/var/www/vhosts/xxxxx/httpdocs/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List.php(137)] from 2016/03/30 14:27:17 [/products/detail.php] Warning(E_WARNING): include() [<a href='function.include'>function.include</a>]: Failed opening '/frontparts/test.php' for inclusion (include_path='/var/www/vhosts/xxxxx/httpdocs/data/module:.:') on [/var/www/vhosts/xxxxxx/httpdocs/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List.php(137)] from * Test.php(自作したインクルードファイル内の内容) <?php If { }else if { }else if { }else if { }else if { ・・ ・・ } ?> |
red |
投稿日時: 2016/3/30 15:59
対応状況: −−−
|
神 登録日: 2010/2/15 居住地: 東京都 投稿: 1570 |
Re: eccubeのphpファイル内でのインクルード文に関してのご質問 <!--{include_php}-->
http://www.smarty.net/docsv2/ja/
|
bio |
投稿日時: 2016/3/30 16:31
対応状況: −−−
|
一人前 登録日: 2013/3/13 居住地: 投稿: 81 |
Re: eccubeのphpファイル内でのインクルード文に関してのご質問 Red様
ご連絡感謝いたします。 <!--{include_php}-->を利用するということでしょうか。それではおそらく最初のエラーのunexpected '<'がでると思われます。 ですのでhttp://www.smarty.net/docsv2/ja/を参考に以下を試しましたが、 {php} include('/frontparts/test.php'); {/php} 以下の様なメッセージが出ます。 2016/03/30 [/products/detail.php] Fatal error(E_PARSE): syntax error, unexpected '}' on [/var/www/vhosts/xxxx/httpdocs/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List.php(138)] from customer_id = 本サイトの過去のスレッド全てを試しましたが、エラーメッセージがでます。 具体的記述方法をご教授頂けませんでしょうか。 |
red |
投稿日時: 2016/3/30 16:52
対応状況: −−−
|
神 登録日: 2010/2/15 居住地: 東京都 投稿: 1570 |
Re: eccubeのphpファイル内でのインクルード文に関してのご質問 <!--{include_php file=$smarty.const.HTML_REALDIR|cat:"test.php"}-->
で動きました EC-CUBE2.13で確認してます
|
bio |
投稿日時: 2016/3/30 17:54
対応状況: −−−
|
一人前 登録日: 2013/3/13 居住地: 投稿: 81 |
Re: eccubeのphpファイル内でのインクルード文に関してのご質問 Red様
お時間を頂きまして本当に感謝いたします。 試しましたが、やはりsyntax error, unexpected '<' のエラーが出ます。 **状況を確認しますと、新設ブロックの抽出phpファイルの以下の様な$where句の直下に位置します。何かお分かりになりますでしょうか。 $objQuery = new SC_Query_Ex(); // 商品一覧を取得 $col $from $where = $_GET['product_id'].'!= T1.product_id and T2.del_flg = 0 and T1.class_id IN (?)'; // $arrval で指定するカテゴリIDの数だけ ? を増やす if ($_GET['category_id'] == 'env') { <!--{include_php file=$smarty.const.HTML_REALDIR|cat:"test.php"}--> }else if{ * Test.php(自作したインクルードファイル内の内容) <?php If { $arrval = Array(xxx); }else if { $arrval = Array(xxx); }else if { $arrval = Array(xxx); }else if { $arrval = Array(xxx); }else if { ・・ } ?> |
red |
投稿日時: 2016/3/30 18:41
対応状況: −−−
|
神 登録日: 2010/2/15 居住地: 東京都 投稿: 1570 |
Re: eccubeのphpファイル内でのインクルード文に関してのご質問 phpの中で<!--{include_php file=$smarty.const.HTML_REALDIR|cat:"test.php"}-->を書いても動くわけないような・・・?
|
bio |
投稿日時: 2016/3/30 19:16
対応状況: −−−
|
一人前 登録日: 2013/3/13 居住地: 投稿: 81 |
Re: eccubeのphpファイル内でのインクルード文に関してのご質問 Red様
お時間頂きまして感謝致します。 また私の説明不足で申し訳ございません。 本件の様なケースの場合(phpファイル内での外部のphpファイルを呼び出すインクルード文)、具体的にどのような記述にすれば宜しいか、事例等はございませんでしょうか。いろいろと試しましたが前述の様なエラーが出ます。 |
red |
投稿日時: 2016/3/30 19:23
対応状況: −−−
|
神 登録日: 2010/2/15 居住地: 東京都 投稿: 1570 |
Re: eccubeのphpファイル内でのインクルード文に関してのご質問 PHPで呼び出すのであれば
? include(‘/frontparts/test.php’); 上記の記述では 2016/03/30 14:27:17 [/products/detail.php] Warning(E_WARNING): include(/frontparts/test.php) [<a href='function.include'>function.include</a>]: failed to open stream: そのようなファイルやディレクトリはありません on [/var/www/vhosts/xxxxx/httpdocs/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List.php(137)] from 2016/03/30 14:27:17 [/products/detail.php] Warning(E_WARNING): include() [<a href='function.include'>function.include</a>]: Failed opening '/frontparts/test.php' for inclusion (include_path='/var/www/vhosts/xxxxx/httpdocs/data/module:.:') on [/var/www/vhosts/xxxxxx/httpdocs/data/class/pages/frontparts/bloc/LC_Page_FrontParts_Bloc_Product_List.php(137)] from これが正解です このエラーは、「そのようなファイルやディレクトリはありません」と書いてあるように、パスが間違っているためです include(HTML_REALDIR . ‘/frontparts/test.php’); とかになるんじゃないでしょうか
|
bio |
投稿日時: 2016/3/30 21:48
対応状況: 解決済
|
一人前 登録日: 2013/3/13 居住地: 投稿: 81 |
Re: eccubeのphpファイル内でのインクルード文に関してのご質問 Red様
できました。red様のご教授を受け、パスの設定に問題があるという観点からいろいろと調べておりましたら以下の記述にたどり着きました。 Test.phpはブロック用のphpファイルと同じディレクトリに配置しました。この記述で想定どおり機能しているように思われます。 幾度となく返信、そしてご教授頂きまして、感謝の限りでございます。本当にありがとうございます。 include(dirname(__FILE__).'/test.php'); |
スレッド表示 | 新しいものから | 前のトピック | 次のトピック | トップ |