first commit
This commit is contained in:
@@ -0,0 +1,155 @@
|
||||
<?php
|
||||
if (!defined('BASEPATH')) exit('No direct script access allowed');
|
||||
|
||||
/*
|
||||
* CKEditor helper for CodeIgniter
|
||||
*
|
||||
* @author Samuel Sanchez <samuel.sanchez.work@gmail.com> - http://kromack.com/
|
||||
* @package CodeIgniter
|
||||
* @license http://creativecommons.org/licenses/by-nc-sa/3.0/us/
|
||||
* @tutorial http://kromack.com/developpement-php/codeigniter/ckeditor-helper-for-codeigniter/
|
||||
* @see http://codeigniter.com/forums/viewthread/127374/
|
||||
* @version 2010-08-28
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
* This function adds once the CKEditor's config vars
|
||||
* @author Samuel Sanchez
|
||||
* @access private
|
||||
* @param array $data (default: array())
|
||||
* @return string
|
||||
*/
|
||||
function cke_initialize($data = array())
|
||||
{
|
||||
|
||||
$return = '';
|
||||
|
||||
if (!defined('CI_CKEDITOR_HELPER_LOADED')) {
|
||||
|
||||
define('CI_CKEDITOR_HELPER_LOADED', TRUE);
|
||||
$return = '<script type="text/javascript" src="' . base_url() . $data['path'] . '/ckeditor.js"></script>';
|
||||
$return .= "<script type=\"text/javascript\">CKEDITOR_BASEPATH = '" . base_url() . $data['path'] . "/';</script>";
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function create JavaScript instances of CKEditor
|
||||
* @author Samuel Sanchez
|
||||
* @access private
|
||||
* @param array $data (default: array())
|
||||
* @return string
|
||||
*/
|
||||
function cke_create_instance($data = array())
|
||||
{
|
||||
|
||||
$return = "<script type=\"text/javascript\">
|
||||
CKEDITOR.replace('" . $data['id'] . "', {";
|
||||
|
||||
//Adding config values
|
||||
if (isset($data['config'])) {
|
||||
foreach ($data['config'] as $k => $v) {
|
||||
|
||||
// Support for extra config parameters
|
||||
if (is_array($v)) {
|
||||
$return .= $k . " : [";
|
||||
$return .= config_data($v);
|
||||
$return .= "]";
|
||||
} else {
|
||||
$return .= $k . " : '" . $v . "'";
|
||||
}
|
||||
|
||||
if ($k !== end(array_keys($data['config']))) {
|
||||
$return .= ",";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$return .= '});</script>';
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* This function displays an instance of CKEditor inside a view
|
||||
* @author Samuel Sanchez
|
||||
* @access public
|
||||
* @param array $data (default: array())
|
||||
* @return string
|
||||
*/
|
||||
function display_ckeditor($data = array())
|
||||
{
|
||||
// Initialization
|
||||
$return = cke_initialize($data);
|
||||
|
||||
// Creating a Ckeditor instance
|
||||
$return .= cke_create_instance($data);
|
||||
|
||||
|
||||
// Adding styles values
|
||||
if (isset($data['styles'])) {
|
||||
|
||||
$return .= "<script type=\"text/javascript\">CKEDITOR.addStylesSet( 'my_styles_" . $data['id'] . "', [";
|
||||
|
||||
|
||||
foreach ($data['styles'] as $k => $v) {
|
||||
|
||||
$return .= "{ name : '" . $k . "', element : '" . $v['element'] . "', styles : { ";
|
||||
|
||||
if (isset($v['styles'])) {
|
||||
foreach ($v['styles'] as $k2 => $v2) {
|
||||
|
||||
$return .= "'" . $k2 . "' : '" . $v2 . "'";
|
||||
|
||||
if ($k2 !== end(array_keys($v['styles']))) {
|
||||
$return .= ",";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$return .= '} }';
|
||||
|
||||
if ($k !== end(array_keys($data['styles']))) {
|
||||
$return .= ',';
|
||||
}
|
||||
}
|
||||
|
||||
$return .= ']);';
|
||||
|
||||
$return .= "CKEDITOR.instances['" . $data['id'] . "'].config.stylesCombo_stylesSet = 'my_styles_" . $data['id'] . "';
|
||||
</script>";
|
||||
}
|
||||
|
||||
return $return;
|
||||
}
|
||||
|
||||
/**
|
||||
* config_data function.
|
||||
* This function look for extra config data
|
||||
*
|
||||
* @author ronan
|
||||
* @link http://kromack.com/developpement-php/codeigniter/ckeditor-helper-for-codeigniter/comment-page-5/#comment-545
|
||||
* @access public
|
||||
* @param array $data. (default: array())
|
||||
* @return String
|
||||
*/
|
||||
function config_data($data = array())
|
||||
{
|
||||
$return = '';
|
||||
foreach ($data as $key) {
|
||||
if (is_array($key)) {
|
||||
$return .= "[";
|
||||
foreach ($key as $string) {
|
||||
$return .= "'" . $string . "'";
|
||||
if ($string != end(array_values($key))) $return .= ",";
|
||||
}
|
||||
$return .= "]";
|
||||
} else {
|
||||
$return .= "'" . $key . "'";
|
||||
}
|
||||
if ($key != end(array_values($data))) $return .= ",";
|
||||
}
|
||||
return $return;
|
||||
}
|
||||
Reference in New Issue
Block a user