wising editor
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
- Nilp
- Člen | 65
Muzes si podedit Nette/Forms/TextArea
, v metode
getControl
automaticky prirazovat tridu takto:
/** @var string */
public $className = 'wysiwyg';
/**
* Generates control's HTML element.
* @return Html
*/
public function getControl()
{
$control = parent::getControl();
$control->class = $this->className;
return $control;
}
V metode loadHttpData
je dobre prohnat hodnoty nejakym filtrem,
napr. HtmlPurifier (ci Texy, s tim ale nemam zkusenosti).
/** @var string */
public $encoding = 'UTF-8';
/** @var string */
public $docType = 'XHTML 1.0 Transitional';
/**
* Loads HTTP data.
* @param array
* @return void
*/
public function loadHttpData($data)
{
$name = $this->getName();
$value = isset($data[$name]) && is_scalar($data[$name]) ? $data[$name] : NULL;
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', $this->encoding);
$config->set('HTML.Doctype', $this->docType);
$config->set('HTML.Allowed', 'p,a[href],strong,em,ul,ol,li,h4,h5');
$purifier = new HTMLPurifier($config);
$this->tmpValue = $purifier->purify($value);
$this->setValue($this->tmpValue);
}
Pote uz jen Javascriptem navesis libovolny WYSIWYG editor (pozor aby posilal semanticke tagy, ne ostylovany span), napr. jednoduchy uEditor pro jQuery (a pokud pouzivas ajax s jQuery Nette pluginem, hodne stesti, protoze to chce par uprav :)).