function displayHeaderCell($layout_def)
 {
     $module_name = $this->layout_manager->getAttribute('module_name');
     $this->local_current_module = $_REQUEST['module'];
     $this->is_dynamic = true;
     // don't show sort links if name isn't defined
     if (empty($layout_def['name'])) {
         return $layout_def['label'];
     }
     if (isset($layout_def['sortable']) && !$layout_def['sortable']) {
         return $this->displayHeaderCellPlain($layout_def);
     }
     $header_cell_text = '';
     $key = '';
     if (!empty($layout_def['vname'])) {
         $key = $layout_def['vname'];
     }
     if (empty($key)) {
         $header_cell_text = $layout_def['name'];
     } else {
         $header_cell_text = translate($key, $module_name);
     }
     $subpanel_module = $layout_def['subpanel_module'];
     if (empty($this->base_URL)) {
         $this->base_URL = ListView::getBaseURL('CELL');
         $split_url = explode('&to_pdf=true&action=SubPanelViewer&subpanel=', $this->base_URL);
         $this->base_URL = $split_url[0];
         $this->base_URL .= '&inline=true&to_pdf=true&action=SubPanelViewer&subpanel=';
     }
     $sort_by_name = $layout_def['name'];
     if (isset($layout_def['sort_by'])) {
         $sort_by_name = $layout_def['sort_by'];
     }
     $sort_by = ListView::getSessionVariableName('CELL', "ORDER_BY") . '=' . $sort_by_name;
     $start = empty($layout_def['start_link_wrapper']) ? '' : $layout_def['start_link_wrapper'];
     $end = empty($layout_def['end_link_wrapper']) ? '' : $layout_def['end_link_wrapper'];
     $header_cell = "<a class=\"listViewThLinkS1\" href=\"" . $start . $this->base_URL . $subpanel_module . '&' . $sort_by . $end . "\">";
     $header_cell .= $header_cell_text;
     $header_cell .= "</a>";
     $imgArrow = '';
     if (isset($layout_def['sort'])) {
         $imgArrow = $layout_def['sort'];
     }
     $arrow_start = ListView::getArrowUpDownStart($imgArrow);
     $header_cell .= " " . $arrow_start;
     return $header_cell;
 }
 function displayHeaderCell($layout_def)
 {
     global $start_link_wrapper, $end_link_wrapper;
     // don't show sort links if name isn't defined
     $no_sort = $this->layout_manager->getAttribute('no_sort');
     if (empty($layout_def['name']) || !empty($no_sort) || !empty($layout_def['no_sort'])) {
         return $layout_def['label'];
     }
     $sort_by = '';
     if (!empty($layout_def['table_key']) && !empty($layout_def['name'])) {
         if (!empty($layout_def['group_function']) && $layout_def['group_function'] == 'count') {
             $sort_by = 'count';
         } else {
             $sort_by = $layout_def['table_key'] . ":" . $layout_def['name'];
             if (!empty($layout_def['column_function'])) {
                 $sort_by .= ':' . $layout_def['column_function'];
             } else {
                 if (!empty($layout_def['group_function'])) {
                     $sort_by .= ':' . $layout_def['group_function'];
                 }
             }
         }
     } else {
         return $this->displayHeaderCellPlain($layout_def);
     }
     $start = empty($start_link_wrapper) ? '' : $start_link_wrapper;
     $end = empty($end_link_wrapper) ? '' : $end_link_wrapper;
     // unable to retrieve the vardef here, exclude columns of type clob/text from being sortable
     if (!in_array($layout_def['name'], array('description', 'account_description', 'lead_source_description', 'status_description', 'to_addrs', 'cc_addrs', 'bcc_addrs', 'work_log', 'objective', 'resolution'))) {
         $header_cell = "<a class=\"listViewThLinkS1\" href=\"" . $start . $sort_by . $end . "\">";
         $header_cell .= $this->displayHeaderCellPlain($layout_def);
         $header_cell .= ListView::getArrowUpDownStart(isset($layout_def['sort']) ? $layout_def['sort'] : '');
         $header_cell .= ListView::getArrowUpDownEnd(isset($layout_def['sort']) ? $layout_def['sort'] : '');
         $header_cell .= "</a>";
         return $header_cell;
     }
     return $this->displayHeaderCellPlain($layout_def);
 }