mirror of
https://github.com/YunoHost-Apps/limesurvey_ynh.git
synced 2024-09-03 19:36:32 +02:00
72 lines
1.9 KiB
PHP
72 lines
1.9 KiB
PHP
|
<?php
|
||
|
/**
|
||
|
* TbMarkdownEditorJs class
|
||
|
*
|
||
|
* @author: antonio ramirez <antonio@clevertech.biz>
|
||
|
* @copyright Copyright © Clevertech 2012-
|
||
|
* @license http://www.opensource.org/licenses/bsd-license.php New BSD License
|
||
|
* @package YiiBooster bootstrap.widgets
|
||
|
*/
|
||
|
class TbMarkdownEditorJS extends CInputWidget
|
||
|
{
|
||
|
/**
|
||
|
* Editor width
|
||
|
*/
|
||
|
public $width = '100%';
|
||
|
/**
|
||
|
* Editor height
|
||
|
*/
|
||
|
public $height = '400px';
|
||
|
|
||
|
/**
|
||
|
* Display editor
|
||
|
*/
|
||
|
public function run()
|
||
|
{
|
||
|
|
||
|
list($name, $id) = $this->resolveNameID();
|
||
|
|
||
|
$this->registerClientScript($id);
|
||
|
|
||
|
// Markdown Editor looks for an id of wmd-input...
|
||
|
$this->htmlOptions['id'] = $id;
|
||
|
|
||
|
$this->htmlOptions['class'] = (isset($this->htmlOptions['class']))
|
||
|
? $this->htmlOptions['class'].' wmd-input'
|
||
|
: 'wmd-input';
|
||
|
|
||
|
if (!array_key_exists('style', $this->htmlOptions))
|
||
|
{
|
||
|
$this->htmlOptions['style'] = "width:{$this->width};height:{$this->height};";
|
||
|
}
|
||
|
// Do we have a model?
|
||
|
if ($this->hasModel())
|
||
|
{
|
||
|
$html = CHtml::activeTextArea($this->model, $this->attribute, $this->htmlOptions);
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
$html = CHtml::textArea($name, $this->value, $this->htmlOptions);
|
||
|
}
|
||
|
echo $html;
|
||
|
}
|
||
|
|
||
|
/**
|
||
|
* Register required script files
|
||
|
* @param $id
|
||
|
*/
|
||
|
public function registerClientScript($id)
|
||
|
{
|
||
|
Yii::app()->bootstrap->registerAssetCss('markdown.editor.css');
|
||
|
Yii::app()->bootstrap->registerAssetJs('markdown.converter.js', CClientScript::POS_HEAD);
|
||
|
Yii::app()->bootstrap->registerAssetJs('markdown.sanitizer.js', CClientScript::POS_HEAD);
|
||
|
Yii::app()->bootstrap->registerAssetJs('markdown.editor.js', CClientScript::POS_HEAD);
|
||
|
Yii::app()->clientScript->registerScript(
|
||
|
$id,
|
||
|
"var converter = Markdown.getSanitizingConverter();
|
||
|
var editor = new Markdown.Editor(converter, '".$id."');
|
||
|
editor.run();",
|
||
|
CClientScript::POS_END
|
||
|
);
|
||
|
}
|
||
|
}
|