2013-05-12 2 views
0

디렉토리 \custom\modules 디렉토리에 맞춤 모듈을 만들고 있는데 Companies.class.php를 재정의하고 싶습니다 (기업 모델 activecollab\3.3.7\modules\system\models\companies directory). findForObjectsList() 함수를 사용하고 싶지만 앤지의 useModel() 함수를 사용하면 내 사용자 정의 모듈에서 내 사이트의 모든 회사 모델을로드합니다. 그저 모든 부분이 아닌 내 모듈에서 재정의하려고합니다.ActiveCollab의 회사 모델

내 init.php는 다음과 같이이다 :이 너무 사용했다

/** 
    * company List module initialisation file 
    */ 

    const COMPANYLIST_MODULE = 'company_list'; 
    const COMPANYLIST_MODULE_PATH = __DIR__; 

    AngieApplication::useModel(array(
    'companies', 
), COMPANYLIST_MODULE); 

:

AngieApplication::setForAutoload('Comapny List', CALENDAR_MODULE_PATH . '/models/companies/ListCompanies.class.php'); 

그러나 헛되이.

+0

내 대답은 당신이 찾고 있던 답변이 아닐지라도 귀하의 질문에 대답합니다 :) 불행히도 모델에 코드를 삽입 할 수있는 방법이 없습니다. 코드를 완전히 교체하거나 내장 된 구현을 사용해야합니다. – Ilija

답변

0

내장 된 클래스를 재정의하는 대신 AngieApplication::useModel() 또는 AngieApplication::setForAutoload()을 사용하여 대체 할 수 없습니다. "오버라이드"하려면 기존 클래스를 완전히 바꾸고 필요한 메소드를 변경해야합니다.

함께 가기로 결정한 접근 방식은 권장하지 않습니다. 저는 여러분이 조금 뒤로 돌아 가야한다고 생각합니다. 여러분이 염두에 두었던 구현 대신에 여러분이 해결하려고하는 문제의 관점에서 이것을 논의하기 시작해야한다고 생각합니다. (저는 여러분이 잘못된 접근법을 골랐다 고 생각합니다. 100 % 내가 정확히 당신이 성취하려는 것을들을 때까지).