34
CakePHP CakePHP CakePHP CakePHP でつくる地域SNS SNS SNS SNS ~全国40 40 40 40 ヶ所以上で展開する地域SNS SNS SNS SNS のシステム~ CakeMatsuri 2009.10.31 あつ

CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

  • Upload
    -

  • View
    1.836

  • Download
    2

Embed Size (px)

Citation preview

Page 1: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

CakePHPCakePHPCakePHPCakePHPでつくる地域SNSSNSSNSSNS~全国40404040ヶ所以上で展開する地域SNSSNSSNSSNSのシステム~

CakeMatsuri2009.10.31 あつ

Page 2: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

■ 名前  あつ

■ 所属  株式会社 一六社(いちろくしゃ)

■ ブログ WEBWEBWEBWEBで地域活性化

       CakePHPCakePHPCakePHPCakePHPクッキング

Page 3: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」
Page 4: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」
Page 5: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

なぜCake?Cake?Cake?Cake?

Page 6: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」
Page 7: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

地域SNSSNSSNSSNS高蔵寺

http://kozoji.chiikisns.net/http://kozoji.chiikisns.net/http://kozoji.chiikisns.net/http://kozoji.chiikisns.net/

Page 8: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

地域SNSSNSSNSSNS加子母(かしも)

http://sns.kashimo.net/http://sns.kashimo.net/http://sns.kashimo.net/http://sns.kashimo.net/

Page 9: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

地域SNSSNSSNSSNS鵠沼(くげぬま)

http://sns-kugenuma.sapio16.jp/http://sns-kugenuma.sapio16.jp/http://sns-kugenuma.sapio16.jp/http://sns-kugenuma.sapio16.jp/

Page 10: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

今日話すこと

Page 11: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

ドメインが

ばらばらな

サイトの作り方

Page 12: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

・http://kozoji.chiikisns.net/http://kozoji.chiikisns.net/http://kozoji.chiikisns.net/http://kozoji.chiikisns.net/・http://sns.kashimo.net/http://sns.kashimo.net/http://sns.kashimo.net/http://sns.kashimo.net/・http://sns-kugenuma.sapio16.jp/http://sns-kugenuma.sapio16.jp/http://sns-kugenuma.sapio16.jp/http://sns-kugenuma.sapio16.jp/

ドメインが

ばらばら

Page 13: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

WEBWEBWEBWEB+DBDBDBDB(PostgreSQLPostgreSQLPostgreSQLPostgreSQL)

Page 14: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

appappappapp

地域SNSSNSSNSSNS高蔵寺ドキュメントルート

CakeCakeCakeCake

cakecakecakecake

appappappappCakeCakeCakeCake

cakecakecakecake

地域SNSSNSSNSSNS加子母ドキュメントルート

こんな感じではなく

Page 15: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

webrootwebrootwebrootwebrootappappappapp

地域SNSSNSSNSSNS高蔵寺

地域SNSSNSSNSSNS加子母

コピー

CakeCakeCakeCake本体

Page 16: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

各地域SNSSNSSNSSNSのドキュメントルート

/index.php/index.php/index.php/index.php<?php if (!defined('ROOT')) { define('ROOT', '/path_to_cake_install'); } if (!defined('APP_DIR')) { define('APP_DIR', 'app'); }

Page 17: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

デザインも

ばらばら

Page 18: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

そもそもなんで

そんなに

ばらばら?

Page 19: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

でもレイアウト

ファイルって

編集できる?

Page 20: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

レイアウトファイル

<body> :[main_contents] :[sub_contents] :

Page 21: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

app/app_controller.phpapp/app_controller.phpapp/app_controller.phpapp/app_controller.phpfunction afterFilter(){ $this->layout = null; $this->output = file_get_contents('各SNSのレイアウト'); $this->output = str_replace('[main_contents]', $contents, $this->output);}

Page 22: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

苦労した点

Page 23: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

苦労した点?

Page 24: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

Controller:20Controller:20Controller:20Controller:20Model:22Model:22Model:22Model:22View:172View:172View:172View:172

Page 25: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

30303030日でできた

Page 26: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

OpenidComponentOpenidComponentOpenidComponentOpenidComponentQdmailComponentQdmailComponentQdmailComponentQdmailComponent

Page 27: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

日本語化ツール

Page 28: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

アソシエーション

で苦戦

Page 29: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

$this->Model->query($this->Model->query($this->Model->query($this->Model->query('select 'select 'select 'select **** from TableA'); from TableA'); from TableA'); from TableA');

Page 30: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

そんな時はjoinsjoinsjoinsjoins

Page 31: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

$joins$joins$joins$joins = array( = array( = array( = array( array( array( array( array( 'table' => 'model_c', 'alias' => 'ModelC', 'type' => 'INNER', 'table' => 'model_c', 'alias' => 'ModelC', 'type' => 'INNER', 'table' => 'model_c', 'alias' => 'ModelC', 'type' => 'INNER', 'table' => 'model_c', 'alias' => 'ModelC', 'type' => 'INNER', 'conditions' => 'ModelC.aid = ModelA.id' 'conditions' => 'ModelC.aid = ModelA.id' 'conditions' => 'ModelC.aid = ModelA.id' 'conditions' => 'ModelC.aid = ModelA.id' ), ), ), ), array( array( array( array( 'table' => 'model_b', 'alias' => 'ModelB', 'type' => 'INNER', 'table' => 'model_b', 'alias' => 'ModelB', 'type' => 'INNER', 'table' => 'model_b', 'alias' => 'ModelB', 'type' => 'INNER', 'table' => 'model_b', 'alias' => 'ModelB', 'type' => 'INNER', 'conditions' => 'ModelB.id = ModelA.bid' 'conditions' => 'ModelB.id = ModelA.bid' 'conditions' => 'ModelB.id = ModelA.bid' 'conditions' => 'ModelB.id = ModelA.bid' ) ) ) )););););$params = array($params = array($params = array($params = array( 'conditions' => array('ModelA.flg' => 0, 'ModelB.flg' => 0, 'conditions' => array('ModelA.flg' => 0, 'ModelB.flg' => 0, 'conditions' => array('ModelA.flg' => 0, 'ModelB.flg' => 0, 'conditions' => array('ModelA.flg' => 0, 'ModelB.flg' => 0, 'ModelC.cid' => $cid 'ModelC.cid' => $cid 'ModelC.cid' => $cid 'ModelC.cid' => $cid ), ), ), ), 'joins' => $joins, 'joins' => $joins, 'joins' => $joins, 'joins' => $joins,););););$data = $this->ModelA->find('all', $params);$data = $this->ModelA->find('all', $params);$data = $this->ModelA->find('all', $params);$data = $this->ModelA->find('all', $params);

Page 32: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

今後の予定

Page 33: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

Ktai LibraryKtai LibraryKtai LibraryKtai Library

Page 34: CakeMatsuri事例紹介「CakePHPでつくる地域SNS ~全国40ヶ所以上で展開する地域SNSのシステム~」

ありがとう

ございました