core/model/modx/moduserprofile.class.php
<?php
/*
* This file is part of MODX Revolution.
*
* Copyright (c) MODX, LLC. All Rights Reserved.
*
* For complete copyright and license information, see the COPYRIGHT and LICENSE
* files found in the top-level directory of this distribution.
*/
/**
* Represents extended user profile data.
*
* @property int $internalKey The ID of the modUser record related to this User
* @property string $fullname A full name for the User
* @property string $email An email address for the User
* @property string $phone A phone number for the User
* @property string $mobilephone A mobile phone number for the User
* @property boolean $blocked Whether or not this User is blocked, or prevented from logging in
* @property int $blockeduntil If set, the User will be blocked until this date
* @property int $blockedafter If set, the User will be blocked after this date
* @property int $logincount The total number of times this User has logged into MODX
* @property int $lastlogin A UNIX timestamp showing the last time the User logged in
* @property int $thislogin A UNIX timestamp showing the time this User currently logged in
* @property int $failedlogincount The number of failed logins this User has accumulated
* @property int $sessionid The PHP sessionid of the User
* @property int $dob The date of birth of the User, in UNIX timestamp format
* @property int gender The gender of the user; 1 for male, 2 for female, 0 for unknown
* @property string $address The address of the User
* @property string $country The country the User resides in
* @property string $city The city of the User
* @property string $state The state, province or region for the User
* @property string $zip The postal code for the User
* @property string $fax A facsimile address for the User
* @property string $photo Deprecated. Can still be used to store a photo location for the user.
* @property string $comment Any user-provided comments
* @property string $website The website for the User
* @property json $extended A JSON array of extended properties that can be used to store custom fields for the User
*
* @see modUser
* @package modx
*/
class modUserProfile extends xPDOSimpleObject
{
/**
* Overrides xPDOObject::save to fire modX-specific events.
*
* {@inheritDoc}
*/
public function save($cacheFlag = null)
{
$isNew = $this->isNew();
if ($this->xpdo instanceof modX) {
$this->xpdo->invokeEvent('OnUserProfileBeforeSave', array(
'mode' => $isNew ? modSystemEvent::MODE_NEW : modSystemEvent::MODE_UPD,
'userprofile' => &$this,
'cacheFlag' => $cacheFlag,
));
}
$saved = parent:: save($cacheFlag);
if ($saved && $this->xpdo instanceof modX) {
$this->xpdo->invokeEvent('OnUserProfileSave', array(
'mode' => $isNew ? modSystemEvent::MODE_NEW : modSystemEvent::MODE_UPD,
'userprofile' => &$this,
'cacheFlag' => $cacheFlag,
));
}
return $saved;
}
/**
* Overrides xPDOObject::remove to fire modX-specific events
*
* {@inheritDoc}
*/
public function remove(array $ancestors = array())
{
if ($this->xpdo instanceof modX) {
$this->xpdo->invokeEvent('OnUserProfileBeforeRemove', array(
'userprofile' => &$this,
'ancestors' => $ancestors,
));
}
$removed = parent:: remove($ancestors);
if ($this->xpdo instanceof modX) {
$this->xpdo->invokeEvent('OnUserProfileRemove', array(
'userprofile' => &$this,
'ancestors' => $ancestors,
));
}
return $removed;
}
}