裏アドだらけの人生

読んでおもしろい内容はほとんどない個人的な備忘録です

Fancyboxのiflameで親のCSSが強制的に反映されてた件

2011-02-03 01:50:55 | Weblog
詳しく調べてないんで詳細はよくわからないけど、Fancyboxで同じディレクトリ内にあるファイルをインラインフレームで開いてみたら、親のCSSが強制的に反映されてた。
子のファイルのhead内にCSSを書いてみてもダメ。
で、親のファイルに以下を付け加えてみたら解決しましたよ、と。

◎ aにiframeってclassを付けてある場合

$(function(){
$("a.iframe").fancybox({'type': 'iframe'});
});

明示的にインラインフレームであることを宣言しなきゃいけないのかなあ。

PEARのImage_QRCodeで1日悩んだ件

2010-08-24 18:32:55 | Weblog
PEARのImage_QRCodeが便利そうなので使ってみた。
ローカルのMAMP環境では問題なく使えていたのが、レンタルサーバでは無反応。
諦めるのが悔しかったんで、エラーログ見ながらいろいろ検証するも、これがかなり苦戦。
結局、Image_QRCode/Image/QRCode.php の350行目あたり、ディレクトリパスに出てくる「image」を「Image」に変更したらあっさり解決した。

// 修正前
$this->image_path = "@data_dir@" . DIRECTORY_SEPARATOR . "Image_QRCode" .
DIRECTORY_SEPARATOR . "image";
if ("@data_dir@" == "@" . "data_dir@") {
// development path
$this->image_path = dirname(__FILE__) . "/../image";
}

// 修正後
$this->image_path = "@data_dir@" . DIRECTORY_SEPARATOR . "Image_QRCode" .
DIRECTORY_SEPARATOR . "Image";
if ("@data_dir@" == "@" . "data_dir@") {
// development path
$this->image_path = dirname(__FILE__) . "/../Image";
}

大文字・小文字の問題だったってこと?
疲労感いっぱいの1日でした。

MagpieRSSとPHP5

2009-08-10 19:12:22 | PHP
RSSパーサー「MagpieRSS」をPHP5で動かそうと思ったら、いきなり白紙に。
FC2とJUGEMとLivedoorで検証したのですが全滅でした。
すかさず検索したらドンピシャの内容が。

rss(magpie)がphp4→5になった途端に表示されなくなった

rss_utils.inc 内の parse_w3cdtf 関数、$match[6] になってる部分を $match[7] に変えただけですかさず解決。
助かりました。

MagpieRSS参考記事:
MagpieRSS - PHP で使える RSS パーサー。
PHPでMagpieRSSを使ってRSSリーダ作成し、トップページに埋め込みました!

Wordpressの翻訳ファイル編集

2009-07-08 15:50:26 | CMS
今、広告用フリー素材ダウンロードコーナーの英語版をWordpressで作ってます。
管理画面は日本語で、表示画面は英語で、ってわがままな仕様にしたいわけですが、これがなかなかうまくいきません。
「child」ってタグを付けると勝手に「子供」って表示されたり。
「family」は「家族関係」になっちゃったり。

翻訳ファイルの編集はなんか面倒くさそうで、これまで避けて通ってきたのですが、ちょっと調べてみたらあるじゃないですか、便利なソフトが。

Poedit

WIN版、MAC版、Linux版まで揃ってるし。
日本語環境で使えるのも嬉しいpoファイルの編集ソフトです。

早速 wp-content/languages/ja.poファイルを編集。
翻訳文字列をさくさく書き換えて保存すると、自動的にmoファイルまで作成してくれます。
もはや翻訳ファイル恐るるに足りず。
ありがとう、Poedit。

参考:
wordpressのテンプレート wpskinのブログ

詳細を「desc」と略してハマったMySQL

2009-05-21 16:24:06 | MySQL
よくよく考えてみると ORDER BY で頻繁に使う「DESC」。
ただ「詳細」を「description」と書くのが面倒だったんで、ついついフィールド名に「desc」とつけてしまいました。
で、これがMySQLの予約語とバッティングして INSERT や UPDATE ができなくなってしまったワケ。
予約語は他にもたくさんあるのでハマらないように今後注意するべし。

ハマりそうな予約語
CASE CHANGE CHECK COLMUN FOREIGN GROUP OPTION RIGHT SET

テキストエリアの改行をSWFに引き渡し

2009-05-18 14:54:44 | Flash
初歩的なことなのにちょっと手間取ったので。
HTMLのテキストエリアに書かれた内容をそのままSWFにパラメータで持って行って表示させようとしたらうまくいきませんでした。
改行の「\n」が引っかかってたわけですが、PHPで以下の処理をしたら難なくクリアー。

$text = str_replace("\n", "%0D", $_POST['text']);

これで$textをSWFに渡す。
SWFのほうは何も手を加えずに目出たく引き渡しができました。

Wordpressでパラメータを使ったCSSファイル変更

