1. トップ
  2. 運営情報
  3. 作業依頼と相談
  4. 20160619_投稿ブック関係

ブック投稿機能の概要†部分編集

ブック投稿をwiki構文に慣れない人でもある程度手軽に行えるように用意されたものです。
おおまかに、投稿されたブックの表示機能、ブックの投稿/編集機能、ブック編集履歴機能、投稿ブック検索機能、の4つの機能から成り立っています。

ブックの投稿/編集機能は、ただのブックシミュレータとしても使用できます。


それぞれの機能†部分編集

投稿されたブックの表示†部分編集

見るだけです。普通のページと同じ。旧来のブック投稿と同じ。
見るだけならjavaScriptは不必要です。
 ここから ブックを検索したりして見つけたブックを見ます。


ブックの投稿と編集†部分編集

これだけはjavaScript必須です。
 ここから 新しく入力したり、投稿されたブックのページから対象のブックを編集したりします。


基本設定†部分編集

いずれも入力必須です。
編集者名にはコメントと同様に固有ID機能を使用できます。


ブックの概要†部分編集

入力必須です。
閲覧者が一番最初に目にするところです。
各種wiki構文を使用できます。


ブック内容†部分編集

いずれも入力必須です。
カードリストからカードを選んで+ボタン-ボタンで枚数を操作します。
選択結果が選択済みカード一覧に表示されます。

カードリストの一番右のアイコンはカード検索機能です。
各種条件を設定して条件抽出ボタンを押すと、条件に合ったカードが条件抽出ボタンの下に一覧表示されます。

カードセットは複数設定可能です。
ブックの雛形、各種マップ/ルール用に調整したブック例、など複数のブックを表示させたい時に。


ブック解説†部分編集

少なくとも1つの解説セクションを入力する必要があります。
各カードの選定理由、ブック完成までの経緯、ブックの使い方や注意点など、解説を記入してください。
解説セクションは自由に増やしたり減らしたりできます。


その他のオプション†部分編集

一覧非表示にチェックを入れると、通常のブック検索では表示されなくなり、「非表示ブック」の検索時にのみ表示されるようになります。
ブックの表示時・編集時は通常のブックと全く同一になります。


プレビュー†部分編集

入力した内容を元に、どんな表示になるかを登録/更新の前に試しにみてみることができます。


投稿/更新†部分編集

入力した内容をデータベースに登録/更新します。
入力しているブックが削除済みブックであった場合、削除状態から通常状態に戻ります。


削除†部分編集

対象のブックを削除します。
といってもデータそのものは消えずに残ります。履歴も残ります。
全ての入力項目を空白にしたりする必要はありません。
削除されたブックは、通常のブック検索では表示されなくなり、「削除済み」の検索時にのみ表示されるようになります。


ブック編集履歴†部分編集

ブックの編集履歴が版数ごとに表示され、それぞれの版の内容を確認できます。
編集者名や編集者IDはここで確認することができます。
通常ページ扱いではなく専用のデータベースを使用しているため、cWiki基本機能の編集履歴(バックアップ)機能は使用できません。
ブックの編集履歴はブックを通常表示した画面の一番下から確認できます。


投稿ブック検索機能†部分編集

 ここから すでに投稿されたブックを検索し一覧表示させることができます。
使用可能な検索条件は以下の通りです。

  • 基本的な検索条件
    • ブック名(title)
      • 入力した内容をブック名に含む投稿ブックを抽出します。空白のままにした場合、ブック名による抽出を行いません
    • 種別(ブック分類)(category)
      • ブックの種類を選択し指定します。「全て」を選択した場合、種別による抽出を行いません
    • 対戦形式(人数)(member_type)
      • 対戦人数および同盟形式を指定します。「全て」を選択した場合、対戦形式による抽出を行いません
    • 想定マップ(map_id)
      • 想定マップを指定します。「全て」を選択した場合、想定マップによる抽出を行いません
  • 詳細な条件
    • 投稿ブック内容全体(keyword)
      • 入力した内容を投稿ブック内容に含む投稿ブックを抽出します。空白のままにした場合、ブック内容による抽出を行いません
      • 投稿ブック内容には、概要文、各種カードセット及び選択済みカード、解説セクションなどブック名以外の全てが含まれます
    • 使用カード(card_1, card_2, card_3)
      • 使われているカードを3種まで指定して抽出できます
    • 検索結果の件数上限(limit)
      • 表示する検索結果の上限数を数字で指定します
    • 検索結果の並び順(sort_1, sort_2)
      • 現状では並び替えの基準として ブック名、最終更新日時 をそれぞれ降順・昇順で指定できます
    • 非表示ブックの検索(flg_nolist)
      • 「一覧非表示」設定が有効になっているブックのみを抽出します
    • 削除済みブックの検索(flg_deleted)
      • 削除状態になっているブックのみを抽出します

ブック投稿機能と通常ページ†部分編集

