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