2017 © Pedro PelΓ‘ez
 

wordpress-plugin components

Component manager

image

digiwise/components

Component manager

  • Thursday, September 21, 2017
  • by digiwise
  • Repository
  • 1 Watchers
  • 0 Stars
  • 69 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 1 % Grown

The README.md

Components

Installation

  1. Install via composer
  2. Activate plugin
  3. Configure grunt

Usage

A component folder should be placed in the theme-directory following this structure:, (*1)

└── components
    β”œβ”€β”€ SomeComponent
    β”‚   β”œβ”€β”€ assets
    |   |   └── some-jpgs-or-whatever.jpg
    β”‚   β”œβ”€β”€ component.php
    β”‚   β”œβ”€β”€ one-or-more-less-files.less
    β”‚   β”œβ”€β”€ one-or-more-coffee-files.coffee
    β”‚   β”œβ”€β”€ view.php
    β”‚   └── _somePartialView.view.php
    └── SomeOtherComponent
        β”œβ”€β”€ component.php
        β”œβ”€β”€ one-or-more-less-files.less
        β”œβ”€β”€ one-or-more-coffee-files.coffee
        └── view.php

Every component will have their short-code registered and vc_mapping set up., (*2)

component.php

A VCComponent have the following structure:, (*3)

namespace Component;

class Text extends \DigitalUnited\Components\VcComponent
{
    // This is a VC-mapping array
    // https://wpbakery.atlassian.net/wiki/pages/viewpage.action?pageId=524332

    protected function getComponentConfig()
    {
        return [
            'name' => __('Text', 'components'),
            'description' => __('Standard textmodul', 'components'),
            'params' => [
                [
                    "type" => "textfield",
                    "holder" => "div",
                    "class" => "",
                    "heading" => __( "Headline", "components" ),
                    "param_name" => "headline",
                    "value" => "",
                    "description" => ""
                ],
                [
                    "type" => "textarea_html",
                    "holder" => "div",
                    "class" => "",
                    "heading" => __( "Content", "components" ),
                    "param_name" => "content",
                    "value" => "",
                    "description" => ""
                ],
            ]
        ];
    }

    // If you want to you can have diferent views for deferent cases.
    // If you do you can override the following method.
    //
    // If view is not specified they will be rendered in the following
    // order: [view].view.php, view.php
    //
    // default is __DIR__.'/view.php'
    protected function getViewFileName() {
        return parent::getViewFileName();
    }

    // Before the parameters of the components is sent to rendering
    // you may modify their values here
    protected function sanetizeDataForRendering($data)
    {
        return $data;
    }

    // If you want to change what kind of element is rendered
    // You could override this method
    protected function getWrapperElementType()
    {
        return 'div';
    }

    // Add classes to the wrapping element. Should be an array
    // If a param named view exists it will be added automaticly
    protected function getExtraWrapperClasses()
    {
        return $this->param('headline') ? ['has-headline'] : ['no-headline'];
    }

    // Add attribute to the wrapper. if 'class' is specified it will be merged in
    // with classes from getExtraWrapperClasses
    protected function getWrapperAttributes()
    {
        return ['href' => 'myhref foobar', 'role' => 'button'];
    }

    // May be used to implement logic such as post-type registering or whatever
    public function main()
    {
    }
}
?>

A Standard component have the following structure:, (*4)

namespace Component;

class Sidebar extends \DigitalUnited\Components\Component
{
    // Return key value pair with the accepted parameters for this
    // view file
    protected function getDefaultParams() {
        return [
            'param1' => 'default value1',
            'param2' => '',
            'view' => 'default',
        ];
    }

    //Same as a VcComponent
    protected function getViewFileName() { ... }
    protected function sanetizeDataForRendering($data) { ... }
    public function main() { ... }
}
?>

View

In the views, all values returned from "sanetizeDataForRendering" will be accessible., (*5)

eg. ['foo' => 'bar'] will be available like, (*6)

<?= $foo // outputs 'bar' ?>

You may also use the component class, referenced as $component. eg:, (*7)

<?= $component->myFancyPublicFunction() ?>

You may use separate view files depending on the $view-param, if "view" param is specified, $view.view.php will be rendered. Default: view.php, (*8)

It is possible to split a view file into partials:, (*9)

<?= $component->renderPartial('_listItem') // renders _listItem.view.php ?>

Less and coffe, assets

Could be handled with with Grunt/gulp or whatever. See https://github.com/digitalunited/roots for example, (*10)

The Versions

21/09 2017

dev-master

9999999-dev https://github.com/landerss0n/components

Component manager

  Sources   Download

MIT

The Requires

 

plugin wordpress

21/09 2017

v1.1

1.1.0.0 https://github.com/landerss0n/components

Component manager

  Sources   Download

MIT

The Requires

 

plugin wordpress

21/09 2017

v1.0

1.0.0.0 https://github.com/landerss0n/components

Component manager

  Sources   Download

MIT

The Requires

 

plugin wordpress