static function getColumnList()
{
IncludeModuleLangFile(__FILE__);
$columnList = array(
'ID',
'TITLE',
'DESCRIPTION_TR',
'PRIORITY',
'STATUS',
'STATUS_PSEUDO',
'STATUS_SUB' => array(
'IS_NEW',
'IS_OPEN',
'IS_RUNNING',
'IS_FINISHED',
'IS_OVERDUE',
'IS_MARKED',
'IS_EFFECTIVE',
'IS_EFFECTIVE_PRCNT'
),
'ADD_IN_REPORT',
'CREATED_DATE',
'START_DATE_PLAN',
'END_DATE_PLAN',
'DURATION_PLAN_HOURS',
'DATE_START',
'CHANGED_DATE',
'CLOSED_DATE',
'DEADLINE',
'TIME_SPENT_IN_LOGS',
'TIME_SPENT_IN_LOGS_FOR_PERIOD',
'ALLOW_TIME_TRACKING',
'TIME_ESTIMATE',
'MARK',
'TAGS',
'GROUP' => array(
'ID',
'NAME'
),
'CREATED_BY_USER' => array(
'ID',
'SHORT_NAME',
'NAME',
'LAST_NAME',
'WORK_POSITION'
),
'RESPONSIBLE' => array(
'ID',
'SHORT_NAME',
'NAME',
'LAST_NAME',
'WORK_POSITION'
),
'Member:TASK_COWORKED.USER' => array(
'ID',
'SHORT_NAME',
'NAME',
'LAST_NAME',
'WORK_POSITION'
),
'CHANGED_BY_USER' => array(
'ID',
'SHORT_NAME',
'NAME',
'LAST_NAME',
'WORK_POSITION'
),
'STATUS_CHANGED_BY_USER' => array(
'ID',
'SHORT_NAME',
'NAME',
'LAST_NAME',
'WORK_POSITION'
),
'CLOSED_BY_USER' => array(
'ID',
'SHORT_NAME',
'NAME',
'LAST_NAME',
'WORK_POSITION'
),
'DURATION', // deprecated, use TIME_SPENT_IN_LOGS
'DURATION_FOR_PERIOD', // deprecated, use TIME_SPENT_IN_LOGS_FOR_PERIOD
);
// Append user fields
$blPostfix = defined('self::UF_BOOLEAN_POSTFIX') ? self::UF_BOOLEAN_POSTFIX : '_BLINL';
self::prepareUFInfo();
if (is_array(self::$ufInfo) && count(self::$ufInfo) > 0)
{
if (isset(self::$ufInfo['TASKS_TASK']) && is_array(self::$ufInfo['TASKS_TASK'])
&& count(self::$ufInfo['TASKS_TASK']) > 0)
{
foreach (self::$ufInfo['TASKS_TASK'] as $ufKey => $uf)
{
if (($uf['USER_TYPE_ID'] !== 'datetime' && $uf['USER_TYPE_ID'] !== 'boolean')
|| $uf['MULTIPLE'] === 'Y'
|| mb_substr($ufKey, -mb_strlen(self::UF_DATETIME_SHORT_POSTFIX)) === self::UF_DATETIME_SHORT_POSTFIX
|| mb_substr($ufKey, -mb_strlen($blPostfix)) === $blPostfix)
{
$columnList[] = $ufKey;
}
}
}
}
return $columnList;
}