Class kartik\markdown\MarkdownEditor

Inheritancekartik\markdown\MarkdownEditor » kartik\base\InputWidget » yii\widgets\InputWidget » yii\base\Widget » yii\base\Component » yii\base\BaseObject
Implementskartik\base\BootstrapInterface, yii\base\Configurable, yii\base\ViewContextInterface
Uses Traitskartik\base\BootstrapTrait, kartik\base\TranslationTrait, kartik\base\WidgetTrait
Available since version1.0

A Markdown editor that implements PHP Markdown extra and PHP SmartyPantsTypographer styled using Bootstrap 3.0. Contains a lot of custom configuration and conversion options.

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
$attribute string|null The model attribute that this widget is associated with. yii\widgets\InputWidget
$autoIdPrefix string The prefix to the automatically generated widget IDs. yii\base\Widget
$baseSourcePath string|false Get parsed base source path based on $sourcePath setting. If $sourcePath is not set, it will return the current working directory of this widget class. kartik\base\WidgetTrait
$behaviors yii\base\Behavior[] List of behaviors attached to this component. yii\base\Component
$bootstrapCssFile string The bootstrap CSS file on CDN which will be used to format the exported HTML kartik\markdown\MarkdownEditor
$bsColCssPrefixes array The bootstrap grid column css prefixes mapping, the key is the bootstrap versions, and the value is an array containing the sizes and their corresponding grid column css prefixes. kartik\base\BootstrapTrait
$bsCssMap array CSS conversion mappings across bootstrap library versions. kartik\base\BootstrapTrait
$bsExtBasename integer The yii2 bootstrap extension base name (readonly property available via getter method getBsExtBasename()) kartik\base\BootstrapTrait
$bsVer integer Bootstrap version number currently set (readonly property available via getter method getBsVer()) kartik\base\BootstrapTrait
$bsVersion integer|string The bootstrap library version that you wish to use for this specific extension / widget. kartik\base\BootstrapTrait
$buttonGroupOptions array The HTML attributes for all toolbar button groups used in the header and footer kartik\markdown\MarkdownEditor
$buttonOptions array The HTML attributes for all toolbar buttons used in the header and footer kartik\markdown\MarkdownEditor
$containerOptions array The HTML attributes for the container holding all elements together kartik\markdown\MarkdownEditor
$convertFormat boolean Whether the widget should automatically format the date from the PHP DateTime format to the javascript/jquery plugin format. kartik\base\InputWidget
$counter integer A counter used to generate $id for widgets. yii\base\Widget
$data array The data (for list inputs) kartik\base\InputWidget
$defaultBtnCss string Default bootstrap button CSS (readonly property available via getter method getDefaultBtnCss()) kartik\base\BootstrapTrait
$defaultIconPrefix string Default icon prefix (readonly property available via getter method getDefaultIconPrefix()) kartik\base\BootstrapTrait
$defaultOptions array Default HTML attributes or other settings for widgets. kartik\base\WidgetTrait
$defaultPluginOptions array Default plugin options for the widget kartik\base\WidgetTrait
$disabled boolean Whether input is to be disabled kartik\base\InputWidget
$dropdownClass string Bootstrap dropdown class name based on currently configured bootstrap version (readonly property available via getter method getDropdownClass()) kartik\base\BootstrapTrait
$editorOptions array The HTML attributes for the container holding the header, input, and footer kartik\markdown\MarkdownEditor
$emptyPreview string Message displayed if preview is empty kartik\markdown\MarkdownEditor
$encodeLabels boolean Whether to encode the button labels Defaults to true. kartik\markdown\MarkdownEditor
$exportCss string The CSS applied to the exported converted output kartik\markdown\MarkdownEditor
$exportFileName string The export file name for download. kartik\markdown\MarkdownEditor
$exportHeader string The header message appended at the beginning of the exported converted output kartik\markdown\MarkdownEditor
$exportHtmlAlert string Deprecated and not used since v1. kartik\markdown\MarkdownEditor
$exportMeta string The export meta content to be appended at the beginning of the exported converted output kartik\markdown\MarkdownEditor
$exportTextAlert string Deprecated and not used since v1. kartik\markdown\MarkdownEditor
$field yii\widgets\ActiveField Active input field, which triggers this widget rendering. yii\widgets\InputWidget
$footer string The template to display the footer. kartik\markdown\MarkdownEditor
$footerButtons array The footer toolbar configuration. kartik\markdown\MarkdownEditor
$footerMessage string Help message displayed in footer kartik\markdown\MarkdownEditor
$footerOptions array The HTML attributes for the footer kartik\markdown\MarkdownEditor
$hashVarLoadPosition integer The position where the client JS hash variables for the input widget will be loaded. kartik\base\WidgetTrait
$headerOptions array The HTML attributes for the header kartik\markdown\MarkdownEditor
$height integer The default height of the textarea input in px kartik\markdown\MarkdownEditor
$i18n array The the internalization configuration for this widget. kartik\base\TranslationTrait
$id string|null ID of the widget. Note that the type of this property differs in getter and setter. See getId() and setId() for details. yii\base\Widget
$language string The language configuration (e.g. 'fr-FR', 'zh-CN'). kartik\base\InputWidget
$model yii\base\Model|null The data model that this widget is associated with. yii\widgets\InputWidget
$moduleId string The module identifier if this widget is part of a module. kartik\base\WidgetTrait
$name string|null The input name. yii\widgets\InputWidget
$options array The HTML attributes for the textarea input kartik\markdown\MarkdownEditor
$pjaxContainerId string The identifier for the PJAX widget container if the widget is to be rendered inside a PJAX container. kartik\base\WidgetTrait
$pjaxDuplicationFix boolean Prevent duplication of pjax containers when browser back & forward buttons are pressed. kartik\base\WidgetTrait
$pluginDestroyJs string The javascript that will be used to destroy the jQuery plugin kartik\base\WidgetTrait
$pluginEvents array Widget JQuery events. kartik\base\WidgetTrait
$pluginLoading boolean Show loading indicator while plugin loads kartik\base\InputWidget
$pluginName string The plugin name kartik\base\WidgetTrait
$pluginOptions array Widget plugin options. kartik\base\WidgetTrait
$previewAction string|null Set custom action to use for preview kartik\markdown\MarkdownEditor
$previewOptions array The HTML attributes for the preview container which will display the converted HTML text kartik\markdown\MarkdownEditor
$previewProgress string The content shown in preview window while loading / processing the preview kartik\markdown\MarkdownEditor
$readonly boolean Whether input is to be readonly kartik\base\InputWidget
$showExport boolean Show the export button - defaults to true kartik\markdown\MarkdownEditor
$showPreview boolean Show the preview button - defaults to true kartik\markdown\MarkdownEditor
$smarty boolean Use Smarty templates kartik\markdown\MarkdownEditor
$sourcePath string Directory path to the original widget source. kartik\base\WidgetTrait
$stack yii\base\Widget[] The widgets that are currently being rendered (not ended). yii\base\Widget
$toolbar array The header toolbar configuration. kartik\markdown\MarkdownEditor
$value string The input value. yii\widgets\InputWidget
$view yii\web\View The view object that can be used to render views or view files. Note that the type of this property differs in getter and setter. See getView() and setView() for details. yii\base\Widget
$viewPath string The directory containing the view files for this widget. yii\base\Widget

