herbary
(Herba Nv)
June 16, 2010, 7:20am
1
Привет. есть представление формы. на это поле хочу подключить редактор:
<div class="row">
<?php echo $form->label($model,'good_info'); ?>
<?php echo $form->textArea($model,'good_info',array('rows'=>6, 'cols'=>50)); ?>
</div>
в мануале http://www.yiiframew …ymce/#changelog написано не много:
<?php $this->widget('application.extensions.tinymce.ETinyMce', array('name'=>'html')); ?>
и мне не понятно как связать мой код с этим примером - как присваивается переменная содержимого, как переключиться в расширенный режим редактора и прочее.
сможет мне кто-нибудь пояснить?
andy_s
(Arekandrei)
June 16, 2010, 8:04am
2
Вот более полный пример для данного расширения:
<?php echo $form->labelEx($model, 'text'); ?>
<?php
$this->widget('application.extensions.tinymce.ETinyMce', array(
'model'=>$model,
'attribute'=>'text',
'language'=>'ru',
'htmlOptions'=>array('style'=>'width: 600px; height: 200px;')
));
?>
Список доступных свойств, которые можно указать во втором аргументе, можете посмотреть в самом файле ETinyMce.
herbary
(Herba Nv)
June 18, 2010, 12:52pm
3
а как быть если хочется получить список картинок из определенной папки при вставки имиджа. смотрел на http://wiki.moxiecode.com/index.php/TinyMCE:Configuration/external_image_list_url но что-то ясней не стало.
поможет кто?
herbary
(Herba Nv)
June 23, 2010, 5:06am
4
в сети много сообщений о сложностях с ETinyMce. может стоит использовать какойто другой редактор - лишь бы работала вставка картинок из генерируемого списка картинок папки. может посоветовать что-то?
andy_s
(Arekandrei)
June 23, 2010, 7:30am
5
Первое время я использовал ETinyMCE, но потом решил написать для себя гораздо более простую обертку для TinyMCE:
protected/extensions/tiny_mce/TinyMCE.php:
class TinyMCE extends CInputWidget
{
public $editorOptions = array();
public function run()
{
list($name, $id) = $this->resolveNameID();
// Publishing assets.
$dir = dirname(__FILE__);
$assets = Yii::app()->getAssetManager()->publish($dir.DIRECTORY_SEPARATOR.'assets');
$this->editorOptions['script_url'] = $assets.'/tiny_mce.js';
// Registering javascript.
$cs = Yii::app()->getClientScript();
$cs->registerCoreScript('jquery');
$cs->registerScriptFile($assets.'/jquery.tinymce.js');
$cs->registerScript(
'Yii.'.get_class($this).'#'.$id,
'$(function(){$("#'.$id.'").tinymce('.CJavaScript::encode($this->editorOptions).');});'
);
$this->htmlOptions['id'] = $id;
if($this->hasModel())
$html = CHtml::activeTextArea($this->model, $this->attribute, $this->htmlOptions);
else
$html = CHtml::textArea($name, $this->value, $this->htmlOptions);
echo $html;
}
}
Вся работа виджета сводится лишь к регистрации необходимых скриптов. Дублировать в этом классе свойства самого редактора я считаю излишним. Тем более при добавлении разработчиками новых свойств существующее расширение вряд ли будет обновлено в скором времени.
А при использовании такого подхода я просто качаю с официального сайта jQuery-версию TinyMCE, помещаю её в папку protected/extensions/tiny_mce/assets, а в представлении использую следующий код:
<?php $this->widget('application.extensions.tiny_mce.TinyMCE', array(
'model'=>$model,
'attribute'=>'text',
'editorOptions'=>array(
'language'=>'ru',
'width'=>'100%',
'height'=>'150px',
),
));
?>
herbary
(Herba Nv)
June 25, 2010, 12:55pm
6
вобщем остановился на FCKeditor - настраивается интуитивно. TinyMCE - это плохо.
andy_s
(Arekandrei)
June 25, 2010, 1:21pm
7
Всегда использовал TinyMCE и не жалуюсь, так что не нужно таких категоричных суждений
herbary
(Herba Nv)
June 28, 2010, 7:46am
8
конечно это мое мнение. что я пробовал:
с fceditor - как делать стало понятно через полчаса
а с TinyMCE - пару месяцев периодически наскакивал и откатывался
но конечно никому ничего не навязываю