MODxでCMSの恩恵を賜りつつ、validを保ち、かつWEB標準化を目指そう
Welcome !! Now 2009.07.05 09:20 (JST)
[ スニペット ]
NewsManagerは、管理画面にログインすることなく、ドキュメントの作成/編集/管理を可能にするスニペットです。
ドキュメントを作成・編集するスニペット「NewsEditor」と、ドキュメントをリストアップして管理するスニペット「NewsManager」が対になって動作します。
(ダウンロードファイルには二つが同梱されています)
参照ページ:NewsManager
[!NewsEditor? &folder=`237` &postid=`235`!]
[!NewsManager? &folder=`237` &editformid=`236`!]
ポストしたドキュメントの保存先とするドキュメントのID。デフォルト「0」。
submit後自動的にフォルダにするか否か。デフォルト「しない(0)」。
submit後に読み込むドキュメントID。デフォルト「カレントドキュメント」。
ポストしたドキュメントを編集するために利用するドキュメントのID。指定したドキュメントに「NewsEditor」のスニペットコールを書く。
ポストする際利用するテンプレートを指定。デフォルト「MODx設定>サイト>デフォルトテンプレート」
※Managerでどう機能する?※
「rowtpl」の前に挿入するテンプレート(チャンク)を指定。デフォルト「なし」
「rowtpl」の後に挿入するテンプレート(チャンク)を指定。デフォルト「なし」
表示用に利用するテンプレートをチャンクで指定。デフォルト「スニペット内で定義済み」
submit後、キャッシュをクリアするか否か。デフォルト「しない(0)」。
1ページに何件表示するかを指定する。デフォルト「10」
ページ分割するか否か。デフォルト「しない(0)」。※するにしておかないと、10件(nrpostsのデフォルト)を越えたとき、11件目を表示できない※
※動作に問題有り
「Previous」の表示をチャンクで指定。デフォルト「< Previous」
「Next」の表示をチャンクで指定。デフォルト「Next >」
「Next」「Previous」のリンクを常に表示するか否か。デフォルト「しない(0)」
「Next」「Previous」を区切る文字。デフォルト「|」
「show」ボタンの表示をチャンクで指定
「edit」ボタンの表示をチャンクで指定
「delete」ボタンの表示をチャンクで指定
「Move on top」ボタンの表示をチャンクで指定
「publish」ボタンの表示をチャンクで指定
「unpublish」ボタンの表示をチャンクで指定
「Show in menu」ボタンの表示をチャンクで指定
※プログラム(ボタン)自体動作せず?従ってこのパラメータも機能しない
「Remove from menu」ボタンの表示をチャンクで指定
※プログラム(ボタン)自体動作せず?従ってこのパラメータも機能しない
表示するドキュメントがないときの文章をテキストで指定。デフォルト「<p>No entries found.</p>」
ドキュメントのURLとパラメータを区切るキャラクタを挿入
パラメータ「editformid」で指定した値を挿入
カレントポストのページタイトルを挿入
カレントポストのロングタイトルを挿入
カレントポストのドキュメントIDを挿入
「edit」アクションのためのテキストを挿入
「delete」アクションのためのテキストを挿入
「show」アクションのためのテキストを挿入
「refresh」アクションのためのテキストを挿入
「hidemneu」または「show menu」アクションのためのテキストを挿入(現在のドキュメントの状態に依存する)
「publish」または「unpublish」アクションのためテキストを挿入(現在のドキュメントの状態に依存する)
「paginate=`1`」の時、ページナビゲーションを挿入(次ページ)
ページナビゲーションを挿入(前ページ)
ページナビゲーションを挿入(ページリスト)
ページナビゲーションを挿入(ページ数)
パラメータ「alwaysshow=0」の場合、「splitter」を挿入します
現在のページの最初のアイテム番号を挿入
現在のページの最後のアイテム番号を挿入
現在のページのアイテム数を挿入
奇数行(_row_even)か偶数行(_row_odd)かを挿入する
ポストしたドキュメントの保存先とするドキュメントのID。
ポスト先のドキュメントを自動的にフォルダにするか否か。デフォルト「しない(0)」
postした後に読み込むドキュメントID。デフォルト「ポスト後のドキュメント」。
ポスト可能なWEBグループを指定。コンマで区切って複数指定可。
禁止語を指定。コンマで区切って複数指定可。
ポストする際利用するテンプレートを指定。デフォルト「MODx設定>サイト>デフォルトテンプレート」
ポスト後に作成されるドキュメントの、コンテンツの前に挿入するテンプレート(チャンク)を指定。
ポスト後に作成されるドキュメントの、コンテンツの後に挿入するテンプレート(チャンク)を指定
入力フォーム用テンプレート(チャンク)を指定
リッチテキストエディタを利用して入力できるコンテンツ部をドキュメントオブジェクトで指定。デフォルト「content」
リッチテキストエディタを利用して入力できるサマリー部をドキュメントオブジェクトで指定。デフォルト「introtext」
ポストしたドキュメントの属性の「メニューに表示」にチェックするか否か。デフォルト「しない(0)」
※タイトルが2バイト文字の場合、問題が出るかも知れない。試してない
エイリアスのサフィックスとしてページタイトルを使用するか否か。デフォルト「しない(0)」
ポスト後、キャッシュをクリアするか否か。デフォルト「しない(0)」。
フレンドリURL利用時は、これを「1」にセットしないと後述の問題が起きる
デイトフォーマットを指定。デフォルト「%d-%m-%Y %H:%M:%S」
編集されるドキュメントID
対象ドキュメントのID
ページタイトル
ロングタイトル
説明
要約
ドキュメントエイリアス
News parent folder (the folder with the blog)
作成日
作成者のユーザID
公開(1)か非公開(0)か
公開日(format %d-%m-%Y %H:%M:%S)
非公開日(format %d-%m-%Y %H:%M:%S)
メニューに表示(0)か非表示(1)か
メニューインデックスの値(「hidemenu=0」の場合)
適用したいテンプレートのID(テンプレート名ではない)
「内容」
「hidden」属性として必ず以下の二つのフィールドが必要です
例:
<form name="ne_form" method="post" action="resource/newsmanager.html">
<!-- These 2 hidden input fields must be present in any custom NewsEditor form. -->
<input name="NewsEditorForm" type="hidden" value="on" />
<input name="editid" type="hidden" value="" />
…略…
newspublisherを参照してください
この場合、管理画面で一度保存し直す。またはパラメータ「clearcache=`1`」にセットすることで回避
ちなみに、フレンドリURLなしだと、showの動作は問題ない
フレンドリURLがnoでもyesでも、同現象。「clearcache=`1`」で回避
URLの取得がうまくいってない。clearcache=`1`でもだめ。フレンドリURLなしなら問題なし。
例えば1ページの表示件数を3件とした場合、1件目、2件目ではエラーになり、3件目をポストした後で、表示が正常になる。4件目をポストすると「next>」が表示されるが、これをクリックするとsqlエラーがでる。投稿数が6件になると、「next>」が正常に機能する。以降繰り返しと思われる。
空?のボタンは表示されている。チャンクで表示しようとしても表示できない。メニューに表示/非表示関連の機能が動作しない模様
対策1:
Nessmanager スニペット L154-155を以下のように修正
$hidemenuplaceholder = (isset($hideinmenu) ? $modx->getChunk($hideinmenu) : "Remove from menu");
$showmenuplaceholder = (isset($showinmenu) ? $modx->getChunk($showinmenu) : "Show in menu");
↓
$hideinmenuplaceholder = (isset($hideinmenu) ? $modx->getChunk($hideinmenu) : "Remove from menu");
$showinmenuplaceholder = (isset($showinmenu) ? $modx->getChunk($showinmenu) : "Show in menu");
↑ボタン名は表示されるが機能しない