Разное

Категории и материалы в joomla 2 5. Разделение прав доступа в Joomla

Категории и материалы в joomla 2 5. Разделение прав доступа в Joomla
  • Русская Joomla 2.5 CMS

Давайте раз и навсегда разберемся, что такое Разделы , Категории и Материалы , как они зависят друг от друга и какие подводные камни могут встретиться нам.

Материал , или как её еще называют статья - это единица измерения ценной информации на вашем сайте. Именно материал будет содержать фотографии, тексты и другие типы контента. Для большинства Joomla-сайтов материалы содержат в себе основную информацию для пользователей.

Очень важно понимать следующий момент: Материал лучше рассматривать как "Чистый текст", на который еще не наложены шрифты, обрамления, стили пользовательского дизайна. Например, бывают такие случаи когда один и тот же текст отображается на страницах с разным дизайном, при этом он будет выглядеть по разному, но текст остается тем же. Так что лучше думать о материалах как о чистом содержании вне зависимости от способа его представления.

Разделы и категории

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

Например, есть у нас раздел "Новости", в него попадают тексты "Спорт", "Политика", "Интернет". В этом случае Разделом можно считать "Новости", а категориями будут "Спорт", "Политика", "Интернет". А вот уже внутри определенной категории мы можем найти нашу новость-материал.

Для чего нужно разделять статьи по группам?

Вот несколько причин:

  • Есть большое количество способов отображения категорий и разделов, причем каждое из этих представлений (шаблонов) можно индивидуально настраивать. А во время наполнения сайта текстом, вам нужно только определить текст в нужный раздел и категорию.
  • Если на вашем сайте будет, к примеру, 2000 материалов, то администрирование сайта будет очень сложным и трудоемким занятием. А при использовании разделов и категорий - вы сможете легко сортировать их по нужным рубрикам, затрачивая минимум времени.
  • Появляется возможность упорядочивать статьи для определенных категорий в любом порядке - по времени, по имени, по количеству входов, в произвольном.
  • После включения ЧПУ (SEF), ссылки на сайте станут в нужном виде, указывая на вложенность статьи.

Структура сайта и меню сайта.

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

Что делать если материал не нуждается в категории?

На этот случай предусмотрены статические материалы - для этого просто установите раздел в состояние "Не указано".

Изначально панель управления администратора в Joomla! доступна лишь супер администратору проекта. Только супер администратор вправе назначать и предоставлять соответствующие права для других пользователей системы. Всего в Joomla! заложено семь пользовательских групп это Super Administrator (Супер администратор), Administrator (Администратор), Manager (Менеджер), Publisher (Публикатор/Издатель), Redactor (Редактор), Author (Автор) и Registered (Зарегистрированный пользователь). К перечисленным группам пользователей также стоит добавить простых посетителей сайта без регистрации. Имеющиеся группы пользователей определяют различные уровни доступа в работе с Joomla!.

Группы пользователей

Каждая группа пользователей имеет свои определенные права и главное, что все семь групп делятся дополнительно на две категории с названиями Public Backend и Public Frontend. Дословный перевод обеих категорий на русский язык может показаться не совсем понятным, но смысл состоит в следующем. Пользователи, принадлежащие к категории Public Backend, имеют доступ к административной части системы и к публичной части сайта. Пользователи категории Public Frontend имеют доступ только к публичной части сайта, а вход в административную часть им заказан.

К категории Public Backend принадлежат три группы пользователей – это Super Administrator, Administrator и Manager. К категории Public Frontend принадлежат оставшиеся четыре группы пользователей Publisher, Redactor, Author и Registered. Такой подход в управлении работой сайта позволяет выстроить логическую цепочку работников ресурса, а также установить определенные уровни для пользователей CMS. Например, Автор может писать статьи для сайта и добавлять их без права публикаций. В свою очередь Редактор обязан редактировать статьи, а Публикатор опубликовать или допустить статью к публикации на сайте. В итоге получается, что Автор и Редактор имеют права лишь работать над статьей, а публикатор дает добро на публикацию статьи.

