Archive for the 'WordPress' Category

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

WordPress No Comments »

先日の続きです。

オリジナルの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

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

WordPress 1 Comment »

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

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

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

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

詳細は後日( ´ー`)

php5.3にアップグレード

LINUX, PHP, WordPress No Comments »

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が消えましたヽ(´ー`)ノ

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

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

PHP, WordPress No Comments »

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

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

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

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

LINUX, WordPress, 雑記 1 Comment »

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へ移動、

無事に降りられました。

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

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

PHP, WordPress 1 Comment »

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

slightboxからsexylightboxへ変更

WordPress 1 Comment »

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

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

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

sexylightbox.js

find :’lightbox’,

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

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

出張でした(+WordPress2.7.1がリリース)

WordPress, 雑記 No Comments »

まぁ~出張です。

初日がかなりハードスケジュールだったのでとにかく疲れました(´・ω・`)

■初日
羽田空港(10:40)
↓飛行機
熊本空港(12:15)
↓バス
味噌天神(12:50)
↓徒歩(マックで軽く昼飯)
打ち合わせ先(14:00~16:00)
↓徒歩
南熊本(16:10)
↓JR豊肥本線
熊本(16:20)
↓特急
鳥栖(18:00)
↓JR長崎本線
佐賀(18:30)
↓徒歩
ホテル(18:40)

■2日目
ホテル(10:00)
↓徒歩(途中で時間潰し)
打ち合わせ先(11:00~11:30)
↓徒歩
佐賀(12:00~13:15)
↓バス
佐賀空港(14:00~14:40)
↓飛行機
羽田空港(16:30)

今度行くときは福岡空港でお願いしますヨ(行くことないのが1番なのですが・・・)

それはそうとWordPress2.7.1がリリースされました。
バージョン2.7から実装された自動アップデート機能を初めて使ってみたのですが、楽々アップデートでした( ´ー`)

ただしWordpress2.7がリリースされましたで挿入したrel=”lightbox”が消えてしまったので、今回も手動で追加。

wp-admin/includes/media.phpの108行目の

$rel = $rel ? ‘ rel=”attachment wp-att-’.attribute_escape($id).’”‘ : ‘”‘;

$rel = $rel ? ‘ rel=”attachment wp-att-’.attribute_escape($id).’”‘ : ‘ rel=”lightbox”‘;

に修正して、次行に

$url = wp_get_attachment_url($id);

を追加すれば自動でrel=”lightbox”が挿入されます

Wordpress2.7がリリースされました

WordPress 4 Comments »

ということでアップグレード( ´ー`)

ダッシュボードが一新されましたね!

記事内の画像のポップアップにsLightBoxを使っていて投稿時に画像のリンクタグに自動でrel=”lightbox”を挿入したいわけですが、毎度毎度アップグレードの度にソースを弄らないといけないのです(´・ω・`)

で、今回もソースを弄りました。

wp-admin/includes/media.phpの181行目の

$rel = $rel ? ‘ rel=”attachment wp-att-’.attribute_escape($id).’”‘ : ‘”‘;

$rel = $rel ? ‘ rel=”attachment wp-att-’.attribute_escape($id).’”‘ : ‘ rel=”lightbox”‘;

に修正して、次行に

$url = wp_get_attachment_url($id);

を追加すれば自動でrel=”lightbox”が挿入されます( ´ー`)

SPAM-BYEBYEを更新

PHP, WordPress No Comments »

WordPressのコメントスパム対策用プラグイン SPAM-BYEBYEを更新しました。

ブログを救え! MT/WPで使うライブドアのスパム対策で紹介頂いたのは大変有難かったのですが、wp-comments-post.phpに一行追加する説明が抜けておりました。

そこで、wp-comments-post.phpへの追加作業無しで動作するように(spam-bye2.phpの編集とプラグインの有効化のみ)修正を加えました。

最初からそうしておけ!というツッコミは受け付けておりません( ´ー`)