ラベル PHP の投稿を表示しています。 すべての投稿を表示
ラベル PHP の投稿を表示しています。 すべての投稿を表示

2012/04/17

postfixでqdmail.phpを使う場合

エラーを吐くので1186行目をコメントアウトする

//If(false !== @system($sendmail_path.' -d0.1 < /dev/null > /dev/null',$ret)){
//  if(is_array($ret)){
//    $ret = reset($ret);
//  }
//  $code = (int) substr($ret,0,3);
//  if( 100 === $code || 111 === $code){
//    $this->is_qmail = true;
//  }
//}

http://hal456.net/qdmail/support#c303

caekephpのauthコンポーネントで削除フラグ対応

下記のようにuserScopeで定義してあげる

$this->Auth->userScope = array('Users.delete' => NULL);

2011/09/29

CakePHPでPaginatorの指定

コントローラーでは下記の通り
$this->paginate=array(
    'conditions' => array(検索条件),
    'fields' => array(取得するカラム),
    'page' => int(最初に表示するページ),
    'limit' => int(デフォルトは20),
    'sort' => string(ソートkey),
    'direction' => string(asc or desc)
    'recursive' => findAllに与える
 );
ビューではこんな感じ
  ' ',
 'after'=>' ',
 'modulus'=>3,
 'first'=>'',
 'last'=>'',
 'separator'=>'|',
 'class'=>'paging_inner'
 );
 echo $paginator->first('最初',array('after'=>' ','class'=>'paging_inner' )).
 $paginator->prev('<< '.__('前', true), array('class'=>'paging_inner' ), '最初',
 array('class'=>'disabled' )).
 $paginator->numbers($options).
 $paginator->next(__('次', true).' >>', array('class'=>'paging_inner' ), '最後',
 array('class'=>'disabled' )).
 $paginator->last('最後',array('before'=>' ','class'=>'paging_inner' ) );
 ?>

2011/07/29

CakePHPで個別にタイトルを変える

CakePHP1.3の方法は下記の通り

ビューでタイトルを入れる場所をつくる。
<?php echo $title_for_layout; ?>

コントローラーでタイトルを入れる。
$this->set('title_for_layout','hogehoge');

CakePHPのデバッグ

見たい変数をvar_dumpに入れればデバッグ表示されます。
var_dump($dump);

ZendFrameworkのインストール

単純にインストールしてパスを通すだけで完了。

ダウンロードはこちらから
http://framework.zend.com/download/latest

php.iniの編集で
vi /etc/php.ini

/usr/local/lib/以下に作成した場合
include_path = “.:/usr/local/lib/php/ZendFramework/library”

apacheの再起動
/etc/init.d/httpd restart

参考:http://codezine.jp/article/detail/1824?p=2

2011/07/28

Facebookのいいねの時に表示されるサムネイル画像


<meta property="og:image" content="IMAGE_URL"/>


って感じでメタタグに指定してあげればOK。ただしIMAGE_URLはフルパスで入れること。
入力項目は下記のツールで確認できる。

http://developers.facebook.com/tools/lint/

同様にog:title、og:type、og:urlなども指定できる。

RailsやCakePHPなどで動的に生成するにはレイアウトテンプレートに下記のように書いて
指定したいコントローラーなどでURLを追加すればOK。

<?php

if (!empty($imgurl)) {

echo '<meta property="og:image" content="http://hoge.com/img/'.$imgurl.'" />';

} else {

echo '<meta property="og:image" content="http://hoge.com/img/og_logo.jpg" />';

};

?>

2011/02/15

Google Analytics API

Google AnalyticsはAPIを公開しているのでアクセスログを定期的に出力したりできます。
こんな感じ。