Рис. 1

Сразу возникает вопрос, а как тогда Автор или Редактор не имеющий доступа к административной части системы может работать над статьей? В Joomla! как и во многих других CMS предусмотрена система визуального редактирования текста прямо из публичной части сайта. Если на сайт зайдет пользователь с правами пользователей группы Public Frontend, то возле каждой статьи или новости появятся дополнительная кнопка с изображением карандаша и листка бумаги, как показано на Рис. 1. Наведя курсор на эту кнопку, можно узнать подробную информацию о данном материале. В свою очередь выбор кнопки редакции, откроет визуальный редактор Joomla!, где пользователь сможет произвести определенный цикл работы с содержимым сайта (Рис. 2).


Рис. 2

Public Frontend

Категория пользователей группы Public Frontend имеет право осуществлять наполнение сайта различной информацией, но без прав доступа к административной части системы. Давайте охарактеризуем каждую из групп пользователей по отдельности.

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

Author – автор сайта имеет право писать статьи для сайта. Сам автор не может опубликовать статью на сайте, он может лишь написать ее и скажем так поставить в очередь на публикацию. Автор отвечает только за свои статьи и не может редактировать или просматривать не опубликованные статьи другого автора.

Redactor – редактор сайта может как писать так и редактировать/удалять статьи написанные любыми авторами, но редактор не имеет права публиковать статьи на сайте.

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

Public Backend

Вторая категория Public Backend, включает в себя три группы и позволяет пользователям этих групп редактировать наполнение страниц сайта не только с публичной части сайта, но и с административной панели Joomla!. Каждая группа после доступа в административную часть, получает именно тот набор функций в работе с CMS, который определен по штату. Иначе говоря, некоторые кнопки и меню команды будут скрыты от доступа. Например менеджер не получит в свое распоряжение ни одной команды из настроек системы и ее администрирования. Это вполне логично, каждый должен занимать своим делом.

Manager – эта группа людей управляет работой пользователей сайта и имеет все без ограничения права доступные Авторам, Редакторам и Публикаторам. Менеджер системы не может устанавливать расширения и заниматься любой другой серьезной администрацией системы. Он не имеет права добавлять в систему новых пользователей и редактировать записи уже имеющих пользователей, но менеджер может работать с меню, файлами и настраивать уже установленные расширения CMS.

Administrator – администратор это второй по рангу человек в системе и ему доступны все права Авторов, Редакторов, Публикаторов и Менеджеров. Права администратора по сравнению с правами супер администратора ограничены лишь доступом к некоторым важным и определяющим настройкам Joomla!. Например, он не может добавлять в систему супер администраторов и менять основные настройки CMS, но он может добавлять новых пользователей, редактировать их записи, назначать этим пользователям различные права, работать с меню, расширениями и шаблонами CMS.

Super Administrator – это как мы уже выяснили «самый первый человек на деревне», который имеет неограниченные права и возможности в настройке CMS. По умолчанию самый первый человек, который осуществил установку Joomla! на хостинг-площадку под логином admin, получает права супер администратора. Аналогичных пользователей может быть несколько, но лишь супер администратор вправе назначать новых супер администраторов системы.


Рис. 3

Давайте начнем с некоторых определений. На Joomla есть возможность создавать некоторые текстовые материалы, которые можно показать на вашем сайте. Как правило, они содержат текст и могут содержать фотографии, а также включать другие типы контента. Для многих Joomla! сайтов, статьи составляют основную часть информации, представленной на сайте.

Важно понимать, что, на Joomla, содержание сайта (например, статьи) полностью отделено от форматирования сайта - как она выглядит на этой странице. Так что лучше думать о статьях, как о чистом содержании, и не увлекаться его форматированием в редакторе.

Категории Joomla

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

Например, вы можете создать категорию под названием «Жильё» и в этой категории создать подкатегории «Квартиры» и «Дома». Статьи о квартирах будет размещены в категории «Квартиры», о домах в категории «Дома».

