バージョン選択

フォーラム

メニュー

オンライン状況

80 人のユーザが現在オンラインです。 (67 人のユーザが フォーラム を参照しています。)
登録ユーザ: 1
ゲスト: 79
zerostaff もっと...

サイト内検索

質問 > フロント機能 > 非表示設定のままURLを知る人だけにページを見せたい

フロント機能

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
kanaryo
投稿日時: 2014/2/5 15:40
対応状況: −−−
常連
登録日: 2011/10/18
居住地:
投稿: 66
非表示設定のままURLを知る人だけにページを見せたい
管理画面 > 商品登録画面において、公開・非公開を「非公開」にした場合、
該当ページのURL(/products/detail.php?product_id=@)をブラウザに入力すると、
「ご指定のページはございません」と表示され、エラー扱いになります。

これを「非表示」設定のままでURLを直接ブラウザに入力し、
通常通り該当ページを表示させるようにしたいのです。

非表示設定にしたページのURLを知る人のみが見れるようにしたいので、
商品一覧ページに表示されると困るのです。

どなたか御教示下さいませm(__)m

ver2.11.4
PHP 5.2.17p3
PostgreSQL 9.0.1
snitta
投稿日時: 2014/2/5 19:58
対応状況: −−−
一人前
登録日: 2013/10/3
居住地: 島根県
投稿: 100
Re: 非表示設定のままURLを知る人だけにページを見せたい
data/class/pages/products/LC_Page_Products_Detail.php の LC_Page_Products_Detail::lfCheckProductId() 内で 公開・非公開を表す dtb_products.status を確認し、エラーページへ偏移しています。
上記の個所を書き換える事でご希望通りの動作になると思います。

例えばこんな具合でいかがでしょうか?
Index: data/class_extends/page_extends/products/LC_Page_Products_Detail_Ex.php
===================================================================
--- data/class_extends/page_extends/products/LC_Page_Products_Detail_Ex.php	(リビジョン 21306)
+++ data/class_extends/page_extends/products/LC_Page_Products_Detail_Ex.php	(作業コピー)
@@ -64,5 +64,16 @@
     function destroy() {
         parent::destroy();
     }
+
+    function lfCheckProductId($admin_mode,$product_id) {
+        // 削除されていなければ問答無用で公開
+        $where = 'del_flg = 0';
+
+        if(!SC_Utils_Ex::sfIsInt($product_id)
+            || SC_Utils_Ex::sfIsZeroFilling($product_id)
+            || !SC_Helper_DB_Ex::sfIsRecord('dtb_products', 'product_id', (array)$product_id, $where))
+            SC_Utils_Ex::sfDispSiteError(PRODUCT_NOT_FOUND);
+        return $product_id;
+    }
 }
 ?>


ちなみに詳細ページを表示できると購入まで出来ちゃうようです。
その点をご注意下さい。


----------------
Seiji Nitta
zenith6@gmail.com
https://github.com/zenith6/

kanaryo
投稿日時: 2014/2/6 10:50
対応状況: −−−
常連
登録日: 2011/10/18
居住地:
投稿: 66
Re: 非表示設定のままURLを知る人だけにページを見せたい
snittaさん

ありがとうございます!!
出来ました!!!

対象のファイルとコードまで書いて下さり、
ド素人の私にとってはこの上ないアドバイスで助かりました。

ちなみにですが・・・
この状態でページ上から申込みボタンを表示しないようにすることは出来るのでしょうか?

「非表示」設定のページは商品一覧ページには表示されず、
検索ボックスからも引っかからない。
URLの直打ちなどでページにアクセスした場合は表示され、
尚且つ申込みボタンを表示させない。つまり購入は出来ない。

tplファイル側で条件分岐などのコードで振り分けるのかな?
と思ったのですが、どこに何を書けばいいのやら分からなくて。。

可能のようでしたらアドバイスいただけますと幸いですm(__)m
snitta
投稿日時: 2014/2/6 11:47
対応状況: −−−
一人前
登録日: 2013/10/3
居住地: 島根県
投稿: 100
Re: 非表示設定のままURLを知る人だけにページを見せたい
お役に立てて何よりです

引用:
「非表示」設定のページは商品一覧ページには表示されず、
検索ボックスからも引っかからない。
URLの直打ちなどでページにアクセスした場合は表示され、
尚且つ申込みボタンを表示させない。つまり購入は出来ない。


検索ボックスと一覧は非公開の設定で実現できていますから、後は購入だけですね。
見た目だけの対応はご注目された通りtplファイルの購入フォーム部分を隠せばよいです。
data/Smarty/templates/default/products/detail.tpl の200行目付近(カスタマイズしていない状態)が該当箇所ですので、$arrProduct.status の値で分岐させて下さい。

Index: data/Smarty/templates/default/products/detail.tpl
===================================================================
--- data/Smarty/templates/default/products/detail.tpl	(リビジョン 21306)
+++ data/Smarty/templates/default/products/detail.tpl	(作業コピー)
@@ -197,7 +197,9 @@
             <input type="hidden" name="product_class_id" value="<!--{$tpl_product_class_id}-->" id="product_class_id" />
             <input type="hidden" name="favorite_product_id" value="" />
 
-            <!--{if $tpl_stock_find}-->
+            <!--{if $arrProduct.status == 2}-->
+                <p>非公開用のメッセージ等。必要なければこの1行全体を削除して下さい。</p>
+            <!--{elseif $tpl_stock_find}-->
                 <!--{if $tpl_classcat_find1}-->
                     <div class="classlist">
                         <!--▼規格1-->


差し出がましいですが前述した通り見た目だけの対応ゆえ、詳しい方の手に掛かると注文できちゃいます。
もしその辺りが問題になるようでしたら、EC-CUBE公式のインテグレートパートナーさんなり当方なり非公開の場でお任せされると良いかもです。


----------------
Seiji Nitta
zenith6@gmail.com
https://github.com/zenith6/

kanaryo
投稿日時: 2014/2/6 12:51
対応状況: −−−
常連
登録日: 2011/10/18
居住地:
投稿: 66
Re: 非表示設定のままURLを知る人だけにページを見せたい
商品詳細ページの申し込みボタンエリアを

<!--{if $arrProduct.status == 2}-->
ボタン非表示
<!--{else}-->
ボタン表示コード
<!--{/if}-->

で条件分岐したらとりあえず希望の動作になったのですが、
これでいいんでしょうか (*_*;

snitta
投稿日時: 2014/2/6 12:56
対応状況: −−−
一人前
登録日: 2013/10/3
居住地: 島根県
投稿: 100
Re: 非表示設定のままURLを知る人だけにページを見せたい
はいそれで大丈夫です。


----------------
Seiji Nitta
zenith6@gmail.com
https://github.com/zenith6/

kanaryo
投稿日時: 2014/2/6 14:30
対応状況: −−−
常連
登録日: 2011/10/18
居住地:
投稿: 66
Re: 非表示設定のままURLを知る人だけにページを見せたい
snittaさん

ありがとうございます!
極めて分かりやすいご説明、アドバイス、コードの記述等
本当に助かりました。

該当ファイル、記述ヶ所、記述内容と教えて下さり、
まさに"目からうろこ"でした。

是非、是非、またよろしくお願い申し上げます!!!

m(__)m
スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,857名です
総投稿数は109,992件です

投稿数ランキング

1
seasoft
7367
2
468
3217
3
AMUAMU
2712
4
nanasess
2313
5
umebius
2085
6
yuh
1819
7
h_tanaka
1646
8
red
1570
9
mcontact
1292
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
799
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.