Platform  3.1
PHP API documentation
 All Data Structures Namespaces Files Functions Variables Pages
freedom_ifld.php
Go to the documentation of this file.
1 <?php
2 /*
3  * @author Anakeen
4  * @license http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Anakeen - licence CC
5  * @package FDL
6 */
7 /**
8  * Generated Header (not documented yet)
9  *
10  * @author Anakeen 2000
11  * @version $Id: freedom_ifld.php,v 1.7 2005/06/28 08:37:46 eric Exp $
12  * @license http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Anakeen - licence CC
13  * @package FDL
14  * @subpackage GED
15  */
16 /**
17  */
18 // ---------------------------------------------------------------
19 // $Id: freedom_ifld.php,v 1.7 2005/06/28 08:37:46 eric Exp $
20 // $Source: /home/cvsroot/anakeen/freedom/freedom/Action/Freedom/freedom_ifld.php,v $
21 // ---------------------------------------------------------------
22 include_once ('FDL/Class.Doc.php');
23 include_once ('FDL/Class.Dir.php');
24 // -----------------------------------
25 // search all folder where is docid
26 // -----------------------------------
28 {
29  // -----------------------------------
30  $docid = GetHttpVars("id");
31  $dbaccess = $action->GetParam("FREEDOM_DB");
33 
34  $lfather = array_reverse(fatherFld($dbaccess, $doc->initid));
35 
36  $lprev = 0;
37  while (list($k, $v) = each($lfather)) {
38  // recompute level for indentation
39  if ($lprev == 0) $lmax = $lfather[$k]["level"];
40  $lfather[$k]["level"] = - ($v["level"] - $lmax) * 15; // by 15px
41  $lprev = $v["level"];
42  }
43 
44  $action->lay->Set("TITLE", $doc->title);
45  $action->lay->SetBlockData("IFLD", $lfather);
46 }
47 
48 function fatherFld($dbaccess, $docid, $level = 0, $lfldid = array() , $lcdoc = array())
49 {
50  // compute all path to accessing document
51  $doc = new_doc($dbaccess, $docid);
52  $flds = $doc->getParentFolderIds();
53  $ldoc2 = array();
54  if (count($flds) > 0) {
55 
56  foreach ($flds as $pfldid) {
57 
58  if (!in_array($pfldid, $lfldid)) {
59  // avoid infinite recursion
60  $fld = new_Doc($dbaccess, $pfldid);
61  if ($fld->Control("view") == "") {
62  // permission view folder
63  $ldoc1 = array(
64  "level" => $level,
65  "ftitle" => $fld->title,
66  "fid" => $fld->id
67  );
68 
69  $lcdoc1 = $lcdoc;
70  $lcdoc1[] = $ldoc1;
71 
72  $lfldid1 = $lfldid;
73  $lfldid1[] = $pfldid;
74 
75  $ldoc2 = array_merge(fatherFld($dbaccess, $pfldid, $level + 1, $lfldid1, $lcdoc1) , $ldoc2);
76  } else $ldoc2 = $lcdoc;
77  } else $ldoc2 = $lcdoc;
78  }
79  } else return $lcdoc;
80  return $ldoc2;
81 }
82 ?>
← centre documentaire © anakeen - published under CC License - Dynacase