예제 #1
0
function ListOutputGrade($result, $column_names, $singular = '', $plural = '', $link = false, $group = false, $options = false, $for_window = '')
{
    if (!isset($options['save'])) {
        $options['save'] = true;
    }
    if (!isset($options['print'])) {
        $options['print'] = true;
    }
    if (!isset($options['search'])) {
        $options['search'] = true;
    }
    if (!isset($options['center'])) {
        $options['center'] = true;
    }
    if (!isset($options['count'])) {
        $options['count'] = true;
    }
    if (!isset($options['sort'])) {
        $options['sort'] = true;
    }
    if (!$link) {
        $link = array();
    }
    if (isset($_REQUEST['page'])) {
        if ($_REQUEST['list_type'] == $singular) {
            $Request_page = $_REQUEST['page'];
        }
    }
    if (!isset($options['add'])) {
        if (!AllowEdit() || $_REQUEST['_openSIS_PDF']) {
            if ($link) {
                unset($link['add']);
                unset($link['remove']);
            }
        }
    }
    // PREPARE LINKS ---
    $result_count = $display_count = count($result);
    $num_displayed = 100000;
    $extra = "page={$_REQUEST['page']}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']);
    $tmp_REQUEST = $_REQUEST;
    unset($tmp_REQUEST['page']);
    unset($tmp_REQUEST['LO_sort']);
    unset($tmp_REQUEST['LO_direction']);
    unset($tmp_REQUEST['LO_search']);
    unset($tmp_REQUEST['remove_prompt']);
    unset($tmp_REQUEST['remove_name']);
    unset($tmp_REQUEST['LO_save']);
    unset($tmp_REQUEST['PHPSESSID']);
    //$PHP_tmp_SELF = PreparePHP_SELF($tmp_REQUEST);
    $PHP_tmp_SELF = str_replace('>', '', PreparePHP_SELF($tmp_REQUEST));
    // END PREPARE LINKS ---
    // UN-GROUPING
    $group_count = count($group);
    if (!is_array($group)) {
        $group_count = false;
    }
    //$side_color = Preferences('COLOR');
    $side_color = 'class=odd';
    if ($group_count && $result_count) {
        $color = 'class=even';
        $group_result = $result;
        unset($result);
        $result[0] = '';
        foreach ($group_result as $item1) {
            if ($group_count == 1) {
                if ($color == 'class=even') {
                    $color = $side_color;
                } else {
                    $color = 'class=even';
                }
            }
            foreach ($item1 as $item2) {
                if ($group_count == 1) {
                    $i++;
                    if (count($group[0]) && $i != 1) {
                        foreach ($group[0] as $column) {
                            $item2[$column] = str_replace('<!-- <!--', '<!--', '<!-- ' . str_replace('-->', '--><!--', $item2[$column])) . ' -->';
                        }
                    }
                    $item2['row_color'] = $color;
                    $result[] = $item2;
                } else {
                    if ($group_count == 2) {
                        if ($color == 'class=even') {
                            $color = $side_color;
                        } else {
                            $color = 'class=even';
                        }
                    }
                    foreach ($item2 as $item3) {
                        if ($group_count == 2) {
                            $i++;
                            if (count($group[0]) && $i != 1) {
                                foreach ($group[0] as $column) {
                                    $item3[$column] = '<!-- ' . $item3[$column] . ' -->';
                                }
                            }
                            if (count($group[1]) && $i != 1) {
                                foreach ($group[1] as $column) {
                                    $item3[$column] = '<!-- ' . $item3[$column] . ' -->';
                                }
                            }
                            $item3['row_color'] = $color;
                            $result[] = $item3;
                        } else {
                            if ($group_count == 3) {
                                if ($color == 'class=even') {
                                    $color = $side_color;
                                } else {
                                    $color = 'class=even';
                                }
                            }
                            foreach ($item3 as $item4) {
                                if ($group_count == 3) {
                                    $i++;
                                    if (count($group[2]) && $i != 1) {
                                        foreach ($group[2] as $column) {
                                            unset($item4[$column]);
                                        }
                                    }
                                    $item4['row_color'] = $color;
                                    $result[] = $item4;
                                }
                            }
                        }
                    }
                }
            }
            $i = 0;
        }
        unset($result[0]);
        $result_count = count($result);
        unset($_REQUEST['LO_sort']);
    }
    // END UN-GROUPING
    $_LIST['output'] = true;
    // PRINT HEADINGS, PREPARE PDF, AND SORT THE LIST ---
    if ($_LIST['output'] != false) {
        if ($result_count != 0) {
            $count = 0;
            $remove = count($link['remove']['variables']);
            $cols = count($column_names);
            // HANDLE SEARCHES ---
            if ($result_count && $_REQUEST['LO_search'] && $_REQUEST['LO_search'] != 'Search') {
                $_REQUEST['LO_search'] = $search_term = str_replace('\\\\"', '"', $_REQUEST['LO_search']);
                $_REQUEST['LO_search'] = $search_term = ereg_replace('[^a-zA-Z0-9 _"]*', '', strtolower($search_term));
                if (substr($search_term, 0, 0) != '"' && substr($search_term, -1) != '"') {
                    $search_term = ereg_replace('"', '', $search_term);
                    while ($space_pos = strpos($search_term, ' ')) {
                        $terms[strtolower(substr($search_term, 0, $space_pos))] = 1;
                        $search_term = substr($search_term, $space_pos + 1);
                    }
                    $terms[trim($search_term)] = 1;
                } else {
                    $search_term = ereg_replace('"', '', $search_term);
                    $terms[trim($search_term)] = 1;
                }
                unset($terms['of']);
                unset($terms['the']);
                unset($terms['a']);
                unset($terms['an']);
                unset($terms['in']);
                foreach ($result as $key => $value) {
                    $values[$key] = 0;
                    foreach ($value as $name => $val) {
                        $val = ereg_replace('[^a-zA-Z0-9 _]+', '', strtolower($val));
                        if (strtolower($_REQUEST['LO_search']) == $val) {
                            $values[$key] += 25;
                        }
                        foreach ($terms as $term => $one) {
                            if (ereg($term, $val)) {
                                $values[$key] += 3;
                            }
                        }
                    }
                    if ($values[$key] == 0) {
                        unset($values[$key]);
                        unset($result[$key]);
                        $result_count--;
                        $display_count--;
                    }
                }
                if ($result_count) {
                    array_multisort($values, SORT_DESC, $result);
                    $result = ReindexResults($result);
                    $values = ReindexResults($values);
                    $last_value = 1;
                    $scale = 100 / $values[$last_value];
                    for ($i = $last_value; $i <= $result_count; $i++) {
                        $result[$i]['RELEVANCE'] = '<!--' . (int) ($values[$i] * $scale) . '--><IMG SRC="assets/pixel_grey.gif" width=' . (int) ($values[$i] * $scale) . ' height=10>';
                    }
                }
                $column_names['RELEVANCE'] = "" . _('Relevance') . "";
                if (is_array($group) && count($group)) {
                    $options['count'] == false;
                    $display_zero = true;
                }
            }
            // END SEARCHES ---
            if ($_REQUEST['LO_sort']) {
                $r = array();
                $a = array();
                $t = array();
                $c = 0;
                for ($i = 1; $i <= count($result); $i++) {
                    if (array_key_exists("FULL_NAME", $result[$i])) {
                        array_push($a, $i);
                    }
                }
                $l = 0;
                $k = 0;
                foreach ($result as $column => $value) {
                    for ($n = 0; $n < count($a); $n++) {
                        if ($column == $a[$n]) {
                            $k = $k + 1;
                        }
                    }
                    $t[$k][$l] = $value;
                    $l++;
                }
                for ($h = 1; $h <= count($a); $h++) {
                    foreach ($t[$h] as $sort) {
                        if (substr($sort[$_REQUEST['LO_sort']], 0, 4) != '<!--') {
                            $sort_array[] = $sort[$_REQUEST['LO_sort']];
                        } else {
                            $sort_array[] = substr($sort[$_REQUEST['LO_sort']], 4, strpos($sort[$_REQUEST['LO_sort']], '-->') - 5);
                        }
                    }
                    if ($_REQUEST['LO_direction'] == -1) {
                        $dir = SORT_DESC;
                    } else {
                        $dir = SORT_ASC;
                    }
                    if (count($t) > 1) {
                        if (is_int($sort_array[1]) || is_double($sort_array[1])) {
                            array_multisort($sort_array, $dir, SORT_NUMERIC, $t[$h]);
                        } else {
                            array_multisort($sort_array, $dir, $t[$h]);
                        }
                        // print_r($t[$h]);
                        $inc = 0;
                        $pos = 0;
                        $flag = true;
                        $inc = 0;
                        $select = $_REQUEST['LO_sort'];
                        for ($c = 0; $c < count($t[$h]); $c++) {
                            if (array_key_exists($_REQUEST['LO_sort'], $t[$h][$c])) {
                                $temp = $t[$h][$c];
                                if ($temp[$select]) {
                                    $inc++;
                                    if ($flag) {
                                        $pos = $c;
                                        $flag = false;
                                    }
                                }
                            }
                        }
                        $abc = array_slice($t[$h], $pos, $inc);
                        if ($pos == 0) {
                            $cde = array_slice($t[$h], $inc, count($t[$h]) - 1);
                        } else {
                            $cde = array_slice($t[$h], 0, $pos);
                        }
                        if ($inc != 0) {
                            $t[$h] = array_merge($abc, $cde);
                        }
                        echo "<br/>";
                        array_push($result, $t[$h]);
                    }
                    for ($i = $result_count - 1; $i >= 0; $i--) {
                        $result[$i + 1] = $result[$i];
                    }
                    unset($result[0]);
                    $sort_array = "";
                }
                // $name_sort=array();
                $bgcolor_sort = array();
                for ($h = 1; $h <= count($t); $h++) {
                    for ($n = 0; $n < count($t[$h]); $n++) {
                        if ($_REQUEST['LO_sort'] == "FULL_NAME") {
                            if (array_key_exists("FULL_NAME", $t[$h][$n])) {
                                $name_sort[] = array_shift($t[$h][$n]);
                            }
                            if (array_key_exists("bgcolor", $t[$h][$n])) {
                                $bgcolor_sort[] = array_shift($t[$h][$n]);
                            }
                        } else {
                            if (array_key_exists("FULL_NAME", $t[$h][$n])) {
                                $FULL_NAME = array_shift($t[$h][$n]);
                            }
                            if (array_key_exists("bgcolor", $t[$h][$n])) {
                                $bgcolor = array_shift($t[$h][$n]);
                            }
                            $t[$h][0][FULL_NAME] = $FULL_NAME;
                            $t[$h][0][bgcolor] = $bgcolor;
                        }
                    }
                }
                for ($h = 1; $h <= count($t); $h++) {
                    for ($n = 0; $n < count($t[$h]); $n++) {
                        if (array_key_exists("0", $t[$h][$n])) {
                            $mkperiod = $t[$h][$n]['MARKING_PERIOD_ID'];
                            $t[$h][$n][$mkperiod] = $t[$h][$n][0];
                        }
                    }
                }
                //print_r($name_sort);
                if ($_REQUEST['LO_sort'] == "FULL_NAME") {
                    array_multisort($name_sort, $dir);
                    for ($h = 1; $h <= count($t); $h++) {
                        $t[$h][0][FULL_NAME] = $name_sort[$h - 1];
                    }
                }
                $result = "";
                for ($n = 1; $n <= count($a); $n++) {
                    $result = array_merge((array) $result, $t[$n]);
                }
            }
        }
        // HANDLE SAVING THE LIST ---
        if ($_REQUEST['LO_save'] == '1') {
            if (!$options['save_delimiter'] && Preferences('DELIMITER') == 'CSV') {
                $options['save_delimiter'] = 'comma';
            }
            switch ($options['save_delimiter']) {
                case 'comma':
                    $extension = 'csv';
                    break;
                case 'xml':
                    $extension = 'xml';
                    break;
                default:
                    $extension = 'xls';
                    break;
            }
            ob_end_clean();
            if ($options['save_delimiter'] != 'xml') {
                foreach ($column_names as $key => $value) {
                    $output .= str_replace('&nbsp;', ' ', eregi_replace('<BR>', ' ', ereg_replace('<!--.*-->', '', $value))) . ($options['save_delimiter'] == 'comma' ? ',' : "\t");
                }
                $output .= "\n";
            }
            foreach ($result as $item) {
                foreach ($column_names as $key => $value) {
                    if ($options['save_delimiter'] == 'comma' && !$options['save_quotes']) {
                        $item[$key] = str_replace(',', ';', $item[$key]);
                    }
                    $item[$key] = eregi_replace('<SELECT.*SELECTED\\>([^<]+)<.*</SELECT\\>', '\\1', $item[$key]);
                    $item[$key] = eregi_replace('<SELECT.*</SELECT\\>', '', $item[$key]);
                    $output .= ($options['save_quotes'] ? '"' : '') . ($options['save_delimiter'] == 'xml' ? '<' . str_replace(' ', '', $value) . '>' : '') . ereg_replace('<[^>]+>', '', ereg_replace("<div onclick='[^']+'>", '', ereg_replace(' +', ' ', ereg_replace('&[^;]+;', '', str_replace('<BR>&middot;', ' : ', str_replace('&nbsp;', ' ', $item[$key])))))) . ($options['save_delimiter'] == 'xml' ? '</' . str_replace(' ', '', $value) . '>' . "\n" : '') . ($options['save_quotes'] ? '"' : '') . ($options['save_delimiter'] == 'comma' ? ',' : "\t");
                }
                $output .= "\n";
            }
            header("Cache-Control: public");
            header("Pragma: ");
            header("Content-Type: application/{$extension}");
            header("Content-Disposition: inline; filename=\"" . ProgramTitle() . ".{$extension}\"\n");
            if ($options['save_eval']) {
                eval($options['save_eval']);
            }
            echo $output;
            exit;
        }
        // END SAVING THE LIST ---
        if ($options['center']) {
            #echo '<CENTER>';
            if ($result_count > $num_displayed || ($options['count'] || $display_zero) && (($result_count == 0 || $display_count == 0) && $plural || ($result_count == 0 || $display_count == 0))) {
                #echo "<TABLE border=0 cellspacing=3 cellpadding=6>" ;
                if (isset($_REQUEST['_openSIS_PDF'])) {
                    #echo " width=98%";
                    echo " <TR><TD align=center>";
                }
            }
        }
        if ($options['count'] || $display_zero) {
            if (($result_count == 0 || $display_count == 0) && $plural) {
                echo "<div style=text-align:left><table cellpadding=5 cellspacing=5 class=alert_box ><tr><td class=alert></td><td class=alert_msg ><b>" . _('No') . " {$plural} " . _('were found.') . "</b></td></tr><tr><td colspan=2 class=clear></td></tr></table></div>";
            } elseif ($result_count == 0 || $display_count == 0) {
                echo '<div style=text-align:left><table cellpadding=5 cellspacing=5 class=alert_box ><tr><td class=alert></td><td class=alert_msg ><b>' . _('None were found.') . '</b></td></tr><tr><td colspan=2 class=clear></td></tr></table></div>';
            }
        }
        if ($result_count != 0 || $_REQUEST['LO_search'] && $_REQUEST['LO_search'] != 'Search') {
            if (!isset($_REQUEST['_openSIS_PDF'])) {
                if (!$Request_page) {
                    $Request_page = 1;
                }
                if (!$_REQUEST['LO_direction']) {
                    $_REQUEST['LO_direction'] = 1;
                }
                $start = ($Request_page - 1) * $num_displayed + 1;
                $stop = $start + ($num_displayed - 1);
                if ($stop > $result_count) {
                    $stop = $result_count;
                }
                if ($result_count > $num_displayed) {
                    echo $where_message = "<strong><br>\n\t\t\t\t\t\t\t\t\t    {$start} " . _('through') . " {$stop}</strong>";
                    echo "<div style=text-align:right;margin-top:-14px;padding-right:15px><strong>" . _('Go to Page') . " ";
                    if (ceil($result_count / $num_displayed) <= 10) {
                        for ($i = 1; $i <= ceil($result_count / $num_displayed); $i++) {
                            if ($i != $Request_page) {
                                if ($for_window == 'for_window') {
                                    $pages .= "<A HREF=" . str_replace('Modules.php', 'for_window.php', $PHP_tmp_SELF) . "&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']) . "&page={$i}&list_type={$singular}>{$i}</A>, ";
                                } else {
                                    $pages .= "<A HREF={$PHP_tmp_SELF}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']) . "&page={$i}&list_type={$singular}>{$i}</A>, ";
                                }
                            } else {
                                $pages .= "{$i}, ";
                            }
                        }
                        $pages = substr($pages, 0, -2);
                    } else {
                        for ($i = 1; $i <= 7; $i++) {
                            if ($i != $Request_page) {
                                $pages .= "<A HREF={$PHP_tmp_SELF}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']) . "&page={$i}>{$i}</A>, ";
                            } else {
                                $pages .= "{$i}, ";
                            }
                        }
                        $pages = substr($pages, 0, -2) . " ... ";
                        for ($i = ceil($result_count / $num_displayed) - 2; $i <= ceil($result_count / $num_displayed); $i++) {
                            if ($i != $Request_page) {
                                $pages .= "<A HREF={$PHP_tmp_SELF}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']) . "&page={$i}>{$i}</A>, ";
                            } else {
                                $pages .= "{$i}, ";
                            }
                        }
                        $pages = substr($pages, 0, -2) . " &nbsp;<A HREF={$PHP_tmp_SELF}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']) . "&page=" . ($Request_page + 1) . ">" . _('Next Page') . "</A><BR>";
                    }
                    echo $pages;
                    //echo '</td></tr></table></div>';
                    echo '</strong></div>';
                    //echo '<BR>';
                }
            } else {
                $start = 1;
                $stop = $result_count;
                if ($cols > 8 || $_REQUEST['expanded_view']) {
                    $_SESSION['orientation'] = 'landscape';
                    $repeat_headers = 16;
                } else {
                    $repeat_headers = 27;
                }
                if ($options['print']) {
                    $html = explode('<!-- new page -->', strtolower(ob_get_contents()));
                    $html = $html[count($html) - 1];
                    echo '</TD></TR></TABLE>';
                    $br = substr_count($html, '<br>') + substr_count($html, '</p>') + substr_count($html, '</tr>') + substr_count($html, '</h1>') + substr_count($html, '</h2>') + substr_count($html, '</h3>') + substr_count($html, '</h4>') + substr_count($html, '</h5>');
                    if ($br % 2 != 0) {
                        $br++;
                        echo '<BR>';
                    }
                } else {
                    echo '</TD></TR></TABLE>';
                }
            }
            // END MISC ---
            // WIDTH = 100%
            echo '<TABLE width=98% border=0 cellspacing=0 cellpadding=0><TR>';
            // SEARCH BOX & MORE HEADERS
            if ($where_message || $singular && $plural || !isset($_REQUEST['_openSIS_PDF']) && $options['search']) {
                echo '<TD align=center>';
                echo '<TABLE cellpadding=1 width=100% border=0 class=\\"grid\\">';
                echo "<TR><TD align=left valign=middle>";
                if ($singular && $plural && $options['count']) {
                    if ($display_count > 1) {
                        echo "<table cellpadding=5 cellspacing=5 class=alert_box align=left ><tr><td class=notice></td><td class=notice_msg ><b>{$display_count} {$plural} " . _('were found.') . "</b></td></tr></table>";
                    } elseif ($display_count == 1) {
                        echo "<table cellpadding=5 cellspacing=5 class=alert_box align=left ><tr><td class=notice></td><td class=notice_msg ><b>" . _('1') . " {$singular} " . _('was found.') . "</b></td></tr></table>";
                    }
                    #if($where_message)
                    #	echo '<br>'.$where_message;
                }
                if ($options['save'] && !isset($_REQUEST['_openSIS_PDF']) && $result_count > 0) {
                    //echo str_replace("Modules.php", "for_export.php", $PHP_tmp_SELF);
                    echo "<table cellpadding=0 cellspacing=0 class=download align=left ><tr><td><A HREF=" . str_replace('Modules.php', 'for_export.php', $PHP_tmp_SELF) . "&{$extra}&LO_save=1&_openSIS_PDF=true ><IMG SRC=assets/download.png border=0 alt=\"Download\" title=\"" . _('Download') . "\"></a></td></tr></table>";
                }
                //echo "<br><br><table class=download ><tr><td><A HREF=".str_replace('Modules.php', 'for_export.php', $PHP_tmp_SELF)."&$extra&_openSIS_PDF=true ><IMG SRC=assets/download.png border=0></a></td><td><A HREF=".str_replace('Modules.php', 'for_export.php', $PHP_tmp_SELF)."&$extra&_openSIS_PDF=true >Download</A></td></tr></table>";
                echo '</TD>';
                $colspan = 1;
                if (!isset($_REQUEST['_openSIS_PDF']) && $options['search']) {
                    $_REQUEST['portal_search'] = 'true';
                    $tmp_REQUEST = $_REQUEST;
                    unset($tmp_REQUEST['LO_search']);
                    unset($tmp_REQUEST['page']);
                    echo '<TD height="50" align=right valign=middle style="white-space:nowrap;">&nbsp;&nbsp;';
                    echo "<INPUT type=text class='cell_medium'  id=LO_search name=LO_search value='" . ($_REQUEST['LO_search'] && $_REQUEST['LO_search'] != 'Search' ? $_REQUEST['LO_search'] : 'Search\' style=\'color:BBBBBB\''), "' onfocus='if(this.value==\"Search\") this.value=\"\"; this.style.color=\"000000\";' onblur='if(this.value==\"\") {this.value=\"Search\"; this.style.color=\"BBBBBB\";}' onkeypress='if(event.keyCode==13){document.location.href=\"" . PreparePHP_SELF($tmp_REQUEST) . "&LO_search=\"+this.value; return false;} '>&nbsp;&nbsp;<INPUT type=button class='btn_go' value=" . _('Go') . " onclick='document.location.href=\"" . PreparePHP_SELF($tmp_REQUEST) . "&LO_search=\"+document.getElementById(\"LO_search\").value;'></TD>";
                    $colspan++;
                }
                echo "</TR>";
                echo '<TR style="height:0;"><TD width=100% align=center colspan=' . $colspan . '><DIV id=LOx' . (count($column_names) + ($result_count != 0 && $cols && !isset($_REQUEST['_openSIS_PDF']) ? 1 : 0) + ($remove && !isset($_REQUEST['_openSIS_PDF']) ? 1 : 0)) . ' style="width:0; position: relative; height:0;"></DIV></TD></TR></TABLE>';
            } else {
                echo '<TD width=100% align=right><DIV id=LOx' . (count($column_names) + ($result_count != 0 && $cols && !isset($_REQUEST['_openSIS_PDF']) ? 1 : 0) + ($remove && !isset($_REQUEST['_openSIS_PDF']) ? 1 : 0)) . ' style="width:0; position: relative; height:0;"></DIV>';
            }
            // END SEARCH BOX ----
            echo '</TD></TR><TR><TD>';
            // SHADOW
            if (!isset($_REQUEST['_openSIS_PDF'])) {
                //echo "<link rel='stylesheet' type='text/css' href='styles/paging.css' />\n";
                echo '<div id="pagerNavPosition"></div>';
                echo '<TABLE width=100% cellpadding=0 cellspacing=0><TR><TD align=center>';
            }
            echo "<TABLE id='results' cellpadding=6 width=96% cellspacing=1 class=\"grid\" align=center>";
            if (!isset($_REQUEST['_openSIS_PDF']) && $stop - $start > 10) {
                echo '<THEAD>';
            }
            if (!isset($_REQUEST['_openSIS_PDF'])) {
                echo '<TR>';
            }
            $i = 1;
            if ($remove && !isset($_REQUEST['_openSIS_PDF']) && $result_count != 0) {
                //THIS LINE IS FOR COLUMN HEADING
                echo "<TD class=subtabs><DIV id=LOx{$i} style='position: relative;'></DIV></TD>";
                $i++;
            }
            if ($result_count != 0 && $cols && !isset($_REQUEST['_openSIS_PDF'])) {
                foreach ($column_names as $key => $value) {
                    if ($_REQUEST['LO_sort'] == $key) {
                        $direction = -1 * $_REQUEST['LO_direction'];
                    } else {
                        $direction = 1;
                    }
                    //THIS LINE IS FOR COLUMN HEADING
                    echo "<TD class=subtabs><DIV id=LOx{$i} style='position: relative;'></DIV>";
                    echo "<A ";
                    if ($options['sort']) {
                        if ($for_window == 'for_window') {
                            echo "HREF=#";
                        } else {
                            echo "HREF={$PHP_tmp_SELF}&page={$_REQUEST['page']}&LO_sort={$key}&LO_direction={$direction}&LO_search=" . urlencode($_REQUEST['LO_search']);
                        }
                    }
                    echo " class=column_heading><b>{$value}</b></A>";
                    if ($i == 1) {
                        echo "<DIV id=LOy0 style='position: relative;'></DIV>";
                    }
                    echo "</TD>";
                    $i++;
                }
                //echo '<TD width=0><DIV id=LO'.$i.'></DIV></TD>';
                echo "</TR>";
            }
            $color = 'class=even';
            //style="height: 300px; overflow: auto; padding-right: 16px;"
            if (!isset($_REQUEST['_openSIS_PDF']) && $stop - $start > 10) {
                echo '</THEAD><TBODY>';
            }
            // mab - enable add link as first or last
            if ($result_count != 0 && $link['add']['first'] && $stop - $start >= $link['add']['first']) {
                //if($remove && !isset($_REQUEST['_openSIS_PDF']))
                //	$cols++;
                if ($link['add']['link'] && !isset($_REQUEST['_openSIS_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left class=even>" . button('add', $link['add']['title'], $link['add']['link']) . "</TD></TR>";
                } elseif ($link['add']['span'] && !isset($_REQUEST['_openSIS_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left class=even>" . button('add') . $link['add']['span'] . "</TD></TR>";
                } elseif ($link['add']['html'] && $cols) {
                    echo "<TR {$color}>";
                    if ($remove && !isset($_REQUEST['_openSIS_PDF']) && $link['add']['html']['remove']) {
                        echo "<TD class=even align=left>" . $link['add']['html']['remove'] . "</TD>";
                    } elseif ($remove && !isset($_REQUEST['_openSIS_PDF'])) {
                        echo "<TD class=even align=left>" . button('add') . "</TD>";
                    }
                    foreach ($column_names as $key => $value) {
                        echo "<TD class=even align=left >" . $link['add']['html'][$key] . "</TD>";
                    }
                    echo "</TR>";
                    $count++;
                }
            }
            for ($i = $start; $i <= $stop; $i++) {
                $item = $result[$i];
                if (isset($_REQUEST['_openSIS_PDF']) && $options['print'] && count($item)) {
                    foreach ($item as $key => $value) {
                        $value = eregi_replace('<SELECT.*SELECTED\\>([^<]+)<.*</SELECT\\>', '\\1', $value);
                        $value = eregi_replace('<SELECT.*</SELECT\\>', '', $value);
                        if (strpos($value, 'LO_field') === false) {
                            $item[$key] = str_replace(' ', '&nbsp;', ereg_replace("<div onclick='[^']+'>", '', $value));
                        } else {
                            $item[$key] = ereg_replace("<div onclick='[^']+'>", '', $value);
                        }
                    }
                }
                if ($item['row_color']) {
                    $color = $item['row_color'];
                } elseif ($color == 'class=even') {
                    $color = $side_color;
                } else {
                    $color = 'class=even';
                }
                //$color = '#EDF3FE';
                if (isset($_REQUEST['_openSIS_PDF']) && $count % $repeat_headers == 0) {
                    if ($count != 0) {
                        echo '</TABLE><TABLE cellpadding=6 width=820 class=\\"grid\\">';
                        echo '<!-- NEW PAGE -->';
                    }
                    echo "<TR>";
                    if ($remove && !isset($_REQUEST['_openSIS_PDF'])) {
                        echo "<TD class=grid></TD>";
                    }
                    if ($cols) {
                        foreach ($column_names as $key => $value) {
                            echo "<TD class=grid >" . str_replace(' ', '&nbsp;', $value) . "</TD>";
                        }
                    }
                    echo "</TR>";
                }
                if ($count == 0) {
                    $count = $br;
                }
                echo "<TR {$color}>";
                $count++;
                if ($remove && !isset($_REQUEST['_openSIS_PDF'])) {
                    $button_title = $link['remove']['title'];
                    //if(!$button_title)
                    //$button_title = 'Remove';
                    $button_link = $link['remove']['link'];
                    if (count($link['remove']['variables'])) {
                        foreach ($link['remove']['variables'] as $var => $val) {
                            $button_link .= "&{$var}=" . $item[$val];
                        }
                    }
                    echo "<TD {$color}>" . button('remove', $button_title, $button_link) . "</TD>";
                }
                if ($cols) {
                    foreach ($column_names as $key => $value) {
                        if ($link[$key] && !isset($_REQUEST['_openSIS_PDF'])) {
                            echo "<TD {$color} >";
                            if ($key == 'FULL_NAME') {
                                echo '<DIV id=LOy' . ($count - $br) . ' style="height: 100%; min-height: 100%; position: relative;">';
                            }
                            if ($link[$key]['js'] === true) {
                                echo "<A HREF=# onclick='window.open(\"{$link[$key][link]}";
                                if (count($link[$key]['variables'])) {
                                    foreach ($link[$key]['variables'] as $var => $val) {
                                        echo "&{$var}=" . urlencode($item[$val]);
                                    }
                                }
                                echo "\",\"\",\"scrollbars=yes,resizable=yes,width=800,height=400\");'";
                                if ($link[$key]['extra']) {
                                    echo ' ' . $link[$key]['extra'];
                                }
                                echo ">";
                            } else {
                                echo "<A HREF={$link[$key][link]}";
                                if (count($link[$key]['variables'])) {
                                    foreach ($link[$key]['variables'] as $var => $val) {
                                        echo "&{$var}=" . urlencode($item[$val]);
                                    }
                                }
                                if ($link[$key]['extra']) {
                                    echo ' ' . $link[$key]['extra'];
                                }
                                echo " onclick='grabA(this); return false;'>";
                            }
                            if ($color == Preferences('HIGHLIGHT')) {
                                echo '';
                            } else {
                                echo '<b>';
                            }
                            echo $item[$key];
                            echo '</b>';
                            if (!$item[$key]) {
                                echo '***';
                            }
                            echo "</A>";
                            if ($key == 'FULL_NAME') {
                                echo '</DIV>';
                            }
                            echo "</TD>";
                        } else {
                            echo "<TD {$color} >";
                            if ($key == 'FULL_NAME') {
                                echo '<DIV id=LOy' . ($count - $br) . '  style="position: relative;">';
                            }
                            if ($color == Preferences('HIGHLIGHT')) {
                                echo '';
                            }
                            echo $item[$key];
                            if (!$item[$key]) {
                                echo '&nbsp;';
                            }
                            if ($key == 'FULL_NAME') {
                                echo '<DIV>';
                            }
                            echo "</TD>";
                        }
                    }
                }
                echo "</TR>";
            }
            if ($result_count != 0 && (!$link['add']['first'] || $link['add']['first'] && $stop - $start < $link['add']['first'])) {
                //if($remove && !isset($_REQUEST['_openSIS_PDF']))
                //	$cols++;
                if ($link['add']['link'] && !isset($_REQUEST['_openSIS_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left class=even>" . button('add', $link['add']['title'], $link['add']['link']) . "</TD></TR>";
                } elseif ($link['add']['span'] && !isset($_REQUEST['_openSIS_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left class=even>" . button('add') . $link['add']['span'] . "</TD></TR>";
                } elseif ($link['add']['html'] && $cols) {
                    if ($count % 2) {
                        $color = 'class=even';
                    } else {
                        $color = $side_color;
                    }
                    echo "<TR {$color}>";
                    if ($remove && !isset($_REQUEST['_openSIS_PDF']) && $link['add']['html']['remove']) {
                        echo "<TD class=even align=left>" . $link['add']['html']['remove'] . "</TD>";
                    } elseif ($remove && !isset($_REQUEST['_openSIS_PDF'])) {
                        echo "<TD class=even align=left class=grid_button>" . button('add') . "</TD>";
                    }
                    foreach ($column_names as $key => $value) {
                        echo "<TD class=even align=left  valign=top>" . $link['add']['html'][$key] . "</TD>";
                    }
                    echo "</TR>";
                }
            }
            if ($result_count != 0) {
                if (!isset($_REQUEST['_openSIS_PDF']) && $stop - $start > 10) {
                    echo '</TBODY>';
                }
                echo "</TABLE>";
                // SHADOW
                if (!isset($_REQUEST['_openSIS_PDF'])) {
                    echo '</TD ></TR></TABLE>';
                    echo "<script language='javascript' type='text/javascript'>\n";
                    #echo "alert('calling pager');\n";
                    $number_rec = 100;
                    echo "var pager = new Pager('results',{$number_rec});\n";
                    echo "pager.init();\n";
                    echo "pager.showPageNav('pager', 'pagerNavPosition');\n";
                    echo "pager.showPage(1);\n";
                    echo "</script>\n";
                }
                echo "</TD ></TR>";
                echo "</TABLE>";
                if ($options['center']) {
                    echo '';
                }
            }
            // END PRINT THE LIST ---
        }
        if ($result_count == 0) {
            // mab - problem with table closing if not opened above - do same conditional?
            if ($result_count > $num_displayed || ($options['count'] || $display_zero) && (($result_count == 0 || $display_count == 0) && $plural || ($result_count == 0 || $display_count == 0))) {
                #echo '<td>'; //edited for Search in parents (user>> associate student with parents)
                if ($link['add']['link'] && !isset($_REQUEST['_openSIS_PDF'])) {
                    echo '<table width=120px cellspacing=8 cellpadding=6 ><tr><TD align=left class=lone_add >' . button('add', $link['add']['title'], $link['add']['link']) . '</td></tr></table>';
                } elseif (($link['add']['html'] || $link['add']['span']) && count($column_names) && !isset($_REQUEST['_openSIS_PDF'])) {
                    $color = $side_color;
                    if ($options['center']) {
                        #echo '<CENTER>';
                        // WIDTH=100%
                        //echo "<TABLE cellpadding=1 bgcolor=#f8f8f9 width=100%><TR><TD>";
                        // SHADOW
                        echo '<TABLE width=100% cellpadding=0 cellspacing=0><TR><TD align=center>';
                    }
                    if ($link['add']['html']) {
                        /*Here also change the colour for left corner*/
                        echo "<TABLE cellpadding=6 cellspacing=1 width=96% class=\"grid\"><TR><TD class=subtabs></TD>";
                        foreach ($column_names as $key => $value) {
                            //Here to change the ListOutput Header Colour
                            echo "<TD class=subtabs><A><b>" . str_replace(' ', '&nbsp;', $value) . "</b></A></TD>";
                        }
                        echo "</TR>";
                        echo "<TR class=odd>";
                        if ($link['add']['html']['remove']) {
                            echo "<TD >" . $link['add']['html']['remove'] . "</TD>";
                        } else {
                            echo "<TD>" . button('add') . "</TD>";
                        }
                        foreach ($column_names as $key => $value) {
                            echo "<TD >" . $link['add']['html'][$key] . "</TD>";
                        }
                        echo "</TR>";
                        echo "</TABLE>";
                    } elseif ($link['add']['span'] && !isset($_REQUEST['_openSIS_PDF'])) {
                        echo "<TABLE><TR><TD align=center>" . button('add') . $link['add']['span'] . "</TD></TR></TABLE>";
                    }
                    // SHADOW
                    //echo '</TD></TR></TABLE>';
                    echo "</TD></TR></TABLE>";
                    if ($options['center']) {
                        echo '</CENTER>';
                    }
                }
            }
        }
        if ($result_count != 0) {
            if ($options['yscroll']) {
                echo '<div id="LOy_layer" style="position: absolute; top: 0; left: 0; visibility:hidden;">';
                echo '<TABLE cellpadding=6 id=LOy_table>';
                $i = 1;
                if ($cols && !isset($_REQUEST['_openSIS_PDF'])) {
                    $color = $side_color;
                    foreach ($result as $item) {
                        echo "<TR><TD {$color}  id=LO_row{$i}>";
                        if ($color == Preferences('HIGHLIGHT')) {
                            echo '';
                        }
                        echo $item['FULL_NAME'];
                        if (!$item['FULL_NAME']) {
                            echo '&nbsp;';
                        }
                        if ($color == Preferences('HIGHLIGHT')) {
                            echo '';
                        }
                        echo "</TD></TR>";
                        $i++;
                        if ($item['row_color']) {
                            $color = $item['row_color'];
                        } elseif ($color == 'class=even') {
                            $color = $side_color;
                        } else {
                            $color = 'class=even';
                        }
                    }
                }
                echo '</TABLE>';
                echo '</div>';
            }
            echo '<div id="LOx_layer" style="position: absolute; top: 0; left: 0; visibility:hidden;">';
            echo '<TABLE cellpadding=6 id=LOx_table><TR>';
            $i = 1;
            if ($remove && !isset($_REQUEST['_openSIS_PDF']) && $result_count != 0) {
                echo "<TD class=grid id=LO_col{$i}></TD>";
                $i++;
            }
            if ($cols && !isset($_REQUEST['_openSIS_PDF'])) {
                foreach ($column_names as $key => $value) {
                    echo '<TD class=grid id=LO_col' . $i . '><A class=column_heading><b>' . str_replace('controller', '', $value) . '</b></A></TD>';
                    $i++;
                }
            }
            echo '</TR></TABLE>';
            echo '</div>';
        }
    }
}
예제 #2
0
function ListOutputCustom($result, $column_names, $singular = '', $plural = '', $link = false, $group = false, $options = false)
{
    if (!isset($options['save'])) {
        $options['save'] = true;
    }
    if (!isset($options['print'])) {
        $options['print'] = true;
    }
    if (!isset($options['search'])) {
        $options['search'] = true;
    }
    if (!isset($options['center'])) {
        $options['center'] = true;
    }
    if (!isset($options['count'])) {
        $options['count'] = true;
    }
    if (!isset($options['sort'])) {
        $options['sort'] = true;
    }
    if (!$link) {
        $link = array();
    }
    if (!isset($options['add'])) {
        if (!AllowEdit() || $_REQUEST['_CENTRE_PDF']) {
            if ($link) {
                unset($link['add']);
                unset($link['remove']);
            }
        }
    }
    // PREPARE LINKS ---
    $result_count = $display_count = count($result);
    $num_displayed = 100000;
    $extra = "page={$_REQUEST['page']}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']);
    $tmp_REQUEST = $_REQUEST;
    unset($tmp_REQUEST['page']);
    unset($tmp_REQUEST['LO_sort']);
    unset($tmp_REQUEST['LO_direction']);
    unset($tmp_REQUEST['LO_search']);
    unset($tmp_REQUEST['remove_prompt']);
    unset($tmp_REQUEST['remove_name']);
    unset($tmp_REQUEST['LO_save']);
    unset($tmp_REQUEST['PHPSESSID']);
    $PHP_tmp_SELF = PreparePHP_SELF($tmp_REQUEST);
    // END PREPARE LINKS ---
    // UN-GROUPING
    $group_count = count($group);
    if (!is_array($group)) {
        $group_count = false;
    }
    //$side_color = Preferences('COLOR');
    // need to bring into css merlinvicki
    $side_color = 'bgcolor="#f5f5f5"';
    if ($group_count && $result_count) {
        $color = 'style=" background-color:#fff; padding:3px 4px 3px 4px;"';
        $group_result = $result;
        unset($result);
        $result[0] = '';
        foreach ($group_result as $item1) {
            if ($group_count == 1) {
                if ($color == 'bgcolor="#f5f5f5"') {
                    $color = $side_color;
                } else {
                    $color = 'bgcolor="#f5f5f5"';
                }
            }
            foreach ($item1 as $item2) {
                if ($group_count == 1) {
                    $i++;
                    if (count($group[0]) && $i != 1) {
                        foreach ($group[0] as $column) {
                            $item2[$column] = str_replace('<!-- <!--', '<!--', '<!-- ' . str_replace('-->', '--><!--', $item2[$column])) . ' -->';
                        }
                    }
                    $item2['row_color'] = $color;
                    $result[] = $item2;
                } else {
                    if ($group_count == 2) {
                        if ($color == 'bgcolor="#ffffff"') {
                            $color = $side_color;
                        } else {
                            $color = 'bgcolor="#ffffff"';
                        }
                    }
                    foreach ($item2 as $item3) {
                        if ($group_count == 2) {
                            $i++;
                            if (count($group[0]) && $i != 1) {
                                foreach ($group[0] as $column) {
                                    $item3[$column] = '<!-- ' . $item3[$column] . ' -->';
                                }
                            }
                            if (count($group[1]) && $i != 1) {
                                foreach ($group[1] as $column) {
                                    $item3[$column] = '<!-- ' . $item3[$column] . ' -->';
                                }
                            }
                            $item3['row_color'] = $color;
                            $result[] = $item3;
                        } else {
                            if ($group_count == 3) {
                                if ($color == 'bgcolor="#ffffff"') {
                                    $color = $side_color;
                                } else {
                                    $color = 'bgcolor="#ffffff"';
                                }
                            }
                            foreach ($item3 as $item4) {
                                if ($group_count == 3) {
                                    $i++;
                                    if (count($group[2]) && $i != 1) {
                                        foreach ($group[2] as $column) {
                                            unset($item4[$column]);
                                        }
                                    }
                                    $item4['row_color'] = $color;
                                    $result[] = $item4;
                                }
                            }
                        }
                    }
                }
            }
            $i = 0;
        }
        unset($result[0]);
        $result_count = count($result);
        unset($_REQUEST['LO_sort']);
    }
    // END UN-GROUPING
    $_LIST['output'] = true;
    // PRINT HEADINGS, PREPARE PDF, AND SORT THE LIST ---
    if ($_LIST['output'] != false) {
        if ($result_count != 0) {
            $count = 0;
            $remove = count($link['remove']['variables']);
            $cols = count($column_names);
            // HANDLE SEARCHES ---
            if ($result_count && $_REQUEST['LO_search'] && $_REQUEST['LO_search'] != 'Search') {
                $_REQUEST['LO_search'] = $search_term = str_replace('\\\\"', '"', $_REQUEST['LO_search']);
                $_REQUEST['LO_search'] = $search_term = ereg_replace('[^a-zA-Z0-9 _"]*', '', strtolower($search_term));
                if (substr($search_term, 0, 0) != '"' && substr($search_term, -1) != '"') {
                    $search_term = ereg_replace('"', '', $search_term);
                    while ($space_pos = strpos($search_term, ' ')) {
                        $terms[strtolower(substr($search_term, 0, $space_pos))] = 1;
                        $search_term = substr($search_term, $space_pos + 1);
                    }
                    $terms[trim($search_term)] = 1;
                } else {
                    $search_term = ereg_replace('"', '', $search_term);
                    $terms[trim($search_term)] = 1;
                }
                unset($terms['of']);
                unset($terms['the']);
                unset($terms['a']);
                unset($terms['an']);
                unset($terms['in']);
                foreach ($result as $key => $value) {
                    $values[$key] = 0;
                    foreach ($value as $name => $val) {
                        $val = ereg_replace('[^a-zA-Z0-9 _]+', '', strtolower($val));
                        if (strtolower($_REQUEST['LO_search']) == $val) {
                            $values[$key] += 25;
                        }
                        foreach ($terms as $term => $one) {
                            if (ereg($term, $val)) {
                                $values[$key] += 3;
                            }
                        }
                    }
                    if ($values[$key] == 0) {
                        unset($values[$key]);
                        unset($result[$key]);
                        $result_count--;
                        $display_count--;
                    }
                }
                if ($result_count) {
                    array_multisort($values, SORT_DESC, $result);
                    $result = ReindexResults($result);
                    $values = ReindexResults($values);
                    $last_value = 1;
                    $scale = 100 / $values[$last_value];
                    for ($i = $last_value; $i <= $result_count; $i++) {
                        $result[$i]['RELEVANCE'] = '<!--' . (int) ($values[$i] * $scale) . '--><IMG SRC="assets/pixel_grey.gif" width=' . (int) ($values[$i] * $scale) . ' height=10>';
                    }
                }
                $column_names['RELEVANCE'] = "Relevance";
                if (is_array($group) && count($group)) {
                    $options['count'] == false;
                    $display_zero = true;
                }
            }
            // END SEARCHES ---
            if ($_REQUEST['LO_sort']) {
                foreach ($result as $sort) {
                    if (substr($sort[$_REQUEST['LO_sort']], 0, 4) != '<!--') {
                        $sort_array[] = $sort[$_REQUEST['LO_sort']];
                    } else {
                        $sort_array[] = substr($sort[$_REQUEST['LO_sort']], 4, strpos($sort[$_REQUEST['LO_sort']], '-->') - 5);
                    }
                }
                if ($_REQUEST['LO_direction'] == -1) {
                    $dir = SORT_DESC;
                } else {
                    $dir = SORT_ASC;
                }
                if ($result_count > 1) {
                    if (is_int($sort_array[1]) || is_double($sort_array[1])) {
                        array_multisort($sort_array, $dir, SORT_NUMERIC, $result);
                    } else {
                        array_multisort($sort_array, $dir, $result);
                    }
                    for ($i = $result_count - 1; $i >= 0; $i--) {
                        $result[$i + 1] = $result[$i];
                    }
                    unset($result[0]);
                }
            }
        }
        // HANDLE SAVING THE LIST ---
        if ($_REQUEST['LO_save'] == '1') {
            if (!$options['save_delimiter'] && Preferences('DELIMITER') == 'CSV') {
                $options['save_delimiter'] = 'comma';
            }
            switch ($options['save_delimiter']) {
                case 'comma':
                    $extension = 'csv';
                    break;
                case 'xml':
                    $extension = 'xml';
                    break;
                default:
                    $extension = 'xls';
                    break;
            }
            ob_end_clean();
            if ($options['save_delimiter'] != 'xml') {
                foreach ($column_names as $key => $value) {
                    $output .= str_replace('&nbsp;', ' ', eregi_replace('<BR>', ' ', ereg_replace('<!--.*-->', '', $value))) . ($options['save_delimiter'] == 'comma' ? ',' : "\t");
                }
                $output .= "\n";
            }
            foreach ($result as $item) {
                foreach ($column_names as $key => $value) {
                    if ($options['save_delimiter'] == 'comma' && !$options['save_quotes']) {
                        $item[$key] = str_replace(',', ';', $item[$key]);
                    }
                    $item[$key] = eregi_replace('<SELECT.*SELECTED\\>([^<]+)<.*</SELECT\\>', '\\1', $item[$key]);
                    $item[$key] = eregi_replace('<SELECT.*</SELECT\\>', '', $item[$key]);
                    $output .= ($options['save_quotes'] ? '"' : '') . ($options['save_delimiter'] == 'xml' ? '<' . str_replace(' ', '', $value) . '>' : '') . ereg_replace('<[^>]+>', '', ereg_replace("<div onclick='[^']+'>", '', ereg_replace(' +', ' ', ereg_replace('&[^;]+;', '', str_replace('<BR>&middot;', ' : ', str_replace('&nbsp;', ' ', $item[$key])))))) . ($options['save_delimiter'] == 'xml' ? '</' . str_replace(' ', '', $value) . '>' . "\n" : '') . ($options['save_quotes'] ? '"' : '') . ($options['save_delimiter'] == 'comma' ? ',' : "\t");
                }
                $output .= "\n";
            }
            header("Cache-Control: public");
            header("Pragma: ");
            header("Content-Type: application/{$extension}");
            header("Content-Disposition: inline; filename=\"" . ProgramTitle() . ".{$extension}\"\n");
            if ($options['save_eval']) {
                eval($options['save_eval']);
            }
            echo $output;
            exit;
        }
        // END SAVING THE LIST ---
        if ($options['center']) {
            #echo '<CENTER>';
            if ($result_count > $num_displayed || ($options['count'] || $display_zero) && (($result_count == 0 || $display_count == 0) && $plural || ($result_count == 0 || $display_count == 0))) {
                #echo "<TABLE border=0 cellspacing=3 cellpadding=6>" ;
                if (isset($_REQUEST['_CENTRE_PDF'])) {
                    #echo " width=98%";
                    echo " <TR><TD align=center>";
                }
            }
        }
        if ($options['count'] || $display_zero) {
            if (($result_count == 0 || $display_count == 0) && $plural) {
                echo "<div style=text-align:left><table cellpadding=1 cellspacing=0 ><tr><td ></td><td ><b>No {$plural} were found.</b></td></tr><tr><td colspan=2 ></td></tr></table></div>";
            } elseif ($result_count == 0 || $display_count == 0) {
                echo '<div style=text-align:left><table cellpadding=1 cellspacing=0 ><tr><td ></td><td ><b>None were found.</b></td></tr><tr><td colspan=2></td></tr></table></div>';
            }
        }
        if ($result_count != 0 || $_REQUEST['LO_search'] && $_REQUEST['LO_search'] != 'Search') {
            if (!isset($_REQUEST['_CENTRE_PDF'])) {
                if (!$_REQUEST['page']) {
                    $_REQUEST['page'] = 1;
                }
                if (!$_REQUEST['LO_direction']) {
                    $_REQUEST['LO_direction'] = 1;
                }
                $start = ($_REQUEST['page'] - 1) * $num_displayed + 1;
                $stop = $start + ($num_displayed - 1);
                if ($stop > $result_count) {
                    $stop = $result_count;
                }
                if ($result_count > $num_displayed) {
                    $where_message = "<SMALL>Displaying {$start} through {$stop}</SMALL>";
                    echo "Go to Page ";
                    if (ceil($result_count / $num_displayed) <= 10) {
                        for ($i = 1; $i <= ceil($result_count / $num_displayed); $i++) {
                            if ($i != $_REQUEST['page']) {
                                $pages .= "<A HREF={$PHP_tmp_SELF}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']) . "&page={$i}>{$i}</A>, ";
                            } else {
                                $pages .= "{$i}, ";
                            }
                        }
                        $pages = substr($pages, 0, -2) . "<BR>";
                    } else {
                        for ($i = 1; $i <= 7; $i++) {
                            if ($i != $_REQUEST['page']) {
                                $pages .= "<A HREF={$PHP_tmp_SELF}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']) . "&page={$i}>{$i}</A>, ";
                            } else {
                                $pages .= "{$i}, ";
                            }
                        }
                        $pages = substr($pages, 0, -2) . " ... ";
                        for ($i = ceil($result_count / $num_displayed) - 2; $i <= ceil($result_count / $num_displayed); $i++) {
                            if ($i != $_REQUEST['page']) {
                                $pages .= "<A HREF={$PHP_tmp_SELF}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']) . "&page={$i}>{$i}</A>, ";
                            } else {
                                $pages .= "{$i}, ";
                            }
                        }
                        $pages = substr($pages, 0, -2) . " &nbsp;<A HREF={$PHP_tmp_SELF}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']) . "&page=" . ($_REQUEST['page'] + 1) . ">Next Page</A><BR>";
                    }
                    echo $pages;
                    echo '</TD></TR></TABLE>';
                    echo '<BR>';
                }
            } else {
                $start = 1;
                $stop = $result_count;
                if ($cols > 8 || $_REQUEST['expanded_view']) {
                    $_SESSION['orientation'] = 'landscape';
                    $repeat_headers = 16;
                } else {
                    $repeat_headers = 22;
                }
                if ($options['print']) {
                    $html = explode('', strtolower(ob_get_contents()));
                    $html = $html[count($html) - 1];
                    echo '</TD></TR></TABLE>';
                    $br = substr_count($html, '<br>') + substr_count($html, '</p>') + substr_count($html, '</tr>') + substr_count($html, '</h1>') + substr_count($html, '</h2>') + substr_count($html, '</h3>') + substr_count($html, '</h4>') + substr_count($html, '</h5>');
                    if ($br % 2 != 0) {
                        $br++;
                        echo '<BR>';
                    }
                } else {
                    echo '</TD></TR></TABLE>';
                }
            }
            // END MISC ---
            // WIDTH = 100%
            echo '<TABLE width=98% border=0 cellspacing=0 cellpadding=0><TR>';
            // SEARCH BOX & MORE HEADERS
            if ($where_message || $singular && $plural || !isset($_REQUEST['_CENTRE_PDF']) && $options['search']) {
                echo '<TD align=center>';
                //echo '<TABLE cellpadding=1 width=100% border=1 style="border-collapse:collapse" >';
                //echo "<TR><TD align=left valign=middle>";
                //if($singular && $plural && $options['count'])
                //{
                /*f($display_count > 1)
                			echo "<table cellpadding=5 cellspacing=5 class=alert_box align=left ><tr><td class=notice></td><td class=notice_msg ><b>$display_count $plural were found.</b></td></tr></table>";
                		elseif($display_count==1)
                			echo "<table cellpadding=5 cellspacing=5 class=alert_box align=left ><tr><td class=notice></td><td class=notice_msg ><b>1 $singular was found.</b></td></tr></table>";*/
                //if($where_message)
                //echo '<br>'.$where_message;
                //}
                if ($options['save'] && !isset($_REQUEST['_CENTRE_PDF']) && $result_count > 0) {
                    //echo str_replace("Modules.php", "for_export.php", $PHP_tmp_SELF);
                    //echo "<table cellpadding=0 cellspacing=0 class=download align=left ><tr><td><A HREF=".str_replace('Modules.php', 'for_export.php', $PHP_tmp_SELF)."&$extra&LO_save=1&_CENTRE_PDF=true ><IMG SRC=assets/download.png border=0 alt=\"Download\" title=\"Download\"></a></td></tr></table>";
                    //echo "<br><br><table class=download ><tr><td><A HREF=".str_replace('Modules.php', 'for_export.php', $PHP_tmp_SELF)."&$extra&_CENTRE_PDF=true ><IMG SRC=assets/download.png border=0></a></td><td><A HREF=".str_replace('Modules.php', 'for_export.php', $PHP_tmp_SELF)."&$extra&_CENTRE_PDF=true >Download</A></td></tr></table>";
                    echo '</TD>';
                }
                $colspan = 1;
                if (!isset($_REQUEST['_CENTRE_PDF']) && $options['search']) {
                    $tmp_REQUEST = $_REQUEST;
                    unset($tmp_REQUEST['LO_search']);
                    unset($tmp_REQUEST['page']);
                    echo '<TD height="50" align=right valign=middle>';
                    echo "<INPUT type=text class='cell_medium' id=LO_search name=LO_search value='" . ($_REQUEST['LO_search'] && $_REQUEST['LO_search'] != 'Search' ? $_REQUEST['LO_search'] : 'Search\' style=\'color:BBBBBB\''), "' onfocus='if(this.value==\"Search\") this.value=\"\"; this.style.color=\"000000\";' onblur='if(this.value==\"\") {this.value=\"Search\"; this.style.color=\"BBBBBB\";}' onkeypress='if(event.keyCode==13){document.location.href=\"" . PreparePHP_SELF($tmp_REQUEST) . "&LO_search=\"+this.value; return false;} '>&nbsp;&nbsp;<INPUT type=button class='btn_go' value=Go onclick='document.location.href=\"" . PreparePHP_SELF($tmp_REQUEST) . "&LO_search=\"+document.getElementById(\"LO_search\").value;'></TD>";
                    $colspan++;
                }
                echo "</TR>";
                echo '<TR style="height:0;"><TD width=100% align=center colspan=' . $colspan . '><DIV id=LOx' . (count($column_names) + ($result_count != 0 && $cols && !isset($_REQUEST['_CENTRE_PDF']) ? 1 : 0) + ($remove && !isset($_REQUEST['_CENTRE_PDF']) ? 1 : 0)) . ' style="width:0; position: relative; height:0;"></DIV></TD></TR></TABLE>';
            } else {
                echo '<TD width=100% align=right><DIV id=LOx' . (count($column_names) + ($result_count != 0 && $cols && !isset($_REQUEST['_CENTRE_PDF']) ? 1 : 0) + ($remove && !isset($_REQUEST['_CENTRE_PDF']) ? 1 : 0)) . ' style="width:0; position: relative; height:0;"></DIV>';
            }
            // END SEARCH BOX ----
            echo '</TD></TR><TR><TD>';
            // SHADOW
            if (!isset($_REQUEST['_CENTRE_PDF'])) {
                echo '<TABLE width=100% cellpadding=0 cellspacing=0><TR><TD align=center>';
            }
            echo "<TABLE cellpadding=6 width=100% cellspacing=1 border=\"1px solid #a9d5e9 \" style=\"border-collapse:collapse\" align=center>";
            if (!isset($_REQUEST['_CENTRE_PDF']) && $stop - $start > 10) {
                echo '<THEAD>';
            }
            if (!isset($_REQUEST['_CENTRE_PDF'])) {
                echo '<TR>';
            }
            $i = 1;
            if ($remove && !isset($_REQUEST['_CENTRE_PDF']) && $result_count != 0) {
                //THIS LINE IS FOR COLUMN HEADING
                echo "<TD class=subtabs><DIV id=LOx{$i} style='position: relative;'></DIV></TD>";
                $i++;
            }
            if ($result_count != 0 && $cols && !isset($_REQUEST['_CENTRE_PDF'])) {
                foreach ($column_names as $key => $value) {
                    if ($_REQUEST['LO_sort'] == $key) {
                        $direction = -1 * $_REQUEST['LO_direction'];
                    } else {
                        $direction = 1;
                    }
                    //THIS LINE IS FOR COLUMN HEADING
                    echo "<TD class=subtabs><DIV id=LOx{$i} style='position: relative;'></DIV>";
                    echo "<A ";
                    if ($options['sort']) {
                        echo "HREF={$PHP_tmp_SELF}&page={$_REQUEST['page']}&LO_sort={$key}&LO_direction={$direction}&LO_search=" . urlencode($_REQUEST['LO_search']);
                    }
                    echo " class=column_heading><b>{$value}</b></A>";
                    if ($i == 1) {
                        echo "<DIV id=LOy0 style='position: relative;'></DIV>";
                    }
                    echo "</TD>";
                    $i++;
                }
                //echo '<TD width=0><DIV id=LO'.$i.'></DIV></TD>';
                echo "</TR>";
            }
            $color = 'bgcolor="#ffffff"';
            //style="height: 300px; overflow: auto; padding-right: 16px;"
            if (!isset($_REQUEST['_CENTRE_PDF']) && $stop - $start > 10) {
                echo '</THEAD><TBODY>';
            }
            // mab - enable add link as first or last
            if ($result_count != 0 && $link['add']['first'] && $stop - $start >= $link['add']['first']) {
                //if($remove && !isset($_REQUEST['_CENTRE_PDF']))
                //	$cols++;
                if ($link['add']['link'] && !isset($_REQUEST['_CENTRE_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left class=even>" . button('add', $link['add']['title'], $link['add']['link']) . "</TD></TR>";
                } elseif ($link['add']['span'] && !isset($_REQUEST['_CENTRE_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left class=even>" . button('add') . $link['add']['span'] . "</TD></TR>";
                } elseif ($link['add']['html'] && $cols) {
                    echo "<TR {$color}>";
                    if ($remove && !isset($_REQUEST['_CENTRE_PDF']) && $link['add']['html']['remove']) {
                        echo "<TD class=even align=left>" . $link['add']['html']['remove'] . "</TD>";
                    } elseif ($remove && !isset($_REQUEST['_CENTRE_PDF'])) {
                        echo "<TD class=even align=left>" . button('add') . "</TD>";
                    }
                    foreach ($column_names as $key => $value) {
                        echo "<TD class=even align=left >" . $link['add']['html'][$key] . "</TD>";
                    }
                    echo "</TR>";
                    $count++;
                }
            }
            for ($i = $start; $i <= $stop; $i++) {
                $item = $result[$i];
                if (isset($_REQUEST['_CENTRE_PDF']) && $options['print'] && count($item)) {
                    foreach ($item as $key => $value) {
                        $value = eregi_replace('<SELECT.*SELECTED\\>([^<]+)<.*</SELECT\\>', '\\1', $value);
                        $value = eregi_replace('<SELECT.*</SELECT\\>', '', $value);
                        if (strpos($value, 'LO_field') === false) {
                            $item[$key] = str_replace(' ', '&nbsp;', ereg_replace("<div onclick='[^']+'>", '', $value));
                        } else {
                            $item[$key] = ereg_replace("<div onclick='[^']+'>", '', $value);
                        }
                    }
                }
                if ($item['row_color']) {
                    $color = $item['row_color'];
                } elseif ($color == 'bgcolor="#ffffff"') {
                    $color = $side_color;
                } else {
                    $color = 'bgcolor="#ffffff"';
                }
                //$color = '#EDF3FE';
                if (isset($_REQUEST['_CENTRE_PDF']) && $count % $repeat_headers == 0) {
                    if ($count != 0) {
                        echo '</TABLE>';
                        echo "<div style=\"page-break-after: always;\"></div>";
                        echo "<table width=100%  style=\" font-family:Arial; font-size:12px;\" >";
                        #echo "<tr><td style=\"font-size:15px; font-weight:bold; padding-top:20px;\">". GetSchool(UserSchool())."<div style=\"font-size:12px;\">Student Advanced Report</div></td><td align=right style=\"padding-top:20px;\">". ProperDate(DBDate()) ."<br />Powered by openSIS</td></tr><tr><td colspan=2 style=\"border-top:1px solid #333;\">&nbsp;</td></tr></table>";
                        echo '</table>';
                        echo '<TABLE cellpadding=6 width=100% cellspacing=1 border="1px solid #a9d5e9 " style="border-collapse:collapse" align=center>';
                    }
                    echo "<TR>";
                    if ($remove && !isset($_REQUEST['_CENTRE_PDF'])) {
                        echo "<TD bgcolor=#d3d3d3></TD>";
                    }
                    if ($cols) {
                        foreach ($column_names as $key => $value) {
                            echo "<TD bgcolor=#d3d3d3 >" . str_replace(' ', '&nbsp;', $value) . "</TD>";
                        }
                    }
                    echo "</TR>";
                }
                if ($count == 0) {
                    $count = $br;
                }
                echo "<TR {$color}>";
                $count++;
                if ($remove && !isset($_REQUEST['_CENTRE_PDF'])) {
                    $button_title = $link['remove']['title'];
                    $button_link = $link['remove']['link'];
                    if (count($link['remove']['variables'])) {
                        foreach ($link['remove']['variables'] as $var => $val) {
                            $button_link .= "&{$var}=" . urlencode($item[$val]);
                        }
                    }
                    echo "<TD {$color}>" . button('remove', $button_title, $button_link) . "</TD>";
                }
                if ($cols) {
                    foreach ($column_names as $key => $value) {
                        if ($link[$key] && !isset($_REQUEST['_CENTRE_PDF'])) {
                            echo "<TD {$color} >";
                            if ($key == 'FULL_NAME') {
                                echo '<DIV id=LOy' . ($count - $br) . ' style="height: 100%; min-height: 100%; position: relative;">';
                            }
                            if ($link[$key]['js'] === true) {
                                echo "<A HREF=# onclick='window.open(\"{$link[$key][link]}";
                                if (count($link[$key]['variables'])) {
                                    foreach ($link[$key]['variables'] as $var => $val) {
                                        echo "&{$var}=" . urlencode($item[$val]);
                                    }
                                }
                                echo "\",\"\",\"scrollbars=yes,resizable=yes,width=800,height=400\");'";
                                if ($link[$key]['extra']) {
                                    echo ' ' . $link[$key]['extra'];
                                }
                                echo ">";
                            } else {
                                echo "<A HREF={$link[$key][link]}";
                                if (count($link[$key]['variables'])) {
                                    foreach ($link[$key]['variables'] as $var => $val) {
                                        echo "&{$var}=" . urlencode($item[$val]);
                                    }
                                }
                                if ($link[$key]['extra']) {
                                    echo ' ' . $link[$key]['extra'];
                                }
                                echo " onclick='grabA(this); return false;'>";
                            }
                            if ($color == Preferences('HIGHLIGHT')) {
                                echo '';
                            } else {
                                echo '<b>';
                            }
                            echo $item[$key];
                            echo '</b>';
                            if (!$item[$key]) {
                                echo '***';
                            }
                            echo "</A>";
                            if ($key == 'FULL_NAME') {
                                echo '</DIV>';
                            }
                            echo "</TD>";
                        } else {
                            echo "<TD {$color} >";
                            if ($key == 'FULL_NAME') {
                                echo '<DIV id=LOy' . ($count - $br) . '  style="position: relative;">';
                            }
                            if ($color == Preferences('HIGHLIGHT')) {
                                echo '';
                            }
                            echo $item[$key];
                            if (!$item[$key]) {
                                echo '&nbsp;';
                            }
                            if ($key == 'FULL_NAME') {
                                echo '<DIV>';
                            }
                            echo "</TD>";
                        }
                    }
                }
                echo "</TR>";
            }
            if ($result_count != 0 && (!$link['add']['first'] || $link['add']['first'] && $stop - $start < $link['add']['first'])) {
                if ($link['add']['link'] && !isset($_REQUEST['_CENTRE_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left class=even>" . button('add', $link['add']['title'], $link['add']['link']) . "</TD></TR>";
                } elseif ($link['add']['span'] && !isset($_REQUEST['_CENTRE_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left class=even>" . button('add') . $link['add']['span'] . "</TD></TR>";
                } elseif ($link['add']['html'] && $cols) {
                    if ($count % 2) {
                        $color = 'bgcolor=#ffffff';
                    } else {
                        $color = $side_color;
                    }
                    echo "<TR {$color}>";
                    if ($remove && !isset($_REQUEST['_CENTRE_PDF']) && $link['add']['html']['remove']) {
                        echo "<TD bgcolor=#ffffff align=left>" . $link['add']['html']['remove'] . "</TD>";
                    } elseif ($remove && !isset($_REQUEST['_CENTRE_PDF'])) {
                        echo "<TD bgcolor=#ffffff align=left >" . button('add') . "</TD>";
                    }
                    foreach ($column_names as $key => $value) {
                        echo "<TD bgcolor=#ffffff align=left  valign=top>" . $link['add']['html'][$key] . "</TD>";
                    }
                    echo "</TR>";
                }
            }
            if ($result_count != 0) {
                if (!isset($_REQUEST['_CENTRE_PDF']) && $stop - $start > 10) {
                    echo '</TBODY>';
                }
                echo "</TABLE>";
                if (!isset($_REQUEST['_CENTRE_PDF'])) {
                    echo '</TD ></TR></TABLE>';
                }
                echo "</TD ></TR>";
                echo "</TABLE>";
                if ($options['center']) {
                    echo '';
                }
            }
        }
        if ($result_count == 0) {
            if ($result_count > $num_displayed || ($options['count'] || $display_zero) && (($result_count == 0 || $display_count == 0) && $plural || ($result_count == 0 || $display_count == 0))) {
                if ($link['add']['link'] && !isset($_REQUEST['_CENTRE_PDF'])) {
                    echo '<table width=120px cellspacing=8 cellpadding=6 ><tr><TD align=left class=lone_add >' . button('add', $link['add']['title'], $link['add']['link']) . '</td></tr></table>';
                } elseif (($link['add']['html'] || $link['add']['span']) && count($column_names) && !isset($_REQUEST['_CENTRE_PDF'])) {
                    $color = $side_color;
                    if ($options['center']) {
                        echo '<TABLE width=100% cellpadding=0 cellspacing=0><TR><TD align=center>';
                    }
                    if ($link['add']['html']) {
                        echo "<TABLE cellpadding=6 cellspacing=1 width=96% class=\"grid\"><TR><TD class=subtabs></TD>";
                        foreach ($column_names as $key => $value) {
                            echo "<TD class=subtabs><A><b>" . str_replace(' ', '&nbsp;', $value) . "</b></A></TD>";
                        }
                        echo "</TR>";
                        echo "<TR class=odd>";
                        if ($link['add']['html']['remove']) {
                            echo "<TD >" . $link['add']['html']['remove'] . "</TD>";
                        } else {
                            echo "<TD>" . button('add') . "</TD>";
                        }
                        foreach ($column_names as $key => $value) {
                            echo "<TD >" . $link['add']['html'][$key] . "</TD>";
                        }
                        echo "</TR>";
                        echo "</TABLE>";
                    } elseif ($link['add']['span'] && !isset($_REQUEST['_CENTRE_PDF'])) {
                        echo "<TABLE><TR><TD align=center>" . button('add') . $link['add']['span'] . "</TD></TR></TABLE>";
                    }
                    echo "</TD></TR></TABLE>";
                    if ($options['center']) {
                        echo '</CENTER>';
                    }
                }
            }
        }
        if ($result_count != 0) {
            if ($options['yscroll']) {
                echo '<div id="LOy_layer" style="position: absolute; top: 0; left: 0; visibility:hidden;">';
                echo '<TABLE cellpadding=6 id=LOy_table>';
                $i = 1;
                if ($cols && !isset($_REQUEST['_CENTRE_PDF'])) {
                    $color = $side_color;
                    foreach ($result as $item) {
                        echo "<TR><TD {$color}  id=LO_row{$i}>";
                        if ($color == Preferences('HIGHLIGHT')) {
                            echo '';
                        }
                        echo $item['FULL_NAME'];
                        if (!$item['FULL_NAME']) {
                            echo '&nbsp;';
                        }
                        if ($color == Preferences('HIGHLIGHT')) {
                            echo '';
                        }
                        echo "</TD></TR>";
                        $i++;
                        if ($item['row_color']) {
                            $color = $item['row_color'];
                        } elseif ($color == 'class=even') {
                            $color = $side_color;
                        } else {
                            $color = 'class=even';
                        }
                    }
                }
                echo '</TABLE>';
                echo '</div>';
            }
            echo '<div id="LOx_layer" style="position: absolute; top: 0; left: 0; visibility:hidden;">';
            echo '<div style="page-break-before: inherit;">&nbsp;</div>';
            echo '<TABLE cellpadding=6 id=LOx_table><TR>';
            $i = 1;
            if ($remove && !isset($_REQUEST['_CENTRE_PDF']) && $result_count != 0) {
                echo "<TD class=grid id=LO_col{$i}></TD>";
                $i++;
            }
            if ($cols && !isset($_REQUEST['_CENTRE_PDF'])) {
                foreach ($column_names as $key => $value) {
                    echo '<TD class=grid id=LO_col' . $i . '><A class=column_heading><b>' . str_replace('controller', '', $value) . '</b></A></TD>';
                    $i++;
                }
            }
            echo '</TR></TABLE>';
            echo '</div>';
        }
    }
}
function ListOutputFloat($result, $column_names, $singular = '', $plural = '', $link = false, $group = false, $options = false)
{
    if (!isset($options['save'])) {
        $options['save'] = true;
    }
    if (!isset($options['print'])) {
        $options['print'] = true;
    }
    if (!isset($options['search'])) {
        $options['search'] = true;
    }
    if (!isset($options['center'])) {
        $options['center'] = true;
    }
    if (!isset($options['count'])) {
        $options['count'] = true;
    }
    if (!isset($options['sort'])) {
        $options['sort'] = true;
    }
    if (!$link) {
        $link = array();
    }
    if (!isset($options['add'])) {
        if (!AllowEdit() || $_REQUEST['_openSIS_PDF']) {
            if ($link) {
                unset($link['add']);
                unset($link['remove']);
            }
        }
    }
    // PREPARE LINKS ---
    $result_count = $display_count = count($result);
    $num_displayed = 100000;
    $extra = "page={$_REQUEST['page']}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']);
    $tmp_REQUEST = $_REQUEST;
    unset($tmp_REQUEST['page']);
    unset($tmp_REQUEST['LO_sort']);
    unset($tmp_REQUEST['LO_direction']);
    unset($tmp_REQUEST['LO_search']);
    unset($tmp_REQUEST['remove_prompt']);
    unset($tmp_REQUEST['remove_name']);
    unset($tmp_REQUEST['LO_save']);
    unset($tmp_REQUEST['PHPSESSID']);
    $PHP_tmp_SELF = PreparePHP_SELF($tmp_REQUEST);
    // END PREPARE LINKS ---
    // UN-GROUPING
    $group_count = count($group);
    if (!is_array($group)) {
        $group_count = false;
    }
    //$side_color = Preferences('COLOR');
    $side_color = '#dfe8ee';
    if ($group_count && $result_count) {
        $color = '#f5f5f5';
        $group_result = $result;
        unset($result);
        $result[0] = '';
        foreach ($group_result as $item1) {
            if ($group_count == 1) {
                if ($color == '#F8F8F9') {
                    $color = $side_color;
                } else {
                    $color = '#F8F8F9';
                }
            }
            foreach ($item1 as $item2) {
                if ($group_count == 1) {
                    $i++;
                    if (count($group[0]) && $i != 1) {
                        foreach ($group[0] as $column) {
                            $item2[$column] = str_replace('<!-- <!--', '<!--', '<!-- ' . str_replace('-->', '--><!--', $item2[$column])) . ' -->';
                        }
                    }
                    $item2['row_color'] = $color;
                    $result[] = $item2;
                } else {
                    if ($group_count == 2) {
                        if ($color == '#F8F8F9') {
                            $color = $side_color;
                        } else {
                            $color = '#F8F8F9';
                        }
                    }
                    foreach ($item2 as $item3) {
                        if ($group_count == 2) {
                            $i++;
                            if (count($group[0]) && $i != 1) {
                                foreach ($group[0] as $column) {
                                    $item3[$column] = '<!-- ' . $item3[$column] . ' -->';
                                }
                            }
                            if (count($group[1]) && $i != 1) {
                                foreach ($group[1] as $column) {
                                    $item3[$column] = '<!-- ' . $item3[$column] . ' -->';
                                }
                            }
                            $item3['row_color'] = $color;
                            $result[] = $item3;
                        } else {
                            if ($group_count == 3) {
                                if ($color == '#F8F8F9') {
                                    $color = $side_color;
                                } else {
                                    $color = '#F8F8F9';
                                }
                            }
                            foreach ($item3 as $item4) {
                                if ($group_count == 3) {
                                    $i++;
                                    if (count($group[2]) && $i != 1) {
                                        foreach ($group[2] as $column) {
                                            unset($item4[$column]);
                                        }
                                    }
                                    $item4['row_color'] = $color;
                                    $result[] = $item4;
                                }
                            }
                        }
                    }
                }
            }
            $i = 0;
        }
        unset($result[0]);
        $result_count = count($result);
        unset($_REQUEST['LO_sort']);
    }
    // END UN-GROUPING
    $_LIST['output'] = true;
    // PRINT HEADINGS, PREPARE PDF, AND SORT THE LIST ---
    if ($_LIST['output'] != false) {
        if ($result_count != 0) {
            $count = 0;
            $remove = count($link['remove']['variables']);
            $cols = count($column_names);
            // HANDLE SEARCHES ---
            if ($result_count && $_REQUEST['LO_search'] && $_REQUEST['LO_search'] != 'Search') {
                $_REQUEST['LO_search'] = $search_term = str_replace('\\\\"', '"', $_REQUEST['LO_search']);
                $_REQUEST['LO_search'] = $search_term = ereg_replace('[^a-zA-Z0-9 _"]*', '', strtolower($search_term));
                if (substr($search_term, 0, 0) != '"' && substr($search_term, -1) != '"') {
                    $search_term = ereg_replace('"', '', $search_term);
                    while ($space_pos = strpos($search_term, ' ')) {
                        $terms[strtolower(substr($search_term, 0, $space_pos))] = 1;
                        $search_term = substr($search_term, $space_pos + 1);
                    }
                    $terms[trim($search_term)] = 1;
                } else {
                    $search_term = ereg_replace('"', '', $search_term);
                    $terms[trim($search_term)] = 1;
                }
                unset($terms['of']);
                unset($terms['the']);
                unset($terms['a']);
                unset($terms['an']);
                unset($terms['in']);
                foreach ($result as $key => $value) {
                    $values[$key] = 0;
                    foreach ($value as $name => $val) {
                        $val = ereg_replace('[^a-zA-Z0-9 _]+', '', strtolower($val));
                        if (strtolower($_REQUEST['LO_search']) == $val) {
                            $values[$key] += 25;
                        }
                        foreach ($terms as $term => $one) {
                            if (ereg($term, $val)) {
                                $values[$key] += 3;
                            }
                        }
                    }
                    if ($values[$key] == 0) {
                        unset($values[$key]);
                        unset($result[$key]);
                        $result_count--;
                        $display_count--;
                    }
                }
                if ($result_count) {
                    array_multisort($values, SORT_DESC, $result);
                    $result = ReindexResults($result);
                    $values = ReindexResults($values);
                    $last_value = 1;
                    $scale = 100 / $values[$last_value];
                    for ($i = $last_value; $i <= $result_count; $i++) {
                        $result[$i]['RELEVANCE'] = '<!--' . (int) ($values[$i] * $scale) . '--><IMG SRC="assets/pixel_grey.gif" width=' . (int) ($values[$i] * $scale) . ' height=10>';
                    }
                }
                $column_names['RELEVANCE'] = "Relevance";
                if (is_array($group) && count($group)) {
                    $options['count'] == false;
                    $display_zero = true;
                }
            }
            // END SEARCHES ---
            if ($_REQUEST['LO_sort']) {
                foreach ($result as $sort) {
                    if (substr($sort[$_REQUEST['LO_sort']], 0, 4) != '<!--') {
                        $sort_array[] = $sort[$_REQUEST['LO_sort']];
                    } else {
                        $sort_array[] = substr($sort[$_REQUEST['LO_sort']], 4, strpos($sort[$_REQUEST['LO_sort']], '-->') - 5);
                    }
                }
                if ($_REQUEST['LO_direction'] == -1) {
                    $dir = SORT_DESC;
                } else {
                    $dir = SORT_ASC;
                }
                if ($result_count > 1) {
                    if (is_int($sort_array[1]) || is_double($sort_array[1])) {
                        array_multisort($sort_array, $dir, SORT_NUMERIC, $result);
                    } else {
                        array_multisort($sort_array, $dir, $result);
                    }
                    for ($i = $result_count - 1; $i >= 0; $i--) {
                        $result[$i + 1] = $result[$i];
                    }
                    unset($result[0]);
                }
            }
        }
        // HANDLE SAVING THE LIST ---
        if ($_REQUEST['LO_save'] == '1') {
            if (!$options['save_delimiter'] && Preferences('DELIMITER') == 'CSV') {
                $options['save_delimiter'] = 'comma';
            }
            switch ($options['save_delimiter']) {
                case 'comma':
                    $extension = 'csv';
                    break;
                case 'xml':
                    $extension = 'xml';
                    break;
                default:
                    $extension = 'xls';
                    break;
            }
            ob_end_clean();
            if ($options['save_delimiter'] != 'xml') {
                foreach ($column_names as $key => $value) {
                    $output .= str_replace('&nbsp;', ' ', eregi_replace('<BR>', ' ', ereg_replace('<!--.*-->', '', $value))) . ($options['save_delimiter'] == 'comma' ? ',' : "\t");
                }
                $output .= "\n";
            }
            foreach ($result as $item) {
                foreach ($column_names as $key => $value) {
                    if ($options['save_delimiter'] == 'comma' && !$options['save_quotes']) {
                        $item[$key] = str_replace(',', ';', $item[$key]);
                    }
                    $item[$key] = eregi_replace('<SELECT.*SELECTED\\>([^<]+)<.*</SELECT\\>', '\\1', $item[$key]);
                    $item[$key] = eregi_replace('<SELECT.*</SELECT\\>', '', $item[$key]);
                    $output .= ($options['save_quotes'] ? '"' : '') . ($options['save_delimiter'] == 'xml' ? '<' . str_replace(' ', '', $value) . '>' : '') . ereg_replace('<[^>]+>', '', ereg_replace("<div onclick='[^']+'>", '', ereg_replace(' +', ' ', ereg_replace('&[^;]+;', '', str_replace('<BR>&middot;', ' : ', str_replace('&nbsp;', ' ', $item[$key])))))) . ($options['save_delimiter'] == 'xml' ? '</' . str_replace(' ', '', $value) . '>' . "\n" : '') . ($options['save_quotes'] ? '"' : '') . ($options['save_delimiter'] == 'comma' ? ',' : "\t");
                }
                $output .= "\n";
            }
            header("Cache-Control: public");
            header("Pragma: ");
            header("Content-Type: application/{$extension}");
            header("Content-Disposition: inline; filename=\"" . ProgramTitle() . ".{$extension}\"\n");
            if ($options['save_eval']) {
                eval($options['save_eval']);
            }
            echo $output;
            exit;
        }
        // END SAVING THE LIST ---
        if ($options['center']) {
            echo '<CENTER>';
        }
        if ($result_count > $num_displayed || ($options['count'] || $display_zero) && (($result_count == 0 || $display_count == 0) && $plural || ($result_count == 0 || $display_count == 0))) {
            echo "<TABLE width=100% border=0 cellspacing=1";
            if (isset($_REQUEST['_openSIS_PDF'])) {
                //	echo " width=100%";
                echo "><TR><TD align=center>";
            }
        }
        if ($options['count'] || $display_zero) {
            if (($result_count == 0 || $display_count == 0) && $plural) {
                echo "<table class=alert_center><tr><td class=alert_center_padding><b>No {$plural} were found.</b></td></tr></table>";
            } elseif ($result_count == 0 || $display_count == 0) {
                echo '<table class=alert_center><tr><td class=alert_center_padding><b>None were found.</b></td></tr></table>';
            }
        }
        if ($result_count != 0 || $_REQUEST['LO_search'] && $_REQUEST['LO_search'] != 'Search') {
            if (!isset($_REQUEST['_openSIS_PDF'])) {
                if (!$_REQUEST['page']) {
                    $_REQUEST['page'] = 1;
                }
                if (!$_REQUEST['LO_direction']) {
                    $_REQUEST['LO_direction'] = 1;
                }
                $start = ($_REQUEST['page'] - 1) * $num_displayed + 1;
                $stop = $start + ($num_displayed - 1);
                if ($stop > $result_count) {
                    $stop = $result_count;
                }
                if ($result_count > $num_displayed) {
                    $where_message = "<SMALL>Displaying {$start} through {$stop}</SMALL>";
                    echo "Go to Page ";
                    if (ceil($result_count / $num_displayed) <= 10) {
                        for ($i = 1; $i <= ceil($result_count / $num_displayed); $i++) {
                            if ($i != $_REQUEST['page']) {
                                $pages .= "<A HREF={$PHP_tmp_SELF}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']) . "&page={$i}>{$i}</A>, ";
                            } else {
                                $pages .= "{$i}, ";
                            }
                        }
                        $pages = substr($pages, 0, -2) . "<BR>";
                    } else {
                        for ($i = 1; $i <= 7; $i++) {
                            if ($i != $_REQUEST['page']) {
                                $pages .= "<A HREF={$PHP_tmp_SELF}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']) . "&page={$i}>{$i}</A>, ";
                            } else {
                                $pages .= "{$i}, ";
                            }
                        }
                        $pages = substr($pages, 0, -2) . " ... ";
                        for ($i = ceil($result_count / $num_displayed) - 2; $i <= ceil($result_count / $num_displayed); $i++) {
                            if ($i != $_REQUEST['page']) {
                                $pages .= "<A HREF={$PHP_tmp_SELF}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']) . "&page={$i}>{$i}</A>, ";
                            } else {
                                $pages .= "{$i}, ";
                            }
                        }
                        $pages = substr($pages, 0, -2) . " &nbsp;<A HREF={$PHP_tmp_SELF}&LO_sort={$_REQUEST['LO_sort']}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($_REQUEST['LO_search']) . "&page=" . ($_REQUEST['page'] + 1) . ">Next Page</A><BR>";
                    }
                    echo $pages;
                    echo '</TD></TR></TABLE>';
                    echo '<BR>';
                }
            } else {
                $start = 1;
                $stop = $result_count;
                if ($cols > 8 || $_REQUEST['expanded_view']) {
                    $_SESSION['orientation'] = 'landscape';
                    $repeat_headers = 17;
                } else {
                    $repeat_headers = 28;
                }
                if ($options['print']) {
                    $html = explode('<!-- new page -->', strtolower(ob_get_contents()));
                    $html = $html[count($html) - 1];
                    echo '</TD></TR></TABLE>';
                    $br = substr_count($html, '<br>') + substr_count($html, '</p>') + substr_count($html, '</tr>') + substr_count($html, '</h1>') + substr_count($html, '</h2>') + substr_count($html, '</h3>') + substr_count($html, '</h4>') + substr_count($html, '</h5>');
                    if ($br % 2 != 0) {
                        $br++;
                        echo '<BR>';
                    }
                } else {
                    echo '</TD></TR></TABLE>';
                }
            }
            // END MISC ---
            // WIDTH = 100%
            echo '<TABLE class=grid cellspacing=0 cellpadding=0  style="border-left:1px solid #787878; border-top:1px solid #787878;">';
            // SEARCH BOX & MORE HEADERS
            if ($where_message || $singular && $plural || !isset($_REQUEST['_openSIS_PDF']) && $options['search']) {
                /*
                echo '<TD width=100% >';
                echo '<TABLE class=\"grid\" cellpadding=1 >';
                echo "<TR><TD align=left>";
                if($singular && $plural && $options['count'])
                {
                	if($display_count > 1)
                		echo "<b>$display_count $plural were found.</b> &nbsp; &nbsp;";
                	elseif($display_count==1)
                		echo "<b>1 $singular was found.</b> &nbsp; &nbsp;";
                	if($where_message)
                		echo '<BR>'.$where_message;
                		
                }
                if($options['save'] && !isset($_REQUEST['_openSIS_PDF']) && $result_count > 0)
                	echo "<A HREF=$PHP_tmp_SELF&$extra&LO_save=1&_openSIS_PDF=true><IMG SRC=assets/download.gif border=0 vspace=0 hspace=0></A>";
                echo '</TD>';
                $colspan = 1;
                if(!isset($_REQUEST['_openSIS_PDF']) && $options['search'])
                {
                	$tmp_REQUEST = $_REQUEST;
                	unset($tmp_REQUEST['LO_search']);
                	unset($tmp_REQUEST['page']);
                	echo '<TD align=right>';
                	echo "<INPUT type=text id=LO_search name=LO_search value='".(($_REQUEST['LO_search'] && $_REQUEST['LO_search']!='Search')?$_REQUEST['LO_search']:'Search\' style=\'color:BBBBBB\''),"' onfocus='if(this.value==\"Search\") this.value=\"\"; this.style.color=\"000000\";' onblur='if(this.value==\"\") {this.value=\"Search\"; this.style.color=\"BBBBBB\";}' onkeypress='if(event.keyCode==13){document.location.href=\"".PreparePHP_SELF($tmp_REQUEST)."&LO_search=\"+this.value; return false;} '><INPUT type=button value=Go class=btn_go onclick='document.location.href=\"".PreparePHP_SELF($tmp_REQUEST)."&LO_search=\"+document.getElementById(\"LO_search\").value;'></TD>";
                	$colspan++;
                	
                }
                echo "</TR>";
                echo '<TR style="height:0;"><TD width=100% style="height:0;" height=0 align=right colspan='.$colspan.'><DIV id=LOx'.(count($column_names)+(($result_count!=0 && $cols && !isset($_REQUEST['_openSIS_PDF']))?1:0)+(($remove && !isset($_REQUEST['_openSIS_PDF']))?1:0)).' style="width:0; position: relative; height:0;"></DIV></TD></TR></TABLE>';
                */
            } else {
                echo '<TR><TD width=100% align=right><DIV id=LOx' . (count($column_names) + ($result_count != 0 && $cols && !isset($_REQUEST['_openSIS_PDF']) ? 1 : 0) + ($remove && !isset($_REQUEST['_openSIS_PDF']) ? 1 : 0)) . ' style="width:0; position: relative; height:0;"></DIV></TD></TR>';
            }
            // END SEARCH BOX ----
            echo '<TR><TD>';
            // SHADOW
            if (!isset($_REQUEST['_openSIS_PDF'])) {
                echo '<TABLE cellpadding=0 cellspacing=0 width=100%><TR><TD>';
            }
            echo "<TABLE class=\"grid\" cellpadding=6 cellspacing=0 width=100%>";
            if (!isset($_REQUEST['_openSIS_PDF']) && $stop - $start > 10) {
                echo '<THEAD>';
            }
            if (!isset($_REQUEST['_openSIS_PDF'])) {
                echo '<TR>';
            }
            $i = 1;
            if ($remove && !isset($_REQUEST['_openSIS_PDF']) && $result_count != 0) {
                echo "<TD class=\"subtabs\"><DIV id=LOx{$i} style='position: relative;'></DIV></TD>";
                $i++;
            }
            if ($result_count != 0 && $cols && !isset($_REQUEST['_openSIS_PDF'])) {
                foreach ($column_names as $key => $value) {
                    if ($_REQUEST['LO_sort'] == $key) {
                        $direction = -1 * $_REQUEST['LO_direction'];
                    } else {
                        $direction = 1;
                    }
                    echo "<TD class=\"subtabs\"><DIV id=LOx{$i} style='position: relative;'></DIV>";
                    echo "<A ";
                    if ($options['sort']) {
                        echo "HREF={$PHP_tmp_SELF}&page={$_REQUEST['page']}&LO_sort={$key}&LO_direction={$direction}&LO_search=" . urlencode($_REQUEST['LO_search']);
                    }
                    echo " class=column_heading><b>{$value}</b></A>";
                    if ($i == 1) {
                        echo "<DIV id=LOy0 style='position: relative;'></DIV>";
                    }
                    echo "</TD>";
                    $i++;
                }
                //echo '<TD width=0><DIV id=LO'.$i.'></DIV></TD>';
                echo "</TR>";
            }
            $color = '#F8F8F9';
            //style="height: 300px; overflow: auto; padding-right: 16px;"
            if (!isset($_REQUEST['_openSIS_PDF']) && $stop - $start > 10) {
                echo '</THEAD><TBODY>';
            }
            // mab - enable add link as first or last
            if ($result_count != 0 && $link['add']['first'] && $stop - $start >= $link['add']['first']) {
                //if($remove && !isset($_REQUEST['_openSIS_PDF']))
                //	$cols++;
                if ($link['add']['link'] && !isset($_REQUEST['_openSIS_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left >" . button('add', $link['add']['title'], $link['add']['link']) . "</TD></TR>";
                } elseif ($link['add']['span'] && !isset($_REQUEST['_openSIS_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left >" . button('add') . $link['add']['span'] . "</TD></TR>";
                } elseif ($link['add']['html'] && $cols) {
                    echo "<TR bgcolor={$color}>";
                    if ($remove && !isset($_REQUEST['_openSIS_PDF']) && $link['add']['html']['remove']) {
                        echo "<TD >" . $link['add']['html']['remove'] . "</TD>";
                    } elseif ($remove && !isset($_REQUEST['_openSIS_PDF'])) {
                        echo "<TD >" . button('add') . "</TD>";
                    }
                    foreach ($column_names as $key => $value) {
                        echo "<TD >" . $link['add']['html'][$key] . "</TD>";
                    }
                    echo "</TR>";
                    $count++;
                }
            }
            for ($i = $start; $i <= $stop; $i++) {
                $item = $result[$i];
                if (isset($_REQUEST['_openSIS_PDF']) && $options['print'] && count($item)) {
                    foreach ($item as $key => $value) {
                        $value = eregi_replace('<SELECT.*SELECTED\\>([^<]+)<.*</SELECT\\>', '\\1', $value);
                        $value = eregi_replace('<SELECT.*</SELECT\\>', '', $value);
                        if (strpos($value, 'LO_field') === false) {
                            $item[$key] = str_replace(' ', '&nbsp;', ereg_replace("<div onclick='[^']+'>", '', $value));
                        } else {
                            $item[$key] = ereg_replace("<div onclick='[^']+'>", '', $value);
                        }
                    }
                }
                if ($item['row_color']) {
                    $color = $item['row_color'];
                } elseif ($color == '#F8F8F9') {
                    $color = $side_color;
                } else {
                    $color = '#F8F8F9';
                }
                //$color = '#EDF3FE';
                if (isset($_REQUEST['_openSIS_PDF']) && $count % $repeat_headers == 0) {
                    if ($count != 0) {
                        echo '</TABLE><TABLE class=\\"grid\\" cellspacing=1 cellpadding=6 >';
                        echo '<!-- NEW PAGE -->';
                    }
                    echo "<TR>";
                    if ($remove && !isset($_REQUEST['_openSIS_PDF'])) {
                        echo "<TD class=\"subtabs\"></TD>";
                    }
                    if ($cols) {
                        foreach ($column_names as $key => $value) {
                            echo "<TD class=\"subtabs\" class=LO_field><b>" . str_replace(' ', '&nbsp;', $value) . "</b></FONT></TD>";
                        }
                    }
                    echo "</TR>";
                }
                if ($count == 0) {
                    $count = $br;
                }
                echo "<TR bgcolor={$color}>";
                $count++;
                if ($remove && !isset($_REQUEST['_openSIS_PDF'])) {
                    $button_title = $link['remove']['title'];
                    //if(!$button_title)
                    //$button_title = 'Remove';
                    $button_link = $link['remove']['link'];
                    if (count($link['remove']['variables'])) {
                        foreach ($link['remove']['variables'] as $var => $val) {
                            $button_link .= "&{$var}=" . urlencode($item[$val]);
                        }
                    }
                    echo "<TD bgcolor={$color}>" . button('remove', $button_title, $button_link) . "</TD>";
                }
                if ($cols) {
                    foreach ($column_names as $key => $value) {
                        if ($link[$key] && !isset($_REQUEST['_openSIS_PDF'])) {
                            echo "<TD bgcolor={$color} class=LO_field>";
                            if ($key == 'FULL_NAME') {
                                echo '<DIV id=LOy' . ($count - $br) . ' height=20 style="height: 20; min-height: 20; position: relative;">';
                            }
                            if ($link[$key]['js'] === true) {
                                echo "<A HREF=# onclick='window.open(\"{$link[$key][link]}";
                                if (count($link[$key]['variables'])) {
                                    foreach ($link[$key]['variables'] as $var => $val) {
                                        echo "&{$var}=" . urlencode($item[$val]);
                                    }
                                }
                                echo "\",\"\",\"scrollbars=yes,resizable=yes,width=800,height=400\");'";
                                if ($link[$key]['extra']) {
                                    echo ' ' . $link[$key]['extra'];
                                }
                                echo ">";
                            } else {
                                echo "<A HREF={$link[$key][link]}";
                                if (count($link[$key]['variables'])) {
                                    foreach ($link[$key]['variables'] as $var => $val) {
                                        echo "&{$var}=" . urlencode($item[$val]);
                                    }
                                }
                                if ($link[$key]['extra']) {
                                    echo ' ' . $link[$key]['extra'];
                                }
                                echo ">";
                            }
                            if ($color == Preferences('HIGHLIGHT')) {
                                echo '';
                            } else {
                                echo '';
                            }
                            echo $item[$key];
                            echo '';
                            if (!$item[$key]) {
                                echo '***';
                            }
                            echo "</A>";
                            if ($key == 'FULL_NAME') {
                                echo '</DIV>';
                            }
                            echo "</TD>";
                        } else {
                            echo "<TD bgcolor={$color} class=LO_field>";
                            if ($key == 'FULL_NAME') {
                                echo '<DIV id=LOy' . ($count - $br) . ' height=20 style="position: relative;">';
                            }
                            if ($color == Preferences('HIGHLIGHT')) {
                                echo '';
                            }
                            echo $item[$key];
                            if (!$item[$key]) {
                                echo '&nbsp;';
                            }
                            if ($key == 'FULL_NAME') {
                                echo '<DIV>';
                            }
                            echo "</TD>";
                        }
                    }
                }
                echo "</TR>";
            }
            if ($result_count != 0 && (!$link['add']['first'] || $link['add']['first'] && $stop - $start < $link['add']['first'])) {
                //if($remove && !isset($_REQUEST['_openSIS_PDF']))
                //	$cols++;
                if ($link['add']['link'] && !isset($_REQUEST['_openSIS_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left bgcolor=#FFFFFF>" . button('add', $link['add']['title'], $link['add']['link']) . "</TD></TR>";
                } elseif ($link['add']['span'] && !isset($_REQUEST['_openSIS_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left bgcolor=#FFFFFF>" . button('add') . $link['add']['span'] . "</TD></TR>";
                } elseif ($link['add']['html'] && $cols) {
                    if ($count % 2) {
                        $color = '#F8F8F9';
                    } else {
                        $color = $side_color;
                    }
                    echo "<TR bgcolor={$color}>";
                    if ($remove && !isset($_REQUEST['_openSIS_PDF']) && $link['add']['html']['remove']) {
                        echo "<TD bgcolor={$color}>" . $link['add']['html']['remove'] . "</TD>";
                    } elseif ($remove && !isset($_REQUEST['_openSIS_PDF'])) {
                        echo "<TD bgcolor={$color}>" . button('add') . "</TD>";
                    }
                    foreach ($column_names as $key => $value) {
                        echo "<TD bgcolor={$color} class=LO_field>" . $link['add']['html'][$key] . "</TD>";
                    }
                    echo "</TR>";
                }
            }
            if ($result_count != 0) {
                if (!isset($_REQUEST['_openSIS_PDF']) && $stop - $start > 10) {
                    echo '</TBODY>';
                }
                echo "</TABLE>";
                // SHADOW
                if (!isset($_REQUEST['_openSIS_PDF'])) {
                    echo '</TD></TR></TABLE>';
                }
                echo "</TD></TR>";
                echo "</TABLE>";
                if ($options['center']) {
                    echo '</CENTER>';
                }
            }
            // END PRINT THE LIST ---
        }
        if ($result_count == 0) {
            // mab - problem with table closing if not opened above - do same conditional?
            if ($result_count > $num_displayed || ($options['count'] || $display_zero) && (($result_count == 0 || $display_count == 0) && $plural || ($result_count == 0 || $display_count == 0))) {
                echo '</TD></TR></TABLE>';
            }
            if ($link['add']['link'] && !isset($_REQUEST['_openSIS_PDF'])) {
                echo '<div class=break style=width:300px></div><center>' . button('add', $link['add']['title'], $link['add']['link']) . '</center>';
            } elseif (($link['add']['html'] || $link['add']['span']) && count($column_names) && !isset($_REQUEST['_openSIS_PDF'])) {
                $color = $side_color;
                if ($options['center']) {
                    echo '<CENTER>';
                }
                // WIDTH=100%
                //echo "<TABLE cellpadding=1 bgcolor=#f8f8f9 width=100%><TR><TD>";
                // SHADOW
                echo '<TABLE class=\\"grid\\" cellpadding=0 cellspacing=0><TR><TD>';
                if ($link['add']['html']) {
                    /*Here also change the colour for left corner*/
                    echo "<TABLE class=\"grid\" cellspacing=1 cellpadding=6 ><TR>";
                    foreach ($column_names as $key => $value) {
                        //Here to change the ListOutput Header Colour
                        echo "<TD ><A><b>" . str_replace(' ', '&nbsp;', $value) . "</b></A></TD>";
                    }
                    echo "</TR>";
                    echo "<TR bgcolor={$color}>";
                    if ($link['add']['html']['remove']) {
                        echo "<TD bgcolor={$color}>" . $link['add']['html']['remove'] . "</TD>";
                    } else {
                        echo "<TD bgcolor=#F5F5F5>" . button('add') . "</TD>";
                    }
                    foreach ($column_names as $key => $value) {
                        echo "<TD bgcolor=#F5F5F5 class=LO_field>" . $link['add']['html'][$key] . "</TD>";
                    }
                    echo "</TR>";
                    echo "</TABLE>";
                } elseif ($link['add']['span'] && !isset($_REQUEST['_openSIS_PDF'])) {
                    echo "<TABLE class=\"grid\" cellspacing=1><TR><TD align=left>" . button('add') . $link['add']['span'] . "</TD></TR></TABLE>";
                }
                // SHADOW
                //echo '</TD></TR></TABLE>';
                echo "</TD></TR></TABLE>";
                if ($options['center']) {
                    echo '</CENTER>';
                }
            }
        }
        if ($result_count != 0) {
            if ($options['yscroll']) {
                echo '<div id="LOy_layer" style="position: absolute; top: 0; left: 0; visibility:hidden;">';
                echo '<TABLE class=\\"grid\\" cellspacing=1 cellpadding=6 id=LOy_table>';
                $i = 1;
                if ($cols && !isset($_REQUEST['_openSIS_PDF'])) {
                    $color = $side_color;
                    foreach ($result as $item) {
                        echo "<TR><TD bgcolor={$color} class=LO_field id=LO_row{$i}>";
                        if ($color == Preferences('HIGHLIGHT')) {
                            echo '';
                        }
                        echo $item['FULL_NAME'];
                        if (!$item['FULL_NAME']) {
                            echo '&nbsp;';
                        }
                        if ($color == Preferences('HIGHLIGHT')) {
                            echo '';
                        }
                        echo "</TD></TR>";
                        $i++;
                        if ($item['row_color']) {
                            $color = $item['row_color'];
                        } elseif ($color == '#F8F8F9') {
                            $color = $side_color;
                        } else {
                            $color = '#F8F8F9';
                        }
                    }
                }
                echo '</TABLE>';
                echo '</div>';
            }
            echo '<div id="LOx_layer" style="position: absolute; top: 0; left: 0; visibility:hidden;">';
            echo '<TABLE class=\\"grid\\" cellspacing=1 cellpadding=6 id=LOx_table><TR>';
            $i = 1;
            if ($remove && !isset($_REQUEST['_openSIS_PDF']) && $result_count != 0) {
                echo "<TD class=\"subtabs\" id=LO_col{$i}></TD>";
                $i++;
            }
            if ($cols && !isset($_REQUEST['_openSIS_PDF'])) {
                foreach ($column_names as $key => $value) {
                    echo '<TD class=\\"subtabs\\" id=LO_col' . $i . '><A class=column_heading><b>' . str_replace('controller', '', $value) . '</b></A></TD>';
                    $i++;
                }
            }
            echo '</TR></TABLE>';
            echo '</div>';
        }
    }
}
예제 #4
0
function ListOutput($result, $column_names, $singular = '.', $plural = '.', $link = false, $group = array(), $options = array())
{
    if (!isset($options['save'])) {
        $options['save'] = '1';
    }
    if (!isset($options['print'])) {
        $options['print'] = true;
    }
    if (!isset($options['search'])) {
        $options['search'] = true;
    }
    if (!isset($options['center'])) {
        $options['center'] = true;
    }
    if (!isset($options['count'])) {
        $options['count'] = true;
    }
    if (!isset($options['sort'])) {
        $options['sort'] = true;
    }
    if (!isset($options['cellpadding'])) {
        $options['cellpadding'] = '6';
    }
    if (!isset($options['header_color'])) {
        $options['header_color'] = Preferences('HEADER');
    }
    if (!$link) {
        $link = array();
    }
    if (!isset($options['add'])) {
        if (!AllowEdit() || isset($_REQUEST['_CENTRE_PDF'])) {
            if ($link) {
                unset($link['add']);
                unset($link['remove']);
            }
        }
    }
    // PREPARE LINKS ---
    $result_count = $display_count = count($result);
    $num_displayed = 100000;
    $page = 0;
    if (isset($_REQUEST['page'])) {
        $page = $_REQUEST['page'];
    }
    $search = '';
    if (isset($_REQUEST['LO_search'])) {
        $search = $_REQUEST['LO_search'];
    }
    $sortColumn = '';
    if (isset($_REQUEST['LO_sort'])) {
        $sortColumn = $_REQUEST['LO_sort'];
    }
    $PHP_tmp_SELF = PreparePHP_SELF($_REQUEST, array('page', 'LO_sort', 'LO_direction', 'LO_search', 'LO_save', 'remove_prompt', 'remove_name', 'PHPSESSID'));
    // END PREPARE LINKS ---
    // UN-GROUPING
    if (!is_array($group)) {
        $group_count = false;
    } else {
        $group_count = count($group);
    }
    $side_color = Preferences('COLOR');
    if ($group_count && $result_count) {
        $color = '#F8F8F9';
        $group_result = $result;
        unset($result);
        $result[0] = '';
        foreach ($group_result as $item1) {
            if ($group_count == 1) {
                if ($color == '#F8F8F9') {
                    $color = $side_color;
                } else {
                    $color = '#F8F8F9';
                }
            }
            foreach ($item1 as $item2) {
                if ($group_count == 1) {
                    $i++;
                    if (count($group[0]) && $i != 1) {
                        foreach ($group[0] as $column) {
                            $item2[$column] = str_replace('<!-- <!--', '<!--', '<!-- ' . str_replace('-->', '--><!--', $item2[$column])) . ' -->';
                        }
                    }
                    $item2['row_color'] = $color;
                    $result[] = $item2;
                } else {
                    if ($group_count == 2) {
                        if ($color == '#F8F8F9') {
                            $color = $side_color;
                        } else {
                            $color = '#F8F8F9';
                        }
                    }
                    foreach ($item2 as $item3) {
                        if ($group_count == 2) {
                            $i++;
                            if (count($group[0]) && $i != 1) {
                                foreach ($group[0] as $column) {
                                    $item3[$column] = '<!-- ' . $item3[$column] . ' -->';
                                }
                            }
                            if (count($group[1]) && $i != 1) {
                                foreach ($group[1] as $column) {
                                    $item3[$column] = '<!-- ' . $item3[$column] . ' -->';
                                }
                            }
                            $item3['row_color'] = $color;
                            $result[] = $item3;
                        } else {
                            if ($group_count == 3) {
                                if ($color == '#F8F8F9') {
                                    $color = $side_color;
                                } else {
                                    $color = '#F8F8F9';
                                }
                            }
                            foreach ($item3 as $item4) {
                                if ($group_count == 3) {
                                    $i++;
                                    if (count($group[2]) && $i != 1) {
                                        foreach ($group[2] as $column) {
                                            unset($item4[$column]);
                                        }
                                    }
                                    $item4['row_color'] = $color;
                                    $result[] = $item4;
                                }
                            }
                        }
                    }
                }
            }
            $i = 0;
        }
        unset($result[0]);
        $result_count = count($result);
        $sortColumn = '';
    }
    // END UN-GROUPING
    $_LIST['output'] = true;
    // PRINT HEADINGS, PREPARE PDF, AND SORT THE LIST ---
    if ($_LIST['output'] != false) {
        if ($result_count != 0) {
            $count = 0;
            $remove = isset($link['remove']['variables']) ? count($link['remove']['variables']) : 0;
            $cols = count($column_names);
            // HANDLE SEARCHES ---
            if ($result_count && $search && $search != _('Search')) {
                $search = $search_term = str_replace('\\\\"', '"', $search);
                $search = $search_term = preg_replace('/[^a-zA-Z0-9 _"]*/', '', strtolower($search_term));
                if (substr($search_term, 0, 0) != '"' && substr($search_term, -1) != '"') {
                    $search_term = preg_replace('/"/', '', $search_term);
                    while ($space_pos = strpos($search_term, ' ')) {
                        $terms[strtolower(substr($search_term, 0, $space_pos))] = 1;
                        $search_term = substr($search_term, $space_pos + 1);
                    }
                    $terms[trim($search_term)] = 1;
                } else {
                    $search_term = preg_replace('/"/', '', $search_term);
                    $terms[trim($search_term)] = 1;
                }
                /* TRANSLATORS: List of words ignored during search operations */
                foreach (explode(',', _('of, the, a, an, in')) as $word) {
                    unset($terms[trim($word)]);
                }
                foreach ($result as $key => $value) {
                    $values[$key] = 0;
                    foreach ($value as $name => $val) {
                        $val = preg_replace('/[^a-zA-Z0-9 _]+/', '', strtolower($val));
                        if (strtolower($search) == $val) {
                            $values[$key] += 25;
                        }
                        foreach ($terms as $term => $one) {
                            if (preg_match('/' . $term . '/', $val)) {
                                $values[$key] += 3;
                            }
                        }
                    }
                    if ($values[$key] == 0) {
                        unset($values[$key]);
                        unset($result[$key]);
                        $result_count--;
                        $display_count--;
                    }
                }
                if ($result_count) {
                    array_multisort($values, SORT_DESC, $result);
                    $result = ReindexResults($result);
                    $values = ReindexResults($values);
                    $last_value = 1;
                    $scale = 100 / $values[$last_value];
                    for ($i = $last_value; $i <= $result_count; $i++) {
                        $result[$i]['RELEVANCE'] = '<!--' . (int) ($values[$i] * $scale) . '--><IMG SRC="assets/pixel_grey.gif" width=' . (int) ($values[$i] * $scale) . ' height=10>';
                    }
                }
                $column_names['RELEVANCE'] = _('Relevance');
                if (is_array($group) && count($group)) {
                    $options['count'] == false;
                    $display_zero = true;
                }
            }
            // END SEARCHES ---
            if ($sortColumn) {
                foreach ($result as $sort) {
                    if (substr($sort[$sortColumn], 0, 4) != '<!--') {
                        $sort_array[] = $sort[$sortColumn];
                    } else {
                        $sort_array[] = substr($sort[$sortColumn], 4, strpos($sort[$sortColumn], '-->') - 5);
                    }
                }
                if ($_REQUEST['LO_direction'] == -1) {
                    $dir = SORT_DESC;
                } else {
                    $dir = SORT_ASC;
                }
                if ($result_count > 1) {
                    if (is_int($sort_array[1]) || is_double($sort_array[1])) {
                        array_multisort($sort_array, $dir, SORT_NUMERIC, $result);
                    } else {
                        array_multisort($sort_array, $dir, $result);
                    }
                    for ($i = $result_count - 1; $i >= 0; $i--) {
                        $result[$i + 1] = $result[$i];
                    }
                    unset($result[0]);
                }
            }
        }
        // HANDLE SAVING THE LIST ---
        if ($options['save'] && isset($_REQUEST['LO_save']) && $_REQUEST['LO_save'] == $options['save']) {
            if (!$options['save_delimiter'] && Preferences('DELIMITER') == 'CSV') {
                $options['save_delimiter'] = 'comma';
            }
            switch ($options['save_delimiter']) {
                case 'comma':
                    $extension = 'csv';
                    break;
                case 'xml':
                    $extension = 'xml';
                    break;
                default:
                    $extension = 'xls';
                    break;
            }
            ob_end_clean();
            $saveDelim = '';
            if (isset($options['save_delimiter'])) {
                $saveDelim = $options['save_delimiter'];
            }
            $saveQuotes = '';
            if (isset($options['save_quotes'])) {
                $saveQuotes = $options['save_quotes'];
            }
            $output = '';
            if ($saveDelim != 'xml') {
                foreach ($column_names as $key => $value) {
                    if ($saveDelim == 'comma' && !$options['save_quotes']) {
                        $value = str_replace(',', ';', $value);
                    }
                    $output .= ($saveQuotes ? '"' : '') . str_replace('&nbsp;', ' ', str_replace('<BR>', ' ', preg_replace('/<!--.*-->/', '', $value))) . ($saveQuotes ? '"' : '') . ($saveDelim == 'comma' ? ',' : "\t");
                }
                $output .= "\n";
            }
            foreach ($result as $item) {
                foreach ($column_names as $key => $value) {
                    $value = $item[$key];
                    if ($saveDelim == 'comma' && !$saveQuotes) {
                        $value = str_replace(',', ';', $value);
                    }
                    $value = preg_replace('/<SELECT.*SELECTED\\>([^<]+)<.*<\\/SELECT\\>/i', '\\1', $value);
                    $value = preg_replace('/<SELECT.*<\\/SELECT\\>/i', '', $value);
                    $output .= ($saveQuotes ? '"' : '') . ($saveDelim == 'xml' ? '<' . str_replace(' ', '', $value) . '>' : '') . preg_replace('/<[^>]+>/', '', preg_replace("/<div onclick='[^']+'>/", '', preg_replace('/ +/', ' ', preg_replace('/&[^;]+;/', '', str_replace('<BR>&middot;', ' : ', str_replace('&nbsp;', ' ', $value)))))) . ($saveDelim == 'xml' ? '</' . str_replace(' ', '', $value) . '>' . "\n" : '') . ($saveQuotes ? '"' : '') . ($saveDelim == 'comma' ? ',' : "\t");
                }
                $output .= "\n";
            }
            header("Cache-Control: public");
            header("Pragma: ");
            header("Content-Type: application/{$extension}");
            header("Content-Disposition: inline; filename=\"" . ProgramTitle() . ".{$extension}\"\n");
            if (!empty($options['save_eval'])) {
                eval($options['save_eval']);
            }
            echo $output;
            exit;
        }
        // END SAVING THE LIST ---
        if ($options['center']) {
            echo '<CENTER>';
        }
        if ($result_count > $num_displayed || ($options['count'] || $display_zero) && (($result_count == 0 || $display_count == 0) && $plural || ($result_count == 0 || $display_count == 0))) {
            echo "<TABLE border=0";
            if (isset($_REQUEST['_CENTRE_PDF'])) {
                echo " width=100%";
            }
            echo "><TR><TD align=center>";
        }
        if ($options['count'] || $display_zero) {
            if ($result_count == 0 || $display_count == 0) {
                echo "<b>" . sprintf(_('No %s were found.'), ngettext($singular, $plural, 0)) . "</b> &nbsp; &nbsp;";
            }
        }
        $br = 0;
        if ($result_count != 0 || $search != _('Search')) {
            $where_message = '';
            if (!isset($_REQUEST['_CENTRE_PDF'])) {
                if (!$page) {
                    $page = 1;
                }
                if (!isset($_REQUEST['LO_direction'])) {
                    $_REQUEST['LO_direction'] = 1;
                }
                $start = ($page - 1) * $num_displayed + 1;
                $stop = $start + ($num_displayed - 1);
                if ($stop > $result_count) {
                    $stop = $result_count;
                }
                if ($result_count > $num_displayed) {
                    $pages = '';
                    $where_message = "<SMALL>" . sprintf(_('Displaying %d through %d'), $start, $stop) . "</SMALL>";
                    if (ceil($result_count / $num_displayed) <= 10) {
                        for ($i = 1; $i <= ceil($result_count / $num_displayed); $i++) {
                            if ($i != $page) {
                                $pages .= "<A HREF={$PHP_tmp_SELF}&LO_sort={$sortColumn}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($search) . "&page={$i}>{$i}</A>, ";
                            } else {
                                $pages .= "{$i}, ";
                            }
                        }
                        $pages = substr($pages, 0, -2) . "<BR>";
                    } else {
                        for ($i = 1; $i <= 7; $i++) {
                            if ($i != $page) {
                                $pages .= "<A HREF={$PHP_tmp_SELF}&LO_sort={$sortColumn}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($search) . "&page={$i}>{$i}</A>, ";
                            } else {
                                $pages .= "{$i}, ";
                            }
                        }
                        $pages = substr($pages, 0, -2) . " ... ";
                        for ($i = ceil($result_count / $num_displayed) - 2; $i <= ceil($result_count / $num_displayed); $i++) {
                            if ($i != $page) {
                                $pages .= "<A HREF={$PHP_tmp_SELF}&LO_sort={$sortColumn}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($search) . "&page={$i}>{$i}</A>, ";
                            } else {
                                $pages .= "{$i}, ";
                            }
                        }
                        $pages = substr($pages, 0, -2) . " &nbsp;<A HREF={$PHP_tmp_SELF}&LO_sort={$sortColumn}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($search) . "&page=" . ($page + 1) . ">Next Page</A><BR>";
                    }
                    echo sprintf(_('Go to Page %s'), $pages);
                    echo '</TD></TR></TABLE>';
                    echo '<BR>';
                }
            } else {
                $start = 1;
                $stop = $result_count;
                if ($cols > 8 || $_REQUEST['expanded_view']) {
                    $_SESSION['orientation'] = 'landscape';
                    $repeat_headers = 17;
                } else {
                    $repeat_headers = 28;
                }
                if ($options['print']) {
                    $html = explode('<!-- new page -->', strtolower(ob_get_contents()));
                    $html = $html[count($html) - 1];
                    echo '</TD></TR></TABLE>';
                    $br = substr_count($html, '<br>') + substr_count($html, '</p>') + substr_count($html, '</tr>') + substr_count($html, '</h1>') + substr_count($html, '</h2>') + substr_count($html, '</h3>') + substr_count($html, '</h4>') + substr_count($html, '</h5>');
                    if ($br % 2 != 0) {
                        $br++;
                        echo '<BR>';
                    }
                } else {
                    echo '</TD></TR></TABLE>';
                }
            }
            // END MISC ---
            // WIDTH = 100%
            echo '<TABLE cellspacing=0 cellpadding=0 width=100%>';
            // SEARCH BOX & MORE HEADERS
            if ($where_message || $singular != '.' && $plural != '.' || !isset($_REQUEST['_CENTRE_PDF']) && $options['search']) {
                echo '<TR><TD width=100%>';
                echo '<TABLE cellpadding=1 width=100%>';
                echo '<TR><TD align=left>';
                if ($singular != '.' && $plural != '.' && $options['count']) {
                    if ($display_count > 0) {
                        echo "<b>" . sprintf(ngettext('%d %s was found.', '%d %s were found.', $display_count), $display_count, ngettext($singular, $plural, $display_count)) . "</b> &nbsp; &nbsp;";
                    }
                    if ($where_message) {
                        echo '<BR>' . $where_message;
                    }
                }
                if ($options['save'] && !isset($_REQUEST['_CENTRE_PDF']) && $result_count > 0) {
                    $extra = "page={$page}&LO_sort={$sortColumn}&LO_direction={$_REQUEST['LO_direction']}&LO_search=" . urlencode($search);
                    echo "<A HREF={$PHP_tmp_SELF}&{$extra}&LO_save={$options['save']}&_CENTRE_PDF=true><IMG SRC=assets/download.gif border=0 vspace=0 hspace=0></A>";
                }
                echo '</TD>';
                $colspan = 1;
                if (!isset($_REQUEST['_CENTRE_PDF']) && $options['search']) {
                    echo '<TD align=right>';
                    echo "<INPUT type=text id=LO_search name=LO_search value='" . ($search && $search != _('Search') ? $search : _('Search') . "' style='color:BBBBBB'"), "' onfocus='if(this.value==\"" . _('Search') . "\") this.value=\"\"; this.style.color=\"000000\";' onblur='if(this.value==\"\") {this.value=\"" . _('Search') . "\"; this.style.color=\"BBBBBB\";}' onkeypress='if(event.keyCode==13){document.location.href=\"" . PreparePHP_SELF($_REQUEST, array('LO_search', 'page')) . "&LO_search=\"+this.value; return false;} '><INPUT type=button value='" . _('Go') . "' onclick='document.location.href=\"" . PreparePHP_SELF($_REQUEST, array('LO_search', 'page')) . "&LO_search=\"+document.getElementById(\"LO_search\").value;'></TD>";
                    $colspan++;
                }
                echo "</TR>";
                echo '<TR style="height:0;"><TD width=100% style="height:0;" height=0 align=right colspan=' . $colspan . '><DIV id=LOx' . (count($column_names) + ($result_count != 0 && $cols && !isset($_REQUEST['_CENTRE_PDF']) ? 1 : 0) + ($remove && !isset($_REQUEST['_CENTRE_PDF']) ? 1 : 0)) . ' style="width:0; position: relative; height:0;"></DIV></TD></TR></TABLE>';
            } else {
                echo '<TR style="height:0;"><TD width=100% style="height:0;" height=0 align=right><DIV id=LOx' . (count($column_names) + ($result_count != 0 && $cols && !isset($_REQUEST['_CENTRE_PDF']) ? 1 : 0) + ($remove && !isset($_REQUEST['_CENTRE_PDF']) ? 1 : 0)) . ' style="width:0; position: relative; height:0;"></DIV>';
            }
            // END SEARCH BOX ----
            echo '</TD></TR>';
            if (!empty($options['header'])) {
                echo '<TR><TD align=center>' . $options['header'] . '</TD></TR>';
            }
            echo '<TR><TD>';
            // SHADOW
            if (!isset($_REQUEST['_CENTRE_PDF'])) {
                echo '<TABLE width=100% cellpadding=0 cellspacing=0><TR><TD background=assets/left_shadow.gif width=4 height=100% rowspan=2>&nbsp;</TD><TD></TD><TD background=assets/right_shadow.gif width=4 height=100% rowspan=2></TD></TR><TR><TD>';
            }
            echo "<TABLE cellpadding={$options['cellpadding']} width=100%>";
            if (!isset($_REQUEST['_CENTRE_PDF']) && $stop - $start > 10) {
                echo '<THEAD>';
            }
            if (!isset($_REQUEST['_CENTRE_PDF'])) {
                echo '<TR>';
            }
            $i = 1;
            if ($remove && !isset($_REQUEST['_CENTRE_PDF']) && $result_count != 0) {
                echo "<TD bgcolor={$options['header_color']}><DIV id=LOx{$i} style='position: relative;'></DIV></TD>";
                $i++;
            }
            if ($result_count != 0 && $cols && !isset($_REQUEST['_CENTRE_PDF'])) {
                foreach ($column_names as $key => $value) {
                    if ($sortColumn == $key) {
                        $direction = -1 * $_REQUEST['LO_direction'];
                    } else {
                        $direction = 1;
                    }
                    echo "<TD align=center bgcolor=" . (isset($options['header_colors'][$key]) ? $options['header_colors'][$key] : $options['header_color']) . "><DIV id=LOx{$i} style='position: relative;'></DIV>";
                    echo "<A ";
                    if ($options['sort']) {
                        echo "HREF={$PHP_tmp_SELF}&page={$page}&LO_sort={$key}&LO_direction={$direction}&LO_search=" . urlencode($search);
                    }
                    echo " class=column_heading><b>{$value}</b></A>";
                    if ($i == 1) {
                        echo "<DIV id=LOy0 style='position: relative;'></DIV>";
                    }
                    echo "</TD>";
                    $i++;
                }
                //echo '<TD width=0><DIV id=LO'.$i.'></DIV></TD>';
                echo "</TR>";
            }
            $color = '#F8F8F9';
            //style="height: 300px; overflow: auto; padding-right: 16px;"
            if (!isset($_REQUEST['_CENTRE_PDF']) && $stop - $start > 10) {
                echo '</THEAD><TBODY>';
            }
            // mab - enable add link as first or last
            if ($result_count != 0 && !empty($link['add']['first']) && $stop - $start + 1 >= $link['add']['first']) {
                //if($remove && !isset($_REQUEST['_CENTRE_PDF']))
                //	$cols++;
                if ($link['add']['link'] && !isset($_REQUEST['_CENTRE_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left bgcolor=#FFFFFF>" . button('add', $link['add']['title'], $link['add']['link']) . "</TD></TR>";
                } elseif ($link['add']['span'] && !isset($_REQUEST['_CENTRE_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left bgcolor=#FFFFFF>" . button('add') . $link['add']['span'] . "</TD></TR>";
                } elseif ($link['add']['html'] && $cols) {
                    echo "<TR bgcolor={$color}>";
                    if ($remove && !isset($_REQUEST['_CENTRE_PDF']) && $link['add']['html']['remove']) {
                        echo "<TD bgcolor={$color}>" . $link['add']['html']['remove'] . "</TD>";
                    } elseif ($remove && !isset($_REQUEST['_CENTRE_PDF'])) {
                        echo "<TD bgcolor={$color}>" . button('add') . "</TD>";
                    }
                    foreach ($column_names as $key => $value) {
                        echo "<TD bgcolor={$color} class=LO_field>" . $link['add']['html'][$key] . "</TD>";
                    }
                    echo "</TR>";
                    $count++;
                }
            }
            for ($i = $start; $i <= $stop; $i++) {
                $item = $result[$i];
                if (isset($_REQUEST['_CENTRE_PDF']) && $options['print'] && count($item)) {
                    foreach ($item as $key => $value) {
                        $value = preg_replace('/<SELECT.*SELECTED\\>([^<]+)<.*<\\/SELECT\\>/i', '\\1', $value);
                        $value = preg_replace('/<SELECT.*<\\/SELECT\\>/i', '', $value);
                        $item[$key] = preg_replace("/<div onclick='[^']+'>/", '', $value);
                    }
                }
                if (isset($item['row_color'])) {
                    $color = $item['row_color'];
                } elseif ($color == '#F8F8F9') {
                    $color = $side_color;
                } else {
                    $color = '#F8F8F9';
                }
                //$color = '#EDF3FE';
                if (isset($_REQUEST['_CENTRE_PDF']) && $count % $repeat_headers == 0) {
                    if ($count != 0) {
                        echo "</TABLE><TABLE cellpadding={$options['cellpadding']} width=100%>";
                        echo '<!-- NEW PAGE -->';
                    }
                    echo "<TR>";
                    if ($remove && !isset($_REQUEST['_CENTRE_PDF'])) {
                        echo "<TD bgcolor={$options['header_color']}></TD>";
                    }
                    if ($cols) {
                        foreach ($column_names as $key => $value) {
                            echo "<TD bgcolor=" . ($options['header_colors'][$key] ? $options['header_colors'][$key] : $options['header_color']) . " class=LO_field><FONT color=#FFFFFF size=-1><b>" . $value . "</b></FONT></TD>";
                        }
                    }
                    echo "</TR>";
                }
                if ($count == 0) {
                    $count = $br;
                }
                echo "<TR bgcolor={$color}>";
                $count++;
                if ($remove && !isset($_REQUEST['_CENTRE_PDF'])) {
                    $button_title = $link['remove']['title'];
                    //if(!$button_title)
                    //	$button_title = 'Remove';
                    $button_link = $link['remove']['link'];
                    if (count($link['remove']['variables'])) {
                        foreach ($link['remove']['variables'] as $var => $val) {
                            $button_link .= "&{$var}=" . urlencode($item[$val]);
                        }
                    }
                    echo "<TD bgcolor={$color}>" . button('remove', $button_title, $button_link) . "</TD>";
                }
                if ($cols) {
                    foreach ($column_names as $key => $value) {
                        if (!empty($link[$key]) && $item[$key] !== false && !isset($_REQUEST['_CENTRE_PDF'])) {
                            echo "<TD bgcolor={$color} class=LO_field>";
                            if ($key == 'FULL_NAME') {
                                echo '<DIV id=LOy' . ($count - $br) . ' height=100% style="height: 100%; min-height: 100%; position: relative;">';
                            }
                            if ($link[$key]['js'] === true) {
                                echo "<A HREF=# onclick='window.open(\"{$link[$key][link]}";
                                if (count($link[$key]['variables'])) {
                                    foreach ($link[$key]['variables'] as $var => $val) {
                                        echo "&{$var}=" . urlencode($item[$val]);
                                    }
                                }
                                echo "\",\"\",\"scrollbars=yes,resizable=yes,width=800,height=400\");'";
                                if ($link[$key]['extra']) {
                                    echo ' ' . $link[$key]['extra'];
                                }
                                echo ">";
                            } else {
                                echo "<A HREF={$link[$key][link]}";
                                if (count($link[$key]['variables'])) {
                                    foreach ($link[$key]['variables'] as $var => $val) {
                                        echo "&{$var}=" . urlencode($item[$val]);
                                    }
                                }
                                if ($link[$key]['extra']) {
                                    echo ' ' . $link[$key]['extra'];
                                }
                                echo '>';
                            }
                            if ($color == Preferences('HIGHLIGHT')) {
                                echo '<font color=#FFFFFF>';
                            } else {
                                echo '<font color=#0000FF>';
                            }
                            echo $item[$key];
                            if (!$item[$key]) {
                                echo '***';
                            }
                            echo '</font>';
                            echo '</A>';
                            if ($key == 'FULL_NAME') {
                                echo '</DIV>';
                            }
                            echo '</TD>';
                        } else {
                            echo "<TD bgcolor={$color} class=LO_field align=center>";
                            if ($key == 'FULL_NAME') {
                                echo '<DIV id=LOy' . ($count - $br) . ' height=100% style="position: relative;">';
                            }
                            if ($color == Preferences('HIGHLIGHT')) {
                                echo '<font color=white>';
                            }
                            echo $item[$key];
                            if (!$item[$key]) {
                                echo '&nbsp;';
                            }
                            if ($color == Preferences('HIGHLIGHT')) {
                                echo '</font>';
                            }
                            if ($key == 'FULL_NAME') {
                                echo '<DIV>';
                            }
                            echo '</TD>';
                        }
                    }
                }
                echo "</TR>";
            }
            if ($result_count != 0 && (empty($link['add']['first']) || $stop - $start + 1 < $link['add']['first'])) {
                //if($remove && !isset($_REQUEST['_CENTRE_PDF']))
                //	$cols++;
                if (!empty($link['add']['link']) && !isset($_REQUEST['_CENTRE_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left bgcolor=#FFFFFF>" . button('add', $link['add']['title'], $link['add']['link']) . "</TD></TR>";
                } elseif (!empty($link['add']['span']) && !isset($_REQUEST['_CENTRE_PDF'])) {
                    echo "<TR><TD colspan=" . ($remove ? $cols + 1 : $cols) . " align=left bgcolor=#FFFFFF>" . button('add') . $link['add']['span'] . "</TD></TR>";
                } elseif (!empty($link['add']['html']) && $cols) {
                    if ($color != '#F8F8F9') {
                        //$count%2)
                        $color = '#F8F8F9';
                    } else {
                        $color = $side_color;
                    }
                    echo "<TR bgcolor={$color}>";
                    if ($remove && !isset($_REQUEST['_CENTRE_PDF']) && $link['add']['html']['remove']) {
                        echo "<TD bgcolor={$color}>" . $link['add']['html']['remove'] . "</TD>";
                    } elseif ($remove && !isset($_REQUEST['_CENTRE_PDF'])) {
                        echo "<TD bgcolor={$color}>" . button('add') . "</TD>";
                    }
                    foreach ($column_names as $key => $value) {
                        $keyVal = !empty($link['add']['html'][$key]) ? $link['add']['html'][$key] : '';
                        echo "<TD bgcolor={$color} class=LO_field>" . $keyVal . "</TD>";
                    }
                    echo "</TR>";
                }
            }
            if ($result_count != 0) {
                if (!isset($_REQUEST['_CENTRE_PDF']) && $stop - $start > 10) {
                    echo '</TBODY>';
                }
                echo "</TABLE>";
                // SHADOW
                if (!isset($_REQUEST['_CENTRE_PDF'])) {
                    echo '</TD></TR><TR><TD background=assets/left_corner_shadow.gif height=6 width=4></TD><TD background=assets/bottom_shadow.gif height=6></TD><TD height=6 width=4 background=assets/right_corner_shadow.gif></TD></TR></TABLE>';
                }
                echo "</TD></TR>";
                echo "</TABLE>";
                if ($options['center']) {
                    echo '</CENTER>';
                }
            }
            // END PRINT THE LIST ---
        }
        if ($result_count == 0) {
            // mab - problem with table closing if not opened above - do same conditional?
            if ($result_count > $num_displayed || ($options['count'] || $display_zero) && (($result_count == 0 || $display_count == 0) && $plural || ($result_count == 0 || $display_count == 0))) {
                echo '</TD></TR>';
                if (!empty($options['header'])) {
                    echo '<TR><TD align=center>' . $options['header'] . '</TD></TR>';
                }
                echo '</TABLE>';
            } else {
                if ($options['header']) {
                    echo '<TR><TD align=center>' . $options['header'] . '</TD></TR>';
                }
            }
            if (!empty($link['add']['link']) && !isset($_REQUEST['_CENTRE_PDF'])) {
                echo '<center>' . button('add', $link['add']['title'], $link['add']['link']) . '</center>';
            } elseif ((!empty($link['add']['html']) || !empty($link['add']['span'])) && count($column_names) && !isset($_REQUEST['_CENTRE_PDF'])) {
                $color = $side_color;
                if ($options['center']) {
                    echo '<CENTER>';
                }
                // WIDTH=100%
                echo "<TABLE cellpadding=1 bgcolor=#f8f8f9 width=100%><TR><TD>";
                // SHADOW
                echo '<TABLE width=100% cellpadding=0 cellspacing=0><TR><TD background=assets/left_shadow.gif width=4 height=100% rowspan=2></TD><TD></TD><TD background=assets/right_shadow.gif width=4 height=100% rowspan=2></TD></TR><TR><TD>';
                if ($link['add']['html']) {
                    echo "<TABLE cellpadding={$options['cellpadding']} width=100%><TR><TD bgcolor={$options['header_color']}></TD>";
                    foreach ($column_names as $key => $value) {
                        echo "<TD bgcolor=" . (!empty($options['header_colors'][$key]) ? $options['header_colors'][$key] : $options['header_color']) . "><A class=column_heading><b>" . str_replace(' ', '&nbsp;', $value) . "</b></A></TD>";
                    }
                    echo "</TR>";
                    echo "<TR bgcolor={$color}>";
                    if (!empty($link['add']['html']['remove'])) {
                        echo "<TD bgcolor={$color}>" . $link['add']['html']['remove'] . "</TD>";
                    } else {
                        echo "<TD bgcolor={$color}>" . button('add') . "</TD>";
                    }
                    foreach ($column_names as $key => $value) {
                        $keyVal = !empty($link['add']['html'][$key]) ? $link['add']['html'][$key] : '';
                        echo "<TD bgcolor={$color} class=LO_field>" . $keyVal . "</TD>";
                    }
                    echo "</TR>";
                    echo "</TABLE>";
                } elseif ($link['add']['span'] && !isset($_REQUEST['_CENTRE_PDF'])) {
                    echo "<TABLE><TR><TD align=left>" . button('add') . $link['add']['span'] . "</TD></TR></TABLE>";
                }
                // SHADOW
                echo '</TD></TR><TR><TD background=assets/left_corner_shadow.gif height=6 width=4></TD><TD background=assets/bottom_shadow.gif height=6></TD><TD height=6 width=4 background=assets/right_corner_shadow.gif></TD></TR></TABLE>';
                echo "</TD></TR></TABLE>";
                if ($options['center']) {
                    echo '</CENTER>';
                }
            }
        }
        if ($result_count != 0) {
            if (isset($options['yscroll']) && $options['yscroll']) {
                echo '<div id="LOy_layer" style="position: absolute; top: 0; left: 0; visibility:hidden;">';
                echo "<TABLE cellpadding={$options['cellpadding']} id=LOy_table>";
                $i = 1;
                if ($cols && !isset($_REQUEST['_CENTRE_PDF'])) {
                    $color = $side_color;
                    foreach ($result as $item) {
                        echo "<TR><TD bgcolor={$color} class=LO_field id=LO_row{$i}>";
                        if ($color == Preferences('HIGHLIGHT')) {
                            echo '<font color=white>';
                        }
                        echo $item['FULL_NAME'];
                        if (!$item['FULL_NAME']) {
                            echo '&nbsp;';
                        }
                        if ($color == Preferences('HIGHLIGHT')) {
                            echo '</font>';
                        }
                        echo '</TD></TR>';
                        $i++;
                        if ($item['row_color']) {
                            $color = $item['row_color'];
                        } elseif ($color == '#F8F8F9') {
                            $color = $side_color;
                        } else {
                            $color = '#F8F8F9';
                        }
                    }
                }
                echo '</TABLE>';
                echo '</div>';
            }
            echo '<div id="LOx_layer" style="position: absolute; top: 0; left: 0; visibility:hidden;">';
            echo "<TABLE cellpadding={$options['cellpadding']} id=LOx_table><TR>";
            $i = 1;
            if ($remove && !isset($_REQUEST['_CENTRE_PDF']) && $result_count != 0) {
                echo "<TD bgcolor={$options['header_color']} id=LO_col{$i}></TD>";
                $i++;
            }
            if ($cols && !isset($_REQUEST['_CENTRE_PDF'])) {
                foreach ($column_names as $key => $value) {
                    echo "<TD bgcolor=" . ($options['header_colors'][$key] ? $options['header_colors'][$key] : $options['header_color']) . " id=LO_col{$i}><A class=column_heading><b>" . str_replace('controller', '', $value) . '</b></A></TD>';
                    $i++;
                }
            }
            echo '</TR></TABLE>';
            echo '</div>';
        }
    }
}