2014-05-06 71 views
2

工作中有Opencart的一個功能,我需要更換如下:VQMOD頂替沒有多線搜索

protected function validateDelete() { 
     if (!$this->user->hasPermission('modify', 'catalog/download')) { 
      $this->error['warning'] = $this->language->get('error_permission'); 

應該是:

protected function validateDelete() { 
     if (!$this->user->hasPermission('delete', 'catalog/download')) { 
      $this->error['warning'] = $this->language->get('error_permission_delete'); 

我曾嘗試:

<search position="replace"><![CDATA[ 
      protected function validateDelete() { 
       if (!$this->user->hasPermission('modify',]]></search> 
      <add><![CDATA[ 
      protected function validateDelete() { 
       if (!$this->user->hasPermission('delete', 
      ]]></add> 

但它不工作。第三行出現在多個位置,所以不能在單行中替換。

請幫忙

回答

7

多行搜索無法在vqmod中完成。所以你需要使用vqmod index屬性。如果「搜索」字符串是'hello',並且文件中有5個'hello',但您只想替換第一個和第三個,請使用Index:1,3。

所以更改如下您vqmod代碼:

<operation> 
    <search position="replace" index="3"><![CDATA[if (!$this->user->hasPermission('modify', 'catalog/download')) {]]></search> 
    <add><![CDATA[ 
     if (!$this->user->hasPermission('delete', 'catalog/download')) { 
    ]]></add> 
</operation> 
<operation> 
    <search position="replace" index="3"><![CDATA[$this->error['warning'] = $this->language->get('error_permission');]]></search> 
    <add><![CDATA[ 
     $this->error['warning'] = $this->language->get('error_permission_delete'); 
    ]]></add> 
</operation> 

不要忘記更新index值。

參考鏈接:https://sankartypo3.wordpress.com/2013/11/25/opencart-vqmod-tutorial/http://code.google.com/p/vqmod/wiki/Scripting

有一個愉快的一天!

+0

感謝它的工作,但我需要驗證所需號碼的發生。 – seopower