Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Интернет » Web-программирование » Добавить все таблицам на сайте дополнительную колонку

Модерирует : Cheery

 Версия для печати • ПодписатьсяДобавить в закладки

Открыть новую тему     Написать ответ в эту тему

Z4masko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Здравствуйте, столкнулся с такой проблемой:
Необходимо всей продукции предоставленной на сайте добавить колонку с заголовком "Цена"
Сами цены заполнять не надо. Надо просто добавить колонку, в заголовке которой (в ячейке заголовка) будет написано слово "Цена".
Дело в том, то таблицы разные. в некоторых 4 колонки, в некоторых 5
Поэтому через обычный поиск и замену не прокатывает. Нужно какой какое то регулярное выражение, способное произвести данное действие, но я в этом не силён. Подскажите пожалуйста, как можно это сделать?

Всего записей: 735 | Зарегистр. 05-11-2004 | Отправлено: 17:59 31-07-2014
bredonosec



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
Нужно какой какое то регулярное выражение, способное произвести данное действие, но я в этом не силён. Подскажите пожалуйста, как можно это сделать?

есть редактор текстовой для регекспов - Search&replace.  
Но в принципе, синтаксис таблиц достаточно стандартен -  
<table ....><tr><td>.....</td></tr></table>
И регекспа даже не надо - достаточно взять кусок  
</tr>
и заменить его на <td class=cost> [any text] </td></tr>


----------
Вопрос: 'Что человек курит?' как правило возникает не когда ты слышишь, как он дышит, а когда видишь, что он пишет
Пропеллер играет роль вентилятора, он останавливается -пилот потеет
Аськи нету.

Всего записей: 16257 | Зарегистр. 13-02-2003 | Отправлено: 19:17 31-07-2014
Z4masko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
есть редактор текстовой для регекспов - Search&replace.   Но в принципе, синтаксис таблиц достаточно стандартен -   <table ....><tr><td>.....</td></tr></table>  И регекспа даже не надо - достаточно взять кусок   </tr>  и заменить его на <td class=cost> [any text] </td></tr>

 
Да дело в том, что поиск и замену буду производить в дампе SQL (сам сайт на битриксе)
а если менять просто </tr> по всей базе, то и вся структура сайта пострадает
 
Вот например есть таблицы вида  

Код:
 
<table width="100%" border="0" style="margin-bottom: 15px; border-collapse: collapse;" class="item"> <thead class="header">  
    <tr><td class="name">Обозначение</td><td class="dim"> Артикул  
        <br />
       </td><td>Длина,мм</td><td>Ширина,мм</td><td>Высота, мм</td><td>Класс нагрузки</td><td>Вес, кг</td></tr>
   </thead>  
  <tbody class="data">  
    <tr><td>Плита  
        <br />
       </td><td>1234567</td><td>1000</td><td>120,5</td><td>10</td><td>Д15  
        <br />
       </td><td>9,60</td></tr>
   </tbody>
 </table>
 

 
 
 

Код:
<table width="100%" border="0" style="margin-bottom: 15px; border-collapse: collapse;" class="head"><thead class="header">  
    <tr><td>Название</td><td>Артикул</td>
      <td>Длина ширина, мм</td><td>Высота, мм</td><td>масса, кг</td></tr>
   </thead>  
  <tbody class="data">  
    <tr><td>Плита-1 <sup></sup></td>
      <td>  
        12345<br />
       </td><td> 2980 &times; 780  
        <br />
       </td><td>380</td><td>720,00</td></tr>
   
    <tr>
      <td colspan="1"> Плита-2</td>
      <td colspan="1">54321</td><td colspan="1">720 &times; 780</td><td colspan="1">380</td><td colspan="1">180,00</td></tr>
   </tbody>
 </table>

 
вот в них надо добавить колонку цена  
и таких таких таблиц много очень
 
 
То есть как бы составить такое регулярное выражение:
Если внутри таблицы присутствует слово (ну к примеру) "длинна", то заменить "</tr>" на "<td class=cost> [any text] </td></tr>"
 
ещё, за что можно зацепиться- это во всех таблицах строка-заголовок обозначена как <thead class="header"> .... </thead>
 
Ну или можно (я так думаю) сначала добавить ячейку td в thead (это будет просто, добавив перед закрывающим </thead> ещё одну <td></td> )
А потом вот как то определять поиском участок между </thead> и до конца талблицы </table> и в этом участке уже заменять "</tr>" на "<td class=cost> [any text] </td></tr>"

Всего записей: 735 | Зарегистр. 05-11-2004 | Отправлено: 19:30 31-07-2014 | Исправлено: Z4masko, 20:16 31-07-2014
bredonosec



Platinum Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
поиск и замену буду производить в дампе SQL
в смысле, чей-то магазин потырили?  
 

Цитата:
То есть как бы составить такое регулярное выражение:  

поясните, зачем вам именно регексп?  
Или у вас верстка самих страниц табличная?  
Наличие стиля в таблице - нет, не думаю. В результате замены ток первая строка меняться будет.  
Вот если в целевых таблицах стили ячеек какие-то особые, тогда можно прицепляться.  
Или стиль строки. Если подобная возможность есть - де, регексп можно нарисовать. В противном случае проще будет потом удалять лишний код из "таблицы" самой страницы. Меньше возни.

----------
Вопрос: 'Что человек курит?' как правило возникает не когда ты слышишь, как он дышит, а когда видишь, что он пишет
Пропеллер играет роль вентилятора, он останавливается -пилот потеет
Аськи нету.

Всего записей: 16257 | Зарегистр. 13-02-2003 | Отправлено: 02:33 02-08-2014
Z4masko



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Цитата:
в смысле, чей-то магазин потырили?  

Да не, просто добавить дополнительный столбец ко всем таблицам на сайте проще будет через редактирование дампа базы MySQL
 

Цитата:
поясните, зачем вам именно регексп?   Или у вас верстка самих страниц табличная?   Наличие стиля в таблице - нет, не думаю. В результате замены ток первая строка меняться будет.   Вот если в целевых таблицах стили ячеек какие-то особые, тогда можно прицепляться.   Или стиль строки. Если подобная возможность есть - де, регексп можно нарисовать. В противном случае проще будет потом удалять лишний код из "таблицы" самой страницы. Меньше возни.

Вёрстка страниц смешанная, где таблицы, где <div>'ы  
Поэтому  просто замена "</tr>" на "<td class=cost> [any text] </td></tr>" будет диструктивна

Всего записей: 735 | Зарегистр. 05-11-2004 | Отправлено: 13:39 02-08-2014
Открыть новую тему     Написать ответ в эту тему

Компьютерный форум Ru.Board » Интернет » Web-программирование » Добавить все таблицам на сайте дополнительную колонку


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru