Danneo CMS - это относительно молодая, но очень перспективная отечественная система управления сайтом(КМС), основным достоинством которой является неприхотливость и низкий порог вхождения. Это значит, что чтобы понять, как она устроена не надо изучать API и штудировать документацию. Каждый модуль, блок или класс сам по себе документирован, благодаря обилию комментариев в коде. В системе не используются сложные технологии типа xslt или MVC(привет UMI). Достаточно пол часика пробежаться по коду и понять откуда растут ноги, и вот Вы уже пишите свой блок или модуль.
Из недостатков данной CMS, пожалуй самым ощутимым, является малое количество готовых модулей. По дефолту вместе с системой ставятся модули Статьи, Новости, Загрузки, Карта сайта, Галерея и т.д. Модули сходны по структуре, и фактически при разработке сайта можно смело отбросить 70% из них и их возможностей.
Однако, есть категории сайтов: интернет магазины и доски объявлений. Готовых модулей для них в системе нет. Надо исправлять данную проблему.
В этой статье я расскажу про модуль Интернет Магазина, с неброским названием shop. Увы, пока выбор не так велик, называть модуль как-то по особому смысла нет.
Сам модуль платный, стоит что-то около 1000 рублей. Я не буду столь суровым и выложу бесплатно текущую версию, но все же призываю Вас зайти на
Но все же я сторонник мнения, что деньги надо брать не за сам софт, а за его поддержку.
Написан модуль для версии системы 0.5.3, я его портировал на версию 0.5.4. Портированную версию качаем тут. Просьба скачавшим сообщать об ошибках, так как я протестировал лишь работоспособность для тестовых данных. Как модуль поведет себя на реальных проектах покажет время.
Итак мы уже скачали архив. Распакуем его во временную папку. Теперь, посмотрим, что мы имеем.
Папки
- apanel
- block
- js
- mod
- modules
- temp
- up
- для mod home
И два файла
- shop.sql
- Инструкция.txt
Все папки кроме temp можете смело копировать в корневую директорию сайта. Они ничего не затирают.
Теперь откроем папку temp/Темплейт и копируем оттуда папку mod в папку с шаблоном Вашего сайта( к примеру Begin). В папке есть еще файл top.tpl. Кго копировать не надо, иначе затрете свою верстку. Все, что Вам из него понадобится эти несколько строчек
<script type="text/javascript" src="js/api.js"></script> <script type="text/javascript" src="js/shop/ajax.js"></script> <script type="text/javascript" src="js/shop/fly-to-basket.js"></script> <script src="js/highslide/highslide.js" type="text/javascript"></SCRIPT> <script type="text/javascript"> hs.graphicsDir = 'js/highslide/graphics/'; hs.captionId = 'the-caption'; hs.outlineType = 'rounded-white';</script> <style type="text/css" media="all">@import "js/highslide/styl.css";</style>
Скопируйте их в любое место (лучше всего во внутрь <head>) файла Begin/top.tpl.
Посмотрим, что написано в файле инструкции:
Раскладываем все файлы согласно папкам, затем производим следующие действия:
1. в файле js/shop/
в строках
var url_addProductToBasket = 'http://ВАШ_ДОМЕН/index.php?dn=shop&re=tovar&to=add';
var url_removeProductFromBasket = 'http://ВАШ_ДОМЕН/index.php?dn=shop&re=tovar&to=del';
заменить ВАШ_ДОМЕН на ваш урл
2. В файле /apanel/amanage.php
После строки
elseif($name == "platform") $mname = $lang['re_platform'];
Добавить строку
elseif($name == "shop") $mname = 'Магазин';
3.В файле shop.sql заменяем {pref} на свой преффикс в базе данных и импортируем скрипт.
4. В админке добавляем и включаем модуль. Настраиваем вывод блоков.
5. ВАЖНО! первую валюту в настройках удалять нельзя - она ключевая - на нее происходит перерасчет.
Для необходимости ее можно переименовать или задать другой курс!
Я не стал заморачиваться с заменой ВАШ_ДОМЕН на свой урл, так как сайт нужно тестировать и на локалке и на сервере. Поэтому куда проще заменить
var url_addProductToBasket = 'http://ВАШ_ДОМЕН/index.php?dn=shop&re=tovar&to=add'; var url_removeProductFromBasket = 'http://ВАШ_ДОМЕН/index.php?dn=shop&re=tovar&to=del';
на
var url_addProductToBasket = 'http://'+location.hostname+'/index.php?dn=shop&re=tovar&to=add'; var url_removeProductFromBasket = 'http://'+location.hostname+'/index.php?dn=shop&re=tovar&to=del';
Экономим кучу времени.
2-ой пункт делаем по инструкции.
3-ий пункт вызвал небольшую проблему, так как в дампе таблиц не указывается их кодировка. И она ставится по умолчанию. Поэтом во избежании проблем с кодировкой, замените в файле TYPE = MYISAM на ENGINE=MyISAM DEFAULT CHARSET=cp1251; Далее все по инструкции.
Вот и все система установлена и готова к работе.
Осталось поправить несколько косяков.
При включенном ВПУ - Валидные Поисковые УРЛ, Danneo CMS категорически не переваривает ссылки с to=<значение не равное art,cat...>
Т.е. рабочая ссылка вида http://sitename.ru/index.php?dn=shop&to=orderconf будет преобразована в не совсем рабочую http://sitename.ru/shop/&to=orderconf
Чтобы это исправить нужно внести поправки в файл danneo.initapi.php, находим в нем строчку
"'(?<!/)index.php\?dn=([a-zA-Z]*)'",
и сразу после нее вставляем
"'/([a-zA-Z]+)/&(amp;)?to=([a-zA-Z0-9_-]*)'" ,
затем ниже, находим строчку
"index.php?dn=user",
и сразу за ней добавляем
"/index.php?dn=\\1&to=\\3"
теперь ссылки которые имеют нестандартный to не будут заменяться. Не волнуйтесь, для поисковиков они не так важны, потому что являются служебными. Важно было восстановить их работоспособность.
Далее не забываем добавить название модуля в строчку $LIST_MOD в файле apanel/base/danneo.permission.php. У меня эта строка выглядит так:
$LIST_MOD = 'article|base|down|filebrowser|link|news|options|platform|poll|photos|stat|user|shop';
Установка модуля на Danneo версии 0.5.4 не сильно отличается от 0.5.3. Но есть ряд нюансов.
Качаем архив с пропатченными файлами. Распаковываем его во временную папку. Названия папок и структура apanel немного изменились.
Папки
- apanel
- base
- block
- javascript
- mod
- modules
- temp
- up
- для mod home
И два файла
- shop.sql
- Инструкция 0.5.4.txt
копируем все кроме apanel, temp и base, в корень Вашего сайта. Содержимое папки apanel так же можно скопировать, за исключением файла apanel/init.php
Из него, (как и из call.php для 0.5.3) Вам понадобятся всего две строчки
require_once(ADMINDIR."/system/yandex.php"); require_once(ADMINDIR."/system/excel/excelparser.php");
вставьте их сразу за строчкой
require_once(ADMINDIR.'/system/apanel.session.php');
Из папки base с файлом danneo.initapi.php нужно проделать те же манипуляции, как для версии 0.5.3. Это следует делать если Вы используете ВПУ.
Из папки temp/Clear смело скопируйте папку mod в аналогичную папку Вашего шаблона. От файла temp/Clear/top.tpl нам потребуется то же самое, что и для версии 0.5.3
Копируем
<script type="text/javascript" src="{site_url}/javascript/shop/ajax.js"></script> <script type="text/javascript" src="{site_url}/javascript/shop/fly-to-basket.js"></script> <script scr="{site_url}/javascript/highslide/highslide.js" TYPE="text/javascript"></SCRIPT> <script type="text/javascript"> hs.graphicsDir = '{site_url}/javascript/highslide/graphics/'; hs.captionId = 'the-caption'; hs.outlineType = 'rounded-white';</script> <style type="text/css" media="all">@import "{site_url}/javascript/highslide/styl.css";</style>
в top.tpl Вашего шаблона. Как вы можете видеть единственное отличие в том, что теперь в Danneo 0.5.4 не используется тег <base>, и все пути нужно прописывать полностью.
Далее не забываем добавить название модуля в строчку $LIST_MOD в файле apanel/system/apanel.permission.php. У меня эта строка выглядит так:
$LIST_MOD = 'news|article|down|link|poll|photos|info|katalog|user|banner|comment|subscribe|faq|options|seo|amanage|lang|base|stat|filebrowser|platform';
Приступим к просмотру возможностей модуля
После установки в панели администрирования в меню появляется вкладка Интернет Магазин. В его настройках можно поменять кошельки(WebMoney,PayPal, YM), ИНН, БИК и КПП. А также множество служебной информации, такой как адрес организации и ее телефон.
Модуль позволяет выводить цену в различных валютах, исходя из установленного соотношения
Прайс можно подгрузить из excel файла. xls файл должен быть в верном формате.
Помимо стандартных полей Название товара,Цена, ID, описание, и др. можно добавить свои собственные. Но их типы ограничиваются text и строчка.
При заказе пользователь должен указать необходимые данные
После заполнения данной формы пользователю предлагается выписать квитанцию. Доступны 3 способа:
Далее товар поступает на обработку.
С модулем устанавливаются 3 блока: Корзина, Поиск и Меню.
Корзина интерактивная, и товар в нее добавляется по ajax.
Просьба всем кто поставит версию для danneo 0.5.4 сообщать о найденных багах.
Для тех, кто пропустил дублирую ссылки для скачки
Скачать версию для Dannoe 0.5.3
Скачать версию для Dannoe 0.5.4
Этот модуль, сильно облегчает создание интернет магазина электроники. Он, можно сказать заточен под подобные магазины. Видимо изначально, его создатель писал его именно для этих целей. С раскруткой интернет магазина и так проблем много, а если часть из них вы переложите на готовый модуль, то сэкономите массу времени.
В следующей статье расскажу про модуль Доски Объявлений. Желаю Удачи =)
Комментарии
вот это(require_once(ADMINDIR.'/system/yandex.php');) то когда находищься в апанел и запускаешь (Файл браузер) то рисунки не отоброжаються,и еще когда в настройках включаешь
Включить ВПУ
- Валидные поисковые URL да
Включить ЧПУ
- Человеко-понятные URL :да
То после добовления товара в кталог,рисунки неотоброжаються.
Все зделал как вы написали.
И еще хотелосьбы чтобы рисунки просматривались так как в статьях.
Выписка счетов и квитанций ??????????:
Наименование организации ???????????????:
Директор организации ???????.?.?: (Петров П.П.)
Главбух организации ????????.?,?: (Иванов В.В.)
Наименование банка организации ??????????:
Инн 5456564685456:
Кпп 564894151:
Счет фирмы 534534864:
Корреспондентский счет :35468453486468
БИК : 5468746846854153
Адрес организации : ??? ??????????
Как исправить
ЧПУ, ВПУ использую
ну вроде разобрался даж как вывести {prois}... но замечен баг при кликанье на производителя выдаёт ошибки
Notice: Undefined variable: cating in /pub/home/vodaspb5/new4/www/mod/shop/index.php on line 651
Notice: Undefined variable: catcpu in /pub/home/vodaspb5/new4/www/mod/shop/index.php on line 651
вот это надо исправлять