Mimimum syndical pour en faire un produit zope / cmf.
[ckeditor.git] / skins / ckeditor / _samples / php / events.php
diff --git a/skins/ckeditor/_samples/php/events.php b/skins/ckeditor/_samples/php/events.php
new file mode 100644 (file)
index 0000000..a625192
--- /dev/null
@@ -0,0 +1,153 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">\r
+<!--\r
+Copyright (c) 2003-2011, CKSource - Frederico Knabben. All rights reserved.\r
+For licensing, see LICENSE.html or http://ckeditor.com/license\r
+-->\r
+<html xmlns="http://www.w3.org/1999/xhtml">\r
+<head>\r
+       <title>Adding Event Handlers &mdash; CKEditor Sample</title>\r
+       <meta content="text/html; charset=utf-8" http-equiv="content-type"/>\r
+       <link href="../sample.css" rel="stylesheet" type="text/css"/>\r
+</head>\r
+<body>\r
+       <h1 class="samples">\r
+               CKEditor Sample &mdash; Adding Event Handlers\r
+       </h1>\r
+       <div class="description">\r
+       <p>\r
+               This sample shows how to add event handlers to CKEditor with PHP.\r
+       </p>\r
+       <p>\r
+               A snippet of the configuration code can be seen below; check the source code of this page for\r
+               the full definition:\r
+       </p>\r
+       <pre class="samples">&lt;?php\r
+// Include the CKEditor class.\r
+include("ckeditor/ckeditor.php");\r
+\r
+// Create a class instance.\r
+$CKEditor = new CKEditor();\r
+\r
+// Path to the CKEditor directory.\r
+$CKEditor->basePath = '/ckeditor/';\r
+\r
+// The initial value to be displayed in the editor.\r
+$initialValue = 'This is some sample text.';\r
+\r
+// Add event handler, <em>instanceReady</em> is fired when editor is loaded.\r
+$CKEditor-><strong>addEventHandler</strong>('instanceReady', 'function (evt) {\r
+       alert("Loaded editor: " + evt.editor.name);\r
+}');\r
+\r
+// Create an editor instance.\r
+$CKEditor->editor("editor1", $initialValue);\r
+</pre>\r
+       </div>\r
+       <!-- This <div> holds alert messages to be display in the sample page. -->\r
+       <div id="alerts">\r
+               <noscript>\r
+                       <p>\r
+                               <strong>CKEditor requires JavaScript to run</strong>. In a browser with no JavaScript\r
+                               support, like yours, you should still see the contents (HTML data) and you should\r
+                               be able to edit it normally, without a rich editor interface.\r
+                       </p>\r
+               </noscript>\r
+       </div>\r
+       <form action="../sample_posteddata.php" method="post">\r
+               <label>Editor 1:</label>\r
+<?php\r
+\r
+/**\r
+ * Adds a global event, will hide the "Target" tab in the "Link" dialog window in all instances.\r
+ */\r
+function CKEditorHideLinkTargetTab(&$CKEditor) {\r
+\r
+       $function = 'function (ev) {\r
+               // Take the dialog window name and its definition from the event data.\r
+               var dialogName = ev.data.name;\r
+               var dialogDefinition = ev.data.definition;\r
+\r
+               // Check if the definition comes from the "Link" dialog window.\r
+               if ( dialogName == "link" )\r
+                       dialogDefinition.removeContents("target")\r
+       }';\r
+\r
+       $CKEditor->addGlobalEventHandler('dialogDefinition', $function);\r
+}\r
+\r
+/**\r
+ * Adds a global event, will notify about an open dialog window.\r
+ */\r
+function CKEditorNotifyAboutOpenedDialog(&$CKEditor) {\r
+       $function = 'function (evt) {\r
+               alert("Loading a dialog window: " + evt.data.name);\r
+       }';\r
+\r
+       $CKEditor->addGlobalEventHandler('dialogDefinition', $function);\r
+}\r
+\r
+// Include the CKEditor class.\r
+include("../../ckeditor.php");\r
+\r
+// Create a class instance.\r
+$CKEditor = new CKEditor();\r
+\r
+// Set a configuration option for all editors.\r
+$CKEditor->config['width'] = 750;\r
+\r
+// Path to the CKEditor directory, ideally use an absolute path instead of a relative dir.\r
+//   $CKEditor->basePath = '/ckeditor/'\r
+// If not set, CKEditor will try to detect the correct path.\r
+$CKEditor->basePath = '../../';\r
+\r
+// The initial value to be displayed in the editor.\r
+$initialValue = '<p>This is some <strong>sample text</strong>. You are using <a href="http://ckeditor.com/">CKEditor</a>.</p>';\r
+\r
+// Event that will be handled only by the first editor.\r
+$CKEditor->addEventHandler('instanceReady', 'function (evt) {\r
+       alert("Loaded editor: " + evt.editor.name);\r
+}');\r
+\r
+// Create the first instance.\r
+$CKEditor->editor("editor1", $initialValue);\r
+\r
+// Clear event handlers. Instances that will be created later will not have\r
+// the 'instanceReady' listener defined a couple of lines above.\r
+$CKEditor->clearEventHandlers();\r
+?>\r
+               <br />\r
+               <label>Editor 2:</label>\r
+<?php\r
+// Configuration that will only be used by the second editor.\r
+$config['width'] = '600';\r
+$config['toolbar'] = 'Basic';\r
+\r
+// Add some global event handlers (for all editors).\r
+CKEditorHideLinkTargetTab($CKEditor);\r
+CKEditorNotifyAboutOpenedDialog($CKEditor);\r
+\r
+// Event that will only be handled by the second editor.\r
+// Instead of calling addEventHandler(), events may be passed as an argument.\r
+$events['instanceReady'] = 'function (evt) {\r
+       alert("Loaded second editor: " + evt.editor.name);\r
+}';\r
+\r
+// Create the second instance.\r
+$CKEditor->editor("editor2", $initialValue, $config, $events);\r
+?>\r
+               <p>\r
+                       <input type="submit" value="Submit"/>\r
+               </p>\r
+       </form>\r
+       <div id="footer">\r
+               <hr />\r
+               <p>\r
+                       CKEditor - The text editor for the Internet - <a class="samples" href="http://ckeditor.com/">http://ckeditor.com</a>\r
+               </p>\r
+               <p id="copy">\r
+                       Copyright &copy; 2003-2011, <a class="samples" href="http://cksource.com/">CKSource</a> - Frederico\r
+                       Knabben. All rights reserved.\r
+               </p>\r
+       </div>\r
+</body>\r
+</html>\r