Bonjour,
Dans smartprofile cette fonction génère l'erreur suivante :
Notice: Undefined variable: users in file /modules/smartprofile/class/profile.php line 293
function search($criteria, $searchvars) {
$sql = "SELECT uid, uname, user_viewemail, email, ".implode(',', $searchvars)."
FROM ".$this->db->prefix("users")." LEFT JOIN ".$this->table." ON uid=profileid";
$sql .= ' '.$criteria->renderWhere();
if ($criteria->getSort() != '') {
$sql .= ' ORDER BY '.$criteria->getSort().' '.$criteria->getOrder();
}
$limit = $criteria->getLimit();
$start = $criteria->getStart();
$result = $this->db->query($sql, $limit, $start);
if (!$result) {
return array(array(), array(), 0);
}
$user_handler = xoops_gethandler('user');
$uservars = $this->getUserVars();
while ($myrow = $this->db->fetchArray($result)) {
$profile = $this->create(false);
$user = $user_handler->create(false);
foreach ($myrow as $name => $value) {
if (in_array($name, $uservars)) {
$user->assignVar($name, $value);
}
else {
$profile->assignVar($name, $value);
}
}
$profiles[$myrow['uid']] = $profile;
$users[$myrow['uid']] = $user;
}
$sql_count = "SELECT count(*) FROM ".$this->db->prefix("users")." LEFT JOIN ".$this->table." ON uid=profileid";
$sql_count .= ' '.$criteria->renderWhere();
$count_res = $this->db->query($sql_count, $limit, $start);
list($count) = $this->db->fetchRow($count_res);
return array($users, $profiles, $count);
}
}
Sachant que la ligne 293 est la dernière :
return array($users, $profiles, $count);
Je soupçonne une confusion entre $user et $users, mais sans trop savoir où la situer.
Une piste ?
Merci
Fred