File: File.php

package info (click to toggle)
diogenes 0.9.20-2
  • links: PTS
  • area: main
  • in suites: lenny
  • size: 2,976 kB
  • ctags: 3,271
  • sloc: php: 12,285; sh: 828; perl: 258; makefile: 137; sql: 85
file content (124 lines) | stat: -rw-r--r-- 3,337 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
<?php
/*
 * Copyright (C) 2003-2004 Polytechnique.org
 * http://opensource.polytechnique.org/
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
 
require_once 'diogenes.icons.inc.php';

/** This class describes a Barrel File.
 */
class Diogenes_Barrel_File
{
  /** The Page this File belongs to */  
  var $page;
  
  /** File properties */
  var $props = array();
  
  /** Constructs a new File.
   *
   * @param $page
   * @param $file
   */  
  function Diogenes_Barrel_File(&$page, $file)
  {    
    if (!is_object($page)) 
    {
      trigger_error("\$page is not an object!", E_USER_ERROR);
    }
    
    $this->page =& $page;
    $this->props = array(
      'file' => $file
    );
    
    /*
    if (is_array($props))
    {
      foreach (array_keys($props) as $key) 
      {
        $this->props[$key] = $props[$key];
      }
    }*/
  }
  
  
  /** Delete a file (not implemented)
   *
   * @param $barrel
   * @param $dir
   */
  function delete(&$barrel, $dir)
  {     
    global $globals;
    
  }
  
  
  /** Return the list of action applicable to the file
   *
   * @param $canedit
   */
  function make_actions($canedit)
  {
    global $globals;

    $dir = $this->page->props['PID'];
    $file = $this->props['file'];
    
    $rev = "files?action=revs&amp;dir=$dir&amp;target=$file";
    $edit = "edit?dir=$dir&amp;file=$file";
    $del = "javascript:file_delete('$dir','$file');";
    $rename = "javascript:file_rename('$dir','$file');";
    $view = "../". $this->page->getLocation($file);            

    $actions = array();
    if ($view) array_push($actions, array(__("view"), $view, "view"));
    if ($edit && $canedit) array_push($actions, array(__("edit"), $edit, "edit"));
    if ($rev) array_push($actions, array(__("revisions"),$rev, "revisions"));
    if ($rename && $canedit) array_push($actions, array(__("rename"), $rename, "rename"));
    if ($del && $canedit) array_push($actions, array(__("delete"), $del, "delete"));
    
    return $globals->icons->get_action_icons($actions);
  }
  
      
  /** Build the 'File' toolbar
   *
   * @param $canedit
   */
  function make_toolbar($canedit)
  {
    $dir = $this->page->props['PID'];
    $file = $this->props['file'];
    global $afile;
        
    $filebar = array ();
    if ($canedit)
    {
      array_push($filebar, array( __("raw editor"), ($afile == "edit") ? "" : "edit?dir=$dir&amp;file=$file"));
      array_push($filebar, array( __("HTML editor"), ($afile == "compose") ? "" : "compose?dir=$dir&amp;file=$file"));
    }
    array_push($filebar, array( __("file revisions"), "files?action=revs&amp;dir=$dir&amp;target=$file"));
    
    return $filebar;
  }
  
}
 
?>