Jump to content
SpravkaCRM.ru - Ваш справочник по CRM

Leaderboard

The search index is currently processing. Leaderboard results may not be complete.

Popular Content

Showing content with the highest reputation since 02/21/18 in all areas

  1. 2 points
    Добрый день! Попробуйте сделать восстановление ролей в админке в пункте Восстановление. Эта штука добавляет новые модули в кеш доступных действий. Без этого восстановления новый модуль будет доступен (скорее всего) только админам. Если не получится будем дальше думать.
  2. 1 point
    Добрый день! Общий принцип: исключаем файлы, которые являются автогенерируемыми (папка cache, папки Ext в /custom/modules) и так далее. Так же исключаем загружаемые файлы, историю изменений metadata-файлов, индексы поиска, служебные файлы разных GUI и прочее. Я сталкивался с тем, что некоторые системные администраторы пытаются засунуть в .gitignore core-файлы типа того, что находится в папках Zend, XTemplate и так далее обосновывая тем, что не надо эти файлы править, значит и в гите им делать нечего. Я против такого подхода. Считаю, что в git должны быть файлы, достаточные для корректного запуска SuiteCRM в том месте, где его развернули из git-репозитория. Вот файл .gitignore одного из проектов: *.log .DS_Store Thumbs.db /cache/* /.idea/* /config.php /config_override.php /tmp/ /upload/ /custom/screenshots/ /test_*.php /custom/blowfish/* /custom/history/* /custom/modulebuilder/* /custom/working/* /custom/application/Ext/ /custom/modules/*/Ext/ /custom/modules/unified_search_modules_display.php /modules/AOD_Index/Index/* /.htaccess /custom/client_secret.json /custom/appsactivity-php-quickstart.json Такой подход комфортно работает если изменения структуры модулей делать не в студии, а вручную. Поля, добавляемые в студии, вносят meta-данные (vardef) в таблицу в БД, а она через git не обновляется. А если будете расширять список полей вручную, то вполне сможете работать через git запуская быстрое восстановление. Не претендую на супер-универсальность и что это решение самое лучшее, но вот одна из реализаций, которой пользуемся наиболее часто: Ветки + сервера: В git-репозитории создаем ветку master. Эта ветка содержит состояние файлов на PROD-сервере В git-репозитории создаем ветку test. Эта ветка содержит состояние файлов на TEST-сервере В git-репозитории создаем произвольное кол-во веток с конкретными задачами, находящимися в работе (по 1-ой ветке на каждую задачу) Процесс работы: Берем очередную задачу в работу: из master делаем ветку с задачей. работаем в ней. Как правило это удаленная ветка, так как в процессе работы над задачей часто работают несколько человек. После выполнения задачи она окончательно пушится на сервер. Делается мерж ветки test и ветки с задачей. На тестовом сервере делаем pull ветки test и проверяем работу. Если все норм, то ветка с задачей мержится с веткой master Если что то не норм, то ветка с задачей просто уходит в доработку. Ветки test и master никогда не мержатся. Все происходит именно путем мержа ветки с задачей. P.S. надо видимо уведомления где то тут найти чтобы на почту приходили... а то задача то наверное уже не актуальна ... больше для тех, кто по поиску потом придет...
  3. 1 point
    Ну при наличии неограниченных возможностей они только и будут расти ))))
  4. 1 point
  5. 1 point
    По умолчанию заголовок страниц с записями модулей в SuiteCRM отображается без хлебных крошек. По этому зачастую сходу сложно понять, где находишся (в каком модуле) при просмотре карточки. Плюс если хочешь уйти на список записей модуля приходится находить этот модуль в верхнем меню и нажимать на него: Конечно ничего страшного, но хочется побыстрее/понагляднее. Вот что вышло: На мой взгляд так удобнее ориентироваться в системе: сразу видишь где ты находится в настоящий момент. Плюс с навигацией немного попроще. А достигается это очень просто: нужно найти файл include/MVC/View/SugarView.php, в нем найти функцию protected function _getModuleTitleParams($browserTitle = false) а в ней такие строки: case 'EditView': if(!empty($this->bean->id) && (empty($_REQUEST['isDuplicate']) || $_REQUEST['isDuplicate'] === 'false')) { $params[] = "<a href='index.php?module={$this->module}&action=DetailView&record={$this->bean->id}'>".$this->bean->get_summary_text()."</a>"; $params[] = $GLOBALS['app_strings']['LBL_EDIT_BUTTON_LABEL']; } else $params[] = $GLOBALS['app_strings']['LBL_CREATE_BUTTON_LABEL']; break; case 'DetailView': $beanName = $this->bean->get_summary_text(); $params[] = $beanName; break; } и в них добавить $params[] = '<A href="index.php?module=' . $this->module . '&action=index">' . $GLOBALS['app_list_strings']['moduleList'][$this->module] . '</A>'; чтобы получилось вот так: /** * Returns an array composing of the breadcrumbs to use for the module title * * @param bool $browserTitle true if the returned string is being used for the browser title, meaning * there should be no HTML in the string * @return array */ protected function _getModuleTitleParams($browserTitle = false) { $params = array($this->_getModuleTitleListParam($browserTitle)); //$params = array(); if (isset($this->action)){ switch ($this->action) { case 'EditView': if(!empty($this->bean->id) && (empty($_REQUEST['isDuplicate']) || $_REQUEST['isDuplicate'] === 'false')) { $params[] = '<A href="index.php?module=' . $this->module . '&action=index">' . $GLOBALS['app_list_strings']['moduleList'][$this->module] . '</A>'; $params[] = "<a href='index.php?module={$this->module}&action=DetailView&record={$this->bean->id}'>".$this->bean->get_summary_text()."</a>"; $params[] = $GLOBALS['app_strings']['LBL_EDIT_BUTTON_LABEL']; } else $params[] = $GLOBALS['app_strings']['LBL_CREATE_BUTTON_LABEL']; break; case 'DetailView': $params[] = '<A href="index.php?module=' . $this->module . '&action=index">' . $GLOBALS['app_list_strings']['moduleList'][$this->module] . '</A>'; $beanName = $this->bean->get_summary_text(); $params[] = $beanName; break; } } return $params; } В результате во всех модулях в режиме редактирования и просмотра появятся хлебные крошки с названием модуля и возможностью перейти на список его записей Просмотреть полную запись
×