2

opencart には、次のように置き換える必要がある関数があります。

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>

しかし、それは機能していません。3 行目は複数の場所に表示されるため、1 行に置き換えることはできません。

助けてください

4

1 に答える 1

7

vqmod では複数行検索はできません。indexしたがって、vqmod属性を使用する必要があります。「検索」文字列が 'hello' で、ファイルに 5 つの 'hello' があるが、1 番目と 3 番目だけを置き換えたい場合は、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

良い1日を !!

于 2014-05-06T05:40:39.697 に答える