Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Empty file modified cakephp/app/.htaccess
100644 → 100755
Empty file.
230 changes: 135 additions & 95 deletions cakephp/app/Controller/UsersController.php
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
App::import('Vendor', 'location_distance');
App::uses('AppController', 'Controller');


class UsersController extends AppController
{
public $helpers = array('Html', 'Form');
Expand All @@ -17,112 +18,120 @@ class UsersController extends AppController

public function index()
{
$this->set('user', $this->Auth->user());
$this->layout = 'indexLayout';
$this->Session->write('Visitor.id',$this->Auth->user('id'));

$userdata = $this->User->find('all',
array(
'conditions' => array('user.parentid' => 1)
)
);

$otherdata = $this->User->find('all',
array(
'conditions' => array(
'NOT' => array(
'user.parentid' => ''
),
'NOT' => array(
'user.parentid' => $this->Session->read('Visitor.id')
if(0===$this->Session->read('isParent')){
$this->redirect('friend');
}else{
$this->set('user', $this->Auth->user());
$this->layout = 'indexLayout';
$this->Session->write('Visitor.id',$this->Auth->user('id'));

$userdata = $this->User->find('all',
array(
'conditions' => array('user.parentid' => $this->Session->read('Visitor.id'))
)
)
)
);
);

/* ◯◯くんの近くには誰くんと?がいます を出力*/
//userdataから1人取り出し、友達の情報をリストアップ
$frienddata = array();
$tmpdata = array();
foreach ($userdata as $dat) {
foreach ($dat['friend'] as $tmp) {
$tmpdata[] = $this->User->find('all',
array(
'conditions' => array('user.id' => $tmp['friendsid'])
$otherdata = $this->User->find('all',
array(
'conditions' => array(
'NOT' => array(
'user.parentid' => ''
),
'NOT' => array(
'user.parentid' => $this->Session->read('Visitor.id')
)
)
)
);

/* ◯◯くんの近くには誰くんと?がいます を出力*/
//userdataから1人取り出し、友達の情報をリストアップ
$frienddata = array();
$tmpdata = array();
foreach ($userdata as $dat) {
foreach ($dat['friend'] as $tmp) {
$tmpdata[] = $this->User->find('all',
array(
'conditions' => array('user.id' => $tmp['friendsid'])
)
);
}
$frienddata[]=$tmpdata;
$tmpdata= array();
}
$frienddata[]=$tmpdata;
$tmpdata= array();
}
$resulttmp=array();
$resulttmp=array();

//子供とその友達の距離を測り、近傍に居るか否か見分ける
for($i=0;$i<count($userdata);$i++) {
$userdata[$i]['message']='';

foreach ($frienddata[$i] as $friend) {
$hoge = location_distance(
$userdata[$i]['position']['latitude'],
$userdata[$i]['position']['longitude'],
$friend[0]['position']['latitude'],
$friend[0]['position']['longitude']);

if ($hoge["distance"] < 20.0) {
$resulttmp[].= (
$friend[0]['User']['username']
. "が近くにいます"
);
}
for($i=0;$i<count($userdata);$i++) {
$userdata[$i]['message']='';

foreach ($frienddata[$i] as $friend) {
$hoge = location_distance(
$userdata[$i]['position']['latitude'],
$userdata[$i]['position']['longitude'],
$friend[0]['position']['latitude'],
$friend[0]['position']['longitude']);

if ($hoge["distance"] < 20.0) {
$resulttmp[].= (
$friend[0]['User']['username']
. "が近くにいます"
);
}

}
if(count($resulttmp)==0){
$userdata[$i]['message'][] = ("ぼっちです");
}else{
$userdata[$i]['message'] = $resulttmp;
}
$resulttmp=array();
}
if(count($resulttmp)==0){
$userdata[$i]['message'][] = ("ぼっちです");
}else{
$userdata[$i]['message'] = $resulttmp;
}
$resulttmp=array();
$this->set("otherdata", $otherdata);
$this->set("userdata", $userdata);
}
$this->set("otherdata", $otherdata);
$this->set("userdata", $userdata);
}

//どのアクションが呼ばれてもはじめに実行される関数
public function beforeFilter()
{
parent::beforeFilter();
$this->response->disableCache();
//未ログインでアクセスできるアクションを指定
//これ以外のアクションへのアクセスはloginにリダイレクトされる規約になっている
$this->Auth->allow('register', 'login');

if(null===$this->Session->check('Visitor.id'))$this->Auth->allow('register', 'login');
else{
if(isset($isParent))$this->Auth->allow('register', 'login' , 'friend');
if(!isset($isParent))$this->Auth->allow('register', 'login' , 'parent' , 'index');
}
}

public function friend(){

public function friend(){
if(0!==$this->Session->read('isParent')){
$this->redirect('index');
}else{
//友達登録ボタンを押していたら、データベースを更新する
if($this->request->is('post')){
$this->loadModel('Friend');
if(isset($this->request->data['register'])) {
$this->Friend->save($this->request->data);
}
if(isset($this->request->data['delete'])) {
if($this->request->is('post')){
$this->loadModel('Friend');
if(isset($this->request->data['register'])) {
$this->Friend->save($this->request->data);
}
if(isset($this->request->data['delete'])) {
$delete_id = $this->Friend->find('first',
array(
'fields' => array('friend.id'),
'conditions' => array('friend.user_id' => $this->request->data['Friend']['user_id'], 'friend.friendsid' => $this->request->data['Friend']['friendsid'])
)
);
)
);
$this->Friend->delete($delete_id['Friend']['id']);
}
}

//ログインユーザの情報を取得する
$user = $this->User->find('first',
array(
'conditions' => array('user.id' => $this->Auth->user('id'))
)
);
'conditions' => array('user.id' => $this->Auth->user('id'))
)
);

//ログインユーザの友達の情報を取得する
$friends = array();
Expand All @@ -131,47 +140,78 @@ public function friend(){
$this->User->find('all',
array(
'conditions' => array('user.id' => $friend['friendsid'])
)
)
)
);
);
}

$this->set('friends', $friends);
$this->set('user', $this->Auth->user());
$this->layout = 'indexLayout';
}
}


public function parent() {
public function parent() {
if(0===$this->Session->read('isParent')){
$this->redirect('friend');
}else{
$this->set('user', $this->Auth->user());
$this->layout = 'indexLayout';
}

$this->Session->write('Visitor.id',$this->Auth->user('id'));

$userdata = $this->User->find('all',
array(
'conditions' => array('user.parentid' => $this->Session->read('Visitor.id'))
)
);
$this->set("userdata", $userdata);
//var_dump($this->request->data);
if($this->request->is('post')){
if(isset($this->request->data['User']))$this->User->save($this->request->data);
if(isset($this->request->data['delete']))$this->User->delete($this->request->data['delete']['deleteid']);
$this->redirect('parent');
}
}
}

public function register(){
public function register(){
//$this->requestにPOSTされたデータが入っている
//POSTメソッドかつユーザ追加が成功したら
if($this->request->is('post') && $this->User->save($this->request->data)){
if($this->request->is('post') && $this->User->save($this->request->data)){
//ログイン
//$this->request->dataの値を使用してログインする規約になっている
$this->Auth->login();
$this->redirect('index');
}
$this->Auth->login();
$this->redirect('index');
}
}


public function login(){
if($this->request->is('post')) {
if($this->Auth->login())
return $this->redirect('index');
else
$this->Session->setFlash('ログイン失敗');
}
public function login(){
if($this->request->is('post')) {
if($this->Auth->login()){
$this->Session->write('Visitor.id',$this->Auth->user('id'));
$isParent = $this->User->find('count',
array(
'conditions' => array(
array(
'user.id' => $this->Auth->user('id')
),
array(
'user.parentid' => ''
)
)
)
);
$this->Session->write('isParent',$isParent);
if($isParent!=NULL)return $this->redirect('index');
else return $this->redirect('friend');
}else $this->Session->setFlash('ログイン失敗');
}
}

public function logout(){
$this->Auth->logout();
$this->redirect('login');
}
public function logout(){
$this->Auth->logout();
$this->redirect('login');
}
}
Empty file removed cakephp/app/Lib/empty
Empty file.
37 changes: 37 additions & 0 deletions cakephp/app/Plugin/BoostCake/.travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
language: php

php:
- 5.3
- 5.4
- 5.5

env:
global:
- PLUGIN_NAME=BoostCake

matrix:
- DB=mysql CAKE_VERSION=2.4
- DB=mysql CAKE_VERSION=2.5

matrix:
include:
- php: 5.5
env:
- PHPCS=1 PHPCS_IGNORE="*/Test/*"

install:
- sh -c "if [ -n \"$CAKE_VERSION\" ]; then composer global require 'phpunit/phpunit=3.7.*'; fi"

before_script:
- git clone https://github.com/FriendsOfCake/travis.git --depth 1 ../travis
- ../travis/before_script.sh
- sh -c "if [ -n \"$CAKE_VERSION\" ]; then ln -s ~/.composer/vendor/phpunit/phpunit/PHPUnit ../cakephp/vendors/PHPUnit; fi"

script:
- ../travis/script.sh

after_success:
- ../travis/after_success.sh

notifications:
email: false
Loading