Типовой программы (дата утверждения) Учебного плана 30. 0
Вид материала | Учебно-методический комплекс |
- Целевая программа зато северск предупреждение и борьба с заболеваниями социального, 806.59kb.
- Рабочая программа по «риторике» для специальности 03. 05. 01 «Юриспруденция» юридический, 455.65kb.
- Программа "Развитие конкуренции в Брянской области" (2010 2012 годы), 726.2kb.
- Рабочая программа по русскому языку Учебный год, 980.15kb.
- Городская долгосрочная целевая программа «Развитие городского сообщества» на 2012 2014, 205.86kb.
- Курс, 2 семестр Количество кредитов 3 Всего часов 135 ч., в том числе, 220.47kb.
- Учебная программа (Syllabus) Дисциплина: «Ценообразование» Специальность, 273.11kb.
- Рабочая программа по литературе 5 класс Пояснительная записка, 458.92kb.
- Учебная программа (Syllabus) адвокатура форма обучения: заочное Специальность 5В030100-, 217kb.
- Учебная программа (Syllabus) Дисциплина: Адвокатура Специальность 050301 Юриспруденция, 253.05kb.
2Лекции
Лекция 1 «Введение в электронную коммерцию».
План.
- ^ Электронный бизнес
- Электронная коммерция. Направления. Преимущества.
- Системы торговли через Интернет. Классификация.
1. Электронный бизнес
Появление глобальных сетей связи, и в первую очередь - Интернет, привело к настоящей революции в области организации и ведения коммерческой деятельности. Преобразования коснулись как внешних отношений между компаниями и их партнерами или клиентами, так и внутренней структуры самих компаний. Появились не только новые направления ведения бизнеса, но и принципиально изменились уже существующие.
Часто происходит путаница двух базовых понятий: e-коммерции и e-бизнеса.
Согласно определению специалистов компании IBM, электронный бизнес (e-бизнес) - преобразование основных бизнес-процессов при помощи Интернет технологий
Таким образом, e-бизнесом мы называем любую деловую активность, использующую возможности глобальных информационных сетей для преобразования внутренних и внешних связей с целью создания прибыли.
Внутренняя организация компании на базе единой информационной сети (интранет), повышающей эффективность взаимодействия сотрудников и оптимизирующей процессы планирования и управления; внешнее взаимодействие (экстранет) с партнерами, поставщиками и клиентами - все это составные части e-бизнеса.
Электронная коммерция является важнейшим составным элементом e-бизнеса. Под электронной коммерцией (e-коммерция) подразумеваются любые формы деловой сделки, которая проводится с помощью информационных сетей.
Принято выделять четыре направления электронной коммерции:
- бизнес - бизнес (business-to-business, B2B);
- бизнес - потребитель (business-to-consumer, B2C);
- бизнес - администрация (business-to-administration, B2A);
- потребитель - администрация (consumer-to-administration, C2A).
Бизнес-бизнес
Данное направление включает себя все уровни информационного взаимодействия между компаниями. При этом используются специальные технологии и стандарты электронного обмена данными, такие как EDI (Electronic Data Interchange).
Выгоды от подобного сотрудничества трудно переоценить. Например, дилер получает возможность самостоятельно размещать заказы и следить за ходом их исполнения, работая с базами данных поставщика и таким образом получая необходимую информацию о запасах продукции на складах. Так же и поставщик, имея подключение к складским базам, может оперативно отслеживать запасы партнера, своевременно их пополняя. И подобные примеры можно найти в любой сфере взаимодействия между компаниями.
Бизнес-потребитель
Сегодня это направление представляется наиболее перспективным с коммерческой точки зрения. Его основу составляет электронная розничная торговля. В Интернет работает большое число электронных магазинов, предлагающих широкий спектр товаров и услуг.
^ Бизнес - администрация
Взаимодействие бизнеса и администрации включает деловые связи коммерческих структур с правительственными организациями, начиная от местных властей и заканчивая международными организациям.
К примеру, в последнее время налицо стремление правительств развитых стран и руководства международных организаций активно использовать Интернет для проведения закупок товаров и услуг путем публикации объявлений и результатов заключенных сделок. Нередко коммерческие структуры имеют и возможность направлять свои предложения в электронном виде.
Потребитель-администрация
Это направление наименее развито, однако имеет весьма высокий потенциал, который может быть использован для организации взаимодействия правительства и потребителя, особенно в социальной и налоговой сфере.
^ 2. Электронная коммерция. Направления. Преимущества.
Основной формой е-коммерции на сегодняшний день является организация торговли и обслуживания через Интернет.
При этом на новую базу переводятся все этапы процесса совершения сделки: поиск (реклама) товара, оформление заказа, выписка счетов, проведение платежей, доставка и послепродажное обслуживание. Преимущества е-коммерции по сравнению с традиционными видами деловой активности достаточно значимы:
- Использование электронных форм коммуникации позволяет существенно снизить затраты на организацию и поддержание всей инфраструктуры бизнеса. Отпадает необходимость в торговых залах, функции которых выполняют Интернет-магазины.
- Снижаются затраты на рекламу и обслуживание и как следствие - цена на товар.
- Снижается время на оформление и выполнение заказа.
- Появляется возможность непрерывного контроля за заказами, а также до- и послепродажного обслуживания.
- Возможна персонализация обслуживания клиента.
- Расширяется рынок сбыта товаров и услуг для продавца и возможности выбора для покупателя.
- Появляются принципиально новые возможности для маркетинга.
- Создаются новые направления бизнеса.
^ 3. Системы торговли через Интернет. Классификация.
В зависимости от рыночной стратегии компании возможны следующие формы присутствия в Интернет:
- электронная визитная карточка;
- электронный каталог (web-витрина);
- электронный магазин.
- торговые интернет-системы
На сегодняшний день в России преобладают web-витрины, Интернет-магазины пребывают в меньшинстве, а ТИС отсутствуют.
^ Электронная визитная карточка представляет собой несколько страниц с информацией о компании и ее деятельности. Основная функция подобного сайта - предоставить возможность потенциальному клиенту познакомиться с услугами компании, аналогично обычному бизнес-справочнику или рекламному объявлению.
Более продвинутой формой информирования клиента является электронный каталог с подробной информации о товарах и услугах, а часто - и с текущими ценами. Web-витрина представляет собой совокупность каталога, системы навигации и оформления заказа (с последующей передачей менеджеру для дальнейшей обработки), т.е. при помощи web-витрины организовывается торговля на заказ. Web-витрины - это относительно простые и недорогие сайты, представляющие товары торговой компании в виде стандартного каталога. Они могут производить операции оформления заказа, а иногда и выставление счета. На этом этапе работа с заказом переходит к менеджеру по продажам. Очевидно, что даже в случае полной реализации перечисленных возможностей, до полной автоматизации торгового процесса еще очень далеко. Необходимо как минимум связаться со складом, организовать доставку товара покупателю, принять оплату покупки. Параллельно требуется тщательное изучение спроса, проведение рекламных мероприятий и масса аналитической работы. Здесь нет места для реального уменьшения уровня операционных издержек, и даже при идеальном решении рентабельность web-витрины мало отличается от рентабельности обычных методов ведения торговли.
Интернет-магазины и ТИС могут осуществлять полный торговый цикл в онлайновом режиме
^ Электронный магазин позволяет не только выбрать товар или услуги, но и оформить заказ и совершить покупку через Интернет.
Наконец торговая интернет-система объединяет в одно целое интернет-магазин и традиционный магазин, с общей системой логистики, управления товарными запасами и т. п. ТИС полностью интегрирована в систему автоматизации внутреннего документооборота компании.
В общем случае техническую сторону любого Интернет-магазина можно рассматривать как совокупность web-витрины и торговой системы, которая и заменяет менеджеров по продажам. Системы Интернет-магазина выполняют большую часть задач, не решаемых в рамках web-витрины. В том числе, благодаря динамической обработке информации и работе с базами данных, Интернет-магазин имеет возможность работать индивидуально с каждым зарегистрировавшимся покупателем.
^ Лекция 2 «Типовая структура Интернет-магазина»
План.
- Типовая стуктура Интернет-магазина
- Примеры Интернет-магазинов
^ Типовая стуктура Интернет-магазина
Программный комплекс управления Интернет-магазином или торговой частью системы - это программное обеспечение позволяющее разрабатывать и поддерживать торговую систему, работающую в онлайновом режиме.
Структура комплекса управления Интернет-магазином или торговой частью системы реализуется в виде трехзвенной архитектуры клиент/сервер

