-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
6 changed files
with
101 additions
and
85 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,23 +1,22 @@ | ||
<?php | ||
/** | ||
* @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 | ||
* @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 - 2016 | ||
* @package yii2-popover-x | ||
* @version 1.3.1 | ||
* @version 1.3.2 | ||
*/ | ||
|
||
namespace kartik\popover; | ||
|
||
use Yii; | ||
use yii\helpers\Html; | ||
use yii\helpers\ArrayHelper; | ||
use kartik\base\Widget; | ||
|
||
/** | ||
* An extended popover widget for Yii Framework 2 based on the bootstrap-popover-x plugin | ||
* by Krajee. This widget combines both the popover and bootstrap modal features and includes | ||
* various new styling enhancements. | ||
* An extended popover widget for Yii Framework 2 based on the bootstrap-popover-x plugin by Krajee. This widget | ||
* combines both the popover and bootstrap modal features and includes various new styling enhancements. | ||
* | ||
* The following example will show the content enclosed between the [[begin()]] | ||
* and [[end()]] calls within the popover dialog: | ||
* The following example will show the content enclosed between the [[begin()]] and [[end()]] calls within the popover | ||
* dialog: | ||
* | ||
* ~~~php | ||
* PopoverX::begin([ | ||
|
@@ -36,15 +35,15 @@ | |
* @author Kartik Visweswaran <[email protected]> | ||
* @since 1.0 | ||
*/ | ||
class PopoverX extends \kartik\base\Widget | ||
class PopoverX extends Widget | ||
{ | ||
const TYPE_DEFAULT = 'default'; | ||
const TYPE_PRIMARY = 'primary'; | ||
const TYPE_INFO = 'info'; | ||
const TYPE_SUCCESS = 'success'; | ||
const TYPE_DANGER = 'danger'; | ||
const TYPE_WARNING = 'warning'; | ||
|
||
const ALIGN_RIGHT = 'right'; | ||
const ALIGN_LEFT = 'left'; | ||
const ALIGN_TOP = 'top'; | ||
|
@@ -57,131 +56,126 @@ class PopoverX extends \kartik\base\Widget | |
const ALIGN_RIGHT_TOP = 'right right-top'; | ||
const ALIGN_LEFT_BOTTOM = 'left left-bottom'; | ||
const ALIGN_RIGHT_BOTTOM = 'right right-bottom'; | ||
|
||
const SIZE_LARGE = 'lg'; | ||
const SIZE_MEDIUM = 'md'; | ||
|
||
/** | ||
* @inherit doc | ||
* @inheritdoc | ||
*/ | ||
protected $_pluginName = 'popoverX'; | ||
public $pluginName = 'popoverX'; | ||
|
||
/** | ||
* @var string the popover contextual type. Must be one of the [[TYPE]] constants | ||
* Defaults to `PopoverX::TYPE_DEFAULT` or `default`. | ||
* @var string the popover contextual type. Must be one of the [[TYPE]] constants Defaults to | ||
* `PopoverX::TYPE_DEFAULT` or `default`. | ||
*/ | ||
public $type = self::TYPE_DEFAULT; | ||
|
||
/** | ||
* @var string the popover placement. Must be one of the [[ALIGN]] constants | ||
* Defaults to `PopoverX::ALIGN_RIGHT` or `right`. | ||
* @var string the popover placement. Must be one of the [[ALIGN]] constants Defaults to `PopoverX::ALIGN_RIGHT` or | ||
* `right`. | ||
*/ | ||
public $placement = self::ALIGN_RIGHT; | ||
|
||
/** | ||
* @var string the size of the popover dialog. Must be [[PopoverX::SIZE_LARGE]] | ||
* or [[PopoverX::SIZE_MEDIUM]] | ||
* @var string the size of the popover dialog. Must be [[PopoverX::SIZE_LARGE]] or [[PopoverX::SIZE_MEDIUM]] | ||
*/ | ||
public $size; | ||
|
||
/** | ||
* @var string the header content in the popover dialog. | ||
*/ | ||
public $header; | ||
|
||
/** | ||
* @var array the HTML attributes for the header. The following special | ||
* options are supported: | ||
* @var array the HTML attributes for the header. The following special options are supported: | ||
* | ||
* - tag: string, the HTML tag for rendering the header. Defaults to 'div'. | ||
* | ||
*/ | ||
public $headerOptions = []; | ||
|
||
/** | ||
* @var string the body content | ||
*/ | ||
public $content = ''; | ||
|
||
/** | ||
* @var array the HTML attributes for the popover indicator arrow. | ||
*/ | ||
public $arrowOptions = []; | ||
public $arrowOptions = []; | ||
|
||
/** | ||
* @var string the footer content in the popover dialog. | ||
*/ | ||
public $footer; | ||
|
||
/** | ||
* @var array the HTML attributes for the footer. The following special | ||
* @var array the HTML attributes for the footer. The following special | ||
* options are supported: | ||
* | ||
* - tag: string, the HTML tag for rendering the footer. Defaults to 'div'. | ||
* | ||
*/ | ||
public $footerOptions = []; | ||
|
||
/** | ||
* @var array the options for rendering the close button tag. The close button | ||
* is displayed in the header of the popover dialog. Clicking on the button will | ||
* hide the popover dialog. If this is null, no close button will be rendered. | ||
* | ||
* The following special options are supported: | ||
* @var array the options for rendering the close button tag. The close button is displayed in the header of the | ||
* popover dialog. Clicking on the button will hide the popover dialog. If this is null, no close button will | ||
* be rendered. The following special options are supported: | ||
* | ||
* - tag: string, the HTML tag for rendering the button. Defaults to 'button'. | ||
* - label: string, the label of the button. Defaults to '×'. | ||
* | ||
* The rest of the options will be rendered as the HTML attributes of the button tag. | ||
* Please refer to the [PopoverX plugin documentation](http://plugins.krajee.com/popover-x) and the | ||
* [Modal plugin help](http://getbootstrap.com/javascript/#modals) for the supported HTML attributes. | ||
* The rest of the options will be rendered as the HTML attributes of the button tag. Please refer to the [PopoverX | ||
* plugin documentation](http://plugins.krajee.com/popover-x) and the [Modal plugin | ||
* help](http://getbootstrap.com/javascript/#modals) for the supported HTML attributes. | ||
*/ | ||
public $closeButton = []; | ||
|
||
/** | ||
* @var array the options for rendering the toggle button tag. | ||
* The toggle button is used to toggle the visibility of the popover dialog. | ||
* If this property is null, no toggle button will be rendered. | ||
* | ||
* The following special options are supported: | ||
* @var array the options for rendering the toggle button tag. The toggle button is used to toggle the visibility | ||
* of the popover dialog. If this property is null, no toggle button will be rendered. The following special | ||
* options are supported: | ||
* | ||
* - tag: string, the tag name of the button. Defaults to 'button'. | ||
* - label: string, the label of the button. Defaults to 'Show'. | ||
* | ||
* The rest of the options will be rendered as the HTML attributes of the button tag. | ||
* Please refer to the [PopoverX plugin documentation](http://plugins.krajee.com/popover-x) and the | ||
* [Modal plugin help](http://getbootstrap.com/javascript/#modals) for the supported HTML attributes. | ||
* | ||
* The rest of the options will be rendered as the HTML attributes of the button tag. Please refer to the [PopoverX | ||
* plugin documentation](http://plugins.krajee.com/popover-x) and the [Modal plugin | ||
* help](http://getbootstrap.com/javascript/#modals) for the supported HTML attributes. | ||
* | ||
*/ | ||
public $toggleButton; | ||
|
||
/** | ||
* @inheritdoc | ||
*/ | ||
public function init() | ||
public function run() | ||
{ | ||
$this->renderWidget(); | ||
} | ||
|
||
/** | ||
* Initializes and renders the widget | ||
*/ | ||
public function renderWidget() | ||
{ | ||
parent::init(); | ||
$this->initOptions(); | ||
echo $this->renderToggleButton() . "\n"; | ||
echo Html::beginTag('div', $this->options) . "\n"; | ||
echo Html::tag('div', '', $this->arrowOptions); | ||
echo $this->renderHeader() . "\n"; | ||
echo $this->renderBodyBegin() . "\n"; | ||
} | ||
|
||
/** | ||
* @inheritdoc | ||
*/ | ||
public function run() | ||
{ | ||
echo "\n" . $this->renderBodyEnd(); | ||
echo "\n" . $this->renderFooter(); | ||
echo "\n" . Html::endTag('div'); | ||
$this->registerAssets(); | ||
} | ||
} | ||
|
||
/** | ||
* Renders the header HTML markup of the popover dialog. | ||
* | ||
* @return string the rendering result | ||
*/ | ||
protected function renderHeader() | ||
|
@@ -201,15 +195,17 @@ protected function renderHeader() | |
|
||
/** | ||
* Renders the opening tag of the popover dialog body. | ||
* | ||
* @return string the rendering result | ||
*/ | ||
protected function renderBodyBegin() | ||
{ | ||
return Html::beginTag('div', ['class' => 'popover-content']); | ||
return Html::beginTag('div', ['class' => 'popover-content']); | ||
} | ||
|
||
/** | ||
* Renders the closing tag of the popover dialog body. | ||
* | ||
* @return string the rendering result | ||
*/ | ||
protected function renderBodyEnd() | ||
|
@@ -219,21 +215,23 @@ protected function renderBodyEnd() | |
|
||
/** | ||
* Renders the HTML markup for the footer of the popover dialog. | ||
* | ||
* @return string the rendering result | ||
*/ | ||
protected function renderFooter() | ||
{ | ||
if (!empty($this->footer)) { | ||
$tag = ArrayHelper::remove($this->footerOptions, 'tag', 'div'); | ||
Html::addCssClass($this->footerOptions, 'popover-footer'); | ||
return Html::tag('div', "\n" . $this->footer . "\n", $this->footerOptions); | ||
return Html::tag($tag, "\n" . $this->footer . "\n", $this->footerOptions); | ||
} else { | ||
return null; | ||
} | ||
} | ||
|
||
/** | ||
* Renders the toggle button. | ||
* | ||
* @return string the rendering result | ||
*/ | ||
protected function renderToggleButton() | ||
|
@@ -252,6 +250,7 @@ protected function renderToggleButton() | |
|
||
/** | ||
* Renders the close button. | ||
* | ||
* @return string the rendering result | ||
*/ | ||
protected function renderCloseButton() | ||
|
@@ -281,7 +280,7 @@ protected function initOptions() | |
$size = !empty($this->size) ? ' popover-' . $this->size : ''; | ||
Html::addCssClass($this->options, 'popover popover-' . $this->type . $size); | ||
Html::addCssClass($this->arrowOptions, 'arrow'); | ||
|
||
if ($this->pluginOptions !== false) { | ||
$this->pluginOptions = ArrayHelper::merge($this->pluginOptions, ['show' => false]); | ||
} | ||
|
@@ -304,7 +303,7 @@ protected function initOptions() | |
} | ||
} | ||
} | ||
|
||
/** | ||
* Registers the needed assets | ||
*/ | ||
|
@@ -313,7 +312,7 @@ public function registerAssets() | |
$view = $this->getView(); | ||
PopoverXAsset::register($view); | ||
if ($this->toggleButton === null) { | ||
$this->registerPlugin($this->_pluginName); | ||
$this->registerPlugin($this->pluginName); | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,13 +1,13 @@ | ||
<?php | ||
/** | ||
* @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 | ||
* @copyright Copyright © Kartik Visweswaran, Krajee.com, 2014 - 2016 | ||
* @package yii2-popover-x | ||
* @version 1.3.1 | ||
* @version 1.3.2 | ||
*/ | ||
|
||
namespace kartik\popover; | ||
|
||
use Yii; | ||
use kartik\base\AssetBundle; | ||
|
||
/** | ||
* Asset bundle for PopoverX widget. Includes assets from | ||
|
@@ -18,7 +18,7 @@ | |
* @author Kartik Visweswaran <[email protected]> | ||
* @since 1.0 | ||
*/ | ||
class PopoverXAsset extends \kartik\base\AssetBundle | ||
class PopoverXAsset extends AssetBundle | ||
{ | ||
public $depends = [ | ||
'yii\web\YiiAsset', | ||
|
Oops, something went wrong.