Protected Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
$_bsVer integer Current bootstrap version number kartik\base\BootstrapTrait
$_dataVar string The HTML5 data variable name that will be used to store the Json encoded pluginOptions within the element on which the jQuery plugin will be initialized. kartik\base\WidgetTrait
$_defaultBtnCss string Default bootstrap button CSS kartik\base\BootstrapTrait
$_defaultIconPrefix string Default icon CSS prefix kartik\base\BootstrapTrait
$_encOptions string The JSON encoded plugin options. kartik\base\WidgetTrait
$_hashVar string The generated hashed variable name that will store the JSON encoded pluginOptions in yii\web\View::POS_HEAD. kartik\base\WidgetTrait
$_isBs4 boolean Flag to detect whether bootstrap 4. kartik\base\BootstrapTrait
$_lang string The two or three letter lowercase code for the language according to ISO-639. kartik\base\InputWidget
$_langFile string The language js file. kartik\base\InputWidget
$_loadIndicator string The indicator to be displayed while plugin is loading. kartik\base\InputWidget
$_msgCat string Translation message file category name for i18n. kartik\base\TranslationTrait

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
addCssClass() Adds bootstrap CSS class to options by parsing the bootstrap version for the specified Bootstrap CSS type. kartik\base\BootstrapTrait
afterRun() This method is invoked right after a widget is executed. yii\base\Widget
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
beforeRun() This method is invoked right before the widget is executed. yii\base\Widget
begin() Begins a widget. yii\base\Widget
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
className() Returns the fully qualified name of this class. yii\base\BaseObject
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
end() Ends a widget. yii\base\Widget
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
generateMessages() Generate default messages kartik\markdown\MarkdownEditor
getBSClass() Gets the respective Bootstrap class based on currently configured bootstrap version. kartik\base\BootstrapTrait
getBaseSourcePath() Get parsed base source path based on $sourcePath setting. If $sourcePath is not set, it will return the current working directory of this widget class. kartik\base\WidgetTrait
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
getBsVer() Gets the current set bootstrap version number. kartik\base\BootstrapTrait
getCssClass() Gets bootstrap css class by parsing the bootstrap version for the specified BS CSS type. kartik\base\BootstrapTrait
getDefaultBtnCss() Gets the default button CSS kartik\base\BootstrapTrait
getDefaultIconPrefix() Gets the default icon css prefix kartik\base\BootstrapTrait
getDropdownClass() Gets the respective bootstrap dropdown class name based on currently configured bootstrap version. kartik\base\BootstrapTrait
getId() Returns the ID of the widget. yii\base\Widget
getView() kartik\base\WidgetTrait
getViewPath() Returns the directory containing the view files for this widget. yii\base\Widget
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() Initialize the widget kartik\markdown\MarkdownEditor
initI18N() Yii i18n messages configuration for generating translations kartik\base\TranslationTrait
isBs() Validate Bootstrap version kartik\base\BootstrapTrait
isBs4() Validate if Bootstrap 4.x version. kartik\base\BootstrapTrait
off() Detaches an existing event handler from this component. yii\base\Component
on() Attaches an event handler to an event. yii\base\Component
registerWidgetJs() Registers a JS code block for the widget. kartik\base\WidgetTrait
removeCssClass() Removes bootstrap CSS class from options by parsing the bootstrap version for the specified Bootstrap CSS type. kartik\base\BootstrapTrait
render() Renders a view. yii\base\Widget
renderFile() Renders a view file. yii\base\Widget
renderFooter() Render the editor footer content kartik\markdown\MarkdownEditor
run() Run the widget kartik\markdown\MarkdownEditor
setId() Sets the ID of the widget. yii\base\Widget
setView() Sets the view object to be used by this widget. yii\base\Widget
trigger() Triggers an event. yii\base\Component
widget() Creates a widget instance and runs it. yii\base\Widget

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
addAsset() Adds an asset to the view. kartik\base\WidgetTrait
configureBsVersion() Configures the bootstrap version settings kartik\base\BootstrapTrait
convertDateFormat() Automatically convert the date format from PHP DateTime to Javascript DateTime format kartik\base\InputWidget
fixPjaxDuplication() Fix for weird PJAX container duplication behavior on pressing browser back and forward buttons. kartik\base\WidgetTrait
generateId() Generate HTML identifiers for elements kartik\markdown\MarkdownEditor
getBsExtBasename() The yii2-bootstrap extension base name. kartik\base\BootstrapTrait
getButtonId() Generate HTML Identifier for a button kartik\markdown\MarkdownEditor
getFooterMessage() Generates the footer message kartik\markdown\MarkdownEditor
getInput() Generates an input. kartik\base\InputWidget
getPluginScript() Returns the plugin registration script. kartik\base\WidgetTrait
hasModel() yii\widgets\InputWidget
hashPluginOptions() Generates a hashed variable to store the pluginOptions. kartik\base\WidgetTrait
initBsVersion() Initializes bootstrap versions for the widgets and asset bundles. kartik\base\BootstrapTrait
initDestroyJs() Generates the pluginDestroyJs script if it is not set. kartik\base\WidgetTrait
initDisability() Validates and sets disabled or readonly inputs. kartik\base\InputWidget
initInputWidget() Initializes the input widget. kartik\base\InputWidget
initLanguage() Initialize the plugin language. kartik\base\InputWidget
isSameVersion() Compares two versions and checks if they are of the same major BS version. kartik\base\BootstrapTrait
mergeDefaultOptions() Merge default options kartik\base\WidgetTrait
parseDateFormat() Parses and sets plugin date format based on attribute type using yii\helpers\FormatConverter. Currently this method is used only within the kartik\date\DatePicker and \kartik\datetime\DateTimePicker\ widgets. kartik\base\InputWidget
parseVer() Parses and returns the major BS version kartik\base\BootstrapTrait
registerAssets() Register client assets kartik\markdown\MarkdownEditor
registerPlugin() Registers a specific plugin and the related events kartik\base\WidgetTrait
registerPluginOptions() Registers plugin options by storing within a uniquely generated javascript variable. kartik\base\WidgetTrait
renderButton() Render each button in the toolbar kartik\markdown\MarkdownEditor
renderButtonGroup() Render each button group in the toolbar kartik\markdown\MarkdownEditor
renderHeader() Render the editor header content kartik\markdown\MarkdownEditor
renderInput() Render the text area input kartik\markdown\MarkdownEditor
renderInputHtml() Render a HTML input tag. yii\widgets\InputWidget
setDataVar() Sets a HTML5 data variable. kartik\base\WidgetTrait
setDefaultFooter() Setup default footer toolbar kartik\markdown\MarkdownEditor
setDefaultHeader() Setup default header toolbar kartik\markdown\MarkdownEditor
setLanguage() Sets the language JS file if it exists. kartik\base\InputWidget

