Содержание
CMS Shop-Script
Разработчик: www.shop-script.ru
CMS Shop-Script предназначена для разработки интернет магазинов.
В данном разделе я буду рассматривать бесплатную версию CMS - Shop-Script 2 FREE.
Скрипты магазина написаны на PHP, товары хранятся в SQL базе данных. CMS использует Model–view–controller парадигму, поэтому дополнительные скрипты пишутся достаточно легко, соответственно и новый дизайн легко ложится на CMS.
В качестве шаблонизатора используется smarty.
Установка и настройка
После распаковки архива в корень сайта, запустите скрипт установки install.php (к примеру example.com/install.php).
Для установки вам потребуется лишь задать данные для доступа к базе SQL и создать учетную запись администратора.
После установки необходимо удалить файл install.php из корня сайта.
Магазин готов .
Файловая структура
В целом, файловая структура достаточно прозрачная, но требует небольших изменений.
Папка cfg
Папка cfg содержит файлы основных настроек системы. А также дамп демонстрационной базы данных, функции ядра системы и файлы статичных страниц, которым тут, на мой взгляд, не место.
Поэтому сразу предлагаю создать дополнительные папки:
- aux_pages - для хранения статичных страниц. Сразу перенесем сюда файлы aux1 и aux2, после чего придется изменить скрипты административной части управления этими страницами (includes\admin\sub\conf_aux.php) и скрипты отображения этих страниц (includes\aux_page.php). Хочу порадовать, что их все равно придется менять. Вряд ли вы ограничитесь только двумя статичными страницами.
- core_functions - для хранения функция ядра системы. Перенесем сюда файлы functions.php и category_functions.php. И для нормальной работы правим файлы admin.php, category.php, index.php и products.php - изменяем пути к файлам.
Ну а демонстрационный дамп (demo_database.sql) просто удаляем.
Папка extra
Папка extra содержит только один скрипт замены идентификационных данных администратора. В .htaccess стоит настройка запрещающая доступ всем пользователям к этой папке.
Если на сервере не настроено переопределение параметров сервера в .htaccess, то лучше не выгружать эту папку на сервер. И лишь в случаи необходимости восстановить административный пароль, временно выгрузить этот скрипт.
Папка images
Содержит картинки пользовательской и административной частей и страницы установки, а также файлы стилей административки и страницы установки.
Все что касается страницы установки, то тут можно сразу все удалить, а для файлов стилей создать свою папку:
- css - папка стилей. Туда можно перенести файл стилей фронтенда из корня и стили бакенда из images/backend. После чего нужно внести правки в соответствующие шаблоны (templates/tmpl1/head.tpl.html, templates/tmpl1/admin/index.tpl.html)
Картинки фронтенда также можно полностью удалить - скорее всего вы будете интегрировать свой дизайн.
Папка includes
Папка содержит все подключаемые модули как пользовательской, так и административной части. Так же содержит библиотеку с обертками функций для работы с SQL (includes/database/mysql.php).
Вы можете, конечно можете оставить все как есть, но я настоятельно рекомендую добавить туда обертку для mysql_fetch_assoc(). Ну или по крайней мере заменить mysql_fetch_row на mysql_fetch_array.
Иначе придется использовать, числовые индексы как в скриптах, так и в шаблонах. А через месяц, при правке шаблона, пойди вспомни какой индекс, что содержит - придется лезть и в скрипты.
Папка languages
Эта папка содержит файлы, содержащие языковые константы. Если вы не планируете создавать многоязычный интернет-магазин, то можете смело забыть про эти файлы и константы. Но если вдруг такая задача возникнет, то без них не обойтись.
Привязка файлов, как в прочем и шаблонов, к языкам осуществляется в файле cfg/language_list.php.
Папка products_pictures
Все фотографии товаров складываются сюда.
Кстати, если говорить о базовой системе хранения фотографий, то система позволяет хранить одну фотографию в трех разных разрешениях, ну и либо три разные фотографии, при этом использовать поля не по назначению.
Другими словами, снова придется писать .
Папка smarty
Это папка модуля smarty. Тут лучше особо ни чего не трогать, конечно если только вы не захотите обновить smarty на более позднюю версию или дописать свои плагины. Но если вы знаете как писать плагины для smarty, то это утверждение не для вас.
Папка templates
Здесь хранятся все шаблоны вашего сайта. Все шаблоны сортируются по папкам, которые можно подключать свои для каждого отдельного языка (cfg/language_list.php).
Папка templates_c
Как вы знаете smarty умеет кешировать страницы, так вот именно в этой папке хранится кеш.
Корневая папка
Содержит следующие файлы:
- access_admin.php - вход в ПА.
- admin.php - основной файл для панели администрирования.
- category.php - управление категориями из панели администрирования.
- checklogin.php - проверка пользователя, тут надо сказать, что систему авторизации лучше переписать - негоже хранить пароль в файле конфигурации, тем более если известно как формируется хеш пароля .
- index.php - думаю тут все понятно.
- products.php - управление товарами из панели администрирования.
style1.css должны были перенести в css, а install.php - удалить.
Обобщенная файловая структура
После всех наших доработок мы получим следующую файловую структуру:
- aux_pages - статичные страницы
- cfg - конфигурационные файлы
- core_functions - функции ядра системы
- css - файлы стилей
- extra - восстановление пароля
- images - картинки
- includes - подключаемые модули
- js - файлы javasricpt
- languages - языковые константы
- products_pictures - фотографии товаров
- smarty - библиотека smarty
- templates - шаблоны
- templates_c - кещ страниц
Управление магазином
Для входа в панель администрирования вызываем admin.php (example.com/admin.php).
И тут все просто - товары группируются по категориям, причем любой вложенности. Сами товары содержат широкий набор полей, который всегда можно расширить.
Еще раз напомню про фотографии товаров - изначально можно хранить только одну фотографию в трех расширениях. Поэтому сразу предлагаю создать новую таблицу в базе данных и переписать скрипты управления фотографиями.
Так же в панели администрирования можно посмотреть все оформленные заказы.
Резюме
В целом вы практически полностью перепишите систему. Но, на мой взгляд, при хорошем владении PHP, оно того стоит - система на столько прозрачна и легка в управлении, что эти доработки пройдут на раз-два.
Да и в последствии система может наращиваться до бесконечности, при этом грамотное разделение файловой структуры позволит вам быстро вносить необходимые правки.
Вообще рекомендую один раз сесть, перелопатить основу этой системы и сохранить копию этой переработки - в следующем проекте будет меньше работы.