제목 | Widget Class 수정 | ||
---|---|---|---|
글쓴이 | 은랑 | 작성시각 | 2015/02/25 19:12:05 |
|
|||
http://ellislab.com/forums/viewthread/109584/ 의 코드를 이용하여 Widget Class 를 사용하던중 약간의 불편함이 발생하여 약간의 수정을 통해서 widget 실행 PHP 파일의 경로를 변경하여 사용할 수 있도록 변경하였습니다. 이미 많은 고수님들이 사용중이실듯 혹 중복이면 관리자님께서 삭제해 주세요..ㅠㅠ 원문 : http://qnfmfmd.tistory.com/58 _assign_libraries(); } function run($name) { $args = func_get_args(); /////////////////////////////////////////////////////////////////// // // @ 변경전 // // require_once APPPATH.'/controllers/widgets/'.$name.EXT; // // /////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////// // // @ 변경후 $require_path = str_replace("//", "/", APPPATH.$name.EXT); if( file_exists($require_path) == false ) { echo "NoFile : ".$require_path; }// end if require_once $require_path; $arrTemp = explode("/", $name); $name = $arrTemp[ count($arrTemp)-1 ]; /////////////////////////////////////////////////////////////////// $name = ucfirst($name); $widget = new $name(); return call_user_func_array(array(&$widget, 'run'), array_slice($args, 1)); } function render($view, $data = array()) { extract($data); include APPPATH.'/views/widgets/'.$view.EXT; } function load($object) { $this->$object =& load_class(ucfirst($object)); } function _assign_libraries() { $ci =& get_instance(); foreach (get_object_vars($ci) as $key => $object) { $this->$key =& $ci->$key; } } } |
|||
다음글 | 슘님의 커스텀 페이지네이션 라이브러리 CI ver. 3... (4) | ||
이전글 | 포럼바로가기 apk (1) | ||
ci세상
/
2015/02/25 23:03:07 /
추천
0
감사합니다. 중복없는데요^^
|
한대승(불의회상)
/
2015/02/26 11:26:33 /
추천
0
좋은 정보 감사 합니다.
|
전상민
/
2015/02/27 09:10:30 /
추천
0
CI 코드 게시판으로 이동합니다.
|
닉
/
2016/02/24 09:14:55 /
추천
1
저는 php7 + ci3버전인데 요렇게 사용하고 있어요~ 도움되려나 ...; <?php (defined('BASEPATH')) OR exit('No direct script access allowed'); define('WIDGET', TRUE); class Widget { function __construct() { $this->_assign_libraries(); } public static function run($controller) { if (strpos($controller, '.') !== FALSE) { list($controller, $method) = explode('.', $controller); } require_once APPPATH.'controllers/'.$controller.".php"; // default method if (!isset($method)) $method = 'index'; $newArray = explode('/', $controller); // class name $class = end($newArray); unset($newArray); if ($class = new $class()) { if (method_exists($class, $method)) { $args = func_get_args(); return call_user_func_array(array($class, $method), array_slice($args, 1)); } } } function _assign_libraries() { $CI =& get_instance(); foreach (get_object_vars($CI) as $key => $object) { $this->$key =& $CI->$key; } } }
|
한대승(불의회상)
/
2016/02/24 10:13:05 /
추천
0
@닉 깔끔 하네요. ^^
|