| 제목 | 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
@닉 깔끔 하네요. ^^
|