ListView extendability
The ListViewController class has been refactored to be more perfomant and easily extendable.
For example, now it's much easier to add new icons into the Actions column:
SDK::setClass('ListViewController', 'ListViewControllerCustom', 'modules/SDK/src/CUSTOMER/ListViewControllerCustom.php');
And the class:
<?php
require_once('include/ListView/ListViewController.php');
class ListViewControllerCustom extends ListViewController {
/**
* Generate an array of strings to be concatenated and set as the "action" column
*/
public function generateActions($focus, $recordId, array $sqlrow = [], $navigationInfo = []) : array {
$actionLinkInfo = parent::generateActions($focus, $recordId, $sqlrow, $navigationInfo);
$module = $focus->modulename;
if ($module === 'Leads') {
// add an icon to each lead to open the record in the erp:
$actionLinkInfo[] = "<a href=\"https://myerp.example.com/lead/$recordId\" target=\"_blank\"><i class=\"vteicon\"'>open_in_browser</i></a>";
}
return $actionLinkInfo;
}
}
Resulting in:
