Archive for the ‘WordPress’ Category



12
7月

SPAM-BYEBYEを作り直し


自分で言うのもアレですが・・・

WordPressのコメントスパム対策用プラグインのソースがあまりにも酷かったので書き直しました。

従来の機能は残しつつ、若干機能の拡張をしています。

一応ベータ版という扱いなので↑のページはまだ更新していませんが、興味のある方は↓のリンクからダウンロードしてお試し下さい。

設定方法などについては同梱さてれいるreadme.txtとconfig.phpを参照して下さい。

spam-bye2.2.0.0.zip

16
5月

久々にWordPressのテーマを変更


このブログのテーマを久々に変更してみました( ´ー`)

このテーマCeladonというテーマなのですが、オリジナル?のページが404になっていて入手できなかったので、

WParchive.comからダウンロードしました。

シンプルで非常に見やすいテーマなのでかなりお気に入りですヽ(´ー`)ノ

15
5月

ソースをハイライト表示する為のシンプルなWordPressプラグイン「SourceCodeBox」


本文中にソースなどを表示するためのプラグインをいろいろ探してみたのですが、

どれも凝っていて素晴らしいのですが・・・

個人的にはシンプルなモノが欲しかったので、結局自分で作りましたヽ(´ー`)ノ

ポイントとしては
1.codeタグで挿入できるようにする
2.とにかくシンプル!
3.タグをそのまま貼り付け可能!

codeタグで囲むと以下のような感じになります。

サンプル1 <?php echo "Hello World!!"; ?>

サンプル2 <html> <head> <title>Hello World!!</title> </head> <body> Hello World!! </body> </html>

後日、正式な配布ページは別途公開するつもりですがとりあえず欲しい方は↓からどうぞ。

SourceCodeBox.zip

解凍してSourceCodeBoxディレクトリごとpluginsディレクトリにアップロード後、プラグインを有効にするだけです。

後はお好みでSourceCodeBox.cssをカスタマイズして下さい。

20
11月

WordPressのプラグインShadowbox JSの続き


先日の続きです。

オリジナルのShadowbox JSだとちょっとばかし以下のような不満があります。

1.WEBページのリンクタグに自動でrel属性を付与してくれない(拡張子がついていれば付与してくれるのかもしれない?)
2.リンクからWEBページを開いたときに開いたWEBページに背景色が設定されていないと背景が真っ黒になってしまい見づらくなる。
3.Youtubeの動画を開いた時に自動再生させたい(設定にAuto-Play MoviesというのがあるがYoutubeは反映されない?)

これらの不満を解決するべくちょっとばかり手を加えました。

まずshadowbox-js.phpの最後に以下を追加します。

/** * Instantiate the ShadowboxFrontend Plus */ function wp_shadowbox_link_replace($string) { $rel_attr = ' rel="shadowbox;width=1024;height=768"'; $pattern = '/<a(.*?)href=(¥'|")([^>]*)(¥'|")(.*?)>/i'; $replacement = '<a$1href=$2$3$4' . $rel_attr . '$5>'; $rel_pattern = '/¥ rel=(¥'|")(.*?)(¥'|")/i'; $dwl_pattern = '/<a(.*?)href=(¥'|")([^>]*)¥.(zip|lzh|rar|7z|arc|bz2|gz|tgz|pea|balz|tar|exe|rpm|msi|[0-9]{3}|pdf|xls|doc|ppt|vsd|mpp)(¥'|")(.*?)>/i'; $swh_pattern = '/¥ onclick=(¥'|")(.*?)(¥'|")/i'; $tube_pattern = '/<a(.*?)href=(¥'|")([^>]*)(youtube¥.com¥/(watch|v¥/))(.*?)(¥'|")(.*?)>/i'; $tube_attr = '&autoplay=1'; $tube_replacement = '<a$1href=$2$3$4$6' . $tube_attr . '$7$8>'; $gogl_pattern = '/<a(.*?)href=(¥'|")([^>]*)(video¥.google¥.([^¥/]+)¥/googleplayer.swf)(.*?)(¥'|")(.*?)>/i'; $gogl_attr = '&autoPlay=true'; $gogl_replacement = '<a$1href=$2$3$4$6' . $gogl_attr . '$7$8>'; if (preg_match_all($pattern,$string,$links)) { foreach ($links[0] as $link) { if (preg_match($tube_pattern,$link)) { $tube_link = preg_replace($tube_pattern,$tube_replacement,$link); $string = str_replace($link,$tube_link,$string); } elseif (preg_match($gogl_pattern,$link)) { $gogl_link = preg_replace($gogl_pattern,$gogl_replacement,$link); $string = str_replace($link,$gogl_link,$string); } if (!preg_match($rel_pattern,$link) && !preg_match($dwl_pattern,$link) && !preg_match($swh_pattern,$link)) { $link_replace = preg_replace($pattern,$replacement,$link); $string = str_replace($link,$link_replace,$string); } } } return $string; } add_filter('the_content', 'wp_shadowbox_link_replace',12);

ソース→ShadowboxFrontend-Plus

上記は以下の条件にマッチするとrel属性を付与します。

1.リンクタグにrel属性とonclick属性が付いていない。
2.リンクタグに特定の拡張子(ダウンロードファイル)が付いていない。

さらに、リンクタグがYoutubeもしくはGoogleビデオの場合にURLの末尾に自動再生のオプションを付与する。

この置換処理はオリジナルのShadowbox JSの置換処理が終わってから行います。

次にプラグインのページからShadowbox JSの設定ページに行き以下の設定を無効にします。

Enable Smart Loading:false

これを無効にしないと上記で置換してもShadowbox JSを有効にしたリンクが動作してくれない場合があります。

最後に「背景が真っ黒になってしまう」問題の解決方法。

shadowbox.cssの以下の箇所を「#ffffff」に修正

#sb-body,#sb-loading{background-color:#ffffff;}

これで満足のいく仕様になりました( ´ー`)b

