§表紙ページ§

この小説機能は、旧助け合い掲示板の『小説:章の一覧を表紙へ(http://bbs.alicex.jp/support/223/)』スレ用に作成したものです。
◆2019/02/23 内容を改訂いたしました◆
(改訂前の内容、改訂理由についてはこちらにて)
スレに書き込んだ時点の内容から大幅に改訂しております。当該スレよりお越しの方には混乱を生じさせてしまい、大変申し訳ありません。
◆2019/03/20 別のスレ用のデモも追記しました◆
1小説内で長編/短編を分けて作る(全リンクを#list#挿入)の補足説明を追記しました。(「章【目次】へのリンクを貼る場合」以降)

名前変換
名前1:名無しの
名前2:権兵衛
(default:名無しの/権兵衛)

長編タイトル@

01/02/03/04/05

長編タイトルA

01/02/03

長編タイトルB

01/02/03

短編

短編ページB
デモを大幅改訂
前へ 次へ

【表紙画面編集】の使い方

【表紙画面編集】の中身

※『自動改行する』のチェックを外した状態で作成しています。
<h1>§表紙ページ§</h1>

<a href="#dream_url#">名前変換</a>

<div class="list">
<h2>長編タイトル@</h2>
<a href="1/">01</a>/<a href="2/">02</a>/<a href="3/">03</a>/<a href="4/">04</a>/<a href="5/">05</a>

<h2>長編タイトルA</h2>
<a href="6/">01</a>/<a href="7/">02</a>/<a href="8/">03</a>

<h2>長編タイトルB</h2>
<a href="9/">01</a>/<a href="10/">02</a>/<a href="11/">03</a>

<h2>短編</h2>
#list#

</div>
<div style="text-align:center">
#prev_前へ_前へ# #next_次へ_次へ#
</div>
短編ページへのリンクは、#list#で自動挿入させています。
(薄ピンク背景の部分にあるリンクはすべて、#list#で挿入されているものです)
そして長編ページへの各リンクは、HTMLタグによる手作業設置です。

HTMLタグ <a> によるリンクの貼り方

例だと面倒くさがって『相対パス』によるリンクですが、ディレクトリ構造がよく分からない場合は無難に『ルートパス(ルート相対パス、とも言う)』によるリンクでやった方が安全だと思います。

相対パス

<a href="ページ番号/">01</a>

ルートパス

<a href="/サイトID/novel/小説番号/ページ番号/">01</a>
ちなみに相対パスの方は、カレントディレクトリを省略する書き方です。省力化を突き詰めればこうなる。

なお、リンク先のURLに必要な『ページ番号』などは、管理画面内から探し出すことができます。

本文ページの編集画面からページ番号を見つける

リンクさせたい本文ページの編集画面を開きます。
この編集画面のアドレス内に、各本文ページの『ページ番号』があります。

『https://alicex.jp/edit/c/novel_pageEdit.php?&page_id=ページ番号&cid=サイトID&novel_id=小説番号』……という感じで、アドレス中ほどにページ番号があります。
ちなみにページのURLは〔並び替え〕をおこなっても変わることがありません
席替えしても出席番号が変わらないようなものです。一度ページを作ったら、そのとき振られたページ番号から変わることはありません。

構造設計の意図

やりたかったこと

●長編@の章、長編Aの章、と長編ごとにページを章で纏める
●短編ページはトップ階層に羅列
●【基本設定】で『ページ移動』の設定を“章の中のみ”にする
(※ページ移動=独自タグ#prev_リンク有_リンク無#/#next_リンク有_リンク無#により表示される[前へ/次へ]のリンク)

利点

一つの名前変換フォームで複数の長編・短編の名前を一括設定できる
ページ移動を“章の中のみ”にすることで、長編@章の中では[前へ/次へ]移動ができ、なおかつ長編A・短編とは[前へ/次へ]で繋がらずに済む
(もしページ移動が“全ページ”だったら、章の最終話から次の章の第1話に『次へ』で繋がります。章ごとに別々の長編ページを纏めている場合は『次へ』で全然別の話に……という事態に)
短編はトップ階層に羅列されているので、【表紙画面】に#list#を置いたら【目次画面】不要で小説ページにアクセスできる

改善したい点

●長編は章内に纏めているため、【表紙画面】→【目次画面】→各小説ページという風にステップ数が増える。理想は【表紙画面】→各小説ページという1ステップ
↑なので短編同様、【表紙画面】にページへのリンクを貼りたい
●章内各ページへのリンクは<a>タグによる手作業設置でもいいが、短編ページは#list#で自動挿入の方が楽だから#list#も活用したい。しかし#list#を使うと、必要ない「長編章の【目次画面】へのリンク」も表示されてしまう
↑要は、「長編@&A&Bの章目次リンク」だけ非表示にして、短編ページは#list#で表示させたい

ということで解決策

◆表示させたくない部分(長編章の【目次画面】へのリンク)は、
<!-- -->
↑コメントアウト、というもので非表示にする

◆【表紙画面】には、#list#の上に長編各ページへのリンクを <a href="/サイトID/novel/小説番号/ページ番号/">リンク</a> と一つ一つ手作業で貼る

コメントアウトの使い方

『コメントアウト』というのは、ざっくり言うと制作者や管理者のメモ書きです。
『コメントアウト』部分はブラウザ上で表示されません
これを使って、表示させたくない長編章の【目次画面】へのリンク(例だと「長編タイトル@」など)を非表示にしています。

コメントアウトの始点と終点位置

非表示にさせたい章タイトルの編集画面にて、
『一覧表示でのタイトルのを、
『一覧表示でのタイトルのを入れます。
左に入れたのがコメントアウトの始点、右に入れたのが終点です。
この作業を、非表示にしたい章タイトルすべてに行います。
画像では省略していますが、当デモは3つの章すべての『左/右』にそれぞれコメントアウトの始点・終点を入れています。

するとコメントアウトの始点・終点に挟まれた章(の【目次画面】へのリンク)が非表示になります。

一方コメントアウトされていない短編ページ@等は普通に表示される、という仕組みです。
これにより、短編ページは#list#で自動挿入させることができます。

留意点

#list#で表示されるリンク件数

このデモは、【基本設定】にて『目次1ページ内の表示件数』を件にしています。
長編ページのリンクは【表紙画面編集】にHTMLタグで貼り込んでいるので、この表示件数とは関わりありません。
#list#で表示されているのは短編ページリンクのみ……なのですが、上のデモをご覧ください。短編ページは2件しか表示されていません。

何故かというと、現在#list#は↓このように挿入されているからです。
<!-- 長編タイトル@ -->
<!-- 長編タイトルA -->
<!-- 長編タイトルB -->
短編ページ@
短編ページA
短編ページB
(※イメージ図)

長編章は、コメントアウトで非表示になっているだけであり、挿入はされているのです。
よって非表示になっている長編章3件+短編2件の「合わせて5件」が現状【表紙画面】1頁目に表示されている……というわけです。
コメントアウトで非表示にしたリンクも、表示件数に数えられることをご留意ください。

[前へ/次へ]で変化する場所・しない場所

[次へ]で2頁目に移動したとき、上のデモだと短編ページB以降がピンク背景部分に出現していますね。
このピンク背景部分は、#list#で挿入されているリンクの場所を示しています。
[前へ/次へ]で変化するのは#list#部分だけ、それ以外は何頁目でも【表紙画面編集】の内容のまま変化しないのです。

このデモの[次へ]を押してみてください。ピンク背景部分以外は、1頁目も2頁目もまったく同じ内容になっています。
つまり、【表紙画面編集】に直接HTMLタグで貼り付けているリンクは、[前へ/次へ]で頁が変わっても、ずっと表示されることになります。

このデモのようにページの最上部から短編リンクの設置場所までが遠いと、読みたい短編までスクロールする羽目になり、ちょっと不便で不親切ですね。
不便さのプレゼンとして、今回はあえてそういう作りにしています。[次へ]を押したとき、ページが変わってないように思われませんでしたでしょうか? 変化箇所がすぐ目に入りづらいページ構成なので、この作りはお勧めしません。

なるべく#list#で表示させるリンクはページの上部に置いたり、1頁目に収まりきらなくなった古い短編は『古い短編置き場の章』を作ってそこに格納→その章リンクをクリックすれば【目次画面】の章内ページリストで古い短編を読めるようにする(【表紙画面】と【目次画面】はデザインを変えられるので、古短編章内のページリストのみを表示するページ構成にできる)など、ちょっとの工夫でなんとかなります。

※もちろん長編リストが短編より上にあるといけない、という話ではないです。ただ、[次へ]で2頁目へ行ったときに、変化した箇所が、スクロールなしで閲覧者の目に入るような配慮は欲しいな……というのが管理人の考えです。

おまけ

章【目次】へのリンクを貼る場合

以下は、当デモと同じく『1小説機能内で、長編は章へ格納/短編はトップ階層に作る』という条件で全リンクを#list#挿入する場合のデモの補足的内容です。

当デモのように『長編章内各ページのリンクを【表紙画面】に並べる』には上述の方法以外無いのですが、『【表紙画面】に長編章目次へのリンクと短編リンクを区別して表示させる』のは、<a>タグでせっせと手打ちせずとも実現可能です。(その方法は先述の『全リンクを#list#挿入する場合のデモ』をご参照ください)

が、#list#の『並び替え』と『タイトルの左/右』を駆使する方法はちょっと難しい……という方向けに、“長編章は#list#で入れず<a>で入れる方法”も載せておきます。

長編章は上述の方法でコメントアウトしてあり#list#では表示されない状態にしてあります。

↑の【表紙画面編集】の中身

<div class="list">
<h2>長編</h2>
<a href="/サイトID/novel/小説番号/?chapter_id=章番号">長編タイトル@</a><br>
<a href="/サイトID/novel/小説番号/?chapter_id=章番号">長編タイトルA</a><br>
<a href="/サイトID/novel/小説番号/?chapter_id=章番号">長編タイトルB</a><br>

<h2>短編</h2>
#list#

</div>
<div style="text-align:center">
#prev_前へ_前へ# #next_次へ_次へ#
</div>
章【目次】へのリンクは

と書くことで貼り付けられます。
【目次画面】のURLは、実際に目標の画面を[ページを確認]で表示してみて、ブラウザのURL欄をコピペするのが確実です。
URLに「?CSID=(英数字)」という長い文字列が入っているときは、コピペしないでください。それはセッションIDが組み込まれたURLです。ページに再アクセスするなどして、セッションIDの付加されていないURLをコピペしてください。(もしくは「?CSID=(英数字)」部分を削除するなど。当該箇所を削除したURLできちんと目的のページに繋がるかテストしてからリンクしてください)

管理画面から各番号を特定する方法は、全リンクを#list#挿入する場合のデモにて……。
↑top↑