2017 © Pedro Peláez
 

symfony-bundle core-bundle

Bigfoot core bundle

image

bigfoot/core-bundle

Bigfoot core bundle

  • Wednesday, May 2, 2018
  • by gmanen
  • Repository
  • 14 Watchers
  • 1 Stars
  • 13,698 Installations
  • PHP
  • 11 Dependents
  • 0 Suggesters
  • 5 Forks
  • 1 Open issues
  • 24 Versions
  • 1 % Grown

The README.md

BigfootCoreBundle

This is the core bundle for the Bigfoot administration interface. Provides core features and helpers to integrate BackOffice features through bundles., (*1)

Installation

Use composer :, (*2)

php composer.phar require bigfoot/core-bundle

Register the bundle in your app/AppKernel.php file :, (*3)

$bundles = array(
    ...
    new Bigfoot\Bundle\CoreBundle\BigfootCoreBundle(),
    ...
);

Usage

The administration interface is then available at /admin. For now, it does nothing. Add Bigfoot bundles or create your own to really get started !, (*4)

How to create a widget

Create a class extends Bigfoot\Bundle\CoreBundle\Model\AbstractWidget. Define in your new class the method 'renderContent()'. This method must return html code of your widget., (*5)

Add a record in widget_backoffice table with corresponding values : name : Fullname of your class title : Title display in widget header, this field is translatable, (*6)

Add 2 records in widget_backoffice_parameter table. One with these values : name: order value: Order number you want for your widget widget_id: Record ID of your widget in widget_backoffice table user_id: (Optionnal) If defined, this parameter will be used only for this user, (*7)

Another with these values : name: width value: number of columns use by your widget widget_id: Record ID of your widget in widget_backoffice table user_id: (Optionnal) If defined, this parameter will be used only for this user, (*8)

How to overload Symfony Router

Add these following lines to your front config:, (*9)

bigfoot_core:
    routing:
        replace_symfony_router: true
        routers_by_id:
            router.default :     300
            bigfoot_core.router: 400

BigfootFile annotation :

BigfootFile uses symfony's file upload system with its 2 properties for one file., (*10)

@Bigfoot\Bundle\CoreBundle\Annotation\Bigfoot\File : apply this annotation on the property that represents the form field. Use its filePathProperty option (required) to connect the other property., (*11)

Don't forget to create an "updated" field, and to update it before flushing with a PreFlush listener. Otherwise the file won't update if you don't change anything else in the form., (*12)

Exemple :, (*13)

``` php <?php namespace Entity;, (*14)

use Doctrine\ORM\Mapping as ORM; use Bigfoot\Bundle\CoreBundle\Annotation\Bigfoot;, (*15)

/** * @ORM\Table(name="items") * @ORM\HasLifecycleCallbacks() */ class Item { /** * @var integer * * @ORM\Column(name="id", type="integer") * @ORM\Id * @ORM\GeneratedValue(strategy="AUTO") */ private $id;, (*16)

/**
 * @var string
 * @ORM\Column(name="path", type="string", length=255, nullable=true)
 */
private $path

/**
 * @Assert\File(maxSize="6000000")
 * @Bigfoot\File(filePathProperty="path")
 */
public $file;

/**
 * @var string
 * @ORM\Column(name="updated", type="datetime", nullable=true)
 */
private $updated;

/**
 * @ORM\PreFlush()
 */
public function refreshUpdated() {
    if ($this->file) {
        $this->updated = new \DateTime("now");
    }
}

}, (*17)


### Use it in your Form : ``` php class ItemType extends AbstractType { public function buildForm(FormBuilderInterface $builder, array $options) { $builder->add('file', 'bigfoot_file', array( 'required' => false, 'label' => 'Your file', 'filePathProperty' => 'path', 'deleteRoute' => 'entity_delete_file' )); } }

If you don't define any deleteRoute, the deleteLink won't appear, (*18)

Get the file in front :

The second parameter(default false) defines whether or not the filter returns an absolute path, (*19)


{{ item|bigfoot_file('path', false) }}

Generate a csv in Crud Index page :

Add the method getCsvFields into your extended CrudController controller:, (*20)

``` php protected function getCsvFields() { return array( 'name' => array( 'label' => 'Name' ), 'region.name' => array( 'label' => 'Region', ), 'services.codeDetail' => array( 'label' => 'Services', 'multiple' => true ) ); }, (*21)


If you want to display a field of your entity, use: ``` php protected function getCsvFields() { return array( 'name' => array( 'label' => 'Name' ), ....

If you want to display a field of an external entity, use:, (*22)

``` php protected function getCsvFields() { return array( 'region.name' => array( 'label' => 'Region' ), .... );, (*23)


If you want to display a field of OneToMany relation, use: ``` php protected function getCsvFields() { return array( 'services.codeDetail' => array( 'label' => 'Services', 'multiple' => true ) .... );

Improve the speed of your 'Edit forms' by setting a form by tab:

Add the method getFormTypes into your extended CrudController controller which return an array compound of arrays of 'label' (labels of tabs) and 'form', names of the FormType services., (*24)

``` php protected function getFormTypes() { return array( array( 'label' => 'Hotel', // Label of the first tab 'form' => 'rc_hotel_0' // Service name of the HotelType ), array( 'label' => 'Rooms', // Label of the second tab 'form' => 'rc_hotel_1' // Service name of the RoomsType ) ); }, (*25)


Make sure you added an index parameter to your editAction of your controller: ``` php public function editAction(Request $request, $id, $index = null) { return $this->doEdit($request, $id, $index); }

That's it!, (*26)

The Versions

21/01 2014

1.0.1

1.0.1.0

Bigfoot core bundle

  Sources   Download

MIT

The Requires

 

by Guillaume Manen

14/01 2014

1.0.0

1.0.0.0

Bigfoot core bundle

  Sources   Download

MIT

The Requires

 

by Guillaume Manen