How To Embed The Wysiwyg Pro Html Editor In A Form

How to embed the WysiwygPro html editor in a form

FIXME This howBold TextBold TextBold Text-to does not reflect Akelos best practices. The documentation bellow could be done in a cleaner way by using helpers. And better yet, wrapping the helper and the Editor into a plugin.

http://www.wysiwygpro.com/ is a decent editor, although it's not free ($64 a domain at time of writing). How to use it in your project?

For start: You cannot put the embed code in your _form partial, or any other view file. The example code provided by ViziMetrics is something like this:

// include the WysiwygPro script 
include_once('wysiwygPro/wysiwygPro.class.php'); 
 
// create a new WysiwygPro instance 
$editor = new wysiwygPro(); 
 
// give the editor a name 
$editor->name = 'demo';
 
// display the editor 
$editor->display(700, 400);

.. but the 'include' statement alone will throw an error when used in a view.

Solution: instantiate your editor in your controller:

// include the WysiwygPro script 
include_once($_SERVER['DOCUMENT_ROOT'].'/wysiwygPro/wysiwygPro.class.php');
 
// create a new WysiwygPro Instance
$this->editor = new wysiwygPro();
 
// give the editor a name
$this->editor->name = 'page[content]';
 
// set the html content
$this->editor->value = $this->page->content;

So you'll only have to display the editor in your view

<p>
   <label for="page_content">Pagecontent</label><br />        
   <?$editor->display('100%',400);?>
</p>

Here are some other settings that might be of use (all in your controller of course)

// set the HTML version and charset to the Akelos defaults
$this->editor->htmlVersion = 'XHTML 1.0 Transitional';
$this->editor->htmlCharset = 'UTF-8';
 
// load the stylesheet
$this->editor->addStylesheet('/stylesheets/scaffold.css');
 
// when having a multilingual site, you might as well use the provided translations
switch($this->language->getCurrentLocale()){
 case'fr'; $this->editor->lang='fr-fr'; break;
 case'de'; $this->editor->lang='de-de'; break;
 default ; $this->editor->lang='en-us'; break;
}

But that's not all you need to do. That would be to easy.
There's one more thing: Akelos uses a custom PHP session name.. and WysiwygPro puts the settings of the embedded editor in the session so the pop-up windows (used when adding an image, inserting a table,..) also have the right settings.

So, you'll have to let the WysiwygPro editor know of the custom session_name Akelos is using.

By default Akelos uses 'AK_' followed by 6 numbers generated using your hostname and application directory. You can easily read it out using

echo session_name();

But.. if you website is accessible under different domainnames (as most sites are, simply by omitting 'www.') you might have a problem.
It's probably better to set your own session_name. In config/config.php:

define('AK_SESSION_NAME','yoursessionname');

And then in wysiwygPro/conf/customSessHandlers.inc.php

session_name('yoursessionname');
session_start();

And now everything should work.

 
how-to-embed-wysiwygpro-editor.txt · Last modified: 2008/12/06 19:25 by 94.69.21.238
 

The Akelos Framework was created by Bermi Ferrer and other contributors.
Potions of the code and documentation have been ported from Ruby on Rails.

The Akelos Framework is released under the LGPL license.

"Akelos", "Akelos Framework", and the Akelos logo are trademarks of Bermi Labs All rights reserved.

Wiki driven by DokuWiki