jotをサポートで使おう!?jot_ex.js
MEGUさんのサイトの掲示板が発端で作りました。
jotのタイトルに re[返信元のコメント番号]:返信元のタイトル と、自動で入力したり、コメント分を引用したり。
コメントでプレビューを追加したり、スニペットコードなどをコピペでそのまま貼れるようにしてみました。
実装方法は二通りあります。
SEO Strict URLsを利用している場合はコンテンツに起こして、テンプレートで呼び出します。
単独のテキストファイルにして物理的に呼び出すのも可能です。
コンテンツに起こしてSEO Strict URLsを利用していない場合は、拡張子が.js出来ないので機能しません。
その場合はもう一つの方法、テンプレートに直接埋め込むか、チャンクで展開させます。
※ここにあったjot_ex.jsのソースは削除しました。添付のファイルをダウンロードして確認してください。(2009/07/17追記)これがスクリプト本体になります。
ファイル名は jot_ex.js である必要はありません。
チャンクを新規で作ってこのまま貼り付けてテンプレートから{{jot_ex}}などとして、呼び出すのもありかもしれません。
この方法や、テンプレートに直接記述する場合は
<script language="javascript" type="text/javascript"><!--
ここにスクリプト本体を記述またはチャンクを呼び出すコード
//--></script>
という風に、HTMLのスクリプトタグで囲む必要があります。
次はJotのテンプレートへの細工です。
ファイルは2つです。
1つは chunk.form.inc.html 。
場所は75行目の前後にです。
<div id="preview-subject[+jot.id+]"></div>
<div id="preview[+jot.id+]" style="background-color: #EFEFEF;margin: 5px;padding: 5px;"></div>
<div style="float:right;width: 100px;"></div>
<input type="hidden" id="tmpStr[+jot.id+]">
<input tabindex="[+jot.seed:math=`?+5`+]" id="submit[+jot.id+]" name="submit" type="submit" value="[+form.edit:is=`1`:then=`Save Comment`:else=`Post Comment`+]" />
<input type="button" name="preview" value="preview" onclick="jotpreview('[+jot.id+]')">
<input type="button" name="escost" value="escape submit" onclick="escapecomm('[+jot.id+]')">
赤文字の部分が追加された文字列です。style=や、ボタンの文字列(inputタグのvalue=)はお好みで変更しても問題ありません。
2つめはchunk.comment.inc.html 。
しかしながら、前回のカスタマイズと変わっていませんが…まあ、一応。
35行目から38行目にかけてです。
<span class="jot-subject" id="jot-subject[+comment.postnumber+]">[+comment.title:limit:esc+]</span><form><input type="button" value="re[No]:" onclick="retitleno('[+comment.postnumber+]')"><input type="button" value="coments>" onclick="recontents('[+comment.postnumber+]')"></form><br />
<span class="jot-poster"><b>Reply #[+comment.postnumber+] on :</b> [+comment.createdon:date=`%a %B %d, %Y, %H:%M:%S`+]</span>
<hr />
<div class="jot-message" id="jot-message[+comment.postnumber+]">[+comment.content:esc:nl2br+]</div>
赤文字の部分が追加された部分になります。
そして、最後に。
jot_ex.jsを使うコンテンツのテンプレート(デザインの)の<body>タグに onload="decodecomm()" を追加してください。
ページが表示されてからjot_ex.jsによる書き換えが発生しますので、端末の環境によっては表示が書き換えられるまでに時間がかかったり、エラーになる場合があります。
jotのテンプレートを既にカスタマイズされている場合には行数などが記述したソースとは違っている場合があります。オリジナルをカスタマイズする場合を例に挙げたモノですので、それぞれのカスタマイズファイルに合わせて読み替えてください。
jot_ex.jsでは書き換えの対象に追加しているid属性で囲まれているコンテンツを対象にしています。idを付加しているタグの内側にさらにタグが存在する場合はなどは考慮していません。
このカスタマイズは自己責任で適用してください。
どんな被害が出ても、おいらは一切の責任を負いません。
2009/07/15 コメント文を引用したときに<br>コードが除去されずに転記されていたのを改修しました。元々おまけ機能だったのであまり深く考慮せずに実装したのがそもそもの間違い…と言うことで<(_ _)> 添付されているファイルは差し替えてあります。ダウンロードしてそのまま入れ替えていただければおけーです。
javascript部分 jot_ex.js …HTMLタグを特殊文字に置き換えないバージョン
javascript部分 jot_ex2.js …HTMLタグを特殊文字に置き換えるバージョン(2009/07/17追記)
テンプレート chunk.form.inc.html
テンプレート chunk.comment.inc.html
javascript部分はHTMLタグの<>を特殊文字に置き換えているバージョンと何も手を加えていないバージョンがあります。ともに、ファイル名はjot_ex.jsである必要性はありません。(2009/07/17追記)
テンプレート2点は、最後の拡張子が txt になっています。 html に変更してから使ってください。
テンプレートはMODxに同梱のオリジナルに変更を行っています。
jotの文字化け対策のwordwrapパラメータを削除したテンプレートにてカスタマイズを行っています。
MODxのライセンスによりGPLライセンスにて公開します。
Write a comment
- Required fields are marked with *.
Posts: 12
Reply #12 on : Thu July 16, 2009, 21:32:33
Posts: 12
Reply #10 on : Wed July 15, 2009, 09:55:55
Posts: 12
Reply #8 on : Tue July 14, 2009, 19:22:50
Posts: 12
Reply #7 on : Tue July 14, 2009, 11:01:30
Posts: 12
Reply #6 on : Tue July 14, 2009, 10:55:10
Posts: 12
Reply #5 on : Tue July 14, 2009, 10:37:11
Posts: 11
Reply #13 on : Fri July 17, 2009, 02:24:25