Процесс обработки данных происходит по схеме "клиент - сервер приложений - база данных". Поступивший запрос обрабатывается сервером приложений, который в свою очередь связывается с хранилищем данных и платежной системой, а при наличии подключения к бизнес процессу организации, производит обмен данными с соответствующими системами.
В общем случае минимум компонентов необходимых для функционирования Интернет-магазина включает в себя:
- Web-сервер - распределяет поступающие запросы, производит разграничение доступа;
- Сервер приложений - управляет работой всей системы, в частности бизнес-логикой Интернет-магазина ;
- СУБД - осуществляет хранение и обработку данных о товарах, клиентах, счетах и т.п.
К этому комплексу подключаются платежные системы, а в некоторых случаях и системы доставки. Для полной интеграции с бизнес процессами компании может быть организован шлюз для электронной передачи данных между Интернет-магазином и внутренней системой автоматизации документооборота.
^ Примеры Интернет-магазинов
INTERSHOP
INTERSHOP 4 представляет собой полнофункциональную Торговую Интернет-Систему, в которой интегрированы все функции обычной торговой системы (ТС) и Интернет-торговли. Компанией eTopS Consulting разработан Русский Пакет: 1 для полной адаптации Интернет-магазинов на базе INTERSHOP к российским условиям ведения торгового процесса.
- Элит
Торговая система Элит предназначена для создания как отдельных Интернет-магазинов, так и Торговых Рядов. ПО Элит размещается на web-узле, а правление Интернет-магазином производится с удаленного компьютера через терминалы продавцов, контролирующих отдельные номенклатуры товаров, и терминал мастер-продавца (управляющего магазина).
- UlterShop
ТПакет программ UlterShop предназначен для создания Интернет-магазинов и может обслуживать розничную и оптовую торговлю одновременно. В основе технологии лежит архитектура клиент-сервер. Благодаря использованию JAVA в качестве языка программирования, UlterShop может быть размещен на серверах с любыми процессорами и ОС (UNIX, SunOs, Windows NT, Windows98 и др.), что в свою очередь обеспечивает масштабируемость системы. Для хранения и обработки данных возможно использование любых СУБД с языком запросов SQL (MS SQL Server, MS Access, Oracle, PostgreSQL и др.), а в качестве web-сервера - MS Internet Information Server, Apache и др.
- 1С:Аркадия
1С:Аркадия Интернет-магазин предназначено для создания Интернет-магазина на базе 1С:Торговля и Склад. Для работы системе требуются ОС Microsoft Windows NT Server 4.0, web-сервер Microsoft Internet Information Server (IIS) 3.0 и система 1С:Торговля и Склад 7.5 для хранения и обработки информации. В основе технологии лежит архитектура клиент-сервер.
Лекция 3 Определение архитектуры Web-приложений
План
1. Архитектура приложений
2. Архитектурные шаблоны Web-приложений
3. Шаблон Thin Web Client
4. Шаблон Thick Web Client
Содержание
^ 1. Архитектура приложений
Если группа формулировки системных требований занимается построением модели прецедентов, то архитектор или группа специалистов проверяет эту модель и исследует возможные системные архитектуры. Архитектор несет ответственность за выбор той программной архитектуры, которая позволит удовлетворить выдвинутым требованиям и реализовать сценарии прецедентов.
Под термином «архитектура» понимается высокоуровневое представление значимых компонентов системы. В этом смысле компонент представляет собой отдельную сущность с открытым интерфейсом.
^ 2. Архитектурные шаблоны Web-приложений
Web-приложение можно определить как программную систему, в состав которой входят обязательные компоненты: браузер, сервер приложений и Web-сервер.
На достаточно высоком уровне абстракции можно выделить существующие архитектурные шаблоны Web-приложений. Архитектурный шаблон отражает фундаментальную организационную схему программных систем. Он предоставляет набор предопределенных подсистем, описывает спектр их обязанностей, а также представляет правила и рекомендации для организации взаимодействия между ними.
Основными шаблонами являются:
1. Thin Web Client используется в большинстве приложений Intenet и предоставляет ограниченные возможности по управлению конфигурацией клиента. В распоряжении клиента должен быть только стандартный браузер, поддерживающий формы. Все операции, связанные с бизнес-логикой, выполняются на сервере.
2. Thich Web Client предполагает, что значительная часть бизнес-логики выполняется на клиентской машине. Обычно для выполнения бизнес-логики используется динамический HTML, аплеты Java или управляющие элементы ActiveX. Взаимодействие с сервером по-прежнему происходит через протокол HTTP.
^ 3. Шаблон Thin Web Client
Шаблон на основе «тонкого» клиента полезно использовать в тех приложениях, в которых можно гарантировать наличие только минимальной конфигурации клиента. Этот шаблон больше всего подходит для Web-приложений, когда клиент обладает минимальными вычислительными возможностями или не может управлять своей конфигурацией.
Данный шаблон используется в большинстве Internet-приложений электронной коммерции, поскольку нет смысла отказываться от покупателей только потому, что их клиентский компьютер не обладает достаточной вычислительной мощностью. Типичное приложение электронной коммерции предназначено для привлечения максимального количества покупателей.
^ Структура шаблона. Основные компоненты архитектуры размещаются на сервере. В большинстве случаев – это минимальная структура Web-приложения. Основные компоненты:
- ^ Клиентский браузер. Браузер функционирует как обобщенное устройство с интерфейсом пользователя. При использовании архитектуры тонкого клиента браузер обеспечивает только одну дополнительную возможность: прием и возврат данных cookie.
- Web-сервер – главная точка доступа для всех клиентских браузеров. В архитектуре тонкий клиент браузеры получают доступ к системе только через Web-сервер, который принимает запросы на получение Web-страниц – либо статических, либо динамических (формируемых на сервере). В зависимости от запроса Web-сервер может инициировать некоторые серверные процессы. Если запрос сгенерирован на получение серверной страницы со сценариями, модулями CGI, ISAPI, то Web-сервер передает эту страницу для обработки соответствующему интерпретатору сценариев или исполняемому модулю. Результатом обработки является отформатированная HTML-страница, которую можно отобразить в браузере.
- Соединение HTTP – стандартный протокол взаимодействия клиентских браузеров и серверов. Каждый раз, когда клиент и сервер обмениваются информацией, устанавливается новое независимое соединение.
- ^ Станица HTML – Web-страница с интерфейсом пользователя и содержательной информацией, которая не обрабатывается сервером. Обычно такие страницы содержит пояснительный текст или HTML-форму для ввода данных. Когда Web-сервер получает запрос на страницу HTML, он просто извлекает требуемый файл и, не выполняя никакой фильтрации, передает его соответствующему клиенту.
- ^ Серверная страница – Web-страницы, которые обрабатываются серверной частью приложения. Такие страницы реализуются в виде страниц со сценариями, которые пропускаются через фильтр сервера приложения или исполняемого модуля. Эти страницы потенциально имеют доступ ко всем серверным ресурсам, включая бизнес-логику, базы данных и существующие системы.
- ^ Сервер приложения – основное средство для выполнения бизнес-логики в серверной части приложения. В обязанности сервера приложений входит выполнение кода серверных страниц.
- ^ Дополнительный элемент – база данных. Во многих Web-приложениях база данных используется для хранения коммерческой информации. В некоторых случаях база данных используется для хранения самих страниц (однако такое ее применение относится к другому архитектурному шаблону).
Простейший способ соединения системы с базой данных заключается в обеспечении для сценариев серверных страниц возможности прямого доступа к компоненты хранения данных. Существуют стандартные библиотеки доступа к данным, такие как RDO(Remote Data Object), ADO (ActiveX Data Object), ODBC (Open Database Connectivity), JDBC (Java Database Connectivity).
На рис. 1.1 представлено логическое представление архитектурного шаблона "тонкого" Web-клиента.

