The Search Plus have two interfaces you could use to implement your own custom columns and conditions. With this power you could integrate almost everything within ListView!
You found everything within the extends directory, like in my other modules. IN this directory, nothing is encrypted.

Custom Columns

This interfaces is stored in extends/field directory and allow to add virtual columns, which are not related to a field in vtigercrm. Use it to calculate values, summarize something, …

How to add such virtual column:

Create a file in extends / fields with filename structure <customname>.inc.php. Use the following class stub for the file:

<?php
namespace SWSearchPlus\Plugin\Field;

class ClassName extends \SWSearchPlus\Customfield
{
    public function getFields($moduleName) {
        $operators = array();

        // Use such condition if your condition only works in special modules
		// if($moduleName === 'Accounts') {
            $operators = array (
                '[columnSlug1]' => array (
                    'label' => '[Visible Column Label]',
                    'columnname' => '_[virtualuniquecolumnname]',
                    'typeofdata' => '[typeofdata of column. Normally: V~O]',
                    'uitype' => [uitype of column. Normally: 1],
                    'displaytype' => 3,
                ),
                '[columnSlug2]' => array (
                    'label' => '[Visible Column Label]',
                    'columnname' => '_[virtualuniquecolumnname]',
                    'typeofdata' => '[typeofdata of column. Normally: V~O]',
                    'uitype' => [uitype of column. Normally: 1],
                    'displaytype' => 3,
                ),
            );
        // }

        return $operators;
    }

    public function execute($key, $moduleName) {
        $adb = \PearDatabase::getInstance();

        // default calculations
        switch($key) {
            case 'columnSlug1':
			/*
					public function addJoinTable($fromTableName, $joinFromColumn, $toTableName, $joinToColumn, $tableDefinition, $tableDefinitionUniqueKey = false) {
					$fromTableName = vtiger_crmentity in almost any situation
					$joinFromColumn = crmid in almost any situation. These both columns define the SRC ID for JOIN
					$toTableName = Result Table Name of $tableDefinition
					$joinToColumn = Join Target of $tableDefinition to SRC iD
					$tableDefinition = The SQL Query, which generate the result
					$tableDefinitionUniqueKey = In some situation it is necessary to manually set a UniqueKey, if more extensions use an equal tableDefinition
					
					This example use the Total SUM Calculation of Account
			*/
                $tableName = self::$tableHander->addJoinTable('vtiger_crmentity', 'crmid', 'vtiger_invoice', 'accountid', 'SELECT ROUND(SUM(total)) as _totalinvoicesum, accountid FROM vtiger_invoice GROUP BY vtiger_invoice.accountid');
                break;
            case 'columnSlug2':
                ....
                break;
        }

        return $tableName;
    }

}

\SWSearchPlus\Customfield::register('[uniqueextensionkey]', '\\SWSearchPlus\\Plugin\\Field\\ClassName');

Every file could register multiple columns.

Placeholder description:

Placeholder Description
ClassName Your ClassName Unique within Folder extends/fields
uniqueextensionkey A unique key, for your extension
columnSlug1,columnSlug2 Unique Key of your column. Used internally to call your class
Visible Column Label Label of Column, shown to User and during CustomView Edit
virtualuniquecolumnname An unique virtual fieldname you must set. Prefixed with _ to be really unique
typeofdata of column The type of Data. Necessary for vtiger. Set to V~O works in any case
uitype of column The UIType of this virtual column. Set to 1 works in any case and make this colum handled like text
Enter your comment. Wiki syntax is allowed:
   __ __  _____   ___    _  __   _  __
  / // / / ___/  / _ \  | |/_/  | |/_/
 / _  / / /__   / ___/ _>  <   _>  <  
/_//_/  \___/  /_/    /_/|_|  /_/|_|