フロントエンド ドキュメントマネージャ (FDM)について教えてください。 トピックは解決済みです

プログラム(機能)関連の開発の話題
mana
メンバー
メンバー
記事: 41
登録日時: 2010年6月15日(火) 04:53

フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by mana » 2010年8月15日(日) 22:16

modx1.0.4J-r1を使ってますがフロントエンド ドキュメントマネージャ (FDM)を使いたくコチラを見ながら設置してみたんですがわからない事があったので質問させてください。

ダウンロードしてきたFDMに入っているassetsフォルダをmodxのルートフォルダassetsにコピーし、管理画面よりモジュールを新規作成、[module]installFDM.phpの内容をペースト保存しました。
チャンク(fdmEform)とスニペット(FDM)が作成されたのを確認し、installフォルダを手動にて削除してからテンプレート内の[*content*]の前に
[!FDM? &canmoderate=`Site Admins` &parent=`318` &id=`[*id*]` &model=18 &aliastype=`article_%createdon%`!]
を入れて保存しました。
入力フォームも表示され試しに入力フォームすべてに値を入れ保存してみたんですが

『ドキュメントへのリンク:
ありがとうございます。
入力された情報は無事送信されました。』

と表示されるんですがドキュメントへのリンク先が表示されません。
また、管理画面のツリーに(412)とドキュメントは作成されていますがドキュメントは空の状態です。

すみませんが宜しくお願いします。
アバター
dainiti
メンバー
メンバー
記事: 27
登録日時: 2009年8月11日(火) 19:26

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by dainiti » 2010年8月17日(火) 00:41

mana さん、こんばんは。

modx 0.9.6.3 以降 FDM を使っていなかったので 1.04J にて確認してみました。
FDM v0.1b をインストールし何も手を加えていない状態です。
テンプレートになる fdmEform は何も手を加えず
[!FDM? &canmoderate=`Site Admins` &parent=`2` &id=`[*id*]` &model=18 &aliastype=`article_%createdon%`!]
としました。

実行環境は coreserver です。

mana さんが書きました:『ドキュメントへのリンク:
ありがとうございます。
入力された情報は無事送信されました。』

と表示されるんですがドキュメントへのリンク先が表示されません。
また、管理画面のツリーに(412)とドキュメントは作成されていますがドキュメントは空の状態です。

すみませんが宜しくお願いします。

こちらでは問題なくリンク先も表示されドキュメントの内容も管理画面へ反映されましたので mana さんの状況がよくわかりません。
mana
メンバー
メンバー
記事: 41
登録日時: 2010年6月15日(火) 04:53

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by mana » 2010年8月17日(火) 22:47

dainitiさん、お返事ありがとうございます。 
1.0.4J-r1を別環境にて新たにインストールしましてFDMを設置したところ問題なくドキュメント作成する事が出来ました。
ですが本サイトでFDMを何度も入れ直したりしてますがドキュメントの作成がうまくいきません・・

画像

の様にテストサイトではドキュメント作成ボタンを押すと入力欄に値が入った状態で表示されますが本サイトでは入力欄に値が入ってない状態で表示されてしまいます。
テンプレートを自作しているのが原因なのでしょうか? それかもっと他に原因があるのでしょうか?
アバター
dainiti
メンバー
メンバー
記事: 27
登録日時: 2009年8月11日(火) 19:26

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by dainiti » 2010年8月17日(火) 23:50

mana さんが書きました:テンプレートを自作しているのが原因なのでしょうか? それかもっと他に原因があるのでしょうか?

テストサイトと本サイトは同じサーバーでしょうか?
テンプレートを自作前のオリジナルに戻してみれば原因は絞れると思います。

自作のテンプレートを送ってもらえればこちらでも確認可能です。
mana
メンバー
メンバー
記事: 41
登録日時: 2010年6月15日(火) 04:53

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by mana » 2010年8月18日(水) 00:27

