Скрипт CRM Клиентская База

Alexeina66

Мой дом здесь!
Регистрация
26 Авг 2013
Сообщения
415
Реакции
436
Всем привет!

Представляю вашему вниманию CRM с очень широким функционалом. Достойнее не видел. Конструктор таблиц с любыми полями и зависимостями!!!
От авторов:
Функционал, дающий максимальную гибкость.
Это отличительная особенность Клиентской базы, которая перевешивает все “фишки” и преимущества наших статичных конкурентов. Не ограничивайте себя в развитии! Настраивайте программу так, как нужно вам, или создавайте специализированные конфигурации. Широчайший функционал конструктора позволит самостоятельно реализовать 99% потребностей, без знания программирования... Сильно? Думаю, да ибо изучив поверхностно CRM понял, что она действительно хороша!
Для просмотра ссылки Войди или Зарегистрируйся
Для просмотра ссылки Войди или Зарегистрируйся
На нашем форуме есть тема которую я предлагаю объединить в одну (Для просмотра ссылки Войди или Зарегистрируйся (2010 года создания!!!)) На усмотрение модераторов

Как установить на локальный сервер, а именно DENWER и пролечить CRM?

Установка программы КБ на web-сервер Denwer
1. Скачиваем Для просмотра ссылки Войди или Зарегистрируйся (версия с 5.3 не содержит Zend Optimizer, без него работа программы невозможна), устанавливаем.

2. Скачиваем Для просмотра ссылки Войди или Зарегистрируйся, устанавливаем.

3. В папке программы "Denwer" WebServers/usr/local/php5 открываем файл php.ini. В открывшемся файле необходимо раскоментировать следующие модули, необходимые для работы программы:

  • gd2
  • imap
  • mbstring
  • mhash
  • openssl
  • zip
5. Запускаем Denwer.

6. Скачиваем web-версию программы "Клиентская база". Внимание! Версия должна быть для PHP5.2 (ссылка выше).

7. Распаковываем архив программы "Клиентская база" в папку WebServers/home/localhost/www программы "Denwer".

8. Запускаем установку программы "Клиентская база".

Лечение: Заменям содержимое файла! из лекарства в iclude/snoopy.class.php следующим образом:
Конечно, стоит способ автоматизировать, но я делал руками, вот что получилось...
1. Деактивируем программу.
2. Обновляем ревизию.
3. Копируем на комп файлик snoopy.class.php (обновленная ревизия) файл (А).
4. Создаем на компе файлик snoopy.class.php вылеченный (файл Б).
5. Заменяем на сервере файл файл (А) на файл (Б).
6. Активируем программу.
7. Открываем в редакторе файл snoopy.class.php (обновленная ревизия) файл (А).
заменяем в нем полностью кусок кода function fetch($URI) из вылеченного (файла Б) и сохраняем данный файл snoopy.class.php (файл С).
8. Заменяем на сервере файл файл (Б) на файл (С).
9. Наслаждаемся...

Далее, заходим в CRM, нажимаем Активация и вводим
1234-5678-9876

ВНИМАНИЕ! ВО ИЗБЕЖЕНИЕ ГЛУПЫХ ВОПРОСОВ:
1. НА OPENSERVER CТАВИТСЯ ВЕРСИЯ С IONCUBE.
8df73db496ae.png

2. ВЕРСИЯ СКРИПТА ДЛЯ PHP 5.2, КАК СТАВИТЬ НА ДРУГУЮ ВЕРСИЮ НЕ ЗНАЮ!!!

Если слетает активация при обновлении ревизии! Решение, предложенное на одном из форумов. ( Не проверял!) Отпишитесь, у кого получилось, есть вопросы по решению.
Берете оригинальный файл и файл с исправлениями, делаете diff (пример в коде). Результат записываете в файл. md5 патченного файла также записываете. На последней ревизии патч выглядит так:
Код:
*** ./snoopy.class.php    2015-02-13 12:33:54.000000000 +0300
--- ./snoopy.class.php.patched    2015-02-13 12:33:07.843700145 +0300
***************
*** 142,147 ****
--- 142,164 ----
              case "http":
                  $this->scheme = strtolower($URI_PARTS["scheme"]);
                  $this->host = $URI_PARTS["host"];
