Jump to content
alinalessioYandex

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

Recommended Posts

Надо через 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, где можно указать диапазон или точную строку нахождения? Или как это делается?

Share this post


Link to post
Share on other sites

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

Share this post


Link to post
Share on other sites
3 минуты назад, nikifalex сказал:

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

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

Share this post


Link to post
Share on other sites
1 минуту назад, alinalessioYandex сказал:

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

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

Share this post


Link to post
Share on other sites

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

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

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

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

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

Share this post


Link to post
Share on other sites
3 минуты назад, greendragon сказал:

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

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

 

Share this post


Link to post
Share on other sites
2 минуты назад, alinalessioYandex сказал:

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

 

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

Share this post


Link to post
Share on other sites

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

  • +1 2

Share this post


Link to post
Share on other sites

можно еще так 

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

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

Share this post


Link to post
Share on other sites

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

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

  • +1 2

Share this post


Link to post
Share on other sites

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

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

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

 

Edited by anboza

Share this post


Link to post
Share on other sites

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

  • +1 1

Share this post


Link to post
Share on other sites
2 часа назад, alinalessioYandex сказал:

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

 

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

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

  • +1 1

Share this post


Link to post
Share on other sites

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

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.


  • 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.