Cron для обработки новостей в DLE
Снят с продажи!
Снят с продажи!
Наверняка многие сталкивались с вопросом: "Почему не работает функция в dle при добавлении и редактировании новости - срок действия до ?" Кто не понял, то я об этом:
Задал вопрос на оф. форуме dle - они молчат уже сутки, а мне нужно было исправить быстренько это дело. Даже в последней версии не работает эта функция. Я решил написать свой скрипт, который работает по крону.
error_reporting(0);
$allow_cron = 1;
if ($allow_cron) {
define('DATALIFEENGINE', true);
define('AUTOMODE', true);
define('LOGGED_IN', true);
define('ROOT_DIR', dirname (__FILE__));
define('ENGINE_DIR', ROOT_DIR.'/engine');
require_once ENGINE_DIR.'/classes/mysql.php';
require_once ENGINE_DIR.'/data/dbconfig.php';
require_once ENGINE_DIR.'/data/config.php';
require_once ENGINE_DIR.'/inc/include/functions.inc.php';
date_default_timezone_set ( $config['date_adjust'] );
$time = time();
$db->query( "SELECT * FROM " . PREFIX . "_post_log WHERE expires <= {$time} ORDER BY id DESC" );
while ( $row = $db->get_row() ) {
$id = $row["id"];
$news_id = $row["news_id"];
$action = $row["action"];
switch ($action){
case "1": // удалить
$db->query( "DELETE FROM " . PREFIX . "_post WHERE id = '{$news_id}'" );
echo "Новость № {$news_id} удалена<br>";
break;
case "2": // отправить на модерацию
$db->query( "UPDATE " . PREFIX . "_post set approve=0 WHERE id ='{$news_id}'" );
echo "Новость № {$news_id} отправлена на модерацию<br>";
break;
case "3": // снять публикацию на главной
$db->query( "UPDATE " . PREFIX . "_post set allow_main=0 WHERE id ='{$news_id}'" );
echo "Новость № {$news_id} снята с главной<br>";
break;
case "4": // снять фиксацию
$db->query( "UPDATE " . PREFIX . "_post set fixed=0 WHERE id ='{$news_id}'" );
echo "Новость № {$news_id} фиксация снята<br>";
break;
}
$db->query( "DELETE FROM " . PREFIX . "_post_log WHERE id = '{$id}'" );
}
$db->free();
}
Прошу заметить, что в данном коде, а именно в проверке значений switch case подставлены значения под версию движка 11.3
В общем если у Вас версия ниже, то проверьте выпадающий список. Если у Вас есть 5 пунктов в списке, то все будет работать итак. Если же у Вас первого пункта нет (Выберите действие), то нужно изменить код, а именно значение в кейсах, то есть начало будет не с 1, а с 0.
Вот так:
case "0":
и т.д.
Комментарии 0
Посетители, находящиеся в группе Гости, не могут оставлять комментарии к данной публикации.