Содержание

CMS Shop-Script

Разработчик: www.shop-script.ru

CMS Shop-Script предназначена для разработки интернет магазинов.

В данном разделе я буду рассматривать бесплатную версию CMS - Shop-Script 2 FREE.

Скрипты магазина написаны на PHP, товары хранятся в SQL базе данных. CMS использует Model–view–controller парадигму, поэтому дополнительные скрипты пишутся достаточно легко, соответственно и новый дизайн легко ложится на CMS.

В качестве шаблонизатора используется smarty.

Установка и настройка

Установка Shop-Script

После распаковки архива в корень сайта, запустите скрипт установки install.php (к примеру example.com/install.php).

Для установки вам потребуется лишь задать данные для доступа к базе SQL и создать учетную запись администратора.

После установки необходимо удалить файл install.php из корня сайта.

Магазин готов :-).


Файловая структура

В целом, файловая структура достаточно прозрачная, но требует небольших изменений.

Папка cfg

Папка cfg содержит файлы основных настроек системы. А также дамп демонстрационной базы данных, функции ядра системы и файлы статичных страниц, которым тут, на мой взгляд, не место.

Поэтому сразу предлагаю создать дополнительные папки:

Ну а демонстрационный дамп (demo_database.sql) просто удаляем.

Папка extra

Папка extra содержит только один скрипт замены идентификационных данных администратора. В .htaccess стоит настройка запрещающая доступ всем пользователям к этой папке.

Если на сервере не настроено переопределение параметров сервера в .htaccess, то лучше не выгружать эту папку на сервер. И лишь в случаи необходимости восстановить административный пароль, временно выгрузить этот скрипт.

Папка images

Содержит картинки пользовательской и административной частей и страницы установки, а также файлы стилей административки и страницы установки.

Все что касается страницы установки, то тут можно сразу все удалить, а для файлов стилей создать свою папку:

Картинки фронтенда также можно полностью удалить - скорее всего вы будете интегрировать свой дизайн.

Папка 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 умеет кешировать страницы, так вот именно в этой папке хранится кеш.

Корневая папка

Содержит следующие файлы:

style1.css должны были перенести в css, а install.php - удалить.

Обобщенная файловая структура

После всех наших доработок мы получим следующую файловую структуру:


Управление магазином

Для входа в панель администрирования вызываем admin.php (example.com/admin.php).

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

Еще раз напомню про фотографии товаров - изначально можно хранить только одну фотографию в трех расширениях. Поэтому сразу предлагаю создать новую таблицу в базе данных и переписать скрипты управления фотографиями.

Так же в панели администрирования можно посмотреть все оформленные заказы.


Резюме

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

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

Вообще рекомендую один раз сесть, перелопатить основу этой системы и сохранить копию этой переработки - в следующем проекте будет меньше работы.