Доработка системы модерации (складчина)

Тема закреплена InstantCMS 2.X

Создание единой системы модерации, удобства для модераторов и пользователей, черновики

#91 28 ноября 2017 в 12:01
Наличие двух версий уже позволит получить многие удобства. Так что овчинка стоит выделки.

А может при включении версионности в типе контента делать вторую таблицу, типа cms_con_articles_versions с неуникальными id?
#92 28 ноября 2017 в 12:19
WebMan, на данный момент я не рассматриваю вообще реализацию подобного функционала. Нужно закончить то, о чем была складчина.
#93 28 ноября 2017 в 14:27

на данный момент я не рассматриваю вообще реализацию подобного функционала.

Fuze
Понятно, но всё же я оставлю здесь свои мысли, так сказать на будущее))

копию сделать не сложно, только где ее хранить? В той же таблице? В новой?

Fuze
В той же, ниже всё объясню.

Представляете как разрастется база при росте версий?

Fuze
Представляю, максимум в два раза, и то только при самых не благоприятных обстоятельствах, когда каждый матереиал, окажется на редактировании, что на практике я думаю, ни когда не будет.
Для этого нужно ввести в типы контента, два служебных поля: поле — "ID редактируемой записи" и поле типа флаг — "Копия".
Объясню на примере свою мысль: допустим тип контента статьи, в нём есть всего две записи с ID-1 и ID-2, прошедшие модерацию, давно проиндексированные поисковиками и т.д. и т.п., пользователь решил отредактировать запись с ID-1, внёс изменения, и нажал на кнопку "Сохранить", сейчас происходит что? Происходит запись изменённых данных, в ту же запись, а нужно, чтоб записывалось в пустую строку, или в новую строку таблицы. Что такое пустая строка, я объясню ниже. Если нет пустых строк, как в нашем случае, то создаём новую запись с ID-3, в которую по мимо всех полей, записываем в новые служебные поля, ID редактируемой записи и ставим "true" в поле "Копия". Эта новая запись и уходит на модерацию. Модератор проверил и даёт добро на публикацию, т.е. нажимает кнопку "Опубликовать", после чего значения всех полей в записи с ID-2, перезаписываем данными из записи с ID-3, и одновременно, очищаем все поля в записи в ID-3, кроме поля "ID" и поля "Копия".
Далее создаём ещё одну новую запись, у неё будет ID-4, модерируем и публикуем. Теперь представим, что пользователь решил изменить запись с ID-2, редактирует и нажимает на кнопку "Сохранить", мы ищем пустую запись, в котором поле "Копия" = "true" и поле "ID редактируемой записи" = "пусто", записываем туда данные полей и отредактированной записи с ID-2 и отправляем эту запись на модерацию, после одобрения модератором, происходит то же, что и с редактируемой записью с ID-1.
Да, строк в таблице станет больше, но те строки, в которых поле "Копия" = "true", так сказать многоразовые, и будут постоянно в работе, т.е. размер базы, расти не будет, вернее будет, но не в два раза, ибо представить ситуацию, когда все записи одновременно уйдут на модерацию, для меня сложно.
#94 30 ноября 2017 в 13:01
lakomet, если это действительно сработает и так просто, то "надо брать", то есть делать laugh
Повторюсь — готов еще финансово подсобить ради такого дела
#95 15 ноября 2018 в 21:01
Друзья, а версионность контента уже не нужна ни кому?

При изменении уже опубликованного материала, если пользователь вносит изменения, материал продолжает публиковаться, а на модерацию уходит измененный вариант. Если изменения не приняты, материал продолжает публиковаться без изменений, а если приняты — в новой редакции.
Прошу администрацию озвучить стоимость такой разработки (для ее включения в ядро). От себя готов предоставить 5000 рублей. Может и еще желающие найдутся. Просто ОЧЕНЬ нужен данный функционал.
#96 15 ноября 2018 в 21:24

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

@Kerncraft1
Обычно, если материал чем-то не подходит, то его в этой версии лучше снять с публикации до момента, пока всё будет переделано правильно. Если оставить публикацию, то автор может просто не захотеть вносить правки. И поисковики успеют проиндексировать не лучший вариант страницы — это плохо.

Версионность может быть полезна для другого. Например, для наглядного показа модератору сделанных изменений. Или как возможность отката к первоначальной версии в случае ошибок при редактировании публикации пользователем. В-принципе, это полезный функционал. Но сделать его — очень трудоёмко. И БД увеличится очень сильно даже при хранении всего двух версий каждой публикации.
#97 15 ноября 2018 в 21:49

Обычно, если материал чем-то не подходит, то его в этой версии лучше снять с публикации до момента

WebMan
Речь идет несколько об иной ситуации, когда пользователь сам решил что то отредактировать! В этом случае публикация должна сама сниматься с опубликованных и ждать решения модератора, если он подтверждает изменения тогда публикуется отредактированная статья, а если нет, тогда старый вариант! Если автор не согласен, тогда статья снимается с сайта полностью.

для наглядного показа модератору сделанных изменений. Или как возможность отката к первоначальной версии в случае ошибок при редактировании публикации пользователем.

WebMan
Это само собой, иначе откуда будет известно, что было до редактирования.
#98 15 ноября 2018 в 22:14

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

WebMan

Все подходит. Просто некоторый контент необходимо регулярно обновлять.

И БД увеличится очень сильно даже при хранении всего двух версий каждой публикации.

WebMan

Очень сильно? При хранении всего двух версий каждой публикации БД должна увеличиться максимум в 2 раза. И что их этого? Пусть будет настройка, сколько ревизий необходимо хранить. Можно хранить только одну ревизию и тогда размер БД увеличится на сущие копейки (вряд ли все записи разом будут редактироваться). А после одобрения перезаписывать начальную запись.

Вот реально, только в Drupal есть адекватно работающий механизм ревизий и модерации, но к сожалению он мне не подходит по другой причине.

В Instant же (социально-коллективной CMS) максимально приблизились к идеальной реализации, но почему-то решили не добавлять версионность (пусть отключаемую, если она кому-то не нужна).
#99 15 ноября 2018 в 23:08
Лично я за версионность. Тем более за опциональную. 😊

почему-то решили не добавлять версионность

@Kerncraft1
Думаю, что не "решили", а просто не в приоритете выделять много времени на такой сложный функционал, есть и более востребованные функции. Посмотрим, сколько наберётся желающих иметь версионность, и подождём ответа Fuze.
#100 16 ноября 2018 в 09:37
+1 за версионность.
#101 18 ноября 2018 в 15:17
А какое заклинание нужно скастовать, чтобы призвать администрацию в тему? joke
#102 18 ноября 2018 в 15:32
Потенциально полезная и нужная штука
#103 9 февраля 2019 в 00:48
Тема конечно старая и частично реализована. Но нужно расширить возможности этим /forum/thread31111-1.html#304336
#104 9 февраля 2019 в 22:54
интересно что с этой темой?
#105 24 октября 2019 в 15:06
Игорь ФИН, тема переехала во вторую очередь
Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.