Drupal IEのCSSの読み込み制限を解消してくれるモジュール「IE Unlimited CSS Loader」

スタッフブログ - 2009/09/24(木) 18:13

サイト制作をしていると、IEで表示が崩れるといった事は多々あります。
そんな時はIE用にスタールシートを作り読み込ませるようにするのですが、この前なぜか

「読み込んでくれない!」

といった問題に突き当りました。

調べてみると

IE(Internet Explorer)に読み込めるCSSは31ファイルまで

なんですね。知りませんでした・・・。

何かイイモジュールはないかなと探してみると、ありました!

IE Unlimited CSS Loader

使い方はとても簡単で、モジュールをインストールし有効にするだけ。

確認してみると無事にスタイルシートを読み込んでくれました。

-->
カテゴリ: スタッフブログ

Drupal<body>にページ別にid、classを生成する。

スタッフブログ - 2009/08/27(木) 18:22

 Drupalで<body>にページごとのid、classを生成する方法。

参考はコチラ

まずはpage.tpl.phpの<body>を以下の内容に書き換えます。

 

 

 続いてtemplate.phpへ以下の内容を書き加えます。

-->

続きを読む

カテゴリ: スタッフブログ

DrupalのTrigger、Actionsに細かな設定を与えるモジュール「Rules 」

スタッフブログ - 2009/08/26(水) 15:18

Drupal6からコアに取り込まれたTriggerとActions。
特定のシステムイベントを引き金(トリガ)として、アクションを実行するためのモジュールですがコアのままですと設定できる項目が少なく思い通りの動きを出すことが難しい・・・。
そこでTrigger、Actionsに細かな設定を与えることのできるモジュール「Rules 」を使ってみました。

今回は匿名ユーザーがコンテンツを作成したときにだけ「投稿ありがとうございました。」といったメッセージ画面に遷移するよう設定してみます。

http://drupal.org/project/rules
よりダウンロードしモジュールを有効にします。
管理画面からルール→アクションを起こすルールを開き、ルールを新しく開くを表示します。

各項目を入力します。

-->

続きを読む

カテゴリ: スタッフブログ

バグ #75: pearのNet::UserAgent::Mobileが対応していない機種の場合に異常終了

↓これを確認したところ、ユーザーエージェントは間違っていませんでした。
http://creation.mb.softbank.jp/terminal/

Vodafone/1.0/V802SE/SEJ001[/Serial] Browser/SEMC-Browser/4.1 Profile/MIDP-2.0 Configuration/CLDC-1.1
  • テスト結果
    FireMobileSimulatorを使うと、問題なく表示されました。
    Net::UserAgent::Mobileのバージョンが古かったか、UAが間違っていたとか。
  • テスト2: UAを変更してみました。
Vodafone/5.8/VS811SGW/SWH205[/Serial] Browser/SEMC-Browser/4.1 Profile/MIDP-2.0 Configuration/CLDC-1.1 ^^^ ^^^^^^^^ ^^^^^^

この場合は、絵文字も問題無し。

  • テスト3: さらにUAを変更してみました。
Vadafone/...以下同じ ^

PCと同じものが表示されましたがエラーはないです。

  • 結論
    • 再現しません。0.9-2で直っている?
カテゴリ: ZenCartJP開発情報

ストーリー #104: ページの任煮の場所に挿入したり、任意の場所を置き換えたりできるようにするモジュール「page_replacer」

ちょっと考えてみた
  • たとえばこういうことはよくある
    • create_account画面の「姓」、「名」の入力欄の次に、姓(カタカナ)、名(カタカナ)という項目を追加したい、みたいな
    • ページのメイン部分ど真ん中にmoduleをaddonしたい、ということ
  • addon_modulesの仕組みのみでは、テンプレートを書き換えなければこの「セイ(カタカナ)」と「メイ(カタカナ)」を埋め込むことはできない
  • この埋め込みを実現する「page_replacer」というaddon_modulesモジュールについて考えた
