Учебник по созданию сайта
Структура папок и файлов WebAsyst
Общая структура, Ключевые файлы, Сервисы, Shopping Cart
Общая структура
/data/ - файлы, загружаемые пользователями в приложениях, которые не должны быть доступны напрямую из браузера;
/dblist/ - XML-описания баз данных;
/kernel/ - ядро. файлы, которые не должны быть доступны по HTTP и являются общими для всех сервисов;
/published/ - файлы, к которым идет обращение по HTTP, содержит: код конкретных сервисов (имеют двухбуквенные имена: AA, CM, etc.);
/published/common/ - общие файлы, отдающиеся по HTTP (images, javascript, css, etc.);
/published/publicdata/ - файлы аккаунтов, которые нужно отдавать в браузер (изображения в книгах, картинки продуктов Shopping Cart). должны быть доступны напрямую по адресу;
/published/wbsadmin/ - управление установкой WebAsyst (настройка доступа к базе данных, настройка отображения Frontend, общие системные настройки).
/temp/ - временные файлы.
Ключевые файлы
на что обратить внимание если что-то не работает, или что-то нужно изменить:
/kernel/wbs.xml - содержит основные настройки установки: параметры подключения к Mysql-серверу, доступные для выбора языки, другие системные настройки;
/kernel/includes/smarty/compiled/ - в эту директорию складываются откомпилированные шаблоны Smarty, обязана быть доступна для записи;
/temp/ - также должен быть доступен для записи;
/dblist/ - все настройки конкретной БД (доступ к базе данных, установленные приложения, выбранный тарифный план), хранятся в XML-описании базы данных.
/data/ и /published/data/ - все приложенные файлы (картинки продуктов Shopping Cart, файлы сервиса Files, etc) сохраняются в эти директории. publicdata - для тех файлов, которые должны быть доступны напрямую. поддиректории внутри них создаются по принципу <имя базы данных>/attachments/<имя приложения>/.
К примеру, файлы картинок Shopping Cart в базе данных TEST будут находится по адресу /published/publicdata/TEST/attachments/SC/products_pictures/
Сервисы
1. Все сервисы находятся в /published/ и обозначены двумя символами;
2. В установке обязательно есть сервисы:
- AA - Control Panel (Панель управления) - управление аккаунтом, также содержит в себе общие строки локализации;
- UG - Users and Groups (Пользователи и группы) - управление пользователями, группами, правами.
- MW - My Webasyst (Мой Аккаунт) - управление текущим юзером. Фактически вызывает экран редактирования текущего пользователя из UG;
- WG - Widgets (Виджеты) - общая инфраструктура виджетов.
3. Все сервисы WebAsyst (за исключением Shopping Cart - SC) имеют примерно одинаковую структуру:
- /help/ - файлы справки сервиса;
- /html/ - скрипты и шаблоны конкретных экранов;
- /html/ajax/[optional] - ajax-handler'ы;
- /html/cssbased/ - smarty-шаблоны, используемые скриптами (в большинстве случаев имя шаблона совпадает с именем скрипта);
- /html/img/ - картинки, используемые сервисом (в том числе значок, и картинка сервиса в верхней панели);
- /html/scripts/ - скрипты экранов, вызываются по HTTP напрямую;
- /includes/[optional] - разнообразные приложения к сервису;
- /localization/ - файлы локализации сервиса;
- /reports/[optional] - файлы отчетов;
__________________________________________________________
_screens.php - содержит информацию о главном экране сервиса: адрес, локализованное название, необходимые права. нужен, чтобы не грузить всю информацию о сервисе при загрузке любой страницы;
wbs_application.xml - XML-описание сервиса, описывает связь с другими сервисами, если это необходимо. например при удалении пользователя опрашиваются другие сервисы - не задействован ли он в них
xx_metadata.sql - SQL-инструкции, вызываемые при подключении приложения в базу (создают таблицы, необходимые сервису);
user_rights.php - описывает дерево прав сервиса;
__________________________________________________________
xx.php - файл, подключающий все функции сервиса;
xx_consts.php - константы;
xx_dbfunctions_cmn.php - бизнес-логика сервиса;
xx_functions.php - вспомогательные функции;
xx_queries.php - шаблоны SQL-запросов к БД (используются в xx_dbfunctions_cmn.php);
Shopping Cart
Shopping Cart имеет отличающуюся от остальных сервисов структуру файлов, схожую со структурой Shop-Script:
- Все скрипты сервиса находятся в директории /published/SC/html/scripts/
- Исходной точкой запуска для всех экранов SC (как Backend, так и Frontend) является файл index.php;
- За преобразование URL отвечает файл /published/SC/html/scripts/.htaccess, а при включении ЧПУ также файл /.htaccess находящийся в корне установки;
- Для доступа к базе данных и сохранению файлов SC использует инфраструктуру WebAsyst:
- все пользовательские данные (файлы шаблонов, изображения продуктов, приложенные файлы) сохраняются как файлы сервиса SC в директории /published/publicdata/ и /data/;
- параметры доступа к базе данных хранятся в файле XML в директории /dblist/;
- но, локализация SC не хранится в файлах;
frame.html - каркас страниц (теги <html></html><head></head><body></body>)
category_tree.html - отображение дерева категорий на боковой панели
category.tpl.html - содержимое категории (подкатегории, товары)
product_brief.html - отображение товара в списке категории или в результатах поиска
customer_survey.html - голосование
login.html - форма входа для клиентов. Читаем здесь.
m.* - шаблоны для PDA User-Agent-ов. Еще не разбирался.
news.frontend.shortlist.tpl.html - Шаблон новостей для боковой панели
news.frontend.list.tpl.html - Список новостей
news.frontend.post.tpl.html - Просмотр выбранной новости
order_* - шаблоны заказа
checkout.* - шаблоны оформления заказа
product_name.html, product_description.html, product_price.html - Название товара, описание, цена
product_discussion.html - Все отзывы о товаре + написать отзыв
product_discuss_link.html - Последние отзывы о товаре
product_images.html - Способ отображения фотографий товара
product_list.html - Ограниченый список (новинки, распродажа...)
product_params_fixed.html и product_params_selectable.html - доп.характеристики товара
product_rate_form.html - рейтинг товара (звездочки)
product_related_products.html - "Советуем посмотреть"
register* - шаблоны форм регистрации
root_categories.html - перечень категорий и подкатегорий товаров (по умолч. на главной странице)
shopping_cart_info.html - Корзина на боковой панели
shopping_cart.html - страница корзины (в виджете или на отдельной странице)