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

Как в ocmod найти закрывающий тег, если таких тегов много?

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

Надо через ocmod заменить span на div.

Допустим имеем такую разметку:

<span class="primer">
  <div></div>
  <span></span>
</span>

Мне надо заменить спан с классом "пример" на тег div. С открывающим тегом это не сложно. Делаю так:

<search><![CDATA[<span class="primer">]]></search>
<add position="replace"><![CDATA[
<div class="primer">
]]></add>

Но как переименовать закрывающий тег? Может есть какой-то оператор для search, где можно указать диапазон или точную строку нахождения? Или как это делается?

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


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

зачем? сверстайте чтоб span работал как div и все

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


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, nikifalex сказал:

зачем? сверстайте чтоб span работал как div и все

Да, это я не для внешнего вида. Это валидатору подавай, чтобы внутри спана не было дивов и других тегов. )))

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


Ссылка на сообщение
Поделиться на другие сайты
1 минуту назад, alinalessioYandex сказал:

Да, это я не для внешнего вида. Это валидатору подавай, чтобы внутри спана не было дивов и других тегов. )))

Так а почему бы это не сделать прямо в файле, ведь это же не контроллер? Просто интересно...

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


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

Вроде решено, но может есть способ получше:

Добавил в search атрибут index. Пересчитал сколько повторов от начала страницы до моей нужной строки и вписал значение в атрибут индекс. Подсчет начинается с нуля.

Для примера, представленного выше, получается так:

<search index="1"><![CDATA[</span>]]></search>

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

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


Ссылка на сообщение
Поделиться на другие сайты
3 минуты назад, greendragon сказал:

Так а почему бы это не сделать прямо в файле, ведь это же не контроллер? Просто интересно...

Дважды уже делал, но после обновления снова все слетает. Надо именно через окмод, чтобы обновления не ломали ничего. ))

 

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


Ссылка на сообщение
Поделиться на другие сайты
2 минуты назад, alinalessioYandex сказал:

Дважды уже делал, но после обновления снова все слетает. Надо именно через окмод, чтобы обновления не ломали ничего. ))

 

Так не каждые же два дня вы обновляете этот файл? А изменить после обновления на div - минута времени..

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


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

1.Написать автору шаблона
2.Написать на лбу - обновил шаблон, замени теги
3.Смириться.
4 НЕ лезть окмодом - сделать можно, но это критичино
 

  • +1 2

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


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

можно еще так 

<add position="replace" offset="6"><![CDATA[

offset - количество заменяемых строк после строки поиска, т.е.. заменять весь блок span

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


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

вот вы обновили шаблон, ну забыли вы сменить span на div да и ладно, не смертельно.

А вот если index или offset изменится, будет капут всем.

  • +1 2

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


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

а только ocmod без js подходит?

Если и другой вариант, то вот на js, простое решение:

$('div.inner').replaceWith(function(){
    return $("<span />").append($(this).contents());
});

 

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

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


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

он же явно написал для html валидации

  • +1 1

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


Ссылка на сообщение
Поделиться на другие сайты
2 часа назад, alinalessioYandex сказал:

Дважды уже делал, но после обновления снова все слетает. Надо именно через окмод, чтобы обновления не ломали ничего. ))

 

Пишите автору - Это его КОСЯК

такого в верстке быть не должно 

  • +1 1

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


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

Спасибо всем. Вы правы, в таком виде писать акмод слишком рискованно, поэтому буду править ручками. И напишу автору, может поправит.

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


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

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

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

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

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

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

Войти

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

Войти

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

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

×

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

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