- -> 目次機能
- -> 引用ブロック
- -> 音声ブロック
- -> 区切り線・ページネーションetc
1: movabletypeの、default_templates/gwj_css_design.mtml を,design.cssで置き換え
2: /css/img/をアップする(オプションで場所を変更できるようにしたい!!!)
3: /css/icon/をトップサイトアップ(エモーション用:cssから相対パスで指定)管理画面ドメイントップにフォルダごとおく(imgは絶対パスで指定)
※素のテキストデータが入っている場合、テキストボックス扱いにする
検討:PDfをブロック削除した場合、フォルダごと削除するようにしていない。
削除後に変更保存せず、終了したケースを想定している。保存ボタンをフックに削除実行するスクリプトを追加する必要あり!

※設置ドメイン・ディレクトリを変更したときの対応策をどうするか?
※PDFのデータ
nJa_.func.changeTargetColor -> nJa_.func.changeBarAction に置き換え
吹き出し画像は、footer_js.tmplで渡す!
//footer_js.tmpl
nJa_.json.faceimg = '<$MTBlogSetting encode_php="q"$>';
nJa_.json.faceimg = '<$MTBlogSetting encode_php="q"$> ';
受け取り・・・
$('#njademo2').nja_blockeditor({
debug: true,
setbuble: {tmpl_bbl:nJa_.func.makefacebar(nJa_.json.faceimg)},
});
採用しなかったけど、こんな方法もある
//MT管理画面で所属サイトID取得し、モジュールを読み込む
Croppieのクロスオリジン問題、以下で解決
//htaccessでクロスオリジン要求を許可(画像のみ)
SetEnvIf Origin ":" IS_CORS
Header set Access-Control-Allow-Origin "https://<$MTCGIHost$>" env=IS_CORS
movabletypeでJSON.stringifyがまともに機能しない。
原因はprototype????
pollifil = json3.jsを導入 -> JSON.stringify -> JSON3.stringifyに変更して解決
興味深い話題:古いprototype.jsがJSON.stringifyを破壊する!!
上記によると、「Prototype.jsは Array.prototype.toJSON を定義していて、かつ特定のバージョンではその実装にバグがあるために JSON.stringify() の挙動を破壊してしまう」
ピンポイントに v1.6.0.3で発生しているバグらしい。v1.7.0 では修正された模様。
MT上で$でjQueryが利用できないのは、prototype.jsとのバッティングを避けるためだと思われるが、MT上でprototype.jsそのものの読み込みは確認できない。jquery.json.js で定義されている $.toJSON = function も怪しい。
//コードの素を探る
console.log(JSON.stringify.toString());
//しかし、JSON.stringifyが破壊されているのだから、無理でない?
movabletypeで「pdf.js」がまともに機能しない。mt_core_compact.jsが原因
JSON.stringify破壊も、mt_core_compact.jsでの、Array.prototype.toJSONが問題だったのかも
こちらの対処方法(Array.prototype causing error)で「mt_core_compact.js」の該当箇所を書き換えて解決
「pdf.js」で警告された箇所のみ書き換えで「pdf.js」は動作するようになったが、Array.prototypeの上書きが他にも多数存在しているので、そちらの書き換えも必要かもしれない。
//before
Array.prototype.contains = function(v) {
for (var i = 0; i < this.length; i++) {
if (this[i] === v) return true;
}
return false;
};
//after
Object.defineProperty(Array.prototype, 'contains', {
enumerable: false,
value: function(v) {
for (var i = 0; i < this.length; i++) {
if (this[i] === v) return true;
}
return false;
}
});
こちらで記述されているポリフィル記述の方が適切なのかもしれない。
JavaScriptのオブジェクトプロパティの隠し属性も知っておく必要があるっぽい。
//after
if (!Array.prototype.find) {
Object.defineProperty(Array.prototype, 'find', {
configurable: true,
writable: true
});
}