Категория «Uncategorised» является категорией по умолчанию, назначаемой любому типу и всем типам содержимого. Ее название не описательно и она должна быть использована по мере необходимости для типов содержимого, которые не подпадают под какую-либо конкретную категорию.

Зачем использовать категории?

Есть две основных причины, зачем организовать ваши статьи в категории.

Список и блог Макеты

Во-первых, есть встроенные типы пунктов меню Joomla!, которые используют категории, это: Блог Категории и Список категорий. Эти типы пунктов меню (также называемые «макеты») делают легким показ статей, которые принадлежат к определенным категориям.

class="eliadunit">

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

Например, у вас есть категория в виде Блога Жильё», в котором стоит настройка сортировки «сначала новые статьи». При добавлении новой статьи в «Жильё», она будет автоматически отображаться на блоге «Жильё» в качестве первой статьи. Вы не должны делать ничего делать, кроме добавления статьи и размещения её в эту категорию.

Организация статей Менеджере материалов

Если у вас будет большое количество статей на вашем сайте, вторая причина, чтобы использовать категории, это группировка статей для быстрого поиска. Например, в Менеджере материалов , вы можете отфильтровать статьи, по параметру категории. Так что если у вас есть 250 статей на вашем сайте, вы можете найти статью более легко, если вы знаете его категорию.

Другая информация по категориям

Категории сайта и Меню

Важно понимать, что структура категорий не имеет ничего общего со структурой меню на вашем сайте. В одном меню могут быть пункты меню с разными категориями.

Другие виды Категории

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

Существующие решения для организации добавления пользователями статей и материалов на сайт Joomla

Прежде, чем продолжать, стоит указать те критерии, которые были взяты за основу:

  • Решение должно либо вообще не вносить изменения в стандартные механизмы , либо делать их настолько минимальными, чтобы в последствии на сайт можно было спокойно добавлять другие модули и компоненты.
  • Необходима модерация добавляемых материалов.
  • Необходимо, чтобы пользователь не смог случайным образом как-то испортить текущую структуру сайта или добавить материалы в те категории, которые используются только для организации внутренних задач сайта.
  • Если возникает необходимость вносить правки в код (допиливание), то они должны быть минимальными . Одно дело, когда у вас уже есть поток статей и вы знаете конкретную специфику того, чего вам ждать от пользователей. Соответственно, вы понимаете, что ваши труды будут полезными. Другое дело, когда вы только добавляете функциональность и не известно будет ли поток и если будет, то какой. Ведь, всегда нужно помнить, что если кому-то действительно хочется добавить материал, то для него не будет представлять каких-то сложностей отправка документа Word, или OpenOffice, или даже html на электронную почту.
  • Желательно, чтобы были всякие удобные функции , такие как возможность пользователю посмотреть статусы его статей, организация процесса модерации статей, добавление меток, добавление картинок и прочие.

Критерии достаточно базовые, но даже их хватило для того, чтобы в итоге остановиться на добавлении материалов стандартным образом. Но, обо всем по порядку. Первыми были рассмотрены различные CCK , такие как ContentBuilder и K2 . Основной проблемой стали изменение стандартных механизмов и необходимость внесения достаточно большого объема правок , поэтому от них пришлось отказаться. К примеру, скачав с официального сайта и установив K2, в котором по утверждениям уже должна быть реализована удобная функциональность добавления материалов, оказалось, что весь контент должен использоваться только через K2 (следовательно, практически все модули для Joomla без поддержки K2 становятся бесполезными) и что форму добавления материалов еще необходимо исправлять под свои нужды (к примеру, доступность всех категорий пользователю). Безусловно, вполне возможно, что после определенного времени изучения K2, эту задачу можно было бы решить куда проще, но переносить все что есть, только ради одной функции, и искать аналоги существующим модулям - не рационально.

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

