Ограниченное редактирование поста

Автор: Fuze
Опубликовано: 107 дней назад (5 февраля 2012)
Рубрика: Без рубрики
Редактировалось: 2 раза — последний 6 февраля 2012
+30
Голосов: 30
Накидал по просьбе одного из участников плагин, позволяющий ограничить по времени редактирование/удаление поста в блоге.
В настройках плагина указываем время в часах, после которого редактировать/удалить (отдельные опции) пост будет не возможно.
Значение опций "0" - неограниченно, для администраторов ограничений нет.

Как установить:

1. Открываем файл /components/blogs/frontend.php, ищем строки типа
Код PHP:
    //для редактирования поста
    if ($do=='editpost'){
        //Проверяем доступ
        $is_post_author = $model->isUserPostAuthor($post_id, $user_id);
		if (!$myblog && !$is_post_author && !$is_admin) { $inCore->redirectBack(); }
        //Получаем исходный пост из базы
        $post = $model->getPost($post_id);
        if (!$post){ $inCore->redirectBack(); }
и после вставляем
Код PHP:
$post = cmsCore::callEvent('EDIT_POST', $post);
Далее ищем строки типа
Код PHP:
if ($do == 'delpost'){
    $post_id 	= $inCore->request('post_id', 'int', 0);
    $user_id    = $inUser->id;
    if (!$user_id || !$post_id) { $inCore->redirectBack(); }
    $post = $model->getPost($post_id);
    if (!$post){ cmsCore::error404(); }
и после вставляем
Код PHP:
$post = cmsCore::callEvent('DELETE_POST', $post);
2. Скачиваем архив, распаковываем в корень сайта, заходим в админку, устанавливаем плагин как обычно.

UPD: добавил ограничение на удаление поста, а так же вывод информации - сколько осталось времени на редактирование.
Компонент InstantVideo - видеохостинг на базе InstantCMS | Анонс InstantVideo 1.6
soxom # 5 февраля 2012 в 23:20 0
Супер! Спасибо
Lana # 6 февраля 2012 в 00:01 +3
Еще бы аналогичный плагтн для запрета редактирования статей, размещенных пользователями :)
Daze77 # 6 февраля 2012 в 00:13 0
Он не сможет редактировать запись в блоге? А удалить сможет?
arianfinist # 6 февраля 2012 в 01:28 0
Удалить и так можешь вырезать
/templates/_default_/components/com_content_my.tpl

Убери
Код PHP:
<a href="/content/delete{$article.id}.html" title="{$LANG.DELETE}"><img src="/templates/_default_/images/icons/delete.png" border="0"/></a>
deltas # 6 февраля 2012 в 00:18 +1
если честно - не могу представить зачем это нужно... пост мой - хочу пишу, хочу меняю, удаляю. Это удар по демократии :)
arianfinist # 6 февраля 2012 в 01:25 +1
Сразу видно что у Вас нет ресурса где люди много создают статей.

Плагин крайне важен т.к. люди частенько пишут, статьи про индексировались, а в один момент по разным причинам, берут их и удаляют. От этого сайт сильно страдает и люди которые не могут их найти.

