Browse Source

made some changes, fix some pitfalls, remove PHP_EOL

tags/2.0.0-beta
Antonio Ramirez 12 years ago
parent
commit
6cea89d8d4
  1. 26
      yii/bootstrap/enum/AlertEnum.php
  2. 33
      yii/bootstrap/enum/ButtonEnum.php
  3. 4
      yii/bootstrap/enum/Enum.php
  4. 158
      yii/bootstrap/enum/IconEnum.php
  5. 19
      yii/bootstrap/enum/ProgressEnum.php
  6. 22
      yii/bootstrap/helpers/Icon.php
  7. 19
      yii/bootstrap/helpers/base/Alert.php
  8. 53
      yii/bootstrap/helpers/base/Assets.php
  9. 30
      yii/bootstrap/helpers/base/Button.php
  10. 168
      yii/bootstrap/helpers/base/Icon.php
  11. 2
      yii/bootstrap/helpers/base/Progress.php
  12. 35
      yii/bootstrap/widgets/Modal.php
  13. 31
      yii/bootstrap/widgets/base/Widget.php

26
yii/bootstrap/enum/AlertEnum.php

@ -1,26 +0,0 @@
<?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';
}

33
yii/bootstrap/enum/ButtonEnum.php

@ -1,33 +0,0 @@
<?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';
}

4
yii/bootstrap/enum/BootstrapEnum.php → yii/bootstrap/enum/Enum.php

@ -7,12 +7,12 @@
namespace yii\bootstrap\enum; 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> * @author Antonio Ramirez <amigo.cobos@gmail.com>
* @since 2.0 * @since 2.0
*/ */
class BootstrapEnum class Enum
{ {
const FADE = 'fade'; const FADE = 'fade';
const IN = 'in'; const IN = 'in';

158
yii/bootstrap/enum/IconEnum.php

@ -1,158 +0,0 @@
<?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';
}

19
yii/bootstrap/enum/ProgressEnum.php

@ -1,19 +0,0 @@
<?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
{
}

22
yii/bootstrap/helpers/Icon.php

@ -17,27 +17,5 @@ use yii\helpers\Html;
*/ */
class Icon extends base\Icon 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 '';
}
} }

19
yii/bootstrap/helpers/base/Alert.php