2008-08-06 17:49:25 | Weblog
具体的に言うと、Lightwindowを使って同一画面内で過去のエントリーを参照できるようにしたかったわけです。
その際、画面内にまたヘッダーやサイドやフッターが出てくる必要がないと思ったので、該当するエントリーだけを抽出して表示するようにできないものかと。
そんなテーマで脳内会議を繰り広げた結果、これが一番簡単なんじゃないかという結論に至ったのが以下のやり方。

1.使ってるテーマ内のfunctions.phpに関数をひとつ追加。

function style_change() {
if ($_GET['view'] == 'hogehoge') {
return 'hogehoge.css';
} else {
return 'style.css';
}
}

2.hogehoge.cssを作成して使っているテーマディレクトリにアップ。

このスタイルシート内でヘッダー、サイド、フッターなど要らないブロックを非表示にして、他のスタイルを調整。

3.header.phpのCSSの参照部分を以下に変更。

<link rel="stylesheet" href="(CSSファイルまでのパス)<?php style_change(); ?>" type="text/css" media="screen" />

これでhttp://example.com/?view=hogehogeにアクセスすればhogehoge.cssが反映されるはずです。

あとはlightwindow用のリンク貼る時に、params="lightwindow_width=500"などとウィンドウの幅指定をして、好みのサイズで表示します。
実際はもっとスマートなやり方があるような気がしますが、いちおう覚書ってことで。

LightWindowなどがSWFのレイヤーに勝てない問題を回避

2008-03-09 00:48:59 | Flash
何を今さら感はあるかもしれませんが、たまたまLightwindowを触ってて、同一画面上で表示しようとしても、FLASHムービーなどがあるとその後ろに隠れちゃうのをなんとかしたいなあと思ってたら、なるほどってなエントリーが多々あったので感謝を込めてメモしておきます。

swfとフローティングレイヤーの重なり順(Flash&JavaScriptの小技)

Lightbox JS でブログパーツ等の Flash を PNG 背景画像の下に隠す

SWFObjectのドキュメントを日本語に翻訳してみたよ


基本的にはwmodeでtransparentを指定すれば回避できるようです。

objectタグに <param name="wmode" value="transparent" />を追加し、 embedタグ内にwmode="transparent"を追加。

自分の場合、FLASHムービーの表示にはほとんどSWFObjectを使っちゃうのですが、その場合はSWFを呼び出すスクリプトを記述する部分に

so.addParam("wmode", "transparent");

のパラメータを追加すればよさそう。

毎回パラメータを追加するのが面倒なら、swfobject.jsに直接記述するのもありだと思います。
embedタグを吐き出すあたりにある

_19+=" id=""+this.getAttribute("id")+"" name=""+this.getAttribute("id")+"" ";



_19+=" id=""+this.getAttribute("id")+"" name=""+this.getAttribute("id")+"" wmode="transparent" ";

に変更し、objectタグを吐き出すあたりに

_19+="<param name="wmode" value="transparent" />";
を追加。

とりあえずIE6でも以上の修正で正常表示されるようになりました。

Wordpressのタイトル表示カスタマイズ

2007-11-08 22:35:30 | CMS
SEO以前の問題として、検索エンジンで何かを探している人にとっては、ブログのタイトルより記事のタイトルが前にあったほうが親切な気がします。
デフォルトで「(ブログのタイトル)»(記事タイトル)」になっているWordPressのタイトル表示を「(記事タイトル)::(ブログのタイトル)」に変えてみました。

●各種テーマのheader.php

テーマによってマチマチですが、

<title><?php bloginfo('name'); ?><?php wp_title(); ?></title>

おおよそこんな感じになってる部分を

<title><?php wp_title(); ?><?php bloginfo('name'); ?></title>

に変更します。
これでブログのタイトルと記事タイトルが入れ替わりますが、「 » 」が各種タイトルの頭に入ったままなので変な感じ。

●wp-includes/general-template.php

228行目

$title = $prefix . $title;



$title = $title . $prefix;

に変更。
これで「 » 」が各種タイトルの後ろに来る。

160行目

function wp_title($sep = '&raquo;', $display = true) {



function wp_title($sep = '::', $display = true) {

に変更。
これで「 » 」が「 :: 」になりました。

たぶんこんなことするプラグインがあるんだろうけど、プラグインをあまり増やしたくない人は以上のカスタマイズでOKかと思います。
割と適当なので、もっとスマートな方法があったらごめんなさい。

改行コード要確認の巻

2007-10-31 03:43:15 | PHP
miでPHPファイル作ってサーバーにアップ。
ブラウザでアクセスしたらいきなり「Parse error」。
やれやれ、とため息をつきながらも、
きっと慌ててカッコでも閉じ忘れたんだ
と、再度スクリプトの記述を見直す。
しかし何度見直してもいっこうに間違いが見つからない。
眠い目をこすりながら非生産的な時間を延々と過ごした後、
ひょんなことから書類設定で改行コードが「CR」になっていたことに気づく。

そんな間の抜けた出来事がごく最近あったんで、
二度と繰り返さないようにするためのメモでした。