Events

Hide inherited events

EventTypeDescriptionDefined By
EVENT_AFTER_RUN yii\base\WidgetEvent An event raised right after executing a widget. (available since version 2.0.11) yii\base\Widget
EVENT_BEFORE_RUN yii\base\WidgetEvent An event raised right before executing a widget. (available since version 2.0.11) yii\base\Widget
EVENT_INIT yii\base\Event An event that is triggered when the widget is initialized via init(). (available since version 2.0.11) yii\base\Widget

Constants

Hide inherited constants

ConstantValueDescriptionDefined By
BTN_BOLD 1 Header toolbar button constants kartik\markdown\MarkdownEditor
BTN_CODE 14 kartik\markdown\MarkdownEditor
BTN_CODE_BLOCK 15 kartik\markdown\MarkdownEditor
BTN_DL 11 kartik\markdown\MarkdownEditor
BTN_EXPORT 51 kartik\markdown\MarkdownEditor
BTN_EXPORT_1 52 kartik\markdown\MarkdownEditor
BTN_EXPORT_2 53 kartik\markdown\MarkdownEditor
BTN_FOOTNOTE 12 kartik\markdown\MarkdownEditor
BTN_H1 101 Heading dropdown items kartik\markdown\MarkdownEditor
BTN_H2 102 kartik\markdown\MarkdownEditor
BTN_H3 103 kartik\markdown\MarkdownEditor
BTN_H4 104 kartik\markdown\MarkdownEditor
BTN_H5 105 kartik\markdown\MarkdownEditor
BTN_H6 106 kartik\markdown\MarkdownEditor
BTN_HEADING 100 kartik\markdown\MarkdownEditor
BTN_HR 16 kartik\markdown\MarkdownEditor
BTN_IMAGE 6 kartik\markdown\MarkdownEditor
BTN_INDENT_L 7 kartik\markdown\MarkdownEditor
BTN_INDENT_R 8 kartik\markdown\MarkdownEditor
BTN_ITALIC 2 kartik\markdown\MarkdownEditor
BTN_MAXIMIZE 17 kartik\markdown\MarkdownEditor
BTN_NEW_LINE 4 kartik\markdown\MarkdownEditor
BTN_OL 10 kartik\markdown\MarkdownEditor
BTN_PARAGRAPH 3 kartik\markdown\MarkdownEditor
BTN_PREVIEW 50 Footer toolbar button constants kartik\markdown\MarkdownEditor
BTN_QUOTE 13 kartik\markdown\MarkdownEditor
BTN_UL 9 kartik\markdown\MarkdownEditor
ICON_CODE Custom icons to compensate for unavailable Bootstrap glyphicons kartik\markdown\MarkdownEditor
ICON_HR kartik\markdown\MarkdownEditor
LOAD_PROGRESS '
 
