X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Массовая замена формата картинок в shortstory в dle
Hallboy222
Hallboy222
Topic Starter сообщение 2.2.2011, 16:39; Ответить: Hallboy222
Сообщение #1


Собственно, кто пользовался dle, тот знает, что если картинки большие, то создаются уменьшенные копии и в базе данных они записаны так:
<!--TBegin--><a href="ссылка на оригинальную картинку" onclick="return hs.expand(this)" ><img src="ссылка на уменьшенную копию" alt='''' title=''''  /></a><!--TEnd-->

Так вот, как сделать автозамену так, чтобы лишь в кратких новостях данный код заменить на:
<img src="ссылка на уменьшенную копию" alt='''' title=''''  /></a>
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kRicha
kRicha
сообщение 2.2.2011, 16:42; Ответить: kRicha
Сообщение #2


скрипт поиска и замены по БД


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Hallboy222
Hallboy222
Topic Starter сообщение 2.2.2011, 16:45; Ответить: Hallboy222
Сообщение #3


(kRicha @ 2.2.2011, 15:42) *
скрипт поиска и замены по БД

А подробнее? Имеется ли уже такой?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
danisimo
danisimo
сообщение 2.2.2011, 17:01; Ответить: danisimo
Сообщение #4


UPDATE dle_post SET short_story = REPLACE(short_story,'<!--TBegin--><a href="ссылка на оригинальную картинку" onclick="return hs.expand(this)" >','');
UPDATE dle_post SET short_story = REPLACE(short_story,'</a><!--TEnd-->','');

PS За работоспособность не ручаюсь, исполнять не пробовал


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
kRicha
kRicha
сообщение 2.2.2011, 17:07; Ответить: kRicha
Сообщение #5


так вы ж не то даете... Тут на одно удаление, а ему массово надо.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
danisimo
danisimo
сообщение 2.2.2011, 18:19; Ответить: danisimo
Сообщение #6


Ну да, запарился.... я бы на php вообще сделал бы

$q=mysql_query("select * from dle_post where short_story like '%<!--TBegin-->%' ");

while($ar=mysql_fetch_array($q)){
extract($ar);

$s_story=preg_replace("/<!--TBegin-->.{1,300}(<img .{1,300})<\/a><!--TEnd-->/iU",'\\1',$short_story);
$s_story=addslashes($s_story);

sqlQuery("update dle_post set short_story='$s_story' where id=$id");
}


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Hallboy222
Hallboy222
Topic Starter сообщение 2.2.2011, 18:27; Ответить: Hallboy222
Сообщение #7


<!--TBegin-->.{1,300}(<img .{1,300})<\/a><!--TEnd-->

Ошибки никакой нет и за что 1300 отвечает?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
JoomGangster
JoomGangster
сообщение 2.2.2011, 18:29; Ответить: JoomGangster
Сообщение #8


{1,300}

длину любого текста
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Hallboy222
Hallboy222
Topic Starter сообщение 6.3.2011, 11:15; Ответить: Hallboy222
Сообщение #9


(danisimo @ 2.2.2011, 17:19) *
$q=mysql_query("select * from dle_post where short_story like '%<!--TBegin-->%' ");

while($ar=mysql_fetch_array($q)){
extract($ar);

$s_story=preg_replace("/<!--TBegin-->.{1,300}(<img .{1,300})<\/a><!--TEnd-->/iU",'\\1',$short_story);
$s_story=addslashes($s_story);

sqlQuery("update dle_post set short_story='$s_story' where id=$id");
}

Кто теперь подскажет, как такое выполнить?
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Hallboy222
Hallboy222
Topic Starter сообщение 11.3.2011, 19:58; Ответить: Hallboy222
Сообщение #10


Собственно решил попробовать сделать через notepad++ замену. В регулярных выражениях не так силен и возникло 2 вопроса:
1. Для замены
<!--TBegin--><a href="link1" onclick="return hs.expand(this)" ><img src="link2" alt='alt' title='title'  /></a><!--TEnd-->

Правильно ли выражение:
<!--TBegin--><a\shref=\\\"[^>]*\\\"\onclick=\\\"return hs.expand(this)\\\"><img\ssrc=\\\"[^>]*\\\"alt=\\\"[^>]*\\\"title=\\\"[^>]*\\\"/><\/a><!--TEnd-->

Заменить на
<!--TBegin--><img\ssrc=\\\"[^>]*\\\"alt=\\\"[^>]*\\\"title=\\\"[^>]*\\\"/><!--TEnd-->

2. Как сделать замену лишь именно в кратких новостях через notepad, если по вывод структуры поста в бд:
INSERT INTO `dle_post` (`id`, `autor`, `date`, `short_story`, `full_story`, `xfields`, `title`, `descr`, `keywords`, `category`, `alt_name`, `comm_num`, `allow_comm`, `allow_main`, `allow_rate`, `approve`, `fixed`, `rating`, `allow_br`, `vote_num`, `news_read`, `votes`, `access`, `symbol`, `flag`, `editdate`, `editor`, `reason`, `view_edit`, `tags`, `metatitle`, `news_tid`) VALUES

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

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) DLE xProtect
2 xoopw 5986 15.1.2024, 21:06
автор: Diana_Wesley
Открытая тема (нет новых ответов) Обновить сайт на CMS DLE
1 Sawich 1667 2.9.2023, 10:10
автор: WoWeb
Открытая тема (нет новых ответов) ВКонтакте: полный комплекс услуг (массовая рассылка по стенам групп и в ЛС), парсинг, лайки, инвайты
Гарантия самой низкой цены
4 MaxChemist 1922 1.1.2023, 13:23
автор: MaxChemist
Открытая тема (нет новых ответов) Изготовление красивых сайтов на DLE под ключ | Доступные цены
от 2000 руб.
1 Admiral_ukr 1601 20.11.2022, 10:08
автор: Webmaster24
Открытая тема (нет новых ответов) Ищу спеца по DLE вылечить сайт
4 Reactive 2644 22.10.2022, 9:01
автор: Fozik77


 



RSS Текстовая версия Сейчас: 25.4.2024, 5:20
Дизайн