kacospro / bootscake
Bootstrap 4 helpers for CakePHP 3.4
Installs: 3 832
Dependents: 0
Suggesters: 0
Security: 0
Stars: 5
Watchers: 5
Forks: 4
Open Issues: 1
Type:cakephp-plugin
pkg:composer/kacospro/bootscake
Requires
- php: >=5.5.9
- cakephp/cakephp: 3.4.*
Requires (Dev)
This package is auto-updated.
Last update: 2025-11-12 08:24:20 UTC
README
Bootstrap 4 plugin for CakePHP ^3.4.
Requirements
- CakePHP ^3.4.0
- Bootstrap ^4.0.0
- jQuery 1.9.1 - 3,
- Popper.js ^1.14.0
Description
Adapter of current CakePHP's helpers. While I feel it is getting pretty close to a stable version 😄 it is possible that breaking changes ocurre
Includes
- FormHelper
- PaginatorHelper
- ModalHelper
- FlashHelper
Installing Using Composer
composer require kacospro/bootscake
Load the plugin by adding the following to your app's config/boostrap.php:
Plugin::load('BootsCake');
or using CakePHP's console:
bin/cake plugin load BootsCake
Setup
First of all you should load Bootstrap by your favorite method.
Then in your src/View/AppView.php load the helpers you need:
public function initialize() { $this->loadHelper('BootsCake.BootsCakeFlash'); $this->loadHelper('BootsCake.BootsCakeForm'); $this->loadHelper('BootsCake.BootsCakeModal'); $this->loadHelper('BootsCake.BootsCakePaginator'); }
Helper Usage
Form Helper. You only need to call BootsCakeForm on the View
<?php echo $this->BootsCakeForm->create($article); echo $this->BootsCakeForm->control('title'); echo $this->BootsCakeForm->control('body'); echo $this->BootsCakeForm->control(__('Submit'), ['type' => 'submit']); echo $this->BootsCakeForm->end(); ?>
Wait! What if I need different form sizes?
I got your back! You can pass size as an option it could be sm or lg:
<?= $this->BootsCakeForm->control( 'email', [ 'placeholder' => 'carlos@example.com', 'size' => 'sm', ] ) ?>
Also if you pass the option 'type' => 'submit' it supports a color to render the submit button
<?= $this->BootsCakeForm->control('Submit', ['type' => 'submit', 'color' => 'primary']) ?>
Flash Helper.
<?= $this->BootsCakeFlash->render() ?>
Paginator Helper.
<nav>
<ul class="pagination">
<?php
echo $this->BootsCakePaginator->first();
echo $this->BootsCakePaginator->prev();
echo $this->BootsCakePaginator->numbers();
echo $this->BootsCakePaginator->next();
echo $this->BootsCakePaginator->last();
?>
</ul>
</nav>
Modal. It only renders the skeleton of the Modal Component, I use it primary for rendering a delete modal This is the delete button code:
<?= $this->BootsCakeForm->postLink(__('Delete'), [ 'action' => 'delete', $article->id ], [ 'data-name' => $article->id, 'escape' => false, 'title' => 'Eliminar usuario' ]) ?>
Then call the Modal skeleton:
<?= $this->element('BootsCake.modal/default') ?>
or
<?= $this->BootsCakeModal->render() ?>
Alongside this javascript code:
$('#modal').on('show.bs.modal', function (event) { var button = $(event.relatedTarget); var recipient = button.data('name'); var formName = button.data('form-name'); $('#confirm').attr('onClick', 'document.' + formName + '.submit();'); var modal = $(this); modal.find('.modal-title').html( '<p class="text-danger">Eliminar <i class="fa fa-exclamation-circle" aria-hidden="true"></i></p>' ) modal.find('.modal-body').html( '<p>¿Desea eliminar a ' + recipient + '?</p>' + '<br>' + 'La información no se podrá recuperar' ); });
TODO
- Improve Docs.
- Handle configurations.
- Add options for size (sm, md, lg).
- Add options for modal rendering.
- Create Html Helpers.
- Create a way to automatize Bootstrap instalation.
License
Copyright (c) 2018, Carlos Proaño and licensed under The MIT License.