* Optimize program-browse page, Reduce get user.
This commit is contained in:
@@ -1806,7 +1806,7 @@ class productModel extends model
|
||||
->fetchAll('id');
|
||||
}
|
||||
|
||||
/* Recalculate productKeys after pageing. */
|
||||
/* Recalculate productKeys after paging. */
|
||||
$productKeys = array_keys($products);
|
||||
|
||||
$linePairs = $this->getLinePairs();
|
||||
|
||||
@@ -31,6 +31,10 @@ class program extends control
|
||||
*
|
||||
* @param string $status
|
||||
* @param string $orderBy
|
||||
* @param int $recTotal
|
||||
* @param int $recPerPage
|
||||
* @param int $pageID
|
||||
* @param int $param
|
||||
* @access public
|
||||
* @return void
|
||||
*/
|
||||
@@ -55,15 +59,14 @@ class program extends control
|
||||
{
|
||||
if(strtolower($status) == 'bysearch')
|
||||
{
|
||||
$queryID = (int)$param;
|
||||
$programs = $this->program->getListBySearch($orderBy, $queryID);
|
||||
$programs = $this->program->getListBySearch($orderBy, (int)$param);
|
||||
}
|
||||
else
|
||||
{
|
||||
/* Get top programs and projects. */
|
||||
$topObjects = $this->program->getList($status == 'unclosed' ? 'doing,suspended,wait' : $status, $orderBy, $pager, 'top');
|
||||
if(!$topObjects) $topObjects = array(0);
|
||||
$programs = $this->program->getList($status, $orderBy, NULL, 'child', array_keys($topObjects));
|
||||
$programs = $this->program->getList($status, $orderBy, null, 'child', array_keys($topObjects));
|
||||
|
||||
/* Get summary. */
|
||||
$topCount = $indCount = 0;
|
||||
@@ -77,12 +80,15 @@ class program extends control
|
||||
}
|
||||
|
||||
/* Get PM id list. */
|
||||
$accounts = array();
|
||||
$accounts = array_unique(array_column($programs, 'PM'));
|
||||
$hasProject = false;
|
||||
foreach($programs as $program)
|
||||
{
|
||||
if(!empty($program->PM) and !in_array($program->PM, $accounts)) $accounts[] = $program->PM;
|
||||
if($hasProject === false and $program->type != 'program') $hasProject = true;
|
||||
if($hasProject === false and $program->type != 'program')
|
||||
{
|
||||
$hasProject = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
$PMList = $this->loadModel('user')->getListByAccounts($accounts, 'account');
|
||||
|
||||
@@ -100,8 +106,6 @@ class program extends control
|
||||
$this->view->summary = isset($summary) ? $summary : '';
|
||||
$this->view->pager = $pager;
|
||||
$this->view->users = $this->user->getPairs('noletter');
|
||||
$this->view->userIdPairs = $this->user->getPairs('noletter|showid');
|
||||
$this->view->usersAvatar = $this->user->getAvatarPairs('');
|
||||
$this->view->programType = $programType;
|
||||
$this->view->PMList = $PMList;
|
||||
$this->view->progressList = $this->program->getProgressList();
|
||||
|
||||
@@ -74,9 +74,10 @@
|
||||
<td class='c-status'><span class="status-program status-<?php echo $program->status?>"><?php echo zget($lang->project->statusList, $program->status, '');?></span></td>
|
||||
<td class="c-manager">
|
||||
<?php if(!empty($program->PM)):?>
|
||||
<?php $userName = zget($users, $program->PM);?>
|
||||
<?php echo html::smallAvatar(array('avatar' => $usersAvatar[$program->PM], 'account' => $program->PM, 'name' => $userName), (($program->type == 'program' and $program->grade == 1 )? 'avatar-circle avatar-top avatar-' : 'avatar-circle avatar-') . zget($userIdPairs, $program->PM)); ?>
|
||||
<?php $userID = isset($PMList[$program->PM]) ? $PMList[$program->PM]->id : '';?>
|
||||
<?php $userName = isset($PMList[$program->PM]) ? $PMList[$program->PM]->realname : '';?>
|
||||
<?php $avatar = isset($PMList[$program->PM]) ? $PMList[$program->PM]->avatar : '';?>
|
||||
<?php echo html::smallAvatar(array('avatar' => $avatar, 'account' => $program->PM, 'name' => $userName), (($program->type == 'program' and $program->grade == 1 )? 'avatar-circle avatar-top avatar-' : 'avatar-circle avatar-') . $userID); ?>
|
||||
<?php echo html::a($this->createLink('user', 'profile', "userID=$userID", '', true), $userName, '', "title='{$userName}' data-toggle='modal' data-type='iframe' data-width='600'");?>
|
||||
<?php endif;?>
|
||||
</td>
|
||||
|
||||
Reference in New Issue
Block a user