2012-06-10 87 views
0

是有可能在vQmod以檢查是否有方法的類存在做出改變。只有當它不存在時,它纔會做出改變。Vqmod只有當搜索不存在

E.g此刻我有一個簡單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優先於另一個。我需要2個vqmod文件才能使用vqmod的代碼?

回答

1

這是不可能只如果方法不存在任何添加。訣竅是「劫持」原來的,或重命名它。至於優先權,他們得到解析A到Z,所以如果你想它首先應用,將其命名爲一些其他的字母,或者只是在前面加上AAA的名字

+0

之前出現有沒有簡單的方法來增加這個功能到vqmod類?我不喜歡依賴其他擴展名的想法總是來到我的面前。注意附屬的庫文件可能無法在舊系統上存在:重命名文件等 –

+0

我想這也可以用來解決這一問題,這將導致有太多的問題了人。 –

+0

好優先不幸檢查順序只會減緩處理下來,所以目前有沒有計劃在vQmod類似的東西增加,尤其是當你可以使用的命名。如果某些東西也使用zzz作爲它的名字,那麼很可能是最後要執行的 - 在這一點上,即使它們都在爲它而戰,甚至優先順序也不會被使用 –