dainitiさん、お返事ありがとうございます。
テンプレートを自作前のオリジナルに戻してみれば原因は絞れると思います。

自作前のMODx Hostに戻してみましたが結果は変わらずでしたので自作のテンプレではなかったみたいです。
また、サブドメイン上のテストサイトに自作テンプレートをペーストしてみましたが問題なく表示してくれます。
テストサイトと本サイトは同じサーバーでしょうか?

はい。本サイトと同じサーバーでサブドメインを作成して1.0.4J-r1をインストールしました。
アバター
dainiti
メンバー
メンバー
記事: 27
登録日時: 2009年8月11日(火) 19:26

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by dainiti » 2010年8月18日(水) 00:40

自作前のMODx Hostに戻してみましたが結果は変わらずでしたので自作のテンプレではなかったみたいです。

テンプレートとはチャンクの fdmEform のことです。
参考画像を見る限り少し触っているようですが?
mana
メンバー
メンバー
記事: 41
登録日時: 2010年6月15日(火) 04:53

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by mana » 2010年8月18日(水) 00:56

すみません、勘違いしておりました。
チャンクのfdmEformはこちらですがノーマルを使っています。
css側で表示が少し変わっています。
[+validationmessage+]
<form method="post" action="[~[*id*]~]" id="fdmForm">
<fieldset>
<legend>Renseignements complémentaires</legend>
<input type="hidden" name="formid" value="fdmForm" />
<input type="hidden" name="fdmid" value="[+fdmid+]" eform="::0::" />
<p><label for="pagetitle">Titre de la page</label><br />
<input name="pagetitle" id="pagetitle" value="[+pagetitle+]" type="text" eform="Entrez un titre pour la page:string:1" /></p>


<p><label for="pub_date">Date de publication:</label><br />
<input name="pub_date" id="pub_date" type="text" value="[+pub_date+]" size="30" readonly="readonly" />
<a onClick="nwpub_cal1.popup();" title="Choisir la date">
<img align="absmiddle" src="manager/media/calendar/img/cal.gif" width="16" height="16" border="0" alt="Choisissez une date" /></a>
<a onClick="document.forms['fdmForm'].elements['pub_date'].value=''; return true;" >
<img align="absmiddle" src="manager/media/style/MODx/images/icons/event3.gif" width="16" height="16" border="0" alt="Effacer la date"></a>
</p>
</fieldset>

<fieldset>
<legend>Contenus</legend>
<p> <label for="content">Contenu de la page</label><br />
<textarea name="content" id="content" rows="5" cols="50" eform="Du texte:html:1">[+content+]</textarea>
</p>
<p> <label for="tvblogContent">Contenu du Blog </label><br />
<textarea name="tvblogContent" id="tvblogContent" rows="5" cols="50" type="text" eform="Entrez le contenu apparaissant dans le blog:string:1" />[+tvblogContent+]</textarea>
</p>
</fieldset>


<p><input name="fdmsubmit" value="Soumettre" type="submit" />
</form>
<form id="abort" style="position:relative;top:-3em;left:20em;" method="post" action="[~[*id*]~]">
<input type="submit" name="annuler" value="Annuler " />
</form>




<script language="JavaScript" src="manager/media/script/datefunctions.js"></script>
<script type="text/javascript">
var elm_txt = {}; // dummy
var pub = document.forms["fdmForm"].elements["pub_date"];
var nwpub_cal1 = new calendar1(pub,elm_txt);
nwpub_cal1.path="[(base_url)]manager/media/";
nwpub_cal1.year_scroll = true;
nwpub_cal1.time_comp = true;
</script>
アバター
dainiti
メンバー
メンバー
記事: 27
登録日時: 2009年8月11日(火) 19:26

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by dainiti » 2010年8月18日(水) 21:49

mana さん、こんばんは。原因がわかりました。

