Platform  3.1
PHP API documentation
 All Data Structures Namespaces Files Functions Variables Pages
onefam_ext_menu.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  * Send javascript onefam collection menu
9  *
10  * @author Anakeen 2010
11  * @version $Id: $
12  * @license http://creativecommons.org/licenses/by-nc-sa/2.0/fr/ Anakeen - licence CC
13  * @package FDL
14  * @subpackage
15  */
16 /**
17  */
18 
19 include_once ("EXTUI/eui_xmlmenu.php");
20 /**
21  * Colection menu
22  * @param Action &$action current action
23  * @global famid Http var : family id for menu
24  * @global fldid Http var : id collection where is actually
25  * @global menuxml Http var : the xml menu file APP:file.xml
26  */
28 {
29  if (!file_exists('lib/ui/freedom-extui.js')) {
30  $err = _("This action requires the installation of Dynacase Extui module");
31  $action->ExitError($err);
32  }
33 
34  $fldid = $action->getArgument("fldid");
35  $famid = $action->getArgument("famid");
36  $menuxml = $action->getArgument("menuxml", "EXTUI:default-collection-menu.xml");
37  $menu = eui_getxmlmenu($docid, $menuxml, $fldid);
38  $dbaccess = $action->getParam("FREEDOM_DB");
39 
40  if ($fldid) {
41  $fld = new_doc($dbaccess, $fldid);
42  if (!$famid) {
43  if ($fld->isAlive()) {
44  $famid = $fld->getValue("se_famid");
45  }
46  }
47  }
48 
49  unset($menu["menu"]["createsearch"]);
50  $fam = new_doc($dbaccess, $famid);
51  $main = array();
52  if ($fam->isAlive()) {
53  if ($fam->control("icreate") == "") {
54  $main["family"] = array(
55  "type" => "menu",
56  "label" => $fam->getTitle() ,
57  //"icon"=>$fam->getIcon(),
58  "items" => array()
59  );
60 
61  $main["family"]["items"]["create"] = array(
62  "script" => array(
63  "file" => "lib/ui/fdl-interface-action-common.js",
64  "class" => "Fdl.InterfaceAction.CreateDocument",
65  "parameters" => array(
66  "family" => $fam->id
67  )
68  ) ,
69  "label" => sprintf(_("Create %s") , $fam->getTitle()) ,
70  "icon" => $fam->getIcon()
71  );
72  }
73  $controlcreate = true;
74  $tfam = $fam->GetChildFam($fam->id, $controlcreate);
75 
76  if (count($tfam) > 0) {
77  $main["family"]["items"]["subfam"] = array(
78  "type" => "menu",
79  "label" => _("other families") ,
80  "items" => array()
81  );
82  foreach ($tfam as $k => $v) {
83  $main["family"]["items"]["subfam"]["items"]["create" . $v["id"]] = array(
84  "script" => array(
85  "file" => "lib/ui/fdl-interface-action-common.js",
86  "class" => "Fdl.InterfaceAction.CreateDocument",
87  "parameters" => array(
88  "family" => $v["id"]
89  )
90  ) ,
91  "label" => sprintf(_("Create %s") , $v["title"]) ,
92  "icon" => $fam->getIcon($v["icon"])
93  );
94  }
95  }
96 
97  if ($fldid && $fld->isAlive() && ($fld->doctype != 'T')) {
98  $main["family"]["items"]["edit"] = array(
99  "script" => array(
100  "file" => "lib/ui/fdl-interface-action-common.js",
101  "class" => "Fdl.InterfaceAction.EditSearchFilter"
102  ) ,
103  "label" => sprintf(_("Edit %s") , $fld->getTitle()) ,
104  "icon" => $fld->getIcon()
105  );
106  }
107 
108  $fmenu = $fam->getMenuAttributes();
109  if (count($fmenu) > 0) {
110  $first = true;
111  foreach ($fmenu as $k => $v) {
112  if ($v->getOption("global") == "yes") {
113 
114  if ($first) $main["family"]["items"]["sepspec"] = array(
115  "type" => "separator"
116  );
117  $main["family"]["items"]["glob" . $k] = array(
118  "url" => $fam->urlWhatEncode($v->link) ,
119  "label" => $v->getLabel()
120  );
121  $first = false;
122  }
123  }
124  }
125 
126  $menu = array(
127  "menu" => array_merge($main, $menu["menu"])
128  );
129  }
130  // print_r2($menu);
131  $action->lay->noparse = true; // no need to parse after - increase performances
132  $action->lay->template = json_encode($menu);
133 }
134 ?>
← centre documentaire © anakeen - published under CC License - Dynacase