#7 and #8: The class CMS_EDITOR generates javascript code that replaces a textarea with a wysiwyg editor. Only a few methods have to be implemented by the subclasses, for example by CMD_EDITOR_CKEDITOR. The class CMS_FORM_TEXTAREA extends WSF_FORM_TEXTAREA with features to include the javascript from CMS_EDITOR. The most complex usage is shown in CMS_NODE_TYPE_WEBFORM_MANAGER, where the textarea is only replaced if "full_html" is selected as the desired body format. This works dynamically on the browser side as soon as the user selects another format.
38 lines
946 B
Plaintext
38 lines
946 B
Plaintext
note
|
|
description: "Summary description for {CMS_EDITOR_CKEDITOR}."
|
|
author: ""
|
|
date: "$Date$"
|
|
revision: "$Revision$"
|
|
|
|
class
|
|
CMS_EDITOR_CKEDITOR
|
|
|
|
inherit
|
|
CMS_EDITOR
|
|
|
|
feature -- Initialisation
|
|
|
|
load_assets : STRING
|
|
-- <Precursor>
|
|
do
|
|
Result := "<script src=%"//cdn.ckeditor.com/4.4.7/standard/ckeditor.js%"></script>"
|
|
end
|
|
|
|
feature -- Javascript
|
|
|
|
javascript_replace_textarea (a_textarea : WSF_FORM_TEXTAREA) : STRING
|
|
-- <Precursor>
|
|
do
|
|
-- Replaces the textarea with an editor instance. Save the instance in a variable
|
|
Result := editor_variable(a_textarea) + " = CKEDITOR.replace( '" + a_textarea.name + "' );"
|
|
end
|
|
|
|
javascript_restore_textarea (a_textarea : WSF_FORM_TEXTAREA) : STRING
|
|
-- <Precursor>
|
|
do
|
|
-- Replaces the textarea with an editor instance. Save the instance in a variable
|
|
Result := "if (" + editor_variable(a_textarea) + " != undefined) " + editor_variable(a_textarea) + ".destroy();"
|
|
end
|
|
|
|
end
|