Macromedia Dreamweaver MX

Административные страницы сайта

Первоначально создадим набор Web-страниц, служащих для администриро­вания нашего сайта. В самом деле, нашу базу данных нужно сначала напол­нить содержимым — кому нужна пустая библиотека. А это работа админи­стратора, которому необходимо предоставить соответствующие инструменты.

Как администрируются Web-сайты

Как вы знаете, администратором называется человек, осуществляющий поддержку Web-сайта или какой-либо серверной программы (Web-cepeepa, сервера базы данных и пр.). Администратор настраивает программное обес­печение, поддерживает в порядке серверный компьютер, а в случае интер­активного Web-сайта также еще и следит за его базами данных. Очень часто администратор сайта является и его разработчиком, хотя это и не пра­вило.

Администратор может быть один или работать в составе группы админист­раторов, отвечающих за различные составные части этого сайта. В послед­нем случае один администратор может следить за Web-сервером, другой — за базами данных, а третий — за сервером баз данных. Как правило, боль­шие корпоративные сайты так и администрируются — один человек просто не может за всем уследить. Кроме того, большие Web-сайты разрабатывают­ся отдельной командой Web-дизайнеров, Web-художников и Web-програм­мистов, работающих совместно с администраторами. Сами понимаете, кор­поративный сайт большой компании, такой как Microsoft, один человек просто не "потянет".

Другое дело — маленький сайт, такой как наш. Разрабатывает и поддержи­вает их один человек — автор, Web-дизайнер, Web-художник и Web-npo - граммист в одном лице.

Теперь поговорим о том, как администрируются интерактивные Web-сайты. Собственно, для этого могут применяться два способа, которые мы сейчас рассмотрим. Оба этих способа имеют право на существование, и выбор лю­бого из них — дело вашего вкуса.

Первый способ заключается в том, что для работы с базой данных сайта — просмотра или изменения хранящихся в ней данных — используются сто­ронние программы. "Сторонние" в данном случае значит — не относящиеся к Web-серверу, т. е. Web-сервер никак не участвует в администрировании вашего сайта. Административные программы работают отдельно от него и не обращаются к нему для выполнения своих функций.

В главе 17., когда мы создавали базу данных для нашей доски объявлений, то применяли как раз такой подход. Поскольку наш сайт использовал базу данных формата Microsoft Access, то мы использовали эту самую СУБД для работы с этой базой. Web-сервер в этом никак не участвовал.

Если же вы храните данные в серверной базе, то можете пользоваться лю­бой современной программой СУБД, умеющей "общаться" с вашим серве­ром данных, в том числе той же самой Access. (Впрочем, получать данные от сервера сейчас могут практически все СУБД.) Самый же простой слу­чай — хранение данных в текстовых файлах; в этом случае вы можете вос­пользоваться любым текстовым редактором, например Блокнотом.

Преимущество первого способа администрирования сайта — снижение на­грузки на Web-сервер. Это преимущество особенно ощутимо, когда сайт администрируется достаточно часто. Недостаток: необходимость наличия дополнительных программ на компьютере администратора.

Второй способ администрирования сайта заключается в том, что вместо сторонних программ применяется специальный набор серверных Veb - страниц. Эти страницы доступны только для администратора сайта и позво­ляют работать с данными, хранящимися в базе, без использования других программ. Такие ¥еЬ-страницы часто называют административными.

У этого способа администрирования сайтов есть два достоинства и два не­достатка. Достоинства: отсутствие нужды в сторонних программах и воз­можность разграничения доступа для администраторов сайта, если таких несколько. Недостатки: повышенная нагрузка на ¥еЬ-сервер и необходи­мость создания двух разных наборов ¥еЬ-страниц — административных и общего доступа.

Как уже писалось, вы можете использовать любой из этих способов. Просто взвесьте все достоинства и недостатки, предлагаемые обоими этими спосо­бами, и сделайте выбор. В принципе, ни один из них не предлагает каких - то неоспоримых достоинств, так что выбор — за вами.

Давайте выберем для нашего сайта второй способ администрирования, т. е. с использованием административных ¥еЬ-страниц. Так мы сможем лучше изучить принципы построения современных интерактивных сайтов и смо­жем попрактиковаться в создании разных типов серверных страниц. А что до трудоемкости, то сейчас для нас важна любая практика.

Страница списка высказываний

Итак, приступим!

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

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

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

Вы спросите, а как же разграничение доступа? Где страница входа на сайт? Это успеется. Сначала сделаем основные страницы, отображающие и изме­няющие информацию, хранящуюся в нашей базе, а потом займемся безо­пасностью. На данном этапе ей можно пренебречь.

