googleのリッチスニペットの表示方法

googleで検索結果にレビューの星の数とか、価格帯が表示出来るようになったらしい。


検索結果表示例


やり方はココに書いてありました。
スポンサーサイト

ajaxでレイアウト

ajax でレイアウトをする方法とかが載ってるサイト

http://www.ne.jp/asahi/hatakeyama/design/csslayout/ajaxtest/index.html

symfonyで「Class 'DomDocument' not found in ~」のエラーの対処

symfony で、「Class 'DomDocument' not found in /var/www/エラーの場所」のエラーの対処

PHP: DOM XML Functions – Manual
これが無効になっている(–disable-dom)のでphp-xmlをインストール。


centos の場合

yum install php-xml

Fedora Core の場合

yum install php-dom



※ Fedora Core は未確認。

で、apacheを再起動。

インストールでつまづいたこと

ここを見ながら、インストールを進めてつまづいたとこのメモ。

「Redmine用のテーブルを作る。」ってとこの

rake db:migrate RAILS_ENV=production

で、下記エラー。

Missing session secret. Please run 'rake config/initializers/session_store.rb' to generate one

これ出たら

rake config/initializers/session_store.rb

を打つ。

もう一度実行すると、今度は

No such file or directory - /tmp/mysql.sock

のエラーが。


mysqladmin -p version

で、

UNIX socket /var/lib/mysql/mysql.sock

がわかるので、database.ymlに下記を追加。

production:
adapter: mysql
database: redmine
host: localhost
username: redmine
password: xxxxxxxxxx
encoding: utf8
socket: /var/lib/mysql/mysql.sock


これで、テーブルは出来た!

さらに進んで

passenger-install-apache2-module

のことろでまたエラー・・・。

Checking for required software...

* GNU C++ compiler... found at /usr/bin/g++
* Ruby development headers... found
* OpenSSL support for Ruby... found
* RubyGems... found
* Rake... found at /usr/bin/rake
* Apache 2... found at /usr/sbin/httpd
* Apache 2 development headers... not found
* fastthread... found
* Apache Portable Runtime (APR) development headers... not found
* Apache Portable Runtime Utility (APU) development headers... not found

Some required software is not installed.
But don't worry, this installer will tell you how to install them.

Press Enter to continue, or Ctrl-C to abort.

--------------------------------------------

Installation instructions for required software

* To install Apache 2 development headers:
Please run yum install httpd-devel as root.

* To install Apache Portable Runtime (APR) development headers:
Please run yum install apr-devel as root.

* To install Apache Portable Runtime Utility (APU) development headers:
Please download it from http://httpd.apache.org/
(APR Utility is an integrated part of Apache.)

If the aforementioned instructions didn't solve your problem, then please take
a look at the Users Guide:

/usr/lib/ruby/gems/1.8/gems/passenger-2.2.7/doc/Users guide Apache.html


ただ、モジュールが無いだけのようなエラーなので。

yum install httpd-devel

yum install apr-devel

3番目のは、とりあえず無視してもう一度

passenger-install-apache2-module

を実行したら出来た!

また「RailsBaseURIを記述する」部分でもapacheが起動しなくてつまづいた。

/etc/httpd/conf.d とかに、redmine.conf を置いて

LoadModule passenger_module /usr/lib/ruby/gems/1.8/gems/passenger-2.2.7/ext/apache2/mod_passenger.so
PassengerRoot /usr/lib/ruby/gems/1.8/gems/passenger-2.2.7
PassengerRuby /usr/bin/ruby
RailsBaseURI /redmine

と記入したら、apacheの起動にも成功。

ドキュメントルートとかは、設定しないで
シンボリックリンクを設定すればOK!

ln -s /var/lib/redmine/public /var/www/html/redmine

zendの自作ヘルパーの作り方

Zend Frameworkで自作ヘルパーの作り方のメモ。