page_replacerのしくみ
  • まずこのカナを追加するモジュール「furigana」について考える
  • 「furigana」は「page_replacer」に依存するaddon_modulesモジュールとして作る
  • page_replacerは、次の2つのblockを提供する
    • block_ob_start: これを全ページのmain_topに埋め込む
    • block_ob_end : これを全ページのmain_bottomに埋め込む
  • page_replacerは、次のメソッドを提供する
$global['page_replacer']->attach($oObserver, $sPage, $sHtml, $sActionType); * $oObserver : 埋め込んだり置き換えたりする文字列を返すメソッド「_update_for_page_replacer」を実装するクラスのインスタンス * $sPages : 埋め込んだり置き換えたりする文字列が存在するページの名前 * $sHtml : HTML文字列。ここで指定したHTMLと一致したらそれを置き換え(or その前後に挿入) * $sActionType : 'before'=> 指定したHTMLの前に挿入、'after'=> 指定したHTMLの後に挿入、'replace'=> 指定したHTMLそのものを置き換え
  • 「furigana」は管理画面の設定画面で設定項目として次を提供する
ユーザー登録ページ(create_accout)でフリガナが埋め込まれる位置 ユーザー登録ページでフリガナが埋め込まれる位置を指定してください。 指定したHTMLの [後に挿入 ▼] HTML |<label class="inputLabel" for="lastname">名:</label> | |<input id="lastname" type="text" maxlength="32" size="33" name="lastname"/> | |<span class="alert">*</span> | |<br class="clearBoth"/> |
  • 「furigana」はmodule.php内のコンストラクタで次のように実行
$global['page_replacer']->attach($this, 'create_accout', MODULE_FURIGANA_CREATE_ACCOUNT_REPLACE_HTML, 'after');
  • 「furigana」はmodule.php内の_update_page_replacerメソッドで次のように記述
function _update_for_page_replacer() { return $sHtml // フリガナのHTML }
  • blockと同様に、テンプレートを用意してそれを使って出力できればなおよし
置き換えが起こる処理の流れ
  • create_account画面を表示
  • main_bottomの描画時期が訪れる
  • page_replacerの「main_top」に埋め込んでおいた「block_ob_start」が呼び出され、ob_start()が実行される
  • メイン部分が普通に描画されるがこれはob_start()により標準出力には出力されない。
  • page_replacerの「main_bottom」に埋め込んでおいた「block_ob_end」が呼び出される。
  • block_ob_endでは
    • ob_get_contetsでメイン部分のHTMLを取得
    • その対象ページにattachされていたオブサーバーそれぞれに対して
    • 指定しされていたHTMLがマッチするかチェック
    • マッチした場合、そのオブサーバークラスの_update_for_page_replacer()メソッドを呼び出す
    • そのメソッドの戻り値で、マッチしたHTMLを置き換え(or その前後に挿入)する。この処理のタイプは「$sActionType」の値に応じて変更
    • 最後に「block_ob_end」は置き換えや挿入などがすべて行われたHTMLを標準出力に出力する
懸案
  • block_ob_startはmain_topの一番最後、block_ob_endはmain_bottomの一番最初にセットする必要がある
  • そもそも、main_topとmain_bottomがtemplate_layoutで定義されている必要がある
  • 置換位置を判定するHTMLが変わってしまえば、マッチングしなくなる。(ま、その辺はその前後に挿入されてたものが挿入されなくなれば気が付くか)
まとめ
  • これ作れば、より配布やインストールがしやすいモジュールがつくれるぞ!
カテゴリ: ZenCartJP開発情報

バグ #103: 高い優先度でini処理をさせることができない

バグではなく要望ですが、

  • 現状1000番で実行されますが、それ以前の処理に割り込むこともできるようだといいな、と。
カテゴリ: ZenCartJP開発情報

バグ #97 (終了): 商品一覧:「このカテゴリの商品はありません。」と表示されない

テストを追加して通しました。
各パターンの画面キャプチャ

対応をコミットしました (r638)

これにて「終了」に変更します。

カテゴリ: ZenCartJP開発情報

バグ #99 (終了): 配送方法選択:配送モジュールが1つの場合にデフォルトでチェックされていない

テストを追加して通しました。
各パターンの画面キャプチャ

対応をコミットしました (r637)

これにて「終了」に変更します。

カテゴリ: ZenCartJP開発情報