'
kartik\base\InputWidget

Property Details

$bootstrapCssFile public property

The bootstrap CSS file on CDN which will be used to format the exported HTML

public string $bootstrapCssFile 'http://netdna.bootstrapcdn.com/bootstrap/3.1.0/css/bootstrap.min.css'
$buttonGroupOptions public property

The HTML attributes for all toolbar button groups used in the header and footer

$buttonOptions public property

The HTML attributes for all toolbar buttons used in the header and footer

public array $buttonOptions = []
$containerOptions public property

The HTML attributes for the container holding all elements together

public array $containerOptions = [
    'class' => 'kv-md-container'
]
$editorOptions public property

The HTML attributes for the container holding the header, input, and footer

public array $editorOptions = [
    'class' => 'kv-md-editor'
]
$emptyPreview public property

Message displayed if preview is empty

public string $emptyPreview null
$encodeLabels public property

Whether to encode the button labels Defaults to true.

public boolean $encodeLabels true
$exportCss public property

The CSS applied to the exported converted output

public string $exportCss null
$exportFileName public property

The export file name for download. Defaults to markdown-export.

public string $exportFileName null
$exportHeader public property

The header message appended at the beginning of the exported converted output

public string $exportHeader null
$exportHtmlAlert public property

Deprecated and not used since v1.3.1. (originally alert message displayed before saving output as HTML)

