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

 
Посетитель
small user social cms
Медаль
Сообщений: 433
Стоит задача в типе контента запретить редактирование записей только после того как ее одобрил модератор! Как это сделать?
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2572
Рачей, написать малюсенький компонент, который будет в поле, скажем, odobreno ставить единичку после одобрения модератором.
И проверять при редактировании, что в этом поле стоит. Если единичка, выводить в сессион-мессадж уведомление.
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Реклама
cms
Посетитель
small user social cms
Медаль
Сообщений: 433
Zau4man:

Рачей, написать малюсенький компонент, который будет в поле, скажем, odobreno ставить единичку после одобрения модератором.
И проверять при редактировании, что в этом поле стоит. Если единичка, выводить в сессион-мессадж уведомление.

ну а как это дело связать с пунктом меню который не должен показываться
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2572
Рачей, попробовать отредактировать кнопочки в хуке

Код PHP:
  1. $buttons_hook = cmsEventsManager::hook('ctype_item_tool_buttons', array(
  2. 'params' => array($ctype, $item, $is_moderator, $childs),
  3. 'buttons' => $tool_buttons
  4. ));
который вызывается в system\controllers\content\actions\item_view.php

Честно, не делал, но почти уверен, что это то, что нужно.
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Посетитель
small user social cms
Медаль
Сообщений: 433
Zau4man:

Рачей, попробовать отредактировать кнопочки в хуке

Код PHP:
  1. $buttons_hook = cmsEventsManager::hook('ctype_item_tool_buttons', array(
  2. 'params' => array($ctype, $item, $is_moderator, $childs),
  3. 'buttons' => $tool_buttons
  4. ));
который вызывается в system\controllers\content\actions\item_view.php

Честно, не делал, но почти уверен, что это то, что нужно.
только хука у меня такого не наблюдается,-(
где его найти ctype_item_tool_buttons?
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2572
Рачей, в 2.10.1 есть https://github.com/instantsoft/icms2/blob/5c18d1a4be61cbbd724c192bc900bfc1c5abf332/system/controllers/content/actions/item_view.php#L540
Наверно, стоит обновиться...
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Посетитель
small user social cms
Медаль
Сообщений: 433
Zau4man:

класс... вот бы еще там сделали возможность менять название "выберите категорию" а то оно зашито.. капец прям какой-то..
Посетитель
small user social cms
Медаль
Сообщений: 433
Zau4man:
ну вот я обновился, а в настройках что-то не вижу такого пункта..
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2572
Рачей, так оно меняется не в настройках.
Его можно изменить с помощью хука ctype_item_tool_buttons в своем компоненте.
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Посетитель
small user social cms
Медаль
Сообщений: 433
Zau4man:

Рачей, так оно меняется не в настройках.
Его можно изменить с помощью хука ctype_item_tool_buttons в своем компоненте.

Так у меня нет компонента. Мне надо в стандартном сделать что бы не могли... Сча попробую ковырнуть. А то руки у всех шаловливые.. Лезут куда не попадя..
Посетитель
small user social cms
Медаль
Сообщений: 433
Ну меню я скрыл таким образом... Но это не панацея. Кто захочет отредактирует. Набрав в строке .. /edit/###

Код PHP:
  1.  
  2. if ($item['is_approved'] != '1') {
  3. $buttons_hook = cmsEventsManager::hook('ctype_item_tool_buttons', array(
  4. 'params' => array($ctype, $item, $is_moderator, $childs),
  5. 'buttons' => $tool_buttons
  6. ));
  7.  
  8.  
  9. $buttons_hook = cmsEventsManager::hook($ctype['name'].'_ctype_item_tool_buttons', array(
  10. 'params' => array($ctype, $item, $is_moderator, $childs),
  11. 'buttons' => $buttons_hook['buttons']
  12. ));
  13. }
  14.  
Как на уровне системы запретить редактирование?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3603
Рачей:
Как на уровне системы запретить редактирование?
Хуком content_edit
Посетитель
small user social cms
Медаль
Сообщений: 433
Loadырь:

Рачей:
Как на уровне системы запретить редактирование?
Хуком content_edit

а это что я сделал вернуть как было?
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 3603
Рачей:
вернуть как было?
Нет, этим же вы спрятали сами кнопки, а в хуке content_edit вы выведете условие
Код PHP:
  1. if (!cmsUser::isAdmin() && !empty($item['is_approved'])){ cmsCore::error404; } // как-то так
Посетитель
small user social cms
Медаль
Сообщений: 433
Loadырь:

Рачей:
вернуть как было?
Нет, этим же вы спрятали сами кнопки, а в хуке content_edit вы выведете условие
Код PHP:
  1. if (!cmsUser::isAdmin() && !empty($item['is_approved'])){ cmsCore::error404; } // как-то так

спасибо, не получилось.

Код PHP:
  1.  
  2. class onContentContentEdit extends cmsAction {
  3.  
  4. public function run($item){
  5.  
  6. if (!cmsUser::isAdmin() && $item['is_approved'] == '1') {
  7.  
  8. cmsCore::error404();
  9.  
  10. } // как-то так
  11.  
  12. else {
  13.  
  14. return $item;
  15.  
  16. }
  17.  
  18. }
  19.  
  20. }
  21.  
На админа реагирует на $item['is_approved'] нет
В начало страницы
Предыдущая темаСледующая тема Перейти на форум: