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

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

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

Помогите плз разобраться с 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>

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

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


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

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

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


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

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

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

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

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

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

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

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

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


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

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

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

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


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

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

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

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


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

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

![CDATA[]] 

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

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


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

Уважаемые розработчики модулей если не тяжело ткните носом а то не хватает ума своего. Не могу понять почему не срабатывает 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>

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

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


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

ошибка тут:

<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 по кол-ву строк от заданной.

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


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

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

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

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


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

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

Изменено пользователем EVMedvedev

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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


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

 

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

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

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

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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