ブック投稿の各種機能はそれぞれプラグインとして作成されています。
各種機能へのリンクは [[ ]] では作成できません。
かわりに cmdlink プラグインが使用可能となります。


投稿されたブックの表示†部分編集

プラグイン名は card_sim 、必須の引数は book_id です。

外部に投稿ブックへのリンクを貼りたいときは普通にブック表示のURLをコピーペーストするだけでOKです。
cWiki内部では、普通にURLをコピーペーストしてもいいですが、以下のようにスマート(?)に書くこともできます。
&cmdlink( card_sim, book_id, 【対象の投稿ブックのbook_id番号】 ){ 【対象の投稿ブックの名前】 };


ブックの投稿/編集†部分編集

プラグイン名は card_sim_edit 、利用可能な引数は book_id です。

book_id を省略した場合は新規ブック投稿画面に、
&cmdlink( card_sim ){ 【リンクをつけたい文字列】 };

book_id を指定した場合はそのブックの編集/更新画面になります。
&cmdlink( card_sim, book_id, 【対象の投稿ブックのbook_id番号】 ){ 【リンクをつけたい文字列】 };


ブック編集履歴機能†部分編集

履歴一覧のプラグイン名は card_sim_history_list 、必須の引数は book_id です。
&cmdlink( card_sim_history_list, book_id, 【対象の投稿ブックのbook_id番号】 ){ 【リンクをつけたい文字列】 };

履歴詳細表示のプラグイン名は card_sim_history 、必須の引数は book_id と history_id です。
history_id は「版数」とは異なります。
&cmdlink( card_sim_history_list, book_id, 【対象の投稿ブックのbook_id番号】, history_id, 【対象の履歴のhistory_id番号】 ){ 【リンクをつけたい文字列】 };


投稿ブック検索機能†部分編集

一行プラグイン形式とアクションプラグイン形式の2つがあります。


一行プラグイン形式†部分編集

プラグイン名は card_sim_search 、必須の引数はありません。
引数指定を伴わない場合は検索フォームのみ表示します。
引数を指定する場合は検索フォームとともに既定で特定条件の検索結果を表示します。この場合は引数名と引数の内容を2つ1組で順に記述していきます。
利用可能な引数はこちらに記載のとおりです。
title, keywordには文字列を、category, member_type, map_id は上から順に 0から始まる数字の番号を、card_1, card_2, card_3には card_idを、limitには整数を示す数字文字列を、sort_1, sort_2にはtitle_asc, title_desc, mtime_asc, mtime_desc, を、flg_nolist, flg_deleted は何らかの文字列を、それぞれ必要に応じて指定します。


なお 引数指定を伴った一行プラグイン #card_sim_search は実行時プラグインです。
検索フォームそのものはページ保存時にキャッシュとして記録され使いまわされますが、引数による特定条件の検索結果は呼び出し元のページの表示ごとに行われます。


アクションプラグイン形式†部分編集

一行プラグイン形式とほぼ同様です。
引数を伴わない場合は検索フォームのみ表示します。
フォームによって検索を行った場合やcmdlinkなどによってURLで引数を直接指定しておいた場合は検索フォームとともに特定条件の検索結果を表示します。


内部的なこと、仕様など†部分編集

投稿ブックの一覧†部分編集

一行プラグイン形式の card_sim_search プラグインを利用する、cmdlink プラグインを用いて手動で複数のリンクを並べる、いずれかの方法をお使い下さい。
ブックのURLをそのまま用いて [[ ]] リンク構文で記述することも可能ですが、プロトコル(HTTP/HTTPS)の差やアクセス方法の変更等に自動で対応できなくなります。

ブック名とbook id そのいち†部分編集

旧来の投稿ブックや過去のサンプルブックは普通のwikiページでした。
ブック名がページ名となり、URLもブック名となり、リンク構文でリンクを生成するときもブック名を入力することとなっていました。
このためまったく同じブック名で別々のブックを作成することはできませんでした。
またブック名を変えたときはリンク・URLも変わることとなっていました。

しかしこのブック投稿機能では、同じブック名で別々のブック、ということがありえます。
これは、投稿ブックそれぞれに固有のbook idというIDを割り振り、このbook idを使って投稿ブックを管理しているからです。
ついでにブック名がページ名の制限を受けなくなったため特殊記号の類の文字もたぶん問題なく使えるようになりました。

ブック名とbook id そのに†部分編集

投稿ブックに固有のbook idを割り振ることで、
ブック名を変えたいときはブックの編集機能でブック名を変えるだけ、になりました。
固有のbook idは変わらないのでリンク・URLは変わりません。

しかし、ブック名を変えると、コメント欄も、自動的に変わってしまいます。
これはコメント用データベース名にブック名を用いているからです。

コメント用データベース名にbook idを使えばブック名変更前のコメント欄を引き継げるのですが、そうすると「最近のコメント」の一覧がbook idだけになり何のブックのコメント欄にコメントがあったのかさっぱりわからなくなってしまいます。
「最近のコメント」一覧の便利さとブック名変更の際の便利さの比較から、現在は前者を重視した設定になっています。

