Jump to content
Sign in to follow this  
cha0s

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

Recommended Posts

Например 

<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(), а ту которая уже есть чтоб он не брал во внимание? такое можно сделать?

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

Например 



<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" значит сколько строк удалять после найденной строки.

Share this post


Link to post
Share on other sites

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

<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 строки, и указываю на что это убрать..

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

не чего вообще не происходит буд-то не чего нету... мне ведь достаточно создать один файл с расширением .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>

Share this post


Link to post
Share on other sites

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

<
надо:

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

Share this post


Link to post
Share on other sites

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

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

Share this post


Link to post
Share on other sites

И не

offer="3">

а

offset="3">
  • +1 1

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites

Не за что.

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

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
You are posting as a guest. If you have an account, please sign in.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.

×

Important Information

On our site, cookies are used and personal data is processed to improve the user interface. To find out what and what personal data we are processing, please go to the link. If you click "I agree," it means that you understand and accept all the conditions specified in this Privacy Notice.