/** * 新增或编辑后执行 * @param string $context * @param array $row * @param mixed $params * @return void */ public function onAfterSave($context, array &$row, $params = null) { $isCreate = $context === 'users\\services\\Users::create' ? true : false; $isModify = $context === 'users\\services\\Users::modifyByPk' ? true : false; if (!$isCreate && !$isModify) { return; } if (($userId = (int) $params) <= 0) { return; } $sexEnum = DataUsers::getSexEnum(); $sex = isset($row['sex']) ? trim($row['sex']) : ''; $birthday = isset($row['birthday']) ? trim($row['birthday']) : ''; $address = isset($row['address']) ? trim($row['address']) : ''; $qq = isset($row['qq']) ? (int) $row['qq'] : 0; $headPortrait = isset($row['head_portrait']) ? trim($row['head_portrait']) : ''; $remarks = isset($row['remarks']) ? trim($row['remarks']) : ''; $sex = isset($sexEnum[$sex]) ? $sex : DataUsers::SEX_UNKNOW; $birthday = date('Y-m-d', strtotime($birthday)) === $birthday ? $birthday : ''; $qq = $qq > 0 ? $qq : ''; $attributes = array(); if ($isCreate) { $attributes = array('sex' => $sex, 'birthday' => $birthday, 'address' => $address, 'qq' => $qq, 'head_portrait' => $headPortrait, 'remarks' => $remarks); } else { if (isset($row['sex'])) { $attributes['sex'] = $sex; } if (isset($row['birthday'])) { $attributes['birthday'] = $birthday; } if (isset($row['address'])) { $attributes['address'] = $address; } if (isset($row['qq'])) { $attributes['qq'] = $qq; } if (isset($row['head_portrait'])) { $attributes['head_portrait'] = $headPortrait; } if (isset($row['remarks'])) { $attributes['remarks'] = $remarks; } if ($attributes === array()) { return; } } $db = Service::getInstance('Users', 'users')->getDb(); $dbProxy = $db->getDbProxy(); $tableName = $db->getTblprefix() . TableNames::getUserProfile(); $profile = Profile::getInstance($tableName, $userId, $dbProxy); $profile->save($attributes); }
/** * (non-PHPdoc) * @see \library\BaseModel::getElementsRender() */ public function getElementsRender() { $output = array('user_id' => array('__tid__' => 'main', 'type' => 'hidden', 'label' => Text::_('MOD_USERS_USERS_USER_ID_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_USER_ID_HINT')), 'login_name' => array('__tid__' => 'main', 'type' => 'text', 'label' => Text::_('MOD_USERS_USERS_LOGIN_NAME_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_LOGIN_NAME_HINT'), 'required' => true), 'login_type' => array('__tid__' => 'main', 'type' => 'radio', 'label' => Text::_('MOD_USERS_USERS_LOGIN_TYPE_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_LOGIN_TYPE_HINT'), 'options' => DataUsers::getLoginTypeEnum(), 'value' => DataUsers::LOGIN_TYPE_MAIL), 'password' => array('__tid__' => 'main', 'type' => 'password', 'label' => Text::_('MOD_USERS_USERS_PASSWORD_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_PASSWORD_HINT'), 'required' => true), 'repassword' => array('__tid__' => 'main', 'type' => 'password', 'label' => Text::_('MOD_USERS_USERS_REPASSWORD_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_REPASSWORD_HINT'), 'required' => true), 'user_name' => array('__tid__' => 'main', 'type' => 'text', 'label' => Text::_('MOD_USERS_USERS_USER_NAME_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_USER_NAME_HINT')), 'user_mail' => array('__tid__' => 'main', 'type' => 'text', 'label' => Text::_('MOD_USERS_USERS_USER_MAIL_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_USER_MAIL_HINT')), 'user_phone' => array('__tid__' => 'main', 'type' => 'text', 'label' => Text::_('MOD_USERS_USERS_USER_PHONE_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_USER_PHONE_HINT')), 'dt_registered' => array('__tid__' => 'system', 'type' => 'text', 'label' => Text::_('MOD_USERS_USERS_DT_REGISTERED_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_DT_REGISTERED_HINT'), 'disabled' => true), 'dt_last_login' => array('__tid__' => 'system', 'type' => 'text', 'label' => Text::_('MOD_USERS_USERS_DT_LAST_LOGIN_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_DT_LAST_LOGIN_HINT'), 'disabled' => true), 'dt_last_repwd' => array('__tid__' => 'system', 'type' => 'text', 'label' => Text::_('MOD_USERS_USERS_DT_LAST_REPWD_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_DT_LAST_REPWD_HINT'), 'disabled' => true), 'ip_registered' => array('__tid__' => 'system', 'type' => 'text', 'label' => Text::_('MOD_USERS_USERS_IP_REGISTERED_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_IP_REGISTERED_HINT'), 'disabled' => true), 'ip_last_login' => array('__tid__' => 'system', 'type' => 'text', 'label' => Text::_('MOD_USERS_USERS_IP_LAST_LOGIN_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_IP_LAST_LOGIN_HINT'), 'disabled' => true), 'ip_last_repwd' => array('__tid__' => 'system', 'type' => 'text', 'label' => Text::_('MOD_USERS_USERS_IP_LAST_REPWD_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_IP_LAST_REPWD_HINT'), 'disabled' => true), 'login_count' => array('__tid__' => 'system', 'type' => 'text', 'label' => Text::_('MOD_USERS_USERS_LOGIN_COUNT_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_LOGIN_COUNT_HINT'), 'disabled' => true), 'repwd_count' => array('__tid__' => 'system', 'type' => 'text', 'label' => Text::_('MOD_USERS_USERS_REPWD_COUNT_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_REPWD_COUNT_HINT'), 'disabled' => true), 'valid_mail' => array('__tid__' => 'main', 'type' => 'switch', 'label' => Text::_('MOD_USERS_USERS_VALID_MAIL_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_VALID_MAIL_HINT'), 'options' => DataUsers::getValidMailEnum(), 'value' => DataUsers::VALID_MAIL_N), 'valid_phone' => array('__tid__' => 'main', 'type' => 'switch', 'label' => Text::_('MOD_USERS_USERS_VALID_PHONE_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_VALID_PHONE_HINT'), 'options' => DataUsers::getValidPhoneEnum(), 'value' => DataUsers::VALID_PHONE_N), 'forbidden' => array('__tid__' => 'main', 'type' => 'switch', 'label' => Text::_('MOD_USERS_USERS_FORBIDDEN_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_FORBIDDEN_HINT'), 'options' => DataUsers::getForbiddenEnum(), 'value' => DataUsers::FORBIDDEN_N), 'trash' => array('__tid__' => 'main', 'type' => 'switch', 'label' => Text::_('MOD_USERS_USERS_TRASH_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_TRASH_HINT'), 'options' => DataUsers::getTrashEnum(), 'value' => DataUsers::TRASH_N), 'group_ids' => array('__tid__' => 'groups', '__object__' => 'views\\bootstrap\\users\\UserGroupsCheckboxElement', 'type' => 'checkbox', 'label' => '', 'hint' => ''), 'group_id' => array('__tid__' => 'main', 'type' => 'select', 'label' => Text::_('MOD_USERS_USERS_GROUP_ID_LABEL')), 'order' => array('type' => 'select', 'label' => Text::_('CFG_SYSTEM_GLOBAL_ORDER'), 'options' => array('dt_registered DESC' => Text::_('MOD_USERS_USERS_DT_REGISTERED_LABEL'), 'dt_last_login DESC' => Text::_('MOD_USERS_USERS_DT_LAST_LOGIN_LABEL'), 'login_count DESC' => Text::_('MOD_USERS_USERS_LOGIN_COUNT_LABEL'))), 'dt_registered_ge' => array('type' => 'text', 'label' => Text::_('MOD_USERS_USERS_DT_REGISTERED_GE_LABEL')), 'dt_registered_le' => array('type' => 'text', 'label' => Text::_('MOD_USERS_USERS_DT_REGISTERED_LE_LABEL')), 'dt_last_login_ge' => array('type' => 'text', 'label' => Text::_('MOD_USERS_USERS_DT_LAST_LOGIN_GE_LABEL')), 'dt_last_login_le' => array('type' => 'text', 'label' => Text::_('MOD_USERS_USERS_DT_LAST_LOGIN_LE_LABEL')), 'login_count_ge' => array('type' => 'text', 'label' => Text::_('MOD_USERS_USERS_LOGIN_COUNT_GE_LABEL')), 'login_count_le' => array('type' => 'text', 'label' => Text::_('MOD_USERS_USERS_LOGIN_COUNT_LE_LABEL')), 'sex' => array('__tid__' => 'profile', 'type' => 'radio', 'label' => Text::_('MOD_USERS_USERS_SEX_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_SEX_HINT'), 'options' => DataUsers::getSexEnum(), 'value' => DataUsers::SEX_UNKNOW), 'birthday' => array('__tid__' => 'profile', 'type' => 'datetimepicker', 'label' => Text::_('MOD_USERS_USERS_BIRTHDAY_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_BIRTHDAY_HINT'), 'format' => 'date'), 'address' => array('__tid__' => 'profile', 'type' => 'textarea', 'label' => Text::_('MOD_USERS_USERS_ADDRESS_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_ADDRESS_HINT')), 'qq' => array('__tid__' => 'profile', 'type' => 'text', 'label' => Text::_('MOD_USERS_USERS_QQ_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_QQ_HINT')), 'head_portrait' => array('__tid__' => 'profile', 'type' => 'text', 'label' => Text::_('MOD_USERS_USERS_HEAD_PORTRAIT_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_HEAD_PORTRAIT_HINT')), 'remarks' => array('__tid__' => 'profile', 'type' => 'textarea', 'label' => Text::_('MOD_USERS_USERS_REMARKS_LABEL'), 'hint' => Text::_('MOD_USERS_USERS_REMARKS_HINT'))); return $output; }
/** * 获取“是否禁用” * @param string $forbidden * @return string */ public function getForbiddenLangByForbidden($forbidden) { $enum = DataUsers::getForbiddenEnum(); return isset($enum[$forbidden]) ? $enum[$forbidden] : ''; }
/** * 获取“用户分组ID”验证规则 * @param mixed $value * @return array */ public function getGroupIdsRule($value) { $enum = DataUsers::getGroupIdsEnum(); return array('InArray' => new validator\InArrayValidator($value, $enum, Lang::_('SRV_FILTER_USERS_GROUP_IDS_INARRAY'))); }