Следующими были рассмотрены модули и компоненты, которые так же представляют собой CCK, но не изменяют стандартную структуру . Это Zoo (как CCK), SobiPro (как каталог) и ChronoConnectivity (о нем отдельные слова). Бесплатная версия Zoo предоставляет готовый модуль для публикации. Однако, после просмотра готовых форм и поиска решения проблем с настройками в безопасности, стало понятно, что, кроме того, что все добавленные статьи будут идти особняком (другими словами, остается много вопросов о том, как соотносить пользовательские стать и категории со статьями и категориями сайта), потребуется вносить достаточно много правок в шаблоны отображения, чтобы добиться организации процесса модерации (принято, отклонено, на модерации и так далее) с возможностью просмотра пользователями статусов своих статей. SobiPro - это достаточно неплохой каталог, но у него оказались те же проблемы, что и у Zoo. Нужно будет вносить правки и задумываться о соотношении контента SobiPro со стандартным контентом. ChronoConnectivity это очень мощный компонент для построения всевозможных форм и синхронизации внутри базы. Если вам нужно полностью заточить весь процесс добавления материалов или чего-то другого под свои потребности, то с ним это легко можно сделать. Однако, в нем нет никаких предустановленных вариантов, поэтому абсолютно все придется настраивать с нуля. А это очень долго.

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

Постепенно рассматривая решения от самых сложных и в итоге дойдя до блоговых компонентов, становилось все более понятно, что первоначально практически на любом сайте (если он не был изначально задуман под поток статей) вполне достаточно использовать стандартный механизм Joomla . Однако, в интернете не нашлось каких-либо нормальных инструкций по его настройке и решению такого банального вопроса, как отделение пользовательских картинок от общего каталога картинок сайта. Только лишь обрывочные решения отдельных подзадач. Тем не менее, собрав решения воедино, получилась достаточно простая и удобная инструкция по настройке добавления пользователями материалов.

Настройка добавления пользователями материалов и статей на сайт Joomla стандартными средствами

Итоговая инструкция настройки добавления пользователями статей и материалов на сайт Joomla получилась хоть и большой по количеству пунктов, но на самом деле достаточно простой для организации. Первое, что вам понадобится, это скачать и установить бесплатный редактор JCE с локализацией (ссылка на сайт разработчика ; русский язык там есть; в крайнем случае, вы всегда можете его скачать с других ресурсов). В отличии от стандартного редактора TinyMCE, у него есть настраиваемый и достаточно удобный менеджер картинок. Теперь, можно приступать к настройке.

1. Откройте "Сайт - Общие настройки " и установите редактор по умолчанию "Editor JCE ". Это необходимо сделать для того, чтобы все пользователи вводили статьи именно с этого редактора.

2. Откройте "Менеджер материалов ". Затем нажмите кнопку "Настройки ". Перейдите на вкладку "Права " и для группы Registered установите разрешение на создание материала (пункт "Создать"). Остальные пункты оставьте запрещенными. Эта настройка позволит пользователям добавлять материалы и статьи с сайта, но не публиковать их. Другими словами, после добавления, статьи по умолчанию будут не опубликованными. В общем, простая модерация.

3. Откройте "Менеджер категорий " и создайте категорию "На рассмотрение ". В последующем в эту категорию будут попадать все добавленные статьи (для удобства).

4. Создайте скрытое меню, если у вас его нет. Скрытое меню - это то же самое обычное меню, но размещенное в позиции, которого нет в шаблоне.

5. В скрытом меню, создайте пункт с Alias "add-material " и названием "Добавить статью ". Выберите тип пункта "Создать материал" . Установите уровень доступа "Registered " (в левой части) и категорию по умолчанию "На рассмотрение" (в области основных настроек). Делается это для того, чтобы неавторизованный пользователь при выборе пункта попадал на страницу входа и чтобы все материалы попадали в одну категорию (для последующей сортировки).

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

Теперь, приступаем к настройке редактора JCE

7. Откройте редактор JCE в меню "Компоненты ". Перейдите на вкладку с профилями. Включите профиль "Front End ". Это именно тот профиль, который будет применяться к пользователям, при добавлении статьи с сайта.

