plugin -> iG:Syntax Hiliter(コード表示)

Posted by muchag | Library & PlugIn & AddIn,WordPress | 2008-01-30 (水) 23:46:30

前々から狙っていた 「コード表示を見やすく」 の念願がついに叶った。
あれこれ見た中で、私は、iG:Syntax Hiliter というプラグインに想いを寄せていた。

iG:Syntax Hiliter の何が素敵かというと
各言語の名前でタグをつけるだけで、

  • 言語名を付属してくれる
  • コードを色付けしてくれる
  • マニュアルへのリンクを貼ってくれる
  • コード行番号の表示をしてくれる

などなど

対応言語は
ActionScript, ASP, C, C++, C#, CSS, Delphi, HTML, JAVA, JavaScript, MySQL,
Perl, PHP, Python, Ruby, Smarty, SQL, Visual Basic, VB.NET, XML プラス一般コード

まぁ 「百聞は一見に如かず」 というわけで、以下のような感じである。

  1. // 入門編
  2. echo "Hello!! World";

とか

  1. <!-- 入門編 -->
  2. <p>Hello!! World</p>

ですですです!
HTML のタグ用の < や > も、特に

&lt; &gt; としなくてよい♪

ただし、ここまで辿り着くまでには、大分苦労した 汗
まず、あちこちに貼ってある作者のサイト
http://blog.igeek.info/wp-plugins/igsyntax-hiliter/
に、どこのリンクから飛ぼうとしても、404エラーになってしまう・・・。

それでもめげずに検索をしていたところ、大変ありがたいサイトに辿り着いた。
Masayan さんの MMRT DAILY LIFE である。
こちらでは、私の探し求めていた iG:Syntax Hiliter に、日本語パッチを同梱してくださっていた。

この後トラブルが発生するが、Masayan さんのお力添えにより、何とか利用できるようになったので
その導入フローを以下へ・・・

環境:WordPress ME2.2.3

1.DL

MMRT DAILY LIFE より、ig_syntax_hilite_i18n_v3.5.zip を DL して解凍

2.UL

plugins フォルダの中身を、サーバ側の /wp-content/plugins フォルダ内へ全部投げ込む。

*** 上記について 2008-01-31 変更追記あり ***

(もちろん、日本語化パッチのファイルは、文字コードを選んで UL してもOK)
(そのとき、ME版を利用している場合は、パッチファイルの文字コード表示を消すこと)
(syntax-hilite-ja_UTF.mo を syntax-hilite-ja.mo へ)

3.iG:Syntax Hiliter の有効化

WordPress の管理ページの [プラグイン] – [プラグイン] から、iG:Syntax Hiliter を有効化する。
そうすると、[各種設定] の下に [iG:Syntax Hiliter] の管理画面が現れる。
後は、好きに設定♪

実際の入力方法

入力したコードを言語名で囲む。
例:PHP の場合
[php]コード内容[/php] ※本番は php を半角に

以上のような感じで、無事成功した。
途中アドバイスをくださった Masayan さんには、心より感謝します。

参考元:MMRT DAILY LIFE

2008-01-31 現在
ig_syntax_hilite_i18n_v3.5.zip のフォルダ構成が変更されていた

(今回、私がお騒がせしたせいで、Masayan さんにお手数をおかけしたらしい・・・恐れ入ります)
ig_syntax hiliter plugin フォルダの中身を、サーバ側の /wp-content/plugins フォルダ内へ全部投げ込む。

Library & PlugIn & AddIn,WordPress | 2008-01-30 (水) 23:46:30 |

新規挿入したデータの auto_increment 値を取得

Posted by muchag | MySQL,PHP | 2008-01-30 (水) 22:53:25

PHP から MySQL へデータを新規挿入する場合、
ID フィールドに auto_increment の設定をしていると、
新規レコードの ID 値を即座に取得したいことがある。

このときの方法として、
PHP の関数

mysql_insert_id()

を利用する方法と

MySQL の関数

LAST_INSERT_ID()

を利用する方法があるようだ。

このうち mysql_insert_id の方は、
MySQL のフィールド型(BIGINT)に対応していないそうで <- 参考:PHP マニュアル 日本語版
今回は、LAST_INSERT_ID() の方を採用した。

具体的には

  1. $mySQL = "SELECT LAST_INSERT_ID()";
  2. $myRS = mysql_query($mySQL);
  3. $myRow = mysql_fetch_row($myRS);
  4. $myLastID = $myRow[0];

で取得できた。
ちなみに3行目は

  1. $myRow = mysql_fetch_array($myRS);

でも上手くいった。

よい参考サイトが見つからなくて、大変だった~><
こんな簡単なこともわからない自分に呆れます・・・

MySQL,PHP | 2008-01-30 (水) 22:53:25 |

