dev-master
9999999-dev https://github.com/amarkal/amarkal-widgetDevelop WordPress widgets based on Amarkal UI
GPL-3.0
The Requires
by Askupa Software
wordpress form ui widget admin user interface
                         Wallogit.com
                    
                    2017 © Pedro Peláez
                    
                    
                    
                    
                
                
            
Develop WordPress widgets based on Amarkal UI
 
 Develop WordPress widgets based on Amarkal UI., (*1)
Tested up to: WordPress 4.7
Dependencies: amarkal-ui, (*2)
, (*3)
amarkal-widget lets you develop widgets for your WordPress theme or plugin, using amarkal-ui. amarkal-widget takes care of building the admin user form and saving the user input, so you can concentrate on building the widget itself!, (*4)
If you are using the command line:, (*5)
$ composer require askupa-software/amarkal-widget:dev-master
Or simply add the following to your composer.json file:, (*6)
"require": {
    "askupa-software/amarkal-widget": "dev-master"
}
And run the command, (*7)
$ composer install
This will install the package in the directory vendors/askupa-software/amarkal-widget.
Now all you need to do is include the composer autoloader., (*8)
require_once 'path/to/vendor/autoload.php';
Download amarkal-ui and amarkal-widget from github and include them in your project., (*9)
require_once 'path/to/amarkal-ui/bootstrap.php'; require_once 'path/to/amarkal-widget/bootstrap.php';
Create a class that inherits from \Amarkal\Widget\AbstractWidget. This class should implement 2 methods:, (*10)
config() - a public function that returns an array with the widget's configuration.widget( $args, $instance ) - a public function that prints the widget's front-end HTML., (*11)
| Name | Type | Default | Required | Description | 
|---|---|---|---|---|
id | 
string | '' | 
Yes | Specifies the widget's id. | 
name | 
string | '' | 
Yes | Specifies the widget's name. | 
widget_options | 
array | array() | 
No | Specifies a list of widget options, like a description. | 
control_options | 
array | array() | 
No | Specifies a list of widget control options. | 
fields | 
array | array() | 
No | Specifies a list of amarkal-ui components to be used for the widget's admin form. Each item in this array should be an array and have the original UI component arguments as specified in amarkal-ui, as well as the following: default, title, description. | 
Create a class for your widget:, (*12)
class MyCoolWidget 
extends \Amarkal\Widget\AbstractWidget
{   
    /**
     * The widget's configuration
     */
    public function config()
    {
        return array(
            'id'              => 'm-cool-widget',   // The widget's id
            'name'            => 'My Cool Widget',  // The widget's id
            'widget_options'  => array(
                'description' => 'Just a very very cool widget...'  // The widget's description
            ),
            'control_options' => array(),           // Optional
            /**
             * The 'fields' argument specifies a list of amarkal-ui components to be used for the widget's admin form.
             */
            'fields'          => array(
                array(
                    'name'          => 'title',
                    'title'         => __( 'Title:', 'slug' ),
                    'default'       => 'My Cool Widget',
                    'description'   => 'Specifies the widget\'s title',
                    'type'          => 'text'
                ),
                array(
                    'name'          => 'content',
                    'title'         => __( 'Text:', 'slug' ),
                    'default'       => 'My cool widget content',
                    'description'   => 'Specifies the widget\'s content',
                    'type'          => 'text'
                ),
            )
        );
    }
    /**
     * The front-end display of widget. User data is accesible through the $instance variable.
     */
    public function widget( $args, $instance ) 
    {
        $title = apply_filters( 'widget_title', empty( $instance['title'] ) ? '' : $instance['title'], $instance, $this->id_base );        
        echo $args['before_widget'];
        // Echo the widget's title if not empty
        if ( $title ) {
            echo $args['before_title'] . $title . $args['after_title'];
        }
        // Echo the widget's content if not empty
        if( $instance['content'] ) {
            echo '<p>'.$instance['content'].'</p>';
        }
        echo $args['after_widget'];
    }
}
Then register the widget as you would register any other widget:, (*13)
function register_widgets() {
    register_widget( 'MyCoolWidget' );
}
add_action( 'widgets_init', 'register_widgets' );
        Develop WordPress widgets based on Amarkal UI
GPL-3.0
wordpress form ui widget admin user interface