8. Откройте профиль "Front End " и выставьте следующие настройки

8.1. В первой вкладке в области "Пользователи " выставьте галочку напротив группы "Registered ", чтобы настройки применялись для зарегистрированных пользователей.

8.2. Перейдите на вкладку "Особенности и Макет ". Выставьте пункт "Переключатель редактора" в Нет , чтобы исключить возможность отправить голый html.

8.3. Создайте на сайте в каталоге "images " директорию "reviews ". В этой директории будут храниться картинки пользовательских статей на время модерации.

8.4. Вернитесь в админку и перейдите на вкладку "Параметры редактора ". Затем в левой части выберите вкладку "Файловая система " и укажите в пункте "Путь к каталогу файлов " путь "images/reviews "

8.5. В той же вкладке, отключите пункт "Древо папок "

8.6. В той же вкладке, укажите максимальный размер изображений, например, 100.

8.7. В той же вкладке, укажите действия при конфликте "Создать уникальное имя... ". Делается это для того, чтобы картинки других пользователей нельзя было перезаписать. Ведь, после того, как статья пройдет модерацию вами, вы всегда можете перенести картинки в общую папку.

8.8. Сохраняем настройки.

8.9. Переходим на вкладку "Параметры плагина " и в левой части экрана выбираем вкладку "Менеджер изображений ". Затем устанавливаем ограничение размера файла, например, 100 (как и до этого).

8.10. Отключаем пункты "Удалить папку", "Удалить файл", "Переименовать файл", "Вырезать, копировать" (для каталога и файла), "Переименовать папку".

8.11. Указываем путь к каталогу файлов изображений "images/reviews "

8.12. Сохраняем настройки.

8.13. Во вкладке "Параметры плагина " открываем вкладку "Ссылка " в левой части. И указываем желаемые настройки для ссылок по умолчанию. Например, цель "в новом окне ".

8.14. В той же вкладке отключите все пункты с доступом к структуре ссылок (поиск и прочее), а так же всплывающие окна. Делается это для того, чтобы доступа к внутренней структуре у обычных пользователей не было.

8.15. Сохраняем и закрываем редактор.

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

10. Первым делом открываем "Расширения - Менеджер плагинов " и выставляем группу "Special " для всех кнопок (Изображение, Разрыв страницы, Материал и так далее), кроме кнопки "Подробнее ". Это позволит скрыть кнопки для обычных пользователей, но оставит их открытыми для тех пользователей, которые имеют доступ к админке.

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

11.1. Откройте путь "%корень сайта%/components/com_content/views/form/tmpl " и скопируйте файл "edit.php " в ваш шаблон по пути "%ваш шаблон%/html/content/form/ ".

11.2. Откройте файл "edit.php" в любом текстовом редакторе и добавьте нужный вам вступительный текст, как показано ниже (текст идет после 44-й строчки или ищите "

Добавить статью

Прежде всего помните, что статья - это полезный, вежливый, осмысленный и корректно оформленный текст (подробнее читайте правила раздел статей).
Добавление материала означает, что вы соглашаетесь с правилами данного ресурса.
item->id); ?>" method="post" name="adminForm" id="adminForm" class="form-validate">

11.3. Теперь, чтобы скрыть блоки, необходимо для всех тэгов fieldset , кроме первого, добавить скрытие отображения через стиль, например так:

Примечание : Безусловно, вы можете использовать и другие способы скрытия, как например стили с ":first-child ", но такой способ может не подойти для старых браузеров. Или же вы можете добавить поле class для нужных fieldset и скрыть его через стили добавленного класса. Тут кому как удобнее.

11.4. Сохраните файл.

12. Подрегулируйте стили так, как вам нравится. Например, сейчас на сайте сайт используется именно эта форма и выглядит она следующим образом.

Как видите, несмотря на то, что пунктов действительно много, они очень простые и по большому счету выполняются минут за 15 (не считая CSS - это уже от вас зависит).

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



Copyright © 2024. Портал о компьютерной технике