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']) || isset($layout_def['sortable']) && !$layout_def['sortable']) {
         return $this->displayHeaderCellPlain($layout_def);
     }
     $header_cell_text = $this->displayHeaderCellPlain($layout_def);
     $subpanel_module = $layout_def['subpanel_module'];
     $html_var = $subpanel_module . "_CELL";
     if (empty($this->base_URL)) {
         $objListView = new ListView();
         $this->base_URL = $objListView->getBaseURL($html_var);
         $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'];
     }
     $objListView = new ListView();
     $sort_by = $objListView->getSessionVariableName($html_var, "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;
     $imgArrow = '';
     if (isset($layout_def['sort'])) {
         $imgArrow = $layout_def['sort'];
     }
     $arrow_start = $objListView->getArrowUpDownStart($imgArrow);
     $arrow_end = $objListView->getArrowUpDownEnd($imgArrow);
     $header_cell .= " " . $arrow_start . $arrow_end . "</a>";
     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);
 }