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

Alexeina66

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

Представляю вашему вниманию 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 (ссылка на пост).
 
Что то у меня не устанавливается свежий дистрибутив, вываливает несколько ошибок. Видимо неправильно отрабатывает дамп базы

Достал дистрибутив скачанный 14 июня - установился нормально

да что-то подправили разработчики, такая же ситуация была, но ревизия обновилась и вроде все работает, посмотрим пару суток что будет
 
Как установить КБ 3.0.0 последней ревизии с кривым дампом базы.
Начинаем устанавливать, как обычно. После того, как процесс установки отлетит с ошибкой SQL-запроса, заходим в phpMyAdmin и переименовываем таблицы:
Код:
cb_tmp_mail_threads в cb_mail_threads
cb_tmp_mail_queue в cb_mail_queue
Теперь редактируем файл /include/config.php, меняем параметр installed с 1 на 0.
Запускаем установку заново.

Ревизия 19333 от 2018-06-22.
 
Итог такой. Всё работает, break; и размер файла ни на что не влияют. Один из постоянных клиентов сказал, что в первых ревизиях КБ 2.0.11 было так же: самопроизвольно обновлялась ревизия без разрешения, и поэтому ключ слетал. Просто надо было подождать выпуска стабильной ревизии.

Ключ для КБ 3.0.0 Тот же старый ключ, только добавлена активация модуля API, больше ничего не менялось.
 
Последнее редактирование:
мутный какой-то код... разве функция не должна завершиться вместе с return $this; ?
в ранних версиях патченного файла break; не было, но все работало

просто хочется разобраться
 
разве функция не должна завершиться вместе с return $this; ?
хм.. да, действительно. всегда думал, что там какая-то магия, завязанная на switch case return break. но нет, сейчас посмотрел php.net и SO, это просто good practice, но по факту необязательно.
в ранних версиях патченного файла break; не было, но все работало
да, помню такое. тогда вариант такой. дело в размере файла, который я предпочитаю сохранять методом удаления нужного количества байт из комментариев. сейчас на тестовом сервере 3 клиентских базы, удалю break с сохранением размера файла и без сохранения размера, посмотрим, что будет. пока все 3 КБ работают, ничего не слетало.
 
Пока что всё работает, ничего не слетало. Пост будет обновлён по мере поступления новой информации.

Тесты производятся вот с таким ключом:Тот же старый ключ, только добавлена активация модуля API, больше ничего не менялось.
КБ 3.0.0, ревизия 19333 от 2018-06-22.
Да действительно подтверждаю это работает!
Ключ для активации
Прям на рабочем двиге без лишней суеты, ключ не принимал не один, а тут бац и готово!
ДА вот еще вопросик - а если мы поставим защиту от перезаписи на сам файл(лы) что бы обновы не проходили? Возможно ли это?!
 
Пока что всё работает, ничего не слетало. Пост будет обновлён по мере поступления новой информации.

Тесты производятся вот с таким ключом:Тот же старый ключ, только добавлена активация модуля API, больше ничего не менялось.
КБ 3.0.0, ревизия 19333 от 2018-06-22.
Приветствую, конечно понимаю что дурацкий вопрос, где я пропустил установку это ключ. Повторите плиз.
 
Приветствую, конечно понимаю что дурацкий вопрос, где я пропустил установку это ключ. Повторите плиз.
Что именно вы хотите узнать, как установить ключ?
Если да
C "0" = Устанавливаете движок - обновляете до текущей версии 19333 далее - меняете вот этот файл постом выше выложен актуальный - скачаете. Далее берем ключ от старой версии и активируем crm!
Если установлен двиг: Деактивируете CRM далее - меняете этот же файл там же, и вводите тот же ключ!
Как то так!
 
ДА вот еще вопросик - а если мы поставим защиту от перезаписи на сам файл(лы) что бы обновы не проходили? Возможно ли это?!
да, возможно. для работы программы требуются права на запись в следующие каталоги
Код:
backup
cache
files
runtime
temp
templates_c
на всё остальное можно поставить права только на чтение. при этом перестанет работать обновление ревизии.
Приветствую, конечно понимаю что дурацкий вопрос, где я пропустил установку это ключ. Повторите плиз.
Для просмотра ссылки Войди или Зарегистрируйся
 
Последнее редактирование:
А почему бы не пользоваться Битриксом например. Или что то экзотическое нужно?
 
Назад
Сверху