PHP

CakePHP2でFacebookログインする方法で少しつまずいたので共有します。

まずFacebookのPHP SDKをダウンロードしましょう。
Githubはこちら

ダウンロードしたものを cake/to/path/app/Vendor にフォルダをそのまま入れましょう。

↑こんな感じに設定しましょう。

そして、FacebookControllerを作成しましょう。(Controllerであればなんでもよい)
僕の場合はAppControllerに書くことによってどのControllerでもFacebookSDKが叩けるようにしています。

以下のコードを記入しましょう。

public $facebook;

    // Facebook APIをControllerのどこでも叩けるようにする
    function beforeFilter() {
        App::import('Vendor', 'facebook/src/facebook');
        $this->facebook = new Facebook( array(
                        'appId' => 'APPID',
                        'secret' => 'SECRET',
                        'cookie' => true 
                        ));
    }

OAuth接続するコードは以下です。

// Facebookで接続するときにOAuthを通す
    public function authFacebook() {
        $login_url = $this->facebook->getLoginUrl(array('scope' => 'email,publish_stream,user_birthday,user_education_history,user_likes'));
        $this->redirect($login_url);
    }

‘scope’の部分に求める権限を書きます。
Facebookの権限一覧はこちら

あとはFacebookログインしたい場所でさきほど定義したauthFacebook()を実行すればFacebookログイン出来るようになります。

また権限をもらいたい場合はFacebook Developerのアプリ内で、設定する必要があります。
http://developers.facebook.com/にアクセスし、アプリ内→アカウント権限で以下のように好きな権限を設定することで僕は実装しています。(正しいかわかりません。間違ってるよ!って場合は教えてほしいです。)

これでFacebookログインを実装することが出来ました。
何か質問等ありましたら以下コメント欄、またはリプライ(@DAI199)でお願いします。

Read more

CakePHP2で少し迷ったので自分メモとして共有します。

Modelでfindメソッドを使用するときに

<?php
class Post extends AppModel {
     $this->find('all', array('fields' => 'DISTINCT post_id'));
}

フィールドオプションの前に「DISTINCT」をつけるだけで重複行を無くすことが出来ます。

公式ドキュメントはこちら find()メソッド – CakePHP公式ドキュメント(英語)

Read more

ブログデザインの印象は訪れてくれたユーザーに対して大きな影響を与える。 なのでブログを作成する上で、ブログデザインにこだわるのは当然のことで、とても悩むことだと思う。

ただ、デザインというのはなかなか簡単に出来るものではない。 また、ブログとなるとただデザインが出来るだけでなく、コーディングなど別の知識が求められることになる。

しかしWordPressには多くの質の高いテーマがある。 WordPressのテーマを使用すればあっという間にデザイナーもびっくりなブログが簡単に出来るのである。

今回はたくさんあるWordPressのブログテーマ900種類以上を見てきた中でおすすめのテーマを11個紹介したいと思う。

Palladiumize

デモ | ダウンロード

monochrome

デモ | ダウンロード

Sight

デモ | ダウンロード

Respo Theme

デモ | ダウンロード

alltutorials

デモ | ダウンロード

Life Collage

デモ | ダウンロード

Floral Day Theme

デモ | ダウンロード

iNove

デモ | ダウンロード

Myweblog

デモ | ダウンロード

BUENO

デモ | ダウンロード

BlogTheme

デモ | ダウンロード

最後に

お気に入りのテーマは見つかっただろうか。

ブログに対するデザインは目立つこと、大胆なことも大切だが、あなたのブログの目的を忘れてはいけない。 つまりいかに文章が読みやすいか、それが最大の目的である。 様々なテーマを見ているとどうしても最大の目的である文章の読みやすさよりも見た目を重視しがちである。 ただそこは少しこらえてあなたのブログが一番読みやすいであろうデザインを選ぼう。

この記事をよいと思った人はぜひ友達にシェアしてください。 いいね!やツイートをしてもらえるととても嬉しいです。 何か疑問、質問等ありましたら以下コメント欄、またはリプライ(@DAI199)までお願いします。

