Forum

Welcome to ProjeQtOr new Forum. We migrated old forum to the new website.
You will find all your posts here, with your usual account.
Just one point : you’ll have to reinitialize your password. Use “Lost password” feature.

Function drawSubPro...
 
Notifications
Clear all

Function drawSubProjects (model/project.php)

2 Posts
2 Users
0 Reactions
5,234 Views
(@logan59)
Posts: 7
Active Member
Topic starter
 
[#130]

Nouvelle version de la fonction (augmente les performances de Projectorria) :

-----------------------------------

New version of the function (increases performance Projectorria):

public function drawSubProjects($selectField=null, $recursiveCall=false, $limitToUserProjects=false, $limitToActiveProjects=false, $visibleProjectsList = null) {
if ($limitToUserProjects) {
$user=$_SESSION['user'];
if (! $user->_accessControlVisibility) {
$user->getAccessControlRights(); // Force setup of accessControlVisibility
}
if (!$visibleProjectsList){
$visibleProjectsList=$user->getHierarchicalViewOfVisibleProjects();
}
$reachableProjectsList=$user->getVisibleProjects();
} else {
$visibleProjectsList=array();
$reachableProjectsList=array();
}
$result="";
$clickEvent=' onClick=""';
$subList=$this->getSubProjects($limitToActiveProjects);
if ($selectField!=null and ! $recursiveCall) {
$result .= '

';
$clickEvent=' onClick='setSelectedProject("*", "' . i18n('allProjects') . '", "' . $selectField . '");' ';
$result .= '

';
}
$result .='

';
if (count($subList)>0) {
foreach ($subList as $prj) {
$showLine=true;
$reachLine=true;
if ($limitToUserProjects) {
if ($user->_accessControlVisibility != 'ALL') {
if (! array_key_exists('#' . $prj->id,$visibleProjectsList)) {
$showLine=false;
}
if (! array_key_exists($prj->id,$reachableProjectsList)) {
$reachLine=false;
}
}
}
if ($showLine) {
$result .='

';
if ($selectField==null) {
$result .= '

';
}
}
}
$result .='

' . $prj->name;
} else if (! $reachLine) {
$result .= '

' . $prj->name;
} else {
$clickEvent=' onClick='setSelectedProject("' . $prj->id . '", "' . htmlEncode($prj->name) . '", "' . $selectField . '");' ';
$result .= '

';
}
$result .= $prj->drawSubProjects($selectField,true,$limitToUserProjects,$limitToActiveProjects, $visibleProjectsList);
$result .= '

';
return $result;
}


 
Posted : 05 Jul 2011 11H51
(@babynus)
Posts: 14952
Member Admin
 

Great performance improvement when dealing with many projects !

Will be integrated in V1.6.1.

Many thanks.


 
Posted : 13 Jul 2011 0H09
Share:

Scroll to Top