Drupal IEのCSSの読み込み制限を解消してくれるモジュール「IE Unlimited CSS Loader」
サイト制作をしていると、IEで表示が崩れるといった事は多々あります。
そんな時はIE用にスタールシートを作り読み込ませるようにするのですが、この前なぜか
「読み込んでくれない!」
といった問題に突き当りました。
調べてみると
IE(Internet Explorer)に読み込めるCSSは31ファイルまで
なんですね。知りませんでした・・・。
何かイイモジュールはないかなと探してみると、ありました!
使い方はとても簡単で、モジュールをインストールし有効にするだけ。
確認してみると無事にスタイルシートを読み込んでくれました。
-->Drupal<body>にページ別にid、classを生成する。
Drupalで<body>にページごとのid、classを生成する方法。
参考はコチラ
まずはpage.tpl.phpの<body>を以下の内容に書き換えます。
続いてtemplate.phpへ以下の内容を書き加えます。
-->DrupalのTrigger、Actionsに細かな設定を与えるモジュール「Rules 」
Drupal6からコアに取り込まれたTriggerとActions。
特定のシステムイベントを引き金(トリガ)として、アクションを実行するためのモジュールですがコアのままですと設定できる項目が少なく思い通りの動きを出すことが難しい・・・。
そこでTrigger、Actionsに細かな設定を与えることのできるモジュール「Rules 」を使ってみました。
今回は匿名ユーザーがコンテンツを作成したときにだけ「投稿ありがとうございました。」といったメッセージ画面に遷移するよう設定してみます。
http://drupal.org/project/rules
よりダウンロードしモジュールを有効にします。
管理画面からルール→アクションを起こすルールを開き、ルールを新しく開くを表示します。
各項目を入力します。
-->バグ #75: pearのNet::UserAgent::Mobileが対応していない機種の場合に異常終了
↓これを確認したところ、ユーザーエージェントは間違っていませんでした。
http://creation.mb.softbank.jp/terminal/
- テスト結果
FireMobileSimulatorを使うと、問題なく表示されました。
Net::UserAgent::Mobileのバージョンが古かったか、UAが間違っていたとか。
- テスト2: UAを変更してみました。
この場合は、絵文字も問題無し。
- テスト3: さらにUAを変更してみました。
PCと同じものが表示されましたがエラーはないです。
- 結論
- 再現しません。0.9-2で直っている?
ストーリー #104: ページの任煮の場所に挿入したり、任意の場所を置き換えたりできるようにするモジュール「page_replacer」
- たとえばこういうことはよくある
- create_account画面の「姓」、「名」の入力欄の次に、姓(カタカナ)、名(カタカナ)という項目を追加したい、みたいな
- ページのメイン部分ど真ん中にmoduleをaddonしたい、ということ
- addon_modulesの仕組みのみでは、テンプレートを書き換えなければこの「セイ(カタカナ)」と「メイ(カタカナ)」を埋め込むことはできない
- この埋め込みを実現する「page_replacer」というaddon_modulesモジュールについて考えた
- まずこのカナを追加するモジュール「furigana」について考える
- 「furigana」は「page_replacer」に依存するaddon_modulesモジュールとして作る
- page_replacerは、次の2つのblockを提供する
- block_ob_start: これを全ページのmain_topに埋め込む
- block_ob_end : これを全ページのmain_bottomに埋め込む
- page_replacerは、次のメソッドを提供する
- 「furigana」は管理画面の設定画面で設定項目として次を提供する
- 「furigana」はmodule.php内のコンストラクタで次のように実行
- 「furigana」はmodule.php内の_update_page_replacerメソッドで次のように記述
- 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が変わってしまえば、マッチングしなくなる。(ま、その辺はその前後に挿入されてたものが挿入されなくなれば気が付くか)
- これ作れば、より配布やインストールがしやすいモジュールがつくれるぞ!
バグ #103: 高い優先度でini処理をさせることができない
バグではなく要望ですが、
- 現状1000番で実行されますが、それ以前の処理に割り込むこともできるようだといいな、と。
バグ #97 (終了): 商品一覧:「このカテゴリの商品はありません。」と表示されない
テストを追加して通しました。
各パターンの画面キャプチャ
対応をコミットしました (r638)
これにて「終了」に変更します。
バグ #99 (終了): 配送方法選択:配送モジュールが1つの場合にデフォルトでチェックされていない
テストを追加して通しました。
各パターンの画面キャプチャ
対応をコミットしました (r637)
これにて「終了」に変更します。