Рис. 1.1. Архитектура на основе "тонкого" Web-клиента
^ Основные принципы поведения. В основе этого архитектурного шаблона лежит следующий принцип: бизнес-логика используется только в ответ на запрос Web-страницы клиентом. Клиент взаимодействует с системой, используя протокол HTTP для получения страниц с Web-сервера. Если запрашиваемая страница является файлом HTML файловой системы Web-сервера, то сервер просто извлекает страницу и пересылает ее клиенту. Если страница содержит сценарий, т.е. интерпретируемый код, то все необходимые действия по обработке сценария выполняются сервером приложения.
Ключевой аспект динамического поведения этого архитектурного шаблона заключается в том, что бизнес логика используется только в процессе обработки запроса на страницу. После обработки запроса результат передается клиенту, а соединение разрывается.
Выводы. Данная архитектура наиболее подходит для приложений, сервер которых должен передавать ответы в течении интервала времени, приемлемого для пользователя. Обычно это время не превышает нескольких секунд. Применение шаблона тонкий клиент оказывается не лучшим решением, если приложение должно обеспечить возможность запуска пользователем продолжительного процесса. Для выполнения таких задач могут использоваться технологии, которые выполняют периодический опрос сервера.
Другой особенностью данного шаблона является ограниченные возможности по созданию сложного интерфейса пользователя. Поскольку браузер предоставляет интерфейс пользователя, то все элементы управления должны им поддерживаться.
^ 4. Шаблон Thick Web Client
Данный архитектурный шаблон расширяет функции архитектуры на основе «тонкого» клиента и позволяет реализовать в клиентской части приложения сценарии и пользовательские объекты, такие как управляющие элементы ActveX или аплеты Java. Как следует из названия шаблона, в клиентской части может быть реализована часть бизнес-логики системы.
Архитектурный шаблон «толстый» клиент лучше всего подходит для использования в тех Web-приложениях, в которых предполагается использовать определенную клиентскую конфигурацию и версию браузера, а сложный интерфейс пользователя или некоторую часть бизнес-логики перенести на клиентскую часть. В некоторых ситуациях бизнес-логика может полностью выполняться на клиентской части.
^ Структура шаблона. Поскольку архитектурный шаблон Thick Web Client является расширением архитектуры на основе "тонкого" Web-клиента, в обоих шаблонах имеются одни и те же базовые элементы, к которым добавляются некоторые дополнительные компоненты.
- ^ Клиентский сценарий (Client script) — сценарий JavaScript или VBScript, внедренный в отформатированные страницы HTML. Броузер интерпретирует сценарии. Консорциум W3C определил стандарт HTML и интерфейс объектной
модели документа DOM (Document Object Model), которые позволяют броузеру
обрабатывать клиентские сценарии.
- ^ Документ XML (XML document) —- документ на языке XML (Extensible Markup
Language). В документах XML представляется содержимое (данные) без элемен
тов форматирования.
- Управляющий элемент ActiveX (ActiveX control) — загружаемый при необходимости СОМ-объект, на который может ссылаться клиентский сценарий. Как и
любой другой СОМ-объект, он имеет полный доступ к клиентским ресурсам.
Основной механизм обеспечения безопасности клиентских компьютеров за
ключается в применении алгоритмов аутентификации и цифровых подписей.
Броузеры можно настроить таким образом, чтобы при загрузке управляющих
элементов ActiveX на клиентский компьютер пользователю выдавалось предупреждающее сообщение. Механизмы аутентификации позволяют идентифици
ровать автора управляющего элемента посредством анализа подписи, выданной
одним из пользующихся доверием агентств по выдаче сертификатов.
- ^ Аплет Java (Java applet) — платформно-независимый откомпилированный компонент, запускаемый в контексте броузера. Для обеспечения требуемого уровня
безопасности аплет имеет ограниченный доступ к клиентским ресурсам. Java-аплеты могут использоваться как для создания сложных элементов пользовательского интерфейса, так и для анализа документов XML или инкапсуляции
сложных правил бизнес-логики.
- ^ Компонент JavaBean — небольшой Java-компонент, предназначенный для выполнения определенной задачи и поддерживающий некоторый набор интерфейсов, позволяющих встраивать его в более сложные системы. Управляющие
элементы ActiveX являются аналогом компонентов JavaBean в архитектурах,
разработанных компанией Microsoft.
На рис. 1.2 представлена архитектура на основе "толстого" Web-клиента.

