Jump to content

Recommended Posts

Добрый день всем.

Помогите плз разобраться с vqmod, написал вроде правильно а он собака не работает хоть убейся не понимаю в чем может быть проблема

если не тяжело подскажите.

вот весь файл

<?xml version="1.0" encoding="utf-8"?>

<modification>
	<id>slide</id>
	<version>1.0.0</version>
	<vqmver>1.0.0</vqmver>
	<author>webwork</author>
	<file name="catalog/view/theme/*/template/product/product.tpl">
	<operation>
	
	<search position="replace" offset="13">>
	<![CDATA[<table class="option-image">]]> 
	</search>
	
	<add><![CDATA[ <div class="option-image">
    <?php foreach ($option['option_value'] as $option_value) { ?>
    <div class='option1'>
    <div ><input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>"
	id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /></div>
    <div><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>">
	<img class="pods"  title="<strong><font color='#ffff00'> цвет № <?php echo $option_value['name']; ?>" src="<?php echo $option_value['image']; ?>
	"alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" /></label></div>
    <div><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                  <?php if ($option_value['price']) { ?>
                  (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                  <?php } ?>
                </label></div>
            </div>
            <?php } ?>
          </div>
        </div>]]> </add>
	
	
	</operation>
	</file>
	</modification>

заранее спс за ответы

Share this post


Link to post
Share on other sites

ищите собаку в position="replace" offset="13"

Share this post


Link to post
Share on other sites

1. старайтесь не использовать звездочек в путях, потом может вылезти куча ошибок из других тем:

<file name="catalog/view/theme/*/template/product/product.tpl">

2. по возможности старайтесь не использовать замену "replace", потом могут появиться конфликты с другими модулями

3. крайне не рекомендуется использовать offset, особенно offset="13"

4. у вас опечатка, лишняя закрывающая скобка:

<search position="replace" offset="13">>

5. будьте внимательны с пробелами и переносами строк, строка, которую заменяете должна точно совпадать

Share this post


Link to post
Share on other sites

Спасибо огромное за быстрый ответ, я ваш должник)))

Лишний раз убеждаюсь что этот форум "бодренький"

Share this post


Link to post
Share on other sites

Еще один вопрос если можно.

Допускается ли в структуре заменяемых данных файлов vqmod использование квадратных скобок???

Share this post


Link to post
Share on other sites

а почему бы и нет

![CDATA[]] 

Этим все сказано

Share this post


Link to post
Share on other sites

Уважаемые розработчики модулей если не тяжело ткните носом а то не хватает ума своего. Не могу понять почему не срабатывает VQmod пробовал уже самые нелепые решения никакой реакции хоть бы ошибку какуюто выдал я и на это согласен

вот файл

<?xml version="1.0" encoding="utf-8"?>

<modification>
	<id>slide</id>
	<version>1.0.0</version>
	<vqmver>1.0.0</vqmver>
	<author>webwork</author>
	
	<file name="catalog/view/theme/default/template/product/product.tpl">
	
	

	<operation>
	
	<search position="replace"><![CDATA[
	<table class="option-image">
            <?php foreach ($option['option_value'] as $option_value) { ?>
            <tr>
              <td style="width: 1px;"><input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /></td>
              <td><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" /></label></td>
              <td><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                  <?php if ($option_value['price']) { ?>
                  (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                  <?php } ?>
                </label></td>
            </tr>
            <?php } ?>
          </table>]]>
	</search>
	
	<add><![CDATA[ <div class="option-image">
            <?php foreach ($option['option_value'] as $option_value) { ?>
            <div class='option1'>
              <div ><input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /></div>
              <div><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><img class="pods"  title="<strong><font color='#ffff00'> цвет № <?php echo $option_value['name']; ?>" src="<?php echo $option_value['image']; ?>"  alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" /></label></div>
              <div><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                  <?php if ($option_value['price']) { ?>
                  (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                  <?php } ?>
                </label></div>
            </div>
            <?php } ?>
          </div>
        </div>]]>
		</add>
	
	
	</operation>
	</file>
	</modification>

ну где моя ошибка не вьезжаю подскажите плз.

Share this post


Link to post
Share on other sites

ошибка тут:

<search position="replace"><![CDATA[
	<table class="option-image">
            <?php foreach ($option['option_value'] as $option_value) { ?>
            <tr>
              <td style="width: 1px;"><input type="radio" name="option[<?php echo $option['product_option_id']; ?>]" value="<?php echo $option_value['product_option_value_id']; ?>" id="option-value-<?php echo $option_value['product_option_value_id']; ?>" /></td>
              <td><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><img src="<?php echo $option_value['image']; ?>" alt="<?php echo $option_value['name'] . ($option_value['price'] ? ' ' . $option_value['price_prefix'] . $option_value['price'] : ''); ?>" /></label></td>
              <td><label for="option-value-<?php echo $option_value['product_option_value_id']; ?>"><?php echo $option_value['name']; ?>
                  <?php if ($option_value['price']) { ?>
                  (<?php echo $option_value['price_prefix']; ?><?php echo $option_value['price']; ?>)
                  <?php } ?>
                </label></td>
            </tr>
            <?php } ?>
          </table>]]>
	</search>

Тоесть не сможет модификатор найти и заменить точно весь текст, если хотя бы пробел будет лишним, используйте оператор offset по кол-ву строк от заданной.

Share this post


Link to post
Share on other sites

Если не ошибаюсь, vqmod не находит текст из нескольких строк, где есть перенос строки.

Я всегда ищу по 1 строке, так намного надежнее. 

Share this post


Link to post
Share on other sites

webwork, требуется постоянно твердо помнить, что vqmod тупо ищет последовательность символов, как опорную базу для дальнейших модификаций, и если хоть в одном символе будет расхождение искомой строки и данных в объектах поиска, даже в скрытых символах, то PHP просто не найдет нужный фрагмент текста, а значит не выполнится и процедура модификации. Чем длиннее шаблон для поиска, тем выше вероятность, что такие нестыковки будут и отлавливать их будет настоящая мука.

Edited by EVMedvedev

Share this post


Link to post
Share on other sites

Если не ошибаюсь, vqmod не находит текст из нескольких строк, где есть перенос строки.

Я всегда ищу по 1 строке, так намного надежнее. 

тоесть разбить операцию на несколько частей??

Share this post


Link to post
Share on other sites

Если не ошибаюсь, vqmod не находит текст из нескольких строк, где есть перенос строки.

Я всегда ищу по 1 строке, так намного надежнее. 

тоесть если у меня 13строк то надо разбить их на 13 операций??

Share this post


Link to post
Share on other sites

нет, просто написать вот так:

<search position="replace" offset="13"><![CDATA[<table class="option-image">]]>
	</search>

Share this post


Link to post
Share on other sites

 

нет, просто написать вот так:

<search position="replace" offset="13"><![CDATA[<table class="option-image">]]>
	</search>

спс за совет щас попробую))

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.