Commit 6cea89d8 by Antonio Ramirez

made some changes, fix some pitfalls, remove PHP_EOL

parent d812cbc6
<?php
/**
* @copyright Copyright (c) 2008 Yii Software LLC
* @link http://www.yiiframework.com/
* @license http://www.yiiframework.com/license/
*/
namespace yii\bootstrap\enum;
/**
* AlertEnum provides easy access to all predefined alert set of named values
*
* @author Antonio Ramirez <amigo.cobos@gmail.com>
* @since 2.0
*/
class AlertEnum
{
const CLASS_NAME = 'alert';
const TYPE_DEFAULT = '';
const TYPE_SUCCESS = 'alert-success';
const TYPE_INFORMATION = 'alert-info';
const TYPE_ERROR = 'alert-error';
const SIZE_BLOCK = 'alert-block';
}
\ No newline at end of file
<?php
/**
* @copyright Copyright (c) 2008 Yii Software LLC
* @link http://www.yiiframework.com/
* @license http://www.yiiframework.com/license/
*/
namespace yii\bootstrap\enum;
/**
* ButtonEnum provides easy access to all predefined button set of named values
*
* @author Antonio Ramirez <amigo.cobos@gmail.com>
* @since 2.0
*/
class ButtonEnum
{
const TYPE_DEFAULT = 'btn';
const TYPE_PRIMARY = 'btn-primary';
const TYPE_INFO = 'btn-info';
const TYPE_SUCCESS = 'btn-success';
const TYPE_WARNING = 'btn-warning';
const TYPE_DANGER = 'btn-danger';
const TYPE_INVERSE = 'btn-inverse';
const TYPE_LINK = 'btn-link';
const SIZE_DEFAULT = '';
const SIZE_LARGE = 'btn-large';
const SIZE_SMALL = 'btn-small';
const SIZE_MINI = 'btn-mini';
const SIZE_BLOCK = 'btn-block';
}
\ No newline at end of file
......@@ -7,12 +7,12 @@
namespace yii\bootstrap\enum;
/**
* BootstrapEnum provides bootstrap shared predefined set of named values.
* Enum provides bootstrap shared predefined set of named values.
*
* @author Antonio Ramirez <amigo.cobos@gmail.com>
* @since 2.0
*/
class BootstrapEnum
class Enum
{
const FADE = 'fade';
const IN = 'in';
......
<?php
/**
* @copyright Copyright (c) 2008 Yii Software LLC
* @link http://www.yiiframework.com/
* @license http://www.yiiframework.com/license/
*/
namespace yii\bootstrap\enum;
/**
* IconEnum provides easy access to all predefined icon set of named values
*
* @author Antonio Ramirez <amigo.cobos@gmail.com>
* @since 2.0
*/
class IconEnum
{
const ICON_GLASS = 'icon-glass';
const ICON_MUSIC = 'icon-music';
const ICON_SEARCH = 'icon-search';
const ICON_ENVELOPE = 'icon-envelope';
const ICON_HEART = 'icon-heart';
const ICON_STAR = 'icon-star';
const ICON_STAR_EMPTY = 'icon-star-empty';
const ICON_USER = 'icon-user';
const ICON_FILM = 'icon-film';
const ICON_TH_LARGE = 'icon-th-large';
const ICON_TH = 'icon-th';
const ICON_TH_LIST = 'icon-th-list';
const ICON_OK = 'icon-ok';
const ICON_REMOVE = 'icon-remove';
const ICON_ZOOM_IN = 'icon-zoom-in';
const ICON_ZOOM_OUT = 'icon-zoom-out';
const ICON_OFF = 'icon-off';
const ICON_SIGNAL = 'icon-signal';
const ICON_COG = 'icon-cog';
const ICON_TRASH = 'icon-trash';
const ICON_HOME = 'icon-home';
const ICON_FILE = 'icon-file';
const ICON_TIME = 'icon-time';
const ICON_ROAD = 'icon-road';
const ICON_DOWNLOAD_ALT = 'icon-download-alt';
const ICON_DOWNLOAD = 'icon-download';
const ICON_UPLOAD = 'icon-upload';
const ICON_INBOX = 'icon-inbox';
const ICON_PLAY_CIRCLE = 'icon-play-circle';
const ICON_REPEAT = 'icon-repeat';
const ICON_REFRESH = 'icon-refresh';
const ICON_LIST_ALT = 'icon-list-alt';
const ICON_LOCK = 'icon-lock';
const ICON_FLAG = 'icon-flag';
const ICON_HEADPHONES = 'icon-headphones';
const ICON_VOLUME_OFF = 'icon-volume-off';
const ICON_VOLUME_DOWN = 'icon-volume-down';
const ICON_VOLUME_UP = 'icon-volume-up';
const ICON_QRCODE = 'icon-qrcode';
const ICON_BARCODE = 'icon-barcode';
const ICON_TAG = 'icon-tag';
const ICON_TAGS = 'icon-tags';
const ICON_BOOK = 'icon-book';
const ICON_BOOKMARK = 'icon-bookmark';
const ICON_PRINT = 'icon-print';
const ICON_CAMERA = 'icon-camera';
const ICON_FONT = 'icon-font';
const ICON_BOLD = 'icon-bold';
const ICON_ITALIC = 'icon-italic';
const ICON_TEXT_HEIGHT = 'icon-text-height';
const ICON_TEXT_WIDTH = 'icon-text-width';
const ICON_ALIGN_LEFT = 'icon-align-left';
const ICON_ALIGN_CENTER = 'icon-align-center';
const ICON_ALIGN_RIGHT = 'icon-align-right';
const ICON_ALIGN_JUSTIFY = 'icon-align-justify';
const ICON_LIST = 'icon-list';
const ICON_INDENT_LEFT = 'icon-indent-left';
const ICON_INDENT_RIGHT = 'icon-indent-right';
const ICON_FACETIME_VIDEO = 'icon-facetime-video';
const ICON_PICTURE = 'icon-picture';
const ICON_PENCIL = 'icon-pencil';
const ICON_MAP_MARKER = 'icon-map-marker';
const ICON_ADJUST = 'icon-adjust';
const ICON_TINT = 'icon-tint';
const ICON_EDIT = 'icon-edit';
const ICON_SHARE = 'icon-share';
const ICON_CHECK = 'icon-check';
const ICON_MOVE = 'icon-move';
const ICON_STEP_BACKWARD = 'icon-step-backward';
const ICON_FAST_BACKWARD = 'icon-fast-backward';
const ICON_BACKWARD = 'icon-backward';
const ICON_PLAY = 'icon-play';
const ICON_PAUSE = 'icon-pause';
const ICON_STOP = 'icon-pause';
const ICON_FORWARD = 'icon-forward';
const ICON_FAST_FORWARD = 'icon-fast-forward';
const ICON_STEP_FORWARD = 'icon-step-forward';
const ICON_EJECT = 'icon-eject';
const ICON_CHEVRON_LEFT = 'icon-chevron-left';
const ICON_CHEVRON_RIGHT = 'icon-chevron-right';
const ICON_PLUS_SIGN = 'icon-plus-sign';
const ICON_MINUS_SIGN = 'icon-minus-sign';
const ICON_REMOVE_SIGN = 'icon-remove-sign';
const ICON_OK_SIGN = 'icon-ok-sign';
const ICON_QUESTION_SIGN = 'icon-question-sign';
const ICON_INFO_SIGN = 'icon-info-sign';
const ICON_SCREENSHOT = 'icon-screenshot';
const ICON_REMOVE_CIRCLE = 'icon-remove-circle';
const ICON_OK_CIRCLE = 'icon-ok-circle';
const ICON_BAN_CIRCLE = 'icon-ban-circle';
const ICON_ARROW_LEFT = 'icon-arrow-left';
const ICON_ARROW_RIGHT = 'icon-arrow-right';
const ICON_ARROW_UP = 'icon-arrow-up';
const ICON_ARROW_DOWN = 'icon-arrow-down';
const ICON_SHARE_ALT = 'icon-share-alt';
const ICON_RESIZE_FULL = 'icon-resize-full';
const ICON_RESIZE_SMALL = 'icon-resize-small';
const ICON_PLUS = 'icon-plus';
const ICON_MINUS = 'icon-minus';
const ICON_ASTERISK = 'icon-asterisk';
const ICON_EXCLAMATION_SIGN = 'icon-exclamation-sign';
const ICON_GIFT = 'icon-gift';
const ICON_LEAF = 'icon-leaf';
const ICON_FIRE = 'icon-fire';
const ICON_EYE_OPEN = 'icon-eye-open';
const ICON_EYE_CLOSE = 'icon-eye-close';
const ICON_WARNING_SIGN = 'icon-warning-sign';
const ICON_PLANE = 'icon-plane';
const ICON_CALENDAR = 'icon-calendar';
const ICON_RANDOM = 'icon-random';
const ICON_COMMENT = 'icon-comment';
const ICON_MAGNET = 'icon-magnet';
const ICON_CHEVRON_UP = 'icon-chevron-up';
const ICON_CHEVRON_DOWN = 'icon-chevron-down';
const ICON_RETWEET = 'icon-retweet';
const ICON_SHOPPING_CART = 'icon-shopping-cart';
const ICON_FOLDER_CLOSE = 'icon-folder-close';
const ICON_FOLDER_OPEN = 'icon-folder-open';
const ICON_RESIZE_VERTICAL = 'icon-resize-vertical';
const ICON_RESIZE_HORIZONTAL = 'icon-resize-horizontal';
const ICON_HDD = 'icon-hdd';
const ICON_BULLHORN = 'icon-bullhorn';
const ICON_BELL = 'icon-bell';
const ICON_CERTFICATE = 'icon-certificate';
const ICON_THUMBS_UP = 'icon-thumbs-up';
const ICON_THUMBS_DOWN = 'icon-thumbs-down';
const ICON_HAND_RIGHT = 'icon-hand-right';
const ICON_HAND_LEFT = 'icon-hand-left';
const ICON_HAND_UP = 'icon-hand-up';
const ICON_HAND_DOWN = 'icon-hand-down';
const ICON_CIRCLE_ARROW_RIGHT = 'icon-circle-arrow-right';
const ICON_CIRCLE_ARROW_LEFT = 'icon-circle-arrow-left';
const ICON_CIRCLE_ARROW_UP = 'icon-circle-arrow-up';
const ICON_CIRCLE_ARROW_DOWN = 'icon-circle-arrow-down';
const ICON_GLOBE = 'icon-globe';
const ICON_WRENCH = 'icon-wrench';
const ICON_TASKS = 'icon-tasks';
const ICON_FILTER = 'icon-filter';
const ICON_BRIEFCASE = 'icon-briefcase';
const ICON_FULLSCREEN = 'icon-fullscreen';
}
\ No newline at end of file
<?php
/**
* @copyright Copyright (c) 2008 Yii Software LLC
* @link http://www.yiiframework.com/
* @license http://www.yiiframework.com/license/
*/
namespace yii\bootstrap\enum;
/**
* ProgressEnum provides easy access to all predefined progress bar set of named values
*
* @author Antonio Ramirez <amigo.cobos@gmail.com>
* @since 2.0
*/
class ProgressEnum
{
}
\ No newline at end of file
......@@ -17,27 +17,5 @@ use yii\helpers\Html;
*/
class Icon extends base\Icon
{
/**
* Generates an icon.
* @param string $icon the icon type.
* @param array $htmlOptions additional HTML attributes.
* @return string the generated icon.
*/
public static function i($icon, $htmlOptions = array())
{
if (is_string($icon))
{
if (strpos($icon, 'icon-') === false)
$icon = 'icon-' . implode(' icon-', explode(' ', $icon));
// TODO: this method may should be added to ArrayHelper::add or ArrayHelper::append?
if (isset($htmlOptions['class']))
$htmlOptions['class'] .= ' ' . $icon;
else
$htmlOptions['class'] = $icon;
return Html::tag('i', '', $htmlOptions);
}
return '';
}
}
\ No newline at end of file
......@@ -7,8 +7,7 @@
namespace yii\bootstrap\helpers\base;
use yii\bootstrap\enum\AlertEnum;
use yii\bootstrap\enum\BootstrapEnum;
use yii\bootstrap\enum\Enum;
use yii\helpers\Html;
/**
......@@ -21,6 +20,16 @@ class Alert
{
/**
* constants
*/
const CLASS_NAME = 'alert';
const TYPE_DEFAULT = '';
const TYPE_SUCCESS = 'alert-success';
const TYPE_INFORMATION = 'alert-info';
const TYPE_ERROR = 'alert-error';
const SIZE_BLOCK = 'alert-block';
/**
* Generates an alert box
* @param $message
* @param array $htmlOptions
......@@ -31,14 +40,14 @@ class Alert
{
// TODO: this method may should be added to ArrayHelper::add or ArrayHelper::append?
if (isset($htmlOptions['class']))
$htmlOptions['class'] .= ' ' . AlertEnum::CLASS_NAME;
$htmlOptions['class'] .= ' ' . static::CLASS_NAME;
else
$htmlOptions['class'] = AlertEnum::CLASS_NAME;
$htmlOptions['class'] = static::CLASS_NAME;
ob_start();
echo Html::beginTag('div', $htmlOptions);
if ($dismiss)
echo Button::closeLink('&times;', BootstrapEnum::ALERT);
echo Button::closeLink('&times;', Enum::ALERT);
echo $message;
echo Html::endTag('div');
return ob_get_clean();
......
......@@ -6,7 +6,11 @@
*/
namespace yii\bootstrap\helpers\base;
use Yii;
use yii\helpers\Json;
use yii\web\JsExpression;
/**
* Assets provides methods to register bootstrap assets.
......@@ -22,4 +26,53 @@ class Assets
Yii::$app->getView()->registerAssetBundle($bundle);
}
/**
* Registers plugin events with the API.
*
* @param string $selector the CSS selector.
* @param string[] $events the JavaScript event configuration (name=>handler).
* @param int $position the position of the JavaScript code.
* @return boolean whether the events were registered.
*/
public static function registerEvents($selector, $events = array(), $position = View::POS_END)
{
if (empty($events))
return;
$script = '';
foreach ($events as $name => $handler) {
$handler = ($handler instanceof JsExpression)
? $handler
: new JsExpression($handler);
$script .= ";jQuery(document).ready(function (){jQuery('{$selector}').on('{$name}', {$handler});});";
}
if (!empty($script))
Yii::$app->getView()>registerJs($script, array('position' => $position), static::getUniqueScriptId());
}
/**
* Registers a specific Bootstrap plugin using the given selector and options.
*
* @param string $selector the CSS selector.
* @param string $name the name of the plugin
* @param array $options the JavaScript options for the plugin.
* @param int $position the position of the JavaScript code.
*/
public static function registerPlugin($selector, $name, $options = array(), $position = View::POS_END)
{
$options = !empty($options) ? Json::encode($options) : '';
$script = ";jQuery(document).ready(function (){jQuery('{$selector}').{$name}({$options});});";
Yii::$app->getView()->registerJs($script, array('position'=>$position));
}
/**
* Generates a "somewhat" random id string.
* @return string the id.
*/
public static function getUniqueScriptId()
{
return uniqid(time() . '#', true);
}
}
\ No newline at end of file
......@@ -7,9 +7,7 @@
namespace yii\bootstrap\helpers\base;
use yii\bootstrap\enum\AlertEnum;
use yii\bootstrap\enum\ButtonEnum;
use yii\bootstrap\enum\BootstrapEnum;
use yii\bootstrap\enum\Enum;
use yii\helpers\Html;
/**
......@@ -21,6 +19,24 @@ use yii\helpers\Html;
class Button
{
/**
* constants
*/
const TYPE_DEFAULT = 'btn';
const TYPE_PRIMARY = 'btn-primary';
const TYPE_INFO = 'btn-info';
const TYPE_SUCCESS = 'btn-success';
const TYPE_WARNING = 'btn-warning';
const TYPE_DANGER = 'btn-danger';
const TYPE_INVERSE = 'btn-inverse';
const TYPE_LINK = 'btn-link';
const SIZE_DEFAULT = '';
const SIZE_LARGE = 'btn-large';
const SIZE_SMALL = 'btn-small';
const SIZE_MINI = 'btn-mini';
const SIZE_BLOCK = 'btn-block';
/**
* Returns a dismissal alert link
* @param string $text
* @param string $dismiss what to dismiss (alert or modal)
......@@ -28,7 +44,7 @@ class Button
*/
public static function closeLink($text = '&times;', $dismiss = null)
{
$options = array('class' => BootstrapEnum::CLOSE);
$options = array('class' => Enum::CLOSE);
if(null !== $dismiss)
$options['data-dismiss'] = $dismiss;
return Html::a($text, '#', $options);
......@@ -42,7 +58,7 @@ class Button
*/
public static function closeButton($text = '&times', $dismiss = null)
{
$options = array('type' => 'button', 'class' => BootstrapEnum::CLOSE);
$options = array('type' => 'button', 'class' => Enum::CLOSE);
if(null !== $dismiss)
$options['data-dismiss'] = $dismiss;
......@@ -60,9 +76,9 @@ class Button
{
// TODO: consider method add or append to ArrayHelper class
if (isset($htmlOptions['class']))
$htmlOptions['class'] .= ' ' . ButtonEnum::TYPE_LINK;
$htmlOptions['class'] .= ' ' . static::TYPE_LINK;
else
$htmlOptions['class'] = ButtonEnum::TYPE_LINK;
$htmlOptions['class'] = static::TYPE_LINK;
return Html::a($label, '#', $htmlOptions);
}
......
......@@ -7,8 +7,6 @@
namespace yii\bootstrap\helpers\base;
use yii\bootstrap\enum\IconEnum;
/**
* Icon allows you to render Bootstrap Glyphicons sets
*
......@@ -17,5 +15,171 @@ use yii\bootstrap\enum\IconEnum;
*/
class Icon
{
/**
* constants
*/
const ICON_GLASS = 'icon-glass';
const ICON_MUSIC = 'icon-music';
const ICON_SEARCH = 'icon-search';
const ICON_ENVELOPE = 'icon-envelope';
const ICON_HEART = 'icon-heart';
const ICON_STAR = 'icon-star';
const ICON_STAR_EMPTY = 'icon-star-empty';
const ICON_USER = 'icon-user';
const ICON_FILM = 'icon-film';
const ICON_TH_LARGE = 'icon-th-large';
const ICON_TH = 'icon-th';
const ICON_TH_LIST = 'icon-th-list';
const ICON_OK = 'icon-ok';
const ICON_REMOVE = 'icon-remove';
const ICON_ZOOM_IN = 'icon-zoom-in';
const ICON_ZOOM_OUT = 'icon-zoom-out';
const ICON_OFF = 'icon-off';
const ICON_SIGNAL = 'icon-signal';
const ICON_COG = 'icon-cog';
const ICON_TRASH = 'icon-trash';
const ICON_HOME = 'icon-home';
const ICON_FILE = 'icon-file';
const ICON_TIME = 'icon-time';
const ICON_ROAD = 'icon-road';
const ICON_DOWNLOAD_ALT = 'icon-download-alt';
const ICON_DOWNLOAD = 'icon-download';
const ICON_UPLOAD = 'icon-upload';
const ICON_INBOX = 'icon-inbox';
const ICON_PLAY_CIRCLE = 'icon-play-circle';
const ICON_REPEAT = 'icon-repeat';
const ICON_REFRESH = 'icon-refresh';
const ICON_LIST_ALT = 'icon-list-alt';
const ICON_LOCK = 'icon-lock';
const ICON_FLAG = 'icon-flag';
const ICON_HEADPHONES = 'icon-headphones';
const ICON_VOLUME_OFF = 'icon-volume-off';
const ICON_VOLUME_DOWN = 'icon-volume-down';
const ICON_VOLUME_UP = 'icon-volume-up';
const ICON_QRCODE = 'icon-qrcode';
const ICON_BARCODE = 'icon-barcode';
const ICON_TAG = 'icon-tag';
const ICON_TAGS = 'icon-tags';
const ICON_BOOK = 'icon-book';
const ICON_BOOKMARK = 'icon-bookmark';
const ICON_PRINT = 'icon-print';
const ICON_CAMERA = 'icon-camera';
const ICON_FONT = 'icon-font';
const ICON_BOLD = 'icon-bold';
const ICON_ITALIC = 'icon-italic';
const ICON_TEXT_HEIGHT = 'icon-text-height';
const ICON_TEXT_WIDTH = 'icon-text-width';
const ICON_ALIGN_LEFT = 'icon-align-left';
const ICON_ALIGN_CENTER = 'icon-align-center';
const ICON_ALIGN_RIGHT = 'icon-align-right';
const ICON_ALIGN_JUSTIFY = 'icon-align-justify';
const ICON_LIST = 'icon-list';
const ICON_INDENT_LEFT = 'icon-indent-left';
const ICON_INDENT_RIGHT = 'icon-indent-right';
const ICON_FACETIME_VIDEO = 'icon-facetime-video';
const ICON_PICTURE = 'icon-picture';
const ICON_PENCIL = 'icon-pencil';
const ICON_MAP_MARKER = 'icon-map-marker';
const ICON_ADJUST = 'icon-adjust';
const ICON_TINT = 'icon-tint';
const ICON_EDIT = 'icon-edit';
const ICON_SHARE = 'icon-share';
const ICON_CHECK = 'icon-check';
const ICON_MOVE = 'icon-move';
const ICON_STEP_BACKWARD = 'icon-step-backward';
const ICON_FAST_BACKWARD = 'icon-fast-backward';
const ICON_BACKWARD = 'icon-backward';
const ICON_PLAY = 'icon-play';
const ICON_PAUSE = 'icon-pause';
const ICON_STOP = 'icon-pause';
const ICON_FORWARD = 'icon-forward';
const ICON_FAST_FORWARD = 'icon-fast-forward';
const ICON_STEP_FORWARD = 'icon-step-forward';
const ICON_EJECT = 'icon-eject';
const ICON_CHEVRON_LEFT = 'icon-chevron-left';
const ICON_CHEVRON_RIGHT = 'icon-chevron-right';
const ICON_PLUS_SIGN = 'icon-plus-sign';
const ICON_MINUS_SIGN = 'icon-minus-sign';
const ICON_REMOVE_SIGN = 'icon-remove-sign';
const ICON_OK_SIGN = 'icon-ok-sign';
const ICON_QUESTION_SIGN = 'icon-question-sign';
const ICON_INFO_SIGN = 'icon-info-sign';
const ICON_SCREENSHOT = 'icon-screenshot';
const ICON_REMOVE_CIRCLE = 'icon-remove-circle';
const ICON_OK_CIRCLE = 'icon-ok-circle';
const ICON_BAN_CIRCLE = 'icon-ban-circle';
const ICON_ARROW_LEFT = 'icon-arrow-left';
const ICON_ARROW_RIGHT = 'icon-arrow-right';
const ICON_ARROW_UP = 'icon-arrow-up';
const ICON_ARROW_DOWN = 'icon-arrow-down';
const ICON_SHARE_ALT = 'icon-share-alt';
const ICON_RESIZE_FULL = 'icon-resize-full';
const ICON_RESIZE_SMALL = 'icon-resize-small';
const ICON_PLUS = 'icon-plus';
const ICON_MINUS = 'icon-minus';
const ICON_ASTERISK = 'icon-asterisk';
const ICON_EXCLAMATION_SIGN = 'icon-exclamation-sign';
const ICON_GIFT = 'icon-gift';
const ICON_LEAF = 'icon-leaf';
const ICON_FIRE = 'icon-fire';
const ICON_EYE_OPEN = 'icon-eye-open';
const ICON_EYE_CLOSE = 'icon-eye-close';
const ICON_WARNING_SIGN = 'icon-warning-sign';
const ICON_PLANE = 'icon-plane';
const ICON_CALENDAR = 'icon-calendar';
const ICON_RANDOM = 'icon-random';
const ICON_COMMENT = 'icon-comment';
const ICON_MAGNET = 'icon-magnet';
const ICON_CHEVRON_UP = 'icon-chevron-up';
const ICON_CHEVRON_DOWN = 'icon-chevron-down';
const ICON_RETWEET = 'icon-retweet';
const ICON_SHOPPING_CART = 'icon-shopping-cart';
const ICON_FOLDER_CLOSE = 'icon-folder-close';
const ICON_FOLDER_OPEN = 'icon-folder-open';
const ICON_RESIZE_VERTICAL = 'icon-resize-vertical';
const ICON_RESIZE_HORIZONTAL = 'icon-resize-horizontal';
const ICON_HDD = 'icon-hdd';
const ICON_BULLHORN = 'icon-bullhorn';
const ICON_BELL = 'icon-bell';
const ICON_CERTFICATE = 'icon-certificate';
const ICON_THUMBS_UP = 'icon-thumbs-up';
const ICON_THUMBS_DOWN = 'icon-thumbs-down';
const ICON_HAND_RIGHT = 'icon-hand-right';
const ICON_HAND_LEFT = 'icon-hand-left';
const ICON_HAND_UP = 'icon-hand-up';
const ICON_HAND_DOWN = 'icon-hand-down';
const ICON_CIRCLE_ARROW_RIGHT = 'icon-circle-arrow-right';
const ICON_CIRCLE_ARROW_LEFT = 'icon-circle-arrow-left';
const ICON_CIRCLE_ARROW_UP = 'icon-circle-arrow-up';
const ICON_CIRCLE_ARROW_DOWN = 'icon-circle-arrow-down';
const ICON_GLOBE = 'icon-globe';
const ICON_WRENCH = 'icon-wrench';
const ICON_TASKS = 'icon-tasks';
const ICON_FILTER = 'icon-filter';
const ICON_BRIEFCASE = 'icon-briefcase';
const ICON_FULLSCREEN = 'icon-fullscreen';
/**
* Generates an icon.
* @param string $icon the icon type.
* @param array $htmlOptions additional HTML attributes.
* @return string the generated icon.
*/
public static function i($icon, $htmlOptions = array())
{
if (is_string($icon))
{
if (strpos($icon, 'icon-') === false)
$icon = 'icon-' . implode(' icon-', explode(' ', $icon));
// TODO: this method may should be added to ArrayHelper::add or ArrayHelper::append?
if (isset($htmlOptions['class']))
$htmlOptions['class'] .= ' ' . $icon;
else
$htmlOptions['class'] = $icon;
return Html::tag('i', '', $htmlOptions);
}
return '';
}
}
\ No newline at end of file
......@@ -7,8 +7,6 @@
namespace yii\bootstrap\helpers\base;
use yii\bootstrap\enum\ProgressEnum;
/**
* Progress provides methods to make use of bootstrap progress bars in your application
*
......
......@@ -11,8 +11,7 @@ use Yii;
use yii\helpers\Html;
use yii\helpers\ArrayHelper;
use yii\bootstrap\helpers\Button;
use yii\bootstrap\enum\BootstrapEnum;
use yii\web\JsExpression;
use yii\bootstrap\enum\Enum;
/**
* Modal renders a bootstrap modal on the page for its use on your application.
......@@ -27,7 +26,7 @@ use yii\web\JsExpression;
* 'footer' => '//modal/_footer', // we can also use view paths
* 'buttonOptions' => array(
* 'label' => 'Show Modal',
* 'class' => \yii\bootstrap\enum\ButtonEnum::TYPE_DEFAULT
* 'class' => \yii\bootstrap\enum\Button::TYPE_DEFAULT
* )
* ));
* ```
......@@ -35,7 +34,7 @@ use yii\web\JsExpression;
* @author Antonio Ramirez <amigo.cobos@gmail.com>
* @since 2.0
*/
class Modal extends base\BootstrapWidget
class Modal extends base\Widget
{
/**
* @var array The additional HTML attributes of the button that will show the modal. If empty array, only
......@@ -140,14 +139,14 @@ class Modal extends base\BootstrapWidget
$this->defaultOption('id', $this->getId());
$this->selector = '#' . ArrayHelper::getValue($this->options, 'id');
$this->defaultOption('role', BootstrapEnum::DIALOG);
$this->defaultOption('role', Enum::DIALOG);
$this->defaultOption('tabindex', '-1');
$this->addOption('class', BootstrapEnum::MODAL);
$this->addOption('class', BootstrapEnum::HIDE);
$this->addOption('class', Enum::MODAL);
$this->addOption('class', Enum::HIDE);
if ($this->fade)
$this->addOption('class', BootstrapEnum::FADE);
$this->addOption('class', Enum::FADE);
$this->initPluginOptions();
$this->initPluginEvents();
......@@ -204,7 +203,7 @@ class Modal extends base\BootstrapWidget
$this->buttonOptions['data-toggle'] = isset($this->buttonOptions['data-toggle'])
? $this->buttonOptions['data-toggle']
: BootstrapEnum::MODAL;
: Enum::MODAL;
if ($this->remote !== null && !isset($this->buttonOptions['data-remote']))
$this->buttonOptions['data-remote'] = Html::url($this->remote);
......@@ -230,13 +229,13 @@ class Modal extends base\BootstrapWidget
*/
public function renderModal()
{
echo Html::beginTag('div', $this->options) . PHP_EOL;
echo Html::beginTag('div', $this->options);
$this->renderModalHeader();
$this->renderModalBody();
$this->renderModalFooter();
echo Html::endTag('div') . PHP_EOL;
echo Html::endTag('div');
}
/**
......@@ -244,11 +243,11 @@ class Modal extends base\BootstrapWidget
*/
public function renderModalHeader()
{
echo '<div class="modal-header">' . PHP_EOL;
echo Html::beginTag('div', array('class'=>'modal-header'));
if ($this->closeText)
echo Button::closeButton($this->closeText, BootstrapEnum::MODAL);
echo Button::closeButton($this->closeText, Enum::MODAL);
echo $this->renderSection($this->header);
echo '</div>' . PHP_EOL;
echo Html::endTag('div');
}
/**
......@@ -256,9 +255,9 @@ class Modal extends base\BootstrapWidget
*/
public function renderModalBody()
{
echo '<div class="modal-body">' . PHP_EOL;
echo Html::beginTag('div', array('class'=>'modal-body'));
echo $this->renderSection($this->content);
echo '</div>' . PHP_EOL;
echo Html::endTag('div');
}
/**
......@@ -267,9 +266,9 @@ class Modal extends base\BootstrapWidget
public function renderModalFooter()
{
echo '<div class="modal-footer">' . PHP_EOL;
echo Html::beginTag('div', array('class'=>'modal-footer'));
echo $this->renderSection($this->footer);
echo '</div>' . PHP_EOL;
echo Html::endTag('div');
}
/**
......
......@@ -9,18 +9,18 @@ namespace yii\bootstrap\widgets\base;
use Yii;
use yii\base\View;
use yii\base\Widget;
use yii\bootstrap\helpers\Assets;
use yii\base\InvalidCallException;
use yii\helpers\base\Json;
use yii\web\JsExpression;
/**
* BootstrapWidget is the base class for bootstrap widgets.
* Bootstrap is the base class for bootstrap widgets.
*
* @author Antonio Ramirez <amigo.cobos@gmail.com>
* @since 2.0
*/
class BootstrapWidget extends Widget
class Widget extends \yii\base\Widget
{
/**
......@@ -48,7 +48,8 @@ class BootstrapWidget extends Widget
*/
public function init()
{
$this->view->registerAssetBundle(($this->responsive ? 'yii/bootstrap' : 'yii/bootstrap-responsive'));
// ensure bundle
Assets::registerBundle($this->responsive);
}
/**
......@@ -60,19 +61,7 @@ class BootstrapWidget extends Widget
*/
protected function registerEvents($selector, $events = array(), $position = View::POS_END)
{
if (empty($events))
return;
$script = '';
foreach ($events as $name => $handler) {
$handler = ($handler instanceof JsExpression)
? $handler
: new JsExpression($handler);
$script .= ";jQuery(document).ready(function (){jQuery('{$selector}').on('{$name}', {$handler});});";
}
if (!empty($script))
$this->view->registerJs($script, array('position' => $position), $this->getUniqueScriptId());
Assets::registerEvents($selector, $events, $position);
}
/**
......@@ -87,9 +76,7 @@ class BootstrapWidget extends Widget
if(null === $this->name)
throw new InvalidCallException();
$options = !empty($options) ? Json::encode($options) : '';
$script = ";jQuery(document).ready(function (){jQuery('{$selector}').{$this->name}({$options});});";
$this->view->registerJs($script, array('position'=>$position));
Assets::registerPlugin($selector, $this->name, $options, $position);
}
/**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment