public static function RenderProgressBar($params) { $entityTypeID = isset($params['ENTITY_TYPE_ID']) ? intval($params['ENTITY_TYPE_ID']) : 0; //$entityTypeName = CCrmOwnerType::ResolveName($entityTypeID); $infos = isset($params['INFOS']) ? $params['INFOS'] : null; if (!is_array($infos) || empty($infos)) { if ($entityTypeID === CCrmOwnerType::Lead) { if (!self::$LEAD_STATUSES) { self::$LEAD_STATUSES = CCrmStatus::GetStatus('STATUS'); } $infos = self::$LEAD_STATUSES; } elseif ($entityTypeID === CCrmOwnerType::Deal) { if (!self::$DEAL_STAGES) { self::$DEAL_STAGES = CCrmStatus::GetStatus('DEAL_STAGE'); } $infos = self::$DEAL_STAGES; } elseif ($entityTypeID === CCrmOwnerType::Invoice) { if (!self::$INVOICE_STATUSES) { self::$INVOICE_STATUSES = CCrmStatus::GetStatus('INVOICE_STATUS'); } $infos = self::$INVOICE_STATUSES; } } if (!is_array($infos) || empty($infos)) { return; } $currentInfo = null; $currentID = isset($params['CURRENT_ID']) ? $params['CURRENT_ID'] : ''; if ($currentID !== '' && isset($infos[$currentID])) { $currentInfo = $infos[$currentID]; } $currentSort = is_array($currentInfo) && isset($currentInfo['SORT']) ? intval($currentInfo['SORT']) : -1; $finalID = isset($params['FINAL_ID']) ? $params['FINAL_ID'] : ''; if ($finalID === '') { if ($entityTypeID === CCrmOwnerType::Lead) { $finalID = 'CONVERTED'; } elseif ($entityTypeID === CCrmOwnerType::Deal) { $finalID = 'WON'; } elseif ($entityTypeID === CCrmOwnerType::Invoice) { $finalID = 'P'; } } $finalInfo = null; if ($finalID !== '' && isset($infos[$finalID])) { $finalInfo = $infos[$finalID]; } $finalSort = is_array($finalInfo) && isset($finalInfo['SORT']) ? intval($finalInfo['SORT']) : -1; $layout = isset($params['LAYOUT']) ? strtolower($params['LAYOUT']) : 'small'; $wrapperClass = "crm-list-stage-bar-{$layout}"; if ($currentSort === $finalSort) { $wrapperClass .= ' crm-list-stage-end-good'; } elseif ($currentSort > $finalSort) { $wrapperClass .= ' crm-list-stage-end-bad'; } //$prefix = isset($params['PREFIX']) ? $params['PREFIX'] : ''; //$entityID = isset($params['ENTITY_ID']) ? intval($params['ENTITY_ID']) : 0; //$controlID = $entityTypeName !== '' && $entityID > 0 // ? "{$prefix}{$entityTypeName}_{$entityID}" : uniqid($prefix); $wrapperID = isset($params['WRAPPER_ID']) ? $params['WRAPPER_ID'] : ''; $tableClass = "crm-list-stage-bar-table-{$layout}"; echo '<div class="', $wrapperClass, '" style="width:89%;"', $wrapperID !== '' ? ' id="' . htmlspecialcharsbx($wrapperID) . '"' : '', '><table class="', $tableClass, '"><tbody><tr>'; foreach ($infos as &$info) { $ID = isset($info['STATUS_ID']) ? $info['STATUS_ID'] : ''; $sort = isset($info['SORT']) ? intval($info['SORT']) : 0; if ($sort > $finalSort) { break; } echo '<td class="crm-list-stage-bar-part', $sort <= $currentSort ? ' crm-list-stage-passed' : '', '">', '<div class="crm-list-stage-bar-block" data-progress-step-id="' . htmlspecialcharsbx(strtolower($ID)) . '"><div class="crm-list-stage-bar-btn"></div></div>', '<input class="crm-list-stage-bar-block-sort" type="hidden" value="', $sort, '" />', '</td>'; } unset($info); echo '</tr></tbody></table></div>'; }