2012-06-10 3 views
0

vQmod에서 클래스에 메서드가 있는지 검사 할 수 있습니다. 존재하지 않을 경우에만 변경됩니다.Vqmod는 검색이 없으면 변경됩니다.

예를 들어 현재 동일한 변경을 수행하고 중복 메소드 오류가 발생하는 다른 확장 프로그램에서 문제를 일으키는 간단한 vqmod가 있습니다.

<file name="catalog/model/tool/image.php"> 
    <operation> 
     <search position="after"><![CDATA[ 
      class ModelToolImage extends Model { 
     ]]></search> 
     <add><![CDATA[ 
      public function get($filename) { 
       if (!file_exists(DIR_IMAGE . $filename) || !is_file(DIR_IMAGE . $filename)) { 
        return; 
       } 

       if (isset($this->request->server['HTTPS']) && (($this->request->server['HTTPS'] == 'on') || ($this->request->server['HTTPS'] == '1'))) { 
        return HTTPS_IMAGE . $filename; 
       } else { 
        return HTTP_IMAGE . $filename; 
       } 
      } 
     ]]></add> 
    </operation> 
</file> 

한 vqmod를 다른 vqmod보다 우선 순위를 부여 할 수있는 방법이 있습니다. 이전에 vqmod의 코드에 2 개의 vqmod 파일이 필요합니까?

답변

1

메소드가 존재하지 않는 경우에만 추가 할 수 있습니다. 트릭은 원본을 "도용"하거나 이름을 바꾸는 것입니다. 우선 순위에 관해서는 z에 대해 파싱되므로 우선 적용하려면 이름 앞에 다른 이름을 붙이거나 이름 앞에 aaa를 붙입니다.

+0

이 기능을 vqmod 클래스에 추가하는 쉬운 방법은 없습니까? ? 나는 항상 내 앞에 오는 다른 확장의 이름에 의존한다는 생각을 좋아하지 않는다. 이것은 사람들이 파일 이름을 다시 명명하는 것에 너무 많은 문제를 야기 할 것입니다. –

+0

이것 역시이 문제를 해결하는 데 사용될 수 있습니다 : 예전 시스템에는 제휴 라이브러리 파일이 없을 수 있습니다. –

+0

불행히도 우선 순위를 확인하면 처리 속도가 느려지므로 현재 vQmod에서 이와 비슷한 것을 추가 할 계획이 없습니다. 특히 이름 지정을 사용할 수있는 경우에는 특히 그렇습니다. 그 이름에 zzz도 사용하고 있다면, 마지막으로 실행하고 싶을 가능성이 있습니다. 두 가지 모두를 위해 싸우고 있다면 우선 순위도 사용하지 않을 것입니다. –

관련 문제