2017 © Pedro Peláez
 

yii2-extension yii2-bootstrap-year-calendar

Yii2 widget for bootstrap-year-calendar plugin

image

tecnocen/yii2-bootstrap-year-calendar

Yii2 widget for bootstrap-year-calendar plugin

  • Thursday, April 27, 2017
  • by Faryshta
  • Repository
  • 4 Watchers
  • 9 Stars
  • 2,374 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 3 Forks
  • 2 Open issues
  • 3 Versions
  • 33 % Grown

The README.md

Tecnocen.com Yii2 Bootstrap Year Calendar

Latest Stable Version Total Downloads Latest Unstable Version License, (*1)

Widget that implements the bootstrap-year-calendar plugin for Yii2, (*2)

Installation

The preferred way to install this extension is through composer., (*3)

Either run, (*4)

composer require --prefer-dist "tecnocen/yii2-bootstrap-year-calendar:*"

or add, (*5)

"tecnocen/yii2-bootstrap-year-calendar": "*"

to the require section of your composer.json file., (*6)

Usage

Calendar

This is the basic widget which encapsulates the plugin into a yii\bootstrap\Widget implementation., (*7)

use tecnocen\yearcalendar\widgets\Calendar;

echo Calendar::widget([
    // 'language' => 'es',
    'options' => [
        // HTML attributes for the container.
        // the `tag` option is specially handled as the HTML tag name
    ],
    'clientOptions' => [
        // JS Options to be passed to the `calendar()` plugin.
        // see http://bootstrap-year-calendar.com/#Documentation/Options
    ],
    'clientEvents' => [
        // JS Events for the `calendar()` plugin.
        // see http://bootstrap-year-calendar.com/#Documentation/Events
    ]
]);

ActiveCalendar

The ActiveCalendar widget uses a [dataProvider] (http://www.yiiframework.com/doc-2.0/yii-data-dataproviderinterface.html) to load the dataSource property passed to the calendar plugin., (*8)

The models returned by the dataProvider must implement the tecnocen\yearcalendar\data\DataItem interface., (*9)

DataItem interface.

namespace api\models;

use tecnocen\yearcalendar\data\DataItem;
use tecnocen\yearcalendar\data\JsExpressionHelper;
use yii\db\ActiveRecord;

class Conference extends ActiveRecord implements DataItem
{
    public function getName()
    {
        return $this->name;
    }

    public function getStartDate()
    {
        return JsExpressionHelper::parse($this->start_date);
    }

    public function getEndDate()
    {
        return JsExpressionHelper::parse($this->end_date);
    }

    // rest of the active record code.
}

JsExpressionHelper

The DataItem::getStartDate() and DataItem::getEndDate() methods must return an instance of yii\web\JsExpression containing a javascript Date object with only the year, month and day. Its adviced to create the JS object as follows, (*10)

new Date(year, month, day);

The JsExpressionHelper simplifies this task by providing an static method JsExpressionHelper::parse() which can be used in the following manners., (*11)


// $dateTime is an object of the class DateTime // see http://php.net/manual/en/class.datetime.php JsExpressionHelper::parse($dateTime); // $timestamp is an integer which will be used as // unix time tamp JsExpressionHelper::parse($timestamp); // $date is an string here it can accept a second // parameter $format which by default is 'Y-m-d' // see http://php.net/manual/es/datetime.createfromformat.php JsExpressionHelper::parse($date, $format);

All of them will return an object as expected for the calendar js plugin., (*12)

The Widget

Once we have the model we can create the dataProvider and pass is to the ActiveCalendar widget., (*13)

use api\models\Conference;
use tecnocen\yearcalendar\widgets\ActiveCalendar;
use yii\data\ActiveDataProvider;

echo ActiveCalendar::widget([
    // 'language' => 'es',
    'dataProvider' => new ActiveDataProvider([
        'query' => Conference::find()->andWhere(['active' => 1])
    ]),
    'options' => [
        // HTML attributes for the container.
        // the `tag` option is specially handled as the HTML tag name
    ],
    'clientOptions' => [
        // JS Options to be passed to the `calendar()` plugin.
        // The `dataSource` property will be overwritten by the dataProvider.
        // see http://bootstrap-year-calendar.com/#Documentation/Options
    ],
    'clientEvents' => [
        // JS Events for the `calendar()` plugin.
        // see http://bootstrap-year-calendar.com/#Documentation/Events
    ]
])

Language

The bootstrap-year-calendar plugin provides the [following languages] (https://github.com/Paul-DS/bootstrap-year-calendar/tree/master/js/languages), Calendar and ActiveCalendar support automatic translations using the $language class property which automatically will load the required js file and customize the plugin call., (*14)

echo Calendar::widget([
    'options' => ['id' => 'es-calendar'],
    'language' => 'es',
]);

Will add the JS File bootstrap-year-calendar.es.js to the view and run, (*15)

jQuery('#es-calendar').calendar({"language":"es"});

On the browser., (*16)

Class Documentation

TODO, (*17)

License

The BSD License (BSD). Please see License File for more information., (*18)

The Versions

27/04 2017

dev-master

9999999-dev https://github.com/tecnocen-com/yii2-bootstrap-year-calendar

Yii2 widget for bootstrap-year-calendar plugin

  Sources   Download

BSD-3-Clause

The Requires

 

yii2 bootstrap calendar yii widget bootstrap-year-calendar

10/06 2016

1.0.0

1.0.0.0 https://github.com/tecnocen-com/yii2-bootstrap-year-calendar

Yii2 widget for bootstrap-year-calendar plugin

  Sources   Download

BSD-3-Clause

The Requires

 

yii2 bootstrap calendar yii widget bootstrap-year-calendar

20/05 2016

dev-simplenames

dev-simplenames https://github.com/tecnocen-com/yii2-bootstrap-year-calendar

Yii2 widget for bootstrap-year-calendar plugin

  Sources   Download

BSD-3-Clause

The Requires

 

yii2 bootstrap calendar yii widget bootstrap-year-calendar