Admin/Developer info

4min

Installation

To work its magic, QuickQuery overrides certain built-in components, which naturally increases the chance that it will cause a collision with existing customizations. To mitigate this issue, we took certain steps to ensure it's easy to make things work on customized instances.

Client-side

On the client-side, QuickQuery overrides BaseFilterLayout, BaseFilterQuicksearchView, BaseFilterRowsView, and ProfileactionsView. However, the actual implementations are extracted to a file in vendor/ and get called from the overridden controller. This keeps the actual controllers clean and makes it easy to merge QuickQuery customizations with existing ones.

The names of the methods describe exactly when they should be called (in relation to the _super implementation), and from which method.

Document image


Review the installation files to fully understand what needs to be done.

Additionally, QuickQuery overrides the handlebars template for QuicksearchView and PHP metadata for ProfileactionsView. It should be fairly straightforward to merge these with any customizations you may have implemented.

Server-side

One the server-side, QuickQuery overrides the implementation of numerous APIs. As with the client-side, the actual code is implemented separately, and called by the overridden APIs. The code is extremely simple, and you should have no problem integrating it into your existing customizations.

Document image


Review the installation files to fully understand what needs to be done.

Logging

To log the queries generated by QuickQuery, add the following to config_override.php:

$sugar_config['quickQueryLogs'] = true;

This will cause a "BEFORE" and "AFTER" section to be logged by QuickQuery, which shows the SQL generated by SugarQuery before and after QuickQuery does its magic. QuickQuery will also print the internal AST generated by the query.

Document image




Updated 25 Mar 2024
Doc contributor
Did this page help you?