Управление опросами к публикациям
В механизме массового управления новостями DLE не хватает важного момента - массового редактирования опросов. Попробуем добавить этот функционал самостоятельно с помощью хака. Изменения будут вноситься в файлы editnews.php и massactions.php. Конечный функционал позволит очищать и удалять опросы у новостей.
Установка:
1. Открыть engine/inc/editnews.php и найти:
<option value="mass_clear_cloud">{$lang['mass_clear_cloud']}</option>
Добавить ниже:
<option value="mass_poll_clear">Очистить результаты опроса</option>
<option value="mass_poll_delete">Удалить опрос</option>
2. Открыть engine/inc/massactions.php и найти:
elseif( $action == "mass_clear_cloud" ) {
$field = "tags";
$value = "";
$k_mass = true;
$title = $lang['mass_clear_cloud_2'];
$lang['mass_confirm'] = $lang['mass_clear_cloud_1'];
$lang['mass_confirm_1'] = $lang['mass_confirm_2'];
}
Добавить ниже:
elseif( $action == "mass_poll_clear" ) {
$field = "poll_clear";
$value = 1;
$k_mass = true;
$title = "Очистить результаты опроса";
$lang['mass_confirm'] = "Выполнить очистку результатов голосования в выбранных статьях?";
} elseif( $action == "mass_poll_delete" ) {
$field = "poll_delete";
$value = 0;
$k_mass = true;
$title = "Удалить опрос";
$lang['mass_confirm'] = "Удалить опросы в выбраных статьях?";
}
Найти далее:
if (in_array($field, array("news_read", "allow_rate", "rating", "vote_num", "disable_index" ) )) {
$db->query( "UPDATE " . PREFIX . "_post_extras SET {$field} = '{$value}' WHERE news_id = '{$id}'" );
} else $db->query( "UPDATE " . PREFIX . "_post SET {$field} = '{$value}' WHERE id = '{$id}'" );
Заменить на:
// poll clear mod
if ( $field != "poll_clear" AND $field != "poll_delete" ) {
if (in_array($field, array("news_read", "allow_rate", "rating", "vote_num", "disable_index" ) )) {
$db->query( "UPDATE " . PREFIX . "_post_extras SET {$field} = '{$value}' WHERE news_id = '{$id}'" );
} else $db->query( "UPDATE " . PREFIX . "_post SET {$field} = '{$value}' WHERE id = '{$id}'" );
}
//
Найти далее:
if ( $field == "news_read" ) {
$db->query( "DELETE FROM " . PREFIX . "_views WHERE news_id = '{$id}'" );
}
Добавить ниже:
// poll clear mod
if ( $field == "poll_clear" ) {
$db->query( "UPDATE " . PREFIX . "_poll set votes = '0' WHERE news_id = '{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_poll_log WHERE news_id = '{$id}'" );
}
if ( $field == "poll_delete" ) {
$db->query( "UPDATE " . PREFIX . "_post_extras SET votes = '0' WHERE news_id='{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_poll WHERE news_id = '{$id}'" );
$db->query( "DELETE FROM " . PREFIX . "_poll_log WHERE news_id = '{$id}'" );
}
//
Готово!
• Автор: Grey
• Источник
Посетители, находящиеся в группе Гость, не могут оставлять комментарии к данной публикации.