Skip to content
A delightfully tasty plugin for your CakePHP 3 project including a group-based Access Control List (ACL), a search component with an intuitive user-interface, and bootstrap 3 Bake Themes.
PHP JavaScript
Branch: master
Clone or download
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
assets Moved readme images into assets Sep 3, 2019
config format Sep 28, 2017
src
tests needed for tests Sep 12, 2019
webroot previous/default dropdown value not being set Sep 13, 2019
.codeclimate.yml
.gitignore
LICENSE.txt
README.md added column Sep 8, 2019
composer.json set supported cake versions Sep 12, 2019
phpmd.xml updated rules Mar 30, 2019
phpunit.xml moving yummy into its own project Sep 3, 2019

README.md

Yummy plugin for CakePHP

Software License Code Climate Issue Count

A delightfully tasty plugin for your CakePHP 3 project including a group-based Access Control List (ACL), a search component with an intuitive user-interface, and boostrap 3 Bake Themes. Each of these components may be used separately.

Demo & Docs

Live Demo available and fully documented in the git wiki.

Features

YummySearch

A search component designed to work with CakePHPs Paginator Component and Cake\ORM\Query. It supports searching the base model and other associations such as HasOne, BelongsTo, and HasMany through an intuitive UI in just three easy steps.

yummy search screenshot

// Step 1. Basic Controller Usage:
$query = $this->ModelName->find();

$this->loadComponent('Yummy.YummySearch',[
    'query' => $query,
    'allow' => [
        'Table.column' => ['name' => 'Column Name'],
    ]
]);

$results = $this->paginate($this->YummySearch->search($query));

// Step 2. Basic View Usage:
$this->helpers()->load('Yummy.YummySearch');
echo $this->YummySearch->basicForm();

// Step 3. Include agnostic JavaScript
<script src="/yummy/js/yummy-search.js"></script>
 

Check out the documentation for advanced usage and customization.

YummyAcl

A component that works with Auth to add group-based access controls to your admin portal.

yummy acl screenshot

// Basic Usage
$this->loadComponent('Yummy.YummyAcl',[
    'group' => $this->Auth->user('group'),
]);

// Define ACLs (you can also define ACLs in a single config file)
$this->YummyAcl->actions([
    'login' => '*', // allow all 
    'view' => ['Admin','Manager'], // allow Admin + Manager
    'edit' => ['Admin'], // allow Admin
]);

Check out the documentation for advanced usage and customization.

YummyBake

A series of bootstrap admin themes for your admin portal (demo)

bin/cake bake template <ControllerName> -t Yummy

Installation

You can install this plugin into your CakePHP application using composer.

The recommended way to install composer packages is:

composer require cnizzardini/cakephp-yummy

Load the plugin in: config/bootstrap.php

Plugin::load('Yummy', ['bootstrap' => false, 'routes' => true]);

In newer versions of cake load the plugin via your src/Application.php file.

Documentation

Checkout the Wiki.

You can also view the source code for demo project on github:

https://github.com/cnizzardini/cakephp-yummy-demo

CakePHP 3 Support

Version Supported Unit Tests Notes
3.8 Yes Passing -
3.7 Yes Passing Tested
3.6 Yes Passing -

Note, unit tests fail on 3.5 and lower. Unit tests were ran against CakePHP 4.0.0-beta3 and failed.

Unit Testing

vendor/bin/phpunit 

Developers

Fork and send a pull request. You can include Yummy in your Cake project as a local source to make developing easier use these steps:

  • Remove cnizzardini\cakephp-yummy from your composer.json

  • Add a paths repository to your composer.json

"repositories": [
    {
        "type": "path",
        "url": "/absolute/local-path-to/cakephp-yummy",
        "options": {
          "symlink": true
        }
    }
]
  • Run composer require cnizzardini/cakephp-yummy @dev

Undo these steps when you're done. Read the full composer documentation on loading from path here: https://getcomposer.org/doc/05-repositories.md#path

You can’t perform that action at this time.