Welcome !! Now 2008.07.25 16:31 (JST)

NewsPublisher (1.4)

[ スニペット ]

News Publisherは、管理画面にログインすることなく、ドキュメントを作成出来るスニペットです
ドキュメントの作成には、リッチテキストモードを利用する事も可能

参照ページ:News Publisher

News Publisher利用の流れ

  1. ウェブユーザを作成する
  2. エントリポスト用ドキュメントを作成する(ここにスニペットの呼び出しを記述)
  3. 必要に応じて、テンプレート、テンプレート変数を作成する
  4. 1.で作ったアカウントでログインする
  5. 2.で作ったドキュメントにアクセスし、ポストする

基本的な書式

(エントリポスト用ドキュメントでスニペットを呼び出す)

[!NewsPublisher? &folder=`119` &canpost=`Site Admins` &clearcache=`1` &postid=`119`!] 

パラメータ

スムーズに動作させるために、いくつかコツがあります。逐次説明していきます

folder

ポスト先(親)のドキュメントIDを指定します。

注意事項

指定したドキュメントは、あらかじめ「フォルダ」にしておくか、そうでなければ、後述の「&makefolder=1」を併用してください。

「&makefolder=1」を指定せず、フォルダでないドキュメントにポストすると、指定したドキュメントの下にドキュメントは作成されますが、管理画面のツリー表示で見えない状態となるので、注意が必要です。その場合は、親になったドキュメントを開き、「フォルダ」にチェックを入れ保存し直せば、その下に作成されたドキュメントを見る事が出来ます。

なお、「&folder」の指定を省略すると、カレントドキュメントの下にドキュメントを作成します。この場合も、前述と同様の注意が必要となります。

makefolder

ポスト先のドキュメントを自動的にフォルダに変換します。

postid

エントリをポストした後に表示するドキュメントを指定します。

注意事項

省略すると、ポストしたドキュメントを表示…する仕様のはずですが、フレンドリーURLを使用している場合、表示しようとするURLの出力に失敗するため(フォーラム関連トピ参照)、ポストした後、そんなページありませんと言われます。ので、例えば、Dittoで新着一覧を表示させているようなページ(ドキュメントID)を指定しておくと無難かも知れません。

canpost

ポスト可能なウェブグループを指定します。コンマで区切って複数指定可です。

ここで指定したグループに所属するユーザがログインした時のみ、エントリ用のフォームが現れます。省略すると、ログインなしでポストが可能となります。

badwords

禁止ワードを指定します。コンマで区切って複数指定可能です。

※機能せず?※

template

ポスト後に作成されるドキュメントで使用するテンプレートを指定します。

headertpl

ポスト後に作成されるドキュメントの、コンテンツの前に挿入するテンプレート(チャンク)を指定します。

footertpl

ポスト後に作成されるドキュメントの、コンテンツの後に挿入するテンプレート(チャンク)を指定します。

インスタンス

例えば、「footertpl=comment」とした場合、ポスト後のドキュメントは以下のようになります。

ここはコンテンツです。
コンテンツの後ろにチャンクが挿入さ{{comment}}

formtpl

エントリポスト用のテンプレート(チャンク)を指定します。

問題点と解決策

省略すると、News Publisherが持っているデフォルトのフォームが挿入されます…が、この時、カレンダーアイコン用の画像へのパスが違っていて、アイコンが表示されません(クリックすればカレンダーは表示される)。そこで、解決法としては、以下の二つがあげられます。

  1. スニペットの中のパスを直す
  2. スニペットで指定しているパスに画像をアップロードし直す

    スニペット内で指定している、カレンダーアイコンのパスは、「manager/media/images/icons/cal.gif」と「manager/media/images/icons/cal_nodate.gif」です。ftpで該当ディレクトリに画像をアップロードする方が簡単かも知れません。

rtcontent

リッチテキスト形式で編集したいフィールド(content)を指定します。あらかじめ作成しておいたテンプレート変数を指定します。

rtsummary

リッチテキスト形式で編集したいフィールド(summary)を指定します。あらかじめ作成しておいたテンプレート変数を指定します。

showinmenu

ポスト後、作成されるドキュメントをメニュー化するかどうかを指定します。デフォルト「しない(0)」。

aliastitle

エイリアスのサフィックスをタイトルにするかどうかを指定します。デフォルト「しない(0)」。作成した日付がサフィックスになります。

※「1」を指定するとタイトルをサフィックスにする仕様だが、タイトルが2バイトの場合、無視されます

clearcache

ポスト後、キャッシュをクリアするかどうかを指定します。デフォルト「しない(0)」。

注意点

Dittoで新着を表示させる場合、「clearcache=1」にしないと、管理者権限でログイン後、該当ドキュメントを保存し直すまで、Dittoに反映されないので注意が必要です。関連フォーラム参照

リッチテキスト形式でポストするための用意

NewsPublisherのドキュメントに詳しく出ていますので、ここでは、大まかな流れを書きます

  1. テンプレート変数を作成する
    この時、どのテンプレートでこのテンプレート変数を利用するか、を決めます(チェックする)。つまり、エントリポスト用のスニペットを書いたドキュメントで利用するテンプレートを指定します
  2. 1.で作成したテンプレート変数をチャンクの中に書きます
  3. スニペットの呼び出しで1.を指定します

インスタンス

スニペットの呼び出し例:
[!NewsPublisher? &folder=`119` &clearcache=`1` &postid=`119` &template=`sample` &rtcontent=`tvblogContent` &formtpl=`newspublishertpl`!]
簡単なフォーム例:(デフォルトテンプレートより抜粋)
<form name="NewsPublisher" method="post" action="[~[*id*]~]">
<input name="NewsPublisherForm" type="hidden" value="oPage title:<br />
<input name="pagetitle" type="text" size="40" value="[+pagetitle+]" /><br />
Content:<br />
[*blogContent*]<br />
<input name="send" type="submit" value="Submit" />;
</form> 

△ページトップ