Fooと言うクラスを作る場合。


  1. ヘルパー名とビューヘルパーのクラス名の最後の部分は同じにする

    class My_View_Helper_Foo


  2. ビューヘルパーのクラスにはヘルパー名と同じ名前のpublicメソッドが定義されている

    class My_View_Helper_Foo
    {
    ...
    public function foo($input) {
    ...
    }
    ...
    }



  3. メソッド内ではechoとかprintを行ってはいけない。printやechoされる内容をエスケープして返す

    ビューヘルパー内で出力するのではなく、ビュースクリプトにて

    <?php echo $this->foo($this->name); ?>

    のように出力するようにします。クラスのメソッド内では、エスケープ済みの結果を返すようにするだけです。

    class My_View_Helper_Foo
    {
    ...
    public function foo($input) {
    ...
    return htmlspacealchars($output)
    }
    ...
    }



  4. クラスはヘルパーと同じ名前のファイルに作成する

    今回の場合は、Foo.phpというファイルにクラスを定義します。



以上の条件をみたしていれば、ビューヘルパーのパスのどこかにファイルを置いておくだけで自動的に読み込み、インスタンス化してくれます。ビューヘルパーのパスを追加するには、Zend_ViewクラスのsetHelperPath()を使います。

IndexController.php 内とかで

$view = new Zend_View();

$view->setHelperPath('/path/to/helpers', 'My_View_Helper');
?>

この時、Foo.php は/path/to/helpers 配下にある。

view 側では

<?php echo $this->foo($this->value); ?>


参考にしたのはココ

パーシャルの使い方

Zend Frameworkでパーシャルの使い方をメモ。


  1. /zendapps/controls/IndexController.php にパスを追加。

    class IndexController extends Zend_Controller_Action
    {
    public function init()
    {
    //パーシャルビューヘルパで使うビュースクリプトを置く場所
    $this->view
    ->addScriptPath('/zendapps/views/scripts/partial');



  2. パーシャルビューヘルパを作成。
    例:/zendapps/views/scripts/partial/test-partial.phtml

    <div>パーシャルです。</div>



  3. /zendapps/views/scripts/index.phtml でパーシャルを読み込む。

    <?php echo $this->partial('test-partial.phtml'); ?>




※パスは適宜置き換えること。

li のマーク画像がずれて困った時

li のマークを画像にする時
list-style-image: url(a.gif);
みたいにするけど、これだとズレて困る時が多い。


padding-left: 30px;
background: url(a.gif) no-repeat 10px 0.3em;
list-style: none;


背景に設定して、background-position でズレを直すと言う手法でした。
参考URLはココ


 

Zend_Db_Tableで生のSQLを見る方法

zendのZend_Db_Tableにて生のSQLを取得する方法

$selectItem = $tableItem->select(Zend_Db_Table::SELECT_WITH_FROM_PART);
$selectItem ->setIntegrityCheck(false)
->where("item_id = ? ", $item_id)
->where("status = ? ", '有効');
var_dump($selectItem->__toString());

ajaxで画像ギャラリー

ajaxで画像ギャラリーをするサンプルをいくつかメモ。

hr の背景に画像を指定

参考はココ

IE6だとうまくいかないらしいので、ハックしてやるらしいからメモ

ケータイプログラマのコミュニティ

ケータイプログラマのコミュニティ

ケータイ3キャリアに対応するためのDOCTYPE宣言についてにかんする記述や
PHPでケータイからセッションを使う場合の設定方法についてなどをまとめているサイト



URLVariables で配列をPOSTする方法

ActionScriptで通常は

var variables:URLVariables = new URLVariables();
variables.param = escapeMultiByte(param.text);


配列にする場合は

var variables:URLVariables = new URLVariables();
variables["param[key1]"] = escapeMultiByte(param1.text);
variables["param[key2]"] = escapeMultiByte(param2.text);

htaccessでerror_reporting

htaccessでerror_reportingを設定する時は、E_ALL & ~E_NOTICE とか書けない。
下記のようにする(PHP 5.2.x以前)

php_flag display_errors On
php_value error_reporting 2038

2038の計算の仕方は
E_ALL(2047) - E_NOTICE(8) = 2038
数値の定数はココ

プロフィール

U2K

Author:U2K
いろいろプログラムに関しての覚え書きをちょくちょくと書いていきます。

オススメ










オススメ

忍者AdMax

u2k on Twitter

最近の記事