phalkaline/cakephp-feedback-plugin

此软件包最新版本(dev-master)没有提供许可证信息。

轻松地为现有的 CakePHP 应用程序添加评论和星级评分。

安装: 503

依赖项: 1

建议者: 0

安全性: 0

星级: 0

关注者: 1

分支: 3

类型:cakephp-plugin

dev-master 2022-02-10 14:51 UTC

This package is auto-updated.

Last update: 2024-09-04 04:15:56 UTC


README

关于

Feedback 是一个CakePHP 插件,可轻松为任何内容添加评论和星级评分。它旨在简单易用,既易于部署,也易于集成到现有应用程序中。它不需要对您的应用程序进行大量修改,也不需要修改任何现有的模型。

已知问题

  • 评论没有垃圾邮件过滤器(目前尚无),除了一个简单的蜜罐

安装

重要:此插件的最小要求为 CakePHP 2.2+

所需条件

  • CakePHP 2.2+
  • jQuery
  • CakePHP Goodies 插件(由 Graham Weldon a.k.a. predominant 提供)

该插件还使用(包含在插件中)

这些说明假设您使用 git 作为源代码控制,如果您不是,请手动将插件卸载到您的 Plugin 文件夹中,而不是将它们作为 git 子模块初始化。

假设您已安装了正确的 CakePHP 版本,并且您还安装了 jQuery,下一步是安装 Goodies 插件作为子模块

git submodule add git://github.com/predominant/goodies.git Plugin/Goodies
git submodule init
git submodule update

现在为 Feedback 插件执行相同的操作。如果您使用 Git,您可以在应用程序文件夹中运行此操作

git submodule add git://github.com/pHAlkaline/cakephp-feedback-plugin.git Plugin/Feedback
git submodule init
git submodule update

或者访问http://github.com/pHAlkaline/cakephp-feedback-plugin 并手动将插件下载到您的 app/Plugin/Feedback/ 文件夹。

此外,不要忘记在您的应用程序配置中激活这两个插件(请参阅 CakePHP 食谱中的安装插件)。

接下来,您需要创建插件所需的数据库表

cake schema create --plugin Feedback

这将创建数据库中的 ratingscomments 表。没有进行其他更改。

使用方法

显然,您可以使用评论和评分或仅使用其中之一,因此说明分开(尽管它们非常相似)。

评论

假设您有一个名为 Post 的模型,并希望为您的帖子添加评论。第一步是使您的模型 Commentable

class Post extends AppModel
{
	public $actsAs = array('Feedback.Commentable');
}

该行为简单地添加一个 hasMany 关联(Post hasMany Comment),这样您就可以在视图中获取评论。

下一步是在您的控制器中包含 Comments 组件。该组件为 CommentsHelper 准备了一些数据。如果缺失,则自动包含 CommentsHelper,但如果您更喜欢手动添加,也可以手动添加。

class PostsController extends AppController
{
	public $components = array('Feedback.Comments' => array('on' => array('admin_view', 'view'))),
}

该组件接受 'on' 参数,其中包含评论显示时的动作。在底层,这意味着除非需要,否则不会加载 CommentsHelper,组件也不会读取评论者 cookie 信息。

最后,在视图中显示评论

<?php echo $this->Comments->display_for($post); ?>

display_for() 方法接受两个参数。第一个参数包含父行(在这种情况下为 Post 行)和该行的所有评论(如果有)。第二个参数接受以下选项

  • 模型:插件尝试检测要使用哪个模型,但如果由于某些原因失败,您可以尝试通过提供一个模型名称来覆盖它。
  • 显示表单:在评论后自动显示评论表单,设置为false以禁用。

如果您将显示表单设置为false,可以使用辅助器的form()方法手动显示表单。

评分

评分的使用与评论几乎相同,所以如果您跳过了它并且某些功能不起作用,也请阅读该部分。

评分行为

class Post extends AppModel
{
	public $actsAs = array('Feedback.Rated');
}

评分组件

class PostsController extends AppController
{
	public $components = array('Feedback.Ratings' => array('on' => array('admin_view', 'view'))),
}	

辅助器

<?php echo $this->Ratings->display_for($post); ?>

选项的差异在于display_for()的第二个参数可以覆盖两个选项

  • 模型:如果模型检测失败,您可以在此处覆盖它,如果模型是插件的一部分,则必须包含插件名称,即Blog.Post
  • 模型类:不带插件路径的模型名称,即Post

通常,这些内容会自动检测。

最后,但同样重要的是,评分需要在您的布局(或者如果您愿意,在您的视图中)中添加一段代码,用于输出评分的实际提交脚本

<?php echo $this->fetch('script_execute'); ?>

这通常放在关闭</body>标签之前。

贡献

如果您想贡献,请克隆GitHub上的源代码,进行更改并给我发送一个pull请求。如果可能的话,始终为您的修改包含单元测试。如果您正在报告一个错误,一个失败的单元测试可能比通常情况下更快地解决该问题。如果您不知道如何修复问题或者太懒惰去修复它,创建一个工单,我们将看看接下来会发生什么。

我总是欢迎新的想法和建议。

重要:如果您发送补丁,请遵循编码风格!如果不这样做,我很大概率不会接受它。例如

// bad
function drink() {
	return false;
}

// good
function drink()
{
	return true;
}

许可

多许可下