Скрипт 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 (ссылка на пост).
 
Вот мое решение по активации работает. в архиве все от релиза до инструкции с файлами.
Oh my god! Это чёрная магия! Удивительно, что это вообще хоть как-то работает (сам не проверял). Если делали сами своими руками, то вопросов не имею - сделали всё, что смогли, понимаю. Если же кто-то на заказ вот такое сделал, то этот человек полный профан, возможно недобросовестный.
1) Snoopy не используется для активации уже много лет, манипуляции с этим файлом не имеют смысла. И вообще, это кусок из очень старого активатора с форума ru-board, который я же и выкладывал там лет 5-6 назад, уже не помню когда.
2) Очень странный способ решения проблем в common.php. Это вообще работает? Как будто только делает вид, что активирует. Ну не буду спорить, не хочу вникать в код.
3) Почему activate.php опять под ионкубом? Там что, шелл зашит?
4) При первом же обновлении это слетит, надо каждый раз патчить.

Но поставлю лайк за то, что выложили.
 
Последнее редактирование:
Но поставлю лайк за то, что выложили.
Да это работает!
Демку натяну с наглядным примером установки и использованием - единственное что ! система еще на доработке под СЦ ремонт техники - создаю аналог ремонлайн в другом дизайне - не для продажи и т.д. для себя!
Поэтому будет шаблон под СЦ - сделаю общий доступ под хайдом для дальнейшей Возможно общей доработке.
По срокам демо - обещать ничего не могу - работы много!
 
