Пример #1
0
function links_get_in_folder($fid, $invisible = false, $sort_by = "TITLE", $sort_dir = "ASC", $page = 1)
{
    if (!($db = db::get())) {
        return false;
    }
    $sort_by_array = array('TITLE', 'DESCRIPTION', 'CREATED', 'RATING');
    $sort_dir_array = array('ASC', 'DESC');
    if (!is_numeric($fid)) {
        return false;
    }
    if (!is_bool($invisible)) {
        $invisible = false;
    }
    if (!is_numeric($page) || $page < 1) {
        $page = 1;
    }
    if (!in_array($sort_by, $sort_by_array)) {
        $sort_by = 'TITLE';
    }
    if (!in_array($sort_dir, $sort_dir_array)) {
        $sort_dir = 'ASC';
    }
    if (!($table_prefix = get_table_prefix())) {
        return false;
    }
    $offset = calculate_page_offset($page, 20);
    $links_array = array();
    if ($invisible === false) {
        $sql = "SELECT SQL_CALC_FOUND_ROWS LINKS.LID, LINKS.UID, USER.LOGON, USER.NICKNAME, LINKS.URI, LINKS.TITLE, ";
        $sql .= "LINKS.DESCRIPTION, LINKS.VISIBLE, UNIX_TIMESTAMP(LINKS.CREATED) AS CREATED, LINKS.CLICKS, ";
        $sql .= "AVG(LINKS_VOTE.RATING) AS RATING FROM `{$table_prefix}LINKS` LINKS ";
        $sql .= "LEFT JOIN `{$table_prefix}LINKS_VOTE` LINKS_VOTE ON (LINKS.LID = LINKS_VOTE.LID) ";
        $sql .= "LEFT JOIN USER USER ON (LINKS.UID = USER.UID) WHERE LINKS.FID = '{$fid}' ";
        $sql .= "AND LINKS.VISIBLE = 'Y' AND LINKS.APPROVED IS NOT NULL ";
        $sql .= "GROUP BY LINKS.LID ORDER BY {$sort_by} {$sort_dir} ";
        $sql .= "LIMIT {$offset}, 20";
    } else {
        $sql = "SELECT SQL_CALC_FOUND_ROWS LINKS.LID, LINKS.UID, USER.LOGON, USER.NICKNAME, LINKS.URI, LINKS.TITLE, ";
        $sql .= "LINKS.DESCRIPTION, LINKS.VISIBLE, UNIX_TIMESTAMP(LINKS.CREATED) AS CREATED, LINKS.CLICKS, ";
        $sql .= "AVG(LINKS_VOTE.RATING) AS RATING FROM `{$table_prefix}LINKS` LINKS ";
        $sql .= "LEFT JOIN `{$table_prefix}LINKS_VOTE` LINKS_VOTE ON (LINKS.LID = LINKS_VOTE.LID) ";
        $sql .= "LEFT JOIN USER USER ON (LINKS.UID = USER.UID) WHERE LINKS.FID = '{$fid}' ";
        $sql .= "AND LINKS.APPROVED IS NOT NULL GROUP BY LINKS.LID ";
        $sql .= "ORDER BY {$sort_by} {$sort_dir} LIMIT {$offset}, 20";
    }
    if (!($result = $db->query($sql))) {
        return false;
    }
    $sql = "SELECT FOUND_ROWS() AS ROW_COUNT";
    if (!($result_count = $db->query($sql))) {
        return false;
    }
    list($links_count) = $result_count->fetch_row();
    if ($result->num_rows == 0 && $links_count > 0 && $page > 1) {
        return links_get_in_folder($fid, $invisible, $sort_by, $sort_dir, $page - 1);
    }
    while (($links_data = $result->fetch_assoc()) !== null) {
        if (isset($links_data['LOGON']) && isset($links_data['PEER_NICKNAME'])) {
            if (!is_null($links_data['PEER_NICKNAME']) && strlen($links_data['PEER_NICKNAME']) > 0) {
                $links_data['NICKNAME'] = $links_data['PEER_NICKNAME'];
            }
        }
        if (!isset($links_data['LOGON'])) {
            $links_data['LOGON'] = gettext("Unknown user");
        }
        if (!isset($links_data['NICKNAME'])) {
            $links_data['NICKNAME'] = "";
        }
        $links_array[$links_data['LID']] = $links_data;
    }
    return array('links_count' => $links_count, 'links_array' => $links_array);
}
Пример #2
0
}
if (isset($_GET['sort_dir'])) {
    if ($_GET['sort_dir'] == "DESC") {
        $sort_dir = "DESC";
    } else {
        $sort_dir = "ASC";
    }
} else {
    if ($viewmode == LINKS_VIEW_HIERARCHICAL) {
        $sort_dir = "ASC";
    } else {
        $sort_dir = "DESC";
    }
}
if ($viewmode == LINKS_VIEW_HIERARCHICAL) {
    $links = links_get_in_folder($fid, session::check_perm(USER_PERM_LINKS_MODERATE, 0), $sort_by, $sort_dir, $page);
} else {
    $links = links_get_all(session::check_perm(USER_PERM_LINKS_MODERATE, 0), $sort_by, $sort_dir, $page);
}
if (sizeof($links['links_array']) < 1) {
    html_display_warning_msg(gettext("No links in this folder."), '85%', 'center');
}
echo "<div align=\"center\">\n";
echo "  <table cellpadding=\"0\" cellspacing=\"0\" width=\"85%\">\n";
echo "    <tr>\n";
echo "      <td align=\"left\">\n";
echo "        <table class=\"box\" width=\"100%\">\n";
echo "          <tr>\n";
echo "            <td align=\"left\" class=\"posthead\">\n";
echo "              <table width=\"100%\">\n";
echo "                <tr>\n";