Перейти к содержанию
cha0s

Как на vqmod игнорировать если в файле уже есть функция с таким именем?

Рекомендуемые сообщения

Например 

<file name="admin/controller/catalog/category.php">

		<operation info="test">
			<ignoreif><![CDATA[
			public function autocomplete() {
			]]></ignoreif>
			<search position="before"><![CDATA[
			public function index() {
			]]></search>
			<add><![CDATA[

			public function autocomplete() {
				...........
			}

			]]></add>
		</operation>

	</file>	

фишка такая в файле category.php уже есть функция autocomplete(), как мне ее игнорировать и вместо этому дать ему свою autocomplete(), а ту которая уже есть чтоб он не брал во внимание? такое можно сделать?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можно заменить ту, что есть на вашу.

Смотрите http://code.google.com/p/vqmod/wiki/Scripting  - параметры position="replace" и атрибут offset (раздел modification / file / operation / search).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Например 



<file name="admin/controller/catalog/category.php">

		<operation info="test">
			<ignoreif><![CDATA[
			public function autocomplete() {
			]]></ignoreif>
			<search position="before"><![CDATA[
			public function index() {
			]]></search>
			<add><![CDATA[

			public function autocomplete() {
				...........
			}

			]]></add>
		</operation>

	</file>	

фишка такая в файле category.php уже есть функция autocomplete(), как мне ее игнорировать и вместо этому дать ему свою autocomplete(), а ту которая уже есть чтоб он не брал во внимание? такое можно сделать?

т.е. надо заменить всю имеющуюся функцию на свою? если так, то все будет выглядеть как-то так:

	<file name="admin/controller/catalog/category.php">
		<operation error="log">
			<search position="replace" offset="17"><![CDATA[
public function autocomplete() {
			]]></search>
			<add><![CDATA[
			public function autocomplete() {
				...........
			}
			]]></add>
		</operation>
	</file>

offset="17" значит сколько строк удалять после найденной строки.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

что-то как-то не хочет схватывать, посмотри все верно указано пример:

<modification>
        <id>model number not required for data entry/id>
        <file name="admin/controller/catalog/product.php">
                <operation>
                        <search position="replace" offset="3"><![CDATA[
                        if ((utf8_strlen($this->request->post['model']) < 1) || (utf8_strlen($this->request->post['model']) > 64)) {
                        ]]></search>
                        <add><![CDATA[]]></add> 
                </operation>
        </file> 
</modification>

в файле admin/controller/catalog/product.php имееться проверка(3 строки)

    	if ((utf8_strlen($this->request->post['model']) < 1) || (utf8_strlen($this->request->post['model']) > 64)) {
      		$this->error['model'] = $this->language->get('error_model');
    	}

Мне нужно ее просто убрать вообще... чтоб за место нее было просто пусто. Выше в xml что не так? указываю где, указываю offset 3 строки, и указываю на что это убрать..

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Так, а происходит что? Лог ошибок есть?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

не чего вообще не происходит буд-то не чего нету... мне ведь достаточно создать один файл с расширением .xml и расположить его в каталоге vqmod/xml?

в логах самого vqmod
---------- Date: 2013-09-06 15:44:33 ~ IP : ----------
REQUEST URI : /index.php?route=product/product&amp;amp;sort=p.price&amp;amp;order=DESC&amp;amp;page=3&amp;amp;product_id=252032
DOM UNABLE TO LOAD: /home/public_html/vqmod/xml/data_entry.xml
----------------------------------------------------------------------

больше нет нефига) а в data_entry.xml находиться это:

П.С если что vqmod у меня установлен другие xml работают.... а как делаю свою так вакуум... хотя вроде даже мануал посмотрел вроде все верно

<modification>
        <id>model number not required for data entry/id>
        <version>1.5.5.1</version>
        <vqmver>1.0</vqmver>
        <author>Dimitry</author>
        
        <file name="admin/controller/catalog/product.php">
                <operation>
                        <search position="replace" offer="3">
                        <![CDATA[    	if ((utf8_strlen($this->request->post['model']) < 1) || (utf8_strlen($this->request->post['model']) > 64)) {]]>
                        </search>
                        <add><![CDATA[]]></add> 
                </operation>
        </file> 
 </modification>

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

У вас неверно закрыт тег id - не хватает символа

<
надо:

<id>model number not required for data entry</id>
[/code]
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

а да :) уже лучше стали хоть ошибки появляться

Parse error: syntax error, unexpected T_IF, expecting T_FUNCTION in /home/public_html/vqmod/vqcache/vq2-admin_controller_catalog_product.php on line 1411

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

И не

offer="3">

а

offset="3">
  • +1 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Все спасибо, разобрался) работает!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Не за что.

А вообще - очень помогает сравнить оригинальный файл и тот, который получился в результате работы vqmod (он есть в кеше vqmod) - сразу видно что не так :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.