Откроем Access и создадим базу данных под названием Library. mdb. В ней создадим таблицу Categories с полями id (счетчик) и Name (текстовое, 30 знаков). Первое поле послужит нам ключевым, а во втором, как вы уже поняли, будут храниться имена категорий. После этого введем в эту таблицу три записи: "Умные", "Нейтральные" и "Глупые".

Далее создадим таблицу, где будут храниться наши высказывания. Эта таб­лица будет содержать следующие поля:

□ id — счетчик;

□ content — текст высказывания (Мето-поле);

□ Category — категория высказывания (длинное целое, связанное с полем ID таблицы Categories).

Назовем эту таблицу Sentences. Введем какую-нибудь запись для отладоч­ных целей, не обязательно осмысленную. И закроем Access — больше он нам не понадобится.

Вы уже знаете, как создается источник данных ODBC. Если не знаете, об­ратитесь к главе 17., где это подробно описано. Наш новый источник дан­ных будет называться Library и предоставлять доступ к базе данных Library. mdb.

После этого создадим новую папку Sample4. В ней будут находиться файлы нашего нового сайта Sample site 4. В папке Sample4 создадим вложенную папку Admin, в которой будут храниться административные страницы сайта. Зарегистрируем наш новый сайт в Dreamweaver, задав те же данные, что и для сайта Sample site 1 в главе 17. Зарегистрируем базу данных Library. mdb в Dreamweaver, воспользовавшись только что созданным источником Library. На этом подготовительные действия закончились.

Создав таблицу, приступим к созданию серверной страницы. Назовем ее так же, как таблицу, — Sentences. asp. Введем какой-нибудь пояснительный текст, если вдруг у нас появится такое желание. И сохраним ее в папке Admin, вложенной в корневую папку нашего сайта.

После этого создадим набор записей sentences, извлекающий данные из только что созданной таблицы. Причем этот набор будет сложным: он свя­жет вместе таблицы sentences и categories, "заимствуя" из первой таблицы поля id и content, а из второй — поле Name. Связь будет осуществляться по ПОЛЮ Category таблицы Sentences и полю ID таблицы Categories. Создайте этот набор записей, а в случае затруднений справьтесь в главе 17. Не зада­вайте для этого набора ни фильтра, ни сортировки. Текст SQL-запроса дол­жен быть таким:

SELECT Sentences. ID, Content, Name FROM Sentences, Categories ^WHERE Sentences. Category=Categories. ID

Запись вида "Sentences. ID" означает, что мы выбираем значения поля id таблицы sentences.

Поскольку мы будем отображать одновременно два значения, будет лучше создать для этого таблицу. Эта таблица должна содержать две строки и че­тыре столбца. В первой строке будет находиться "шапка", а во второй — собственно содержимое. (Как вы поняли, вторую строку придется помес­тить в повторяющуюся область.) В первом столбце таблицы будет ото­бражаться содержание высказывания, а во втором — категория (в смысле, название категории), а последние два столбца мы пока оставим пустыми. Создайте такую таблицу и отформатируйте, как хотите.

Теперь поместите в первую ячейку второй строки этой таблицы динамиче­ский текст, привязанный к полю content набора записей, а во вторую ячей­ку — динамический текст, привязанный к полю Name. Далее выделите всю вторую строку, щелкнув по соответствующей кнопке секции тегов, и соз­дайте "вокруг" нее повторяющуюся область, связанную с набором данных Sentences. Задайте количество одновременно отображаемых записей равным двадцати.

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

Теперь остается только создать "вокруг" таблицы, навигатора и строки ста­туса необязательную область, показываемую только тогда, когда в наборе Sentences есть записи. И поместить на странице еще одну необязательную область, отображаемую при отсутствии записей в наборе и содержащую текст, говорящий об этом. Создайте эти области.

Вот и все. Наша страница готова. Можете проверить ее, переключив Dreamweaver в режим показа "живых" данных или загрузив страницу в Web - обозревателе.

К несчастью, в таблице Sentences находится только одна запись. Но мы сейчас это исправим.

Страница добавления записи

Давайте подумаем, что нам нужно сделать теперь, когда страница списка высказываний готова и работает?

Таблица Sentences, как вы уже заметили, девственно-пуста. (Отладочная запись, введенная нами в Access, не считается.) Нужно заполнить ее дан­ными. А для этого нам необходимо создать страницу добавления записи.

Создайте новую серверную страницу, введите в нее поясняющий текст и сохраните опять же в папке Admin под именем AddSentence. asp. Создайте в этой странице форму и назовите ее sentence. Внутри формы создайте об­ласть редактирования и назовите ее content, не забудьте также о кнопке от­правки данных.

