Jeans

jp_AddButtons

2010年7月11日

記事編集時のボタンを追加するプラグイン、jp_AddButtonsを作成。

2010-07-11-jp_AddButtons.png

「&lt;」を押すと、「<」と「>」が「&lt;」と「&gt;」に変更される。「>」ボタンは、その逆。「code」を押すと、変更した後に、前後に<pre class="code">と</pre>を追加する。

今のところ、他のタイプのボタンを追加する場合、ソースコードを変更する必要有り。このあたりの機能アップなどは、後ほど行いたい。

ソースコードは以下の通り。ただし、Jeansのバージョンを、SVN238かそれ以降にする必要有り。

<?php

class jp_AddButtons extends plugin{
	static public function name(){
		return 'Add Button Plugin';
	}
	static public function author(){
		return 'Katsumi';
	}
	static public function url(){
		return 'http://jeanscms.sourceforge.jp/';
	}
	static public function desc(){
		return 'This is to add buttons to edditing item page.';
	}
	static public function version(){
		return '0.1';
	}
	static public function events(){
		return array('pre_parse_ribbon');
	}
	static public function event_pre_parse_ribbon(&$array){
		$ribbon=&$array['ribbon'];
		//print_r($ribbon);
		$ribbon[]=array(
				'name'=>'htmlspecialchars',
				'desc'=>'htmlspecialchars',
				'script'=>'
						var selection=jeans_edititem_selection(0)+"";
						selection=selection.replace(/&/g,"&amp;");
						selection=selection.replace(/</g,"&lt;");
						selection=selection.replace(/>/g,"&gt;");
						jeans_edititem_clear_around_cursor(0);
						jeans_edititem_add_at_cursor(0,selection);
					',
				'type'=>'text',
				'text'=>'&lt;',
			);
		$ribbon[]=array(
				'name'=>'htmlspecialchars_decode',
				'desc'=>'htmlspecialchars_decode',
				'script'=>'
						var selection=jeans_edititem_selection(0)+"";
						selection=selection.replace(/&lt;/g,"<");
						selection=selection.replace(/&gt;/g,">");
						selection=selection.replace(/&amp;/g,"&");
						jeans_edititem_clear_around_cursor(0);
						jeans_edititem_add_at_cursor(0,selection);
					',
				'type'=>'text',
				'text'=>'>',
			);
		$ribbon[]=array(
				'name'=>'code',
				'desc'=>'pre class="code"',
				'script'=>'
						var selection=jeans_edititem_selection(0)+"";
						selection=selection.replace(/&/g,"&amp;");
						selection=selection.replace(/</g,"&lt;");
						selection=selection.replace(/>/g,"&gt;");
						selection="<pre class=\"code\">"+selection+"</pre>";
						jeans_edititem_clear_around_cursor(0);
						jeans_edititem_add_at_cursor(0,selection);
					',
				'type'=>'text',
				'text'=>'code',
			);
	}
}

コメント

コメントはありません

コメント送信