CI 묻고 답하기

제목 위젯 관련 질문이요.
글쓴이 작성시각 2013/01/21 17:49:01
댓글 : 4 추천 : 0 스크랩 : 0 조회수 : 18185   RSS
위젯이 뷰나 컨트롤러에서 컨트롤러를 가져다 쓸 수 있게 하는정도의 개념이라고 어렴풋이 느끼고 있습니다.

뷰에서 서브네비 부분에 링크를 위젯으로 구현하다보니 에러가 나는데 도무지 위젯의 소스도 이해가 안되고,

검색해봐도 외국어라 설명이 어려워서 포럼에 문의합니다.

위젯 소스 분석이랑 위젯 사용법 좀 알려주세요 ㅠ_ㅠ


 다음글 파일 업로드 취소. (2)
 이전글 ajax 응답이 200 OK 에서 10분정도 경과후 매... (3)

댓글

변종원(웅파) / 2013/01/21 18:02:19 / 추천 0
에러 나는 소스를 올려주시는게 좋을 것 같습니다.

광범위한 질문이라... ^^
/ 2013/01/21 23:16:24 / 추천 0
웅파// 

PHP 오류가 발생했습니다

Severity: Warning

Message: call_user_func_array() [function.call-user-func-array]: First argument is expected to be a valid callback, 'Aside::run' was given

Filename: libraries/widget.php

Line Number: 16

--------------------------------------------------------------------------------------------------
 

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');


class Widget

{

    function Widget() {

        $this->_assign_libraries();

    }

    

    function run($name) {        

        $args = func_get_args();

        

        require_once APPPATH.'widgets/'.$name.EXT;

        $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.'widgets/views/'.$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;

        }

    }

}

--------------------------------------------------------

   return call_user_func_array(array(&$widget, 'run'), array_slice($args, 1));    이라인에서 에러가 발생합니다.. 

 

변종원(웅파) / 2013/01/22 09:17:32 / 추천 0
call-user-func-array 함수의 첫번째 파라미터는 단일 실행함수이거나 클래스내의 함수이어야 합니다.

widget 디렉토리 하위의 클래스의 함수를 호출하는데 Aside가 클래스 맞는지요?
/ 2013/01/22 14:40:22 / 추천 0
웅파//
문제를 해결했습니다.
왜 에러가 나나 했더니 
 return call_user_func_array(array(&$widget, 'run'), array_slice($args, 1)); 이부분에서 
run함수를 부르더라고요.
마나님 보드꺼 참조해서
return call_user_func_array(array(&$widget, 'index'), array_slice($args, 1)); 로 바꾸니깐
Aside에서 index를 불러오고 에러도 출력되지 않군요.
이소스에서 처음보는 함수들이 많네요 .. 소스를 이해하려면.. 좀더 검색해봐야겠어요.
즐거운 통신되세요. ^^