リンク


カテゴリー


最近の記事


最近のコメント


最近のトラックバック


月別アーカイブ


ブロとも申請フォーム


FC2ブログ 一戸建て
sticker20.com

Ads by Google

上記の広告は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

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

参照:

sfThumbnail.class.phpのアルファチャンネルなpngなどへの対応のその後

root/plugins/sfThumbnail/lib
http://www.symfony-project.com/trac/browser/plugins/sfThumbnail/lib

前から更新されるのを待って居るんですが、なんかなかなか更新されません。まだソースは2ヶ月前の物です。

ステッカー ニーマルではとりあえずpngのサムネイル化に対応する為次のようなコードを追加しています。

@@ -1,4 +1,6 @@
 <?php
+// png alpha channel
+//http://www.symfony-project.com/trac/ticket/832
 
 /*
  * This file is part of the symfony package.
@@ -282,6 +284,11 @@
     }
 
     $this->thumb = imagecreatetruecolor($this->thumbWidth, $this->thumbHeight);
+   
+    if($this->imgCreators[$this->imgData['mime']] == 'imagepng'){
+      imagealphablending($this->thumb, false);
+      imagesavealpha($this->thumb, true);
+    }
 
     if ($this->sourceWidth <= $this->maxWidth && $this->sourceHeight <= $this->maxHeight && $this->inflate == false)
     {
@@ -301,6 +308,10 @@
   public function save($thumbDest, $creatorName = null)
   {
     $creator = $creatorName !== null ? $this->imgCreators[$creatorName] : $this->imgCreators[$this->imgData['mime']];
+   
+    if($creator == 'imagepng'){
+        imagesavealpha($this->thumb, true);
+    }
     $creator($this->thumb, $thumbDest);
   }
 }

なんかすごい適当ですが、一応動いています。(png32ぐらいしかテストしてませんが)

これで困っていた方は、こちらから一応ダウンロードできます。
sfThumbnail.class.php - 6.9 KB

参考:

 | BLOG TOP |  NEXT»»