Что-то мы забыли... Ах, да! Нужно еще поместить в форму раскрывающийся список Category и привязать его к набору записей Categories. Но перед этим необходимо создать сам набор записей categories, из которого будут взяты пункты списка category. Задайте выборку всех записей таблицы categories. После этого задайте сортировку записей по полю Name, для чего выберите это поле в раскрывающемся списке Sort диалогового окна Recordset (см. рис. 17.15). А раскрывающийся список, расположенный пра­вее, позволит вам задать порядок сортировки записей: по возрастанию (пункт Ascending) или по убыванию (пункт Descending). Задав параметры набора данных, нажмите кнопку ОК.

Теперь можно создать поведение insert Record. (Как это делается, было описано в главе 17.) Привяжите область редактирования content к полю Content таблицы Sentences, а СПИСОК Category — К ПОЛЮ Category. В качест­ве страницы, на которую будет осуществлен переход после добавления записи, задайте Sentences. asp.

Сохраните готовую страницу AddSentence. asp. После этого откройте страни­цу Sentences. asp и поместите в нее гиперссылку, указывающую на страницу AddSentence. asp. Вот и все.

Теперь можете проверить созданную нами страницу добавления записи. Опубликуйте сайт на Web-cepeepe, откройте страницу Sentences. asp в Web- обозревателе и щелкните по гиперссылке "Добавить". Внесите в таблицу Sentences несколько записей. Они нам пригодятся для отладки.

Страница изменения записи

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

Создадим новую страницу, введем в нее поясняющий текст и сохраним под именем EditSentence. asp в папке Admin. Здесь мы впоследствии создадим форму с элементами управления, предназначенными для правки значений полей выбранной нами записи. А пока закроем эту страницу — нас ждут другие дела.

Сейчас мы добавим на страницу Sentences. asp гиперссылку, ведущую на страницу изменения записи. Откройте страницу, поместите текстовый кур­сор в третью ячейку второй строки таблицы (теперь вы поняли, зачем она нужна?) и наберите в ней слово "Изменить". Далее выделите это слово и наберите в поле ввода интернет-адреса редактора свойств такой текст:

EditSentence. asp? ID=

Далее переключитесь в режим отображения кода и перетащите из панели Bindings в место, находящееся точно после знака "=", поле id набора запи­сей. Интернет-адрес гиперссылки примет такой вид:

EditSentence. asp? ID=<%=(Sentences. Fields. Item("ID").Value)%>

Давайте выясним, что это значит. Код

Sentences. Fields. Item("ID").Value

Извлекает значение поля id данной записи набора. Далее это значение по­мещается в гиперссылку, которая принимает вид:

EditSentence. азр? ГО=<значение поля ID">

И передается странице EditSentences. asp в качестве значения параметра ги­перссылки id. Поскольку значение поля id уникально для каждой записи набора (поле id — счетчик записей, как вы помните), страница EditSen­tences. asp может однозначно идентифицировать запись, которую вы хотите изменить, и заполнить значениями ее полей элементы управления формы, т. е. подготовить запись к правке.

Теперь сохраните страницу Sentences. asp и откройте только что созданную нами страницу EditSentence. asp. Пора заняться ей.

Для того чтобы отредактировать запись, нам понадобится форма. Создайте ее по аналогии со страницей AddSentence. asp. Никаких особенностей она иметь не будет, поэтому вы можете просто скопировать уже готовую фор­му со страницы добавления новой записи и вставить ее в страницу EditSentence. asp. Но перед этим создайте на этой странице набор данных categories, также по аналогии со страницей AddSentence. asp.

Следующий шаг — создание набора записей, из которого будет взята запись для заполнения элементов управления созданной нами формы. Этот набор должен содержать одну-единственную запись, поэтому нам придется задать фильтр, отбирающий нужную запись. Она будет выбрана по значению поля счетчика id таблицы sentences, которое должно равняться значению пара­метра гиперссылки id, переданному от страницы Sentences. asp (см. выше).

Чтобы создать фильтр, выберите название поля id в раскрывающемся спи­ске Filter диалогового окна Recordset, а в раскрывающемся списке, распо­ложенном правее, — пункт = (равенство значений поля и фильтра). Далее в списке, расположенном ниже, выберите пункт URL Parameter (параметр, переданный методом GET), а в поле ввода, расположенном ниже и правее, введите имя этого параметра — id.

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

Сначала выделите область редактирования и найдите в редакторе свойств кнопку с изображением молнии — она находится правее области редакти­рования Init Val. Щелкните по этой кнопке. На экране появится диалоговое окно Dynamic Data; выберите в иерархическом списке Field пункт Content, соответствующий одноименному полю, и нажмите кнопку ОК. Все, теперь область редактирования получит значение из поля content набора записей.

