A few months ago, in version 7.5, many SalesAgility modules (AOP, AOW, etc.) were moved from the custom directory into the main modules directory. However, when creating a fresh install, the installer still creates files in the custom directory, specifically logic_hooks and vardefs definitions.
The following are the contents of the custom directory immediately after a fresh install of 7.7.6:
.:
total 32
drwxrwxr-x 7 www-data www-data 4096 Nov 8 13:29 ./
drwxr-xr-x 17 www-data www-data 4096 Nov 7 18:02 ../
drwxrwxr-x 3 www-data www-data 4096 Oct 17 14:17 application/
drwxrwxr-x 2 www-data www-data 4096 Oct 17 14:55 blowfish/
drwxrwxr-x 4 www-data www-data 4096 Nov 7 18:06 Extension/
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 include/
-rwxrwxr-x 1 www-data www-data 55 Oct 17 14:17 index.html*
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 modules/
./application:
total 12
drwxrwxr-x 3 www-data www-data 4096 Oct 17 14:17 ./
drwxrwxr-x 7 www-data www-data 4096 Nov 8 13:29 ../
drwxrwxr-x 3 www-data www-data 4096 Oct 17 14:17 Ext/
./application/Ext:
total 12
drwxrwxr-x 3 www-data www-data 4096 Oct 17 14:17 ./
drwxrwxr-x 3 www-data www-data 4096 Oct 17 14:17 ../
drwxrwxr-x 2 www-data www-data 4096 Oct 17 14:17 LogicHooks/
./application/Ext/LogicHooks:
total 12
drwxrwxr-x 2 www-data www-data 4096 Oct 17 14:17 ./
drwxrwxr-x 3 www-data www-data 4096 Oct 17 14:17 ../
-rwxrwxr-x 1 www-data www-data 1389 Nov 7 18:07 logichooks.ext.php*
./blowfish:
total 8
drwxrwxr-x 2 www-data www-data 4096 Oct 17 14:55 ./
drwxrwxr-x 7 www-data www-data 4096 Nov 8 13:29 ../
./Extension:
total 16
drwxrwxr-x 4 www-data www-data 4096 Nov 7 18:06 ./
drwxrwxr-x 7 www-data www-data 4096 Nov 8 13:29 ../
drwxrwxr-x 3 www-data www-data 4096 Oct 17 14:17 application/
drwxrws--- 10 www-data www-data 4096 Nov 7 18:07 modules/
./Extension/application:
total 12
drwxrwxr-x 3 www-data www-data 4096 Oct 17 14:17 ./
drwxrwxr-x 4 www-data www-data 4096 Nov 7 18:06 ../
drwxrwxr-x 3 www-data www-data 4096 Oct 17 14:17 Ext/
./Extension/application/Ext:
total 12
drwxrwxr-x 3 www-data www-data 4096 Oct 17 14:17 ./
drwxrwxr-x 3 www-data www-data 4096 Oct 17 14:17 ../
drwxrwxr-x 2 www-data www-data 4096 Oct 17 14:17 LogicHooks/
./Extension/application/Ext/LogicHooks:
total 12
drwxrwxr-x 2 www-data www-data 4096 Oct 17 14:17 ./
drwxrwxr-x 3 www-data www-data 4096 Oct 17 14:17 ../
-rwxrwxr-x 1 www-data www-data 1326 Oct 17 14:17 AOW_WorkFlow_Hook.php*
./Extension/modules:
total 40
drwxrws--- 10 www-data www-data 4096 Nov 7 18:07 ./
drwxrwxr-x 4 www-data www-data 4096 Nov 7 18:06 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 Accounts/
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 Cases/
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 Contacts/
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 Leads/
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Meetings/
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Opportunities/
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Project/
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Prospects/
./Extension/modules/Accounts:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ./
drwxrws--- 10 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 Ext/
./Extension/modules/Accounts/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 Vardefs/
./Extension/modules/Accounts/Ext/Vardefs:
total 24
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ../
-rwxr-xr-x 1 www-data www-data 117 Nov 7 18:06 sugarfield_jjwg_maps_address_c.php*
-rwxr-xr-x 1 www-data www-data 124 Nov 7 18:06 sugarfield_jjwg_maps_geocode_status_c.php*
-rwxr-xr-x 1 www-data www-data 113 Nov 7 18:06 sugarfield_jjwg_maps_lat_c.php*
-rwxr-xr-x 1 www-data www-data 113 Nov 7 18:06 sugarfield_jjwg_maps_lng_c.php*
./Extension/modules/Cases:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ./
drwxrws--- 10 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 Ext/
./Extension/modules/Cases/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 Vardefs/
./Extension/modules/Cases/Ext/Vardefs:
total 24
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ../
-rwxr-xr-x 1 www-data www-data 114 Nov 7 18:06 sugarfield_jjwg_maps_address_c.php*
-rwxr-xr-x 1 www-data www-data 121 Nov 7 18:06 sugarfield_jjwg_maps_geocode_status_c.php*
-rwxr-xr-x 1 www-data www-data 110 Nov 7 18:06 sugarfield_jjwg_maps_lat_c.php*
-rwxr-xr-x 1 www-data www-data 110 Nov 7 18:06 sugarfield_jjwg_maps_lng_c.php*
./Extension/modules/Contacts:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ./
drwxrws--- 10 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 Ext/
./Extension/modules/Contacts/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 Vardefs/
./Extension/modules/Contacts/Ext/Vardefs:
total 24
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ../
-rwxr-xr-x 1 www-data www-data 117 Nov 7 18:06 sugarfield_jjwg_maps_address_c.php*
-rwxr-xr-x 1 www-data www-data 124 Nov 7 18:06 sugarfield_jjwg_maps_geocode_status_c.php*
-rwxr-xr-x 1 www-data www-data 113 Nov 7 18:06 sugarfield_jjwg_maps_lat_c.php*
-rwxr-xr-x 1 www-data www-data 113 Nov 7 18:06 sugarfield_jjwg_maps_lng_c.php*
./Extension/modules/Leads:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ./
drwxrws--- 10 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 Ext/
./Extension/modules/Leads/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 Vardefs/
./Extension/modules/Leads/Ext/Vardefs:
total 24
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:06 ../
-rwxr-xr-x 1 www-data www-data 114 Nov 7 18:06 sugarfield_jjwg_maps_address_c.php*
-rwxr-xr-x 1 www-data www-data 121 Nov 7 18:06 sugarfield_jjwg_maps_geocode_status_c.php*
-rwxr-xr-x 1 www-data www-data 110 Nov 7 18:06 sugarfield_jjwg_maps_lat_c.php*
-rwxr-xr-x 1 www-data www-data 110 Nov 7 18:06 sugarfield_jjwg_maps_lng_c.php*
./Extension/modules/Meetings:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 10 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Ext/
./Extension/modules/Meetings/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 Vardefs/
./Extension/modules/Meetings/Ext/Vardefs:
total 24
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 117 Nov 7 18:07 sugarfield_jjwg_maps_address_c.php*
-rwxr-xr-x 1 www-data www-data 124 Nov 7 18:07 sugarfield_jjwg_maps_geocode_status_c.php*
-rwxr-xr-x 1 www-data www-data 113 Nov 7 18:07 sugarfield_jjwg_maps_lat_c.php*
-rwxr-xr-x 1 www-data www-data 113 Nov 7 18:07 sugarfield_jjwg_maps_lng_c.php*
./Extension/modules/Opportunities:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 10 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Ext/
./Extension/modules/Opportunities/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 Vardefs/
./Extension/modules/Opportunities/Ext/Vardefs:
total 24
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 121 Nov 7 18:07 sugarfield_jjwg_maps_address_c.php*
-rwxr-xr-x 1 www-data www-data 128 Nov 7 18:07 sugarfield_jjwg_maps_geocode_status_c.php*
-rwxr-xr-x 1 www-data www-data 117 Nov 7 18:07 sugarfield_jjwg_maps_lat_c.php*
-rwxr-xr-x 1 www-data www-data 117 Nov 7 18:07 sugarfield_jjwg_maps_lng_c.php*
./Extension/modules/Project:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 10 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Ext/
./Extension/modules/Project/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 Vardefs/
./Extension/modules/Project/Ext/Vardefs:
total 24
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 117 Nov 7 18:07 sugarfield_jjwg_maps_address_c.php*
-rwxr-xr-x 1 www-data www-data 124 Nov 7 18:07 sugarfield_jjwg_maps_geocode_status_c.php*
-rwxr-xr-x 1 www-data www-data 113 Nov 7 18:07 sugarfield_jjwg_maps_lat_c.php*
-rwxr-xr-x 1 www-data www-data 113 Nov 7 18:07 sugarfield_jjwg_maps_lng_c.php*
./Extension/modules/Prospects:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 10 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Ext/
./Extension/modules/Prospects/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 Vardefs/
./Extension/modules/Prospects/Ext/Vardefs:
total 24
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 118 Nov 7 18:07 sugarfield_jjwg_maps_address_c.php*
-rwxr-xr-x 1 www-data www-data 125 Nov 7 18:07 sugarfield_jjwg_maps_geocode_status_c.php*
-rwxr-xr-x 1 www-data www-data 114 Nov 7 18:07 sugarfield_jjwg_maps_lat_c.php*
-rwxr-xr-x 1 www-data www-data 114 Nov 7 18:07 sugarfield_jjwg_maps_lng_c.php*
./include:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 ./
drwxrwxr-x 7 www-data www-data 4096 Nov 8 13:29 ../
-rwxr-xr-x 1 www-data www-data 1340 Nov 7 18:06 tabConfig.php*
./modules:
total 68
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ./
drwxrwxr-x 7 www-data www-data 4096 Nov 8 13:29 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Accounts/
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 Calls/
drwxrws--- 3 www-data www-data 4096 Nov 8 13:26 Cases/
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Contacts/
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 Emails/
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 Home/
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Leads/
-rwxr-xr-x 1 www-data www-data 1376 Nov 7 18:07 logic_hooks.php*
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Meetings/
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Opportunities/
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Project/
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 Projects/
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 ProjectTask/
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Prospects/
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 Users/
./modules/Accounts:
total 16
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Ext/
-rwxr-xr-x 1 www-data www-data 1711 Nov 7 18:07 logic_hooks.php*
./modules/Accounts/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 Vardefs/
./modules/Accounts/Ext/Vardefs:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 510 Nov 7 18:07 vardefs.ext.php*
./modules/Calls:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 ./
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 408 Nov 7 18:06 logic_hooks.php*
./modules/Cases:
total 16
drwxrws--- 3 www-data www-data 4096 Nov 8 13:26 ./
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Ext/
-rwxr-xr-x 1 www-data www-data 2313 Nov 7 18:07 logic_hooks.php*
./modules/Cases/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 8 13:26 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 Vardefs/
./modules/Cases/Ext/Vardefs:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 498 Nov 7 18:07 vardefs.ext.php*
./modules/Contacts:
total 16
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Ext/
-rwxr-xr-x 1 www-data www-data 932 Nov 7 18:07 logic_hooks.php*
./modules/Contacts/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 Vardefs/
./modules/Contacts/Ext/Vardefs:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 510 Nov 7 18:07 vardefs.ext.php*
./modules/Emails:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 ./
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 427 Nov 7 18:06 logic_hooks.php*
./modules/Home:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 ./
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 248 Nov 7 18:06 dashlets.php*
./modules/Leads:
total 16
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Ext/
-rwxr-xr-x 1 www-data www-data 778 Nov 7 18:07 logic_hooks.php*
./modules/Leads/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 Vardefs/
./modules/Leads/Ext/Vardefs:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 498 Nov 7 18:07 vardefs.ext.php*
./modules/Meetings:
total 16
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Ext/
-rwxr-xr-x 1 www-data www-data 451 Nov 7 18:07 logic_hooks.php*
./modules/Meetings/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 Vardefs/
./modules/Meetings/Ext/Vardefs:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 510 Nov 7 18:07 vardefs.ext.php*
./modules/Opportunities:
total 16
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Ext/
-rwxr-xr-x 1 www-data www-data 1533 Nov 7 18:07 logic_hooks.php*
./modules/Opportunities/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 Vardefs/
./modules/Opportunities/Ext/Vardefs:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 526 Nov 7 18:07 vardefs.ext.php*
./modules/Project:
total 16
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Ext/
-rwxr-xr-x 1 www-data www-data 1115 Nov 7 18:07 logic_hooks.php*
./modules/Project/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 Vardefs/
./modules/Project/Ext/Vardefs:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 510 Nov 7 18:07 vardefs.ext.php*
./modules/Projects:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 ./
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 427 Nov 7 18:06 logic_hooks.php*
./modules/ProjectTask:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 ./
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 604 Nov 7 18:06 logic_hooks.php*
./modules/Prospects:
total 16
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 Ext/
-rwxr-xr-x 1 www-data www-data 677 Nov 7 18:07 logic_hooks.php*
./modules/Prospects/Ext:
total 12
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 Vardefs/
./modules/Prospects/Ext/Vardefs:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:07 ./
drwxrws--- 3 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 514 Nov 7 18:07 vardefs.ext.php*
./modules/Users:
total 12
drwxrws--- 2 www-data www-data 4096 Nov 7 18:06 ./
drwxrwxr-x 16 www-data www-data 4096 Nov 7 18:07 ../
-rwxr-xr-x 1 www-data www-data 430 Nov 7 18:06 logic_hooks.php*
I just noticed this solving a hard-to-find bug, that was popping up in the forums frequently, and which I was suffering from myself (#2237).
While the bugs will only affect specific people with specific upgrade/migration paths, there are a few reasons why I think we should be doing this differently:
The custom directory should be empty on systems that haven't been customized yet.
We should have a simple way of checking our installations against the standard install. This is normally done by looking up directories and files in Github, but these files are created by the installer, so they are not here on Github,and it is non-trivial to determine what the installer is writing, and where. If the files really need to be there, it would be better to include the complete files in the repository instead of having them created at install time.
This makes it terribly complicated to do migrations and move our own customizations (and add-ons we bought) from one system to another. (That's how I got my error in the first place, after moving the custom directory without accounting for everything I should have kept there. My initial system had all the SalesAgility modules in the custom directory, my new one didn't.) If we need to cherry-pick files to move, and lines inside those files (for example logic_hooks), migration gets harder, and riskier.
If the files can be moved to the modules directory, move them.
Wherever the files are, if possible have them in the Github repository, not created in the installer.
Note: if this looks like a mere "Suggestion", please consider that it is the problem behind several bugs that quite a few people are running into. Even if it's partly their fault, a change here could improve SuiteCRM's reliability in practical terms, and this is much needed.
@pgorod - Thank you for your suggestion, we will assess the possibility of including this in a future release.
To really integrate the SA modules into the base product, they would have their code in the base classes without relying on Logic Hooks (which are an extension mechanism).
Assuming that is too much work, and too risky, the only thing I think _could be considered_ (notice I am not too sure if it's a good idea) would be to change the routines loading Logic Hooks for this special case that are extension-modules-now-part-of-the-base-product.
These routines currently only search custom/modules/[module_name]/logic_hooks.php, but we could make them search first in modules/[module_name]/logic_hooks.php, and _then_ custom/modules/[module_name]/logic_hooks.php, and have all our SalesAgility hooks defined in the modules dir.
What if both files exist? I see two ways to go:
custom/modules overrides the one in modules. This is the default behavior for customizations in SuiteCRM. But it makes handling the user's own customizations more difficult, because they would get mixed with SalesAgility hook definitions.custom hooks with the same name and priority get to override their siblings in modules).I know this sounds like a lot of work but maybe it isn't so hard, and we would reconquer the clean separation of product/customizations that is so helpful for migrations and made SugarCRM so flexible and extensible.
@pgorod @shogunpol
Probably the best way forward on modules, is to implement a SugarCRM 7.x compatible REST v10 interface. This is the huge missing piece which would upgrade SuiteCRM to full module compatibility with all modules made for the current version of Sugar 7.x. How it works is, all modules (Sugar stock modules, SA stock AO modules, and third-party-created add-on custom modules) talk to the core CRM through the REST v10 interface. This way, the core is protected from the risk of runtime PHP, namespace, and other dangerous issues. Plus, the modules code environment is totally separated from the code environment of the SuiteCRM core, which is great for scalability, since the module code is fully able to run on a separate remote machine and work exactly the same as if the module ran on the same machine as the SuiteCRM core code.
That sounds great, but it's a big architectural overhaul, touching basically everything in the product, requiring changes in Studio etc... I was hoping for a much simpler change in this particular Issue.
(I admit I'm wasn't adopting a long-term vision, I was just pushing to tidy things up after the relocation of the SA modules)
The old interface could stay around and eventually get deprecated in a long time or maybe never to allow old style modules to continue to work. While the new REST v10 interface is what all the latest and greatest modules are built to talk to. REST close to the existing SOAP interface.
Yesterday I decided to take the time and install a fresh copy of SuiteCRM 7.7.9. I made a zip of the SuiteCRM download as it comes from Github, and then made another zip right after running the installer.
The idea was to get a full comparison of the two states of the directory tree, and thus allowing a full view of what changes the installer makes.
Besides the point of complicating migrations that I was discussing in this issue, there is another new issue (for me) related to this, which is: how to do proper source control on Git if you have to keep track of the upstream branch (which is uninstalled), but have your own local files in an installed state, and with a running SuiteCRM that you can change and debug.
I believe reducing the file differences between the not-installed and installed states of SuiteCRM would have multiple benefits all-round.
Here is the comparison output from Beyond Compare, just the changed stuff during installation:
Folder Compare
Produced: 21/01/2017 11:09:15
Mode: Right Orphans
Left base folder: C:\Users\Pgr\AppData\Local\Temp\master.zip\SuiteCRM-master
Right base folder: C:\Users\Pgr\AppData\Local\Temp\installed.zip\html
Name Size Name Size
-------------------------------------------------------------------------------------------
cache 4,601,779
+cache 0
|\modules 0
| \Schedulers 0
+htmlclean 128,288
|+CSS 28,868
<< ||\4.6.0,3838d777a6140cd22d911b32513217ab3e982665,1.ser 28,868
|+HTML 98,730
<< ||\4.6.0,8a7ee8623cf4c9a94e2d1b2aaad39ea50f4c0005,2.ser 98,730
|\URI 690
<< | \4.6.0,5cd4f715c2e490743efbc3cb9f726382a682dc0e,1.ser 690
+images 0
+include 2,219,537
|\javascript 2,219,537
<< | +sugar_field_grp.js 20,404
<< | +sugar_grp_emails.js 281,097
<< | +sugar_grp_jsolait.js 41,586
<< | +sugar_grp_project.js 41,315
<< | +sugar_grp_project_template.js 40,598
<< | +sugar_grp_quickcomp.js 158,050
<< | +sugar_grp_yui_widgets.css 26,922
<< | +sugar_grp_yui_widgets.js 306,603
<< | +sugar_grp_yui2.js 100,288
<< | +sugar_grp1.js 191,234
<< | +sugar_grp1_jquery.js 451,279
<< | \sugar_grp1_yui.js 560,161
+layout 0
+modules 1,607,612
|+Accounts 38,511
||+language 7,446
<< |||\en_us.lang.php 7,446
<< ||\Accountvardefs.php 31,065
|+ACLActions 3,474
<< ||\ACLActionvardefs.php 3,474
|+ACLRoles 3,133
<< ||\ACLRolevardefs.php 3,133
|+Administration 3,469
<< ||+Administrationvardefs.php 1,010
<< ||\UpgradeHistoryvardefs.php 2,459
|+Alerts 8,850
||+language 1,223
<< |||\en_us.lang.php 1,223
<< ||\Alertvardefs.php 7,627
|+AM_ProjectTemplates 15,470
||+language 4,254
<< |||\en_us.lang.php 4,254
<< ||\AM_ProjectTemplatesvardefs.php 11,216
|+AM_TaskTemplates 17,757
||+language 1,939
<< |||\en_us.lang.php 1,939
<< ||\AM_TaskTemplatesvardefs.php 15,818
|+AOBH_BusinessHours 8,878
||+language 1,415
<< |||\en_us.lang.php 1,415
<< ||\AOBH_BusinessHoursvardefs.php 7,463
|+AOD_Index 10,473
||+language 2,365
<< |||\en_us.lang.php 2,365
<< ||\AOD_Indexvardefs.php 8,108
|+AOD_IndexEvent 10,450
||+language 1,363
<< |||\en_us.lang.php 1,363
<< ||\AOD_IndexEventvardefs.php 9,087
|+AOK_Knowledge_Base_Categories 8,908
||+language 1,339
<< |||\en_us.lang.php 1,339
<< ||\AOK_Knowledge_Base_Categoriesvardefs.php 7,569
|+AOK_KnowledgeBase 15,044
||+language 1,728
<< |||\en_us.lang.php 1,728
<< ||\AOK_KnowledgeBasevardefs.php 13,316
|+AOP_Case_Events 9,556
||+language 1,423
<< |||\en_us.lang.php 1,423
<< ||\AOP_Case_Eventsvardefs.php 8,133
|+AOP_Case_Updates 11,551
||+language 1,598
<< |||\en_us.lang.php 1,598
<< ||\AOP_Case_Updatesvardefs.php 9,953
|+AOR_Charts 8,221
||+language 1,213
<< |||\en_us.lang.php 1,213
<< ||\AOR_Chartvardefs.php 7,008
|+AOR_Conditions 11,618
||+language 1,532
<< |||\en_us.lang.php 1,532
<< ||\AOR_Conditionvardefs.php 10,086
|+AOR_Fields 15,079
||+language 1,587
<< |||\en_us.lang.php 1,587
<< ||\AOR_Fieldvardefs.php 13,492
|+AOR_Reports 14,714
||+language 2,814
<< |||\en_us.lang.php 2,814
<< ||\AOR_Reportvardefs.php 11,900
|+AOR_Scheduled_Reports 9,942
||+language 1,929
<< |||\en_us.lang.php 1,929
<< ||\AOR_Scheduled_Reportsvardefs.php 8,013
|+AOS_Contracts 33,509
||+language 3,957
<< |||\en_us.lang.php 3,957
<< ||\AOS_Contractsvardefs.php 29,552
|+AOS_Invoices 35,975
||+language 8,515
<< |||\en_us.lang.php 8,515
<< ||\AOS_Invoicesvardefs.php 27,460
|+AOS_Line_Item_Groups 16,845
||+language 1,400
<< |||\en_us.lang.php 1,400
<< ||\AOS_Line_Item_Groupsvardefs.php 15,445
|+AOS_PDF_Templates 16,338
||+language 2,522
<< |||\en_us.lang.php 2,522
<< ||\AOS_PDF_Templatesvardefs.php 13,816
|+AOS_Product_Categories 12,547
||+language 1,749
<< |||\en_us.lang.php 1,749
<< ||\AOS_Product_Categoriesvardefs.php 10,798
|+AOS_Products 18,256
||+language 2,198
<< |||\en_us.lang.php 2,198
<< ||\AOS_Productsvardefs.php 16,058
|+AOS_Products_Quotes 23,416
||+language 2,620
<< |||\en_us.lang.php 2,620
<< ||\AOS_Products_Quotesvardefs.php 20,796
|+AOS_Quotes 38,542
||+language 8,486
<< |||\en_us.lang.php 8,486
<< ||\AOS_Quotesvardefs.php 30,056
|+AOW_Actions 9,199
||+language 1,404
<< |||\en_us.lang.php 1,404
<< ||\AOW_Actionvardefs.php 7,795
|+AOW_Conditions 10,187
||+language 986
<< |||\en_us.lang.php 986
<< ||\AOW_Conditionvardefs.php 9,201
|+AOW_Processed 11,401
||+language 1,882
<< |||\en_us.lang.php 1,882
<< ||\AOW_Processedvardefs.php 9,519
|+AOW_WorkFlow 15,348
||+language 1,717
<< |||\en_us.lang.php 1,717
<< ||\AOW_WorkFlowvardefs.php 13,631
|+Bugs 22,057
||+language 3,871
<< |||\en_us.lang.php 3,871
<< ||\Bugvardefs.php 18,186
|+Calls 28,045
||+language 6,126
<< |||\en_us.lang.php 6,126
<< ||\Callvardefs.php 21,919
|+Calls_Reschedule 10,337
||+language 1,432
<< |||\en_us.lang.php 1,432
<< ||\Calls_Reschedulevardefs.php 8,905
|+CampaignLog 9,214
<< ||\CampaignLogvardefs.php 9,214
|+Campaigns 47,165
||+language 29,216
<< |||\en_us.lang.php 29,216
<< ||\Campaignvardefs.php 17,949
|+CampaignTrackers 3,834
<< ||\CampaignTrackervardefs.php 3,834
|+Cases 29,725
||+language 5,857
<< |||\en_us.lang.php 5,857
<< ||\Casevardefs.php 23,868
|+Contacts 52,871
||+language 10,817
<< |||\en_us.lang.php 10,817
<< ||\Contactvardefs.php 42,054
|+Currencies 2,998
<< ||\Currencyvardefs.php 2,998
|+DocumentRevisions 5,331
<< ||\DocumentRevisionvardefs.php 5,331
|+Documents 23,879
||+language 6,300
<< |||\en_us.lang.php 6,300
<< ||\Documentvardefs.php 17,579
|+DynamicFields 3,525
<< ||\FieldsMetaDatavardefs.php 3,525
|+EAPM 14,559
||+language 4,107
<< |||\en_us.lang.php 4,107
<< ||\EAPMvardefs.php 10,452
|+EmailAddresses 2,049
<< ||\EmailAddressvardefs.php 2,049
|+EmailMan 4,673
<< ||\EmailManvardefs.php 4,673
|+EmailMarketing 5,474
<< ||\EmailMarketingvardefs.php 5,474
|+Emails 31,590
||+language 15,561
<< |||\en_us.lang.php 15,561
<< ||\Emailvardefs.php 16,029
|+EmailTemplates 9,139
||+language 2,849
<< |||\en_us.lang.php 2,849
<< ||\EmailTemplatevardefs.php 6,290
|+EmailText 2,586
<< ||\EmailTextvardefs.php 2,586
|+Employees 22,199
<< ||\Employeevardefs.php 22,199
|+Favorites 8,781
||+language 1,192
<< |||\en_us.lang.php 1,192
<< ||\Favoritesvardefs.php 7,589
|+FP_Event_Locations 13,515
||+language 1,684
<< |||\en_us.lang.php 1,684
<< ||\FP_Event_Locationsvardefs.php 11,831
|+FP_events 20,066
||+language 4,255
<< |||\en_us.lang.php 4,255
<< ||\FP_eventsvardefs.php 15,811
|+Import 5,674
<< ||+ImportMapvardefs.php 3,723
<< ||\UsersLastImportvardefs.php 1,951
|+Import_1 3,751
<< ||\ImportMapvardefs.php 3,751
|+Import_2 1,979
<< ||\UsersLastImportvardefs.php 1,979
|+InboundEmail 16,888
||+language 9,795
<< |||\en_us.lang.php 9,795
<< ||\InboundEmailvardefs.php 7,093
|+jjwg_Address_Cache 9,588
||+language 1,608
<< |||\en_us.lang.php 1,608
<< ||\jjwg_Address_Cachevardefs.php 7,980
|+jjwg_Areas 11,833
||+language 1,992
<< |||\en_us.lang.php 1,992
<< ||\jjwg_Areasvardefs.php 9,841
|+jjwg_Maps 28,461
||+language 11,115
<< |||\en_us.lang.php 11,115
<< ||\jjwg_Mapsvardefs.php 17,346
|+jjwg_Markers 12,906
||+language 1,931
<< |||\en_us.lang.php 1,931
<< ||\jjwg_Markersvardefs.php 10,975
|+Leads 52,380
||+language 12,029
<< |||\en_us.lang.php 12,029
<< ||\Leadvardefs.php 40,351
|+Meetings 29,100
||+language 6,789
<< |||\en_us.lang.php 6,789
<< ||\Meetingvardefs.php 22,311
|+MergeRecords 117
<< ||\MergeRecordvardefs.php 117
|+Notes 17,452
||+language 2,853
<< |||\en_us.lang.php 2,853
<< ||\Notevardefs.php 14,599
|+OAuthKeys 8,956
||+language 1,022
<< |||\en_us.lang.php 1,022
<< ||\OAuthKeyvardefs.php 7,934
|+OAuthTokens 5,040
<< ||\OAuthTokenvardefs.php 5,040
|+Opportunities 28,021
||+language 6,308
<< |||\en_us.lang.php 6,308
<< ||\Opportunityvardefs.php 21,713
|+OutboundEmailAccounts 11,128
<< ||\OutboundEmailAccountsvardefs.php 11,128
|+Project 23,136
||+language 7,387
<< |||\en_us.lang.php 7,387
<< ||\Projectvardefs.php 15,749
|+ProjectTask 18,715
||+language 3,280
<< |||\en_us.lang.php 3,280
<< ||\ProjectTaskvardefs.php 15,435
|+ProspectLists 9,793
||+language 2,206
<< |||\en_us.lang.php 2,206
<< ||\ProspectListvardefs.php 7,587
|+Prospects 38,000
||+language 8,622
<< |||\en_us.lang.php 8,622
<< ||\Prospectvardefs.php 29,378
|+Relationships 260,226
<< ||+relationships.cache.php 256,977
<< ||\Relationshipvardefs.php 3,249
|+Releases 2,386
<< ||\Releasevardefs.php 2,386
|+Reminders 9,872
||+language 715
<< |||\en_us.lang.php 715
<< ||\Remindervardefs.php 9,157
|+Reminders_Invitees 9,366
||+language 715
<< |||\en_us.lang.php 715
<< ||\Reminder_Inviteevardefs.php 8,651
|+Roles 2,391
<< ||\Rolevardefs.php 2,391
|+SavedSearch 4,059
||+language 1,051
<< |||\en_us.lang.php 1,051
<< ||\SavedSearchvardefs.php 3,008
|+Schedulers 7,676
||+language 0
<< ||+lastrun 10
<< ||\Schedulervardefs.php 7,666
|+SchedulersJobs 7,765
||+language 1,102
<< |||\en_us.lang.php 1,102
<< ||\SchedulersJobvardefs.php 6,663
|+SecurityGroups 13,624
||+language 4,800
<< |||\en_us.lang.php 4,800
<< ||\SecurityGroupvardefs.php 8,824
|+Spots 15,920
||+language 6,119
<< |||\en_us.lang.php 6,119
<< ||\Spotsvardefs.php 9,801
|+SugarFeed 12,335
||+language 3,867
<< |||\en_us.lang.php 3,867
<< ||\SugarFeedvardefs.php 8,468
|+Tasks 18,606
||+language 3,603
<< |||\en_us.lang.php 3,603
<< ||\Taskvardefs.php 15,003
|+TemplateSectionLine 8,470
||+language 1,421
<< |||\en_us.lang.php 1,421
<< ||\TemplateSectionLinevardefs.php 7,049
|+Trackers 4,193
<< ||\Trackervardefs.php 4,193
|+UserPreferences 1,882
<< ||\UserPreferencevardefs.php 1,882
|+Users 54,145
||+language 32,124
<< |||\en_us.lang.php 32,124
<< ||\Uservardefs.php 22,021
|\vCals 1,505
<< | \vCalvardefs.php 1,505
+pdf 0
+Relationships 332,602
<< |\relationships.cache.php 332,602
+smarty 18,612
|+cache 0
|+configs 0
|\templates_c 18,612
<< | +%%00^00F^00F5D2D7%%footer.tpl.php 4,793
<< | +%%04^047^047CC1D0%%login.tpl.php 7,590
<< | +%%28^287^2879BF3B%%_head.tpl.php 3,203
<< | +%%79^79D^79D9896D%%displayLoginJS.tpl.php 1,254
<< | \%%F9^F94^F946E606%%header.tpl.php 1,772
+themes 295,128
|+Suite7 0
|+SuiteP 294,976
||+css 281,215
<< |||+deprecated.css 2,193
<< |||+style.css 184,526
<< |||\yui.css 94,496
||+js 12,479
<< |||\style-min.js 12,479
<< ||\pathCache.php 1,282
|\SuiteR 152
<< | \pathCache.php 152
\xml 0
custom 4,946 custom 27,524
+Extension 1,326 +Extension 5,058
| |\modules 3,732
| | +Accounts 467
| | |\Ext 467
| | | \Vardefs 467
| << | | +sugarfield_jjwg_maps_address_c.php 117
| << | | +sugarfield_jjwg_maps_geocode_status_c.php 124
| << | | +sugarfield_jjwg_maps_lat_c.php 113
| << | | \sugarfield_jjwg_maps_lng_c.php 113
| | +Cases 455
| | |\Ext 455
| | | \Vardefs 455
| << | | +sugarfield_jjwg_maps_address_c.php 114
| << | | +sugarfield_jjwg_maps_geocode_status_c.php 121
| << | | +sugarfield_jjwg_maps_lat_c.php 110
| << | | \sugarfield_jjwg_maps_lng_c.php 110
| | +Contacts 467
| | |\Ext 467
| | | \Vardefs 467
| << | | +sugarfield_jjwg_maps_address_c.php 117
| << | | +sugarfield_jjwg_maps_geocode_status_c.php 124
| << | | +sugarfield_jjwg_maps_lat_c.php 113
| << | | \sugarfield_jjwg_maps_lng_c.php 113
| | +Leads 455
| | |\Ext 455
| | | \Vardefs 455
| << | | +sugarfield_jjwg_maps_address_c.php 114
| << | | +sugarfield_jjwg_maps_geocode_status_c.php 121
| << | | +sugarfield_jjwg_maps_lat_c.php 110
| << | | \sugarfield_jjwg_maps_lng_c.php 110
| | +Meetings 467
| | |\Ext 467
| | | \Vardefs 467
| << | | +sugarfield_jjwg_maps_address_c.php 117
| << | | +sugarfield_jjwg_maps_geocode_status_c.php 124
| << | | +sugarfield_jjwg_maps_lat_c.php 113
| << | | \sugarfield_jjwg_maps_lng_c.php 113
| | +Opportunities 483
| | |\Ext 483
| | | \Vardefs 483
| << | | +sugarfield_jjwg_maps_address_c.php 121
| << | | +sugarfield_jjwg_maps_geocode_status_c.php 128
| << | | +sugarfield_jjwg_maps_lat_c.php 117
| << | | \sugarfield_jjwg_maps_lng_c.php 117
| | +Project 467
| | |\Ext 467
| | | \Vardefs 467
| << | | +sugarfield_jjwg_maps_address_c.php 117
| << | | +sugarfield_jjwg_maps_geocode_status_c.php 124
| << | | +sugarfield_jjwg_maps_lat_c.php 113
| << | | \sugarfield_jjwg_maps_lng_c.php 113
| | \Prospects 471
| | \Ext 471
| | \Vardefs 471
| << | +sugarfield_jjwg_maps_address_c.php 118
| << | +sugarfield_jjwg_maps_geocode_status_c.php 125
| << | +sugarfield_jjwg_maps_lat_c.php 114
| << | \sugarfield_jjwg_maps_lng_c.php 114
| +include 1,340
| << |\tabConfig.php 1,340
\modules 2,074 \modules 19,580
+Accounts 2,221
|+Ext 510
||\Vardefs 510
<< || \vardefs.ext.php 510
<< |\logic_hooks.php 1,711
+Calls 408
<< |\logic_hooks.php 408
+Cases 2,811
|+Ext 498
||\Vardefs 498
<< || \vardefs.ext.php 498
<< |\logic_hooks.php 2,313
+Contacts 1,442
|+Ext 510
||\Vardefs 510
<< || \vardefs.ext.php 510
<< |\logic_hooks.php 932
+Emails 427
<< |\logic_hooks.php 427
+Home 248
<< |\dashlets.php 248
+Leads 1,276
|+Ext 498
||\Vardefs 498
<< || \vardefs.ext.php 498
<< |\logic_hooks.php 778
+Meetings 961
|+Ext 510
||\Vardefs 510
<< || \vardefs.ext.php 510
<< |\logic_hooks.php 451
+Opportunities 2,059
|+Ext 526
||\Vardefs 526
<< || \vardefs.ext.php 526
<< |\logic_hooks.php 1,533
+Project 1,625
|+Ext 510
||\Vardefs 510
<< || \vardefs.ext.php 510
<< |\logic_hooks.php 1,115
+Projects 427
<< |\logic_hooks.php 427
+ProjectTask 604
<< |\logic_hooks.php 604
+Prospects 1,191
|+Ext 514
||\Vardefs 514
<< || \vardefs.ext.php 514
<< |\logic_hooks.php 677
+Users 430
<< |\logic_hooks.php 430
<< \logic_hooks.php 1,376
install 899,917 install 900,218
<< \status.json 301
modules 50,127,967 modules 50,128,007
\AOD_Index 871,492 \AOD_Index 871,532
\Index 40
\Index 40
<< +read.lock.file 0
<< +segments.gen 20
<< +segments_1 20
<< \write.lock.file 0
upload 56 upload 2,659
<< \24e684c3-0674-cc93-d22f-588274697c29 2,603
<< .htaccess 2,371
<< config.php 9,959
<< install.log 34,663
<< php_errors.log 81,656
<< sugarcrm.log 247,702
<< suitecrm.log 6,937
-------------------------------------------------------------------------------------------
Not all this has the same implications. Many of these changes are harmless. For me the main points deserving attention would be:
include/SugarObjects/templates. I don't know if we should be bothered with this. Maybe yes to facilitate git source control as I explained above. But I am no expert with git...There's no reason why the files on github shouldn't download directly into the same exact folder locations on the running CRM server, the app really should be installable into an empty web folder on a server with just the command git clone https://github.com/salesagility/SuiteCRM. The only differences in files should be the files which are generated after the app runs for the first time:
config.php and config_override.phpWe have now set up a new home for suggestions at Trello. All github issues that were labeled 'suggestion' have been moved and will be closed. Certain ones will be progressed within the new Suggestion Box and may be re-opened.
Announcement of moving Suggestions:
https://suitecrm.com/forum/suggestion-box/13691-moving-suggestions-from-github-to
New SuiteCRM Suggestion Box
https://trello.com/b/Ht7LbMqw/suitecrm-suggestion-box
@samus-aran this is another one I would call a bug (as I mentioned in the end of my intial text). I had a hard time finding out what was wrong in my system and fixing it, and I've helped several other people in the forums with broken systems because of this.
Once the hook definitions fall out of place, it's really hard to diagnose and correct, especially if the person attempting it is not a developer.
@samus-aran this is another one I would call a bug (as I mentioned in the end of my intial text). I had a hard time finding out what was wrong in my system and fixing it, and I've helped several other people in the forums with broken systems because of this.
Once the hook definitions fall out of place, it's really hard to diagnose and correct, especially if the person attempting it is not a developer.
Even when the person is a developer, I figured out the Hook wasn't firing while using a debugger; however, I had no clue why it wasn't firing as I didn't expect a system module to need hooks in the custom directory which were missing. Also, there is no task or system process in place to rebuild these hooks.
Most helpful comment
@samus-aran this is another one I would call a bug (as I mentioned in the end of my intial text). I had a hard time finding out what was wrong in my system and fixing it, and I've helped several other people in the forums with broken systems because of this.
Once the hook definitions fall out of place, it's really hard to diagnose and correct, especially if the person attempting it is not a developer.