定制 aiphee/related-content 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

aiphee/related-content

Composer 安装命令:

composer require aiphee/related-content

包简介

RelatedContent plugin for CakePHP

README 文档

README

Build Status

Related content plugin for CakePHP 3

Autocomplete Related view

This is a fast made plugin made for simple maintaining of relationships.

You can define that one entry in table has similar entries in other tables.

It also has basic element with ajax which relies on Bootstrap 3.

Please, be noted that this is not a complex plugin, there may be serious bugs, you are welcome to report or repair them.

Installation

  • Run migration from plugin or create table manually.
CREATE TABLE `related_contents` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `source_table_name` varchar(255) DEFAULT NULL COMMENT 'Table which you link from',
  `target_table_name` varchar(255) DEFAULT NULL COMMENT 'Table which you link to',
  `source_table_id` int(11) NOT NULL COMMENT 'ID of table you link from',
  `target_table_id` int(11) NOT NULL COMMENT 'ID of table you link to',
  `created` datetime NOT NULL,
  PRIMARY KEY (`id`)
)
  • Copy repo content to plugins directory and add to your cakephp composer.json
    "autoload": {
        "psr-4": {
            "App\\": "src",
            "RelatedContent\\": "./plugins/RelatedContent/src",
        }
    }

or use packagist composer require aiphee/related-content

  • Add to your bootstrap.php
Plugin::load('RelatedContent', ['routes' => true]);

Usage

  • add first behavior to your table for it to be searchable (added to cache for search)
$this->addBehavior('RelatedContent.InRelatedIndex');
  • add second behavior which will have Similar
$this->addBehavior('RelatedContent.HasRelated', isset($config['options']) ? $config['options'] : []);
  • Add element to your view
<?= $this->element('RelatedContent.managingRelated', ['tables_to_get' => ['ContentNews', 'ContentPages']]) ?>

Parameter tables_to_get is optional, it will allow to search just in some tables.

  • To get related content with your entry, you have to pass parameter to find
$entity = $this->ContentPages->get($id, [
				'getRelated' => true
			]);
  • You can also use element in view, which model does not have HasRelated behavior, to populate some fields (target_table_name and target_table_id are directly in table)
<?= $this->element('RelatedContent.foreignTableSearch') ?>
<?= $this->Form->input('foreign_table_id', ['type' => 'hidden']) ?>
<?= $this->Form->input('foreign_table_name', ['type' => 'hidden']) ?>

It looks like this then:

Managing related without associations

统计信息

  • 总下载量: 12
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 2
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: Unknown
  • 更新时间: 2016-01-21

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固