本文整理汇总了PHP中XDB::fetchOneCell方法的典型用法代码示例。如果您正苦于以下问题:PHP XDB::fetchOneCell方法的具体用法?PHP XDB::fetchOneCell怎么用?PHP XDB::fetchOneCell使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类XDB
的用法示例。
在下文中一共展示了XDB::fetchOneCell方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: __construct
public function __construct(User $_user, Profile $_profile, array $_public_names, array $_old_public_names)
{
parent::__construct($_user, $_profile, true, 'usage');
$this->public_names = $_public_names;
$this->old_public_names = $_old_public_names;
if (!is_null($this->profileOwner)) {
require_once 'name.func.inc.php';
$this->new_alias = build_email_alias($this->public_names);
$this->old_alias = XDB::fetchOneCell('SELECT email
FROM email_source_account
WHERE uid = {?} AND type = \'alias\' AND FIND_IN_SET(\'usage\', flags)', $this->profileOwner->id());
if ($this->old_alias == $this->new_alias) {
$this->old_alias = $this->new_alias = null;
} else {
$used = XDB::fetchOneCell('SELECT COUNT(uid)
FROM email_source_account
WHERE email = {?} AND type != \'alias_aux\'', $this->new_alias);
if (!$used) {
// Check against homonyms
$used = XDB::fetchOneCell('SELECT COUNT(email)
FROM email_source_other
WHERE email = {?}', $this->new_alias);
}
if ($used) {
$this->new_alias = null;
}
}
}
}
示例2: strongCheckId
function strongCheckId($subState)
{
$subState->set('xorgid', Profile::getXorgId($subState->i('schoolid')));
if (!$subState->v('xorgid')) {
return 'Le matricule est incorrect.';
}
$uf = new UserFilter(new PFC_And(new UFC_SchoolId('xorg', $subState->i('xorgid')), new PFC_Not(new UFC_Dead()), new PFC_Not(new UFC_Registered(true))));
$profile = $uf->getProfile();
if (is_null($profile)) {
$max_promo_year = XDB::fetchOneCell("SELECT MAX(promo_year)\n FROM profile_education\n WHERE FIND_IN_SET(flags, 'primary')\n AND eduid = (\n SELECT id\n FROM profile_education_enum\n WHERE abbreviation='X'\n )\n AND degreeid = (\n SELECT id\n FROM profile_education_degree_enum\n WHERE abbreviation = 'Ing.'\n )");
if ($subState->i('yearpromo') > $max_promo_year) {
return "Ta promo n'est pas encore dans l'annuaire, réessaie dans quelques semaines.";
}
return "Cherche ton nom dans l'annuaire public. Si tu te trouves, tu es déjà inscrit ou ton matricule est incorrect ! Sinon envoie-nous un email à support@polytechnique.org";
}
if ($profile->promo() != $subState->s('promo')) {
return 'Le matricule est incorrect.';
}
if (!$profile->compareNames($subState->s('firstname'), $subState->s('lastname'))) {
return "Erreur dans l'identification. Réessaie, il y a une erreur quelque part !";
}
$subState->set('lastname', $profile->lastName());
$subState->set('firstname', $profile->firstName());
$subState->set('uid', $profile->owner()->id());
$subState->set('watch', $profile->owner()->watch);
$subState->set('comment', $profile->owner()->comment);
$subState->set('birthdateRef', $profile->__get('birthdate_ref'));
return true;
}
示例3: countNonGeocoded
public static function countNonGeocoded($pid)
{
$count = XDB::fetchOneCell('SELECT COUNT(*)
FROM profile_addresses AS pa
WHERE pid = {?} AND type = \'home\'
AND NOT EXISTS (SELECT *
FROM profile_addresses_components AS pc
WHERE pa.pid = pc.pid AND pa.jobid = pc.jobid AND pa.groupid = pc.groupid
AND pa.type = pc.type AND pa.id = pc.id)', $pid);
return $count;
}
示例4: check_email
function check_email($email, $message)
{
$res = XDB::fetchOneCell('SELECT COUNT(*)
FROM email_watch
WHERE state != \'safe\' AND email = {?}', $email);
if ($res) {
send_warning_mail($message);
return true;
}
return false;
}
示例5: ListMergeIssues
private static function ListMergeIssues(Profile $profile)
{
if (Platal::globals()->merge->state != 'done') {
return null;
}
$flags = XDB::fetchOneCell('SELECT issues
FROM profile_merge_issues
WHERE pid = {?}', $profile->id());
if (!$flags) {
return null;
}
return new PlFlagSet($flags);
}
示例6: medal_name
public function medal_name()
{
$name = XDB::fetchOneCell('SELECT text
FROM profile_medal_enum
WHERE id = {?}', $this->mid);
$grade = XDB::fetchOneCell('SELECT text
FROM profile_medal_grade_enum
WHERE mid = {?} AND gid = {?}', $this->mid, $this->gid);
if (is_null($grade)) {
return $name;
}
return $name . ' (' . $grade . ')';
}
示例7: __construct
public function __construct(User $user, $hruid, $email, $group, $dim)
{
parent::__construct($user, false, 'account');
$this->hruid = $hruid;
$this->email = $email;
$this->group = $group;
$this->dim = $dim;
$this->uid = XDB::fetchOneCell('SELECT uid
FROM accounts
WHERE hruid = {?}', $hruid);
$this->groups = XDB::fetchAllAssoc('SELECT g.nom, g.diminutif
FROM groups AS g
INNER JOIN group_members AS m ON (g.id = m.asso_id)
WHERE m.uid = {?}
ORDER BY g.nom', $this->uid);
}
示例8: handler_picture_token
function handler_picture_token(PlPage $page, $size, $token)
{
XDB::rawExecute('DELETE FROM profile_photo_tokens
WHERE expires <= NOW()');
$pid = XDB::fetchOneCell('SELECT pid
FROM profile_photo_tokens
WHERE token = {?}', $token);
if ($pid != null) {
$res = XDB::fetchOneAssoc('SELECT attach, attachmime, x, y, last_update
FROM profile_photos
WHERE pid = {?}', $pid);
$photo = PlImage::fromData($res['attach'], 'image/' . $res['attachmime'], $res['x'], $res['y'], $res['last_update']);
$photo->send();
} else {
return PL_NOT_FOUND;
}
}
示例9: handler_admin_url
function handler_admin_url($page)
{
$page->changeTpl('urlshortener/admin.tpl');
if (!Post::has('url')) {
return;
}
$url = Post::t('url');
$alias = Post::t('alias');
$url_regex = '{^(https?|ftp)://[a-zA-Z0-9._%#+/?=&~-]+$}i';
if (strlen($url) > 255 || !preg_match($url_regex, $url)) {
$page->trigError("L'url donnée n'est pas valide.");
return;
}
$page->assign('url', $url);
if ($alias != '') {
if (!preg_match('/^[a-zA-Z0-9\\-\\/]+$/i', $alias)) {
$page->trigError("L'alias proposé n'est pas valide.");
return;
}
if (preg_match('/^a\\//i', $alias)) {
$page->trigError("L'alias commence par le préfixe 'a/' qui est réservé et donc non autorisé.");
return;
}
$page->assign('alias', $alias);
$used = XDB::fetchOneCell('SELECT COUNT(*)
FROM url_shortener
WHERE alias = {?}', $alias);
if ($used != 0) {
$page->trigError("L'alias proposé est déjà utilisé.");
return;
}
} else {
do {
$alias = 'a/' . rand_token(6);
$used = XDB::fetchOneCell('SELECT COUNT(*)
FROM url_shortener
WHERE alias = {?}', $alias);
} while ($used != 0);
$page->assign('alias', $alias);
}
XDB::execute('INSERT INTO url_shortener (url, alias)
VALUES ({?}, {?})', $url, $alias);
$page->trigSuccess("L'url « " . $url . ' » est maintenant accessible depuis « http://u.w4x.org/' . $alias . ' ».');
}
示例10: while
while ($nickname = $res->next()) {
// Checks that the requested nickname doesn't look like a regular forlife;
// we might run in troubler later if we don't keep the two repos. If we need
// to add a forlife-looking nickname at some point, we'll do it manually.
if (!preg_match('/^[-a-z]+\\.[-a-z]+\\.\\d{4}$/', $nickname['nickname'])) {
$pending_tasks = XDB::fetchOneCell("SELECT COUNT(*)\n FROM gapps_queue\n WHERE q_recipient_id = {?} AND p_status = 'idle' AND j_type = 'n_create' AND j_parameters = {?}", $nickname['id'], json_encode($nickname));
if ($pending_tasks == 0) {
XDB::execute("INSERT INTO gapps_queue\n SET q_recipient_id = {?}, p_entry_date = NOW(), p_notbefore_date = NOW(),\n p_priority = 'offline', j_type = 'n_create', j_parameters = {?}", $nickname['id'], json_encode($nickname));
}
}
}
/* Checks that all nicknames in GoogleApps are also aliases on plat/al side.
Deletes the invalid ones. */
$res = XDB::iterator("SELECT g.l_userid AS id, g.g_nickname AS nickname\n FROM gapps_nicknames AS g\n LEFT JOIN email_source_account AS s ON (s.uid = g.l_userid AND s.type = 'alias' AND s.email = g.g_nickname)\n WHERE g.l_userid IS NOT NULL AND s.email IS NULL");
while ($nickname = $res->next()) {
$pending_tasks = XDB::fetchOneCell("SELECT COUNT(*)\n FROM gapps_queue\n WHERE q_recipient_id = {?} AND p_status = 'idle' AND j_type = 'n_delete' AND j_parameters = {?}", $nickname['id'], json_encode($nickname));
if ($pending_tasks == 0) {
XDB::execute("INSERT INTO gapps_queue\n SET q_recipient_id = {?}, p_entry_date = NOW(), p_notbefore_date = NOW(),\n p_priority = 'offline', j_type = 'n_delete', j_parameters = {?}", $nickname['id'], json_encode($nickname));
}
}
/* Retrieves successful job queues for post-queue processing. */
$res = XDB::iterator("SELECT q_id, q_recipient_id, j_type, j_parameters\n FROM gapps_queue\n WHERE p_status = 'success' AND q_recipient_id IS NOT NULL");
while ($job = $res->next()) {
if ($job['j_type'] == 'u_create') {
post_queue_u_create($job);
} else {
if ($job['j_type'] == 'u_update') {
post_queue_u_update($job);
}
}
}
示例11: mergeIn
public function mergeIn(User $newuser)
{
if ($this->profile()) {
// Don't disable user with profile in this way.
global $globals;
Platal::page()->trigError('Impossible de fusionner les comptes ' . $this->hruid . ' et ' . $newuser->hruid . '. Contacte support@' . $globals->mail->domain . '.');
return false;
}
if ($this->forlifeEmail()) {
// If the new user is not registered and does not have already an email address,
// we need to give him the old user's email address if he has any.
if (!$newuser->perms) {
XDB::execute('UPDATE accounts
SET email = {?}
WHERE uid = {?} AND email IS NULL', $this->forlifeEmail(), $newuser->id());
// Reftech new user so its forlifeEmail will be correct.
$newuser = self::getSilentWithUID($newuser->id());
}
// Change email used in mailing lists.
if ($this->forlifeEmail() != $newuser->forlifeEmail()) {
// The super user is the user who has the right to do the modification.
$super_user = S::user();
// group mailing lists
$group_domains = XDB::fetchColumn('SELECT g.mail_domain
FROM groups AS g
INNER JOIN group_members AS gm ON(g.id = gm.asso_id)
WHERE g.mail_domain != \'\' AND gm.uid = {?}', $this->id());
foreach ($group_domains as $mail_domain) {
$mmlist = new MMList($super_user, $mail_domain);
$mmlist->replace_email_in_all($this->forlifeEmail(), $newuser->forlifeEmail());
}
// main domain lists
$mmlist = new MMList($super_user);
$mmlist->replace_email_in_all($this->forlifeEmail(), $newuser->forlifeEmail());
}
}
// Updates user in following tables.
foreach (array('group_announces', 'payment_transactions', 'log_sessions', 'group_events') as $table) {
XDB::execute('UPDATE ' . $table . '
SET uid = {?}
WHERE uid = {?}', $newuser->id(), $this->id());
}
// Merges user in following tables, ie updates when possible, then deletes remaining occurences of the old user.
foreach (array('group_announces_read', 'group_event_participants', 'group_member_sub_requests', 'group_members', 'email_redirect_account') as $table) {
XDB::execute('UPDATE IGNORE ' . $table . '
SET uid = {?}
WHERE uid = {?}', $newuser->id(), $this->id());
XDB::execute('DELETE FROM ' . $table . '
WHERE uid = {?}', $this->id());
}
// Eventually updates last session id and deletes old user's accounts entry.
$lastSession = XDB::fetchOneCell('SELECT id
FROM log_sessions
WHERE uid = {?}
ORDER BY start DESC
LIMIT 1', $newuser->id());
XDB::execute('UPDATE log_last_sessions
SET id = {?}
WHERE uid = {?}', $lastSession, $newuser->id());
XDB::execute('DELETE FROM accounts
WHERE uid = {?}', $this->id());
return true;
}
示例12: select_if_homonym
function select_if_homonym(PlUser $user)
{
return XDB::fetchOneCell('SELECT email
FROM email_source_account
WHERE uid = {?} AND expire IS NOT NULL', $user->id());
}
示例13: handler_broken
function handler_broken($page, $uid = null)
{
$page->changeTpl('marketing/broken.tpl');
if (is_null($uid)) {
return PL_NOT_FOUND;
}
$user = User::get($uid);
if (!$user) {
return PL_NOT_FOUND;
} elseif ($user->login() == S::user()->login()) {
pl_redirect('emails/redirect');
}
$res = XDB::query('SELECT p.deathdate IS NULL AS alive, r.last, IF(r.type = \'googleapps\', \'googleapps\', r.redirect) AS active_email
FROM accounts AS a
LEFT JOIN email_redirect_account AS r ON (a.uid = r.uid AND r.type IN (\'smtp\', \'googleapps\') AND r.flags = \'active\')
LEFT JOIN account_profiles AS ap ON (ap.uid = r.uid AND FIND_IN_SET(\'owner\', ap.perms))
LEFT JOIN profiles AS p ON (p.pid = ap.pid)
WHERE a.uid = {?}
ORDER BY r.broken_level, r.last', $user->id());
if (!$res->numRows()) {
return PL_NOT_FOUND;
}
$user->addProperties($res->fetchOneAssoc());
$page->assign('user', $user);
$email = null;
require_once 'emails.inc.php';
if (Post::has('mail')) {
$email = valide_email(Post::v('mail'));
}
if (Post::has('valide') && isvalid_email_redirection($email, $user)) {
S::assert_xsrf_token();
// security stuff
check_email($email, "Proposition d'une adresse surveillee pour " . $user->login() . " par " . S::user()->login());
$state = XDB::fetchOneCell('SELECT flags
FROM email_redirect_account
WHERE redirect = {?} AND uid = {?}', $email, $user->id());
if ($state == 'broken') {
$page->trigWarning("L'adresse que tu as fournie est l'adresse actuelle de {$user->fullName()} et est en panne.");
} elseif ($state == 'active') {
$page->trigWarning("L'adresse que tu as fournie est l'adresse actuelle de {$user->fullName()}");
} elseif ($user->email && !Post::t('comment')) {
$page->trigError("Il faut que tu ajoutes un commentaire à ta proposition pour justifier le " . "besoin de changer la redirection de {$user->fullName()}.");
} else {
$valid = new BrokenReq(S::user(), $user, $email, trim(Post::v('comment')));
$valid->submit();
$page->assign('sent', true);
}
} elseif ($email) {
$page->trigError("L'adresse proposée n'est pas une adresse acceptable pour une redirection.");
}
}
示例14: getCond
/** Compute the conditions to use for the current request.
* @return A PlFilterCondition instance (actually a PFC_And)
*/
protected function getCond()
{
$cond = new PFC_And();
foreach ($this->criteria as $criterion => $value) {
switch ($criterion) {
// ENUM fields
case WSRequestCriteria::SCHOOL:
// Useless criterion: we don't need to check on origin school
if (WSRequestCriteria::$choices_enum[$criterion][$value]) {
$cond->addChild(new PFC_True());
} else {
$cond->addChild(new PFC_False());
}
break;
case WSRequestCriteria::DIPLOMA:
$diploma = WSRequestCriteria::$choices_enum[$criterion][$value];
$id_X = XDB::fetchOneCell('SELECT id
FROM profile_education_enum
WHERE abbreviation = {?}', 'X');
$cond->addChildren(array(new UFC_EducationSchool($id_X), new UFC_EducationDegree($diploma)));
break;
// TEXT fields
// TEXT fields
case WSRequestCriteria::FIRSTNAME:
case WSRequestCriteria::LASTNAME:
$cond->addChild(new UFC_NameTokens($value, UFC_NameTokens::FLAG_PUBLIC, false, false, $criterion));
break;
case WSRequestCriteria::PROMOTION:
$cond->addChild(new PFC_Or(new UFC_Promo(UserFilter::OP_EQUALS, UserFilter::GRADE_ING, $value), new UFC_Promo(UserFilter::OP_EQUALS, UserFilter::GRADE_MST, $value), new UFC_Promo(UserFilter::OP_EQUALS, UserFilter::GRADE_PHD, $value)));
break;
case WSRequestCriteria::ALT_DIPLOMA:
$cond->addChild(new UFC_EducationDegree(DirEnum::getIds(DirEnum::EDUDEGREES, $value)));
break;
case WSRequestCriteria::DIPLOMA_FIELD:
$cond->addChild(new UFC_EducationField(DirEnum::getIds(DirEnum::EDUFIELDS, $value)));
break;
case WSRequestCriteria::CITY:
$cond->addChild(new UFC_AddressField($value, UFC_AddressField::FIELD_LOCALITY, UFC_Address::TYPE_HOME, UFC_Address::FLAG_CURRENT));
break;
case WSRequestCriteria::COUNTRY:
$cond->addChild(new UFC_AddressField($value, UFC_AddressField::FIELD_COUNTRY, UFC_Address::TYPE_HOME, UFC_Address::FLAG_CURRENT));
break;
case WSRequestCriteria::ZIPCODE:
$cond->addChild(new UFC_AddressField($value, UFC_AddressField::FIELD_ZIPCODE, UFC_Address::TYPE_HOME, UFC_Address::FLAG_CURRENT));
break;
case WSRequestCriteria::JOB_ANY_COUNTRY:
$cond->addChild(new UFC_AddressField($value, UFC_AddressField::FIELD_COUNTRY, UFC_Address::TYPE_PRO, UFC_Address::FLAG_ANY));
break;
case WSRequestCriteria::JOB_CURRENT_CITY:
$cond->addChild(new UFC_AddressField($value, UFC_AddressField::FIELD_LOCALITY, UFC_Address::TYPE_PRO, UFC_Address::FLAG_ANY));
break;
case WSRequestCriteria::JOB_ANY_COMPANY:
case WSRequestCriteria::JOB_CURRENT_COMPANY:
$cond->addChild(new UFC_Job_Company(UFC_Job_Company::JOBNAME, $value));
break;
case WSRequestCriteria::JOB_ANY_SECTOR:
case WSRequestCriteria::JOB_CURRENT_SECTOR:
case WSRequestCriteria::JOB_CURRENT_TITLE:
$cond->addChild(new UFC_Job_Terms(DirEnum::getIds(DirEnum::JOBTERMS, $value)));
break;
// LIST fields
// LIST fields
case WSRequestCriteria::HOBBIES:
$subcond = new PFC_Or();
foreach ($value as $val) {
$subcond->addChild(new UFC_Comment($value));
}
$cond->addChild($subcond);
break;
case WSRequestCriteria::JOB_COMPETENCIES:
case WSRequestCriteria::JOB_RESUME:
case WSRequestCriteria::PROFESSIONAL_PROJECT:
$subcond = new PFC_Or();
foreach ($value as $val) {
$subcond->addChild(new UFC_Job_Description($value, UserFilter::JOB_USERDEFINED));
}
$cond->addChild($subcond);
break;
case WSRequestCriteria::NOT_UID:
$cond->addChild(new PFC_Not(new UFC_PartnerSharingID($this->partner->id, $value)));
break;
default:
break;
}
}
return $cond;
}
示例15: fill_email_combobox
function fill_email_combobox(PlPage $page, array $retrieve, $user = null)
{
require_once 'emails.inc.php';
if (is_null($user)) {
$user = S::user();
}
/* Always refetch the profile. */
$profile = $user->profile(true);
$emails = array();
if (in_array('source', $retrieve)) {
$emails['Emails polytechniciens'] = XDB::fetchColumn('SELECT CONCAT(s.email, \'@\', d.name)
FROM email_source_account AS s
INNER JOIN email_virtual_domains AS m ON (s.domain = m.id)
INNER JOIN email_virtual_domains AS d ON (d.aliasing = m.id)
WHERE s.uid = {?}
ORDER BY s.email, d.name', $user->id());
}
if (in_array('redirect', $retrieve)) {
$redirect = new Redirect($user);
$emails['Redirections'] = array();
foreach ($redirect->emails as $redirect_it) {
if ($redirect_it->is_redirection()) {
$emails['Redirections'][] = $redirect_it->email;
}
}
}
if ($profile) {
if (in_array('job', $retrieve)) {
$emails['Emails professionels'] = XDB::fetchColumn('SELECT email
FROM profile_job
WHERE pid = {?} AND email IS NOT NULL AND email != \'\'', $profile->id());
}
if ($profile->email_directory) {
if (in_array('directory', $retrieve)) {
foreach ($emails as &$email_list) {
foreach ($email_list as $key => $email) {
if ($profile->email_directory == $email) {
unset($email_list[$key]);
}
}
}
$emails['Email annuaire AX'] = array($profile->email_directory);
} elseif (in_array('stripped_directory', $retrieve)) {
if (User::isForeignEmailAddress($profile->email_directory)) {
$is_redirect = XDB::fetchOneCell('SELECT COUNT(*)
FROM email_redirect_account
WHERE uid = {?} AND redirect = {?}', $user->id(), $profile->email_directory);
if ($is_redirect == 0) {
$emails['Email annuaire AX'] = array($profile->email_directory);
}
}
}
}
if (isset($emails['Emails professionels']) && isset($emails['Redirections'])) {
$intersect = array_intersect($emails['Emails professionels'], $emails['Redirections']);
foreach ($intersect as $key => $email) {
unset($emails['Emails professionels'][$key]);
}
}
}
$emails_count = 0;
foreach ($emails as $email_list) {
$emails_count += count($email_list);
}
$page->assign('emails_count', $emails_count);
$page->assign('email_lists', $emails);
}