home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 April / CMCD0404.ISO / Software / Freeware / Programare / dotproject / modules / files / index_table.php < prev    next >
Encoding:
PHP Script  |  2004-02-01  |  8.1 KB  |  244 lines

  1. <?php /* FILES $Id: index_table.php,v 1.14 2004/02/01 08:31:47 gregorerhardt Exp $ */
  2. // modified later by Pablo Roca (proca) in 18 August 2003 - added page support
  3. // Files modules: index page re-usable sub-table
  4. GLOBAL $AppUI, $deny1;
  5.  
  6. function shownavbar($xpg_totalrecs, $xpg_pagesize, $xpg_total_pages, $page)
  7. {
  8.     GLOBAL $AppUI;
  9.     $xpg_break = false;
  10.     
  11.     echo "\t<table width='100%' cellspacing='0' cellpadding='0' border=0><tr>";
  12.  
  13.     if ($xpg_totalrecs > $xpg_pagesize) {
  14.         $xpg_prev_page = $page - 1;
  15.         $xpg_next_page = $page + 1;
  16.         // left buttoms
  17.         if ($xpg_prev_page > 0) {
  18.             echo "<td align='left' width='15%'>";
  19.             echo '<a href="./index.php?m=files&page=1">';
  20.             echo '<img src="images/navfirst.gif" border="0" Alt="First Page"></a>  ';
  21.             echo '<a href="./index.php?m=files&page=' . $xpg_prev_page . '">';
  22.             echo "<img src=\"images/navleft.gif\" border=\"0\" Alt=\"Previous page ($xpg_prev_page)\"></a></td>";
  23.         } else {
  24.             echo "<td width='15%'> </td>\n";
  25.         } 
  26.         
  27.         // central text (files, total pages, ...)
  28.         echo "<td align='center' width='70%'>";
  29.         echo "$xpg_totalrecs " . $AppUI->_('File(s)') . " ($xpg_total_pages " . $AppUI->_('Page(s)') . ")";
  30.         echo "</td>";
  31.     
  32.         // right buttoms
  33.         if ($xpg_next_page <= $xpg_total_pages) {
  34.             echo "<td align='right' width='15%'>";
  35.             echo '<a href="./index.php?m=files&page='.$xpg_next_page.'">';
  36.             echo '<img src="images/navright.gif" border="0" Alt="Next Page ('.$xpg_next_page.')"></a>  ';
  37.             echo '<a href="./index.php?m=files&page=' . $xpg_total_pages . '">';
  38.             echo '<img src="images/navlast.gif" border="0" Alt="Last Page"></a></td>';
  39.         } else {
  40.             echo "<td width='15%'> </td></tr>\n";
  41.         }
  42.         // Page numbered list, up to 30 pages
  43.         echo "<tr><td colspan=\"3\" align=\"center\">";
  44.         echo " [ ";
  45.     
  46.         for($n = $page > 16 ? $page-16 : 1; $n < $xpg_total_pages; $n++) {
  47.             if ($n == $page) {
  48.                 echo "<b>$n</b></a>";
  49.             } else {
  50.                 echo "<a href='./index.php?m=files&page=$n'>";
  51.                 echo $n . "</a>";
  52.             } 
  53.             if ($n >= 30+$page-15) {
  54.                 $xpg_break = true;
  55.                 break;
  56.             } else {
  57.                 echo " | ";
  58.             } 
  59.         } 
  60.     
  61.         if (!isset($xpg_break)) { // are we supposed to break ?
  62.             if ($n == $page) {
  63.                 echo "<" . $n . "</a>";
  64.             } else {
  65.                 echo "<a href='./index.php?m=files&page=$xpg_total_pages'>";
  66.                 echo $n . "</a>";
  67.             } 
  68.         } 
  69.         echo " ] ";
  70.         echo "</td></tr>";
  71.     } else { // or we dont have any files..
  72.         echo "<td align='center'>";
  73.         echo $xpg_sqlrecs . " " . "Files" . " ";
  74.         echo "</td></tr>";
  75.     } 
  76.     echo "</table>";
  77.  
  78. }
  79.  
  80. // ****************************************************************************
  81. // Page numbering variables
  82. // Pablo Roca (pabloroca@Xmvps.org) (Remove the X)
  83. // 19 August 2003
  84. //
  85. // $page            - actual page to show
  86. // $xpg_pagesize    - max rows per page
  87. // $xpg_min         - initial record in the SELECT LIMIT
  88. // $xpg_totalrecs   - total rows selected
  89. // $xpg_sqlrecs     - total rows from SELECT LIMIT
  90. // $xpg_total_pages - total pages
  91. // $xpg_next_page   - next pagenumber
  92. // $xpg_prev_page   - previous pagenumber
  93. // $xpg_break       - stop showing page numbered list?
  94. // $xpg_sqlcount    - SELECT for the COUNT total
  95. // $xpg_sqlquery    - SELECT for the SELECT LIMIT
  96. // $xpg_result      - pointer to results from SELECT LIMIT
  97. // $xpg_resultcount - pointer to results from SELECT COUNT
  98.  
  99. if (!isset($page)) {
  100.     $page = 1;
  101. }
  102. $xpg_pagesize = 30;
  103. $xpg_min = $xpg_pagesize * ($page - 1); // This is where we start our record set from
  104.  
  105.  
  106. // load the following classes to retrieved denied records
  107. include_once( $AppUI->getModuleClass( 'projects' ) );
  108. include_once( $AppUI->getModuleClass( 'tasks' ) );
  109.  
  110. $project = new CProject();
  111. $deny1 = $project->getDeniedRecords( $AppUI->user_id );
  112.  
  113. $task = new CTask();
  114. $deny2 = $task->getDeniedRecords( $AppUI->user_id );
  115.  
  116. $df = $AppUI->getPref('SHDATEFORMAT');
  117. $tf = $AppUI->getPref('TIMEFORMAT');
  118.  
  119. // SQL text for count the total recs from the selected option
  120. $xpg_sqlcount = "
  121. SELECT COUNT(files.file_id)
  122. FROM files, permissions
  123. LEFT JOIN projects ON project_id = file_project
  124. LEFT JOIN users ON user_id = file_owner
  125. WHERE
  126.     permission_user = $AppUI->user_id
  127.     AND permission_value <> 0
  128.     AND (
  129.         (permission_grant_on = 'all')
  130.         OR (permission_grant_on = 'projects' AND permission_item = -1)
  131.         OR (permission_grant_on = 'projects' AND permission_item = project_id)
  132.         )
  133. "
  134. . (count( $deny1 ) > 0 ? "\nAND file_project NOT IN (" . implode( ',', $deny1 ) . ')' : '')
  135. . (count( $deny2 ) > 0 ? "\nAND file_task NOT IN (" . implode( ',', $deny2 ) . ')' : '')
  136. . ($project_id ? "\nAND file_project = $project_id" : '');
  137.  
  138.  
  139. //echo $xpg_sqlcount."<br><br>";
  140.  
  141. // SETUP FOR FILE LIST
  142. $sql = "
  143. SELECT files.*,
  144.     project_name, project_color_identifier, project_active,
  145.     user_first_name, user_last_name
  146. FROM files, permissions
  147. LEFT JOIN projects ON project_id = file_project
  148. LEFT JOIN users ON user_id = file_owner
  149. WHERE
  150.     permission_user = $AppUI->user_id
  151.     AND permission_value <> 0
  152.     AND (
  153.         (permission_grant_on = 'all')
  154.         OR (permission_grant_on = 'projects' AND permission_item = -1)
  155.         OR (permission_grant_on = 'projects' AND permission_item = project_id)
  156.         )
  157. "
  158. . (count( $deny1 ) > 0 ? "\nAND file_project NOT IN (" . implode( ',', $deny1 ) . ')' : '') 
  159. . (count( $deny2 ) > 0 ? "\nAND file_task NOT IN (" . implode( ',', $deny2 ) . ')' : '') 
  160. . ($project_id ? "\nAND file_project = $project_id" : '')
  161. ."
  162. GROUP BY file_id
  163. ORDER BY project_name, file_name
  164. LIMIT ".$xpg_min.",".$xpg_pagesize;
  165.  
  166. //echo $sql;
  167.  
  168. $file = array();
  169. if ($canRead) {
  170.     $files = db_loadList( $sql );
  171. }
  172.  
  173. // counts total recs from selection
  174. $xpg_resultcount = db_exec($xpg_sqlcount);
  175. $row = db_fetch_row($xpg_resultcount);
  176. $xpg_totalrecs = $row[0];
  177.  
  178. // How many pages are we dealing with here ??
  179. if ($xpg_totalrecs > $xpg_pagesize) {
  180.     $xpg_total_pages = ceil($xpg_totalrecs / $xpg_pagesize);
  181. }
  182.  
  183. shownavbar($xpg_totalrecs, $xpg_pagesize, $xpg_total_pages, $page);
  184.  
  185. ?>
  186. <table width="100%" border="0" cellpadding="2" cellspacing="1" class="tbl">
  187. <tr>
  188.     <th nowrap="nowrap"> </th>
  189.     <th nowrap="nowrap"><?php echo $AppUI->_( 'File Name' );?></th>
  190.     <th nowrap="nowrap"><?php echo $AppUI->_( 'Description' );?></th>
  191.     <th nowrap="nowrap"><?php echo $AppUI->_( 'Version' );?></th>
  192.     <th nowrap="nowrap"><?php echo $AppUI->_( 'Owner' );?></th>
  193.     <th nowrap="nowrap"><?php echo $AppUI->_( 'Size' );?></th>
  194.     <th nowrap="nowrap"><?php echo $AppUI->_( 'Type' );?></a></th>
  195.     <th nowrap="nowrap"><?php echo $AppUI->_( 'Date' );?></th>
  196. </tr>
  197. <?php
  198. $fp=-1;
  199. $file_date = new CDate();
  200.  
  201. foreach ($files as $row) {
  202.     $file_date = new CDate( $row['file_date'] );
  203.  
  204.     if ($fp != $row["file_project"]) {
  205.         if (!$row["project_name"]) {
  206.             $row["project_name"] = $AppUI->_('All Projects');
  207.             $row["project_color_identifier"] = 'f4efe3';
  208.         }
  209.         if ($showProject) {
  210.             $s = '<tr>';
  211.             $s .= '<td colspan="8" style="background-color:#'.$row["project_color_identifier"].'" style="border: outset 2px #eeeeee">';
  212.             $s .= '<font color="' . bestColor( $row["project_color_identifier"] ) . '">'
  213.             . $row["project_name"] . '</font>';
  214.             $s .= '</td></tr>';
  215.             echo $s;
  216.         }
  217.     }
  218.     $fp = $row["file_project"];
  219. ?>
  220. <tr>
  221.     <td nowrap="nowrap" width="20">
  222.     <?php if ($canEdit) {
  223.         echo "\n".'<a href="./index.php?m=files&a=addedit&file_id=' . $row["file_id"] . '">';
  224.         echo dPshowImage( './images/icons/stock_edit-16.png', '16', '16' );
  225.         echo "\n</a>";
  226.     }
  227.     ?>
  228.     </td>
  229.     <td nowrap="8%">
  230.         <?php echo "<a href=\"./fileviewer.php?file_id={$row['file_id']}\" title=\"{$row['file_description']}\">{$row['file_name']}</a>"; ?>
  231.     </td>
  232.     <td width="20%"><?php echo $row["file_description"];?></td>
  233.     <td width="5%" nowrap="nowrap" align="center"><?php echo $row["file_version"];?></td>
  234.     <td width="15%" nowrap="nowrap"><?php echo $row["user_first_name"].' '.$row["user_last_name"];?></td>
  235.     <td width="10%" nowrap="nowrap" align="right"><?php echo intval($row["file_size"] / 1024);?> kb</td>
  236.     <td width="15%" nowrap="nowrap"><?php echo $row["file_type"];?></td>
  237.     <td width="15%" nowrap="nowrap" align="right"><?php echo $file_date->format( "$df $tf" );?></td>
  238. </tr>
  239. <?php }?>
  240. </table>
  241. <?php
  242. shownavbar($xpg_totalrecs, $xpg_pagesize, $xpg_total_pages, $page);
  243. ?>
  244.