Сообщество русскоговорящих пользователей
CMS DotNetNuke


Пример построения простого представительства в паутине

Постановка задачи | План реализации | Права доступа | Продукт 1 | Продукт 2
 

Создание страницы описания продукта 1

Создадим страницу описания продукта 1 (вместе с контентом и правами доступа). Почему именно продукта 1? Другие страницы могут ссылаться на неё (и тогда, если бы мы начали с них, нам бы пришлось впоследствии возвращаться к ним и править их), она же, согласно вышеприведённой схеме сайта, ни на кого не ссылкается.

Авторизируемся как администратор. Кликаем по отмеченным красным стрелочкам в верхнем правом углу страницы для раскрытия панели управления (если она ещё не раскрыта).

Жмём кнопку "Add" в верхнем левом углу для добавления новой страницы сайта (если вы в этот момент всё ещё находитесь на одной из административных страниц (например, управления пользователями или их ролями), то кнопки задания настроек страницы, её удаления и копирования будут недоступны).

Будёт совершён переход к странице свойств создаваемой страницы. Вводим имя страницы (например, "Описание продукта 1"), задаём права доступа к ней (любым пользователям разрешаем просмотр, менеджеру по продукту 1 и руководителю даём права на просмотр и модификацию).

Также, обратите внимание: при создании страницы используется шаблон по умолчанию (Page Template: Default). Это значит, что на создаваемую страницу будет помещён модуль "HTML/Text".

Убеждаемся, что права заданы верно, жмём "Update", и страница создана.

Вот так выглядит наша свежесозданная страничка:

Меняем заголовок модуля. Подводим к нему курсор, появляется кнопочка с карандашиком.

При нажатии на неё заголовок модуля становится доступен для редактирования. Вводим туда требуемый заголовок (например, "Описание продукта 1"), жмём Enter либо левую кнопочку для его сохранения.

Также, заголовок можно изменить, зайдя в свойства модуля через пункт "Settings" контекстного меню модуля (оно отображается при подведении курсора к символу "стрелка вниз" слева от заголовка модуля*), либо нажав на пиктограмму вызова свойств модуля*.

*В зависимости от типа контейнера может быть в другом месте либо отсутствовать вообще.

Зайдя в свойства модуля мы также можем изменить заголовок, задать иной контейнер, включить/выключить отображение иконки "вид для печати" (если она поддерживается контейнером), задать параметры кэширования и прочее. Пока не будем в это углубляться, обратим лишь внимание на то, что размещённый на странице при её создании модуль наследует права доступа к себе от страницы (настройка обведена синим). Пока ничего не трогаем тут, позднее я вернусь к этому моменту.

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

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

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

Используем второй вариант ввода текста в модуль. Жмём ссылку "Edit Text" модуля или используем одноимённый пункт его контекстного меню.

Будет совершён переход на страницу редактирования, где нас ожидает полноценный текстовый редактор.

Хочу обратить ваше особое внимание на кнопку "Source" (выделена зелёным), осуществляющую переход к HTML-виду текста, и на кнопку раскрытия окна редактора на всё окно браузера (выделена синим).

Редактировать и форматировать текст при помощи данного редактора не сложнее, чем в MS Word (настоятельно рекомендую для форматирования использовать стили (это тема для отдельной беседы)). Но как быть, если помимо текста нам надо разместить в описании рисунок?

Для начала разрешим нужной группе пользователей добавление рисунков на сайт. Нажмём пункт "File Manager" в административном меню сайта.

В окне управления файлами создадим отдельную папочку, куда будут помещаться рисунки (или иные файлы), связанные с тематикой продукта 1 (я надеюсь, нет необходимости объяснять, отчего все файлы не должны вяляться до кучи в корне сайта). Вводим имя папки (например, "Prod_1") и жмём кнопку "Add Folder".

В нашей свежесозданной папке, естественно, пусто.

Переключимся на "Portal Root", а затем обратно на "Prod_1" (чтобы избежать вредного бага:), и зададим права доступа к нему.

Права доступа задаём аналогично странице – разрешаем менеджеру продукта 1 и руководителю загружать файлы на сайт (все пользователи имеют доступ на просмотр/чтение файлов по умолчанию (или должны иметь)). Жмём кнопку "Update".

Для чистоты эксперимента продолжим редактирование описания продукта 1 под руководителем.

Завершаем сеанс администратора, авторизируемся как руководитель.

При заходе на страницу описания продукта 1 немедленно видно, что у нас есть права на её редактирование, а также на редактирование модуля на ней (элементы управления обведены синим).

Заходим в режим редактирования текста модуля, добавляем пустую строку и пробуем добавить в текст рисунок.

Жмём кнопку добавления рисунка.

Откроется окно свойств добавляемого рисунка.

К сожалению, при использовании Internet Explorer 7 нас ждут неприятности. При попытке просмотра рисунков сайта (нажатие на кнопку "Browse Server" (обведена красным)) всплывающее окно будет заблокировано. Но даже если мы разрешим показ всплывающих окон для нашего сайта, окно просмотра рисунков сайта может отбразиться в другой вкладке (вместо всплывающего окна) без возможности перехода на неё.

Поэтому далее в этом примере я использую FireFox 2. В нём нажатие на кнопку "Browse Server" откроет новое всплывающее окно, в котором отобразятся рисунки сайта. Заходим в папку "Prod_1" (клик по обведённому красным рисунку).

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

Жмём кнопку "Browse...", выбираем рисунок на локальной машине, кликаем по ссылке "Upload New File" (пользователю сети интернет со стажем данная процедура должна быть знакома).

Рисунок будет загружен в папку. Кликаем по нему...

...и необходимая для его вставки информация (ссылка на рисунок) будет помещена в поле "URL".

Тут же при желании можно задать размеры рисунка, выравнивание, отступы и прочее.

Жмём "OK".

Рисунок будет добавлен в текст. После сохранения текста модуль примет следующий вид:

Будем считать, что на этом редактирование текста завершено.

Теперь, как я обещал, вернёмся к ситуации с правами доступа. В данный момент менеджер продукта 1 и руководитель имеют неограниченный доступ к редактированию страницы описания продукта 1. Как следствие, они могут, к примеру, нечаянно удалить модуль описания продукта (на самом деле это не так страшно, как можно подумать, так как модуль удалится в "корзину" с возможностью восстановления (но выполнить его сможет только админ)). Нам же надо, чтобы они имели доступ лишь на редактирование описания.

Добиваемся этого следующим образом: авторизируемся на сайте с административными привилегиями, на странице описания продукта 1 жмём кнопку "Settings" (левый верхний угол окна), вызывая страницу свойств страницы.

Разрешаем просмотр страницы всем пользователям, остальные права доступа убираем. Жмём "Update".

Вызываем свойства модуля (например, при помощи контекстного меню).

Кликаем по обведённому красным переключателю для прекращения наследования прав доступа модулем от страницы.

Указываем права доступа к модулю в явном виде:

После нажатия "Update" менеджер продукта 1 и руководитель будут иметь права на просмотр и модификацию содержимого модуля, а все остальные пользователи (кроме администраторов, естественно) – только на просмотр.

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

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


Права доступа | Страница 4, всего: 5 | Продукт 2
 
OpenedBorderBoxed Small width layoutMedium width layoutMaximum width layout Small textMedium textMaximum text