Как в модуль Блога добавить новый тип материала к уже существующему?

Главные вкладки

Аватар пользователя Poqa Poqa 24 декабря 2008 в 6:01

Я вот думал над проблемой которую пытаюсь решить по адресу - http://www.drupal.ru/node/23001 (ограничить доступ на редактирование и удаление выбранной ноды), и появилась мысль пойти в обход. Просто в стандартный модуль блога вписать нужный тип материала и модуль будет отображать не только материалы типа blog, но и нужный мне, допустим, blog_new. Таким образом можно будет свободно переводить любую ноду стандартного блога в новый тип материала и к ней будет пропадать доступ для редактирования и удаления, но в тот же момент она будет отображаться как обычная запись блога со всеми ссылками типа: Блог пользователя... и т.п.
Кто поможет? Заплачу без проблем. Новый модуль писать это выход, но слишком долго, нужно быстрое решение. Если это не получится, останется писать только модуль, а это только в январе...

Комментарии

Аватар пользователя Ne01eX Ne01eX 24 декабря 2008 в 19:05

0. Имхо, незачем было создавать еще одну тему, так как все попадало в рамки предыдущей.
0.1 В рамках сформулированного в этом треде вопроса, может помочь модуль http://drupal.org/project/blogaid :-). Но он под шестерку...

Теперь по существу.

1. Лично я не вижу никаких препятсвий для кастомизации отдельных страниц сайта, таких как http://example.com/user/* и http://example.com/blog/*, где упоминаются линки на блоги юзеров. Также можно кастомизировать вывод переменной $links. Зачем? За тем, чтобы при нажатии на ссылки выводились нужные нам страницы юзверей.
Но этот способ не решает проблемы с акцессом, и не совсем красиво решает вашу проблему.

Имхо, правильный способ без лишних вы$$$нов, - либо расширить возможности управления правами модуля blog, либо предложенный мной в указанной выше теме вариант создания нового типа материала и _тотальной смены_ типа blog на newblog.
Что касается первой части, то требуется либо влезать в core модуль blog, либо писать на него оснастку, расширяющую права. Шансов, что результаты чьего-либа труда попадут в core пятой версии никаких. Сопровождать этот сайт в дальнейшем также придется с учетом сделанных костылей. А потому этот способ отметаем сразу. Ибо он он при всей кажущейся простоте, не эффективен при долгосрочной эксплуатации.
К вопросу о создании оснастки над модулем core blog... Я когда-то копался на drupal.org и что-то подобное видел, но сейчас хоть убей не помню название модуля.

Поэтому будем действовать по "навороченному пути". Smile Smile Smile

Вариант номер 1. Юзаем возможности core модуля taxonomy. Тут не важно, все ли блоги юзеров переведены на новый тип материала, хотя лучше конечно, еще раз повторюсь, вырубить модуль blog вообще. Создаем словарь, скажем, "Тип материала", соответственно с нужными нам терминами. Скажем, если мы имеем типы материалов: article, advice, news, blog, newblog. Ну и создаем термины словаря: Статьи, Заметки, Новости, Блоги. Тогда юзеры смогут при создании матерала выбрать нужный тип ноды руководствуясь предложенными терминами таксономии. Сортировать материалы, используя термины таксономии, несравненно проще. Можно вообще ограничиться одним типом материала для юзеров, скажем, article и на него повесить один древовидный словарь, либо использовать по два словаря на каждый тип материала, если в данном случае использовать несколько типов материала удобнее. Скажем один словарь определяет его тип, а другой определяет его категорию. Согласитесь, в этом случае мы не имеем каких либо проблем с сортировкой материалов по типу и не имеем проблем с переносимостью материалов на новую версию движка.

Ой, сейчас некогда развить мысль дальше...