Platform  3.1
PHP API documentation
 All Data Structures Namespaces Files Functions Variables Pages
generic_usort.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  * Apply sort by family
9  *
10  * @author Anakeen 2000
11  * @version $Id: generic_usort.php,v 1.6 2006/04/28 14:34:02 eric Exp $
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 ("FDL/Class.Doc.php");
20 include_once ("GENERIC/generic_util.php");
21 // -----------------------------------
23 {
24  // -----------------------------------
25  // get all parameters
26  $aorder = GetHttpVars("aorder"); // id for controlled object
27  $catg = GetHttpVars("catg"); // id for controlled object
28  $sfamid = '';
29  if ($catg) {
30  $dir = new_doc($dbaccess, $catg);
31  if ($dir->isAlive()) {
32  $sfamid = $dir->getValue("se_famid");
33  }
34  }
35  if ($aorder == "-") {
36  // invert order
37  $uorder = getDefUSort($action, $sfamid);
38  if ($uorder[0] == "-") $aorder = substr($uorder, 1);
39  else $aorder = "-" . $uorder;
40  }
41 
42  $action->parent->param->Set("GENERIC_USORT", setUsort($action, $aorder, $sfamid) , PARAM_USER . $action->user->id, $action->parent->id);
43 
45 
46  redirect($action, $action->GetParam("APPNAME", "GENERIC") , "GENERIC_LIST&dirid=$catg&tab=0&famid=$famid", $action->GetParam("CORE_STANDURL"));
47 }
48 
49 function setUsort(&$action, $aorder, $famid = "")
50 {
51 
52  if (!$famid) $famid = getDefFam(&$action);
53  $dbaccess = $action->GetParam("FREEDOM_DB");
54 
56 
57  $pu = $action->GetParam("GENERIC_USORT");
58  $tr = array();
59  if ($pu) {
60  // disambled parameter
61  $tu = explode("|", $pu);
62 
63  while (list($k, $v) = each($tu)) {
64  list($afamid, $uorder, $sqlorder) = explode(":", $v);
65  $tr[$afamid] = $uorder . ":" . $sqlorder;
66  }
67  }
68 
69  $sqlorder = $aorder;
70  if ($aorder[0] == "-") $sqlorder = substr($aorder, 1);
71  $a = $fdoc->getAttribute($sqlorder);
72  if ($a && $a->type == "text") $sqlorder = "lower($sqlorder)";
73  if ($aorder[0] == "-") $sqlorder.= " desc";
74 
75  $tr[$famid] = $aorder . ":" . $sqlorder;
76  // rebuild parameter
77  $tu = array();
78  reset($tr);
79  while (list($k, $v) = each($tr)) {
80  $tu[] = "$k:$v";
81  }
82  return implode("|", $tu);
83 }
84 ?>
← centre documentaire © anakeen - published under CC License - Dynacase