18
11月

slightboxからShadowbox JSへ変更してみた


このブログの画像がポップアップで表示されるプラグインをslightboxからShadowbox JSへ変更してみました!

Shadowbox JSの凄いところは画像だけでなく、HTMLページやYouTube動画などもポップアップ内に表示してくれる優れものです!

ただ、画像や動画はリンクタグに自動でrel属性を追加してくれるのですが、HTMLページだけは自動で挿入してくれません(´・ω・`)

ということでShadowbox JSプラグインをちょっとだけ改良して只今実験中です。

詳細は後日( ´ー`)

3
10月

php5.3にアップグレード


RoundCubeやWordPressで問題があった為、php5.3へのアップグレードを躊躇していたのですが、

再チャレンジということで思い切ってアップグレードしてみました( ´ー`)

まずWordPressのwarningの問題はphp.iniで

date.timezone = "Asia/Tokyo"


を明示的に指定してあげれば良いというのは前々から調査済みだったので解決!

さてさて最大の問題であったRoundCubeの方ですが、
単純にphp5.3にアップグレードしただけだと例によってDEPRECATEDがいろいろ出ます。

以前調べた時にphp.iniに

error_reporting = E_ALL & ~E_DEPRECATED


としてあげればDEPRECATEDはでなくなるということは知っていたのでこれを設定(最初から設定されてた)

んが、これでもDEPRECATEDが出力されてしまう・・・。・゚・(ノд`)・゚・。

というところまでで前回は諦めました。

今回はまずRoundCube Webmail の日本語化様よりroundcubemail-0.3-stableを頂戴してきてRoundCubeそのものをアップグレード。

これでもDEPRECATEDは消えない・・・(´・ω・`)

次にじゃーなんで「E_ALL & ~E_DEPRECATED」を指定してもDEPRECATEDが出てしまうのかというところを調査。

結論としてsuPHPを使っていることが原因のようなのです┐(´д`)┌

RoundCubeは設置時に直下のディレクトリに.htaccessを作成しphp_flagやphp_valueを設定します。

ところがsuPHPは.htaccessのphp_valueを認識できません。

どうもこれがダメなんじゃないか???というところに行き着きついたのです。

じゃーどうすればよいか!ということですがこれは結構簡単でphpが動作しているディレクトリ配下に以下のような.htaccessを置いてphp.iniを認識させればよいのです。

suPHP_ConfigPath /path/public_html/RoundCube <Files php.ini> order allow,deny deny from all </Files>