Было бы вообще замечательно, если б тоже самое и для раздела статей написали.
nedoriko # 6 февраля 2012 в 01:33 +1
представь себе ситуацию
чел опка..лся, все это видели. после он подмылся и типо ничего не было. так вот данная фишка ограничивает ему отведенное время чтоб подмыться.
правда нужно еще добавить возможность обнулять время (то есть ставить запрет на редактирование) если на его пост уже поступил комментарий.
пс
если честно то я думал у нас это уже все есть. как то даже и не заморачивался по поводу.
+
deltas # 6 февраля 2012 в 01:45 0
ну да, тогда понятно
arianfinist # 6 февраля 2012 в 09:50 +1
Знаете ситуация была еще хуже. Пользователь запостил тему, а потом через неделю ее изменил и насовал туда десятки ссылок и сделал вообще другую статью не по теме сайта. Хорошо, что сообщили другие пользователи. Одним словом когда у тебя десяток новых статей в день, а общее колл-во уходит за 5000 тут уже без этого плагина никак
nedoriko # 6 февраля 2012 в 11:06 0
согласен. +
arianfinist # 6 февраля 2012 в 15:28 0
Аха ха ха Вот посмотрите
http://www.instantcms.ru/forum/thread9591-1.html#75332
прямо в подтверждение моих слов об удалении и мне как назло он тоже нужен -)))
pivua) # 6 февраля 2012 в 02:58 0
Все время воспринимал блог как что то вроде личного дневника с полезными мыслями))
Так многие пишут, пишут. Поставили многоточие, типа завтра продолжу. В этом по моему и есть удобство блога)
В общем полезный плагин но не везде)
Даже ошибки свои (не обязательно орфографические или грамматические), мысль может не правильно изложил, завтра укажут те на ошибку - а все!) так и будешь с пятном своим))
В общем я к тому что допустим на инстанте точно не прокатил бы такой запрет) Хотя на более специфичных проектах возможно и пользу принесет)
nedoriko # 6 февраля 2012 в 03:05 0
не могу не согласиться. ну эта фишка для форумов хороша. и я ее конечно пока еще несмотрел. но если есть возможность установки такого таймера для комментов а не самого поста. то и для длогов сгодится
Daze77 # 6 февраля 2012 в 03:10 0
А можно дописать плагин так, что бы после определенного времени человек не мог удалять запись в блоге?
deltas # 6 февраля 2012 в 03:14 0
думаю это можно и в самом движке дописать.
например в функции удаления сначала сверялась дата публикации с текущей и т.д.
AlexG # 6 февраля 2012 в 08:58 0
А как быть если в посте спустя время необходимо обновить ссылки?
nedoriko # 6 февраля 2012 в 09:44 0
всё элементарно, Ватсон! просто нужно написать новый пост
maia # 6 февраля 2012 в 09:36 -1
Fuze, я тебя люблю! Как мне оно надо было!
Fuze # 6 февраля 2012 в 11:00 +4

Обновил пост и архив, добавил аналогичное для удаления поста, + теперь выводится информация об окончании срока редактирования.

Те, кто уже установил - переустановите (удалите, затем вновь поставьте) плагин.

Katerina # 6 февраля 2012 в 14:10 0
Спасибо большое.

Что-то у меня не хочет нормально работать.
Установила в настройках везде 72 часа. Тестирую, как пользователь.

При редактировании выводит так:"Время на редактирование поста 3", видимо имеется в виду 3 дня...
при попытке удаления примерно так: "Время на удаление поста вышло".
Fuze # 6 февраля 2012 в 14:55 +1
При редактировании выводит так:"Время на редактирование поста 3", видимо имеется в виду 3 дня...
добавьте недостающие фразы из файла \languages\ru\lang.php дистрибутива 1.9 в свой соответствующий файл.
Katerina # 6 февраля 2012 в 15:08 0
Понятно, спасибо. У меня же 1,8.

А почему не удаляются записи, когда также задано 72?
Lexa219 # 6 февраля 2012 в 12:50 0
Спасибо за плагин. Возможно ли в данный плагин добавить, после редактировании "Активной статьи",статья переходила в статус "На проверке"..
lezginka.ru # 6 февраля 2012 в 13:36 0
+
чуть не в тему, но в тему :)
как сделать чтобы в разделы сайта, ВСЕ(юзеры,редакторы и т.д.) могли добавить статьи , точнее отправлять на модерацию.
Проблема в том, что есть выбор ТОЛЬКО для 1 группы, больше выбора нет, а надо больше.
кто знает ?
Роксана # 6 февраля 2012 в 22:03 0
А если пользователь удалил профиль, то блог удаляется? Нельзя ли сделать так, чтобы и блог и статьи не удалялись?
Fuze # 6 февраля 2012 в 22:37 +2
сказку про золотую рыбку читали?)
плагин можно доработать к своим нуждам, там ничего сложного нет.
А если пользователь удалил профиль, то блог удаляется?
да.
Нельзя ли сделать так, чтобы и блог и статьи не удалялись?
можно
letsgo # 7 февраля 2012 в 00:25 0
Очень бы просил такое дополнение, чтобы не удалялись статьи и блог. Эмоции штука постоянная а вот индексация страдает.
maia # 24 февраля 2012 в 22:36 -1
Что-то у меня не получается (( После установки плагина начались такие косяки:
1. Если время выставлено, как 0, то пост нормально удаляется. Если на какой-то другой срок, то не удаляется, а постоянно выводится вопро - на самом ли деле я хочу его удалить.
2. Редактировать теперь вообще не получается при любом сроке. После клика на редактирование, открывается окно редактора, но пустое. То есть вообще без самого поста.
В чем может быть проблема? Версия 1.9.
spacer # 12 марта 2012 в 12:28 +1
Очень интересно, но блоггеров ущемлять этим ограничением не хочу.
Другое дело - статьи.
Есть аналогичный хак для статей?

Спасибо