Read more

CakePHP2でラジオボタンってどうやるの?と少し迷ったのでメモしときます!

公式ドキュメントはこちら

Formヘルパー radio() – CakePHP公式ドキュメント

Viewファイルにて

<?php
$options = array('male' => '男性', 'female' => '女性');
$attributes = array('legend' => false);
echo $this->Form->radio('gender', $options, $attributes);

上記のコードでは男性か女性かを選択するラジオボタンを出力しています。

$optionsの配列内で、キーが見出しになり、値がvalueに入ります。
$attributesにlegendをtrueにすると下の画像のようにグループ化されます。
グループ化しない場合はfalseを指定しておきましょう。

Read more

みなさんこんにちは。 今回は僕がプログラミング出来るようになるまでにしたこと(したであろうこと。正確に覚えていない)をまとめて共有しようと思います。

僕も約2年前までプログラミングを身につけたい人でした。 大学に入るまでに1年浪人し、運よく入れた大学で入ったサークルの会長がプログラミングが出来る人でした。 その方にインスパイアされ、独学でプログラミングを勉強しました。 今はある程度プログラミング出来るようになったのでそれまで読んだ本や参加したものを共有しようと思います。

僕が読んだ(であろう)本まとめ

一番最初の本

初めてプログラミングをやろうと思ったとき、何からやればいいか迷った結果、会長の
「プログラミングやるならC言語からじゃね?」
という言葉からC言語に手を付けました。生協においてあった有名そうなC言語の本を手に取りました。

新版 明解C言語 入門編
新版 明解C言語 入門編
posted with amazlet at 12.08.08
柴田望洋
ソフトバンククリエイティブ
売り上げランキング: 2933
Read more

formのテキストエリアなどで入力された改行はメタ文字である「\n」になります。
そのテキストエリアに入力された文字列を一度データベースに入れて、もう一度出力しようと思ったとき、普通にechoで出力すると改行が入っていた部分に空白が入るだけです。

「じゃぁそれを<br>になおそうよ!」と思ったのでまとめます。
PHPでやる方法とJavaScriptでやる方法をまとめます。

まずは上記のことを簡単に実装出来るPHPからいきましょう。

PHPで「\n」の部分をbrタグに

PHPではメタ文字である\n<br>に変換してくれる関数があります。
それが、nl2br()関数です。

nl2br – PHP公式ドキュメント

この関数の引数として、文字列を渡すと「\n」を「<br>」にして返してくれます。
一番簡単な方法がこの方法です。

JavaScriptで「\n」の部分を「brタグ」に

THE HAM MEDIA BLOGさんのブログに答えが書いてありました。

以下のスクリプトを使用すると「\n」を<br>に変換出来ます。(jQueryを使用しています)

$("textarea").change( function() {
  var txtVal = $(this).val();
  txtVal = txtVal.replace(/\r\n/g, "<br />");
  txtVal = txtVal.replace(/(\n|\r)/g, "<br />");
  $('#testpre').html('<p>'+ txtVal +'</p>');
});

JavaScriptで\nを認識するためには正規表現を使います。
正規表現で「\n」は「\r\n、\n、\r」でマッチするため、それを使用します。
またマッチしたものをbrに置き換えています。上記ではメソッドである「.replace」を使用していますね。

何か質問がございましたら以下コメント欄、またはリプライ(@DAI199)までお願いします。

Read more

wordpress logo

つい先日、Facebookから新しいソーシャルプラグインが登場しました!

Webページに簡単にポップアップ形式のおすすめ記事を表示出来るものです。

このブログの右下にこのFacebookの新しいソーシャルプラグインである、「Facebook Recommendation Bar」が実装してあるのでチェックしてみてください。

それでは以下、導入方法です。

Facebook Recommendation Bar導入方法

1,Facebookの公式ページ↓にアクセスします。
Facebook Recommendation Bar 公式ページ

2,以下のように必要項目を記入してコードをコピーします。

少し説明すると

