今日もガクリ('A`)
きっと明日もまたガクリ?('A`)
2008 / 02
« «  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29  » »
archive for 2008年02月
Customizable Post Listings の修正

当ブログで使用している WordPress のプラグイン Customizable Post Listings 1 の修正点

  1. サーバーとローカル環境での MySQL のバージョンの違いによる不具合の修正

    $sql .= "GROUP BY $tableposts.ID ORDER BY $orderby $order";

    ローカルで構築した MySQL のバージョンだと、GROUP BY 句を指定していると正常に SELECT されないので、以下の様に修正

    $sql .= "ORDER BY $orderby $order";

  2. バグを見つけたので修正

    if ($orderby != 'rand()') $orderby = "$tableposts.post_$orderby";

      ・
      ・
      ・

    if ('modified' == $orderby) $sql .= "AND $tableposts.post_modified_gmt <= '$now' ";

    上記の最初の if 文で $orderby 変数を置き換えてしまっているので、2番目の if 文では真とはなりません。なので、関数の最初で別変数に保持するように修正

    $o = $orderby;

      ・
      ・
      ・

    if ('modified' == $o) $sql .= "AND $tableposts.post_modified_gmt <= '$now' ";

  3. 新規の投稿も更新にリストアップされるのが気に入らないので、recent posts = recent updates にならないように修正(2番の修正が必要)

    if ('modified' == $o) $sql .= "AND $tableposts.post_modified_gmt <= '$now' AND $tableposts.post_date_gmt <> $tableposts.post_modified_gmt ";

    単に投稿日時と更新日時が同じでないレコードを抽出するように条件を加えただけ

  1. recent posts, recent updates の部分で使用しています。配布元サイトのバージョンは 1.1 となっていますが、何故か私が持っているのは 1.5 です…なんでだろう?どこで落としたのか所在がわからなくなりました…('A`)
blog, WordPresscomment (1)no trackbacks(4,015)
WordPress の大きなお世話

WordPress の事 の記事で書いた問題が解決したので、その時行った対策を記事としておきます。結論から言うと、formatting.php を修正する事でほぼ解決。ソースの中を見ると解るように私にとっては余計な事をし過ぎている。修正した点は wptexturize, wpautop の 2つの関数。1 前者は一部の処理をコメントにし、後者は入力パラメーターを処理はせずにそのまま返す様に修正

前述の修正を施した WordPress を暫くの間、ローカル環境の WordPress でテストし、私が使用するもとでは問題ないと判断し、その時にテストしていたプラグイン 2 と一緒にサーバー側にも反映させました。最近の記事 (recent posts) と最近更新 (recent update) された記事のリストがそうです

話は変わって、WordPress はカスタマイズ性が抜群にいいのはいいのですが、如何せん、ドキュメントの不備が酷すぎます。今回の移転で私は初めて WordPress を触りました。所謂、WordPress 初心者です。実際にテンプレートを作製している時に感じたんですが、やりたいこと、実現したいことは解っているのですが、そこから目的の情報に辿り着くまでが時間かかり過ぎました。ひとえに逆引きやチュートリアルといった情報を掲載しているサイトがないからです。これは、公式サイト、日本の WordPress 関連サイトでもそうでした

例を挙げると WordPress でテンプレートを作成するには テンプレートタグ(実体は PHP の関数) というものを使用します。で、公式サイトを閲覧していき、テンプレートタグのマニュアルページなるものを見つけましたが…こんなんじゃ初めて触る人には理解できません。テンプレートタグの要約すら記述していません('A`) 結局テンプレートタグ一つ一つのページを何ができるのかを知る為に見て回らなければなりません。一言要約を記述するだけでこの手間が省けるに…('A`) これらを日本語に翻訳したサイトもあるんですが、情報が古かったり、リソースを置いてる場所が不安定だったりと日本語での情報収集は断念しました

実際にテンプレートについて書いていこうかと思いましたが、ダラダラと長くなるので今回は此処までとします


  1. なんで、こんな余計な事をするのか理解できない。データベースに入っているデータをそのまま無加工で出力して欲しいのに…('A`) しかも、wpautop 関数にはバグがあることが判明('A`)
  2. このプラグインをテストしている最中に問題が発生。サーバーとローカル環境での MySQL のバージョンの違いにより、ローカルでは正しく動作しない事が判明。ローカル側のプラグインのソースを修正する事で対応しましたが…('A`)
blog, WordPressno commentsno trackbacks(2,522)
Panels UI を安定させる為に

Panels UI が不安定で頻繁に foobar2000 がクラッシュする問題についてチョット纏めてみました。あくまでも、私自身のソフトウェア環境、経験、検証に基づくものだと言う事を前置きしておきます

私が主に foobar2000 を動かしている環境としては…

  • OS:
    Windows XP SP2 + hotfixes
    hotfix やセキュリティパッチは必要な分は全て適用させています
  • foobar2000:
    0.9.5 を使用しています。日本語環境のパッチは私には必要ないので適用させていません
  • Panels Ui:
    0.14.12 を使用しています。現在、自分の環境下では安定して動作しているので 0.13.x 系には戻さないでしょう

以上のような環境なんですが、Panels UI を使い始めた頃は、まともに設定画面を開けなくて苦労しました。そこで、以下の事を試しました

  1. AppLocale Utility を試す
  2. ウィンドウを制御する常駐ソフトウェアの使用をやめる

1番に関してはほとんど (と言うか、全く) 効果が得られませんでした。アプリケーションの言語を色々と変更してみたんですが…劇的な効果が得られたのは 2番でした。ウィンドウを制御するソフトウェアに私は ぴたすちお 1 を使用していたんですが、このソフトウェアの使用をやめる事によって、設定画面を開く事によって foobar2000 がクラッシュすると言う問題は完全に解消しました

これで、設定画面が完全に開けるようになって、るんるん気分 2TF を書き、foobar2000 でお気に入りを再生させていたのですが、長時間再生させていると下記に示している不具合が出てくるケースに遭遇 3

  1. 表示が乱れる。foobar2000 のウィンドウのみならずデスクトップにまで表示の乱れが発生する
  2. foobar2000 がクラッシュする

上記、2つの問題はかなりの時間を浪費して調べた 4 結果、Panels UI の TF を記述する際には以下の点に注意する様にする事によって解消しました

  1. Single Column PlaylistTF には $calcheight および $calcwidth を含めない
  2. なるべく $newsyntax を使用する

以上のような対策を施す事によって、私の環境下では foobar2000 + Panels UI 0.14.12 は安定して動作しています


  1. 断わっておきますが、このソフトが悪い訳ではありません
  2. 既に死語('A`)
  3. Panels UI 0.14.12 での話です
  4. TF に問題があると推測した私は TF を少しずつ削っていきながら、問題のある部分を特定していくという作業でした。ひょっとしたら勘違いしているかもしれませんが…('A`)
foobar2000no commentsno trackbacks(4,335)
CSS を PHP のヒアドキュメントとして

この件で検索を行っても CSSPHP のヒアドキュメントとして、記載する方法が見つからなかったのでメモとして記事にします

CSS を記載する方法としては style 要素の中に記述するか、link 要素の中にスタイルシートの URI を記載して UA に読み込ませると言う 2つの方法がありますが、今回、ここで記載するのは後者の方です。何故この様な事を考えたかと言うと、いい加減此処の超カオス気味のスタイルシートを何とかしたいと思った次第です

PHP の公式マニュアルによると PHP: 基本的な構文 - Manual たいていの場合、PHPHTML ドキュメントの中に埋め込まれます と記載されています。たいていの場合? では、別に HTML でなくてもいい訳です。参照先にその具体例が記載されています。そこで、まず行ったのが HTML の head 要素内の link 要素を以下の様に修正

<link rel="stylesheet" type="text/css" href="filename.php" media="all" />

スタイルシートを指定しているファイルのサフィックス部分が php になっている所がポイント。で、実際のスタイルシートファイル(.php) は以下の様に記述します

@charset "UTF-8";
<?php
  $color = 'pink';
  $background = 'green';
?>
body {
  color: <?php echo $color; ?>;
  background-color: <?php echo $background; ?>;
}

ブラウザをリロード行っても…真っ白けです。どぎつい配色になるはずなんですが、これはスタイルシートが適用されていないようです。つまり、UA がスタイルシートとして認識しなかったようです。そこで Proxomitron 1 のログウィンドウを開いて、もう一度リロードを行います。案の定 PHPHTTP レスポンスヘッダー Content-Type のメディアタイプに text/html として返しています。これが原因の様です。つまり、スタイルシートならばメディアタイプを text/css として返さなければならないのに UA に対して HTML 文書ファイルですよ。と、返してしまっている訳です。これは、PHP の設定 default_mimetypetext/html となっているので正常な動きです。そこで、スタイルシートファイル(.php) を以下の様に修正します

<?php header('Content-Type: text/css; charset=utf-8'); ?>
@charset "UTF-8";
<?php
  $color = 'pink';
  $background = 'green';
?>
body {
  color: <?php echo $color; ?>;
  background-color: <?php echo $background; ?>;
}

どうってことはありません。header 関数にてデフォルトのヘッダーを置き換えてやっているだけです。ブラウザを再度リロードするとスタイルシートが認識されました。本来ならば、ここで終了なんですが、link 要素のファイル名の指定が php となっているのがどうもかっこよくない。そこで、HTTP サーバーのアクセス制御ファイルを以下の様に記述します 2

<FilesMatch "filename\\.css">
  SetHandler application/x-httpd-php
</FilesMatch>

あとは、HTML の head 要素内の link 要素のファイル名指定部分の phpcss に変更。実際のファイル名も css に変更。実際にブラウザをリロードしてアクセス制御ファイルが効いているか確認して終わりです

これには色々と応用が効きます。各 UA に対応させる為に UA のバグを逆用して苦労してスタイルシートの読込みの振り分けなどを行っている様ですが、PHP 変数の $_SERVER["HTTP_USER_AGENT"] で判定を行えばいいのです。3 他には、色を容易に変更できる様に PHP の変数としておけば、変数の値を変更するだけで配色の変更が可能です。などなど…PHP コードが記述できるので、良いと思います 4


  1. 私が常用している HTTP フィルタリングソフト。参照: Proxomitron-J
  2. Apache HTTP Server の場合
  3. $_SERVER["HTTP_USER_AGENT"] は UA によっては偽装できるので完全に振り分けることは不可能です
  4. PHP が動かせて、なおかつ、HTTP サーバーアクセス制御ファイルが置けない環境じゃないと意味ありませんが…
CSS, PHPcomment (1)trackback (1)(11,580)
Panels UI introduction : 私的マニュアル

Panels UI の私的マニュアルです。Commands references なんていきなりディープなものを作っておきながら、introduction (序章、入り口) 部分のマニュアルがないのはオカシイので作ってみました。特に 原文: Foobar2000:Components 0.9/Panels UI (foo ui panels) - Hydrogenaudio Knowledgebase には特にタイトルが明記されていなかったので、内容から推測して勝手に introduction と命名しました


Panels User Interface

Panels User Interface

Maintainer:terrestrial
Stable release:0.13.8 beta [June 12 2007]
Preview release:0.14.12 beta [Jul 18 2007]
Foobar version:0.9.4.x
Use:Graphical user interface
License:-
Website:panels.fooblog2000.com
Discussion thread:Hydrogenaudio Forums

Panels UI は titleformatting の使用によるfoobar2000 の外観を変更する為の GUI です。これらは Panels UI 独自の titleformat 機能およびフィールドと foobar2000 の機能とフィールドを含んでいます。Panels UI は現在統合されている Track Info Mod と Single Columns Playlist コンポーネントの後継者です

Panels UI はまだベータ段階にあって、それは手広くテストされていません

Panels UI の開発は 2007年7月現在 停止している様です…('A`)

目次
  1. 特徴 (Features)
  2. 要求仕様 (Requirements)
  3. 導入 (Installation)
  4. ガイド (General guides)
  5. 特定のガイド (Specific guides)
    1. 0.13.x
    2. 0.14.x
  6. 非互換性 (Known incompatibilities)
  7. 参照 (See also)
  8. 比較的重要なリンク (Important links)
    1. オフィシャルサイト (Official)
    2. コミュニティ (Community)

特徴 (Features)

以下の特徴を提供するカスタマイズ可能なユーザーインターフェイス (UI) です

  • 素早くレイアウトを切り替えられる。また、レイアウトをファイルとしてインポート、エクスポート

    このインポート、エクスポートは機能していません。インポートは PanelsUI ディレクトリに .PUI ファイルをコピーする事で代用できます。エクスポートは Layout を変更または foobar2000 を終了した際に .PUI ファイルが保存されるので、適当なディレクトリにコピーする事で代用できます

  • イメージの表示と線描画
  • 要素の位置決め機能。フォントエフェクト。foobar2000 ウィンドウと Windows Vista Aero Glass の制御
  • 対話的なインターフェイスを提供する為のイメージ、テキストボタン
  • foobar2000 が終了しても保存される変数 PVARS
  • インターフェイスの中に他の UI コンポーネントを表示、制御する機能
  • 以下の 3つのコンポーネントを含んでいます
    • Single Column Playlist (プレイリスト)
    • Library Filter (アルバムリスト)
    • Track Display (本質的には Panels UI 自身)

要求仕様 (Requirements)

  • バージョン 0.9.4 以上の foobar2000
  • GDI+ (Windows2000 のみ)

導入 (Installation)

  • 最新バージョンをダウンロードし、解凍した DLL ファイルを foobar2000 コンポーネントディレクトリへコピーまたは移動します
  • コンポーネントを新しいバージョンにアップデートする前に .PUI ファイルのバックアップを行ってください。これらのファイルは異なるバージョン間で互換性がありません

ガイド (General guides)

  • Basic User's Guide - 設定情報の詳細。Single Column Playlist 入門書。FAQ や Tip's など
  • Intermediate User's Guide - PUI ファイルに関する情報。Preferences, Configuration, TF の構造、再描画タイプなど

特定のガイド (Specific guides)

0.13.x

  • Command Reference - Panels UI バージョン 0.13.x の Titleformat 詳細マニュアル

0.14.x

バージョン 0.14.x は foobar2000 をクラッシュさせる場合があって不安定です。この理由から 0.14.x は公式の Known Problematic Components(問題のあるコンポーネント) にリストされています

非互換性 (Known incompatibilities)

foo_uie_tabs の中に Track Display を加えた場合、その中の Track Display の $panel は機能しません

参照 (See also)

比較的重要なリンク (Important links)

オフィシャルサイト (Official)

コミュニティ (Community)

foobar2000no commentsno trackbacks(15,195)
contents
most viewed (741474)
categories
archives
recent posts
recent updates
recent comments
  • brico : Need for Speed SHIFT 2 UNLEASHED: Car Skin: BMW Z4 GT3 Racing HATSUNE MIKU Packs : 2013年04月11日(木)
  • Alphaziel : PLEX PX-Q3PE (Spinel + BonCasLink + TVTest + TvRock) での録画PC 構築設定メモ : 2014年09月24日(水)
  • 泣き虫 : PLEX PX-Q3PE (Spinel + BonCasLink + TVTest + TvRock) での録画PC 構築設定メモ : 2014年09月24日(水)
  • zodiac : WordPress Plugins : Akismet htaccess writer : 2008年07月12日(土)
  • Eleftherios Kosmas : WordPress Plugins : Akismet htaccess writer : 2008年07月12日(土)
recent trackbacks
mobile
qrcode:home
profile
曇り札幌市中央区 ‘ 曇り
気温: 10℃ ‘ 湿度: 66%
recommends
Valid XHTML 1.0 Transitional Valid CSS X.X
RSS 2.0 RSS 0.92
RDF/RSS ATOM
get Firefox 2 get Opera
ie