LXF91:SugarCRM
|
|
|
- Рафинированный SugarCRM. Устанавливаем и настраиваем открытую CRM-систему.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Содержание |
SugarCRM: Как его настроить
ЧАСТЬ 2: Разбираясь с конфигурацией, Марк Бэйн покажет, как сломить упрямство SugarCRM и не сломать приложение (окончательно).
Итак, вы уже установили SugarCRM на ваш чистенький сервер или, на худой конец, ознакомились с демо-версией этой системы в Интернете (см. ссылку во врезке). Думаю, теперь вы согласитесь, что она вполне готова удовлетворить все потребности стандартного пользователя.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
Однако вы-то, наверняка, нестандартный пользователь! И наверняка программа выглядит не так или говорит с вами на разных диалектах. Да и вообще, хоть она и подходит для вашего бизнеса, но не
совсем. А раз так, поговорим сегодня о том, как настроить SugarCRM
в соответствии с потребностями пользователя.
Смотреть и видеть
Обратите внимание на выпадающий список с надписью «Тема» (Theme) в нижней части экрана SugarCRM в вашем браузере. С его помощью можно менять внешний вид программы, выбирая одну из тем: их довольно много, от стильной и профессиональной White Sands до совершенно несуразной Awesome 80s (впрочем, это мое личное мнение: бывают ведь и любители розового и зеленого текста на черном фоне).
Теперь можно перелицевать SugarCRM. Выбор не слишком впечатляет? Тогда создадим собственную тему. Не с нуля, конечно: возьмем одну из существующих и подправим ее.
Напомню, в прошлый раз мы загрузили архив со свежей версией SugarCRM (на сегодняшний день это 4.5.0h) с сайта программы и распаковали его содержимое в корень web-сервера (или в каталог по вашему вкусу), а потом заменили имя каталога SugarOSFull-4.5.0h на более благозвучное.
Откройте окно терминала, перейдите (командой cd) в каталог с SugarCRM и наберите ls. На экране появится содержимое директории: подкаталоги и файлы. В глаза сразу же бросается, что файлы все написаны на PHP (удивляться нечему: на PHP написана и сама SugarCRM). Но нам пока не до этого. Темы находятся в подкаталоге themes, вот его содержимое:
bainm@hector:/www/lxf > ls themes Awesome80s Links Sugar BoldMove Love SugarClassic Default Paradise SugarLite Default Retro Sunset FinalFrontier RipCurl VintageSugar GoldenGate Shred WhiteSands
Вы уже поняли: в каждом из подкаталогов – файлы соответствующей темы. Создадим еще одну.
Создать новую тему
Для начала скопируем папку с темой, взятой за основу для модификации, в новый каталог, например:
bainm@hector:/www/lxf/themes> cp -r SugarClassic lxf
Разберемся, какие файлы используются для создания темы:
bainm@hector:/www/lxf/themes> ls lxf calendar-win2k-cold-1.css header.html menu.js config.php header.php navigation.css cookie.js images style.css footer.php layout_utils.php
Самый главный из них – файл config.php. Именно он дает системе SugarCRM доступ к остальным файлам темы. В config.php много чего понаписано, но нам интересны две следующие строки:
$theme_name = “Sugar Classic”; $theme_description = “Classic Sugar theme”;
Мы их отредактируем – заменим название темы и ее описание:
$theme_name = “Linux Format”; $theme_description = “Linux Format theme”;
При следующем входе в систему вновь созданная тема Linux Format появится в списке тем. Пока она ничем не отличается от Classic SugarCRM, ведь мы изменили только имя. Пришла пора настоящих реформ!
Забраться в CSS
Теперь, когда мы создали новую тему и сообщили о ней программе, можно придать ей индивидуальный стиль. Для этого нужно кое-что поменять в файле… ясное дело, style.css.
В нем (согласно его расширению – Сascading Style Sheet, каскадная таблица стилей) находится таблица стилей, задающая цвета, шрифты и прочее. Наш урок посвящен не таблицам стилей, и CSS как таковыми мы заниматься не будем: рассмотрим лишь небольшой пример, а в остальном вы разберетесь сами.
Рассмотрим раздел, в котором определяется, как отображать гиперссылки:
a:link, a:visited { color: #444444; font-size: 11px; text-decoration: underline; } a:hover { color: #666666; text-decoration: underline; }
Все это означает, что гиперссылки – как те, что вы уже видели, так и непосещенные – отображаются одним и тем же серым цветом, причем при наведении курсора на ссылку оттенок серого меняется на более светлый; и все ссылки всегда подчеркнуты. Давайте внесем некоторое разнообразие: добавим после строки text-decoration в разделе a:hover такую строку:
background-color:yellow; /*highlight the link*/
Чтобы увидеть результат этих изменений, не нужно входить в систему заново: просто обновите страничку. Теперь, при наведении курсора, фон гиперссылки меняется на желтый.
У тех, кто имел дело с таблицами стилей CSS, наверняка уже есть идеи по настройке внешнего вида темы на свой вкус. С остальными я поделюсь парой советов. Чтобы все ссылки отображались заглавны- ми буквами, добавим строку в раздел a:link:
text-transform: uppercase;
Может быть, вы не стремитесь к супер-эффектам, а ограничитесь заменой основных цветов экрана. Тогда загляните в раздел body. Он предоставляет немало возможностей – например, позволяет указать цвет фона страницы:
background-color: yellow;
Немного поэкспериментировав, вы добьетесь своего идеала. Можете и Awesome 80s привести в приличный вид. Однако ваши пользователи больше заинтересованы в том, чтобы SugarCRM говорила с ними на понятном им языке; и вам по силам им помочь.
Адаптироваться к бизнесу
Взглянув на экран SugarCRM, вы приметите ряд вкладок. Некоторые из них пригодятся в любой организации: Home (Главная), Contacts (Контакты), Notes (Заметки), Meetings (Встречи), Calendar (Календарь) и Tasks (Задачи). Есть и другие вкладки, которые могут использоваться торговыми организациями для учета товарооборота: Opportunities (Возможности), Cases (Объекты) и Leads (Направления).
Хорошо, если внутри вашей организации используется та же терминология. А если нет? Приучать коллектив использовать стандартные термины SugarCRM вместо тех, что они впитали с молоком матери? Погодите смеяться: сам знаю, что это утопия. Переламывать себя сотрудникам незачем, гораздо проще кое-что переделать в SugarCRM.
Представим себе фирму проката автомобилей. Вместо Направлений у них New business (Новый бизнес), вместо вкладки Возможности они используют Inquiries (Запросы), а вместо вкладки Объекты – Bookings (Бронирования). На этом языке они изъяснялись последние 20 лет, и будут продолжать изъясняться еще 20 лет. Уж лучше поменять названия вкладок!
К счастью, ничего сложного в этом нет – едва ли вы не сумеете отредактировать пару PHP-скриптов, сейчас скажу каких. Но сначала знайте: лучше этого не делать! И вот почему: при установке новой версии программы эти файлы могут быть перезаписаны, и вам придется вносить изменения заново. Так или иначе, файл перед вами: include/language/en_us.lang.php. Найдите в нем раздел, содержащий
moduleList’ => array ( ‘Home’ => ‘Home’, ‘Dashboard’ => ‘Dashboard’, ‘Contacts’ => ‘Contacts’, ‘Accounts’ => ‘Accounts’, ‘Opportunities’ => ‘Opportunities’, ‘Cases’ => ‘Cases’, ‘Notes’ => ‘Notes’, ‘Calls’ => ‘Calls’, ‘Emails’ => ‘Emails’, ‘Meetings’ => ‘Meetings’, ‘Tasks’ => ‘Tasks’, ‘Calendar’ => ‘Calendar’, ‘Leads’ => ‘Leads’,
Этот массив представляет собой список вкладок. Как явствует из его имени, вкладки в SugarCRM называются «модулями», поскольку каждая реализуется отдельным модулем, но об этом чуть позже. Вы, поди, недоумеваете: как изменить названия вкладок, если нельзя редактировать файл, в котором они хранятся? Легко: создадим специальный файл, содержащий обновленные названия вкладок.
Обратите внимание на папку custom внутри каталога SugarCRM: в ней мы и займемся языковедением. Как вы уже сообразили, нам нужен файл custom/include/language/en_us.lang.php.
Я говорил вам, что этот урок – не про CSS; добавлю, что он и не про PHP. Достаточно сказать, что создается двумерный массив, он содержит названия вкладок, и в нем можно переименовывать существующие вкладки и добавлять новые. Для переименования трех вышеупомянутых вкладок достаточно добавить в этот файл следующие строки:
$app_list_strings[‘moduleList’][‘Leads’] = ‘New Business’; $app_list_strings[‘moduleList’][‘Opportunities’] = ‘Inquiries’; $app_list_strings[‘moduleList’][‘Cases’] = ‘Bookings’;
Осталось только сохранить его и обновить страничку в браузере. На месте трех старых вкладок появились новые – New Business, Inquiries и Bookings.
Вроде неплохо, но откройте любую из этих вкладок – и увидите, что содержимое-то осталось прежним. Например, на вкладке New Business (бывшей Leads) остались ссылки ‘Create Lead’, ‘List Leads’ и ‘New Lead’. Тут ваши сотрудники, пожалуй, окончательно запутаются! Значит, работа по настройке не окончена.
Мы уже знаем, что названия вкладок для текущего языка хранятся в файле include/language/en_us.lang.php, и изменить их можно через файл custom/include/language/en_us.lang.php, прописав в нем новые названия вкладок. Аналогично, каждая вкладка-модуль тоже имеет собственный языковой файл.
Вернемся в папку SugarCRM и найдем каталог modules. Именно в нем хранятся модули:
bainm@hector:/www/lxf> ls modules Accounts ACL ACLActions ACLRoles Activities …
и т.д. Модуль Leads расположен в одноименном каталоге. Как и остальные модули, реализующие вкладки, этот модуль содержит свои языковые настройки в папке language:
bainm@hector:/www/lxf> ls modules/Leads/language en_us.help.DetailView.html en_us.help.index.html en_us.help.EditView.html en_us.lang.php
Ну, вы поняли: файл en_us.lang.php содержит определения строковых констант для текущего языка.
bainm@hector:/www/lxf> grep -i lead modules/Leads/language/ en_us.lang.php| head -10 ‘ERR_DELETE_RECORD’ => ‘en_us A record number must be specified to delete the lead.’, ‘LBL_BACKTOLEADS’ => ‘Back To Leads’, ‘LBL_BUSINESSCARD’ => ‘Convert Lead’, ‘LBL_CONTACT_INFORMATION’ => ‘Lead Information’, ‘LBL_CONTACT_NAME’ => ‘Lead Name:’, ‘LBL_CONTACT_OPP_FORM_TITLE’ => ‘Lead-Opportunity:’, ‘LBL_CONTACT’ => ‘Lead:’, ‘LBL_CONVERTLEAD_BUTTON_KEY’ => ‘V’, ‘LBL_CONVERTLEAD_TITLE’ => ‘Convert Lead [Alt+V]’, ‘LBL_CONVERTLEAD’ => ‘Convert Lead’,
Как и основной файл языка системы, его редактировать не следует. Есть даже строки, менять которые категорически не рекомендуется:
// НЕ ПОРТИТЕ ЭТИ СТРОКИ: ОНИ ЗАДАЮТ СООТВЕТСТВИЯ ‘db_last_name’ => ‘LBL_LIST_LAST_NAME’, ‘db_first_name’ => ‘LBL_LIST_FIRST_NAME’, ‘db_title’ => ‘LBL_LIST_TITLE’, ‘db_email1’ => ‘LBL_LIST_EMAIL_ADDRESS’, ‘db_account_name’ => ‘LBL_LIST_ACCOUNT_NAME’, ‘db_email2’ => ‘LBL_LIST_EMAIL_ADDRESS’, //КОНЕЦ ЗАПРЕТНЫХ СТРОК
Снова создадим файл custom/modules/Leads/language/en_us.lang.php с языковыми настройками.
- Метамодернизм в позднем творчестве В.Г. Сорокина
- ЛитРПГ - последняя отрыжка постмодерна
- "Ричард III и семиотика"
- 3D-визуализация обложки Ridero создаем обложку книги при работе над самиздатом.
- Архитектура метамодерна - говоря о современном искусстве, невозможно не поговорить об архитектуре. В данной статье будет отмечено несколько интересных принципов, характерных для построек "новой волны", столь притягательных и скандальных.
- Литература
- Метамодерн
- Рокер-Прометей против изначального зла в «Песне про советскую милицию» Вени Дркина, Автор: Нина Ищенко, к.ф.н, член Союза Писателей ЛНР - перепубликация из журнала "Топос".
- Как избавиться от комаров? Лучшие типы ловушек.
- Что делать если роблокс вылетает на windows
- Что делать, если ребенок смотрит порно?
- Почему собака прыгает на людей при встрече?
- Какое масло лить в Задний дифференциал (мост) Visco diff 38434AA050
- О чем может рассказать хвост вашей кошки?
- Верветки
- Отчетность бюджетных учреждений при закупках по Закону № 223-ФЗ
- Срок исковой давности как правильно рассчитать
- Дмитрий Патрушев минсельхоз будет ли преемником Путина
- Кто такой Владислав Поздняков? Что такое "Мужское Государство" и почему его признали экстремистским в России?
- Как правильно выбрать машинное масло в Димитровграде?
- Как стать богатым и знаменитым в России?
- Почему фильм "Пипец" (Kick-Ass) стал популярен по всему миру?
- Как стать мудрецом?
- Как правильно установить FreeBSD
- Как стать таким как Путин?
- Где лучше жить - в Димитровграде или в Ульяновске?
- Почему город Димитровград так называется?
- Что такое метамодерн?
- ВАЖНО! Временное ограничение движения автотранспортных средств в Димитровграде
- Тарифы на электроэнергию для майнеров предложено повысить
<?php $lead_single = ‘New Business’; $lead_title = $lead_single . ‘es’; $mod_strings[‘LBL_BACKTOLEADS’] = ‘Back To ‘ . $lead_title; $mod_strings[‘LBL_DEFAULT_SUBPANEL_TITLE’] = $lead_title; $mod_strings[‘LBL_DUPLICATE’] = ‘Similar ‘ . $lead_title; $mod_strings[‘LBL_LIST_MY_LEADS’] = ‘My ‘ . $lead_title; $mod_strings[‘LBL_MODULE_NAME’] = $lead_title; $mod_strings[‘LBL_MODULE_TITLE’] = $lead_title . ‘: Home’; $mod_strings[‘LBL_SELECT_CHECKED_BUTTON_LABEL’] = ‘Select Checked ‘ . $lead_title; $mod_strings[‘LBL_SELECT_CHECKED_BUTTON_TITLE’] = ‘Select Checked ‘ . $lead_title; $mod_strings[‘LNK_LEAD_LIST’] = $lead_title; $mod_strings[‘LBL_BUSINESSCARD’] = ‘Convert ‘ . $lead_single; $mod_strings[‘LBL_CONTACT_INFORMATION’] = $lead_single . ‘Information’; $mod_strings[‘LBL_CONTACT_NAME’] = $lead_single . ‘ Name:’; $mod_strings[‘LBL_CONTACT_OPP_FORM_TITLE’] = $lead_single . ‘- Opportunity:’; $mod_strings[‘LBL_CONTACT’] = $lead_single . ‘:’; $mod_strings[‘LBL_CONVERTLEAD_TITLE’] = ‘Convert ‘ . $lead_single . ‘ [Alt+V]’; $mod_strings[‘LBL_CONVERTLEAD’] = ‘Convert ‘ . $lead_single; $mod_strings[‘LBL_LEAD_SOURCE_DESCRIPTION’] = $lead_single . ‘Source Description:’; $mod_strings[‘LBL_LEAD_SOURCE’] = $lead_single . ‘ Source:’; $mod_strings[‘LBL_LIST_CONTACT_NAME’] = $lead_single . ‘Name’; $mod_strings[‘LBL_VIEW_FORM_TITLE’] = $lead_single . ‘View’; $mod_strings[‘LBL_LIST_FORM_TITLE’] = $lead_single . ‘ List’; $mod_strings[‘LBL_LIST_LEAD_SOURCE_DESCRIPTION’] = $lead_ single . ‘ Source Description’; $mod_strings[‘LBL_LIST_LEAD_SOURCE’] = $lead_single . ‘Source’; $mod_strings[‘LBL_NEW_FORM_TITLE’] = ‘New ‘ . $lead_single; $mod_strings[‘LBL_SEARCH_FORM_TITLE’] = $lead_single . ‘Search’; $mod_strings[‘LNK_NEW_LEAD’] = ‘Create ‘ . $lead_single; ?>
Сохраните этот файл и обновите текущую страницу в браузере. Но это еще не все. Нужно проверить, не содержат ли ссылок на этот модуль остальные модули. Например, в панели Mass Update на вкладке Opportunities (или Inquiries, если вы уже успели ее переименовать) остался текст ‘Lead Source:’. Беглый поиск в файле modules/Opportunities/language/en_us.lang.php выявит переменную, которую надо поместить в файл custom/modules/Opportunities/language/en_us.lang.php, чтобы поправить дело:
bainm@hector:/www/lxf> grep “Lead Source:” modules/Opportunities/language/en_us.lang.php ‘LBL_LEAD_SOURCE’ => ‘Lead Source:’,
Таким образом, в файлe n_us.lang.php для Opportunities нужно добавить следующую строку:
$mod_strings[‘LBL_LEAD_SOURCE’] = ‘New Business Source’;
Конечно, вручную менять значения переменных, раскиданных по разным файлам – не лучший способ, особенно если на презентации вашего продукта вам вдруг заявят: «Мы тут прикинули – вместо ‘New Business’ лучше написать ‘Fresh Business’».
Гораздо удобнее разместить все переменные в одном файле, например, custom/include/lxf_variables.php, а затем включать его, где понадобится. Ваши переменные могут выглядеть так:
<?php $lead_single = ‘New Business’; $lead_title = $lead_single . ‘es’; ?>
а в файле custom/modules/Opportunities/language/en_us.lang.php тогда появится следующий фрагмент кода:
<?php require_once(‘custom/ include/lxf_variables.php’); $mod_strings[‘LBL_LEAD_SOURCE’] = $lead_single . ‘ Source’; ?>
Но я предупреждал: данный урок – не про PHP.
Озаглавить окно браузера
Под конец урока займемся заголовком окна браузера. Сейчас он такой: “SugarCRM – Commercial Open Source CRM”. Это как-то слабо связано с нашим проектом. Чтобы изменить его, добавим в файл custom/include/language/en_us.lang.php строку, меняющую значение переменной LBL_BROWSER_TITLE:
$app_strings[‘LBL_BROWSER_TITLE’] = ‘LXF – Customizing SugarCRM’;
Обычным манером, сохраните этот файл и обновите страничку – заголовок окна браузера изменится.
Менять, все менять!
Наше маленькое исследование SugarCRM показало: нет ничего такого, что нельзя было бы переделать по своему вкусу. Все приложение – лишь набор скриптов PHP, взаимодействующих с базой данных. Мы увидели, как легко создать (и модифицировать) новую тему. Меняли мы только цвет и стили оформления, но в каждой папке с темой есть каталог images, содержащий применяемые этой темой изображения, и пользователь может заменить их на свои собственные (см. врезку), и даже удалить все темы, кроме собственной (это пригодится, например, при продвижении вашего брэнда).
А как там с ограничениями? Просто упражняться с SugarCRM можно безгранично: ведь это же свободное ПО (разве что, как полагается, не удаляйте и не модифицируйте файлы, не предусмотрев резервной копии).
Зато для применения программы в коммерческой деятельности нужно учитывать положения лицензии SugarCRM Public License (SPL), это вариант лицензии Mozilla Public License, версия 1.1. Там указано, что можно менять, а что нельзя. Исходный код открыт, и менять можно абсолютно все, но:
- 1 Измененные версии файлов должны быть общедоступны.
- 2 Измененная программа должна сопровождаться документацией, описывающей изменения.
- 3 К программе обязательно должна прилагаться копия лицензии SPL.
- 4 Не взывайте к фирме SugarCRM Inc, если их новый релиз будет несовместим с вашей версией.
И еще кое-что: согласно лицензии SPL, нужно обязательно сохранять логотип ‘Powered by SugarCRM’ и информацию об авторских правах в нижней части страницы. А в остальном – все ваше.
Полный текст лицензии можно найти на http://www.sugarcrm.com/crm/SPL.
На сегодня все. Надеюсь, я сумел показать, как легко настраивается SugarCRM, даже если ваши знания PHP минимальны. Итак, за настройку! LXF