コードエディタの link に target=”_blank” を追加する方法

Posted by muchag | JavaScript,WordPress | 2008-01-28 (月) 3:24:33

これまで投稿する度に、コードエディタから link クイックタグを利用し
target=”_blank” を手動で追加してきたが、もーやだ!
ググググググググ ポチ!

おー 件数が少ないけどあったあった!
インターネット検索はすごいね~♪

WordPress ME2.2.3

/wp-includes/js/quicktags.js ファイルの 371行目

  1. edButtons[i].tagStart = '<a href="' + URL + '">';

  1. edButtons[i].tagStart = '</a><a href="' + URL + '" target="_blank">';

とすることで、見事完成♪

参考元:hereticanthem.co,.ltd WordPress : 投稿時、リンクのクイックタグをtarget=_blankにする

2010-06-12 追記
WordPress 2.9.2ja

3年振りにヴァージョンアップをして
同様の作業をしようとしたら
/wp-includes/js/quicktags.js ファイルがエライことに・・・
なぜか改行が入ってなく、文字化けかと思うほどにトホホ。

もちろん内容も大分変わっていたので、あれこれ見た結果

  1. edButtons[c].tagStart='<a href="'+a+'">';
  2. j.Buttons[o].tagStart='</a><a href="'+m+'">';

どうやら、この2箇所っぽい。

これらを

  1. edButtons[c].tagStart='</a><a href="'+a+'" target="_blank">';
  2. j.Buttons[o].tagStart='</a><a href="'+m+'" target="_blank">';

こうしてやることで目的達成。

ところで、/wp-includes/js/quicktags.js ファイルを見ていると

  1. if(edLinks[c].newWin==1){b=' target="_blank"'}
  2. a='</a><a href="'+edLinks[c].URL+'"'+b+">"+edLinks[c].display+"</a>";

こんな記述が。

なんや、ちゃんと target=”_blank” への対処もしてあるんやんか~。
edLinks.newWin==1 ならいいんしょ?
と思って

  1. function edLink()
  2. {
  3. this.display="";
  4. this.URL="";
  5. this.newWin=0
  6. }

の this.newWin=0 を 1 にしてみたけど
失敗・・・。

ん~これ以上細かく見る時間と能力がなひ><

で、ググってみても反応なし。
なんでかな~。

JavaScript,WordPress | 2008-01-28 (月) 3:24:33 |

不必要な改行タグ(<br />)を減らす

Posted by muchag | PHP,WordPress | 2008-01-27 (日) 23:32:50

WordPress を使っていると悲しいくらい勝手に改行してくれる。
ググってみると、同じ思いをしている人は多いようで、結構ヒットする@@
せっかくなので、それをヒントに、ついに WordPress のカスタマイズ(?w)に挑戦!

環境:WordPress ME2.2.3

参考サイトを元に、/wp-includes/formatting.php ファイルを開き
58行目

  1. $allblocks = '(?:table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|map|area|blockquote|address|math|style|input|p|h[1-6]|hr)';

のところの末尾に code を追加してみた。

  1. $allblocks = '(?:table|thead|tfoot|caption|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|form|map|area|blockquote|address|math|style|input|p|h[1-6]|hr|code)';

おおおおおぉぉぉおぉぉっぉ
ちゃんと行間が狭まった!
めでたしめでたし♪

あw 編集画面を見たら、</code> の後ろにすぐ次の行が・・・
この改行までなくなるのね~
ちょっと変・・・まぁ いっか・・・

参考元:memo.xight.org WordPressの 改行 -> <br>タグ 変換

PHP,WordPress | 2008-01-27 (日) 23:32:50 |

CSS ファイルの入れ子

Posted by muchag | CSS | 2008-01-27 (日) 20:55:14

WordPress の CSS をいじるにあたって、
どのテーマでも共通に利用できるように、
基本 CSS ファイルの作成を思い立った。

調べてみると、CSS ファイルの先頭行に

  1. @import url("style.css");

としてやればよいらしい。

参考元:CSS中から別の外部CSSファイルを読み込む

CSS | 2008-01-27 (日) 20:55:14 |

mb_convert_encoding のエラー

Posted by muchag | PHP | 2008-01-27 (日) 17:07:40

前投稿 クラスファイル内の文字コードって? で困った内容を、ひとまず mb_convert_encoding で

  1. mb_convert_encoding($str, 'utf-8', 'auto');

と誤魔化そうとしたところ

  1. Unable to detect character encoding

というエラーが出た@@

で、また検索の旅へ・・・
すると、php.ini で

  1. mbstring.language = Japanese

とするか
内部処理方法を用いて、PHP ファイルの先頭に

  1. mb_language( 'Japanese' );

をつけるとよいらしい