@ -7,8 +7,7 @@
namespace yii\bootstrap\helpers\base; namespace yii\bootstrap\helpers\base;
use yii\bootstrap\enum\AlertEnum; use yii\bootstrap\enum\Enum;
use yii\bootstrap\enum\BootstrapEnum;
use yii\helpers\Html; 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 * Generates an alert box
* @param $message * @param $message
* @param array $htmlOptions * @param array $htmlOptions
@ -31,14 +40,14 @@ class Alert
{ {
// TODO: this method may should be added to ArrayHelper::add or ArrayHelper::append? // TODO: this method may should be added to ArrayHelper::add or ArrayHelper::append?
if (isset($htmlOptions['class'])) if (isset($htmlOptions['class']))
$htmlOptions['class'] .= ' ' . AlertEnum::CLASS_NAME; $htmlOptions['class'] .= ' ' . static::CLASS_NAME;
else else
$htmlOptions['class'] = AlertEnum::CLASS_NAME; $htmlOptions['class'] = static::CLASS_NAME;
ob_start(); ob_start();
echo Html::beginTag('div', $htmlOptions); echo Html::beginTag('div', $htmlOptions);
if ($dismiss) if ($dismiss)
echo Button::closeLink('&times;', BootstrapEnum::ALERT); echo Button::closeLink('&times;', Enum::ALERT);
echo $message; echo $message;
echo Html::endTag('div'); echo Html::endTag('div');
return ob_get_clean(); return ob_get_clean();

53
yii/bootstrap/helpers/base/Assets.php

@ -6,7 +6,11 @@
*/ */
namespace yii\bootstrap\helpers\base; namespace yii\bootstrap\helpers\base;
use Yii; use Yii;
use yii\helpers\Json;
use yii\web\JsExpression;
/** /**
* Assets provides methods to register bootstrap assets. * Assets provides methods to register bootstrap assets.
@ -22,4 +26,53 @@ class Assets
Yii::$app->getView()->registerAssetBundle($bundle); 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);
}
} }

30
yii/bootstrap/helpers/base/Button.php

@ -7,9 +7,7 @@
namespace yii\bootstrap\helpers\base; namespace yii\bootstrap\helpers\base;
use yii\bootstrap\enum\AlertEnum; use yii\bootstrap\enum\Enum;
use yii\bootstrap\enum\ButtonEnum;
use yii\bootstrap\enum\BootstrapEnum;
use yii\helpers\Html; use yii\helpers\Html;
/** /**
@ -21,6 +19,24 @@ use yii\helpers\Html;
class Button 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 * Returns a dismissal alert link
* @param string $text * @param string $text
* @param string $dismiss what to dismiss (alert or modal) * @param string $dismiss what to dismiss (alert or modal)
@ -28,7 +44,7 @@ class Button
*/ */
public static function closeLink($text = '&times;', $dismiss = null) public static function closeLink($text = '&times;', $dismiss = null)
{ {
$options = array('class' => BootstrapEnum::CLOSE); $options = array('class' => Enum::CLOSE);
if(null !== $dismiss) if(null !== $dismiss)
$options['data-dismiss'] = $dismiss; $options['data-dismiss'] = $dismiss;
return Html::a($text, '#', $options); return Html::a($text, '#', $options);
@ -42,7 +58,7 @@ class Button
*/ */
public static function closeButton($text = '&times', $dismiss = null) 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) if(null !== $dismiss)
$options['data-dismiss'] = $dismiss; $options['data-dismiss'] = $dismiss;
@ -60,9 +76,9 @@ class Button
{ {
// TODO: consider method add or append to ArrayHelper class // TODO: consider method add or append to ArrayHelper class
if (isset($htmlOptions['class'])) if (isset($htmlOptions['class']))
$htmlOptions['class'] .= ' ' . ButtonEnum::TYPE_LINK; $htmlOptions['class'] .= ' ' . static::TYPE_LINK;
else else
$htmlOptions['class'] = ButtonEnum::TYPE_LINK; $htmlOptions['class'] = static::TYPE_LINK;
return Html::a($label, '#', $htmlOptions); return Html::a($label, '#', $htmlOptions);
} }

168
yii/bootstrap/helpers/base/Icon.php

@ -7,8 +7,6 @@
namespace yii\bootstrap\helpers\base; namespace yii\bootstrap\helpers\base;
use yii\bootstrap\enum\IconEnum;
/** /**
* Icon allows you to render Bootstrap Glyphicons sets * Icon allows you to render Bootstrap Glyphicons sets
* *
@ -17,5 +15,171 @@ use yii\bootstrap\enum\IconEnum;
*/ */
class Icon 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 '';
}
} }

2
yii/bootstrap/helpers/base/Progress.php