[!FDM? &canmoderate=`Site Admins` &parent=`318` &id=`[*id*]` &model=18 &aliastype=`article_%createdon%`!]
の &model=18 の指定を消すか存在するリソースIDを指定してください。

新規登録時はひな形となるリソースIDが存在しない場合、本文を登録する前にエラーとなってしまうようです。
&model を指定するメリットはブログだけ「使用テンプレート」を指定したい場合です。

新規作成時に本文も含めてすべての値が &model で指定されたドキュメントの値がコピーされますので通常は本文も含めて「使用テンプレート」以外は空白にしておきます。リソース名だけは空白にできないのでphpMyAdmin で空白にしておく必要があります。
mana
メンバー
メンバー
記事: 41
登録日時: 2010年6月15日(火) 04:53

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。  トピックは解決済みです

投稿記事by mana » 2010年8月18日(水) 23:15

dainitiさん こんばんはです。ばっちりです。
[!FDM? &canmoderate=`Site Admins` &parent=`318` &id=`[*id*]` &model=18 &aliastype=`article_%createdon%`!]
の &model=18 の指定を消すか存在するリソースIDを指定してください。

&model=18 を外すと入力した値を保存、表示する事が出来ました。

dainitiさんのお力でやっとスタートラインにたつ事が出来ました。 本当にありがとうございました。
アバター
dainiti
メンバー
メンバー
記事: 27
登録日時: 2009年8月11日(火) 19:26

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by dainiti » 2010年8月18日(水) 23:40

追伸

現在
新規作成 編集 非公開 削除

などが本来はアイコンで表示されるはずですが文字だけが表示されているはずです。
理由はアイコンの画像に管理画面のテーマがあるディレクトリが指定されているためで modx 0.9.6.3 から MODx のテーマディレクトリをそっくりコピーすれば表示されるようになります。


現在の modx 1.0.4J は MODxCarbon しかテーマがないのでこちらのアイコンを使用する場合は
japanese-utf8.inc.php で5ヶ所
画像が指定されているディレクトリを MODx から MODxCarbon に変更してください。

fdmEform で1ヶ所
manager/media/style/MODx/images/icons/event3.gif を
manager/media/style/MODx/images/icons/event3.png に置き換えてください。 :lol:
アバター
yama
管理人
記事: 2952
登録日時: 2009年7月29日(水) 02:50

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by yama » 2010年8月19日(木) 00:35

テーマディレクトリの合わせくらいなら難しくないので、Evo向けに修正してみました。ファイル上書きのみで動くと思いますが、実際にテストしてないので、動かなかったらすみません。
登録済みのチャンクは
manager/media/style/MODx/images/icons/event3.png

manager/media/style/MODxCarbon/images/icons/event3.png
に書き換える必要があります。

fdm.db.class.inc.phpをテキストエディタで開くと文字化けが起きるという問題があったと思いますが、stripAriasメソッドの実装に起因する問題のようなので、これもEvoに合わせて修正したので文字化けは起きなくなってると思います。EvoではstripAriasメソッドの実装方法が変更になっていて、いちおう日本語の全角文字もMODx本体に同梱のプラグインを通じて処理できるようになってます。もし動かなかったらfdm.db.class.inc.phpを元に戻してください。
便利なスニペットであれば、今後改善を検討してみます。
添付ファイル
FDM_0.1c.zip
(33.35 KiB) ダウンロード数: 252 回
mana
メンバー
メンバー
記事: 41
登録日時: 2010年6月15日(火) 04:53

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by mana » 2010年8月19日(木) 03:29

dainitiさん、追伸の件ありがとうございます。 yamaさん、Evo向けのFDMありがとうございます。
テーマディレクトリの合わせくらいなら難しくないので、Evo向けに修正してみました。ファイル上書きのみで動くと思いますが、実際にテストしてないので、動かなかったらすみません。

でして、FDMディレクトリ以下のファイルを上書きをし入力画面までは表示されましたが、投稿ボタンを押すと以下の様なエラーが出てきました。

