Example #1
0
function listdownloads($dcategory, $sortby, $sortorder)
{
    global $perpage, $page, $download_cat, $user;
    global $NPDS_Prefix;
    if ($dcategory == "") {
        $dcategory = addslashes($download_cat);
    }
    if (!$sortby) {
        $sortby = "dfilename";
    }
    if ($sortorder != "ASC" && $sortorder != "DESC") {
        $sortorder = "ASC";
    }
    echo '<p class="lead">';
    echo translate("Display filtered with") . "&nbsp;<i>";
    if ($dcategory == translate("All")) {
        echo translate("All");
    } else {
        echo aff_langue(stripslashes($dcategory));
    }
    echo "</i>&nbsp;&nbsp;" . translate("sorted by") . "&nbsp;";
    // Shiney SQL Injection 11/2011
    $sortby2 = "";
    if ($sortby == 'dfilename') {
        $sortby2 = translate("Name") . "";
    }
    if ($sortby == 'dfilesize') {
        $sortby2 = translate("File Size") . "";
    }
    if ($sortby == 'dcategory') {
        $sortby2 = translate("Category") . "";
    }
    if ($sortby == 'ddate') {
        $sortby2 = translate("Creation Date") . "";
    }
    if ($sortby == 'dver') {
        $sortby2 = translate("Version") . "";
    }
    if ($sortby == 'dcounter') {
        $sortby2 = translate("Downloads") . "";
    }
    // Shiney SQL Injection 11/2011
    if ($sortby2 == '') {
        $sortby = 'dfilename';
    }
    echo '&nbsp;' . translate("of") . '&nbsp;<i>' . $sortby2 . '</i>
  </p>';
    echo '<table class="table table-hover" id ="lst_downlo" data-toggle="table" data-striped="true" data-search="true" data-show-toggle="true" data-mobile-responsive="true" data-icons-prefix="fa" data-icons="icons">';
    sortlinks($dcategory, $sortby);
    echo '<tbody>';
    if ($dcategory == translate("All")) {
        $sql = "SELECT COUNT(*) FROM " . $NPDS_Prefix . "downloads";
    } else {
        $sql = "SELECT COUNT(*) FROM " . $NPDS_Prefix . "downloads WHERE dcategory='" . addslashes($dcategory) . "'";
    }
    $result = sql_query($sql);
    list($total) = sql_fetch_row($result);
    if ($total > $perpage) {
        $pages = ceil($total / $perpage);
        if ($page > $pages) {
            $page = $pages;
        }
        if (!$page) {
            $page = 1;
        }
        $offset = ($page - 1) * $perpage;
    } else {
        $offset = 0;
        $pages = 1;
        $page = 1;
    }
    settype($offset, "integer");
    settype($perpage, "integer");
    if ($dcategory == translate("All")) {
        $sql = "SELECT * FROM " . $NPDS_Prefix . "downloads ORDER BY {$sortby} {$sortorder} LIMIT {$offset},{$perpage}";
    } else {
        $sql = "SELECT * FROM " . $NPDS_Prefix . "downloads WHERE dcategory='" . addslashes($dcategory) . "' ORDER BY {$sortby} {$sortorder} LIMIT {$offset},{$perpage}";
    }
    $result = sql_query($sql);
    while (list($did, $dcounter, $durl, $dfilename, $dfilesize, $ddate, $dweb, $duser, $dver, $dcat, $ddescription, $dperm) = sql_fetch_row($result)) {
        $Fichier = new File($durl);
        // keep for extension
        $FichX = new FileManagement();
        // essai class
        $okfile = autorisation($dperm);
        echo '
         <tr>
            <td class="text-xs-center">';
        if ($okfile == true) {
            echo popuploader($did, $ddescription, $dcounter, $dfilename, true);
        } else {
            echo popuploader($did, $ddescription, $dcounter, $dfilename, false);
            echo '<span class="text-warning">' . translate("Private") . '</span>';
        }
        echo "</td><td class=\"text-xs-center\"><img src=\"" . $Fichier->Affiche_Extention() . "\" alt=\"" . $Fichier->Affiche_Extention() . "\" border=\"0\" /></td>\n           <td>";
        if ($okfile == true) {
            echo "<a href=\"download.php?op=mydown&amp;did={$did}\" target=\"_blank\">{$dfilename}</a>";
        } else {
            echo '...';
        }
        echo '</td>
            <td>';
        if ($dfilesize != 0) {
            //               echo $Fichier->Pretty_Size($dfilesize);
            echo $FichX->file_size_auto($durl, 2);
        } else {
            //               echo $Fichier->Affiche_Size();
            echo $FichX->file_size_auto($durl, 2);
        }
        echo '</td>
            <td>' . aff_langue(stripslashes($dcat)) . '</td>
            <td>' . convertdate($ddate) . '</td>
            <td class="text-xs-center">' . $dver . '</td>
            <td class="text-xs-center">' . wrh($dcounter) . '</td>
            <td>';
        if ($okfile == true and $user) {
            echo "<a href=\"download.php?op=broken&amp;did={$did}\" title=\"" . translate("Report Broken Link") . "\"><i class=\"fa fa-lg fa-chain-broken\"></i></a>";
        }
        echo '
            </td>
         </tr>';
    }
    echo '
      </tbody>
   </table>';
    $dcategory = StripSlashes($dcategory);
    echo '<ul class="pagination pagination-sm">';
    if ($pages > 1) {
        $pcnt = 1;
        if ($page > 1) {
            echo '
      <li class="page-item">
      <a class="page-link" href="download.php?dcategory=' . $dcategory . '&amp;sortby=' . $sortby . '&amp;sortorder=' . $sortorder . '&amp;page=' . ($page - 1) . '" aria-label="Previous" title="' . translate("Previous Page") . '">
        <span aria-hidden="true">&laquo;</span>
        <span class="sr-only">Previous</span>
      </a>
    </li>';
        }
        while ($pcnt < $page) {
            echo "<li class=\"page-item\"><a class=\"page-link\" href=\"download.php?dcategory={$dcategory}&amp;sortby={$sortby}&amp;sortorder={$sortorder}&amp;page={$pcnt}\">{$pcnt}</a></li>";
            $pcnt++;
        }
        echo '<li class="page-item active"><a class="page-link" href="#">' . $page . '</a></li>';
        $pcnt++;
        while ($pcnt <= $pages) {
            echo "<li class=\"page-item\"><a class=\"page-link\" href=\"download.php?dcategory={$dcategory}&amp;sortby={$sortby}&amp;sortorder={$sortorder}&amp;page={$pcnt}\">{$pcnt}</a></li>";
            $pcnt++;
        }
        if ($page < $pages) {
            echo "<li class=\"page-item\">\n      <a class=\"page-link\" href=\"download.php?dcategory={$dcategory}&amp;sortby={$sortby}&amp;sortorder={$sortorder}&amp;page=" . ($page + 1) . "\" aria-label=\"Next\" title=\"" . translate("Next Page") . "\">\n         <span aria-hidden=\"true\">&raquo;</span>\n         <span class=\"sr-only\">Next</span>\n      </a>\n      </li>\n";
        }
    }
    echo '</ul>';
}