2011/12/25

UWSC ☓ Wordpress ☓ TinyMCE Advanced

最近、wordpressのブログを量産しておりまして、
ブログとして使える形にするのがめんどうくちゃあああああい!

そんなわけで、UWSCというソフトで自動化です。
ブログを量産する必要のある人が、
いるのかわからないけれど、とにかくコードを紹介していきます。
# なんかこのブログって、いつも需要の少ないところに進むよね。

TinyMceAdvanced

今回は、プラグインのTinyMCE Advancedのアイコンの並び替え用コードです。
wordpress、 TinyMCE Advanced、 Internet Exploreの
バージョンによっては、動かないかもしれません。

軽くコードの説明をしておきます。

InsNode(IE, "pre_justifyfull", "pre_link")
Linkの前にJustifyのアイコンを挿入します。
InsNode(IE, 挿入するアイコンのID, 挿入先(後ろにくる)アイコンのID)

IDはwordpressの管理画面から、
TinyMCE Advanced ‹ ブログ名 — WordPress のソース(HTML)を見てください。
HTMLのこの部分のIDです。

<li class="tadvmodule" id="pre_justifyfull">
<div class="tadvitem"><div id="justifyfull" title="Justify"></div>
<span class="descr"> Justify</span></div></li>


AppendNode(IE, "pre_cut", "toolbar_4")

ツールバーの末尾に、cutのアイコンを挿入します。
AppendNode(IE, 挿入するアイコンのID, 挿入先ツールバーアイコンのID)


IE.document.getElementByID("no_autop").checked = true

この部分は、Advanced Options のチェックボックスにチェックを入れます。
ピンクのところのIDを書き換えてください。

ソースには1ステップずつしか書いてませんが、
ツールバーに収まる数なら、いくつ増やしても平気です。

相変わらず懇切丁寧な説明をする気がないので、
いくらなんでもわからないときはコメントください。
UWSCの使い方や、HTMLやDOMの仕様については、
他の所でお聞きになるのが良いでしょう。

//---------------------------------------------------------------------------------------
// Wordpress TinyMCEボタン配置
//---------------------------------------------------------------------------------------
// Author :fudebaco
// 説  明:Wordpress TinyMCE Advanced画面で、アイコンの並び替えをする
//---------------------------------------------------------------------------------------

// IEオブジェクト取得
IE = GETACTIVEOLEOBJ("InternetExplorer.Application", "TinyMCE Advanced ")

//--------------------------------
// ツールバー1
//--------------------------------
// Justify
InsNode(IE, "pre_justifyfull", "pre_link")

//--------------------------------
// ツールバー2
//--------------------------------
// Cut
InsNode(IE, "pre_cut", "pre_pastetext")

//--------------------------------
// ツールバー3
//--------------------------------
// Font size
AppendNode(IE, "pre_fontsizeselect", "toolbar_3")

//--------------------------------
// ツールバー4
//--------------------------------
// Cut
AppendNode(IE, "pre_cut", "toolbar_4")

//--------------------------------
// 未使用エリアへ移動
//--------------------------------
// More Tag
AppendNode(IE, "pre_wp_more", "tadvpalette")

//--------------------------------
// チェックボックス
//--------------------------------
// HTMLエディターで表示、保存する時に


タグを削除することをやめてください。
IE.document.getElementByID("no_autop").checked = true

// 変更を保存
ClickBtnByValue(IE, "変更を保存")

//----------------------------------------------------------------
// DOM操作:ノード挿入
// 引  数:IE IEオブジェクト
// :insId 挿入するノードのID
// :distId 挿入先ノードのID
//----------------------------------------------------------------
procedure InsNode(ie, insId, distId)
// 挿入するノードの取得
targetNode = ie.document.getElementById(insId)

// 挿入先ノードの取得
DistNode = ie.document.getElementById(distId)

// 挿入先の親ノード
ParentDistNode = DistNode.parentNode

// 挿入
ParentDistNode.insertBefore(targetNode, DistNode)
fend

//----------------------------------------------------------------
// DOM操作:ノード追加
// 引  数:IE IEオブジェクト
// :insId 挿入するノードのID
// :distId 挿入先ノードのID
//----------------------------------------------------------------
procedure AppendNode(ie, insId, distId)
// 挿入するノードの取得
targetNode = ie.document.getElementById(insId)

// 挿入先ノードの取得
DistNode = ie.document.getElementById(distId)

// 挿入
DistNode.appendChild(targetNode)
fend

//----------------------------------------------------------------
// DOM操作:value指定ボタン押下
// 引  数:IE IEオブジェクト
// :value ボタンのvalue値
// valueはユニークではないので使用の際気をつけること
//----------------------------------------------------------------
procedure ClickBtnByValue(ie, value)
oInput = ie.document.getElementsByTagName("INPUT")
for i = 0 to oInput.length() -1
ifb oInput.item(i).value = value then
oInput.item(i).click()
WaitBusy(ie)
break
endif
next
sleep(0.2)
fend

//----------------------------------------------------------------
// IE応答待ちスリープ
// 引 数:ie ビジーを待つIEのオブジェクト
// 説 明:Internet Explorerのビジーを待機する
//----------------------------------------------------------------
procedure WaitBusy(ie)
REPEAT
sleep(0.2)
UNTIL !ie.busy AND ie.readystate = 4
sleep(0.5)
fend



参考にさせていただいたのはこちらです

http://www.confrage.com/uwsc/

http://uwsc.dohow.jp/blog/

http://memopad.bitter.jp/w3c/jsref/obj_location.html

追記:言い忘れていたが、そもそも中身を書き換えればUWSCを使う必要はないです。
書き換えられないポジションにいるので、UWSC使ってみました。
続きを読む
 

About Me