/** * Generate a HTML to send email (a full A tag) from one entry of an e-mail value group. * @param array $m the entry of the value group to use * @return string <a href='Firstname Lastname (label) <*****@*****.**>'>email@example.com (label)</a> */ function generateEmail($m) { $ret = '<span class="emails-info">' . EmailHelper::sendEmailLink($this->rawEmail($m), $m['value']) . '</span>'; if (!empty($m['label'])) { return '<span class="emails-label">' . $m['label'] . ': </span>' . $ret; } return $ret; }
/** * create the form needed for user management * @return string html-content * @global DB used for database access * @global CONFIG_USER_ACCOUNT_EXPIRED_MAIL email subject and content (mailto:) for expired account message * @global CONFIG_USER_ACCOUNT_EXPIRED_INTERVAL SQL interval for DATE_ADD e.g. "1 MONTH" to check account expiration */ function createUserManagementForm() { global $db, $CONFIG_USER_ACCOUNT_EXPIRED_MAIL, $CONFIG_USER_ACCOUNT_EXPIRED_INTERVAL; $cont = '<fieldset class="options-options">'; $cont .= '<legend>User list</legend>'; if (empty($CONFIG_USER_ACCOUNT_EXPIRED_INTERVAL)) { $CONFIG_USER_ACCOUNT_EXPIRED_INTERVAL = '1 MONTH'; } $db->query("SELECT *, DATE_ADD(lastLogin, INTERVAL {$CONFIG_USER_ACCOUNT_EXPIRED_INTERVAL})<NOW() AS expiredLogin FROM " . TABLE_USERS . ' AS users LEFT JOIN ' . TABLE_CONTACT . ' AS contact ON users.id = contact.id ORDER BY usertype'); $data = array(); // collect user types in array for mailto link $users = array(); $managers = array(); $admins = array(); while ($r = $db->next()) { $email = $r['firstname'] . ' ' . $r['lastname'] . ' <' . $r['reg_email'] . '>'; $baseHref = '../contact/contact.php?id=' . $r['id'] . '&noxslt=1'; // no stylesheet display $editHref = $baseHref . '&mode=edit'; if (isset($r['lastname'])) { $name = '<a href="' . $baseHref . '">' . $r['lastname'] . ', ' . $r['firstname'] . '</a> (<a href="' . $editHref . '">edit</a>, ' . EmailHelper::sendEmailLink($email, $r['reg_email']) . ')'; } else { $name = EmailHelper::sendEmailLink($email, $email); } $data[] = array('name' => $name, 'lastLogin' => $r['lastLogin'], 'loginExpired' => $r['expiredLogin'] ? "<a href='mailto:{$email}{$CONFIG_USER_ACCOUNT_EXPIRED_MAIL}'>[!]</a>" : '', 'type' => $r['usertype'], 'delete' => '<a href="javascript:deleteUser(' . $r['userid'] . ')">delete</a>'); switch ($r['usertype']) { case 'admin': $admins[] = $email; break; case 'manager': $managers[] = $email; break; case 'user': $users[] = $email; break; } } $tableGen = new TableGenerator('admin-users'); $cont .= $tableGen->generateTable($data, null, '', 'type', false); //group by type $cont .= '<div><br> Send email to: ' . EmailHelper::sendEmailLink($admins, 'administrators') . ' '; $cont .= EmailHelper::sendEmailLink($managers, 'managers') . ' '; $cont .= EmailHelper::sendEmailLink($users, 'users') . ' '; $cont .= EmailHelper::sendEmailLink(array_merge($managers, $users), 'users and managers') . ' '; $cont .= EmailHelper::sendEmailLink(array_merge($admins, $managers, $users), 'all') . ' </div>'; $cont .= '</fieldset>'; return $cont; }