長い記事ページは改ページして表示されます。この機能を実装するには ASP を使用したいのですが、単語数に基づいてページ分割する方法しかありません。ただし、この方法にはバグがあります。記事のコンテンツに UBB コードがある場合、これは非常に簡単です。これにより、[code][/code] の間でページネーションが発生したり、単に [code] を [co と de] に分解したりして、記事の表示にエラーが発生します。
次の手順でこれが可能になります。
ステップ 1:
バックグラウンドでの記事の追加、記事の取得、および記事の詳細ページはすべて通常の方法で操作されます。ここでは説明がありません。記事を追加するときは、ページ区切りを追加します:「|||」 (もちろん、この記号は [page]、&&&、###、@@@ のように気軽に使用できます) ...、通常記事を表示する場所に表示されない限り)
入力ページ(index.asp)、入力完了ページ(add.asp)、記事一覧ページ(view)の4ページを使用しました。 .asp)、記事コンテンツ ページ (display.asp)、最初の 3 つは処理する必要のないページです。下の図を見ると、重要なのは最後の display.asp です。ページング用のコードはすべてここにあります。
ステップ 2:
記事本文の動的データ部分でいくつかのトリックを実行します。コードと説明は次のとおりです:
<%。
'ここでは、どのページのコンテンツを表示するために受信したページングパラメータを処理する必要があります
'次の 2 つの文は、ページ パラメーターが渡されない場合に変数 pageNum に最初のページの値を取得させるためのものです: 0
Request("ページ")="" の場合、次に
ページ番号=0
'それ以外の場合は、他のページを表示するために渡されるページ内のパラメータとして値を変数に代入します。
それ以外
pageNum=リクエスト("ページ")
次の場合に終了
%>
<%
'オプションの実行UBBコードを追加する場合は、次のコードを追加できます
'rs("NoUBB") は UBB の無効化に関するデータベース内のフィールドです。0 は無効を意味し、1 は実行を意味します
rs("NoUBB")=0 の場合
'記事内容との接続エラーを避けるため、置換機能を使用してページングコード「|||」の前後に全角を追加してください。
'rs("content") はデータベース内のテキスト フィールドです。ここに UBB を追加するか、UBB を無効にします。
Content=Replace((unHTML(rs("content"))),"|||"," ||| ")
Elseif rs("NoUBB")=1 の場合
Content=Replace((ubb(rs("content"))),"|||"," ||| ")
次の場合に終了
%>
<%
「ここに鍵があります」
'split 関数を使用して記事をセクションに抽出し、変数 content に格納します。
ContentStr=split(コンテンツ,"|||")
'URLパラメータから取得した表示対象の変数に従って、ページがループ表示されます
i=pageNum から pageNum の場合
%>
<!--これが記事の本文となります-->
<%=ContentStr %>
<% 次へ %>
</td>
</tr>
<tr>
<td height="30" class="ClassName">この記事は次のように分かれています。
<%
' ページング領域では、ubound(ContentStr) を使用して記事が何ページに分割されているかを取得します。0 から始まるため、合計ページ数は 1 ずつ加算する必要があります。
p = 0 の場合、ubound(ContentStr)
'リンクはこのページのままですが、記事 ID パラメーターの後にページング パラメーターが追加されます: page
%>
<a href="display.asp?ID=<%=rsquest("ID")%>&page=<%=p%>" class=""><%=p+1%></a>
<% 次の %> ページ
すべてのコメントを削除すると、わずか 15 行のコードになりますが、前ページ、次ページ、および現在のページをハイライトする機能を持たせるための処理が必要です。 。
記事内に改ページが表示されない限り、すべてのタイプで問題が発生することはありません。たとえば、|||||| と 6 つの "|" の数を増やすこともできます。記事内に表示される文字数が 6 つ以下の場合は、適切な改ページを選択してください。