プレビューとか更新とかで新規ウィンドウが開く理由†部分編集

「前の画面に戻って修正しなおそうとしたら全部消えちゃった」の悲劇の防止と、sessionに退避したりデータを引き回したりと作りこむ面倒さの回避と、javaScriptのxhrによる単純なデータ送信だけで済ませたい欲求から、こうなっています。

javaScript†部分編集

cWikiは基本的にjavaScriptを無効化していてもほとんど全ての閲覧および操作を行えるように作成されています。
ですがブックの投稿/編集機能においては構造上の問題からjavaScriptが必須となっています。

セキュリティ上の理由やその他諸々の理由からjavaScriptを利用できない環境では、ブックの投稿を諦めるか、通常ページとして作成して下さい。

メモリ†部分編集

現在判明している限りでは、ブック投稿機能は旧3DSでは動作しません。エラーで強制終了されます。cWikiに組み込む前の段階でもなんとか動いてはいたもののカードセットを増やそうとするとメモリ不足で強制終了されていました。
データ処理をjavaScriptに大きく依存させているため旧3DS以外でも一部の端末では動かないかもしれません。

諦めて下さい。

API†部分編集

開発作業の余禄です。
URLは https://cwiki.lames.jp/culdrevolt/card_sim/api.php です。
指定した引数によってjson/jsonp形式でデータを返してくれるものです。
メソッドはGETのみ対応しています。
利用可能な引数は以下の通りです。

  • data
    • card, map, book の3種を受け付けます。これら以外は受け付けず、また、data引数は必須です
  • callback
    • この引数を指定した場合、この引数の値をcallback名とするjsonp形式でデータを返します
    • この引数はdata引数の値によらず利用可能です
  • card 指定時
    • カルドセプト リボルトにおいてブックに入れることができるカードの一覧を返します
    • 引数をdata=cardのみとした場合は全カードを、以下いずれかあるいは複数の引数を伴う場合は引数によって抽出した結果を返します
      • card_name
        • 指定した文字列をカード名に含むカードを抽出します
      • card_block
        • 指定したカードブロックのカードを抽出します
        • カードブロックの指定はトライアルから眠れる神々まで順に 1 から 5 となっており範囲外の値の指定は無視されます
      • card_rarity
        • 指定したレア度のカードを抽出します
        • レア度の指定はNからEまで順に 1 から 4 となっており範囲外の値の指定は無視されます
      • card_type
        • 指定した分類のカードを抽出します
        • 分類の指定は無属性から風属性、武器、防具、巻物、道具、単瞬スペルから複呪スペル、世呪スペル、の順に 1 から 14 となっており範囲外の値の指定は無視されます
        • ただし、15 を指定するとクリーチャーのみ、16 を指定するとアイテムのみ、17 を指定するとスペルのみ、カードを抽出します
      • card_cost_gt, card_cost_lt
        • 魔力コストがそれぞれ指定した値以上、指定した値以下、のカードを抽出します
        • 魔力コスト指定は整数を示す数字文字列のみ使用可能です
      • card_st_gt, card_st_lt, card_mhp_gt, card_mhp_lt
        • それぞれST指定、HP指定です。仕様は魔力コストと同様です
      • card_offering
        • 要求される供物枚数です。整数を示す数字文字列のみ使用可能です。事実上、0 および 1 しか利用できません
      • card_land
        • 要求される領地コスト数です。整数を示す数字文字列のみ使用可能です。事実上、0 から 2 しか利用できません
      • card_restrict_[fire, water, earth, wind, weapon, armor, scroll, tool]
        • 配置制限およびアイテム制限 計8種の有無の指定です。制限があるカードを抽出したい場合は 1 を、制限がないカードを抽出したい場合は 0 を指定します
      • card_skill
        • 指定した文字列を能力/効果欄に含むカードを抽出します
      • flg_beginner, flg_no_ise, flg_no_gods
        • それぞれ、ビギナールール、救世禁止ルール、神々禁止ルールのカードを抽出します
        • 指定する値は空文字列でなければなんでも構いません
  • map 指定時
    • カルドセプト リボルトにおいて利用できるマップの一覧を返します
    • map 指定時に利用可能な他の引数はcakkback以外にはありません
  • book 指定時
    • すでに投稿されたブックのデータを返します
    • 返却データは文字列を添え字とする連想配列(オブジェクト)と単純な配列(コレクション)文字列が入れ子構造になっています
    • これは1つの投稿ブックに複数のカードセット・複数の解説セクションが存在しうるためです
    • 以下の1つの引数の指定が必須です
      • book_id
        • 対象のブックIDを値として指定します。ブックIDは正の整数を示す数字文字列のみ使用可能です
        • 存在しないブックIDを指定した場合は何も返しません
このページのタグ一覧 タグ編集 タグ検索
登録済みタグはありません