@ -7,8 +7,6 @@
namespace yii\bootstrap\helpers\base; namespace yii\bootstrap\helpers\base;
use yii\bootstrap\enum\ProgressEnum;
/** /**
* Progress provides methods to make use of bootstrap progress bars in your application * Progress provides methods to make use of bootstrap progress bars in your application
* *

35
yii/bootstrap/widgets/Modal.php

@ -11,8 +11,7 @@ use Yii;
use yii\helpers\Html; use yii\helpers\Html;
use yii\helpers\ArrayHelper; use yii\helpers\ArrayHelper;
use yii\bootstrap\helpers\Button; use yii\bootstrap\helpers\Button;
use yii\bootstrap\enum\BootstrapEnum; use yii\bootstrap\enum\Enum;
use yii\web\JsExpression;
/** /**
* Modal renders a bootstrap modal on the page for its use on your application. * 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 * 'footer' => '//modal/_footer', // we can also use view paths
* 'buttonOptions' => array( * 'buttonOptions' => array(
* 'label' => 'Show Modal', * '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> * @author Antonio Ramirez <amigo.cobos@gmail.com>
* @since 2.0 * @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 * @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->defaultOption('id', $this->getId());
$this->selector = '#' . ArrayHelper::getValue($this->options, 'id'); $this->selector = '#' . ArrayHelper::getValue($this->options, 'id');
$this->defaultOption('role', BootstrapEnum::DIALOG); $this->defaultOption('role', Enum::DIALOG);
$this->defaultOption('tabindex', '-1'); $this->defaultOption('tabindex', '-1');
$this->addOption('class', BootstrapEnum::MODAL); $this->addOption('class', Enum::MODAL);
$this->addOption('class', BootstrapEnum::HIDE); $this->addOption('class', Enum::HIDE);
if ($this->fade) if ($this->fade)
$this->addOption('class', BootstrapEnum::FADE); $this->addOption('class', Enum::FADE);
$this->initPluginOptions(); $this->initPluginOptions();
$this->initPluginEvents(); $this->initPluginEvents();
@ -204,7 +203,7 @@ class Modal extends base\BootstrapWidget
$this->buttonOptions['data-toggle'] = isset($this->buttonOptions['data-toggle']) $this->buttonOptions['data-toggle'] = isset($this->buttonOptions['data-toggle'])
? $this->buttonOptions['data-toggle'] ? $this->buttonOptions['data-toggle']
: BootstrapEnum::MODAL; : Enum::MODAL;
if ($this->remote !== null && !isset($this->buttonOptions['data-remote'])) if ($this->remote !== null && !isset($this->buttonOptions['data-remote']))
$this->buttonOptions['data-remote'] = Html::url($this->remote); $this->buttonOptions['data-remote'] = Html::url($this->remote);
@ -230,13 +229,13 @@ class Modal extends base\BootstrapWidget
*/ */
public function renderModal() public function renderModal()
{ {
echo Html::beginTag('div', $this->options) . PHP_EOL; echo Html::beginTag('div', $this->options);
$this->renderModalHeader(); $this->renderModalHeader();
$this->renderModalBody(); $this->renderModalBody();
$this->renderModalFooter(); $this->renderModalFooter();
echo Html::endTag('div') . PHP_EOL; echo Html::endTag('div');
} }
/** /**
@ -244,11 +243,11 @@ class Modal extends base\BootstrapWidget
*/ */
public function renderModalHeader() public function renderModalHeader()
{ {
echo '<div class="modal-header">' . PHP_EOL; echo Html::beginTag('div', array('class'=>'modal-header'));
if ($this->closeText) if ($this->closeText)
echo Button::closeButton($this->closeText, BootstrapEnum::MODAL); echo Button::closeButton($this->closeText, Enum::MODAL);
echo $this->renderSection($this->header); 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() public function renderModalBody()
{ {
echo '<div class="modal-body">' . PHP_EOL; echo Html::beginTag('div', array('class'=>'modal-body'));
echo $this->renderSection($this->content); 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() public function renderModalFooter()
{ {
echo '<div class="modal-footer">' . PHP_EOL; echo Html::beginTag('div', array('class'=>'modal-footer'));
echo $this->renderSection($this->footer); echo $this->renderSection($this->footer);
echo '</div>' . PHP_EOL; echo Html::endTag('div');
} }
/** /**

31
yii/bootstrap/widgets/base/BootstrapWidget.php → yii/bootstrap/widgets/base/Widget.php

@ -9,18 +9,18 @@ namespace yii\bootstrap\widgets\base;
use Yii; use Yii;
use yii\base\View; use yii\base\View;
use yii\base\Widget; use yii\bootstrap\helpers\Assets;
use yii\base\InvalidCallException; 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> * @author Antonio Ramirez <amigo.cobos@gmail.com>
* @since 2.0 * @since 2.0
*/ */
class BootstrapWidget extends Widget class Widget extends \yii\base\Widget
{ {
/** /**
@ -48,7 +48,8 @@ class BootstrapWidget extends Widget
*/ */
public function init() 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) protected function registerEvents($selector, $events = array(), $position = View::POS_END)
{ {
if (empty($events)) Assets::registerEvents($selector, $events, $position);
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());
} }
/** /**
@ -87,9 +76,7 @@ class BootstrapWidget extends Widget
if(null === $this->name) if(null === $this->name)
throw new InvalidCallException(); throw new InvalidCallException();
$options = !empty($options) ? Json::encode($options) : ''; Assets::registerPlugin($selector, $this->name, $options, $position);
$script = ";jQuery(document).ready(function (){jQuery('{$selector}').{$this->name}({$options});});";
$this->view->registerJs($script, array('position'=>$position));
} }
/** /**
Loading…
Cancel
Save