* * @author CIBoard (develop@ciboard.co.kr) */ if ( ! function_exists('display_dhtml_editor')) { // Dhtml Editor 띄우기 function display_dhtml_editor($name = '', $content = '', $classname = '', $is_dhtml_editor = true, $editor_type = 'smarteditor') { $editorclassname = ''; $style = ''; if ($editor_type === 'smarteditor' && $is_dhtml_editor) { $editor_url = site_url('plugin/editor/smarteditor'); $editorclassname = 'smarteditor'; $style = 'style="width:98%;"'; } if ($editor_type === 'ckeditor' && $is_dhtml_editor) { $editor_url = site_url('plugin/editor/ckeditor'); $editorclassname = 'ckeditor'; $style = 'style="width:98%;"'; } $html = ''; if ($editor_type === 'smarteditor' && $is_dhtml_editor && ! defined('LOAD_DHTML_EDITOR_JS')) { $html .= "\n" . ''; $html .= "\n" . ''; $html .= "\n" . ''; define('LOAD_DHTML_EDITOR_JS', true); } if ($editor_type === 'ckeditor' && $is_dhtml_editor && ! defined('LOAD_DHTML_EDITOR_JS')) { $html .= "\n" . ''; $html .= "\n" . ''; $html .= "\n" . ''; define('LOAD_DHTML_EDITOR_JS', true); } $html .= "\n"; return $html; } } // This method creates a key / value pair for a url string if(!function_exists('ft_nonce_create_query_string')){ function ft_nonce_create_query_string( $action = '', $user = '' ){ return "_nonce=".ft_nonce_create( $action , $user ); } } if(!function_exists('ft_nonce_get_unique_key')){ function ft_nonce_get_unique_key(){ static $cache = null; if( $cache !== null ){ return $cache; } $CI = & get_instance(); $cache = sha1($CI->config->item('encryption_key').session_id()); return $cache; } } if(!function_exists('ft_get_secret_key')){ function ft_get_secret_key($secret){ return md5(ft_nonce_get_unique_key().$secret); } } if(!function_exists('ft_nonce_get_session_key')){ function ft_nonce_get_session_key(){ return substr(md5(ft_nonce_get_unique_key()), 5); } } // This method creates an nonce. It should be called by one of the previous two functions. if(!function_exists('ft_nonce_create')){ function ft_nonce_create( $action = '',$user='', $timeoutSeconds=3600 ){ $CI = & get_instance(); $secret = ft_get_secret_key($action.$user); $CI->session->set_userdata('token_'.ft_nonce_get_session_key(), $secret); $salt = ft_nonce_generate_hash(); $time = time(); $maxTime = $time + $timeoutSeconds; $nonce = $salt . "|" . $maxTime . "|" . sha1( $salt . $secret . $maxTime ); return $nonce; } } // This method validates an nonce if(!function_exists('ft_nonce_is_valid')){ function ft_nonce_is_valid( $nonce, $action = '', $user='' ){ $CI = & get_instance(); $secret = ft_get_secret_key($action.$user); $token = $CI->session->userdata('token_'.ft_nonce_get_session_key()); if ($secret != $token){ return false; } if (is_string($nonce) == false) { return false; } $a = explode('|', $nonce); if (count($a) != 3) { return false; } $salt = $a[0]; $maxTime = intval($a[1]); $hash = $a[2]; $back = sha1( $salt . $secret . $maxTime ); if ($back != $hash) { return false; } if (time() > $maxTime) { return false; } return true; } } // This method generates the nonce timestamp if(!function_exists('ft_nonce_generate_hash')){ function ft_nonce_generate_hash(){ $length = 10; $chars='1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM'; $ll = strlen($chars)-1; $o = ''; while (strlen($o) < $length) { $o .= $chars[ rand(0, $ll) ]; } return $o; } }