2017 © Pedro Peláez
 

library multi-step-form

CakePHP MultiStepForm

image

junkins/multi-step-form

CakePHP MultiStepForm

  • Wednesday, June 6, 2018
  • by Junkins
  • Repository
  • 1 Watchers
  • 4 Stars
  • 4,509 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 1 Open issues
  • 35 Versions
  • 32 % Grown

The README.md

MultiStepForm

Introduction

MultiStepForm is Plugin to help your multi step form., (*1)

Requirements

  • CakePHP >= 3.0

Setup

AppFormHelper, (*2)

loadHelper('Form', [
            'className' => 'AppForm',
        ]);
    }
}

```

## Examples ##

1. Simple Form

```
loadComponent('MultiStepForm.MultiStepForm', [
            'whitelist' => [
                'index',
                'view',
                'add',
                'edit',
                'delete'
            ]
        ]);
    }

    /**
    * add
    */
    public function add()
    {
        $this->MultiStepForm->dispatch();
    }

    /**
    * add_input
    */
    public function add_input()
    {
        $topic = $this->MultiStepForm->getEntity();
        $this->set(compact('topic'));
        $this->render('add_input');
    }

    /**
    * add_confirm
    */
    public function add_confirm()
    {
        $topic = $this->MultiStepForm->getEntity();
        $this->set(compact('topic'));
        $this->render('add_confirm');
    }

    /**
    * add_finish
    */
    public function add_finish()
    {
        $data = $this->MultiStepForm->getData();
        $topic = $this->Topics->newEntity($data);
        if($this->Topics->save($topic)){
            $this->Flash->success('Success!');
        } else {
            $this->Flash->error('Error!');
        }

        $this->redirect(['action' => 'index']);
    }
}
```

```
// Submit Button
// 次の画面に進むためのボタン表示
// 第一引数は設置する画面名
// 第二引数はその他の設定
// nextlabel:ボタン名
// nextClass:ボタンのクラス
= $this->Form->next(); ?>
= $this->Form->next('add_input'); ?>
= $this->Form->next('add_input', [
    'nextlabel' => '次へ'
]); ?>
OR
// 次の画面もしくは、前の画面に進むためのボタン表示
// 第一引数は設置する画面名
// 第二引数はその他の設定
// nextlabel:ボタン名
// backlabel:ボタン名
// nextClass:ボタンのクラス
// backClass:ボタンのクラス
= $this->Form->nextOrBack(); ?>
= $this->Form->nextOrBack('add_input'); ?>
= $this->Form->nextOrBack('add_input', [
    'nextlabel' => '次へ',
    'backlabel' => '戻る',
]); ?>
  1. Custom Form

Controller, (*3)

<?php
namespace App\Controller;

use MultiStepForm\Controller\Traits\MultiStepFormTrait;

/**
* TopicsController
*/
class TopicsController extends Controller
{
    use MultiStepFormTrait;

    /**
    * initialize
    */
    public function initialize()
    {
        parent::initialize();
        // 通常のアクションとしてアクセスが必要な場合は whitelist に設定する
        $this->loadComponent('MultiStepForm.MultiStepForm', [
            'whitelist' => [
                'index',
                'view',
                'add',
                'edit',
                'delete'
            ]
        ]);
    }

    /**
    * edit
    */
    public function edit($id = null)
    {

        // $modelClass以外のTableを使用する場合
        $this->MultiStepForm->setTable('Projects');

        // デフォルトの設定を全て上書きする場合
        $this->MultiStepForm->setConfigMultiStep([
            'edit_first_input' => [
                'id' => $id,
                'back' => false,
                'next' => 'edit_second_input',
                'validate' => 'default',
                'multiple' => false,
                'associated' => []
            ],
            'edit_second_input' => [
                'id' => $id,
                'back' => 'edit_first_input',
                'next' => 'edit_third_input',
                'validate' => 'default',
                'multiple' => false,
                'associated' => []
            ],
            'edit_third_input' => [
                'id' => $id,
                'back' => 'edit_second_input',
                'next' => false,
                'validate' => 'default',
                'multiple' => false,
                'associated' => []
            ],
        ]);

        // デフォルトの設定を一部上書きする場合
        $this->MultiStepForm->mergeConfigMultiStep([
            'edit_input' => [
                'id' => $id
            ]
        ]);

        // Hash パス構文で設定を上書きする場合
        $this->MultiStepForm->insertConfigMultiStep('edit_second_input.validate', false);
        $this->MultiStepForm->insertConfigMultiStep('{*}.validate', false);


        $this->MultiStepForm->dispatch();
    }
  1. Model Less Form
<?php
namespace App\Controller;

use App\Controller\AppController;
use App\Form\ContactsForm;
use Cake\Event\Event;
use MultiStepForm\Controller\Traits\ModelLessMultiStepFormTrait;

/**
 * ContactsController
 */
class ContactsController extends AppController
{
    use ModelLessMultiStepFormTrait;

    /**
     * initialize
     *
     * @return void
     */
    public function initialize()
    {
        parent::initialize();
        // 通常のアクションとしてアクセスが必要な場合は whitelist に設定する
        $this->loadComponent('MultiStepForm.ModelLessMultiStepForm', [
            'whitelist' => [
                'index',
                'thanks'
            ]
        ]);
    }

