Hello Everyone
I want my ListView to always display records sorted by date_created
(or date_entered
) by default β similar to server-side data processing, so that every time the ListView loads, the latest records appear on top automatically.
Hello Everyone
I want my ListView to always display records sorted by date_created
(or date_entered
) by default β similar to server-side data processing, so that every time the ListView loads, the latest records appear on top automatically.
To set default sorting by date_entered
in ListView, follow these steps:
custom/modules/<module_name>/views/view.list.php
Make sure to place the sorting logic before parent::display();
<?php
if (!defined('sugarEntry') || !sugarEntry) {
die('Not A Valid Entry Point');
}
class <module_name>ViewList extends ViewList
{
public function display()
{
// Check user preferences for existing sort settings
$userPreferenceOrder = $GLOBALS['current_user']->getPreference('listviewOrder', '<MODULE_NAME_UPPERCASE>');
// Apply default sort if not already set by user
if (empty($userPreferenceOrder['orderBy'])) {
$_REQUEST['orderBy'] = 'date_entered';
$_REQUEST['sortOrder'] = 'DESC';
}
parent::display();
}
}
β Replace <module_name>
and <MODULE_NAME_UPPERCASE>
with your actual module name.
β Example: For AOK_KnowledgeBase2
, use aok_knowledgebase2
and 'AOK_KNOWLEDGEBASE'
respectively.