View ProcessQueueCommand.php
<?php
// Enrico Simonetti
// enricosimonetti.com
//
// 2017-12-15 on Sugar 7.9.2.0
// Sugar CLI command to run index processing without waiting for the scheduler
//
// Trigger reindex with: ./bin/sugarcrm search:reindex
// Process records by running either as a background process or with a cron: ./bin/sugarcrm elastic:process_records
View delete_orphans.php
<?php
// Enrico Simonetti
// enricosimonetti.com
//
// 2017-12-13 on Sugar 7.9.2.0
//
// CLI script to find and delete orphan records on the custom tables of Sugar modules
function usage($error = '') {
View CustomNotesFilterApi.php
<?php
// Enrico Simonetti
// enricosimonetti.com
//
// 2017-12-08 tested on Sugar 7.9.2.0
// Sample customised filter api to help find Notes that are related to multiple Contacts at the same time, with a custom many to many relationship
// eg: {{url}}/rest/v10/Notes?contact_id[]=<first id>&contact_id[]=<second id> will only return Notes that are related to both contacts at the same time
//
// file: custom/modules/Notes/clients/base/api/CustomNotesFilterApi.php
View notifications.js
// Enrico Simonetti
// enricosimonetti.com
//
// 2017-11-24 tested on Sugar 7.9.2.0
// Sample customised notifications view to increase Notifications polling and separate delays for Notifications from Meetings and Calls reminders
//
// IMPORTANT: Lowering the delay values through the configuration options will increase the frequency of the amount of requests completed to the server, for every user's open browser tab. You need to consider the server load implications and sizing requirements.
//
// file: custom/clients/base/views/notifications/notifications.js
View repair.php
<?php
// Enrico Simonetti
// enricosimonetti.com
//
// 2017-11-01 on Sugar 7.9.2.0
function usage($error = '') {
if(!empty($error)) print(PHP_EOL . 'Error: ' . $error . PHP_EOL);
print(' php ' . __FILE__ . ' --instance /full/path' . PHP_EOL);
View autoload_custom_redis_cache.php
<?php
// Enrico Simonetti
// enricosimonetti.com
//
// 2017-11-01 tested on Sugar 7.9.1.0
// Forcing custom Sugar Cache to autoload: https://gist.github.com/esimonetti/78999f4dfbac22fd26bab8453a0ed149
//
// file: custom/Extension/application/Ext/Include/autoload_custom_redis_cache.php
SugarAutoloader::addDirectory('custom/include/SugarCache/');
View CustomAccountsRelateApi.php
<?php
// Enrico Simonetti
// enricosimonetti.com
//
// 2017-08-25 on Sugar 7.9.1.0
// filename: custom/modules/Accounts/clients/base/api/CustomAccountsRelateApi.php
//
// Display on the Account's Notes subpanel all its Notes and all its first level members Accounts Notes
View FakeLinkApi.php
<?php
/* File: ./custom/clients/base/api/FakeLinkApi.php */
if(!defined('sugarEntry') || !sugarEntry) die('Not A Valid Entry Point');
class FakeLinkApi extends SugarApi {
public function registerApiRest() {
return array(
'filterRelatedRecords' => array(
View triggerAllWorkflowsForContacts.php
<?php
// Enrico Simonetti
// enricosimonetti.com
function usage($error = '') {
if(!empty($error)) print(PHP_EOL . 'Error: ' . $error . PHP_EOL);
print(' php ' . __FILE__ . ' --instance /full/path' . PHP_EOL);
exit(1);
}
View saveAllContactsAndTriggerAllWorkflows.php
<?php
// Enrico Simonetti
// enricosimonetti.com
function usage($error = '') {
if(!empty($error)) print(PHP_EOL . 'Error: ' . $error . PHP_EOL);
print(' php ' . __FILE__ . ' --instance /full/path' . PHP_EOL);
exit(1);
}