* Copyright (C) 2005 Eric Seigne * Copyright (C) 2006-2011 Laurent Destailleur * Copyright (C) 2007 Patrick Raguin * Copyright (C) 2005-2012 Regis Houssin * * 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 3 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, see . */ /** * \file htdocs/user/hierarchy.php * \ingroup user * \brief Page of hierarchy view of user module */ require '../main.inc.php'; require_once DOL_DOCUMENT_ROOT.'/core/lib/treeview.lib.php'; if (! $user->rights->user->user->lire && ! $user->admin) accessforbidden(); $langs->load("users"); $langs->load("companies"); // Security check (for external users) $socid=0; if ($user->societe_id > 0) $socid = $user->societe_id; $sall=GETPOST('sall','alpha'); $search_user=GETPOST('search_user','alpha'); $userstatic=new User($db); $companystatic = new Societe($db); /* * View */ $form = new Form($db); llxHeader(); print_fiche_titre($langs->trans("ListOfUsers"). ' ('.$langs->trans("HierarchicView").')', '
'); // Charge tableau des categories $user_arbo = $userstatic->get_full_tree(); // Define fulltree array $fulltree=$user_arbo; print ''; // ----- This section will show a tree from a fulltree array ----- // $section must also be defined // --------------------------------------------------------------- // Root title line print ''; print ''; print ''; //print ''; print ''; // Define fullpathselected ( _x_y_z ) of $section parameter $fullpathselected=''; if (! empty($section)) { foreach($fulltree as $key => $val) { //print $val['id']."-".$section."
"; if ($val['id'] == $section) { $fullpathselected=$val['fullpath']; break; } } } //print "fullpathselected=".$fullpathselected."
"; // Update expandedsectionarray in session $expandedsectionarray=array(); if (isset($_SESSION['dol_catexpandedsectionarray'.$type])) $expandedsectionarray=explode(',',$_SESSION['dol_catexpandedsectionarray'.$type]); if (! empty($section) && $_GET['sectionexpand'] == 'true') { // We add all sections that are parent of opened section $pathtosection=explode('_',$fullpathselected); foreach($pathtosection as $idcursor) { if ($idcursor && ! in_array($idcursor,$expandedsectionarray)) // Not already in array { $expandedsectionarray[]=$idcursor; } } $_SESSION['dol_catexpandedsectionarray'.$type]=join(',',$expandedsectionarray); } if (! empty($section) && $_GET['sectionexpand'] == 'false') { // We removed all expanded sections that are child of the closed section $oldexpandedsectionarray=$expandedsectionarray; $expandedsectionarray=array(); foreach($oldexpandedsectionarray as $sectioncursor) { // is_in_subtree(fulltree,sectionparent,sectionchild) if ($sectioncursor && ! is_in_subtree($fulltree,$section,$sectioncursor)) $expandedsectionarray[]=$sectioncursor; } $_SESSION['dol_catexpandedsectionarray'.$type]=join(',',$expandedsectionarray); } //print $_SESSION['dol_catexpandedsectionarray'.$type].'
'; $nbofentries=0; $oldvallevel=0; $var=true; foreach($fulltree as $key => $val) { //$fullpathparent=preg_replace('/_[^_]+$/i','',$val['fullpath']); // Define showline $showline=0; //var_dump($expandedsectionarray); // If directory is son of expanded directory, we show line if (isset($val['fk_parent']) && in_array($val['fk_parent'],$expandedsectionarray)) $showline=4; // If directory is parent of selected directory or is selected directory, we show line elseif (preg_match('/'.$val['fullpath'].'_/i',$fullpathselected.'_')) $showline=2; // If we are level one we show line elseif ($val['level'] < 2) $showline=1; //print 'xxx '.$val['level'].' - '.$fullpathselected.' - '.$val['fullpath'].' - '.$val['fk_parent'].' showline='.$showline.'
'."\n"; if ($showline) { $var=!$var; if (in_array($val['id'],$expandedsectionarray)) $option='indexexpanded'; else $option='indexnotexpanded'; //print $option; print ""; // Show tree graph pictos print '\n"; // Description print ''; // Link to category card print ''; // Add link //print ''; //print ''; print "\n"; } $oldvallevel=$val['level']; $nbofentries++; } // If nothing to show if ($nbofentries == 0) { print ''; print ''; print ''; print ''; } // ----- End of section ----- // -------------------------- print "
'; print ''; print ''; print '
'; print img_picto_common('','treemenu/base.gif'); print ''.$langs->trans("All"); print '
   
'; print ''; // Show picto print ''; // Show link print ''; print '
'; $resarray=tree_showpad($fulltree,$key); $a=$resarray[0]; $nbofsubdir=$resarray[1]; $nboffilesinsubdir=$resarray[2]; print ''; //print $val['fullpath']."(".$showline.")"; $n='2'; if (! in_array($val['id'],$expandedsectionarray)) $n='3'; if (! in_array($val['id'],$expandedsectionarray)) $ref=img_picto('',DOL_URL_ROOT.'/theme/common/treemenu/plustop'.$n.'.gif','',1); else $ref=img_picto('',DOL_URL_ROOT.'/theme/common/treemenu/minustop'.$n.'.gif','',1); if ($option == 'indexexpanded') $lien = ''; if ($option == 'indexnotexpanded') $lien = ''; $newref=str_replace('_',' ',$ref); $lienfin=''; print $lien.$newref.$lienfin; if (! in_array($val['id'],$expandedsectionarray)) print img_picto('','object_category'); else print img_picto('','object_category-expanded'); print ''; //if ($section == $val['id']) print ' '; // We don't want a link ... why ? $userstatic->id=$val['id']; $userstatic->ref=$val['label']; $userstatic->type=$type; print '  '.$userstatic->getNomUrl(0,'',60); //print '  '.dol_trunc($val['label'],28); //if ($section == $val['id']) print ''; print '
'; print "
'; print dol_trunc($val['description'],48); print ''.img_view().''.img_edit_add().' 
'; print ''; print ''; print ''; print '
'.img_picto_common('','treemenu/branchbottom.gif').''.img_picto('',DOL_URL_ROOT.'/theme/common/treemenu/minustop3.gif','',1).''; print $langs->trans("NoCategoryYet"); print ' 
 
"; llxFooter(); $db->close(); ?>