<?php
require_once 'googleanalytics.class.php';
try {
    // アカウント情報を設定
    $ga = new GoogleAnalytics('ID','PASS');

    // プロファイルIDを指定
    $ga->setProfile('ga:プロファイルID');

    // 期間を指定
    $yesterday = date("Y-m-d",strtotime("-1 day"));
    $lastweek = date("Y-m-d",strtotime("-1 week"));
    $ga->setDateRange($lastweek,$yesterday);

    // 日付別の総ページビューを取得
    $report = $ga->getReport(
        array(
            'dimensions'=>urlencode('ga:date'),
        'metrics'=>urlencode('ga:pageviews,ga:visits'),
            'sort'=>'ga:date'
        )
    );

    // 結果を出力
    $result = print_r($report, TRUE);

   // 件名
   $subject = 'GoogleAnalytics{$yesterday}';
   // 本文
   $mailbody = '{$result}';
   // メール送信
   mb_send_mail("宛先",$subject,$mailbody);

// 例外処理
} catch (Exception $e) {
    print 'Error: ' . $e->getMessage();
}

?>
googleanalytics.class.phpと参考情報は下記から
http://www.askaboutphp.com/63/google-analytics-api-class-for-php.html

2010/06/26

CakePHPの初期設定

CakePHPは便利なフレームワークです。初期設定のデータベース設定の時に凡ミスをしていたのでメモしておきます。データベースの設定はデータベースを作成後、app/config/database.phpのファイルを設定すれば良いです。これをちゃんとやっているのにうまく接続できない場合はPHPがデータベース(MySQLなど)のdriverを持っているか確認しましょう。持ってなかった場合はインストール後、Apacheを再起動してください。

2010/06/22

MySQLのインストールと自動起動

MySQLのインストールと自動起動は基本ですが念のため。
yum -y install mysql-server
/etc/init.d/mysqld start
chkconfig --add mysqld
chkconfig mysqld on
chkconfig --list mysqld //確認

ついでにデータベースの作成と削除
CREATE database データベース名; //作成 
DROP databae データベース名;  //削除

テーブルの作成(CakePHPのチュートリアルから)
CREATE TABLE posts (
id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(50),
body TEXT,
created DATETIME DEFAULT NULL,
modified DATETIME DEFAULT NULL
);
テストデータ投入(CakePHPのチュートリアルから)
INSERT INTO posts (title,body,created)
VALUES ('タイトル', 'これは、記事の本文です。', NOW());
INSERT INTO posts (title,body,created)
VALUES ('またタイトル', 'そこに本文が続きます。', NOW());
INSERT INTO posts (title,body,created)
VALUES ('タイトルの逆襲', 'こりゃ本当に面白そう!うそ。', NOW());

2010/06/15

Wordpressのインストールの仕方

WordpressはCMSとして大変便利でサイト制作によく使われます。インストールの仕方も極めて簡単です。
  1. zip ファイルを空のディレクトリに展開します。
  2. WordPad などのテキストエディタで wp-config-sample.php を開き、データベースの接続情報 (データベース名、ユーザー名、パスワード、およびホスト名) を記入します。
  3. このファイルの名前を wp-config.php として保存します。
  4. すべてのファイルをアップロードします。
  5. /wp-admin/install.php をブラウザで開きます。これによりあなたのブログに必要なデータベースのテーブルが設定されるはずです。もしエラーが発生するようなら wp-config.php ファイルをもう一度確認し、再度このインストーラを試してください。それでも失敗する場合は、できるだけ多くのデータを集めてサポートフォーラムに行ってください。
  6. パスワードが自動的に生成され表示されます。これをメモしてください。
  7. その後、このインストールスクリプトはあなたをログインページに案内するはずです。ユーザ名 admin と、インストール中に生成されてメモしたパスワードを使ってログインしてください。このパスワードはログイン後、管理画面の「ユーザー」をクリックして変 更することができます。
公式サイトより

事前準備としてデータベースを用意しておく必要があります。データベースの作成の仕方は次の通り。


mysql> CREATE DATABASE databasename;
Query OK, 1 row affected (0.00 sec)
 
mysql> GRANT ALL PRIVILEGES ON databasename.* TO "wordpressusername"@"hostname"
    -> IDENTIFIED BY "password";
Query OK, 0 rows affected (0.00 sec)
  
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql> EXIT
Bye

簡単ですね。なれれば10分くらいでインストールできます。