Всё о Embed Cart
Почему это все так хорошо?
- Во первых скорость работы - быстрее чем большинство сайтов
- Станицы грузятся без перезагрузки браузера - система грузит только контент
- Все страницы ЧПУ (человеку понятный URL) даже в админ панеле
- Полностью открытый код и простота изменений. Это чистый линейный PHP код. Никаких фреймворков - нагрузка на сервер только от нужных функций.
- Свой шаблонный движок похожий на Smarty, но гораздно удобнее. Не нужны PHP скобки для интеграции шаблонов. Так же поддержка языковых переменных и храниние результата в кэшэ без генерации шаблонов каждый раз.
- Картинки проходят через ImageMagick(Photoshop 100% качество, GD как опция тоже доступна). На каждой странице свой размер картинок - что хорошо для более быстрой загрузки и SEO. Картинки хранятся в кэшэ и не генерируются повторно
Кто сделал эту CMS
- Опыт работы с E-Commerce начиная с 2005го года
- Много лет на фрилансе. Много выполненных задач
- Изначально создавал SPA-Cart.com
- Уже богатый опыт работы со SPA-Cart
Просто поиграйте с Демо и, я уверен, вам понравится.
Спасибо за прочтение этой статьи. Дальше будет только лучше!
Структура скриптов
Всего имеется 3 главных папки:
- Includes
- Pages
- Templates
Все функции внутри папки includes/.
Все страницы что видно на сайте - папка pages/. Скрипт отображения страниц только один - index.php. URL парсится по страницам, к примеру /help URL покажет pages/help.php скрипт. Все это делает человекопонятные URL.
Шаблоны находятся в папке templates и внутри папки все шаблоны находятся в папках folders с именем скрпита из папки pages/.
Движок шаблонов
Шаблоны поддерживают PHP теги и так же имеют свои переменные
Поддержимаемые теги:
a. Любая переменная выглядит как {$var} - это аналогично <?php echo $var; ?>. Если это array или object - так же как в нативном PHP, к примеру {$var['var']}
b.
{foreach $array as $k=>$v}
{/foreach}
будет
<?php
foreach ($array as $k=>$v) {
}
?>
Внутри можно использовать тег {$v}
И так далее. То есть вместо <?php CODE ?> вы просто пишете {CODE}, что экономит время разработки.
c. {if $tmp == '1' or $var == '2'} {/if}
будет
<?php
if ($tmp == '1' or $var == '2') {
}
?>
Так же
{else if [CODE]}
И
{else }
d. {php $var = 1+2;}
Это просто чтобы обернуть код в PHP скобки.
e. {price $var}
Показываем символ валюты, курс валют и .00 в конце
f. {weight $var}
Так же как и с ценой
g. {include="TEMPALTE PATH"}
к примеру {include="common/products.php"}
h. {lng[Hello world]} - языковая переменная. Очень удобно для мульти-язычных сайтов.
Все теги {lng..} помещаются в кэш и не регенерируются каждый раз.
{lng[Hello|lower]} - lowcase.
{lng[Hello|js]} - replace line breaks and " character with \".
{lng[Hello|escape]} - replace " character with \".
Вы так же можете использовать {lng} в JavaScript - работает так же. Поддержка только "lower", так как остальное уже в коде для JS.
Стандарты MySQL
Как вы знаете - PHP функция для MySQL mysql_query. Но довольно проблематично работать с данными.
Embed-Cart MySQL соединение прописано в $db переменной.
Список функций
1.
$db->all("SELECT * FROM table");
Выведет массив всех записей таблицы.
2.
$db->row(SELECT * FROM table WHERE field='$value'");
Выведет одну строку - не нужно добавлять "LIMIT 1".
3.
$db->field("SELET field FROM table WHERE ...");
Выведет только одно поле как переменная, не массив.
4.
$db->array2insert("table", $array);
Массив вида
$array = array(
'field' => $value,
...
);
Не нужно прописывать "addslashes" в этом случае.
ID послденго поля
$inserted_id = $db->insert_id();
5.
$db->array2update("table", $array, "id='$value'");
Так же как и выше, а 3е поле - это where условие.
6.
$db->query("ANY QUERY");
просто mysql_query.