public string $exportHtmlAlert null
$exportMeta public property

The export meta content to be appended at the beginning of the exported converted output

$exportTextAlert public property

Deprecated and not used since v1.3.1. (originally alert message displayed before saving output as Text)

public string $exportTextAlert null
$footer public property

The template to display the footer. The following special variables will be replaced:

  • {buttons}: array the configuration for footer toolbar buttons (see function setDefaultFooter())
  • {message}: array the footer help message displayed (see $footerMessage)
public string $footer '<div class = "btn-toolbar pull-right float-right">{buttons}</div><div class="kv-md-hint">{message}</div><div class="clearfix"></div>'
$footerButtons public property

The footer toolbar configuration. List of button groups to be setup for a Bootstrap styled toolbar. Each button group is an array, which requires the following parameters:

  • buttons: array of buttons to be setup.
    • the array key is the button identifier. Should be one of the BTN constants.
    • the array values contain these special attributes
      • icon: string the name of the glyphicon to be embedded before the label
      • label: string the label for the button. By default is HTML encoded and supports localization.
      • encodeLabel: boolean whether the label is HTML encoded (if not set will use the global $encodeLabels setting. If set to false will use the raw label as is.
      • items: an array for dropdown list of links for each button. Configuration is similar to buttons array.
      • options: HTML attributes for each button. If not set will use the global $buttonOptions
  • options: HTML attributes for the button group

See also function setDefaultFooter().

public array $footerButtons = []
$footerMessage public property

Help message displayed in footer

public string $footerMessage null
$footerOptions public property

The HTML attributes for the footer

public array $footerOptions = [
    'class' => 'kv-md-footer'
]
$headerOptions public property

The HTML attributes for the header

public array $headerOptions = [
    'class' => 'kv-md-header btn-toolbar'
]
$height public property

The default height of the textarea input in px

public integer $height 260
$options public property

The HTML attributes for the textarea input

public array $options = [
    'class' => 'kv-md-input'
]
$previewAction public property

Set custom action to use for preview

public string|null $previewAction null
$previewOptions public property

The HTML attributes for the preview container which will display the converted HTML text

public array $previewOptions = [
    'class' => 'kv-md-preview'
]
$previewProgress public property

The content shown in preview window while loading / processing the preview

public string $previewProgress null
$showExport public property

Show the export button - defaults to true

public boolean $showExport true
$showPreview public property

Show the preview button - defaults to true

public boolean $showPreview true
$smarty public property

Use Smarty templates

public boolean $smarty true
$toolbar public property

The header toolbar configuration. List of button groups to be setup for a Bootstrap styled toolbar. Each button group is an array, which requires the following parameters:

  • buttons: array of buttons to be setup.
    • Array key is the button identifier. Should be one of the BTN constants.
    • Array values contain these special attributes
      • icon: string the name of the glyphicon to be embedded before the label
      • label: string the label for the button. By default is HTML encoded and supports localization.
      • encodeLabel: boolean whether the label is HTML encoded (if not set will use the global $encodeLabels setting. If set to false will use the raw label as is.
      • items: an array for dropdown list of links for each button. Configuration is similar to buttons array.
      • options: HTML attributes for each button. If not set will use the global $buttonOptions
  • options: HTML attributes for the button group

See also function setDefaultToolbar().

public array $toolbar = []

Method Details

generateId() protected method

Generate HTML identifiers for elements

protected void generateId ( )
generateMessages() public method

Generate default messages

public void generateMessages ( )
getButtonId() protected method

Generate HTML Identifier for a button

protected string getButtonId ( $btn )
$btn integer

The button identifier (one of the BTN constants)

getFooterMessage() protected method

Generates the footer message

protected void getFooterMessage ( )
init() public method

Initialize the widget

public void init ( )
registerAssets() protected method

Register client assets

protected void registerAssets ( )
renderButton() protected method

Render each button in the toolbar

protected string renderButton ( $btn, $options = [], $markup true )
$btn integer

The button identifier (one of the BTN constants)

$options array

The HTML attributes for the button

$markup boolean

Identifies whether the button needs to call the markdown markup javascript on click. Defaults to true.

renderButtonGroup() protected method

Render each button group in the toolbar

protected string renderButtonGroup ( $group, $header true )
$group array

The button group configuration

$header boolean

Whether the button group is part of the header

renderFooter() public method

Render the editor footer content

public void renderFooter ( )
renderHeader() protected method

Render the editor header content

protected void renderHeader ( )
renderInput() protected method

Render the text area input

protected void renderInput ( )
run() public method

Run the widget

public void run ( )
setDefaultFooter() protected method

Setup default footer toolbar

protected void setDefaultFooter ( )
setDefaultHeader() protected method

Setup default header toolbar

protected void setDefaultHeader ( )