Пакетное изменение даты для постов DLE

В этом разделе Вы можете попросить помощи в решении проблем
fleerze
Сообщения: 1
Зарегистрирован: 30 дек 2016, 09:07

Пакетное изменение даты для постов DLE

Сообщение fleerze » 30 дек 2016, 09:20

Приветствую!
Подскажите пожалуйста правильный код, чтобы рандомно изменить даты у постов которые были опубликованы на сайте в промежутке от 27 января 2013 до 20 апреля 2016 - в этом же промежутке т.е. от 27 января 2013 до 20 апреля 2016 Новости которые идут после 20 апреля 2016 не трогать. Например была новость от 30 января 2013, я запускаю файл и чтобы новость стала например уже от 10 марта 2014 и т.д.
Сделал код (самый первый), залил на сайт, запускаю файл, но ничего не происходит - белый экран.
DLE 10.6 utf-8

Спасибо!

Аватара пользователя
vitto
Администратор
Сообщения: 17
Зарегистрирован: 08 май 2016, 17:54

Re: Пакетное изменение даты для постов DLE

Сообщение vitto » 31 дек 2016, 10:31

Привет,
Для тех кто пришел сюда не с сайта, вот ссылка на обсуждаемыё скрипт: Пакетное изменение даты для постов DLE

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

вот это

Код: Выделить всё

$query="SELECT * FROM `".PREFIX."_post`";

меняешь на это

Код: Выделить всё

$query="SELECT * FROM `".PREFIX."_post` WHERE (date BETWEEN '2013-01-27 00:00:00' AND '2016-04-20 23:59:59')";


2) если нужно новую дату установить в том же диапазоне, тогда нужно посчитать разницу между датами 2013-01-27 и 2016-04-20 = 1179 дней
теперь поменять запрос, так чтобы новые даты разбрасывались от 2013-01-27 + случайно от 0 до +1179 дней

вместо этого:

Код: Выделить всё

$query="UPDATE `".PREFIX."_post` SET `date`= DATE_ADD(FROM_DAYS( FLOOR( TO_DAYS( NOW( )) + ( RAND( ) * 1560 ) - ( RAND( ) *730 ) ) ), INTERVAL (FLOOR(RAND()*86400)) SECOND) WHERE `id`=".intval($row['id']);

пишем:

Код: Выделить всё

$query="UPDATE `".PREFIX."_post` SET `date`= DATE_ADD(
'2013-01-27 00:00:00', INTERVAL( FLOOR(RAND()*1179)) DAY
) WHERE `id`=".intval($row['id']);

примерно так.

Что касается белого экрана, смотри лог с ошибками. Скрипт должен выводить что-нибудь на экран, при любом раскладе.


Вернуться в «Помощь пользователям»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость