home *** CD-ROM | disk | FTP | other *** search
/ Chip 2004 April / CMCD0404.ISO / Software / Freeware / Programare / groupoffice-com-2.01 / modules / cms / listview.inc < prev    next >
Text File  |  2004-03-08  |  11KB  |  338 lines

  1. <?php
  2. /*
  3. Copyright Intermesh 2003
  4. Author: Merijn Schering <mschering@intermesh.nl>
  5. Version: 1.0 Release date: 08 July 2003
  6.  
  7. This program is free software; you can redistribute it and/or modify it
  8. under the terms of the GNU General Public License as published by the
  9. Free Software Foundation; either version 2 of the License, or (at your
  10. option) any later version.
  11. */
  12.  
  13. //determine sorting
  14. if (!isset($_COOKIE['cms_sort']))
  15.         $_COOKIE['cms_sort'] = "cms_files.name";
  16.  
  17. if (!isset($_COOKIE['cms_direction']))
  18.         $_COOKIE['cms_direction'] = "ASC";
  19.  
  20. if ($_COOKIE['cms_direction'] == "DESC")
  21. {
  22.         $image_string = ' <img src="'.$GO_THEME->image_url.'buttons/arrow_down.gif" border="0" />';
  23.         $newdirection = "ASC";
  24. }else
  25. {
  26.         $image_string = ' <img src="'.$GO_THEME->image_url.'buttons/arrow_up.gif" border="0" />';
  27.         $newdirection = "DESC";
  28. }
  29. echo '<table border="0" cellpadding="0" cellspacing="0" width="400"><tr>';
  30. echo '<td class="TableHead2" width="16"><input type="checkbox" onclick="javascript:invert_selection()" name="dummy" /></td>';
  31. echo '<td class="TableHead2" width="16"> </td>';
  32. echo '<td class="TableHead2" width="100" nowrap><a class="TableHead2" href="'.$_SERVER['PHP_SELF'].'?site_id='.$site_id.'&newsort=cms_files.name&newdirection='.$newdirection.'&folder_id='.$folder_id.'">'.$strName;
  33. if ($_COOKIE['cms_sort'] == "cms_files.name")
  34.         echo $image_string;
  35. echo '</a></td>';
  36.  
  37. echo '<td class="TableHead2" width="100" nowrap><a class="TableHead2" href="'.$_SERVER['PHP_SELF'].'?site_id='.$site_id.'&newsort=filetypes.friendly&newdirection='.$newdirection.'&folder_id='.$folder_id.'">'.$strType;
  38. if ($_COOKIE['cms_sort'] == "filetypes.friendly")
  39.         echo $image_string;
  40. echo '</a></td>';
  41. /*
  42. echo '<td class="TableHead2" width="100" nowrap><a class="TableHead2" href="'.$_SERVER['PHP_SELF'].'?newsort=cms_files.size&newdirection='.$newdirection.'&folder_id='.$folder_id.'">'.$strSize;
  43. if ($cms_sort == "cms_files.size")
  44.         echo $image_string;
  45. echo '</a></td>';
  46.  
  47. echo '<td class="TableHead2" width="100" nowrap><a class="TableHead2" href="'.$_SERVER['PHP_SELF'].'?newsort=cms_files.mtime&newdirection='.$newdirection.'&folder_id='.$folder_id.'">'.$strModified;
  48. if ($cms_sort == "cms_files.mtime")
  49.         echo $image_string;
  50. echo '</a></td>';
  51. */
  52. echo '<td class="TableHead2" width="100" nowrap><a class="TableHead2" href="'.$_SERVER['PHP_SELF'].'?site_id='.$site_id.'&newsort=cms_files.priority&newdirection='.$newdirection.'&folder_id='.$folder_id.'">'.$cms_priority;
  53. if ($_COOKIE['cms_sort'] == "cms_files.priority")
  54.         echo $image_string;
  55. echo '</a></td></tr>';
  56.  
  57. //list the folders
  58.  
  59. //adjust sorting because folders because they lack some columns
  60. switch ($_COOKIE['cms_sort'])
  61. {
  62.     case 'cms_files.priority':
  63.         $folders_sort = "priority";
  64.     break;
  65.  
  66.     case 'cms_files.time':
  67.         $folders_sort = "time";
  68.     break;
  69.  
  70.     default:
  71.         $folders_sort = "name";
  72.     break;
  73. }
  74.  
  75. //list the folders first
  76. $total_size = 0;
  77. $count_folders = $cms->get_folders($folder_id, $folders_sort, $_COOKIE['cms_direction']);
  78. while ($cms->next_record())
  79. {
  80.     $short_name = cut_string($cms->f('name'), 30);
  81.     echo '<tr id="folder_'.$cms->f('id').'" class="Table1">';
  82.     echo '<td><input onclick="javascript:folder_click(this)" type="checkbox" name="folders[]" value="'.$cms->f('id').'" id="'.$cms->f('name').'" /></td>';
  83.     if ($cms->f('disabled') == '1')
  84.     {
  85.         echo '<td><img width="16" height="16" border="0" src="'.$GO_THEME->images['invisible_folder'].'" /></td>';
  86.     }else
  87.     {
  88.         echo '<td><img width="16" height="16" border="0" src="'.$GO_THEME->images['folder'].'" /></td>';
  89.     }
  90.     if (isset($_SESSION['cut_folders']) && in_array($cms->f('id'), $_SESSION['cut_folders']))
  91.     {
  92.         echo '<td nowrap> <a href="'.$_SERVER['PHP_SELF'].'?site_id='.$site_id.'&folder_id='.$cms->f('id').'"><font color="#7d7d7d">'.$cms->f('name').'</font></a>  </td>';
  93.     }else
  94.     {
  95.         echo '<td nowrap> <a href="'.$_SERVER['PHP_SELF'].'?site_id='.$site_id.'&folder_id='.$cms->f('id').'" title="'.$cms->f('name').'">'.$short_name.'</a>  </td>';
  96.     }
  97.     echo '<td nowrap>'.$fbFolder.'  </td>';
  98.     /*
  99.     echo '<td align="right">-  </td>';
  100.     echo '<td nowrap>'.date($_SESSION['GO_SESSION']['date_format'], $cms->f('mtime')).'  </td>';
  101.     */
  102.     echo '<td nowrap align="center">'.$cms->f('priority').'</td>';
  103.     echo '</tr>';
  104.     echo '<tr><td colspan="99" height="1"><img src="'.$GO_THEME->images['cccccc'].'" border="0" height="1" width="100%" /></td></tr>';
  105.  
  106. }
  107.  
  108. //list the files
  109. $count_files = $cms->get_files($folder_id, $_COOKIE['cms_sort'], $_COOKIE['cms_direction']);
  110. while ($cms->next_record())
  111. {
  112.     $total_size += $cms->f('size');
  113.     $short_name = cut_string(strip_extension($cms->f('name')), 30);
  114.  
  115.     echo '<tr id="file_'.$cms->f('id').'" class="Table1">';
  116.     echo '<td><input onclick="javascript:file_click(this)" type="checkbox" name="files[]" value="'.$cms->f('id').'" id="'.$cms->f('name').'" /></td>';
  117.     echo '<td><img width="16" height="16" border="0" src="'.$GO_CONFIG->control_url.'icon.php?extension='.$cms->f('extension').'" /></td>';
  118.  
  119.     if(eregi('htm', $cms->f('extension')))
  120.     {
  121.         echo '<td nowrap> <a href="edit.php?site_id='.$site_id.'&file_id='.$cms->f('id').'&folder_id='.$folder_id.'" title="'.$cms->f('name').'">';
  122.     }else
  123.     {
  124.         echo '<td nowrap> <a target="_blank" href="download.php?site_id='.$site_id.'&file_id='.$cms->f('id').'" title="'.$cms->f('name').'">';
  125.     }
  126.  
  127.     if (isset($_SESSION['cut_files']) && in_array($cms->f('id'), $_SESSION['cut_files']))
  128.     {
  129.         echo '<font color="#7d7d7d">'.$short_name.'</font></a>  </td>';
  130.     }else
  131.     {
  132.         echo $short_name.'</a>  </td>';
  133.     }
  134.     echo '<td nowrap>'.$cms->f('friendly').'  </td>';
  135.     /*
  136.     echo '<td nowrap align="right">'.format_size($cms->f('size')).'  </td>';
  137.     echo '<td nowrap>'.date($_SESSION['GO_SESSION']['date_format'], $cms->f('mtime')).'  </td>';
  138.     */
  139.     echo '<td nowrap align="center">'.$cms->f('priority').'</td>';
  140.     echo '</tr>';
  141.     echo '<tr><td colspan="99" height="1"><img src="'.$GO_THEME->images['cccccc'].'" border="0" height="1" width="100%" /></td></tr>';
  142.  
  143. }
  144.  
  145. $count_items = $count_folders+$count_files;
  146. echo '<tr><td colspan="99" class="small" height="18"> '.$count_items.' item(s)     '.$fbFolderSize.': '.format_size($total_size).'</td></tr>';
  147. echo '<tr><td colspan="99" height="1"><img src="'.$GO_THEME->images['cccccc'].'" border="0" height="1" width="100%" /></td></tr>';
  148. echo "</table>";
  149. ?>
  150. <script type="text/javascript" language="javascript">
  151.  
  152. function file_click(check_box)
  153. {
  154.     var item = get_object('file_'+check_box.value);
  155.     if (check_box.checked)
  156.     {
  157.         item.className = 'Table2';
  158.     }else
  159.     {
  160.         item.className = 'Table1';
  161.     }
  162. }
  163.  
  164. function folder_click(check_box)
  165. {
  166.     var item = get_object('folder_'+check_box.value);
  167.     if (check_box.checked)
  168.     {
  169.         item.className = 'Table2';
  170.     }else
  171.     {
  172.         item.className = 'Table1';
  173.     }
  174. }
  175.  
  176.  
  177. function invert_selection()
  178. {
  179.     for (var i=0;i<document.forms[0].elements.length;i++)
  180.     {
  181.         if(document.forms[0].elements[i].type == 'checkbox' && document.forms[0].elements[i].name != 'dummy')
  182.         {
  183.             document.forms[0].elements[i].checked = !(document.forms[0].elements[i].checked);
  184.             if (document.forms[0].elements[i].name == 'files[]')
  185.             {
  186.                 file_click(document.forms[0].elements[i]);
  187.             }else
  188.             {
  189.                 folder_click(document.forms[0].elements[i]);
  190.             }
  191.         }
  192.     }
  193. }
  194.  
  195. function cut_items()
  196. {
  197.     var count = 0;
  198.     for (var i=0;i<document.forms[0].elements.length;i++)
  199.     {
  200.         if(document.forms[0].elements[i].type == 'checkbox' && document.forms[0].elements[i].name != 'dummy')
  201.         {
  202.             if (document.forms[0].elements[i].checked == true)
  203.             {
  204.                 count++;
  205.             }
  206.         }
  207.     }
  208.  
  209.     if (count > 0)
  210.     {
  211.         document.forms[0].task.value = 'cut';
  212.         document.forms[0].submit();
  213.     }else
  214.     {
  215.         alert("<?php echo $fbNoSelect; ?>");
  216.     }
  217. }
  218.  
  219. function copy_items()
  220. {
  221.     var count = 0;
  222.     for (var i=0;i<document.forms[0].elements.length;i++)
  223.     {
  224.         if(document.forms[0].elements[i].type == 'checkbox' && document.forms[0].elements[i].name != 'dummy')
  225.         {
  226.             if (document.forms[0].elements[i].checked == true)
  227.             {
  228.                 count++;
  229.             }
  230.         }
  231.     }
  232.  
  233.     if (count > 0)
  234.     {
  235.         document.forms[0].task.value = 'copy';
  236.         document.forms[0].submit();
  237.     }else
  238.     {
  239.         alert("<?php echo $fbNoSelect; ?>");
  240.     }
  241. }
  242.  
  243. function paste_items()
  244. {
  245.     document.forms[0].task.value = 'paste';
  246.     document.forms[0].submit();
  247. }
  248.  
  249.  
  250. function delete_items()
  251. {
  252.     var count = 0;
  253.     var filename = new String;
  254.     var path = new String;
  255.  
  256.     for (var i=0;i<document.forms[0].elements.length;i++)
  257.     {
  258.         if(document.forms[0].elements[i].type == 'checkbox' && document.forms[0].elements[i].name != 'dummy')
  259.         {
  260.             if (document.forms[0].elements[i].checked == true)
  261.             {
  262.                 count++;
  263.                 filename = document.forms[0].elements[i].id;
  264.             }
  265.         }
  266.     }
  267.     switch (count)
  268.     {
  269.         case 0:
  270.             alert("<?php echo $fbNoSelect; ?>");
  271.         break;
  272.  
  273.         case 1:
  274.             if (confirm("<?php echo $strDeletePrefix; ?>'"+filename+"'<?php echo $strDeleteSuffix; ?>"))
  275.             {
  276.                 document.forms[0].task.value = 'delete';
  277.                 document.forms[0].submit();
  278.             }
  279.         break;
  280.  
  281.         default:
  282.             if (confirm("<?php echo $strDeletePrefix.$strThis; ?> "+count+" <?php echo $strItems.$strDeleteSuffix; ?>"))
  283.             {
  284.                 document.forms[0].task.value = 'delete';
  285.                 document.forms[0].submit();
  286.             }
  287.         break;
  288.     }
  289. }
  290.  
  291.  
  292.  
  293. function properties()
  294. {
  295.     var count = 0;
  296.     var id = new String;
  297.     var type = new String;
  298.  
  299.     for (var i=0;i<document.forms[0].elements.length;i++)
  300.     {
  301.         if(document.forms[0].elements[i].type == 'checkbox' && document.forms[0].elements[i].name != 'dummy')
  302.         {
  303.             if (document.forms[0].elements[i].checked == true)
  304.             {
  305.                 count++;
  306.                 id = document.forms[0].elements[i].value;
  307.                 if(document.forms[0].elements[i].name == 'files[]')
  308.                 {
  309.                     type = 'file';
  310.                 }else
  311.                 {
  312.                     type = 'folder';
  313.                 }
  314.             }
  315.         }
  316.     }
  317.     switch (count)
  318.     {
  319.         case 0:
  320.             document.location='properties.php?site_id=<?php echo $site_id; ?>&folder_id=<?php echo $folder_id; ?>&return_to=<?php echo urlencode($link_back); ?>&task=folder_properties';
  321.         break;
  322.  
  323.         case 1:
  324.             if (type == 'folder')
  325.             {
  326.                 document.location='properties.php?site_id=<?php echo $site_id; ?>&folder_id='+id+'&return_to=<?php echo urlencode($link_back); ?>&task=folder_properties';
  327.             }else
  328.             {
  329.                 document.location='properties.php?site_id=<?php echo $site_id; ?>&folder_id=<?php echo $folder_id; ?>&file_id='+id+'&return_to=<?php echo urlencode($link_back); ?>&task=file_properties';
  330.             }
  331.         break;
  332.  
  333.         default:
  334.             alert("<?php echo $fs_no_multi_select; ?>");
  335.         break;
  336.     }
  337. }
  338. </script>