Оглавление книги
Введение 9
Для кого и о чем эта книга 9
Структура книги 9
Благодарности 10
Часть I. Инструменты и технологии Web-программирования
11
Глава 1. Инструменты создания Web-страниц
13
1.1. HTML и CSS 13
1.1.1. Теговая модель 13
1.1.2. Элементы HTML 14
1.1.3. Классификация элементов HTML 14
1.1.4. Атрибуты тегов 15
1.1.5. Листы стилей CSS 15
1.1.5.1. Определение встроенного стиля 15
1.1.5.2. Формирование листа стилей 15
1.1.5.3. Внутренние листы стилей 16
1.1.5.4. Внешние листы стилей 16
1.2. Язык сценариев JavaScript 17
1.2.1. Встраивание сценария JavaScript в документ 17
1.2.2. Обработка событий в JavaScript 18
1.3. Динамический HTML 19
1.4. PHP — серверный язык программирования 22
1.5. СУБД MySQL 23
1.5.1. Типы данных 23
1.5.1.1. Целые числа 23
1.5.1.2. Дробные числа 24
1.5.1.3. Строки 24
1.5.1.4. Бинарные данные 25
1.5.1.5. Дата и время 25
1.5.2. Таблицы MySQL 26
1.5.3. Структурированный язык запросов SQL 27
1.5.4. Функции PHP для работы с MySQL 28
1.5.4.1. mysql_connect 28
1.5.4.2. mysql_close 29
1.5.4.3. mysql_select_db 29
1.5.4.4. mysql_query 29
1.5.4.5. mysql_fetch_row 30
1.5.4.6. mysql_fetch_assoc 30
1.5.4.7. mysql_fetch_array 30
1.5.4.8. mysql_result 31
1.5.4.9. mysql_num_rows 31
1.5.4.10. mysql_insert_id 31
1.5.5. Работа с phpMyAdmin 31
1.5.5.1. Запуск phpMyAdmin из Денвера 32
1.5.5.2. Создание базы данных 32
1.5.5.3. Создание таблицы базы данных 33
1.5.5.4. Заполнение таблиц базы данных 34
1.5.5.5. Экспорт/импорт баз данных 36
1.6. Программная оболочка Денвер 37
1.6.1. Что такое Денвер? 38
1.6.2. Получение дистрибутива и расширений Денвера 38
1.6.3. Установка Денвера 41
1.6.4. Размещаем сайт на локальном компьютере 46
Глава 2. Технология AJAX
50
2.1. Что такое AJAX? 50
2.1.1. Обмен данными между клиентом и сервером 51
2.1.2. Свойства и методы объекта XMLHttpRequest 51
2.1.3. Запрос к серверу и обработка ответа 52
2.1.4. Варианты ответа от сервера 53
2.2. Фреймворк xajax 54
2.2.1. Как работает xajax 54
2.2.2. Возможности xajax 54
2.2.3. Подключение xajax 56
2.2.4. Методы объекта xajaxResponse 57
2.2.4.1. Метод assign 58
2.2.4.2. Метод append 58
2.2.4.3. Метод prepend 58
2.2.4.4. Метод replace 59
2.2.4.5. Метод remove 59
2.2.4.6. Метод create 59
2.2.4.7. Метод insert 59
2.2.4.8. Метод insertAfter 60
2.2.4.9. Метод clear 60
2.2.4.10. Метод createInput 60
2.2.4.11. Метод insertInput 61
2.2.4.12. Метод insertInputAfter 61
2.2.4.13. Метод removeHandler 61
2.2.4.14. Метод includeScript 62
2.2.4.15. Метод script 62
2.2.4.16. Метод addEvent 62
2.2.4.17. Метод call 63
2.2.4.18. Метод alert 63
2.2.4.19. Метод redirect 63
2.2.5. Сайт — тренировочный стенд для изучения xajax 63
2.2.6. Глобальные переменные xajax 68
2.2.6.1. Глобальные константы 68
2.2.6.2. Методы объекта xajax 68
2.3. Примеры использования xajax 72
2.3.1. Форма регистрации с проверкой правильности заполнения полей "на лету" 72
2.3.2. Динамически подгружаемые select-элементы 78
2.3.3. Многоуровневый неоднородный каталог 87
2.3.4. Динамическое управление числом полей формы 91
2.4. Фреймворк jQuery 99
2.4.1. Возможности jQuery 100
2.4.2. Использование jQuery 100
2.4.2.1. Функция $ 101
2.4.2.2. Селекторы 101
2.4.2.3. Методы jQuery 105
2.4.2.4. Обработка событий в jQuery 106
2.4.2.5. Эффекты в jQuery 107
2.4.3. PHP и jQuery 107
2.4.3.1. Динамическая подгрузка jQuery и плагина Carousel 107
2.4.3.2. Совместное использование jQuery UI-виджетов Tabs и Accordion 111
2.4.3.3. Маленький сайт для ювелирной компании 119
2.5. Xajax и Smarty 130
2.5.1. Что такое Smarty? 130
2.5.2. Установка Smarty 131
2.5.3. Синтаксис шаблонов Smarty 132
2.5.4. Методы класса Smarty 134
2.5.4.1. Метод assign 134
2.5.4.2. Метод display 134
2.5.4.3. Метод fetch 134
2.5.5. Использование xajax и Smarty 135
Часть II. Проект интернет-магазина
143
Глава 3. Проектирование сайта
145
3.1. Структура и функции сайта 145
3.1.1. Необходимый функционал сайта (интернет-магазина) 145
3.1.2. Структура корневого каталога сайта 147
3.1.3. Особенности создания сайта без перезагрузки страницы 148
3.1.4. Проектирование базы данных 150
3.2. Типы пользователей. Вход в профиль 161
3.2.1. Типы пользователей 161
3.2.2. Вход в профиль 161
3.2.3. Использование переменных SESSION и cookies 166
3.2.3.1. Переменные session 166
3.2.3.2. Переменные cookies 167
3.2.4. Логика вызова программ при выборе пункта меню 170
3.2.5. Набор подпрограмм для разных пользователей 177
3.3. Регистрация 189
3.3.1. "Теневая" регистрация незарегистрированных пользователей 189
3.3.2. Регистрация пользователей 191
3.4. Оплата SMS через сервис a1agregator 199
3.5. Блок "Товары" 203
3.5.1. Список категорий товаров неограниченной вложенности 204
3.5.2. Вывод списка товаров постранично 208
3.5.3. Динамический "ресайзер" картинок 213
3.5.4. Программирование навигатора страниц 215
3.5.5. Вывод пути к категории товаров 217
3.5.6. Поиск товаров и вывод постранично 219
3.5.7. Просмотр товара подробно 226
3.5.8. Специальные акции (товары по акции) 229
3.6. Корзина 231
3.6.1. Добавление товаров в корзину 232
3.6.2. Корзина подробно 236
3.6.3. Редактирование корзины 239
3.6.3.1. Изменение количества товара 239
3.6.3.2. Удаление товара из корзины 240
3.6.4. Выбор адреса доставки товара 242
3.6.5. Оформление заказа 244
3.7. Оплата заказа 248
3.7.1. Оплата WebMoney 248
3.7.2. Организация приема платежей WebMoney 252
3.7.3. Платежный интегратор OnPay 255
3.7.3.1. Варианты приема электронных платежей 256
3.7.3.2. Настройка параметров магазина 258
3.7.3.3. ONPAY Merchant API 260
3.7.4. Подключение приема платежей в автоматическом режиме через OnPay Merchant API 268
3.8. Блок "Заказы" 273
3.8.1. Просмотр заказов пользователя 273
3.8.2. Поиск заказов пользователя по фильтру 278
3.8.3. Редактирование заказа 284
3.8.4. Просмотр заказа 292
3.8.5. Удаление заказа 295
3.8.6. Оплата заказа. Формирование ссылок для скачивания 297
3.8.7. Регулирование доступа к файлам скачивания с использованием файла .htaccess 298
3.8.8. Получение товара 300
3.9. Блок мгновенных сообщений на сайте 303
3.9.1. Вывод мгновенных сообщений 303
3.9.2. Переход по ссылке мгновенных сообщений 305
3.9.3. Формирование мгновенных сообщений 308
3.10. Переписка на сайте (внутренняя почта) 310
3.10.1. Просмотр сообщений пользователя списком 310
3.10.2. Просмотр сообщения 317
3.10.3. Удаление сообщения 320
3.10.4. Создание сообщения 322
Глава 4. Программирование панели администратора
326
4.1. Вход администратора 327
4.2. Управление товарами 327
4.2.1. Добавление нового товара 328
4.2.2. Редактирование товара 341
4.2.3. Удаление товара 348
4.2.4. Скрытие товара, открытие товара 350
4.3. Управление категориями товаров 353
4.3.1. Добавление категорий товаров 357
4.3.2. Редактирование категорий товаров 360
4.3.3. Удаление категорий товаров 362
4.4. Управление заказами 365
4.4.1. Просмотр заказов пользователей 365
4.4.2. Просмотр заказов пользователей по фильтру 369
4.4.3. Просмотр заказа 376
4.4.4. Редактирование заказа 379
4.4.5. Удаление заказа 385
4.4.6. Оплата заказа администратором 386
4.4.7. Установка статуса "отправлен" 387
4.5. Операции с профилями пользователей 389
4.5.1. Просмотр всех пользователей 389
4.5.2. Просмотр пользователей по фильтру 392
4.5.3. Просмотр профиля пользователя 398
4.5.4. Редактирование профиля пользователя 401
4.5.5. Блокировка пользователя 405
4.6. Обратная связь 406
4.6.1. Обратная связь по e-mail 406
4.6.2. Обратная связь по ICQ 409
4.7. Экспорт товаров из 1С 412
4.7.1. Формирование и отправка данных из 1С 412
4.7.2. Получение и обработка данных на сайте 413
Заключение 415
Приложения 417
Приложение 1. Свойства стилей CSS 419
Приложение 2. Описание компакт-диска 432
Предметный указатель