Core  3.2
PHP API documentation
 All Data Structures Namespaces Files Functions Variables Pages
viewfolder.php
Go to the documentation of this file.
1 <?php
2 /*
3  * @author Anakeen
4  * @package FDL
5 */
6 /**
7  * View folder containt
8  *
9  * @author Anakeen
10  * @version $Id: viewfolder.php,v 1.92 2008/08/14 09:59:14 eric Exp $
11  * @package FDL
12  * @subpackage
13  */
14 /**
15  */
16 
17 include_once ("FDL/Class.SearchDoc.php");
18 include_once ("FDL/Class.DocAttr.php");
19 include_once ("FDL/freedom_util.php");
20 include_once ("FDL/Class.QueryDir.php");
21 // -----------------------------------
22 
23 /**
24  * @param Action $action
25  * @param bool $with_abstract
26  * @param bool $with_popup
27  * @param bool $column
28  * @param string $slice if "-" view all document (not slice by slice)
29  * @param array $sqlfilters more filters to see specials doc
30  * @param string $famid folder containt special fam id
31  * @param string $paginationType pagination type
32  * @return int
33  */
34 function viewfolder(Action & $action, $with_abstract = false, $with_popup = true, $column = false, $slice = "-", $sqlfilters = array() , $famid = "", $paginationType = "none")
35 {
36  // -----------------------------------
37  // Get all the params
38  $dirid = GetHttpVars("dirid"); // directory to see
39  $refresh = GetHttpVars("refresh", "no"); // force folder refresh
40 
41  /*
42  * @var int $startpage
43  */
44  $startpage = GetHttpVars("page", "0"); // page number
45  $target = GetHttpVars("target", "fdoc"); // target for hyperlinks
46  $sqlorder = GetHttpVars("sqlorder", null); // order sort attribute
47  $viewone = (GetHttpVars("viewone", "N") == "Y"); // direct view if only one
48 
49  /*
50  * @var int $slice
51  */
52  if ($slice == "-") $slice = $action->GetParam("FDL_FOLDERMAXITEM", 1000);
53  // $column = ($with_popup && ($action->getParam("FREEDOM_VIEW")=="column"));
54  // Set the globals elements
55  $baseurl = $action->GetParam("CORE_BASEURL");
56  $standurl = $action->GetParam("CORE_STANDURL");
57  $dbaccess = $action->dbaccess;
58 
60 
61  $dirid = $dir->id; // use initial id for directories
62  $distinct = false;
63 
64  $action->lay->set("RSS", ($dir->getRawValue("gui_isrss") == "yes" ? true : false));
65  if ($action->lay->get("RSS")) {
66  $action->lay->set("rsslink", $dir->getRssLink());
67  }
68  $action->lay->set("foldername", $dir->getHtmlTitle());
69  // control open
70  if ($dir->defDoctype == 'S') {
71  $aclctrl = "execute";
72  if ($sqlorder == "") $sqlorder = $dir->getRawValue("se_orderby");
73  } else $aclctrl = "open";
74  if (($err = $dir->Control($aclctrl)) != "") $action->exitError($err);
75 
76  $action->lay->Set("dirtitle", stripslashes($dir->getHtmlTitle()));
77  $action->lay->eSet("dirid", $dirid);
78 
79  $action->parent->AddJsRef($action->GetParam("CORE_JSURL") . "/subwindow.js");
80  $action->parent->AddJsRef($action->GetParam("CORE_JSURL") . "/resizeimg.js");
81  $action->parent->AddJsRef($action->GetParam("CORE_JSURL") . "/geometry.js");
82 
83  $action->lay->set("VALTERN", ($action->GetParam("FDL_VIEWALTERN", "yes") == "yes"));
84 
85  if ($dirid == "") {
86  $action->exitError(_("cannot see unknow folder"));
87  }
88 
89  $start = $startpage * $slice;
90 
92  if (count($terr) > 0) {
93  if ($dir->defDoctype == 'S') {
94  redirect($action, "FDL", "IMPCARD&zone=FREEDOM:PARAMDSEARCH:T&id=$dirid", $action->GetParam("CORE_STANDURL") , true);
95  } else {
96  $action->addWarningMsg(implode("\n", $terr));
97  redirect($action, "FDL", "FDL_CARD&id=$dirid", $action->GetParam("CORE_STANDURL") , true);
98  }
99  }
100 
101  $sd = new SearchDoc($dbaccess, $famid);
102  $sd->setSlice($slice + 1);
103  $sd->setStart($start);
104  if ($dirid) $sd->useCollection($dirid);
105  $sd->excludeConfidential();
106  $sd->distinct = $distinct;
107  $orderbyLabel = '';
108  if ($action->getArgument('onefam')) {
109  $orderbyLabel = preg_replace('/^-/', '', $sqlorder);
110  }
111  if ($column) {
112  if ($sqlorder != "") {
113  $sqlorder = "fromid,$sqlorder";
114  } else {
115  $sqlorder = "fromid,title";
116  }
117  }
118  if ($sqlorder === null) {
119  $sqlorder = 'title';
120  }
121  $sd->setOrder($sqlorder, $orderbyLabel);
122  if ($sqlfilters) foreach ($sqlfilters as $filter) $sd->addFilter($filter);
123  $sd->setObjectReturn();
124  //$ldoc = getChildDoc($dbaccess, $dirid,$start,$slice,$sqlfilters,$action->user->id,"TABLE",$famid,
125  //$distinct, $sqlorder);
126  try {
127  $sd->search();
128  $searchError = $sd->searchError();
129  }
130  catch(Dcp\Db\Exception $e) {
131  $searchError = sprintf(_("This search cannot be executed"));
132  }
133  $count = $sd->count();
134  $hasNext = ($count > $slice);
135  if ($viewone && ($count == 1)) {
136 
137  $doc1 = $sd->getNextDoc();
138 
139  if ($doc1->doctype == "D") redirect($action, "FREEDOM", "OPENFOLIO&id=" . $doc1->initid, $action->GetParam("CORE_STANDURL"));
140  else redirect($action, "FDL", "FDL_CARD&latest=Y&id=" . $doc1->id, $action->GetParam("CORE_STANDURL"));
141  exit;
142  }
143  $famid = abs($famid);
144  if ($with_popup) {
145  // Set Popup
146  include_once ("FDL/popup_util.php");
147  // ------------------------------------------------------
148  // definition of popup menu
149  popupInit("popuplist", array(
150  'vprop',
151  'editdoc',
152  'cancel',
153  'copy',
154  'addbasket',
155  'duplicate',
156  'ifld',
157  'delete'
158  ));
159  }
160 
161  $kdiv = 1;
162  $tdoc = array();
163 
164  $nbseedoc = 0;
165  $nbdoc = 0;
166  if (!$searchError) {
167  // get date format
168  if ($action->GetParam("CORE_LANG") == "fr_FR") { // date format depend of locale
169  $fdate = "%d/%m/%y";
170  } else {
171  $fdate = "%x";
172  }
173 
174  $prevFromId = - 2;
175 
176  $tfamdoc = array();
177  $lattr = array();
178 
179  $k = 0;
180  while ($doc = $sd->getNextDoc()) {
181 
182  if ($doc->isConfidential()) continue;
183  $nbseedoc++;
184 
185  $nbdoc++; // one more visible doc
186  $docid = $doc->id;
187 
188  $tdoc[$k]["id"] = $docid;
189  $tdoc[$k]["fromid"] = $doc->fromid;
190  // search title for freedom item
191  $title = $doc->getHtmlTitle();
192  $tdoc[$k]["title"] = $title;
193 
194  if ($doc->doctype == "C") $tdoc[$k]["title"] = "<B>" . $title . "</B>";
195 
196  if (strlen($doc->getTitle()) > 20) {
197  $tdoc[$k]["abrvtitle"] = htmlspecialchars(mb_substr($doc->getTitle() , 0, 12) . " ... " . mb_substr($doc->getTitle() , -5) , ENT_QUOTES);
198  } else {
199  $tdoc[$k]["abrvtitle"] = $title;
200  }
201  /** @noinspection PhpUndefinedFieldInspection */
202  if (isset($doc->_highlight) && $doc->_highlight != "") {
203  /** @noinspection PhpUndefinedFieldInspection */
204  $tdoc[$k]["highlight"] = $doc->_highlight;
205  } else $tdoc[$k]["highlight"] = $title;
206  $tdoc[$k]["icontitle"] = $tdoc[$k]["highlight"];
207 
208  $tdoc[$k]["profid"] = $doc->profid;
209  $tdoc[$k]["revdate"] = strftime($fdate, intval($doc->revdate));
210 
211  $tdoc[$k]["iconsrc"] = $doc->geticon();
212 
213  $tdoc[$k]["divid"] = $kdiv;
214 
215  $tdoc[$k]["locked"] = "";
216  $tdoc[$k]["emblem"] = $action->parent->getImageLink("1x1.png");
217  $tdoc[$k]["emblemt"] = "";
218  $tdoc[$k]["emblemw"] = "0";
219  $tdoc[$k]["canedit"] = 1;
220  $tdoc[$k]["postitid"] = ($doc->postitid > 0) ? $doc->postitid : false;
221  $tdoc[$k]["inDomain"] = $doc->isInDomain();
222 
223  $tdoc[$k]["emblem"] = $doc->getEmblem();
224  if ($doc->confidential > 0) {
225  // $tdoc[$k]["emblem"] = $action->GetImageUrl("confidential.gif");
226  $tdoc[$k]["emblemt"] = _("confidential");
227  //$tdoc[$k]["emblemw"] ="12";
228  $tdoc[$k]["canedit"] = false;
229  $tdoc[$k]["locked"] = sprintf("<img src=\"%s\" title=\"%s\" width=\"20px\">", $tdoc[$k]["emblem"], $tdoc[$k]["emblemt"]);
230  } else if ($doc->locked == - 1) {
231  // $tdoc[$k]["emblem"] = $action->GetImageUrl("revised.gif");
232  $tdoc[$k]["emblemt"] = _("fixed");
233  // $tdoc[$k]["emblemw"] ="12";
234  $tdoc[$k]["canedit"] = false;
235  $tdoc[$k]["locked"] = sprintf("<img src=\"%s\" title=\"%s\" width=\"20px\">", $tdoc[$k]["emblem"], $tdoc[$k]["emblemt"]);
236  } else if ($doc->lockdomainid > 0) {
237  // $tdoc[$k]["emblem"] = $action->GetImageUrl("clef1.gif");
238  $tdoc[$k]["emblemt"] = _("domain locked");
239  // $tdoc[$k]["emblemw"] ="12";
240  $tdoc[$k]["locked"] = sprintf("<img src=\"%s\" title=\"%s\" width=\"20px\">", $tdoc[$k]["emblem"], $tdoc[$k]["emblemt"]);
241  } else if ((abs($doc->locked) == $action->parent->user->id)) {
242  // $tdoc[$k]["emblem"] = $action->GetImageUrl("clef1.gif");
243  $tdoc[$k]["emblemt"] = _("locked");
244  // $tdoc[$k]["emblemw"] ="12";
245  $tdoc[$k]["locked"] = sprintf("<img src=\"%s\" title=\"%s\" width=\"20px\">", $tdoc[$k]["emblem"], $tdoc[$k]["emblemt"]);
246  } else if ($doc->locked != 0) {
247  // $tdoc[$k]["emblem"] = $action->GetImageUrl("clef2.gif");
248  $tdoc[$k]["emblemt"] = _("locked");
249  // $tdoc[$k]["emblemw"] ="12";
250  $tdoc[$k]["canedit"] = false;
251  $tdoc[$k]["locked"] = sprintf("<img src=\"%s\" title=\"%s\" width=\"20px\">", $tdoc[$k]["emblem"], $tdoc[$k]["emblemt"]);
252  } else if ($doc->archiveid != 0) {
253  // $tdoc[$k]["emblem"] = $action->GetImageUrl("archive.png");
254  $tdoc[$k]["emblemt"] = _("archived");
255  // $tdoc[$k]["emblemw"] ="12";
256  $tdoc[$k]["canedit"] = false;
257  $tdoc[$k]["locked"] = sprintf("<img src=\"%s\" title=\"%s\" width=\"20px\">", $tdoc[$k]["emblem"], $tdoc[$k]["emblemt"]);
258  } else if ($doc->control("edit") != "") {
259  // $tdoc[$k]["emblem"] = $action->GetImageUrl("nowrite.png");
260  $tdoc[$k]["emblemt"] = _("read-only");
261  // $tdoc[$k]["emblemw"] ="12";
262  $tdoc[$k]["canedit"] = false;
263  $tdoc[$k]["locked"] = sprintf("<img src=\"%s\" title=\"%s\" width=\"20px\">", $tdoc[$k]["emblem"], $tdoc[$k]["emblemt"]);
264  }
265  //else if ($doc->lmodify == "Y") if ($doc->doctype == 'F') $tdoc[$k]["locked"] = $action->GetIcon("changed2.gif",N_("changed"), 20,20);
266  $tdoc[$k]["iconsrc"] = $doc->geticon();
267 
268  if ($with_popup) {
269  // ------------------------------
270  // define popup accessibility
271  popupInvisible("popuplist", $kdiv, 'vprop'); // don't use : idem like simple clic
272  popupActive("popuplist", $kdiv, 'cancel');
273  popupActive("popuplist", $kdiv, 'copy');
274 
275  if (!$action->getParam("FREEDOM_IDBASKET")) popupInvisible("popuplist", $kdiv, 'addbasket');
276  else popupActive("popuplist", $kdiv, 'addbasket');
277  popupActive("popuplist", $kdiv, 'ifld');
278  popupActive("popuplist", $kdiv, 'duplicate');
279 
280  if ($dirid > 0) popupActive("popuplist", $kdiv, 'delete');
281  else popupInactive("popuplist", $kdiv, 'delete');
282 
283  if ($doc->doctype == 'C') {
284  popupInvisible("popuplist", $kdiv, 'editdoc');
285  } else {
286  $cud = ($doc->CanLockFile() == "");
287  if ($cud) {
288  popupActive("popuplist", $kdiv, 'editdoc');
289  } else {
290  popupInactive("popuplist", $kdiv, 'editdoc');
291  }
292  }
293 
294  if ($dir->defDoctype != 'D') {
295  // it's a search :: inhibit duplicate and suppress reference
296  popupInvisible("popuplist", $kdiv, 'duplicate');
297  popupInvisible("popuplist", $kdiv, 'delete');
298  }
299  }
300  $kdiv++;
301  if ($doc->isRevisable()) $tdoc[$k]["revision"] = $doc->revision;
302  else $tdoc[$k]["revision"] = "";
303  if ($doc->state) {
304  if ($doc->locked == - 1) {
305  $tdoc[$k]["state"] = $action->Text($doc->getState()); //$action->Text($doc->state);
306 
307  } else {
308  $tdoc[$k]["state"] = $action->Text($doc->getStateActivity($doc->getState()));
309  }
310 
311  $tdoc[$k]["statecolor"] = $doc->getStateColor("transparent");
312  } else {
313  $tdoc[$k]["state"] = "";
314  $tdoc[$k]["statecolor"] = "transparent";
315  }
316 
317  if (($doc->doctype == 'D') || ($doc->doctype == 'S')) $tdoc[$k]["isfld"] = "true";
318  else $tdoc[$k]["isfld"] = "false";
319  // ----------------------------------------------------------
320  // ABSTRACT MODE
321  // ----------------------------------------------------------
322  if ($with_abstract) {
323  if (!$doc->isConfidential()) {
324  // search abstract attribute for freedom item
325  $doc->ApplyMask(); // apply mask attribute
326  if ($with_abstract === 2) {
327  $tdoc[$k]["ABSTRACTVALUES"] = getAbstractDetail($doc, $target);
328  } else {
329  $tdoc[$k]["ABSTRACTVALUES"] = $doc->viewDoc($doc->defaultabstract, $target, true, $abstract = false);
330  $tdoc[$k]["LOrR"] = ($k % 2 == 0) ? "left" : "right";
331  }
332  } else $tdoc[$k]["ABSTRACTVALUES"] = "";
333  }
334  // ----------------------------------------------------------
335  // COLUMN MODE
336  // ----------------------------------------------------------
337  if ($column) {
338  $doc->setMask(Doc::USEMASKCVVIEW);
339  $adoc = $doc->getFamilyDocument();
340  /* Check if the family header has already been generated */
341  $famdocAlreadyExists = false;
342  foreach ($tfamdoc as $famdoc) {
343  if ($famdoc['fid'] == $doc->fromid) {
344  $famdocAlreadyExists = true;
345  break;
346  }
347  }
348  if (!$famdocAlreadyExists) {
349  /* Generate the family header */
350  $tfamdoc[] = array(
351  "iconfamsrc" => $tdoc[$k]["iconsrc"],
352  "ftitle" => htmlspecialchars($adoc->title, ENT_QUOTES) ,
353  "fid" => $doc->fromid,
354  "blockattr" => "BATT" . $doc->fromid,
355  "blockvalue" => "BVAL" . $doc->fromid
356  );
357  // create the TR head
358  /* Store and remember abstract attributes for each new processed family */
359  $lattr[$doc->fromid] = $adoc->GetAbstractAttributes();
360  $taname = array();
361  $emptytableabstract = array();
362  foreach ($lattr[$doc->fromid] as $ka => $attr) {
363  if (($attr->mvisibility == 'H') || ($attr->mvisibility == 'I')) unset($lattr[$doc->fromid][$ka]);
364  }
365  /*
366  * @var NormalAttribute $attr
367  */
368  foreach ($lattr[$doc->fromid] as $ka => $attr) {
369  $emptytableabstract[$attr->id]["value"] = "-";
370  $taname[$attr->id]["aname"] = $attr->getLabel();
371  }
372  $action->lay->SetBlockData("BATT" . $doc->fromid, $taname);
373  }
374  /* Stack up the documents values in tdoc */
375  $tvalues = array();
376 
377  if ($doc->isConfidential()) {
378  foreach ($lattr[$doc->fromid] as $ka => $attr) {
379  $tvalues[] = "x";
380  }
381  } else {
382  foreach ($lattr[$doc->fromid] as $ka => $attr) {
383  //$tvalues[]=$doc->getRawValue($attr->id,"-");
384  $dAttr = $doc->getAttribute($attr->id);
385  if ($dAttr->mvisibility === "I") {
386  $tvalues[] = FormatCollection::noAccessText;
387  } elseif ($attr->type == "image") $tvalues[] = '<img src="' . $doc->getHtmlValue($attr, $doc->getRawValue($attr->id, "-") , $target) . '&height=30" height="30">';
388  else $tvalues[] = ($doc->getRawValue($attr->id) ? $doc->getHtmlValue($attr, $doc->getRawValue($attr->id) , $target) : '-');
389  }
390  }
391  $tdoc[$k]["values"] = implode('</td><td class="tlist">', $tvalues);
392  }
393 
394  $k++;
395  }
396  if ($hasNext) {
397  //"delete last"
398  array_pop($tdoc);
399  }
400 
401  $nbdoc = $nbseedoc = count($tdoc);
402  if ($column == 1) {
403  /* Order tdoc by 'fromid', 'title' */
404  $collator = new Collator($action->GetParam("CORE_LANG", "fr_FR"));
405  usort($tdoc, function ($a, $b) use ($collator)
406  {
407  /*
408  * @var Collator $collator
409  */
410  $cmp = ($a['fromid'] - $b['fromid']);
411  return ($cmp == 0) ? $collator->compare($a['title'], $b['title']) : $cmp;
412  });
413  } else {
414  if ((GetHttpVars("sqlorder") == "") && ($slice >= $action->GetParam("FDL_FOLDERMAXITEM", 1000))) uasort($tdoc, "orderbytitle");
415  }
416  } else {
417  //error in search
418  addWarningMsg($searchError);
419  addLogMsg($sd->getSearchInfo());
420  }
421  // Out
422  //------------------------------
423  // display popup action
424  $tboo[0]["boo"] = "";
425  $action->lay->SetBlockData("VIEWPROP", $tboo);
426 
427  $action->lay->Set("nbdiv", $kdiv - 1);
428  if ($column) {
429  /*
430  * Sort documents with same fromid into separate lists
431  */
432  $tdocByFromId = array();
433  foreach ($tdoc as $doc) {
434  $tdocByFromId[$doc['fromid']][] = $doc;
435  }
436  /*
437  * Set the BVAL<fromid> blocks with the list of
438  * documents from the same family
439  */
440  foreach ($tdocByFromId as $fromid => $documentList) {
441  $action->lay->SetBlockData("BVAL" . $fromid, $documentList);
442  }
443  /* Order tfamdoc by 'ftitle' */
444  $collator = new Collator($action->GetParam("CORE_LANG", "fr_FR"));
445  usort($tfamdoc, function ($a, $b) use ($collator)
446  {
447  /*
448  * @var Collator $collator
449  */
450  return $collator->compare($a['ftitle'], $b['ftitle']);
451  });
452  $action->lay->setBlockData("TABLEBODY", $tfamdoc);
453  } else {
454  $action->lay->setBlockData("TABLEBODY", $tdoc);
455  }
456 
457  if ($with_popup) {
458  // display popup js
459  popupGen($kdiv - 1);
460  }
461 
462  if ($with_popup || $column) {
463  // js : manage icons
464  $licon = new Layout(DEFAULT_PUBDIR . "/FDL/Layout/manageicon.js", $action);
465  $licon->Set("nbdiv", $kdiv - 1);
466  $action->parent->AddJsCode($licon->gen());
467  }
468  // when slicing
469  $pagefolder[$startpage + 1] = $nbseedoc + $start;
470  $action->Register("pagefolder", $pagefolder);
471  $action->lay->Set("next", $startpage + 1);
472  $action->lay->Set("prev", $startpage - 1);
473 
474  $count = $nbdoc;
475  if ($paginationType === 'none' && ($start != 0 || ($start == 0 && $hasNext))) {
476  $sd->reset();
477  $sd->setSlice('ALL');
478  $sd->setStart(0);
479  $count = $sd->onlyCount();
480  }
481 
482  $action->lay->set("count", $count);
483  $action->lay->Set("nbdoc", $nbdoc);
484  $action->lay->Set("hasNext", $hasNext);
485  $action->lay->eSet("wtarget", $target);
486 
487  $last = $startpage;
488  $rangeTo = $start + $count;
489 
490  if ($paginationType != "" && preg_match("/(^pageNumber$|^documentNumber$|%f|%l|%er|%np|%nd)/", $paginationType) && ($start != 0 || ($start == 0 && $hasNext))) {
491  $sd->reset();
492  $sd->setSlice('ALL');
493  $sd->setStart(0);
494  $count = $sd->onlyCount();
495  $last = intval($count / $slice) - 1;
496  if ($count % $slice != 0) $last++;
497  }
498 
499  $searchConfig = array(
500  "next" => $startpage + 1,
501  "prev" => $startpage - 1,
502  "last" => $last,
503  "numberofpage" => $last + 1,
504  "pagenumber" => $startpage + 1,
505  "numberofdocuments" => $count,
506  "rangefrom" => ($rangeTo > 0) ? $start + 1 : 0,
507  "rangeto" => $rangeTo,
508  "hasnext" => $hasNext
509  );
510  $action->parent->setVolatileParam("searchConfig", $searchConfig);
511  return $nbdoc;
512 }
513 
514 function orderbyfromidtitle($a, $b)
515 {
516  $cmp = ($a['fromid'] - $b['fromid']);
517  return ($cmp == 0) ? strcasecmp($a['title'], $b['title']) : $cmp;
518 }
519 
520 function orderbytitle($a, $b)
521 {
522  return strcasecmp($a["title"], $b["title"]);
523 }
524 
525 function getAbstractDetail(Doc & $doc, $target)
526 {
527  $tout = array();
528  $lattr = $doc->GetAbstractAttributes();
529  foreach ($lattr as $ka => $attr) {
530  $val = $doc->GetHtmlAttrValue($ka, $target, 2, -1, true, true);
531 
532  if ($val) $tout[] = $val;
533  }
534  return implode(" - ", $tout);
535 }
Layout is a template generator.
addWarningMsg($msg)
$tdoc
getAbstractDetail(Doc &$doc, $target)
Definition: viewfolder.php:525
if($_POST["login"]=="")
Definition: chgpasswd.php:19
global $action
print< H1 > Check Database< i > $dbaccess</i ></H1 > $a
Definition: checklist.php:45
Register($k, $v)
viewfolder(Action &$action, $with_abstract=false, $with_popup=true, $column=false, $slice="-", $sqlfilters=array(), $famid="", $paginationType="none")
Definition: viewfolder.php:34
orderbyfromidtitle($a, $b)
Definition: viewfolder.php:514
addWarningMsg($msg)
Definition: Lib.Common.php:95
$viewone
Set($name, &$parent)
const DEFAULT_PUBDIR
Definition: Lib.Prefix.php:28
const USEMASKCVVIEW
Definition: Class.Doc.php:60
exitError($texterr, $exit=true, $code="")
$docid
Definition: cleanFamily.php:13
getChildDocError($dbaccess, $dirid)
Definition: Lib.Dir.php:319
$tout
Definition: checklist.php:47
orderbytitle($a, $b)
Definition: viewfolder.php:520
switch($command) exit
Definition: checkVault.php:46
new_Doc($dbaccess, $id= '', $latest=false)
$dir
Definition: resizeimg.php:144
getParam($name, $def="")
static getArgument($k, $def= '')
$dbaccess
Definition: checkVault.php:17
if($file) if($subject==""&&$file) if($subject=="") $err
← centre documentaire © anakeen