◯ URL of the article ・・・ 記事のURLを記入します。wordpressの場合、あとでここを変更します。

◯ Trigger ・・・ どのタイミングでBarを展開するか指定します。この場合、記事のX%過ぎた段階でBarが展開します。

◯ Read Time ・・・ 何秒たったらBarを展開するか指定します。最低10秒なので「10」と指定しましょう。また、上記のTriggerに関係なくX秒たつと展開します。

◯ Verb to display ・・・ 右下に「いいね!」を表示するか「おすすめ」を表示するかどうか。

◯ Side ・・・ 右下に表示するか左下に表示するか選択出来る。

◯ Domain ・・・ あなたのページのドメインを入力しましょう。

全て入力したら「Get Code」をクリック。
もし今までに純正のFacebookプラグインなどを入れている場合は、下のコードだけコピーしましょう。

3,コードを少し編集する

上記の写真のように入力したコードは以下のようになっています。

<div class="fb-recommendations-bar" data-trigger="X%" data-read-time="10" data-action="recommend" data-site="tagamidaiki.com"></div>

それを以下のように変更しましょう。

<div class="fb-recommendations-bar" data-href="<?php the_permalink();?>" data-trigger="50%" data-read-time="10" data-action="recommend" data-site="tagamidaiki.com"></div>

変更点としては

1,「data-href=””」を追加
2, 「data-trigger=”50%”」に変更

data-triggerのパーセンテージは好きな値を入力してください。

4,好きな場所に挿入する
あとは自分の好きな場所に挿入しましょう。
自分のブログでは、single.phpの最後の行に挿入しました。

【注意】
現在のところ、wordpressにうまく対応出来ていないらしく、どのページでも同じ記事が表示されます。

ただRecommendation Barの効果はCTR3倍!と言われているので導入しておいて損はないでしょう。

何か質問がございましたら以下コメント欄、またはリプライ(@DAI199)でお願いします。

Read more

wordpress logo

WordPress内にのTwitterアカウント(@〜の形)に自動的にリンクを貼るカスタマイズです。

以下のコードをfunction.phpにコピペしてください。

function add_twitter_link($content) {
    $pattern= '/(?<=^|(?<=[^a-zA-Z0-9-_\.]))@([A-Za-z]+[A-Za-z0-9_]+)/i';
    $replace= '@<a href="http://www.twitter.com/$1">$1</a>';
    $content= preg_replace($pattern, $replace, $content);
    return $content;
}

add_filter( "the_content", "add_twitter_link" );

これで以下のように自動リンクがはられているはずです。(aタグを以下は書いていない)
@DAI199

もしアンカータグの中身をいじりたい場合は$replaceの部分をいじってくださいね。

質問等ございましたら以下コメント欄、またはリプライ(@DAI199)までお願いします。

Read more

CakePHPを勉強していると、様々な部分で現在のモデルで接続しているテーブルとは違うテーブルに接続したいときが出てくると思います。

CakePHPを勉強し始めたころは、チュートリアルのせいもあり、テーブルと同名のモデルからしかデータを取得出来ないと思いがちです。
僕もこの問題で3日間くらいはつまずきました。ただ慣れてしまえばとても簡単です。

例えば、postsテーブルにPostモデルでコードを書いていて、personsテーブルに接続したくなったときなどです。

そういう場合は

ClassRegistry::init
Read more

wordpress logo

WordPressを触っていて、現在ひらいているページのメニューの色だけ変えるにはどうすればいいのかなぁと思って調べてみました。
僕が言ってるのは下の画像のようなことです。

結論からいうと、何もいじることもなく、WordPressで自動設定されていることに気づきました。さすがWordPress。
wp_nav_menu()でメニューを表示しておけば、メニューのli要素に

<li class="current-menu-item">

とクラスが設定されているはずなので、あとはCSSで好きなようにいじれば完成です。
さすがWordPress。みんなに愛されているだけありますね。

何か質問等ございましたら、下のFacebookコメント欄、またはリプライ(@DAI199)で気軽にどうぞ!!

Read more