У меня проблема, готов заплатить за помощь.
Нужна простая фишка, нигде не могу найти. У меня на сайте разные типы материалов, нужно просто чтобы я мог начав редактировать любой материал установить галочку или что-то подобное и этот материал становился только для чтения, чтобы Автор не мог его редактировать и удалить.
Т.е. всё просто, любую ноду сделать только для чтения всем кроме Админа.
Столько модулей перепробовал по ограничению доступа, там по ролям, по таксономии, пароли и другие фишки, но не нашёл ничего простого, нажал и всё, нужная нода только для чтения. Пожалуйста, выручите, очень нужно.
Комментарии
Это реализовывается стандартными методами Drupal. Уберите галку на нужный тип материала для всех ролей, кроме админской что-то типа "править свой материал_тип" на странице прав доступа и вам будет щастье.
Мне не нужно весь материал убирать, нужны отдельные ноды из разных типов материала. Т.е. или отдельную запись блога сделать только для чтения, или тему на форуме, или пост, заметку и т.п.
Готового модуля такого нет, надо писать руками. Я к сожалению пока занят (до 20-х чисел января), но если не горит то аська в профиле.
Ну тогда, content_access?
Блин, спасибо большое, что ещё раз ткнули меня в него носом Раньше ставил его, да и все наверное модули перепробовал такого плана, не нашёл нужного, а этот не срабатывал. Ставлю или общие правила запрещающие редактирование и удаление, или чисто на ноду, но ноль эмоций, и сейчас так же. Пока не стал копаться и думать в чём-же проблема, оказывается, в контроле доступа стоило убрать у модуля Блог галочку разрешающую редактировать запись блога, и тут же модуль стал приоритетным и всё начало работать. Столько намучался, ещё раз спасибо Готов отблагодарить финансово
Вот только обрадуешься, как тебе нож в спину Когда в Контроль доступа убрал галочку с редактирования записи в блоге всё заработало, но теперь нельзя создавать эти самые записи в блоге. Ссылка пропала и нет доступа.
Вопрос остаётся открытым, в частности интересует работа с записями в блоге.
я бы сделал так:
0. Создал бы новый тип материала newblog.
1. Поставил бы модуль nodetype.
2. Изменил бы тип документа всех блоговых записей на newblog, используя nodetype.
3. Выключил бы модуль blog, так как он нафиг теперь не нужен.
4. При необходимости, переименовал бы newblog в blog (хотя это совсем не обязательно и даже вредно =)).
5. Задал бы необходимые права на, теперь уже, полноценный тип документа blog (newblog), используя content_access.
Ну а вывод всех материалов типа blog и создание короткой ссылки это уже пройденный этап.
I. При всей кажущейся сложности, на самом деле нет ничего сложного.
II. Мы задействуем мощь content_access не прибегая к помощи других модулей.
III. Мы даже избавляемся от одного модуля, так как по окончании работы nodetype можно опять вырубить
Линк в тему: http://drupal.org/project/nodetype
P.S. Если не передумали благодарить =), то могу вечером скинуть реквизиты WM-кошелки.
Не передумал, конечно, главное сделать
Эту идею я провернул уже, но или сделал это не верно, или она не сработало.
Вышло вот как. Есть новый материал blog_new, его вывожу через виевсы, вывожу вместе с обычными блогами, т.е. это список записей. Если мне нужно обычную запись блога закрыть от редактирования и удаления, я её перевожу в этот новый тип и всё отлично, но...
1. В профиле пользователей при нажатии на ссылку "Просмотреть последние записи в блогах" этот новый тип не выводится.
2. Записи этого типа не связаны между собой, они отдельны и связаны только тем видом, в котором я их вывожу.
У обычного блога внизу есть ссылочка типа: Блог пользователя... в которой выводятся все его записи, тут же её нет, документы разделены. Можно дать отдельный раздел через Таксономию, но не думаю, что это разделит все записи блога отдельно по пользователям, они скорее всего будут все вместе в выбранном разделе, и этот раздел придется выбирать каждый раз создавая запись или меняя запись обычного блога на запись нового, что очень не удобно.
Если я что-то не так думаю и делаю, поправьте, пожалуйста.
А если обратно сменить тип документа на blog, то заданные права сохраняются?
Не совсем понял как это, растолкуйте. По идее если я верну blog_new в blog, то вернутся права как для обычного документа блога.
А можно вопрос? Зачем делать только некоторые записи в блока только для чтения? Это же илчные блоги, так?
Можно копировать ноды, если вы хотите их защитить, т.е. нек-рые ноды будут и блог, и нбюблог, последний защищен от копирования. Но тогда копирование контента получится...
Такой вариант не подходит, к сожалению. Дублирование это не выход...
Блин ну вы тут навернули)))
А если попробовать так:
1. Добавляешь к материалу блог поле ССК запретить редактирование (checkbox).
2. Модуль CCK Field Permissions на это поле ставите доступ только админу.
3. На событии edit hook_nodeapi проверяете если тип материала blog(может быть любой тип) и галочка установлена то любого пользователя кроме админа пишем "пшелка ты на главную" (к примеру) и просто редиректить назад на view страницы.
Метод требует знания PHP и API друпала.
Для меня это вообще круто, так как не знаю PHP и API друпала
Поэтому читай мой пост ниже если горит то поиск в руки, и учить матчасть.
glu2006
Хороший вариант. А Вы посоветуете для этого отдельный модуль писать или всё же вмешиваться в работу ядра?
ИМХО, модуль правильнее, но стоит ли ради небольшой функции затевать создание отдельного модуля?
Вмешиваться в работу ядра ЗЛО!!!!
Писать свой модуль???
Я пишу свой модуль даже для сайтов визиток. (он ничего в себе может и не нести)
Но смотреть в будущее проекта задача того человека который его делает, хотя если поматросил и бросил то как говориться и флаг в руки))
Пожалуйста, гляньте продолжение этой темы - http://www.drupal.ru/node/23038 , может сможете помочь
Это можно сделать очень просто!
- Создать новый формат ввода текста, обозвать его например "защита редактирования"
- Этот формат ввода должен быть аналогичен используемому формату ввода, но разрешён только админу
Если теперь сменить формат ввода на "защита редактирования", то никто кроме админа не сможет эту ноду редактировать!
* для Drupal 6.* это прекрасно работает, для пятёрки - хз..