1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
---|
2 | <!--
|
---|
3 | Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.
|
---|
4 | For licensing, see LICENSE.html or http://ckeditor.com/license
|
---|
5 | -->
|
---|
6 | <html xmlns="http://www.w3.org/1999/xhtml">
|
---|
7 | <head>
|
---|
8 | <title>Adding Event Handlers — CKEditor Sample</title>
|
---|
9 | <meta content="text/html; charset=utf-8" http-equiv="content-type"/>
|
---|
10 | <link href="../sample.css" rel="stylesheet" type="text/css"/>
|
---|
11 | </head>
|
---|
12 | <body>
|
---|
13 | <h1 class="samples">
|
---|
14 | CKEditor Sample — Adding Event Handlers
|
---|
15 | </h1>
|
---|
16 | <div class="description">
|
---|
17 | <p>
|
---|
18 | This sample shows how to add event handlers to CKEditor with PHP.
|
---|
19 | </p>
|
---|
20 | <p>
|
---|
21 | A snippet of the configuration code can be seen below; check the source code of this page for
|
---|
22 | the full definition:
|
---|
23 | </p>
|
---|
24 | <pre class="samples"><?php
|
---|
25 | // Include the CKEditor class.
|
---|
26 | include("ckeditor/ckeditor.php");
|
---|
27 |
|
---|
28 | // Create a class instance.
|
---|
29 | $CKEditor = new CKEditor();
|
---|
30 |
|
---|
31 | // Path to the CKEditor directory.
|
---|
32 | $CKEditor->basePath = '/ckeditor/';
|
---|
33 |
|
---|
34 | // The initial value to be displayed in the editor.
|
---|
35 | $initialValue = 'This is some sample text.';
|
---|
36 |
|
---|
37 | // Add event handler, <em>instanceReady</em> is fired when editor is loaded.
|
---|
38 | $CKEditor-><strong>addEventHandler</strong>('instanceReady', 'function (evt) {
|
---|
39 | alert("Loaded editor: " + evt.editor.name);
|
---|
40 | }');
|
---|
41 |
|
---|
42 | // Create an editor instance.
|
---|
43 | $CKEditor->editor("editor1", $initialValue);
|
---|
44 | </pre>
|
---|
45 | </div>
|
---|
46 | <!-- This <div> holds alert messages to be display in the sample page. -->
|
---|
47 | <div id="alerts">
|
---|
48 | <noscript>
|
---|
49 | <p>
|
---|
50 | <strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript
|
---|
51 | support, like yours, you should still see the contents (HTML data) and you should
|
---|
52 | be able to edit it normally, without a rich editor interface.
|
---|
53 | </p>
|
---|
54 | </noscript>
|
---|
55 | </div>
|
---|
56 | <form action="../sample_posteddata.php" method="post">
|
---|
57 | <label>Editor 1:</label>
|
---|
58 | <?php
|
---|
59 |
|
---|
60 | /**
|
---|
61 | * Adds a global event, will hide the "Target" tab in the "Link" dialog window in all instances.
|
---|
62 | */
|
---|
63 | function CKEditorHideLinkTargetTab(&$CKEditor) {
|
---|
64 |
|
---|
65 | $function = 'function (ev) {
|
---|
66 | // Take the dialog window name and its definition from the event data.
|
---|
67 | var dialogName = ev.data.name;
|
---|
68 | var dialogDefinition = ev.data.definition;
|
---|
69 |
|
---|
70 | // Check if the definition comes from the "Link" dialog window.
|
---|
71 | if ( dialogName == "link" )
|
---|
72 | dialogDefinition.removeContents("target")
|
---|
73 | }';
|
---|
74 |
|
---|
75 | $CKEditor->addGlobalEventHandler('dialogDefinition', $function);
|
---|
76 | }
|
---|
77 |
|
---|
78 | /**
|
---|
79 | * Adds a global event, will notify about an open dialog window.
|
---|
80 | */
|
---|
81 | function CKEditorNotifyAboutOpenedDialog(&$CKEditor) {
|
---|
82 | $function = 'function (evt) {
|
---|
83 | alert("Loading a dialog window: " + evt.data.name);
|
---|
84 | }';
|
---|
85 |
|
---|
86 | $CKEditor->addGlobalEventHandler('dialogDefinition', $function);
|
---|
87 | }
|
---|
88 |
|
---|
89 | // Include the CKEditor class.
|
---|
90 | include("../../ckeditor.php");
|
---|
91 |
|
---|
92 | // Create a class instance.
|
---|
93 | $CKEditor = new CKEditor();
|
---|
94 |
|
---|
95 | // Set a configuration option for all editors.
|
---|
96 | $CKEditor->config['width'] = 750;
|
---|
97 |
|
---|
98 | // Path to the CKEditor directory, ideally use an absolute path instead of a relative dir.
|
---|
99 | // $CKEditor->basePath = '/ckeditor/'
|
---|
100 | // If not set, CKEditor will try to detect the correct path.
|
---|
101 | $CKEditor->basePath = '../../';
|
---|
102 |
|
---|
103 | // The initial value to be displayed in the editor.
|
---|
104 | $initialValue = '<p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>';
|
---|
105 |
|
---|
106 | // Event that will be handled only by the first editor.
|
---|
107 | $CKEditor->addEventHandler('instanceReady', 'function (evt) {
|
---|
108 | alert("Loaded editor: " + evt.editor.name);
|
---|
109 | }');
|
---|
110 |
|
---|
111 | // Create the first instance.
|
---|
112 | $CKEditor->editor("editor1", $initialValue);
|
---|
113 |
|
---|
114 | // Clear event handlers. Instances that will be created later will not have
|
---|
115 | // the 'instanceReady' listener defined a couple of lines above.
|
---|
116 | $CKEditor->clearEventHandlers();
|
---|
117 | ?>
|
---|
118 | <br />
|
---|
119 | <label>Editor 2:</label>
|
---|
120 | <?php
|
---|
121 | // Configuration that will only be used by the second editor.
|
---|
122 | $config['width'] = '600';
|
---|
123 | $config['toolbar'] = 'Basic';
|
---|
124 |
|
---|
125 | // Add some global event handlers (for all editors).
|
---|
126 | CKEditorHideLinkTargetTab($CKEditor);
|
---|
127 | CKEditorNotifyAboutOpenedDialog($CKEditor);
|
---|
128 |
|
---|
129 | // Event that will only be handled by the second editor.
|
---|
130 | // Instead of calling addEventHandler(), events may be passed as an argument.
|
---|
131 | $events['instanceReady'] = 'function (evt) {
|
---|
132 | alert("Loaded second editor: " + evt.editor.name);
|
---|
133 | }';
|
---|
134 |
|
---|
135 | // Create the second instance.
|
---|
136 | $CKEditor->editor("editor2", $initialValue, $config, $events);
|
---|
137 | ?>
|
---|
138 | <p>
|
---|
139 | <input type="submit" value="Submit"/>
|
---|
140 | </p>
|
---|
141 | </form>
|
---|
142 | <div id="footer">
|
---|
143 | <hr />
|
---|
144 | <p>
|
---|
145 | CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>
|
---|
146 | </p>
|
---|
147 | <p id="copy">
|
---|
148 | Copyright © 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico
|
---|
149 | Knabben. All rights reserved.
|
---|
150 | </p>
|
---|
151 | </div>
|
---|
152 | </body>
|
---|
153 | </html>
|
---|