ContentComments for NetCommons3
dependencies | status |
---|---|
composer.json |
コンテンツの一覧にコメント数を表示する機能と、コンテンツの詳細でコメントを投稿する機能を提供します。
利用するプラグインはコメントの使用有無(use_comment)、コメントの承認有無(use_comment_approval)を定義してください。
ContentCommentBehaviorとContentCommentHelperを使用します。
コメントと紐づくモデルにContentCommentBehavior、
コンテンツ一覧のコントローラーにContentCommentHelperを定義してください。
class VideosController extends VideosAppController {
public $uses = array(
'Videos.Video',
'Videos.VideoBlockSetting'
);
public $helpers = array(
'ContentComments.ContentComment' => array(
'viewVarsKey' => array(
'useComment' => 'videoBlockSetting.use_comment',
'useApproval' => 'videoBlockSetting.use_comment_approval'
)
)
);
public function index() {
$query = array(
'conditions' => array(
'VideoBlockSetting.block_key' => Current::read('Block.key')
)
);
$viewVars['videoBlockSetting'] = $this->VideoBlockSetting->find('first', $query);
$viewVars['videos'] = $this->Video->find('all');
$this->set($viewVars);
}
}
class Video extends VideoAppModel {
public $actsAs = array(
'ContentComments.ContentComment'
);
}
<?php
foreach ($videos as $video) {
echo $video['Video']['title'];
echo $this->ContentComment->count($video);
}
?>
ContentCommentsComponentとContentCommentHelperを使用します。
コンテンツ詳細のコントローラーにContentCommentsComponentを定義してください。
class VideosController extends VideosAppController {
public $uses = array(
'Videos.Video',
'Videos.VideoBlockSetting'
);
public $components = array(
'ContentComments.ContentComments' => array(
'viewVarsKey' => array(
'useComment' => 'videoBlockSetting.use_comment',
'useApproval' => 'videoBlockSetting.use_comment_approval'
),
'allow' => array('view')
)
)
public function view($videoKey) {
$query = array(
'conditions' => array(
'VideoBlockSetting.block_key' => Current::read('Block.key')
)
);
$viewVars['videoBlockSetting'] = $this->VideoBlockSetting->find('first', $query);
$query = array(
'conditions' => array(
'Video.key' => $videoKey,
'Video.language_id' => Current::read('Language.id')
)
);
$viewVars['video'] = $this->Video->find('first', $query);
$this->set($viewVars);
}
}
<?php
echo $video['title'];
echo $this->ContentComment->index($video['Video']['key']);
?>