Fatal error: Call to undefined method FdmDocument::stripAlias() in /virtual/xxx/public_html/xxx.jp/assets/snippets/FDM/includes/fdm.class.inc.php on line 335

ですが、fdm.db.class.inc.phpを元に戻すと問題なく動きました。 ありがとうございました。
便利なスニペットであれば、今後改善を検討してみます。

検討していただけたら嬉しいです。 Quick Managerも便利なんですが携帯から記事の投稿が出来ないですし・・
アバター
dainiti
メンバー
メンバー
記事: 27
登録日時: 2009年8月11日(火) 19:26

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by dainiti » 2010年8月19日(木) 07:43

yama さんが書きました:登録済みのチャンクは
manager/media/style/MODx/images/icons/event3.png

manager/media/style/MODxCarbon/images/icons/event3.png
に書き換える必要があります。

ついでに日本語テンプレートも上記改修済みでインストーラに入れてもらえると利用者が増えるかもしれません。
もひとつ、ついでに TinyMCE のスクリプトが NewsPublisher のように自動的に展開する仕組みを組み入れてもらうと感謝にたえません。1.0.4J では javascript を見るために NewsPublisher をインストールする必要があるもので(^_^ゞ

それはそうとして、japanese-utf8.inc.php の最後に ?> がないことに今頃気がつきました。ついでに修正お願いいたします。

yama さんが書きました:fdm.db.class.inc.phpをテキストエディタで開くと文字化けが起きるという問題があったと思いますが、stripAriasメソッドの実装に起因する問題のようなので、これもEvoに合わせて修正したので文字化けは起きなくなってると思います。EvoではstripAriasメソッドの実装方法が変更になっていて、いちおう日本語の全角文字もMODx本体に同梱のプラグインを通じて処理できるようになってます。

これでお気に入りのエディタが気兼ねなく使えるようになり感謝です。 modx を知り尽くした yama さんのサポートがあると心強いです。
アバター
yama
管理人
記事: 2952
登録日時: 2009年7月29日(水) 02:50

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by yama » 2010年8月19日(木) 08:18

dainiti さんが書きました:それはそうとして、japanese-utf8.inc.php の最後に ?> がないことに今頃気がつきました。ついでに修正お願いいたします。

これ、本家でもいろんな人から指摘されますが・・「?>」を書かないのが正解です。これがあると、「その続きからテキストの出力を開始する」という処理が始まります。これが原因のトラブルもよく聞くので外しておくのが吉だと思います。

FDMって試してみるのがめんどくさいかな、、と思ってましたが、これを機に試してみます。テスターさんの存在は貴重だと思います。

TinyMCEの組み込みはあまり難しくないと思うので、試してみます。最新のTinyMCEプラグインでは組み込みスクリプトだけを単体で呼び出せるようにしてあります。

mana さんが書きました:Fatal error: Call to undefined method FdmDocument::stripAlias() in /virtual/xxx/public_html/xxx.jp/assets/snippets/FDM/includes/fdm.class.inc.php on line 335

修正ファイルを添付しておきますね
添付ファイル
fdm.class.inc.zip
(5.91 KiB) ダウンロード数: 242 回
アバター
yama
管理人
記事: 2952
登録日時: 2009年7月29日(水) 02:50

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by yama » 2010年8月19日(木) 11:38

dainitiさんの改善をいくつか取り込んだものを添付しておきます。ちゃんと根っこから対応したほうがよいと思えた部分もあって、そこは手をつけず残しています。

TinyMCEの呼び出しについては、簡単にできると思ってましたが課題が多少あるみたいです。自作のモジュールでTinyMCEを使いたいという要望もあったりするので、どこからでも自由に呼び出しやすいようにTinyMCEの改善も視野に入れたいと思います。

実際に試してみた感想ですが、設定しているテンプレートのイメージでフォーム部分が入れ替わる(いい意味で)ベタなインターフェイスなので、国内ユーザには好まれる気がしました。見た目に分かりやすいですね。Joomlaもこんな感じですが。
添付ファイル
FDM_0.1d.zip
(34.45 KiB) ダウンロード数: 245 回
soushi
管理人
記事: 224
登録日時: 2009年7月30日(木) 01:59

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by soushi » 2010年8月19日(木) 13:34

soushiです。

本題とは少しそれますが…。

yama さんが書きました:
dainiti さんが書きました:それはそうとして、japanese-utf8.inc.php の最後に ?> がないことに今頃気がつきました。ついでに修正お願いいたします。

これ、本家でもいろんな人から指摘されますが・・「?>」を書かないのが正解です。これがあると、「その続きからテキストの出力を開始する」という処理が始まります。これが原因のトラブルもよく聞くので外しておくのが吉だと思います。


zendのコーディング規約でも、phpだけからなるファイルの場合、最後の"?>"は書かない事になっています。
yamaさんの書いている通り、"?>"以降に例えば、スペース(空白)や改行があった場合、それがhtml部分として出力されるので、意図しない文字列が混入しバグの原因になることがあるみたいです。

僕も今まで書いてたのですが、最近はなるべく書かないようにしています。
ただ、まだ無意識に書いちゃうんですよね… :)
mana
メンバー
メンバー
記事: 41
登録日時: 2010年6月15日(火) 04:53

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by mana » 2010年8月20日(金) 22:39

