htmlの要素を左右中央に固定する

ブラウザのサイズを変えてもコンテンツを左右中央に表示する方法

wrapperを左右中央に表示する場合

スタイルで

WordPressの子テーマを使って、テーマをカスタマイズ

WordPressのテーマは非常にたくさんあり、自分にあったテーマを設定することが可能だが

完全に自分の理想に合ったものにめぐり合えるとは限らない。

少しカスタマイズしたい場合、テーマファイルを変更することで対応出来るが

テーマがアップデートされたときには、その変更は消えてしまう。

子テーマという仕組みを使うと、テーマがアップデートされても、自分の変更を維持することが出来る。

やり方は、themesディレクトリに好きな名前でディレクトリを作成する。

たいていは、継承するテーマの名前を使って、カスタマイズしたものであることを分かるような名前にする。

twentytenというテーマを継承する場合

twentyten-customというディレクトリを作成する。

そしたら、twentyten内にあるstyle.cssを、twentyten-customにコピーする。

コピーしたstyle.cssファイルを開き、「Theme Name」をカスタマイズしたものであることが分かるような名前に変更する。

上記のテーマの場合

などとする。

Theme Nameの下に「Template」の行を追加。

継承するテーマのディレクトリ名をTemplateに設定する。

あとは、変更したいファイルをtwentytenディレクトリからtwentyten-customにコピーして変更を加えればよい。

WordPressのパーマリンクを設定できるようにapacheの設定を修正

Apacheの設定を適切にする事で、WordPressでパーマリンクを使えるようになる。

Apacheのモジュールで「mod_rewrite」をアクティブにする
これは、たいていの場合標準で入っている

WordPressを設置したディレクトリにFollowSymLinksを許可

WordPressを設置したディレクトリにAllowOverride FileInfoを設定

carrierwave

carrierwaveは、ファイルアップロード用のプラグインで、attachment_fuと同じようなやつ。

インストール

Gemfileに

を追加

carrierwave用のファイルをジェネレータで作成する

以上のコマンドを実行すると

app/uploaders/image_uploader.rb

ファイルが作成される

モデルの作成

出来上がったマイグレーションファイルのupに以下を追加

モデルの設定

画像の保存先をファイルシステムに設定

app/uploaders/image_uploader.rb

ファイルを開き、

を追加

アップロードしたファイルのサイズのバリエーションを設定

app/uploaders/image_uploader.rb

に以下の設定を追加

[50,50]は画像サイズ
:resize_to_fit は画像の縮小方法で、縦か横の長いほうを50pxにして、縦横比維持したまま縮小
:scaleにすれば、縦横50pxで縮小

thumbのURLを取得するには

とする

WordPressのためのPHPコンパイル

WordPressのフル機能を動かすためには

必要な機能を含んだ状態でPHPをコンパイルする必要がある

たとえば、WordPressのバージョンアップには、zlib対応が必要だ。

そこで、コンパイル時のオプションを何を入れたらいいかを、書いてみる

まずはPHPのダウンロード

解凍

コンパイルオプション指定

Passengerで動かすRailsプロジェクトで、rMagickを使う時の設定

ImageMagickのをソースからインストール
※/usr/localに入るので、rootで実行

/usr/local/libをライブラリ登録

/etc/ld.so.conf.dに
ImageMagick.confファイルを作成
ファイルの中に

/usr/local/lib

を記入
ldconfigを実行

rmagickのインストール

wordpressで管理画面にHTTPSで接続する

WordPressの管理画面はHTTPSにしたい場合

wp-config.phpファイルの適当な位置に

を追加。

あとはapacheなどの設定でwp-adminやその配下のURLにアクセスするにはHTTPSで接続しないといけないような設定をするだけ。

 

Apache-ソースからコンパイル

http://ftp.kddilabs.jp/infosystems/apache/httpd/httpd-2.2.8.tar.bz2 の取得

httpd-2.2.8.tar.bz2 の解凍

