CodeIgniter ckeditor helper
applications/helper/ckeditor_helper.php
- 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 = ''; $return .= "CKEDITOR_BASEPATH = '" . base_url() . $data['path'] . "/';"; } 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 = " 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 .= '});'; 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 .= "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'] . "'; "; } 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; }
usage: (path에는 ckeditor 경로를 넣어준다.)
'content', 'path' => 'ckeditor', 'config' => array( 'width' => '100%', 'height' => '150px', 'filebrowserUploadUrl' => '/pages/upload' ) ))?>
파일 업로드
public function upload() { /* 업로드 설정 */ if (!is_dir("uploads/".date("Ymd"))) mkdir("uploads/".date("Ymd"), 0777); $upload_config = array( 'upload_path' => 'uploads/'.date("Ymd").'/', 'allowed_types' => '*', 'encrypt_name' => true ); $this->load->library('upload', $upload_config); $message = ""; /* 업로드 처리 */ foreach ($_FILES as $field => $file) { if ($file['error'] == 0) { if ($this->upload->do_upload($field)) { $var_name = $field . "_path"; $upload_data = $this->upload->data(); $$var_name = $upload_data['full_path']; $$var_name = preg_replace("#^" . $_SERVER['DOCUMENT_ROOT'] . "#", "", $$var_name); } else { $errors = $this->upload->display_errors(); $message = "파일 업로드 중 오류 발생했습니다. $errors"; } } } echo '' . 'window.parent.CKEDITOR.tools.callFunction(' . $this->input->get('CKEditorFuncNum') . ', ' . '"' . $upload_path . '", ' . '"' . $message . '");' . ''; }
from http://ejnahc.tistory.com/470 by ccl(A) rewrite - 2020-03-06 03:54:32
댓글
댓글 쓰기