同人誌紹介に通販ページのリンクをつける

同人誌の紹介ページに通販ページへのリンクをつけるカスタマイズです。本文にリンクを追加するだけでも充分機能しますが、ここでは通販リンク用の項目を新たに作成する方法を紹介しています。

動作デモ

当サイトの[同人活動](http://noka.natukusa.net/page/offline "同人活動")で稼動しています。

前提

  1. オプション管理

以上が正常に動作している状態で導入してください。なお今回はページに導入します。

導入方法

オプション管理で新規にオプション登録します。ここでは仮にオプションID「shop_link」とします。オプション名はわかりやすいもので、利用対象「ページ」、種類「一行入力」、必須「任意」、検証は「なし」か「英数字のみ」、それ以外は適宜調整してください。

ページ登録画面で追加したオプション項目に通販ページのURLを追加し、ページ登録してください。

次にページの標準テンプレートtemplates/internals/page/default.htmlの49行目あたりに手を加えます。応用がききそうな2パターン紹介します。

<!--{if $page_associate.option}-->
<dl>
<!--{foreach from=$freo.refer.options|smarty:nodefaults item='option'}-->
<!--{if $page_associate.option[$option.id] != ''}-->
<dt>{$option.name}</dt>
<dd><!--{if $option.type == 'file'}--><a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}page_options/{$page.id}/{$option.id}/{$page_associate.option[$option.id]}">{$page_associate.option[$option.id]}</a><!--{else}-->{$page_associate.option[$option.id]|nl2br}<!--{/if}--></dd>
<!--{/if}-->
<!--{/foreach}-->
</dl>
<!--{/if}-->

その1。URLにそのままリンクを張る。

オプション名
http://www.hogehoge.com/mailorder/index.html

ソースは以下。標準テンプレートでnl2brとなっているところをautolinkに変更するだけ。

<!--{if $page_associate.option}-->
<dl>
<!--{foreach from=$freo.refer.options|smarty:nodefaults item='option'}-->
<!--{if $page_associate.option[$option.id] != ''}-->
<dt>{$option.name}</dt>
<dd><!--{if $option.type == 'file'}--><a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}page_options/{$page.id}/{$option.id}/{$page_associate.option[$option.id]}">{$page_associate.option[$option.id]}</a><!--{else}-->{$page_associate.option[$option.id]|autolink}<!--{/if}--></dd>
<!--{/if}-->
<!--{/foreach}-->
</dl>
<!--{/if}-->

その2。リスト表示+オプション名にリンクする。

ソースは以下。

<!--{if $page_associate.option}-->
<ul>
<!--{foreach from=$freo.refer.options|smarty:nodefaults item='option'}-->
<!--{if $page_associate.option[$option.id] != ''}-->
<li><!--{if $option.type == 'text'}--><a href="{$page_associate.option[$option.id]}">{$option.name}</a><!--{elseif $option.type == 'file'}--><a href="{$freo.core.http_url}{$smarty.const.FREO_FILE_DIR}page_options/{$page.id}/{$option.id}/{$page_associate.option[$option.id]}">{$page_associate.option[$option.id]}</a><!--{else}-->{$page_associate.option[$option.id]|nl2br}<!--{/if}--></li>
<!--{/if}-->
<!--{/foreach}-->
</ul>
<!--{/if}-->

変更したファイルをアップロード、上書きしてください。以上でテンプレートの準備は完了です。

管理画面のページ登録画面で内容を編集し、追加した項目に通販ページへのリンクを入力してページ登録してください。

ページ確認で正常にリンクが表示されていたら完了です。

応用

書店委託を利用しているサークルさんであれば、よく委託する書店ごとにオプション項目を作っておくと入力忘れも少なくなるかなと思います。特に、在庫変動がないDL系ショップと取引のあるサークルさんだとロングテールの法則にのっとりじわじわ効果が上がるかも?

また書店ごとに項目を立てておくと、万一ショップ単位で委託取引がなくなった場合はオプション管理で書店項目を削除すると一括で削除できます(あまり嬉しくない使い方ですが…)

応用2

リンク以外にも価格や版型、ページ数の項目作るのもいいかなあと思います。やり方は下記参考にどうぞ。

不具合、課題点の解消方法などあればウェブ拍手、メール、Twitterなどからお知らせいただけると助かります。

TOP