私は、mb_language( ‘Japanese’ ); で解決

参考元:[PHP-users 21812]Re: mb_convert_encodingについて

PHP | 2008-01-27 (日) 17:07:40 |

クラスファイル内の文字コードって?

Posted by muchag | PHP,困ったTT | 2008-01-27 (日) 16:59:11

Flash の文字コードが UTF-8 であることと
最近、あちこちで UTF-8 を推奨していることから
最近は、PHP ファイルを UTF-8 で統一するようにしている。

その際

  1. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

は、もちろんのこと

  1. ini_set('mbstring.script_encoding', 'utf-8');
  2. ini_set('default_charset', 'utf-8');
  3. mb_internal_encoding('utf-8');

と、PHP ファイルの先頭に入れてやると
一時的に内部コードを UTF-8 で統一してくれるようなので、上記のようにしている

しかーし!! ここで問題が・・・
せっかく勉強を始めたクラス・・・
にも関わらず、クラスファイル内で print 文を用いると、文字化けする

クラス内のコンストラクタに上記3行を入れてもだめ・・・
なぜだ~TT

だいたい、クラスファイルの呼び出し元の PHP ファイルで文字コードをセットした上で require しているのに
文字コード設定が引き継がれないのが意味不明

PHP,困ったTT | 2008-01-27 (日) 16:59:11 |

マルチバイト文字での落とし穴 > UTF-8

Posted by muchag | PHP | 2008-01-27 (日) 3:58:29

substr 関数を使っていて「なんかおかしいな」と思い、軽くググってみると・・・
な、な~んと!!

UTF-8 では、マルチバイト文字は1文字につき3バイト?!!

おかしいわけだ・・・orz

参考元サイト:MediaZoneブログ マルチバイト文字数チェックの落とし穴(UTF-8偏)

PHP | 2008-01-27 (日) 3:58:29 |

画像のサムネイルを作成+画像回転

Posted by muchag | PHP | 2008-01-24 (木) 3:01:08

いいもんめっけ!
PHP Thumbnailer Class v2.0

標記の通りの機能をどうしようか検索しまくったところ
素敵なクラス(ライブラリ?)を発見した。
作成者にこの場を借りて感謝!!

画像のサムネイルを作ってくれる上に、回転まで受け持ってくれる。
上記サイトにわかりやすいコード例があるので、簡単な内容のみ記述。

1.resize メソッド

縦横のMAXピクセル数をしていしてサイズ変更

2.resizePercent メソッド

%指定でサイズ変更

3.cropFromCenter メソッド

指定ピクセルサイズの正方形を作り、その中に元画像の縮小版を縦横中央揃えで配置

4.crop メソッド

希望サイズの矩形を作り、その中の希望位置(左上位置で指定)に配置(かな 汗)

5.rotateImage メソッド

画像を 90度単位で回転してくれる
※但し、いきなり回転 ていうのはできない
画像のサイズを変更したくない場合でも、1か2の方法で一旦 resize系メソッドで読み込まないと
インスタンスが登録されないため、回転処理を行ってくれない。

そのため、私は一旦

  1. $thumb-&gt;resizePercent(100);

とした上で rotateImage メソッドを用いることで画像の回転に成功した。

私が試したのは、1,2,5なので、3,4に関しては他にも注意点はあるかも。

PHP | 2008-01-24 (木) 3:01:08 |

定義済み定数 -> 改行コード

Posted by muchag | Language,PHP | 2008-01-23 (水) 19:29:17

改行コードについて調べる中で、PHP_EOL という PHP の定義済み定数にぶつかった。
これは、改行コードを表す定数らしい。
言われてみれば、読んで字のごとくですな。
昔 VBA を触っていたときの、Chr(13) に相当する感じかな。

改行コードはOS環境により異なるので、これは便利かも。

PHP の、他の定義済み定数を得るには

  1. get_defined_constants();

で、一覧表示できる… けど、大量…

ちなみに改行コードリスト

OS別
 
Windows \r\n CRLF
MacOS \r CR
Unix系 \n LF
 
言語別
  定数
Actionscript String.fromCharCode(13)
newline
PHP PHP_EOL
VB Chr(13)
vbCrLf

現在の私の知識はここまで。
おいおい追加&修正をしていく予定だけど、知識を分けてくださる方 大歓迎♪

2008/07/09 追記

「\n」などの改行コードは、「”」(ダブルクォーテーション)内でしか通用せず
「’」(シングルクォーテーション)利用時は、PHPが理解しないものと思った方がいいらしい。

よって、シングルクォーテーション利用時は

  1. $a = 'abc'.PHP_EOL.'def';

としてやるとよいようだ。

Language,PHP | 2008-01-23 (水) 19:29:17 |
次ページへ »