    /**
     * index
     *
     * @return void
     */
    public function index()
    {
        $form = new ContactsForm();
        $this->ModelLessMultiStepForm->setForm($form);
        $this->ModelLessMultiStepForm->dispatch();
    }

    /**
     * index_input
     *
     * @return void
     */
    public function index_input()
    {
        $form = $this->ModelLessMultiStepForm->getForm();
        $this->set(compact('form'));
        $this->render('index');
    }

    /**
     * index_confirm
     *
     * @return void
     */
    public function index_confirm()
    {
        $form = $this->ModelLessMultiStepForm->getForm();
        $data = $this->ModelLessMultiStepForm->getData();
        $this->set(compact('form', 'data'));
        $this->render('index_confirm');
    }

    /**
     * index_finish
     *
     * @return void
     */
    public function index_finish()
    {
        $data = $this->ModelLessMultiStepForm->getData();
        $form = $this->ModelLessMultiStepForm->getForm();
        if ($form->execute($data)) {
            $this->redirect(['action' => 'thanks']);
        } else {
            $this->redirect(['action' => 'index']);
        }
    }

    /**
     * thanks
     *
     * @return void
     */
    public function thanks()
    {
    }
}

The Versions

06/06 2018

dev-master

9999999-dev

CakePHP MultiStepForm

  Sources   Download

The Requires

 

The Development Requires

06/06 2018

3.5.5

3.5.5.0

CakePHP MultiStepForm

  Sources   Download

The Requires

 

The Development Requires

14/05 2018

3.5.4

3.5.4.0

CakePHP MultiStepForm

  Sources   Download

The Requires

 

The Development Requires

30/08 2017

3.5.3

3.5.3.0

CakePHP MultiStepForm

  Sources   Download

The Requires

 

The Development Requires

30/08 2017

3.5.2

3.5.2.0

CakePHP MultiStepForm

  Sources   Download

The Requires

 

The Development Requires

24/08 2017

3.5.1

3.5.1.0

CakePHP MultiStepForm

  Sources   Download

09/06 2017

3.3.16

3.3.16.0

CakePHP MultiStepForm

  Sources   Download

08/06 2017

3.3.15

3.3.15.0

CakePHP MultiStepForm

  Sources   Download

07/06 2017

3.3.14

3.3.14.0

CakePHP MultiStepForm

  Sources   Download

30/05 2017

3.3.13

3.3.13.0

CakePHP MultiStepForm

  Sources   Download

23/05 2017

3.3.12

3.3.12.0

CakePHP MultiStepForm

  Sources   Download

11/05 2017

3.3.11

3.3.11.0

CakePHP MultiStepForm

  Sources   Download

08/05 2017

3.3.10

3.3.10.0

CakePHP MultiStepForm

  Sources   Download

02/05 2017

3.3.8

3.3.8.0

CakePHP MultiStepForm

  Sources   Download

02/05 2017

3.3.9

3.3.9.0

CakePHP MultiStepForm

  Sources   Download

01/05 2017

3.3.7

3.3.7.0

CakePHP MultiStepForm

  Sources   Download

09/03 2017

3.3.6

3.3.6.0

CakePHP MultiStepForm

  Sources   Download

02/03 2017

3.3.5

3.3.5.0

CakePHP MultiStepForm

  Sources   Download

01/02 2017

3.3.4

3.3.4.0

CakePHP MultiStepForm

  Sources   Download

18/01 2017

3.3.3

3.3.3.0

CakePHP MultiStepForm

  Sources   Download

05/01 2017

dev-CakePHP3.2

dev-CakePHP3.2

CakePHP MultiStepForm

  Sources   Download

05/01 2017

3.2.1

3.2.1.0

CakePHP MultiStepForm

  Sources   Download

05/01 2017

3.3.2

3.3.2.0

CakePHP MultiStepForm

  Sources   Download

05/01 2017

dev-fix_type_dispatch

dev-fix_type_dispatch

CakePHP MultiStepForm

  Sources   Download

05/01 2017

3.3.1

3.3.1.0

CakePHP MultiStepForm

  Sources   Download

06/12 2016

0.1.1

0.1.1.0

CakePHP MultiStepForm

  Sources   Download

29/11 2016

0.1.0

0.1.0.0

CakePHP MultiStepForm

  Sources   Download

28/11 2016

0.0.9

0.0.9.0

CakePHP MultiStepForm

  Sources   Download

23/09 2016

0.0.8

0.0.8.0

CakePHP MultiStepForm

  Sources   Download

23/09 2016

0.0.7

0.0.7.0

CakePHP MultiStepForm

  Sources   Download

23/09 2016

0.0.5

0.0.5.0

CakePHP MultiStepForm

  Sources   Download

23/09 2016

0.0.6

0.0.6.0

CakePHP MultiStepForm

  Sources   Download

16/09 2016

0.0.4

0.0.4.0

CakePHP MultiStepForm

  Sources   Download

02/08 2016

0.0.3

0.0.3.0

CakePHP MultiStepForm

  Sources   Download

02/08 2016

0.0.1

0.0.1.0

CakePHP MultiStepForm

  Sources   Download