Не нравятся результаты поиска? Попробуйте другой поиск!
DLE FAQ » Все вопросы » Ламерские вопросы » Как сделать историю редактирования новости ?

Как сделать историю редактирования новости ?


     23.03.2015    Все вопросы » Ламерские вопросы    2167

вопрос
Здравствуйте.

Подскажите, возможно ли сделать историю редактирования новости, чтоб автоматически выводило всю историю или это только через доп. поля ?

Так же, чтоб указывание причины редактирования было обязательным полем и соответственно, чтоб по умолчанию стояла галочка "Выводить информацию о том что новость отредактирована"

пример можно посмотреть здесь

Как сделать историю редактирования новости ?

Ответил: Googledono


Создаём доп. поле. назовём его update. Туда прописываем всегда последнее обновление. далее:
Открываем engine/inc/editnews.php

Заменить строки:
<tr>
<td width="140" height="29" style="padding-left:5px;">{$lang['news_edit_reason']}</td>
<td><input type="checkbox" name="view_edit" value="1" {$view_edit_cheked}>{$lang['allow_view_edit']}<input class="edit bk" type="text" size="55" name="editreason" id="editreason" value="{$row['reason']}"> {$lang['news_edit_date']}</td>
</tr>

На эти:
<tr>
<td width="140" height="29" style="padding-left:5px;">{$lang['news_edit_reason']}</td>
<td><input type="checkbox" name="view_edit" value="1" {$view_edit_cheked}>{$lang['allow_view_edit']}<input class="edit bk" type="text" size="55" name="editreason" id="editreason" value="">{$lang['news_edit_date']}{$row['reason']}</td>
</tr>


далее в этом же файле заменить строки:
if ($item_db[6]) $db->query( "UPDATE " . PREFIX . "_post_extras SET allow_rate='$allow_rating', votes='$add_vote', disable_index='$disable_index', access='$group_regel', editdate='$added_time', editor='{$member_id['name']}', reason='$editreason', view_edit='$view_edit' WHERE news_id='$item_db[0]'" );

else $db->query( "INSERT INTO " . PREFIX . "_post_extras (news_id, allow_rate, votes, disable_index, access, editdate, editor, reason, view_edit) VALUES('{$item_db[0]}', '{$allow_rating}', '{$add_vote}', '{$disable_index}', '{$group_regel}', '{$added_time}', '{$member_id['name']}', '{$editreason}', '{$view_edit}')" );



На эти:
$editreason = ($editreason!='') ? '<b>'.$member_id['name'].'</b> | '.langdate( $config['timestamp_active'],$added_time).' | '.$editreason : '';

if ($item_db[6]) $db->query( "UPDATE " . PREFIX . "_post_extras SET allow_rate='$allow_rating', votes='$add_vote', disable_index='$disable_index', access='$group_regel', editdate='$added_time', editor='{$member_id['name']}', reason=concat(reason,'$editreason'), view_edit='$view_edit' WHERE news_id='$item_db[0]'" );

else $db->query( "INSERT INTO " . PREFIX . "_post_extras (news_id, allow_rate, votes, disable_index, access, editdate, editor, reason, view_edit) VALUES('{$item_db[0]}', '{$allow_rating}', '{$add_vote}', '{$disable_index}', '{$group_regel}', '{$added_time}', '{$member_id['name']}', '{$editreason}', '{$view_edit}')" );


Пример вывода в шаблоне:
[edit-date][edit-reason]Причина редактирования:{edit-reason}[/edit-reason][/edit-date]

Остальное по вашему усмотрению - используем документацию по движку

2 комментария

Pringles
Юзер

Pringles - 23 марта 2015 22:44 -

Создать ячейку в бд, в которую будет идти запись, ну и сделать для поста автоочистку, к примеру чтобы для него хранилось не более 10 последних событий. И выбирать потом данные с нее. Вот как то так. Ну а реализовать это, то уже за символическую плату.

Googledono
Юзер

Googledono - 24 марта 2015 20:45 -

Забыл, настраиваем эту строчку под себя:
$editreason = ($editreason!='') ? '<b>'.$member_id['name'].'</b> | '.langdate( $config['timestamp_active'],$added_time).' | '.$editreason : '';

Чтобы комментировать - войдите или зарегистрируйтесь на сайте

Похожие вопросы

наверх