※/path/public_html/RoundCube直下にphp.iniをコピーしてRoundCube設置時に.htaccessに指定してあったphp_value等をphp.iniに反映させます。

今度はDEPRECATEDが消えましたヽ(´ー`)ノ

とりあえずは問題なさそうですが、もう少し様子をみる必要はありそうです( ´ー`)

24
7月

WordPress2.8.2がリリースされてた


2.8.1からあまり日が経ってないのにリリースが早いなぁ~と思っていたのですが、どうやらXSSの脆弱性が見つかったっぽい?

それはそうと以前のことがあってPHP5.3にどのタイミングでアップグレードしようかいまだに悩んでいます・・・( ´ー`)

気合いを入れて自力で問題箇所を修正するかどうするか・・・

11
6月

Clamav-0.95.2がリリース&WordPress2.8がリリース&ちょっとビビった出来事


Clamav-0.95.2の方は毎度の如くRPMとSRC.RPMを作成してアップグレード( ´ー`)

欲しい方は以下からどうぞ~
http://cmf.ohtanz.com/download/vine4.2/clamav/0.95.2/

続いてWordPress2.8の方ですが、こちらは
管理者ページ>プラグインを無効>自動アップグレード>プラグインを有効
の手順で終わり( ´ー`)

そして最後に今朝の出来事。

会社に着いていつもどおりエレベータに乗って5Fをポチリ、

ほどなくして5Fに着いたところでエレベーターのドアが20cmくらい開いた状態でガガガガガと轟音が鳴りドアが開かない!!

この状態が1分ほど続き「これは閉じ込められたかも?」と内心ドキドキヽ(;´Д`)ノ

緊急連絡用のボタンを押すべきか迷っていたところでエレベーターのお姉さん(音声)が「ドアが開かないので6Fに参ります」と喋りだしドアが閉まり強制的に6Fへ移動、

無事に降りられました。

というちょっとビビった出来事でした( ´ー`)

18
4月

wordpressのプラグインslightboxの改良実験


slightboxからsexylightboxへ変更をしてみたのですが、どうもIE7で動いてくれないのようなので結局slightboxに戻しました(´・ω・`)

しかしWordPress2.7がリリースされましたの時のようにwordpressがVerUPする毎にソースを修正しないといけないというのは如何ともしがたい!

のでなんとかこの面倒な作業を省きたい・・・

で、いろいろ調べていたら以下を発見!!(゚∀゚)
WordPress用SexyLightboxプラグイン

上記のSexyLightboxは投稿するだけでclass=”sexylightbox”が挿入されるということなので、ソースを拝見してこれをslightboxに応用できんかな~?

ということで早速slightbox.phpを改良してこの投稿でテスト!!

まずWordPress2.7がリリースされましたで修正したmedia.phpを元に戻す。

次にslightbox.phpに以下を追加

define("IMAGE_FILETYPE", "(bmp|gif|jpeg|jpg|png)", true); function wp_slightbox_replace($string) { $pattern = '/(<a(.*?)href="([^"]*.)'.IMAGE_FILETYPE.'"(.*?)><img)/ie'; $replacement = 'stripslashes(strstr("¥2¥5","rel=") ? "¥1" : "<a¥2href=¥"¥3¥4¥"¥5 rel=¥"lightbox¥"><img")'; return preg_replace($pattern, $replacement, $string); } add_filter('the_content', 'wp_slightbox_replace');

以下がテスト結果
913

成功?

うまくいったようです(ヽ(´ー`)ノ

改良したソースは以下からどうぞ( ´ー`)
slightboxphp

1
4月

slightboxからsexylightboxへ変更


このブログの画像ポップアップのプラグインをsexylightboxへ変更しました。

前々から使ってみたかったのですが、今から既存の記事のrelを全部修正するのもしんどいなぁ~と思ってて躊躇してたのですが、

sexlightboxのソースを見てみたら、ちゃんとrelを任意のものに変更できる箇所がありました( ´ー`)

sexylightbox.js

find :'lightbox',

上記のように修正するだけでOKでした。

とてもステキなポップアップになりました( ´ー`)
http://cmf.ohtanz.com/blog/archives/608

Celadon theme by the Themes Boutique