Fix on filter on project list
This commit is contained in:
parent
800aa4d5b6
commit
2f68d446ef
@ -29,7 +29,9 @@ require_once DOL_DOCUMENT_ROOT.'/projet/class/task.class.php';
|
|||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/project.lib.php';
|
||||||
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
||||||
|
|
||||||
$mine = $_REQUEST['mode']=='mine' ? 1 : 0;
|
$search_project_user = GETPOST('search_project_user','int');
|
||||||
|
$mine = GETPOST('mode','aZ09')=='mine' ? 1 : 0;
|
||||||
|
if ($search_project_user == $user->id) $mine = 1;
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
$socid=0;
|
$socid=0;
|
||||||
@ -98,7 +100,7 @@ if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is usele
|
|||||||
{
|
{
|
||||||
$listofsearchfields['search_task']=array('text'=>'Task');
|
$listofsearchfields['search_task']=array('text'=>'Task');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($listofsearchfields))
|
if (count($listofsearchfields))
|
||||||
{
|
{
|
||||||
print '<form method="post" action="'.DOL_URL_ROOT.'/core/search.php">';
|
print '<form method="post" action="'.DOL_URL_ROOT.'/core/search.php">';
|
||||||
@ -114,7 +116,7 @@ if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is usele
|
|||||||
print '</tr>';
|
print '</tr>';
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
print '</table>';
|
print '</table>';
|
||||||
print '</form>';
|
print '</form>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
}
|
}
|
||||||
@ -148,7 +150,7 @@ if ( $resql )
|
|||||||
|
|
||||||
while ($row = $db->fetch_object($resql))
|
while ($row = $db->fetch_object($resql))
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$projectstatic->id=$row->rowid;
|
$projectstatic->id=$row->rowid;
|
||||||
@ -205,7 +207,7 @@ if ( $resql )
|
|||||||
|
|
||||||
while ($row = $db->fetch_object($resql))
|
while ($row = $db->fetch_object($resql))
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$projectstatic->id=$row->rowid;
|
$projectstatic->id=$row->rowid;
|
||||||
@ -237,14 +239,14 @@ print "</table>";
|
|||||||
if ($db->type != 'pgsql')
|
if ($db->type != 'pgsql')
|
||||||
{
|
{
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
// Affichage de la liste des projets de la semaine
|
// Affichage de la liste des projets de la semaine
|
||||||
print '<table class="noborder" width="100%">';
|
print '<table class="noborder" width="100%">';
|
||||||
print '<tr class="liste_titre">';
|
print '<tr class="liste_titre">';
|
||||||
print '<td>'.$langs->trans("ActivityOnProjectThisWeek").'</td>';
|
print '<td>'.$langs->trans("ActivityOnProjectThisWeek").'</td>';
|
||||||
print '<td align="right">'.$langs->trans("Time").'</td>';
|
print '<td align="right">'.$langs->trans("Time").'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
$sql = "SELECT p.rowid, p.ref, p.title, p.public, SUM(tt.task_duration) as nb";
|
$sql = "SELECT p.rowid, p.ref, p.title, p.public, SUM(tt.task_duration) as nb";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."projet as p";
|
$sql.= " FROM ".MAIN_DB_PREFIX."projet as p";
|
||||||
$sql.= " , ".MAIN_DB_PREFIX."projet_task as t";
|
$sql.= " , ".MAIN_DB_PREFIX."projet_task as t";
|
||||||
@ -256,16 +258,16 @@ if ($db->type != 'pgsql')
|
|||||||
$sql.= " AND task_date >= '".$db->idate(dol_get_first_day($year, $month)).'" AND ...";
|
$sql.= " AND task_date >= '".$db->idate(dol_get_first_day($year, $month)).'" AND ...";
|
||||||
$sql.= " AND p.rowid in (".$projectsListId.")";
|
$sql.= " AND p.rowid in (".$projectsListId.")";
|
||||||
$sql.= " GROUP BY p.rowid, p.ref, p.title";
|
$sql.= " GROUP BY p.rowid, p.ref, p.title";
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ( $resql )
|
if ( $resql )
|
||||||
{
|
{
|
||||||
$total = 0;
|
$total = 0;
|
||||||
$var=true;
|
$var=true;
|
||||||
|
|
||||||
while ($row = $db->fetch_object($resql))
|
while ($row = $db->fetch_object($resql))
|
||||||
{
|
{
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td>';
|
print '<td>';
|
||||||
$projectstatic->id=$row->rowid;
|
$projectstatic->id=$row->rowid;
|
||||||
@ -278,7 +280,7 @@ if ($db->type != 'pgsql')
|
|||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
$total += $row->nb;
|
$total += $row->nb;
|
||||||
}
|
}
|
||||||
|
|
||||||
$db->free($resql);
|
$db->free($resql);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -302,7 +304,7 @@ if (! empty($conf->global->PROJECT_TASK_TIME_MONTH))
|
|||||||
print '<td>'.$langs->trans("ActivityOnProjectThisMonth").': '.dol_print_date($now,"%B %Y").'</td>';
|
print '<td>'.$langs->trans("ActivityOnProjectThisMonth").': '.dol_print_date($now,"%B %Y").'</td>';
|
||||||
print '<td align="right">'.$langs->trans("Time").'</td>';
|
print '<td align="right">'.$langs->trans("Time").'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
$sql = "SELECT p.rowid, p.ref, p.title, p.public, SUM(tt.task_duration) as nb";
|
$sql = "SELECT p.rowid, p.ref, p.title, p.public, SUM(tt.task_duration) as nb";
|
||||||
$sql.= " FROM ".MAIN_DB_PREFIX."projet as p";
|
$sql.= " FROM ".MAIN_DB_PREFIX."projet as p";
|
||||||
$sql.= ", ".MAIN_DB_PREFIX."projet_task as t";
|
$sql.= ", ".MAIN_DB_PREFIX."projet_task as t";
|
||||||
@ -314,12 +316,12 @@ if (! empty($conf->global->PROJECT_TASK_TIME_MONTH))
|
|||||||
$sql.= " AND task_date BETWEEN '".$db->idate(dol_get_first_day($year, $month))."' AND '".$db->idate(dol_get_last_day($year, $month))."'";
|
$sql.= " AND task_date BETWEEN '".$db->idate(dol_get_first_day($year, $month))."' AND '".$db->idate(dol_get_last_day($year, $month))."'";
|
||||||
$sql.= " AND p.rowid in (".$projectsListId.")";
|
$sql.= " AND p.rowid in (".$projectsListId.")";
|
||||||
$sql.= " GROUP BY p.rowid, p.ref, p.title, p.public";
|
$sql.= " GROUP BY p.rowid, p.ref, p.title, p.public";
|
||||||
|
|
||||||
$resql = $db->query($sql);
|
$resql = $db->query($sql);
|
||||||
if ( $resql )
|
if ( $resql )
|
||||||
{
|
{
|
||||||
$var=false;
|
$var=false;
|
||||||
|
|
||||||
while ($row = $db->fetch_object($resql))
|
while ($row = $db->fetch_object($resql))
|
||||||
{
|
{
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
@ -331,7 +333,7 @@ if (! empty($conf->global->PROJECT_TASK_TIME_MONTH))
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td align="right">'.convertSecondToTime($row->nb, 'allhourmin').'</td>';
|
print '<td align="right">'.convertSecondToTime($row->nb, 'allhourmin').'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
}
|
}
|
||||||
$db->free($resql);
|
$db->free($resql);
|
||||||
}
|
}
|
||||||
@ -383,7 +385,7 @@ if (! empty($conf->global->PROJECT_TASK_TIME_YEAR))
|
|||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td align="right">'.convertSecondToTime($row->nb, 'allhourmin').'</td>';
|
print '<td align="right">'.convertSecondToTime($row->nb, 'allhourmin').'</td>';
|
||||||
print "</tr>\n";
|
print "</tr>\n";
|
||||||
|
|
||||||
}
|
}
|
||||||
$db->free($resql);
|
$db->free($resql);
|
||||||
}
|
}
|
||||||
@ -430,12 +432,12 @@ if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_S
|
|||||||
}
|
}
|
||||||
else dol_print_error($db);
|
else dol_print_error($db);
|
||||||
if (count($listoftaskcontacttype) == 0) $listoftaskcontacttype[0]='0'; // To avoid sql syntax error if not found
|
if (count($listoftaskcontacttype) == 0) $listoftaskcontacttype[0]='0'; // To avoid sql syntax error if not found
|
||||||
|
|
||||||
|
|
||||||
// Tasks for all resources of all opened projects and time spent for each task/resource
|
// Tasks for all resources of all opened projects and time spent for each task/resource
|
||||||
// This list can be very long, so we don't show it by default on task area. We prefer to use the list page.
|
// This list can be very long, so we don't show it by default on task area. We prefer to use the list page.
|
||||||
// Add constant PROJECT_SHOW_TASK_LIST_ON_PROJECT_AREA to show this list
|
// Add constant PROJECT_SHOW_TASK_LIST_ON_PROJECT_AREA to show this list
|
||||||
|
|
||||||
$max = (empty($conf->global->PROJECT_LIMIT_TASK_PROJECT_AREA)?1000:$conf->global->PROJECT_LIMIT_TASK_PROJECT_AREA);
|
$max = (empty($conf->global->PROJECT_LIMIT_TASK_PROJECT_AREA)?1000:$conf->global->PROJECT_LIMIT_TASK_PROJECT_AREA);
|
||||||
|
|
||||||
$sql = "SELECT p.ref, p.title, p.rowid as projectid, p.fk_statut as status, p.fk_opp_status as opp_status, p.public, p.dateo as projdateo, p.datee as projdatee,";
|
$sql = "SELECT p.ref, p.title, p.rowid as projectid, p.fk_statut as status, p.fk_opp_status as opp_status, p.public, p.dateo as projdateo, p.datee as projdatee,";
|
||||||
@ -489,7 +491,7 @@ if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_S
|
|||||||
while ($i < $num && $i < $max)
|
while ($i < $num && $i < $max)
|
||||||
{
|
{
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
|
|
||||||
|
|
||||||
$username='';
|
$username='';
|
||||||
if ($obj->userid && $userstatic->id != $obj->userid) // We have a user and it is not last loaded user
|
if ($obj->userid && $userstatic->id != $obj->userid) // We have a user and it is not last loaded user
|
||||||
@ -509,7 +511,7 @@ if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_S
|
|||||||
$projectstatic->public = $obj->public;
|
$projectstatic->public = $obj->public;
|
||||||
$projectstatic->dateo = $db->jdate($obj->projdateo);
|
$projectstatic->dateo = $db->jdate($obj->projdateo);
|
||||||
$projectstatic->datee = $db->jdate($obj->projdatee);
|
$projectstatic->datee = $db->jdate($obj->projdatee);
|
||||||
|
|
||||||
print $projectstatic->getNomUrl(1,'',0,'','<br>');
|
print $projectstatic->getNomUrl(1,'',0,'','<br>');
|
||||||
print '</td>';
|
print '</td>';
|
||||||
if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
|
if (! empty($conf->global->PROJECT_USE_OPPORTUNITIES))
|
||||||
@ -536,7 +538,7 @@ if (empty($conf->global->PROJECT_HIDE_TASKS) && ! empty($conf->global->PROJECT_S
|
|||||||
$taskstatic->datee = $db->jdate($obj->datee);
|
$taskstatic->datee = $db->jdate($obj->datee);
|
||||||
print '<td align="center">'.dol_print_date($db->jdate($obj->dateo),'day').'</td>';
|
print '<td align="center">'.dol_print_date($db->jdate($obj->dateo),'day').'</td>';
|
||||||
print '<td align="center">'.dol_print_date($db->jdate($obj->datee),'day');
|
print '<td align="center">'.dol_print_date($db->jdate($obj->datee),'day');
|
||||||
print dol_print_date($obj->date_end,'dayhour');
|
print dol_print_date($obj->date_end,'dayhour');
|
||||||
if ($taskstatic->hasDelay()) print img_warning($langs->trans("Late"));
|
if ($taskstatic->hasDelay()) print img_warning($langs->trans("Late"));
|
||||||
print '</td>';
|
print '</td>';
|
||||||
print '<td align="right"><a href="'.DOL_URL_ROOT.'/projet/tasks/time.php?id='.$obj->taskid.'&withproject=1">';
|
print '<td align="right"><a href="'.DOL_URL_ROOT.'/projet/tasks/time.php?id='.$obj->taskid.'&withproject=1">';
|
||||||
|
|||||||
@ -33,8 +33,9 @@ require_once DOL_DOCUMENT_ROOT.'/core/lib/date.lib.php';
|
|||||||
$langs->load("projects");
|
$langs->load("projects");
|
||||||
$langs->load("companies");
|
$langs->load("companies");
|
||||||
|
|
||||||
$mine = GETPOST('mode','aZ09')=='mine' ? 1 : 0;
|
|
||||||
$search_project_user = GETPOST('search_project_user','int');
|
$search_project_user = GETPOST('search_project_user','int');
|
||||||
|
$mine = GETPOST('mode','aZ09')=='mine' ? 1 : 0;
|
||||||
|
if ($search_project_user == $user->id) $mine = 1;
|
||||||
|
|
||||||
// Security check
|
// Security check
|
||||||
$socid=0;
|
$socid=0;
|
||||||
@ -122,7 +123,7 @@ if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is usele
|
|||||||
{
|
{
|
||||||
$listofsearchfields['search_project']=array('text'=>'Project');
|
$listofsearchfields['search_project']=array('text'=>'Project');
|
||||||
}
|
}
|
||||||
|
|
||||||
if (count($listofsearchfields))
|
if (count($listofsearchfields))
|
||||||
{
|
{
|
||||||
print '<form method="post" action="'.DOL_URL_ROOT.'/core/search.php">';
|
print '<form method="post" action="'.DOL_URL_ROOT.'/core/search.php">';
|
||||||
@ -138,7 +139,7 @@ if (! empty($conf->global->MAIN_SEARCH_FORM_ON_HOME_AREAS)) // This is usele
|
|||||||
print '</tr>';
|
print '</tr>';
|
||||||
$i++;
|
$i++;
|
||||||
}
|
}
|
||||||
print '</table>';
|
print '</table>';
|
||||||
print '</form>';
|
print '</form>';
|
||||||
print '<br>';
|
print '<br>';
|
||||||
}
|
}
|
||||||
@ -185,7 +186,7 @@ if ( $resql )
|
|||||||
while ($i < $num)
|
while ($i < $num)
|
||||||
{
|
{
|
||||||
$obj = $db->fetch_object($resql);
|
$obj = $db->fetch_object($resql);
|
||||||
|
|
||||||
print '<tr class="oddeven">';
|
print '<tr class="oddeven">';
|
||||||
print '<td class="nowrap">';
|
print '<td class="nowrap">';
|
||||||
if ($obj->socid)
|
if ($obj->socid)
|
||||||
@ -217,9 +218,9 @@ if (! empty($conf->global->PROJECT_SHOW_PROJECT_LIST_ON_PROJECT_AREA))
|
|||||||
{
|
{
|
||||||
// This list can be very long, so we don't show it by default on task area. We prefer to use the list page.
|
// This list can be very long, so we don't show it by default on task area. We prefer to use the list page.
|
||||||
// Add constant PROJECT_SHOW_PROJECT_LIST_ON_PROJECT_AREA to show this list
|
// Add constant PROJECT_SHOW_PROJECT_LIST_ON_PROJECT_AREA to show this list
|
||||||
|
|
||||||
print '<br>';
|
print '<br>';
|
||||||
|
|
||||||
print_projecttasks_array($db, $form, $socid, $projectsListId, 0, 1, $listofoppstatus, array());
|
print_projecttasks_array($db, $form, $socid, $projectsListId, 0, 1, $listofoppstatus, array());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@ -261,8 +261,8 @@ if ($search_project_user > 0)
|
|||||||
}
|
}
|
||||||
$sql.= " WHERE p.entity IN (".getEntity('project').')';
|
$sql.= " WHERE p.entity IN (".getEntity('project').')';
|
||||||
if (! $user->rights->projet->all->lire) $sql.= " AND p.rowid IN (".$projectsListId.")"; // public and assigned to, or restricted to company for external users
|
if (! $user->rights->projet->all->lire) $sql.= " AND p.rowid IN (".$projectsListId.")"; // public and assigned to, or restricted to company for external users
|
||||||
// No need to check company, as filtering of projects must be done by getProjectsAuthorizedForUser
|
// No need to check if company is external user, as filtering of projects must be done by getProjectsAuthorizedForUser
|
||||||
if ($socid) $sql.= " AND (p.fk_soc IS NULL OR p.fk_soc = 0 OR p.fk_soc = ".$socid.")";
|
if ($socid > 0) $sql.= " AND (p.fk_soc = ".$socid.")";
|
||||||
if ($search_categ > 0) $sql.= " AND cs.fk_categorie = ".$db->escape($search_categ);
|
if ($search_categ > 0) $sql.= " AND cs.fk_categorie = ".$db->escape($search_categ);
|
||||||
if ($search_categ == -2) $sql.= " AND cs.fk_categorie IS NULL";
|
if ($search_categ == -2) $sql.= " AND cs.fk_categorie IS NULL";
|
||||||
if ($search_ref) $sql .= natural_search('p.ref', $search_ref);
|
if ($search_ref) $sql .= natural_search('p.ref', $search_ref);
|
||||||
@ -487,19 +487,25 @@ print '<tr class="liste_titre_filter">';
|
|||||||
if (! empty($arrayfields['p.ref']['checked']))
|
if (! empty($arrayfields['p.ref']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<input type="text" class="flat" name="search_ref" value="'.$search_ref.'" size="6">';
|
print '<input type="text" class="flat" name="search_ref" value="'.dol_escape_htmltag($search_ref).'" size="6">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
if (! empty($arrayfields['p.title']['checked']))
|
if (! empty($arrayfields['p.title']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<input type="text" class="flat" name="search_label" size="8" value="'.$search_label.'">';
|
print '<input type="text" class="flat" name="search_label" size="8" value="'.dol_escape_htmltag($search_label).'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
if (! empty($arrayfields['s.nom']['checked']))
|
if (! empty($arrayfields['s.nom']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="liste_titre">';
|
print '<td class="liste_titre">';
|
||||||
print '<input type="text" class="flat" name="search_societe" size="8" value="'.$search_societe.'">';
|
if ($socid > 0)
|
||||||
|
{
|
||||||
|
$tmpthirdparty=new Societe($db);
|
||||||
|
$tmpthirdparty->fetch($socid);
|
||||||
|
$search_societe=$tmpthirdparty->nom;
|
||||||
|
}
|
||||||
|
print '<input type="text" class="flat" name="search_societe" size="8" value="'.dol_escape_htmltag($search_societe).'">';
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
// Sale representative
|
// Sale representative
|
||||||
@ -511,8 +517,8 @@ if (! empty($arrayfields['commercial']['checked']))
|
|||||||
if (! empty($arrayfields['p.dateo']['checked']))
|
if (! empty($arrayfields['p.dateo']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="liste_titre center">';
|
print '<td class="liste_titre center">';
|
||||||
if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="search_sday" value="'.$search_sday.'">';
|
if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="search_sday" value="'.dol_escape_htmltag($search_sday).'">';
|
||||||
print '<input class="flat" type="text" size="1" maxlength="2" name="search_smonth" value="'.$search_smonth.'">';
|
print '<input class="flat" type="text" size="1" maxlength="2" name="search_smonth" value="'.dol_escape_htmltag($search_smonth).'">';
|
||||||
$formother->select_year($search_syear?$search_syear:-1,'search_syear',1, 20, 5);
|
$formother->select_year($search_syear?$search_syear:-1,'search_syear',1, 20, 5);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
@ -520,8 +526,8 @@ if (! empty($arrayfields['p.dateo']['checked']))
|
|||||||
if (! empty($arrayfields['p.datee']['checked']))
|
if (! empty($arrayfields['p.datee']['checked']))
|
||||||
{
|
{
|
||||||
print '<td class="liste_titre center">';
|
print '<td class="liste_titre center">';
|
||||||
if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="search_eday" value="'.$search_eday.'">';
|
if (! empty($conf->global->MAIN_LIST_FILTER_ON_DAY)) print '<input class="flat" type="text" size="1" maxlength="2" name="search_eday" value="'.dol_escape_htmltag($search_eday).'">';
|
||||||
print '<input class="flat" type="text" size="1" maxlength="2" name="search_emonth" value="'.$search_emonth.'">';
|
print '<input class="flat" type="text" size="1" maxlength="2" name="search_emonth" value="'.dol_escape_htmltag($search_emonth).'">';
|
||||||
$formother->select_year($search_eyear?$search_eyear:-1,'search_eyear',1, 20, 5);
|
$formother->select_year($search_eyear?$search_eyear:-1,'search_eyear',1, 20, 5);
|
||||||
print '</td>';
|
print '</td>';
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user