画像の中央にテキスト並べる
.site-text p{
text-align: left;
font-size: 12px;
color: #fff;
margin-bottom: 10px;
}
.site-info{
float: right;
width: 400px;
border: 1px solid #000;
text-align: right;
font-size: 12px;
}
.tel{
font-size: 30px;
color: #fff;
vertical-align:middle;
}
.site-info img{
vertical-align: middle;
}
ほれ!!!!
cakephp メッセージ機能 お久しぶり
進んでいなかったメッセージ機能すこし実装しました。
前回は、ログインしたユーザーの受信・送信フォルダに
指定のメッセージを表示させる記述を実装しました。
つまり、下記のデータを表示させる。
受信データ = 自分のIDがreceiverに入っているメッセージを表示
送信データ = 自分のIDがsenderに入っているメッセージを表示
更新したのが結構前のため、テーブル構成も載せておきます。
Message
・id
・sender (送信者のID)
・receiver (受信者のID)
・body (本文の内容)
になっています。
で!!!今回は、メッセージの送信機能を実装しました。
自分のID(ログインしている人のID)をFormでhiddenで送信してあげる処理。
public function add(){
$id = $this->Auth->user('id'); //不明。wwこれ消すとエラーでる。w
if ($this->request->is('post')){
if($this->Message->save($this->request->data)){
$this->Session->setFlash('送信が完了しました。');
return $this->redirect('index');
}
}
$this->set('userid', $this->Auth->user('id')); ←←ここが重要になります。
$this->set('message', $this->Message->findById($id));
}
赤字のところが重要になります。
あとは、公式ドキュメントの通りです。
赤字のところを説明します。
まずは、$this->Auth->user('id')でログイン情報が取得できます。
$this->setでviewに情報を渡す記述になります。
つまり、取得したログイン情報をviewに渡すという処理になります。
viewに渡すことで、viewのadd.ctpで情報を使うことができます。
add.ctpでは、hiddenでidをDBに格納しなければなりません。
<?php echo $this->Form->input('sender', array('type' => 'hidden', 'value' => $userid));?>
これで、送信機能は実装できました。
しかし、不明点が1つ。
$id = $this->Auth->user('id');
これ消すとなぜエラーでるの??
debugを2にしているから??
エラー出ても、機能自体はちゃんと動くので、問題ありませんが。
確実に不要なはずだが。。。。
次は、各ユーザーのページに行きメッセージを送信して、受信者のIDを格納して宛先を確定させるようにしたいとおもいます。
たぶん、ユーザーのページからgetでid取得して、hiddenで送信すればいけそう。
cakephp 整理します。キーワード検索
検索を前にいろいろ試したり、実装してましたが自分でまとめてたはずが、
まとまっておらず。。ww
再度まとめ。ww
キーワード検索(一部一致)
>>>index.ctp
<!--検索フォーム(一部一致)-->
<?php echo $this->Form->create('post', array('action'=>'find')); ?>
<fieldset>
<legend>検索</legend>
<?php echo $this->Form->input('title', array('label' => 'タイトル', 'class' => 'span12', 'placeholder' => 'タイトルを検索')); ?>
</fieldset>
<?php echo $this->Form->end('検索'); ?>
>>>Model.php
public $actsAs = array('Search.Searchable');
public $filterArgs = array(
// 例
'title' => array('type' => 'like'),
'comment' => array('type' => 'like'),
);
>>>Controller.php
public $components = array('Search.Prg');
public $presetVars = true;
public function find(){
$this->Post->recursive = 0;
$this->Prg->commonProcess();
$this->paginate = array(
'conditions' => $this->Post->parseCriteria($this->passedArgs),
);
$this->set('posts', $this->paginate());
}
これで実装可能。