Add Cleditor to other forms in 2.0
vrijvlinder
MVP
I managed to add Cleditor editor to all my forms in my forum. That is Activity, Conversations,Messages also.
This is what I did
class cleditorPlugin extends Gdn_Plugin {
public function PostController_Render_Before($Sender) {
$this->_AddCLEditor($Sender);
}
public function DiscussionController_Render_Before($Sender) {
$this->_AddCLEditor($Sender);
}
//adds Cleditor to Activity Form
public function ActivityController_Render_Before($Sender) {
$this->_AddCLEditor($Sender);
}
//adds Cleditor to Profile Activity Form
public function ProfileController_Render_Before($Sender) {
$this->_AddCLEditor($Sender);
}
//adds Cleditor to the Conversations Form
public function ConversationsController_Render_Before($Sender) {
$this->_AddCLEditor($Sender);
}
//adds Cleditor to the Messages Form
public function MessagesController_Render_Before($Sender) {
$this->_AddCLEditor($Sender);
}
private function _AddCLEditor($Sender) {
// Turn off safestyles so the inline styles get applied to comments
$Config = Gdn::Factory(Gdn::AliasConfig);
$Config->Set('Garden.Html.SafeStyles', FALSE);
// Add the CLEditor to the form
$Options = array('ie' => 'gt IE 6', 'notie' => TRUE); // Exclude IE6
$Sender->RemoveJsFile('jquery.autogrow.js');
$Sender->AddJsFile('jquery.cleditor'.(Debug() ? '' : '.min').'.js', 'plugins/cleditor', $Options);
$Sender->AddCssFile('jquery.cleditor.css', 'plugins/cleditor', $Options);
$Sender->Head->AddString('
<style type="text/css">
a.PreviewButton {
display: none !important;
}
</style>
<script type="text/javascript">
jQuery(document).ready(function($) {
// Make sure the removal of autogrow does not break anything
jQuery.fn.autogrow = function(o) { return; }
// Attach the editor to comment boxes
jQuery("#Form_Body.TextBox,#Form_Comment.TextBox").livequery(function() {
var frm = $(this).parents("div.CommentForm");
ed = jQuery(this).cleditor({width:"100%", height:"100%"})[0];
this.editor = ed;
// Support other plugins!
jQuery(frm).bind("clearCommentForm", {editor:ed}, function(e) {
frm.find("textarea").hide();
e.data.editor.clear();
});
});
});
</script>');
}
public function Setup(){}
}
Tagged:
2
Comments
You can also add Cleditor to the Contact plugin message form and I would assume any other message form in other plugins;
I added the plugin controller to the cleditor
public function PluginController_Render_Before($Sender) { $this->_AddCLEditor($Sender); }and added #Form_Message to the jquery
**jQuery("#Form_Body.TextBox,#Form_Comment.TextBox,#Form_Message").livequery(function() {**❌ ✊ ♥. ¸. ••. ¸♥¸. ••. ¸♥ ✊ ❌