Рис. 1.2. Архитектура на основе "толстого" Web-клиента
Основные принципы поведения. Принципы, заложенные в основу архитектуры на основе "толстого" Web-клиента, совпадают с динамическими свойствами архитектурного шаблона Thin Web Client, которые дополнены возможностью выполнения бизнес-логики в клиентской части приложения. Как и при использовании шаблона Thin Web Client, все взаимодействие между клиентом и сервером выполняется в процессе обработки запросов на страницы. Однако бизнес-логика может частично выполняться в клиентской части с помощью сценариев, элементов управления или аплетов.
На странице, передаваемой клиентскому броузеру, могут содержаться сценарии, управляющие элементы и аплеты, которые позволяют либо просто улучшить пользовательский интерфейс, либо реализовать часть бизнес-логики. К наиболее простым бизнес-правилам относится проверка корректности входных данных. Клиентские сценарии могут использоваться для проверки правильности значения не только в одном поле формы, но и во всех полях любой Web-страницы.
При использовании этого шаблона очень важно обеспечить переносимость приложения между различными реализациями броузеров. Не все HTML-броузеры поддерживают сценарии JavaSCript и VBScript. Кроме того, управляющие элементы ActiveX могут применяться лишь на клиентских компьютерах под управлением операционной системы Windows компании Microsoft. Даже если используются броузеры известных производителей, всегда присутствуют, пусть незначительные, но все же отличия в реализации модели DOM.
Выводы. При использовании клиентских сценариев, управляющих элементов и аплетов очень важно, чтобы группой тестирования был выполнен полный набор тестов для всех поддерживаемых клиентских конфигураций. Если на клиенте размещена важная часть бизнес-логики, то необходимо удостовериться в ее корректном и непротиворечивом выполнении на всех типах используемых броузеров. Не надейтесь, что все броузеры работают одинаково. Различные броузеры будут по-разному обрабатывать один и тот же исходный код, и, более того, один и тот же броузер будет по-разному работать в различных операционных системах.
Лекция Шаблоны в РНР
(Материалы В. Гилмор РНР 4.)
План
^ 1. Понятие шаблона. Область применения
2. Подходы к созданию шаблонов
3. Нетривиальная система шаблонов
4. Регистрация файлов
5. Регистрация переменных
6. Обработка файла
7. Вывод файла
^ 8. Проект: адресная книга
1. Понятие шаблона. Область применения
Шаблон – часть web-документа, предназначенная для использования в нескольких страницах.
Шаблоны можно рассматривать как расширение программного кода. Шаблоны не только автоматизируют утомительный процесс кодирования, но и обеспечивают структурное деление проекта в рабочих группах. Роль такого деления возрастает с увеличением объемов проекта и численности групп, а также с усложнением архитектуры проекта, причем не только на стадии программирования, но и при последующем сопровождении программы.
Сказанное стоит пояснить на конкретном примере. Допустим, у нас имеется команда разработчиков, состоящая из web-дизайнеров и программистов. В идеале группа web-дизайнеров трудится над созданием привлекательного и удобного сайта, а группа программистов в это время работает над эффективностью и широтой возможностей web-приложения. К счастью, шаблоны заметно упрощают подобное структурирование процесса.
^ 2. Подходы к созданию шаблонов
Существуют два разных подходах к созданию шаблонов РНР:
2.1. Внедрение HTML в код РНР
Первая схема понятна и просто реализуется, но ограничивает свободу действий. Главная проблема заключается в том, что код РНР смешивается с компонентами HTML, образующими макет страницы. Возникающие при этом проблемы связаны с повышенной вероятностью ошибок при непосредственном просмотре и редактировании страниц.
^ 2.2. Включение файлов в страницу.
Вторая схема во многих ситуациях оказывается гораздо удобнее первой.
Структура <заголовок - основная часть - колонтитул> хорошо подходит для структурирования относительно малых сайтов с четко определенным форматом, с увеличением объемов и сложности проекта эти ограничения проявляются все заметнее. Попытки решения этих проблем привели к разработке новой схемы применения шаблонов
^ 2.3. Разделение дизайна и скриптов
В этой схеме разделяются два главных компонента web-приложения: дизайн и программирование. Подобное деление обеспечивает возможность параллельной разработки (web-дизайн и программирование) без необходимости постоянной координации на протяжении всего рабочего цикла. Более того, оно позволяет в будущем модифицировать один компонент, не влияя на работу другого.
^ 3. Нетривиальная система шаблонов
Главной целью при разработке систем шаблонов является фактическое отделение дизайна от функциональных возможностей. Собственно, эта система и создается для того, чтобы программисты и дизайнеры могли независимо трудиться над своими аспектами приложения, не мешая работе другой группы.
Сделать это проще, чем кажется на первый взгляд, - при условии, что до начала разработки было проведено некоторое предварительное планирование. В листинге 1 представлен некий базовый шаблон, созданный на основе материала этой главы.
Листинг 1. Пример шаблона
Добро пожаловать на страницу {user_name}!
Обратите внимание на три строки (page_title, bg_color и user_name), заключенные в фигурные скобки ({ }). Фигурные скобки имеют особый смысл при обработке шаблонов - заключенная в них строка интерпретируется как имя переменной, вместо которого подставляется ее значение.
^ Дизайнер строит страницу по своему усмотрению; все, что от него потребуется, - включать в соответствующие места документа эти ключевые строки. Конечно, программисты и дизайнеры должны заранее согласовать имена всех переменных!
Все функции построения и выполнения операций с шаблонами будут оформлены в виде методов класса. Определение класса начинается так:
Пример
class template
{
//идентификаторы файлов и содержимое каждого файла
var $files = array( );
//двухмерный массив для хранения файлового идентификатора (ключа) и всех //соответствующих переменных, обрабатываемых в схеме шаблонов
var $variables = array( );
// ограничители для частей шаблона, которые должны заменяться системой
var $opening_escape = '{';
var $closing_escape = '}';
}
В наших примерах в качестве ограничителей будут использоваться фигурные скобки ({ }). Можно изменить два последних атрибута и выбрать ограничители по своему усмотрению. Главное - проследить за тем, чтобы эти символы не использовались для других целей.
Каждый метод класса решает конкретную задачу, соответствующую той или иной операции в процессе обработки шаблона. Этот процесс можно разделить на четыре стадии.
- Регистрация файлов - регистрация всех файлов, обрабатываемых сценариями шаблонов.
- Регистрация переменных - регистрация всех переменных, которые должны заменяться своими значениями в зарегистрированных файлах.
- Обработка файлов - замена всех переменных, находящихся между ограничителями, в зарегистрированных файлах.
- Вывод файла - вывод обработанных зарегистрированных файлов в браузере.
^ 4. Регистрация файлов
В процессе регистрации содержимое файла сохраняется в массиве с ключом, однозначно идентифицирующим этот файл. Метод register_file() открывает и читает содержимое файла, имя которого передается в качестве параметра. Код этого метода приведен в листинге 2.
Листинг 2. Метод регистрации файла в классе шаблона
function register_file($file_id, $file_name)
{
// Открыть $file_name для чтения или завершить программу с выдачей сообщения об ошибке
$fh = fopen($file_name, "r") or die ("Не могу открыть файл- $file_name!");
// Прочитать все содержимое файла $file_name в переменную
$file_contents = fread($fh, filesize($file_name));
// ^ Присвоить содержимое элементу массива с ключом $file_id
$this->files[$file_id] = $file_contents;
// Работа с файлом завершена, закрыть его.
fclose($fh);
}
Параметр $file_id содержит идентификатор – символьный псевдоним для последующих операций с файлом, упрощающий последующие вызовы метода. Идентификатор используется в качестве ключа для индексирования массива $files.
Пример регистрации файла:
// Включить класс шаблона
include("template.class");
// Создать новый экземпляр класса
$template = new template;
// Зарегистрировать файл "homepage.php", присвоив ему псевдоним "home"
$template->register_file("home", "homepage.php");
^ 5. Регистрация переменных
После регистрации файлов необходимо зарегистрировать все переменные, которые будут интерпретироваться особым образом. Метод register_variables( ) (листинг 3) читает имена переменных и сохраняет их в массиве $variables.
Листинг 3. Метод регистрации переменных
function register_vanables($file_id, $variable_name)
{// Попытаться создать массив, содержащий переданные имена переменных
$input_variables = explode(".", $variable_name);
// Перебрать имена переменных
while (list($value) = each($input_variables)) :
// Присвоить значение очередному элементу массива $this->variables
$this->variables[$file_id][] = $value:
endwhile;
}
В параметре $file_id передается ранее присвоенный псевдоним файла. Например, в предыдущем примере файлу homepage.html был присвоен псевдоним home. Обратите внимание - при регистрации имен переменных, которые должны особым образом обрабатываться в файле homepage.html, вы должны ссылаться на файл по псевдониму! В параметре $variable_name передаются имена одной или нескольких переменных, регистрируемых для указанного псевдонима.
Пример:
// Включить класс шаблона
include("tempiate.class");
// Создать новый экземпляр класса
$template = new template;
// Зарегистрировать файл "homepage.php", присвоив ему псевдоним "home"
$template->register_file("home", "homepage.php");
// Зарегистрировать несколько переменных
$template->register_variables ("home", "page_title.bg_color.user_name");
^ 6. Обработка файла
После того как файлы и переменные будут зарегистрированы в системе шаблонов, можно переходить к обработке зарегистрированных файлов и замене всех ссылок на переменные с соответствующими значениями. Метод file_parser( ) приведен в листинге 4.
Листинг 4. Метод обработки файла
function file_parser($file_id)
{
// Сколько переменных зарегистрировано для данного файла?
$varcount = count($this->variables[$file_id]);
// Какие файлы зарегистрированы в шаблоне? $keys - массив всех ключей в files
$keys = array_keys($this->files):
// Если файл $file_id существует в массиве $this->files и с ним связаны зарегистрированные переменные
if ( (in_array($file_id, $keys)) && ($varcount > 0) )
{ $x = 0; // Сбросить $x
// Пока остаются переменные для обработки
while ($x < sizeof($this->variables[$file_id])) :
// Получить имя очередной переменной
$string = $this->variables[$file_id][$x];
// Получить значение пер-й. Для получения зн-я используется конструкция $$.
// Полученное значение подставляется в файл вместо указанного имени переменной.
GLOBAL $$string;
// Построить точный текст замены вместе с ограничителями
$result = $this->opening_escape.$string.$this->closing_escape;
// Выполнить замену
$this->files[$file_id] = str_replace( $result, $$string, $this->files[$file_id]);
$x++;// Увеличить $х
endwhile;
}//endif;
}
Сначала мы проверяем, присутствует ли указанное имя файла в массиве $this->files. Если файл был зарегистрирован, мы также проверяем, были ли для него зарегистрированы переменные, и если были - значения этих переменных подставляются в содержимое $file_id.
Пример:
// Включить класс шаблона
include("template. class") ;
$page_title = "Добро пожаловать на страницу!";
$bg_color = "white";
$user_name = "Иванов Иван Иванович";
// Создать новый экземпляр класса
$template = new template;
// Зарегистрировать файл "homepage.php",присвоив ему псевдоним "home"
$template->register_file( "home", "homepage.php");
// Зарегистрировать несколько переменных
$template->register_variables("home", "page_titie, bg_color, user_name");
$template->file_parser("home");
Поскольку переменные page_title, bg_color и user_name были зарегистрированы, значения каждой переменной (присвоенные в начале сценария) подставляются в страницу homepage.html, хранящуюся в массиве files (атрибуте объекта-шаблона). На этом предварительная подготовка завершается, остается лишь вывести полученный шаблон в браузере. Эта операция рассматривается в следующем разделе.
^ 7. Вывод файла
В нашем примере для вывода файла создается отдельный метод, приведенный в листинге 5, однако в зависимости от ситуации вывод также может интегрироваться с методом fiIe_parser().
Листинг 5. Метод вывода файла в браузере
function print_file($file_id)
{
// Вывести содержимое файла с идентификатором $file_id
print $this->files[$file id];
}
Все очень просто - при вызове print_file( ) содержимое файла, представленного ключом $file_id, передается в браузер.
В листинге 6 приведен пример использования класса template.
Листинг 6. Пример использования класса template
// Включить класс шаблона
include("template.class");
// Присвоить значения переменным
$page_title = "Добро пожаловать на страницу!";
$bg_color = "white";
$user_name = "Иванов Иван Иванович";
// Создать новый экземпляр класса
$template= new template;
// Зарегистрировать файл "homepage.php" с псевдонимом "home"
$template->register_file("home", "homepage.php");
// Зарегистрировать переменные
$template->register_variables("home", "page_title, bg_color.user_name");
//Произвести обработку переменных
$template->file_parser("home");
// Передать результат в браузер
$template->print_file("home");
Если бы шаблон, приведенный в листинге 1, хранился в файле homepage.html в одном каталоге со сценарием из листинга 16, то в браузер был бы направлен следующий код HTML:
Добро пожаловать на страницу, Иванов Иван Иванович!
Как видно из приведенного примера, все зарегистрированные переменные были заменены соответствующими значениями. При всей своей простоте класс template обеспечивает стопроцентное разделение уровней программирования и дизайна.
Лекция 7. Архитектура корпоративного сайта.
План.
- Архитектура корпоративного сайта.
- Типовые блоки корпоративного сайта.
- Проектирование структуры каталогов корпоративного сайта.
Литература. М. Кузнецов и др. PHP5. Практика создания Веб-сайтов. СПб, 2007//Глава 6. Проектирование стр. 243-249
Лекция 8. Система администрирования контента
План.
- Основные функции приложения
- Интерфейс приложения
- Проектирование структуры БД
- Реализация приложения. Основные файлы
- Пример. Система администрирования контента
Литература. М. Кузнецов и др. PHP5. Практика создания Веб-сайтов. СПб, 2007, стр. 249-333
Лекция 9-10. Блок «голосование». Блок «Гостевая книга»
Введение
Блок «голосование».
Для того, чтобы иметь обратную связь с клиентами, на корпоративных сайтах применяют 2 вида веб-приложений – голосование и гостевая книга.
Блок «Голосование» предлагает посетителям вопрос и несколько вариантов ответа.
Цель приложения – привлечь внимание к ресурсу, сбор социологической информации.
^ 1. Система голосования
Система голосования обычно представляет собой небольшую форму, размещаемую на всех страницах сайта, которая содержит вопрос и варианты ответа на него. С помощью этой формы любой посетитель может ответить на задаваемый вопрос, выбрав один из предлагаемых вариантов ответа и нажав кнопку «Голосовать».
Система голосования позволяет вести архив старых опросов. При добавлении нового опроса старый не удаляется, а перемещается в архив. Через систему администрирования любой опрос можно восстановить из архива и снова поместить на сайт.
Веб-приложение состоит из пользовательской части и системы администрирования. С помощью пользовательской части на сайте отображается текущее голосование, его результаты, а также предоставляется доступ к просмотру старых опросов из архива.
Пример.
- Вопрос-ответы-голосовать
- После нажатия кнопки «голосовать», ответ обрабатывается в системе голосования и автоматически открывается окно с результатами опроса с учетом текущего голосования.
^ 2. Система администрирования
С помощью системы администрирования проводится управление системой голосования. Через интерфейс системы голосования можно создавать новые голосования, добавлять новые варианты ответов в существующие, направлять голосования в архив и извлекать их из архива.
Главная страница системы администрирования представляет собой меню:
- текущий опрос (открытие страницы с текущим опросом)
- добавить голосование
- перейти к архиву голосований
План.
- Основные функции приложения
- Интерфейс приложения
- Проектирование структуры БД
- Реализация приложения. Основные файлы
- Пример. Блок «голосование». Блок «Гостевая книга»
Литература. М. Кузнецов и др. PHP5. Практика создания Веб-сайтов. СПб, 2007, стр. 430-459
Лекция 11-12. Блок «Фотогалерея». Блок «Поиск по сайту»
План.
- Основные функции приложения
- Интерфейс приложения
- Проектирование структуры БД
4. Реализация приложения. Основные файлы
5. Пример. Блок «Фотогалерея». Блок «Поиск по сайту»
Литература. М. Кузнецов и др. PHP5. Практика создания Веб-сайтов. СПб, 2007, стр. 430-459