С раскрывающимся списком все несколько сложнее. Выделите его и на­жмите кнопку Dynamic. В появившемся на экране диалоговом окне Dynamic List/Menu щелкните кнопку с изображением молнии, расположенную пра­вее поля ввода Select Value Equal То. После этого на экране опять же по­явится диалоговое окно Dynamic Data; выберите в иерархическом списке Field пункт Category, соответствующий одноименному полю, и нажмите кнопку ОК. Теперь остается только нажать кнопку ОК окна Dynamic List/Menu.

Можно сделать еще проще — перетащить нужное поле из панели Bindings на соответствующий ему элемент управления. Автор рекомендует вам так и поступать в дальнейшем.

Теперь нужно создать поведение Update Record, которое, собственно, и реа­лизует заполнение формы и обновление значений полей редактируемой записи. Выберите пункт Update Record меню серверных поведений панели Server Behaviors. На экране появится диалоговое окно Update Record (рис. 18.1).

Выберите в раскрывающемся списке Connection базу данных, в списке Table То Update — таблицу, запись которой будет обновляться, а в списке Select Record From — набор записей, из которого будет взята запись для заполне­ния формы. В Нашем Случае ЭТО будет СООТВеТСТВеННО Library, Sentences и Sentences (соответственно, одноименные таблица и набор записей).

В поле ввода Unique Key Column задается поле набора записей, по которому нужная нам запись будет однозначно идентифицироваться. В нашем слу­чае — это ключевое поле id. Если это числовое поле (а поле id — число­вое), включите флажок Numeric, в противном случае — отключите его.

В поле ввода After Updating, Go То вводится интернет-адрес страницы, на которую будет осуществлен переход после успешного изменения записи. Введите в него sentences. asp. Вы также можете щелкнуть кнопку Browse и выбрать нужную страницу в диалоговом окне Select File.

В раскрывающемся списке Get Values From выбирается форма, из которой будут взяты значения для обновления записи.

Административные страницы сайта

Рис. 18.1. Диалоговое окно Update Record

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

Поле таблицы выбирается в раскрывающемся списке Cohimn. Пункт <ignore> данного списка позволяет проигнорировать значение этого эле­мента управления (т. е. оно не будет помещено в поле таблицы).

Тип данных указывается в раскрывающемся списке Submit As. В нем дос­тупны следующие пункты:

□ Text — текстовые данные;

□ Numeric — числовые данные;

□ Date — значение даты;

□ Date MS Access — значение даты, предназначенное для Microsoft Access;

□ Checkbox Y, N — логическое значение, преобразуемое в символы "Y1 ("да") или "N" ("нет");

□ Checkbox 1,0 — логическое значение, преобразуемое в числа 1 ("да") или 0 ("нет");

□ Checkbox -1,0 — логическое значение, преобразуемое в числа -1 ("да") или 0 ("нет");

□ Checkbox MS Access — логическое значение, предназначенное для Micro­soft Access.

Задав все нужные данные, не забудьте нажать кнопку ОК.

Сохраните готовую страницу EditSentence. asp и проверьте ее в действии. Для этого опубликуйте сайт на ¥еЬ-сервере, откройте страницу Sentences. asp в Web-обозревателе и попробуйте отредактировать какое-либо высказыва­ние. Если страница изменения записи почему-то не работает, проверьте, все ли правильно вы сделали.

Macromedia Dreamweaver MX

Заключение

"А напоследок я скажу..." — поется в старинном русском романсе. Что же мне сказать напоследок?.. Книга о Dreamweaver закончена. Я рассказал об этой программе все, что знал и что мог …

Страницы общего доступа

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

Реализация выхода с сайта

Осталось реализовать выход с сайта — и работу над административными страницами можно считать законченной. Как вы помните, каждый посети­тель, вошедший на сайт с разграничением доступа, должен по окончании работы с …

Как с нами связаться:

Украина:
г.Александрия
тел./факс +38 05235  77193 Бухгалтерия

+38 050 457 13 30 — Рашид - продажи новинок
e-mail: msd@msd.com.ua
Схема проезда к производственному офису:
Схема проезда к МСД

Партнеры МСД

Контакты для заказов оборудования:

Внимание! На этом сайте большинство материалов - техническая литература в помощь предпринимателю. Так же большинство производственного оборудования сегодня не актуально. Уточнить можно по почте: Эл. почта: msd@msd.com.ua

+38 050 512 1194 Александр
- телефон для консультаций и заказов спец.оборудования, дробилок, уловителей, дражираторов, гереторных насосов и инженерных решений.