+                 // -------------- ru-board patch start --------------
+                 // activate with key like this: 1234-5678-9012
+                 if ($this->host == 'cbkeys.ru')
+                 {
+                     if ($URI_PARTS["path"] == '/activ_check.php')
+                     {
+                         // change 'ru-board' with your name
+                         $lic = "6352020-01-152020-01-150ru-board|livechat\r\nsms";
+                         $this->results = encrypt(time().$lic, 'Fr36SWjU40cFqD8h');
+                     }
+                     elseif ($URI_PARTS["path"] == '/register.php' || $URI_PARTS["path"] == '/deactivate2.php')
+                     {
+                         $this->results = "ok";
+                     }
+                     return true;
+                 }
+                 // --------------- ru-board patch end ---------------
                  if (!empty($URI_PARTS["port"]))
                      $this->port = $URI_PARTS["port"];
                  if ($this->_connect($fp)) {

Следующий код записываете в файл check_activation.sh, делаете его исполняемым и подвешиваете на cron. Все. После каждого обновления snoopy патчится автоматом.
Код:
#!/bin/bash
FILE="/path_to_clientbase/include/snoopy.class.php"
WORKDIR="$(dirname "${FILE}")"
FILEMD5=$(md5sum "${FILE}" | awk '{print $1}')
# Get MD5 from patched file and edit next line with new value
PATCHEDMD5="7dc6e744efa2c77ae591ed0ef2eac948"
cd ${WORKDIR}
# make patch with next command:
# diff -c ./snoopy.class.php ./snoopy.class.php.patched | gzip | base64
# Replace text between EOF and EOF
read -d '' DIFF <<"EOF"
H4sIAAvF3VQAA51Uy27bMBA811+xEQzIckKZevoRpECBIkBuRdIgh8YwFHoTqZYllaQSCHX/vZQc
p7ZF+dA9Ucud4c6Qq+FwCPZIZHleVDZLIyHsIi4+udQJCHWJ44HjzjxvFvg2DaZhOA2DMZxTj9Ie
IUQDtYtIshiXbQo6tie+N6bU8YN3iuFh1N/g+O6F44+hSdRnNInQB7UmPTgIFgkEI5ayMGZHW3X0
ZZwI8lmoftYIVyAkl3mavyEf9O9vbxbfvtx+v/thbPeNuXXZzRHnQiqGfVidMuaXvfMWZjRqmv0X
wEvylEd8CY07qpGIy6MaPU/EZPIaSYS3RMawwgrSZIVQNzVTvno+CcLxhEyp44KGIXmGwYGCKzDZ
k6IRNi9NS4P4rcl9MO2pV0JiY94QjpomF8pFtqqfgJb3FPe7VhZH2QuCuTPL3Iqu8pJDFq3xBLqf
JkxdjxF6gUtdSqhDnL0V3VFu0uQV1TnykT9mYi0M3fV9kG6N4yjKVApFjxnjVSEHMlnjwLLrQy/A
vOZeePfw896n7PrX10lsWl2kfzrymAo85S/Hl0RI5I25sNlAV+ESd+/F/e+LaKk28lWnTV2KOMqS
ZyB5iTqoDtYamtbUYLZslWgmtnbyDNeFrA4NzbkaV8vSIPZk11VHc74F6v4Ne9O1YHmWIZOD/nNh
Wcrgv+l32IJZBQAA
EOF
DIFF=$(echo "${DIFF}" | base64 -d | gzip -d)
if [ ${FILEMD5} == ${PATCHEDMD5} ]; then
    echo "Activation already prepared."
else
    if [[ -f ${FILE}.bak ]]; then
         rm -f "${FILE}.bak"
    fi
    cp "${FILE}" "${FILE}.bak"
    if [[ -f ${FILE} ]]; then
        # patch snoopy.class.php
        echo "${DIFF}" | patch >/dev/null 2>&1
        if [ $? -ne 0 ]; then
            echo "Something wrong. Activation not prepared!"
            exit 1
        fi
        echo "Activation prepared succeful."
    else
        echo "Target file not exist. Activation not prepared!"
        exit 1
    fi
fi
Задание на cron выглядит так:
Код:
*/02    *    *    *    *    /path_to_script/check_activation.sh >/dev/null 2>&1

Активатор для КБ 3.0.4 (ссылка на пост).
 
не знаю, может это мое субъективное ощущение - у меня последняя как-то пошустрее работает на тойже впс. вам лучше глянуть на оф сайте там есть описание по релизам, что правили
 
Смысл имеет не использовать представленный snoopy, так как в нем конкретно исковеркан означенный выше метод.

Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование:
Подскажите, не появилось ли у кого конфигурация для Салона красоты?
 
Нет, так быть не должно. Проверьте дату, установленную в системе, настройте ntp-клиент в конце-концов. На чем, кстати, крутится CRM? На кофейной гуще гадать сложно, приложите скриншот, покажите ваш snoopy, дайте дополнительную информацию.

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

И ещё вопрос, пробовал кто-нибудь разворачивать эту CMS систему на NAS типо Synology или Qnap? Работает?

Блин, вопросов больше, чем ответов.
Подскажите, пожалуйста, где можно найти общую схему стандартной конфигурации с таблицами и связями между таблиц?
 
Последнее редактирование модератором:
И ещё вопрос, пробовал кто-нибудь разворачивать эту CMS систему на NAS типо Synology или Qnap? Работает?
Пробовать не пробовал, но что может помешать? Посмотрите подходящий под ваш ARM Для просмотра ссылки Войди или Зарегистрируйся и ставьте. Тормоза наверное будут еще те, хорошо бы настроить кеширование sql-запросов.

На оф. сайте полно документации и примеров.
 
По поводу модулей. Бесплатно предлагают два модуля, которые состоят из файла с описанием структуры таблиц и опционально с файлом данных. Т.е. делаем вывод, весь модуль состоит из таблиц и данных. Дополнительный функционал прописывается в таблицах, в виде php функций (та еще дыра). Поэтому, пока только в теории, делаем следующее:
1. На оф. сайте регаем тестовый аккаунт;
2. Делаем backup чистой базы;
3. Устанавливаем нужный модуль на тестовые 3 дня;
4. Делаем backup;
5. Удаляем модуль;
6. Устанавливаем следующий модуль;
7. Делаем backup.

Далее скачиваем backup и либо пытаемся установить его на свою базу, либо делаем diff таблиц и после анализа собираем собственный json с необходимой структурой и данными.

Тестовый аккаунт не позволяет скачивать резервные копии... Это ограничение обходится элементарно: все файлы лежат в папке /backup/ с расширением .zip. Что делать дальше думаю понятно.

Возможно тоже самое работает и с конфигурациями, я не пробовал. Первое, что стоит попробовать – это восстановить резервную копию на свой сервер и посмотреть, что получится.

Отписывайтесь о результатах.
 
Накатил backup на локальный сервер – конфигурация встала на ура, с картинками и настройками (не забываем вычистить из sql, в самом конце, креденталсы чужого администратора и записать свои, а то потом могут быть сюрпризы). Дополнения таким макаром не встали, хотя в sql данные есть...
 
Отличная система, но где можно скачать? Ссылки не доступны
 
Короче при восстановление бэкапа с дополнениями, система ломится домой и проверяет валидность использования данного дополнения на конкретном хосте и если из дома этого не подтверждают, то дополнение удаляется. Проверки идут curl-ом, не через snoopy. Вызовов не много, payload не шифруется, можно замутить эмулятор на этом же хосте, прописав в /etc/hosts адреса нужных сервисов. Я наигрался, дальше копать не буду. Для себя решил, что проще конкретно под себя настроить нужные таблицы, чем ковырять чужие.
 
Развернул базу.
Ничего не менял внутри, только добавил склад.
Добавил товар на склад.
Сделал счёт на клиента.
При нажатии кнопки "Сформировать Расход", вылетает ошибка

Ошибка в вычислении.
Для просмотра ссылки Войди или Зарегистрируйся.Для просмотра ссылки Войди или Зарегистрируйся :
22: // а нет ли расхода по счету?
23: $rashod = data_select_array($changeTable3, "f7060=", $ID);
24: if ($rashod['id'] > 0) {
Ошибка SQL запроса:
SELECT * FROM cb_data3410 WHERE f7060=1
Table 'dvatlasr_cb.cb_data3410' doesn't exist

Таблицы такой действительно нет. Внутрянку не конфигурил от слова СОВСЕМ.

Что за прикол? Было у кого?
 
Назад
Сверху