回答日: 2015-11-16
質問
現在、短い一覧に表示される各項目をクリックすると、全一覧ページ内の該当項目までアンカーで遷移しています。これを、アンカー遷移ではなく、全一覧で設定しているリンク先へ直接アクセスするよう、設定できますか?
投稿日時: 2015-11-16 14:27
回答
「すぐ使えるCGI」のご利用誠にありがとうございます。■お使いになっている製品の確認
お使いになっている製品は、以下のページからダウンロードできる「お知らせ更新ツール」ですね。
http://sugutsukaeru.jp/sample/282-topics/admin/admin.cgi
http://sugutsukaeru.jp/support/282/
■仕組みと設定した時の制限事項
この製品では、全一覧の方に、入力したURLがあるときはそちらにリンクするような仕掛けがされています。
短い一覧のテンプレートも同じように編集すれば、短い一覧から直接リンク先にアクセスさせることができます。ただし、このことは同時に、URLの入力が無い記事も短い一覧から全一覧には飛べなくなるという事を意味します。
このような動作でよろしければ、下記のように設定して下さい。
■設定方法
○ポイント
変更ポイントは以下の2点です。
- タイトルからのリンク先(href)を全一覧ではなく入力されたURLに変更
- URLの入力が無かった時に、リンクタグそのものを消す JavaScriptを追加
○手順
1.templates/article/short_list.txt の編集
templates/article/short_list.txt のタイトルからのリンク先を、article_list.txt の場合と同じに変更して下さい。また、"titlelink" というクラス属性を足して下さい。
変更前 例)
<a href="%_to_index_%#news-%_d_%" target="_top">
変更後 例)
<a href="%_linetext1_%" class="titlelink" target="_top">
2.templates/article/short_list.html の編集
templates/article/short_list.html の </body> の直前に以下の JavaScript タグを足して下さい。
(※ iframe で短い一覧を表示している前提です。もし SSI などで表示している場合は、src 属性のパスを調整の上、組み込み先のページにこの変更を加えて下さい。)
--------------ここから
<script src="./parts/js/jquery-1_8_2_min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$("a.titlelink[href='']").each(function(){
var Inner = $(this).html();
$(this).replaceWith(Inner);
});
});
</script>
--------------ここまで
3. 再構築と確認
編集したファイルをサーバに上書きアップロードの上、「再構築(テンプレート変更反映)」、キャッシュをクリアしてから編集結果を確認して下さい。
回答日: 2015-11-16