httpd-2.2.8 のコンパイル

configureオプション
–enable-mods-shared=most
モジュールを設定でON or OFF出来るように個々に切り出す設定
mostの所にallを指定すると、モジュールすべてが対象
sslはallに含まれないようなので、ssl対応にするときは”all ssl”とする必要がある

–enable-mods-shared=”all ssl”

–enable-proxy
mod_proxyを有効にする場合に指定
httpd-2.2.8 のインストール

rescue_from でコントローラごとに例外時のアクションを指定

コントローラで rescue_from を指定することで、そのコントローラで例外が発生したときなどに実行する処理を指定することが出来る。

[debian]ユーザを追加

-m オプションでhomeディレクトリ作成
-d -d /home/ディレクトリパス でディレクトリ指定

prototype.jsとJQueryを共存させるには

Ruby on Railsで開発していると、たいていの場合prototype.jsが組み込まれてしまう。

Rails3ではprototype.jsを使わない方法も取れるかもしれないが、まだまだprototype.jsは使う機会が多い。

そんな中で、JQueryのエフェクトやプラグインには魅力を感じてしまう。

そこで、prototype.jsとJQueryを共存させる事が出来れば問題は解決するはず。

JQueryには、コンフリクトを避けるためのメソッドがあるので、これを指定すれば

ほとんどの場合、エラーが出ずに共存させることが出来る。

まず、prototype.jsを読み込む

その次に、JQueryを読み込む

かならず、prototype.jsの次にJQueryを読み込む。

JQueryを読み込んだ直後に

というメソッドを実行してやることで、共存できる。

このnoConflictも、直後に無いとIEなどでエラーが出たりする。

また、JQueryの方の呼び出し方が少し変わり

JQuery(‘def#content’)

という形で、$ではなく、JQueryと指定する必要がある。

JQueryの処理が長く、JQueryと書くのが面倒な場合

JQuery用のスコープとして、以下のような書き方も可能

Rails3 で、日本語化

Rails3の日本語化をする

#config/application.rbファイルの編集

このファイルに日本語で動くことを指定する設定を追加する

#config/localesディレクトリにjp.ymlファイルを設置
jp.ymlファイルの中身は

Rails3で、productionで起動したときにpublic内のファイルがnot foundになる件

rails3のプロジェクトを作成し、起動時に

という感じでプロダクションモードで起動したときに、なぜかpublic配下のファイルがすべてNot Foundになってしまう。

これは、config/environments/production.rb ファイルの中の

config.serve_static_assetsという設定があるのだが、これをtrueに設定してやることで、表示できるようになる。

ちなみに、サーバに配置してpassengerなどでproductionモードで実行した場合は

config.serve_static_assetsの設定はfalseのままで問題ない。

rails s -e productionで実行した場合にこの現象が出るようだ。

 

日本語のメールを送信する

代々、Railsでの日本語メールはパッチを当てるか処理を書かないと、普段日本で流通しているメールの形式にはならない。

ようするに、エンコーディングが違うのである。

RailsでActiveMailを使って普通に送信すると、エンコーディングをUTF-8で送信してしまう。

ThunderBirdとかGMailとかだと、その辺を勝手に解釈して正常に表示されてしまうが

日本にはいまだにエンコードがUTF-8では正しく表示されないメーラーがあったりする。

これに対応するには、エンコーディングをUTF-8ではなく、ISO-2022-JPでメールを送る必要がある。

ということで、さっそく変換するためのパッチを入れる

http://d.hatena.ne.jp/hichiriki/20101026/1288107706

で公開されているコードを参考にmail_fix.rbファイルをconfig/initializersに入れる

#config/initializers/mail_fix.rb

メール送信用のコードを作成する

app/mailerディレクトリにbuy_list_mailer.rbファイルが作成される

このファイルを編集

メールを送信するときは

コントローラなどで

BuyListMailer.send_buy_list(buys).deliver

とすれば、メールを送信できる。