yamaさん、修正ファイルありがとうございました。

1つ質問をさせていただきたいのですが、FDMに新規に作成したテンプレート変数(テキスト文やセレクトボックス)を入れたいんですがどのように入れたらよいのですか? 試しにテンプレート変数testを作成し、
<p><label for="test">テスト</label><br />
<input name="test" id="test" value="[+test+]" type="text" eform="Entrez un titre pour la page:string:1" /></p>
とチャンクに書いてみたんですが投稿画面上では反映されているんですが投稿してみても新規に作成したテンプレート変数には値が入っていませんでした。
チャンク以外に追加しなければならないところもあるのですか?

どなたかご存知ないでしょうか?
アバター
dainiti
メンバー
メンバー
記事: 27
登録日時: 2009年8月11日(火) 19:26

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by dainiti » 2010年8月21日(土) 01:14

テンプレート変数を value に渡す場合には変数名の頭に "tv"をくっつけて value="[+tvtest+]" とする必要があるような気がします。

コード: 全て選択

   <p>
      <label for="test">テスト</label><br />
      <input name="tvtest" id="tvtest" value="[+tvtest+]" type="text" eform="This is a test:string:1" />
   </p>
mana
メンバー
メンバー
記事: 41
登録日時: 2010年6月15日(火) 04:53

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by mana » 2010年8月21日(土) 01:51

教えていただいた
テンプレート変数を value に渡す場合には変数名の頭に "tv"をくっつけて value="[+tvtest+]" とする必要があるような気がします。

で表示できましたよ。
dainitiさん本当にありがとうございました。
アバター
yama
管理人
記事: 2952
登録日時: 2009年7月29日(水) 02:50

Re: フロントエンド ドキュメントマネージャ (FDM)について教えてください。

投稿記事by yama » 2011年11月13日(日) 23:06

各所を修正・改善したFDMを配布します

https://github.com/yama/FDM/commits/master/
主な変更内容です。上記に書いてある以外に、まだ他にも残っていた画像のパスずれも解決しています。
FDMをインストールするためのモジュールをインストールするのが少し変な感じがしたので、これは廃止しました。スニペット本体と、テンプレートであるチャンクひとつを管理画面に貼り付けて、テンプレート内に「 [FDM] 」と記述するだけで、とりあえず使えるようにしてあります。MODXに慣れている人なら、このほうが分かりやすいと思います
添付ファイル
FDM.zip
(60.25 KiB) ダウンロード数: 214 回