Подскажите пожалуйста, как в КБ реализовать дополнительные таблицы (например "Приказы") и если компаний несколько, то чтобы нумерация приказов была своя по каждой компании? По аналогии как счета работают. Искал, пробовал копировать вычисления, но ничего так и не получилось((( Кто может подсказать как настроить разные таблицы со своей нумерацией по разным компаниям? Очень срочно нужно.
Заранее очень благодарен!

И еще вопрос: Подскажите пожалуйста, при создании шаблона печати документа, не могу понять, как возможно подтягивать в печать шаблона подтаблицу? То есть например: создана таблица "Заказы" в самой таблице основная информация по заказчику и т.д., это в шаблон подтянуть без проблем можно, а вот подтаблицу (наименование" например, не могу понять, как возможно сделать, чтобы шаблон подтягивал? Тоже по аналогии как работает счет. 4 дня голову крошу

Еще момент заметил, что cron сам автоматом не срабатывает, хотя вроде включен. Не знаю, может где-то дополнительно нужно включать? Потому что оплату тестовую провожу через модуль Тинькофф или почту отправляю в КБ, и когда вручную cron запускаю, только потом тянет данные(

Update:
Отредактировать не могу уже сообщение, поэтому дополню так по этому вопрос. С нумерацией разобрался. Осталось только вот, подтаблицу как тянуть в шаблон печатный и крон совсем не работает.(((
 
Последнее редактирование:
Настройка cron описана в документации: Для просмотра ссылки Войди или Зарегистрируйся
Если используется шаред-хостинг, то нужно следовать инструкции от хостера. IDN-домен (на кириллице и т.п.) нужно записывать в виде punycode.
 
Настройка cron описана в документации: Для просмотра ссылки Войди или Зарегистрируйся
Если используется шаред-хостинг, то нужно следовать инструкции от хостера. IDN-домен (на кириллице и т.п.) нужно записывать в виде punycode.
Я понимаю, что достаю глупыми вопросами, но все же. Можете пожалуйста объяснить как для чайника, пример привезти. Как правильно.
punycode это просто совсем не понял.
P.S. причем заметил, что после установки крон работал, а вот сейчас перестало работать.


Ниже выложил скрин как настраиваю крон на стороне хостинга где сайт лежит, я так понимаю это не верно? потому что логи потом вот такие:
02.08.2023 16:21:02] "php7.4 ~/domains/ХХХХХХХХХХХ.ru/edit_cron.php > /dev/null" ""
[02.08.2023 16:21:02] "curl -s 'Для просмотра ссылки Войди или Зарегистрируйся' > /dev/null" ""
[02.08.2023 16:22:01] "curl -s 'Для просмотра ссылки Войди или Зарегистрируйся' > /dev/null" ""
[02.08.2023 16:22:02] "php7.4 ~/domains/ХХХХХХХХХХХ.ru/edit_cron.php > /dev/null" ""
[02.08.2023 16:23:02] "php7.4 ~/domains/ХХХХХХХХХХХ.ru/edit_cron.php > /dev/null" ""
[02.08.2023 16:23:02] "curl -s 'Для просмотра ссылки Войди или Зарегистрируйся' > /dev/null" ""
[02.08.2023 16:24:02] "php7.4 ~/domains/ХХХХХХХХХХХ.ru/edit_cron.php > /dev/null" ""
[02.08.2023 16:24:02] "curl -s 'Для просмотра ссылки Войди или Зарегистрируйся' > /dev/null" ""

Может кто сможет помочь настроить работу крона, я отблагодарю. Пожалуйста.
Нужен чтобы крон работал по уведомления, отправка на почту уведомлений, загрузка почты, крон Тинькоф, крон вацап

Помогите пожалуйста
 

Вложения

  • Скриншот от 2023-08-02 16-25-55.png
    Скриншот от 2023-08-02 16-25-55.png
    35,4 KB · Просмотры: 9
Последнее редактирование:
Новое задание

Задание wget -qO- https://mysite.ru/cron.php >/dev/null 2>&1
Комментарий без разницы
Минуты *
Часы *
Дни *
Месяцы *
Дни недели *


Всё, что показано на картинке, нужно не забыть удалить , там множество ошибок.

Осталось только вот, подтаблицу как тянуть в шаблон печатный
А в чём тут может быть проблема? Одно из самых простых действий в КБ. Вот я захожу в первый попавшийся шаблон печати и нажимаю на него, открывая на редактирование. Прокручиваю в конец страницы, там есть раскрывающийся список "Вставить в шаблон поле". Ставлю курсор в визуальном редакторе, куда вставить поле, выбираю его и нажимаю на кнопку ОК справа. Всё! Но есть подводный камень: элементы в этом списке не просто не отсортированы, но и набросаны туда в хаотичном порядке. Скорее всего, в поисках поля придётся прокрутить весь список до низа, оно может быть в самом неожиданном месте. Поля подтаблиц имеют имя "ИмяПодтаблицы.ИмяПоля" и вставляются в шаблон как переменная {$ИмяПодтаблицы.ИмяПоля}. В списке полей есть специальные элементы типа "ИмяПодтаблицы (подтаблица)". Если вставить его в редактор, то будет вставлена вся подтаблица. Всё просто.
 
Последнее редактирование:
Новое задание

Задание wget -qO- https://mysite.ru/cron.php >/dev/null 2>&1
Комментарий без разницы
Минуты *
Часы *
Дни *
Месяцы *
Дни недели *


Всё, что показано на картинке, нужно не забыть удалить , там множество ошибок.


А в чём тут может быть проблема? Одно из самых простых действий в КБ. Вот я захожу в первый попавшийся шаблон печати и нажимаю на него, открывая на редактирование. Прокручиваю в конец страницы, там есть раскрывающийся список "Вставить в шаблон поле". Ставлю курсор в визуальном редакторе, куда вставить поле, выбираю его и нажимаю на кнопку ОК справа. Всё! Но есть подводный камень: элементы в этом списке не просто не отсортированы, но и набросаны туда в хаотичном порядке. Скорее всего, в поисках поля придётся прокрутить весь список до низа, оно может быть в самом неожиданном месте. Поля подтаблиц имеют имя "ИмяПодтаблицы.ИмяПоля" и вставляются в шаблон как переменная {$ИмяПодтаблицы.ИмяПоля}. В списке полей есть специальные элементы типа "ИмяПодтаблицы (подтаблица)". Если вставить его в редактор, то будет вставлена вся подтаблица. Всё просто.
Спасибо большое. Крон заработал. Надеюсь он не стучит в кб. Пока тестирую, вроде норм работает.


Еще вопрос, может кто знает, как в внешней формы убрать ссылку на КБ (внизу)? скрин прилагаю.
 

Вложения

  • форма.png
    форма.png
    36,7 KB · Просмотры: 7
Последнее редактирование:
убрать ссылку на КБ
По идее, это должно само убираться отключением копирайта, но в КБ решили пихать рекламу. Можно удалить этот HTML-элемент из дерева DOM браузера с помощью вызова jQuery, сохранив его в вычисления Javascript внешней формы.
JavaScript:
$('.form-copyright').remove();
 
По идее, это должно само убираться отключением копирайта, но в КБ решили пихать рекламу. Можно удалить этот HTML-элемент из дерева DOM браузера с помощью вызова jQuery, сохранив его в вычисления Javascript внешней формы.
JavaScript:
$('.form-copyright').remove();
Если не сложно, можете простыми словами объяснить, для чайников))))) Это где-то в корне сайта нужно что то делать и корректировать какой-то файл?
 
Назад
Сверху