zencart:カスタマイズ リンクの貼り方

セッションや共用SSLの問題を考えずに、普通にリンクを貼るのであれば、Zencartのデフォルトで設定されているURL(http://domain_name.com/index.php?main_page=contact_us など)をそのままテンプレート内に張り付けることで動作しますが、この方法でリンクを貼るとクッキーの使えないブラウザで正常にセッションが動作しなくなります。Zencartのセッションについてはこちらの記事で触れています。

セッションを維持するリンクの貼り方は状況によっていくつか考えられるので、順に説明していきたいと思います。

1.Zencart(filenames.php)にもともと定義されているページへのリンクの貼り方

■形式

非SSLの場合 : <a href=”<?php echo zen_href_link(FILENAME_CONTACT_US, ”, ‘NONSSL‘); ?>”>お問い合わせ</a>

SSLの場合 : <a href=”<?php echo zen_href_link(FILENAME_LOGIN, ”, ‘SSL‘); ?>”>ログイン</a>

この場合は、「FILENAME~」となっている箇所を includes/filenames.php に定義されている名前と同じものを設定することになります。

SSLにするかどうかの設定は「SSL」または、「NONSSL」を記述します。

2.Zencart(filenames.php)にもともと定義されていないページへのリンクの貼り方

例えば、「http://domain_name.com/index.php?main_page=index&cPath=14」にリンクを張りたい場合などです。

■形式

<a href=”<?php echo zen_href_link(“index&cPath=14“, ”, ‘NONSSL’); ?>”>ページ名</a>

この場合は、「index&cPath=14」となっている箇所を編集します。

URLで 「index.php?main_page=」 以降の箇所を赤字の箇所に指定することで動作します。

SSLにするかどうかの設定は「SSL」または、「NONSSL」を記述します。

3.オリジナルのphpプログラムの中で動かすような場合

例として、カテゴリIDを取得し、自動でカテゴリ名へリンクを設置するようなプログラムを作るとします。そのリンク箇所にセッションが正常に引き継げるように設定します。

■形式

<a href=\”http://domain_name/index.php?main_page=index&cPath=&#8221;.$categories_id.”&”.zen_session_name() . ‘=’ . zen_session_id().“\”>”.$res3[‘categories_name’].”</a>

Zencart内で、zen_session_nameというのは「zenid」のことです。zen_session_idというのはzenidの値のことです。

このやり方については、クッキーの設定に関わらず、URL内のzenidにてセッションを引き継ぐ方法ですが、セキュリティ面を考慮すると、もう少しスマートなやり方があるかもしれません。

4.Zencartのサイト内に静的htmlのページがある場合

■形式

<a href=”http://domain_name/sitemap.html?&lt;?php echo zen_session_name() . ‘=’ . zen_session_id() ?>”>サイトマップ</a>

これについては、静的htmlを介して、セッションを引き継ぐために無理やり動作させているという感じです。

静的htmlからZencartページに戻った場合なども、セッションを引き継ぐ必要があるので、静的htmlページ内のリンクも全て記述を修正する必要が出てくると思います。

また、サーバ環境によっては、htmlファイルでphpを動作させるために「.htaccess」ファイルによる設定も必要になるかもしれません。

コメント / トラックバック2件 to “zencart:カスタマイズ リンクの貼り方”

  1. Zencat : 共用SSLを利用する場合のセッション管理 » 被リンク Says:

    […] げるようにZencartの仕様にそったリンクの貼り方をする必要があります。Zencartに内でのリンクの貼り方については、「zencart:カスタマイズ リンクの貼り方」の記事を参考にしてください。 […]

  2. web tips around me» Zencart : セッションについて Says:

    […] セッションを引き継ぐリンクの貼り方についてはこちらのページを参照してください。 […]


コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。