sticker20.com

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書く事で広告が消せます。

symfonyでcssのmediaタイプを変えたい時

aa

Media specific stylesheet
http://www.symfony-project.com/book/trunk/templating_configuration

ブラウザのページを印刷する時に、印刷しなくて良いようなヘッダーやフッターの部分はCSSを使って隠せたりしますが、

「css 印刷 media print 隠す」
http://www.google.co.jp/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-18,GGGL:en&q=css+%E5%8D%B0%E5%88%B7+media+print+%E9%9A%A0%E3%81%99

<head>にCSSをリンクする時には、mediaの指定が必要だったりします。

デフォルトでは、media="screen"となっているので、どうもprint属性は認識されないようです。困ったなと色々検索してると、やはりsymfony側で対応出来るみたいです。方法としては view.yml のスタイルシートの設定で、print属性にしたいものを以下のようにします。

stylesheets: [main, main_for_print: { media: print }]

これだけでした。

 

symfonyの使える?バージョン

symfonyでは現状

  • stable 0.6.3
  • beta 0.7系
  • alpha 0.9系

があるかと思いますが、この乱立が使う側に結構混乱を招いているようです。

通常stableが安定して、多くの人が使うべきバージョンなのですが、開発が日々行われている為、使いたい新機能がstableに無かったり、stableなんだけどまだ1.0のメジャーバージョンに行ってない為にバグが潜んでたり(sfCacheで悩まされたりしてました)、正直使う側のユーザーとしては

「どれを使ったらいいのよー!」

ってなってるみたいです。現に最近のメーリングリストでは、alphaを使っているにもかかわらず、

「あれ、これ、それが動かないぞー!」

って怒ってる人の発言がよく目に付きます。他には

「alphaがバグってるんだったら先に行ってくれー!」

と言ってる人もいるようです。(alphaなんだから当然開発途中なんですが)答える方の人も少し疲れてる様子で、ウィキペディアのリンクを貼って「alphaとはbetaとは」、と解説している人も居ます。

そのウィキペディアのリンク
http://en.wikipedia.org/wiki/Development_stage

そこでみんなの疑問がどのバージョンが一番良いの?っていう事になると思います。

これはあくまでも主観的な意見で個人の経験談ですが、現状は0.7系のbetaが宜しいかと思います(キャッシュ周りもうまく動いているようですし)。0.6.3系は一応stableですが、やはりまだバグが残っています。0.9系のアルファは現状 最前線で開発されているので、手戻りが多そうでなかなか手が出せません。

しかしながら、0.7系でうまくまとまるのかというとそういうことでもなく、0.8系から盛り込まれてきている新しい機能( http://www.symfony-project.com/trac/wiki/SymfonyPlugins )なんかは使えませんし、構造自体かなり手が加えられているようなので0.7系でアプリケーションを完成してしまい、いざ1.0系に移った時には動かない、ということにならないか結構心配だったりします。

最近のメーリングリストにもありましたが、0.8より下のバージョンで開発したプロジェクトで、symfonyをアップグレードする場合、

 symfony upgrade 0.8

のコマンド実行が必要なようです。

もう少し待てば1.0が出ると思うので、あまり現状深追いせずsymfonyで遊んでおくだけも手かもしれません。

参照:

symfony askeetの翻訳

askeet翻訳

 

本家でもaskeetの日本語訳はありますが、どうも2日目で止まっています。今後大きな改訂を待っているのでしょうか?

http://www.sticker20.com/askeet/index/page/3

ちょっと今後のaskeetドキュメントへの改訂が怖いですが、翻訳を3日目からやってみることにしてみました。かなり長いので途中で力尽きるのは目に見えていますが、暇を見つけてやっていきます。(3日目でも半日かかった)

 

symfonyでPEARのような外部ライブラリのautoloadについて

symfonyはsymfonyでかなり完成されていて、あまり外部ライブラリは必要ないのですが、PEARを使っていた人なんかは「うー、ここはPEARが使えるのに!」って事もあると思います。

そんな時には、プロジェクトのトップディレクトリから辿れる config/config.php や使う直前にrequire_once() を書いたり、*/lib/ にファイルをコピーしたり出来ますが、やはりsymfonyのオートロードを使いたいものです。

で、symfonyでどうやってオートロードを使うのか?ですが、これには autoload.yml という設定ファイルを書く必要があります。
これについては、この辺りに書いています。

それで、内容ですが簡単にまとめるとこうなります。

  1. デフォルトのオートローディングの設定は
    $pear_data_dir/symfony/config/autoload.yml にある
  2. これを書き換えても良いが、symfony アプリケーション毎に定義したい場合は、myproject/apps/myapp/config/ に autoload.yml を作り提示されているフォーマットのように設定する。

autoload.ymlフォーマット

  • autoload:
    • ライブラリのラベル名
      • config_autoload.yml.phpでコメントとなる部分
      • 取り込むべき拡張子タイプ
      • ライブラリの場所
      • サブフォルダ内の検索するかどうか

うまく作成されたかどうかは、

MY_PROJECT/apps/cache/APPLICATION_NAME/ENVIRONMENT/config/config_autoload.yml.php

を確認してみましょう。オレンジ色は自分の環境に合わせて読み替えてください

参照:

アルファチャンネルなpngのインターネットエクスプローラー(IE internet explorer)での表示の仕方

ステッカー ニーマルでは綺麗なステッカー貼付けの為、アルファチャンネルなpngを使うことを推奨しています。

が、しかしアルファチャンネルpngはIEで、透明部分が表示できないのでは?と思われる方も居るかもしれません。が、しかし、1つ方法があるのです。

その方法とは「AlphaImageLoader Filter」です。
http://msdn.microsoft.com/workshop/author/filter/reference/filters/alphaimageloader.asp

何か聞いたこともないやつです。マイクロソフトの解説ページもよく何をやっているのか分かりません。かんたんに解決しますと次のようになります。

  1. IEでは通常はアルファチャンネルpngはサポートされておらず、透明部分はグレー表示される
  2. IEでアルファチャンネルpngを正しく表示する為に「AlphaImageLoader Filter」が後付け?のように用意されている
  3. 「AlphaImageLoader Filter」を使うには、アルファチャンネルpngを表示したい img タグの style に次のように設定する
    style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='/images/AlphaChannel.png');"
  4. img の src には設定する画像がないので、1px * px の透過GIFを用意しておきそれを設定しておく。(”画像がないですよ×マーク” が表示されないように)
  5. 結果としてコードは次のようになります。

<img src="./blank.gif" style="filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='./AlphaChannel.png');">

簡単にローカルでテストできるようにコードを用意しました。気になる方はダウンロードしてみてください。
AlphaPng.zip - 10.1 KB

参照:

 | BLOG TOP |  NEXT»»