本文整理汇总了PHP中UserForm::getUserForm方法的典型用法代码示例。如果您正苦于以下问题:PHP UserForm::getUserForm方法的具体用法?PHP UserForm::getUserForm怎么用?PHP UserForm::getUserForm使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类UserForm
的用法示例。
在下文中一共展示了UserForm::getUserForm方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: saveUsers
static function saveUsers($sql, $filename, $how = 'csv')
{
$exclude = array('name', 'email');
$form = UserForm::getUserForm();
$fields = $form->getExportableFields($exclude);
// Field selection callback
$fname = function ($f) {
return 'cdata.`' . $f->getSelectName() . '` AS __field_' . $f->get('id');
};
$sql = substr_replace($sql, ',' . implode(',', array_map($fname, $fields)) . ' ', strpos($sql, 'FROM '), 0);
$sql = substr_replace($sql, 'LEFT JOIN (' . $form->getCrossTabQuery($form->type, 'user_id', $exclude) . ') cdata
ON (cdata.user_id = user.id) ', strpos($sql, 'WHERE '), 0);
$cdata = array_combine(array_keys($fields), array_values(array_map(function ($f) {
return $f->get('label');
}, $fields)));
ob_start();
echo self::dumpQuery($sql, array('name' => 'Name', 'organization' => 'Organization', 'email' => 'Email') + $cdata, $how, array('modify' => function (&$record, $keys) use($fields) {
foreach ($fields as $k => $f) {
if ($f && ($i = array_search($k, $keys)) !== false) {
$record[$i] = $f->export($f->to_php($record[$i]));
}
}
return $record;
}));
$stuff = ob_get_contents();
ob_end_clean();
if ($stuff) {
Http::download($filename, "text/{$how}", $stuff);
}
return false;
}
示例2: switch
if ($_POST) {
switch (strtolower($_REQUEST['do'])) {
case 'update':
if (!$user) {
$errors['err'] = 'Unknown or invalid user.';
} elseif (($acct = $user->getAccount()) && !$acct->update($_POST, $errors)) {
$errors['err'] = 'Unable to update user account information';
} elseif ($user->updateInfo($_POST, $errors)) {
$msg = 'User updated successfully';
$_REQUEST['a'] = null;
} elseif (!$errors['err']) {
$errors['err'] = 'Unable to update user profile. Correct any error(s) below and try again!';
}
break;
case 'create':
$form = UserForm::getUserForm()->getForm($_POST);
if ($user = User::fromForm($form)) {
$msg = Format::htmlchars($user->getName()) . ' added successfully';
$_REQUEST['a'] = null;
} elseif (!$errors['err']) {
$errors['err'] = 'Unable to add user. Correct any error(s) below and try again.';
}
break;
case 'confirmlink':
if (!$user || !$user->getAccount()) {
$errors['err'] = 'Unknown or invalid user account';
} elseif ($user->getAccount()->isConfirmed()) {
$errors['err'] = 'Account is already confirmed';
} elseif ($user->getAccount()->sendConfirmEmail()) {
$msg = 'Account activation email sent to ' . $user->getEmail();
} else {
示例3: addRemoteUser
function addRemoteUser($bk, $id)
{
global $thisstaff;
if (!$thisstaff) {
Http::response(403, 'Login Required');
} elseif (!$bk || !$id) {
Http::response(422, 'Backend and customer id required');
} elseif (!($backend = AuthenticationBackend::getSearchDirectoryBackend($bk)) || !($user_info = $backend->lookup($id))) {
Http::response(404, 'Customer not found');
}
$form = UserForm::getUserForm()->getForm($user_info);
$info = array('title' => 'Import Remote Customer');
if (!$user_info) {
$info['error'] = 'Unable to find customer in directory';
}
include STAFFINC_DIR . 'templates/user-lookup.tmpl.php';
}
示例4: array
<div class="tab_content" id="upload" style="display:none;margin:5px;">
<h2 style="margin-bottom:10px">Import a CSV File</h2>
<p>
<em>Use the columns shown in the table below. To add more fields, visit the
Admin Panel -> Manage -> Forms -> <?php
echo UserForm::getUserForm()->get('title');
?>
page to edit the available fields.
Only fields with `variable` defined can be imported.</em>
</p>
<table class="list"><tr>
<?php
$fields = array();
$data = array(array('name' => 'John Doe', 'email' => 'john.doe@osticket.com'));
foreach (UserForm::getUserForm()->getFields() as $f) {
if ($f->get('name')) {
$fields[] = $f->get('name');
}
}
foreach ($fields as $f) {
?>
<th><?php
echo mb_convert_case($f, MB_CASE_TITLE);
?>
</th>
<?php
}
?>
</tr>
<?php
示例5: addCollaborator
function addCollaborator($tid, $uid = 0)
{
global $thisstaff;
if (!($ticket = Ticket::lookup($tid)) || !$ticket->checkStaffAccess($thisstaff)) {
Http::response(404, 'No such ticket');
}
$user = $uid ? User::lookup($uid) : null;
//If not a post then assume new collaborator form
if (!$_POST) {
return self::_addcollaborator($ticket, $user);
}
$user = $form = null;
if (isset($_POST['id']) && $_POST['id']) {
//Existing user/
$user = User::lookup($_POST['id']);
} else {
//We're creating a new user!
$form = UserForm::getUserForm()->getForm($_POST);
$user = User::fromForm($form);
}
$errors = $info = array();
if ($user) {
if ($user->getId() == $ticket->getOwnerId()) {
$errors['err'] = sprintf('Ticket owner, %s, is a collaborator by default!', Format::htmlchars($user->getName()));
} elseif ($c = $ticket->addCollaborator($user, array('isactive' => 1), $errors)) {
$note = Format::htmlchars(sprintf('%s <%s> added as a collaborator', Format::htmlchars($c->getName()), $c->getEmail()));
$ticket->logNote('New Collaborator Added', $note, $thisstaff, false);
$info = array('msg' => sprintf('%s added as a collaborator', Format::htmlchars($c->getName())));
return self::_collaborators($ticket, $info);
}
}
if ($errors && $errors['err']) {
$info += array('error' => $errors['err']);
} else {
$info += array('error' => 'Unable to add collaborator - try again');
}
return self::_addcollaborator($ticket, $user, $form, $info);
}
示例6: __
// Rotate the CSRF token (original cannot be reused)
$ost->getCSRF()->rotate();
}
if ($_POST && isset($_POST['luser'])) {
if (!$_POST['luser']) {
$errors['err'] = __('Valid username or email address is required');
} elseif ($user = UserAuthenticationBackend::process($_POST['luser'], $_POST['lpasswd'], $errors)) {
if ($user instanceof ClientCreateRequest) {
if ($cfg && $cfg->isClientRegistrationEnabled()) {
// Attempt to automatically register
if ($user->attemptAutoRegister()) {
Http::redirect('tickets.php');
}
// Auto-registration failed. Show the user the info we have
$inc = 'register.inc.php';
$user_form = UserForm::getUserForm()->getForm($user->getInfo());
} else {
$errors['err'] = __('Access Denied. Contact your help desk administrator to have an account registered for you');
// fall through to show login page again
}
} else {
Http::redirect($_SESSION['_client']['auth']['dest'] ?: 'tickets.php');
}
} elseif (!$errors['err']) {
$errors['err'] = __('Invalid username or password - try again!');
}
$suggest_pwreset = true;
} elseif ($_POST && isset($_POST['lticket'])) {
if (!Validator::is_email($_POST['lemail'])) {
$errors['err'] = __('Valid email address and ticket number required');
} elseif ($user = UserAuthenticationBackend::process($_POST['lemail'], $_POST['lticket'], $errors)) {
示例7: attemptAutoRegister
function attemptAutoRegister()
{
global $cfg;
if (!$cfg) {
return false;
}
// Attempt to automatically register
$this_form = UserForm::getUserForm()->getForm($this->getInfo());
$bk = $this->getBackend();
$defaults = array('timezone_id' => $cfg->getDefaultTimezoneId(), 'dst' => $cfg->observeDaylightSaving(), 'username' => $this->getUsername());
if ($bk->supportsInteractiveAuthentication()) {
// User can only be authenticated against this backend
$defaults['backend'] = $bk::$id;
}
if ($this_form->isValid(function ($f) {
return !$f->get('private');
}) && ($U = User::fromVars($this_form->getClean())) && ($acct = ClientAccount::createForUser($U, $defaults)) && $acct->confirm() && ($cl = new ClientSession(new EndUser($U))) && $bk->login($cl, $bk)) {
return $cl;
}
}
示例8: addUser
function addUser($id, $userId = 0, $remote = false)
{
global $thisstaff;
if (!$thisstaff) {
Http::response(403, 'Login Required');
} elseif (!($org = Organization::lookup($id))) {
Http::response(404, 'Unknown organization');
}
$info = array();
$info['title'] = __('Add User');
$info['action'] = '#orgs/' . $org->getId() . '/add-user';
$info['onselect'] = 'ajax.php/orgs/' . $org->getId() . '/add-user/';
$info['lookup'] = false;
if (AuthenticationBackend::getSearchDirectories()) {
$info['lookup'] = 'remote';
}
if ($_POST) {
if ($_POST['id']) {
//Existing useer
if (!($user = User::lookup($_POST['id']))) {
$info['error'] = __('Unknown user selected');
} elseif ($user->getOrgId() == $org->getId()) {
$info['error'] = sprintf('%s already belongs to the organization', Format::htmlchars($user->getName()));
}
} else {
//Creating new user
$form = UserForm::getUserForm()->getForm($_POST);
if (!($user = User::fromForm($form))) {
$info['error'] = __('Error adding user - try again!');
}
}
if (!$info['error'] && $user && $user->setOrganization($org)) {
Http::response(201, $user->to_json());
} elseif (!$info['error']) {
$info['error'] = __('Unable to add user to the organization - try again');
}
} elseif ($remote && $userId) {
list($bk, $userId) = explode(':', $userId, 2);
if (!($backend = AuthenticationBackend::getSearchDirectoryBackend($bk)) || !($user_info = $backend->lookup($userId))) {
Http::response(404, 'User not found');
}
$form = UserForm::getUserForm()->getForm($user_info);
} elseif ($userId) {
//Selected local user
$user = User::lookup($userId);
}
if ($user && $user->getOrgId()) {
if ($user->getOrgId() == $org->getId()) {
$info['warn'] = __('User already belongs to this organization!');
} else {
$info['warn'] = __("Are you sure you want to change the user's organization?");
}
}
ob_start();
include STAFFINC_DIR . 'templates/user-lookup.tmpl.php';
$resp = ob_get_contents();
ob_end_clean();
return $resp;
}
示例9: create
//.........这里部分代码省略.........
if ($vars['topicId']) {
if (($__topic = Topic::lookup($vars['topicId'])) && ($__form = $__topic->getForm())) {
$__form = $__form->instanciate();
$__form->setSource($vars);
}
}
try {
$vars = self::filterTicketData($origin, $vars, array($form, $__form), $user);
} catch (RejectedException $ex) {
return $reject_ticket(sprintf(_S('Ticket rejected (%s) by filter "%s"'), $ex->vars['email'], $ex->getRejectingFilter()->getName()));
}
//Make sure the open ticket limit hasn't been reached. (LOOP CONTROL)
if ($cfg->getMaxOpenTickets() > 0 && strcasecmp($origin, 'staff') && ($_user = TicketUser::lookupByEmail($vars['email'])) && ($openTickets = $_user->getNumOpenTickets()) && $openTickets >= $cfg->getMaxOpenTickets()) {
$errors = array('err' => __("You've reached the maximum open tickets allowed."));
$ost->logWarning(sprintf(_S('Ticket denied - %s'), $vars['email']), sprintf(_S('Max open tickets (%1$d) reached for %2$s'), $cfg->getMaxOpenTickets(), $vars['email']), false);
return 0;
}
// Allow vars to be changed in ticket filter and applied to the user
// account created or detected
if (!$user && $vars['email']) {
$user = User::lookupByEmail($vars['email']);
}
if (!$user) {
// Reject emails if not from registered clients (if
// configured)
if (strcasecmp($origin, 'email') === 0 && !$cfg->acceptUnregisteredEmail()) {
list($mailbox, $domain) = explode('@', $vars['email'], 2);
// Users not yet created but linked to an organization
// are still acceptable
if (!Organization::forDomain($domain)) {
return $reject_ticket(sprintf(_S('Ticket rejected (%s) (unregistered client)'), $vars['email']));
}
}
$user_form = UserForm::getUserForm()->getForm($vars);
if (!$user_form->isValid($field_filter('user')) || !($user = User::fromVars($user_form->getClean()))) {
$errors['user'] = __('Incomplete client information');
}
}
}
if ($vars['topicId']) {
if ($topic = Topic::lookup($vars['topicId'])) {
if ($topic_form = $topic->getForm()) {
$TF = $topic_form->getForm($vars);
$topic_form = $topic_form->instanciate();
$topic_form->setSource($vars);
if (!$TF->isValid($field_filter('topic'))) {
$errors = array_merge($errors, $TF->errors());
}
}
} else {
$errors['topicId'] = 'Invalid help topic selected';
}
}
// Any error above is fatal.
if ($errors) {
return 0;
}
Signal::send('ticket.create.validated', null, $vars);
# Some things will need to be unpacked back into the scope of this
# function
if (isset($vars['autorespond'])) {
$autorespond = $vars['autorespond'];
}
# Apply filter-specific priority
if ($vars['priorityId']) {
$form->setAnswer('priority', null, $vars['priorityId']);
示例10: createTicketByWebService
function createTicketByWebService($xml)
{
global $logFilePath;
try {
if (!empty($xml)) {
$nodes = $xml->xpath('/contacts/contact');
} else {
logErrors("The xml file can not be loaded ");
}
for ($i = 0; $i < count($nodes); $i++) {
// echo json_encode($nodes[$i]);
$data = array();
// $data['recipients'] = array();
$data['subject'] = removeLineBreaker($nodes[$i]->title);
if (empty(removeLineBreaker($nodes[$i]->title))) {
if (!empty(removeLineBreaker($nodes[$i]->crmsubject2_text))) {
$data['subject'] = removeLineBreaker($nodes[$i]->crmsubject2_text);
} else {
$data['subject'] = "no title";
}
}
$data['header'] = "";
// $data['mid'] = 1;
$data['source'] = "Web";
$data['topicId'] = 2;
$data['priorityId'] = 2;
$data['crm_contact_id'] = $nodes[$i]->attributes()->id;
// $data['flags'] = new ArrayObject();
$data['email'] = trim(removeLineBreaker($nodes[$i]->email));
if (empty($data['email'])) {
$data['email'] = "gumin@spitzeco.dk";
}
$data['phone'] = removeLineBreaker($nodes[$i]->phone);
if (empty($data['phone'])) {
$data['phone'] = "";
}
$data['name'] = trim(removeLineBreaker($nodes[$i]->name));
if (empty($data['name'])) {
$data['name'] = "Anonymous User";
}
$data['orderNumber'] = trim(removeLineBreaker($nodes[$i]->ordernumber));
$data['ordernumber'] = trim(removeLineBreaker($nodes[$i]->ordernumber));
$data['filenumber'] = trim(removeLineBreaker($nodes[$i]->filenumber));
$data['cvr'] = trim(removeLineBreaker($nodes[$i]->cvr));
$data['CVR'] = trim(removeLineBreaker($nodes[$i]->cvr));
$data['message'] = removeLineBreaker($nodes[$i]->content);
$data['companyName'] = removeLineBreaker($nodes[$i]->companyname);
$data['company'] = removeLineBreaker($nodes[$i]->companyname);
$data['business_form_id'] = removeLineBreaker($nodes[$i]->business_form_id);
$data['activityCode'] = removeLineBreaker($nodes[$i]->activitycode);
$data['activityDescription'] = removeLineBreaker($nodes[$i]->activitydescription);
$data['useragent'] = removeLineBreaker($nodes[$i]->useragent);
$crmsubject1_id = trim(removeLineBreaker($nodes[$i]->crmsubject_id));
if (is_numeric($crmsubject1_id)) {
$data['CRM_filter_subject1'] = removeLineBreaker($nodes[$i]->crmsubject_text);
$data['crmsubject1_id'] = intval($crmsubject1_id);
$data['crmsubject1_text'] = removeLineBreaker($nodes[$i]->crmsubject_text);
} else {
die("crmsubject1_id is not numeric");
}
$crmsubject2_id = trim(removeLineBreaker($nodes[$i]->crmsubject2_id));
if (is_numeric($crmsubject2_id)) {
$data['CRM_filter_subject2'] = removeLineBreaker($nodes[$i]->crmsubject2_text);
$data['crmsubject2_id'] = intval($crmsubject2_id);
$data['crmsubject2_text'] = removeLineBreaker($nodes[$i]->crmsubject2_text);
} else {
die("crmsubject2_id is not numeric");
}
// $data['flags']['bounce'] = true;
$user = null;
$acct = null;
if (!$user && $data['email']) {
$user = User::lookupByEmail($data['email']);
}
if (!$user) {
$user_form = UserForm::getUserForm()->getForm($data);
if (!($user = User::fromVars($user_form->getClean()))) {
echo 'Unable to register account.';
}
if (!($acct = ClientAccount::createForUser($user))) {
echo 'Internal error. Unable to create new account';
}
}
$fileContent = $nodes[$i]->files->file;
$data['fileContent'] = $fileContent;
$tform = TicketForm::objects()->one()->getForm();
$messageField = $tform->getField('message');
$fileField = $messageField->getWidget()->getAttachments();
for ($j = 0; $j < count($fileContent); $j++) {
$fileId = $fileContent[$j]->attributes()->id;
$file['name'] = $fileContent[$j]->name;
$file['type'] = $fileContent[$j]->mime;
$file['encoding'] = 'base64';
// $file['cid'] = false;
$url = "https://w2l.dk" . $fileContent[$j]->url;
// logErrors("A test");
// $url = $fileContent[$j]->url;
// $file['data'] = base64_encode(file_get_contents($url));
if ($file['data'] = getFileContentsSSL($url)) {
$timestamp = date("Y-m-d_H:i:s");
//.........这里部分代码省略.........
示例11: create
//.........这里部分代码省略.........
if ($vars['topicId']) {
if (($__topic = Topic::lookup($vars['topicId'])) && ($__form = $__topic->getForm())) {
$__form = $__form->instanciate();
$__form->setSource($vars);
}
}
try {
$vars = self::filterTicketData($origin, $vars, array($form, $__form), $user);
} catch (RejectedException $ex) {
return $reject_ticket(sprintf(_S('Ticket rejected (%s) by filter "%s"'), $ex->vars['email'], $ex->getRejectingFilter()->getName()));
}
//Make sure the open ticket limit hasn't been reached. (LOOP CONTROL)
if ($cfg->getMaxOpenTickets() > 0 && strcasecmp($origin, 'staff') && ($_user = TicketUser::lookupByEmail($vars['email'])) && ($openTickets = $_user->getNumOpenTickets()) && $openTickets >= $cfg->getMaxOpenTickets()) {
$errors = array('err' => __("You've reached the maximum open tickets allowed."));
$ost->logWarning(sprintf(_S('Ticket denied - %s'), $vars['email']), sprintf(_S('Max open tickets (%1$d) reached for %2$s'), $cfg->getMaxOpenTickets(), $vars['email']), false);
return 0;
}
// Allow vars to be changed in ticket filter and applied to the user
// account created or detected
if (!$user && $vars['email']) {
$user = User::lookupByEmail($vars['email']);
}
if (!$user) {
// Reject emails if not from registered clients (if
// configured)
if (strcasecmp($origin, 'email') === 0 && !$cfg->acceptUnregisteredEmail()) {
list($mailbox, $domain) = explode('@', $vars['email'], 2);
// Users not yet created but linked to an organization
// are still acceptable
if (!Organization::forDomain($domain)) {
return $reject_ticket(sprintf(_S('Ticket rejected (%s) (unregistered client)'), $vars['email']));
}
}
$user_form = UserForm::getUserForm()->getForm($vars);
if (!$user_form->isValid($field_filter('user')) || !($user = User::fromVars($user_form->getClean()))) {
$errors['user'] = __('Incomplete client information');
}
}
}
if ($vars['topicId']) {
if ($topic = Topic::lookup($vars['topicId'])) {
if ($topic_form = $topic->getForm()) {
$TF = $topic_form->getForm($vars);
$topic_form = $topic_form->instanciate();
$topic_form->setSource($vars);
if (!$TF->isValid($field_filter('topic'))) {
$errors = array_merge($errors, $TF->errors());
}
}
} else {
$errors['topicId'] = 'Invalid help topic selected';
}
}
// Any error above is fatal.
if ($errors) {
return 0;
}
Signal::send('ticket.create.validated', null, $vars);
# Some things will need to be unpacked back into the scope of this
# function
if (isset($vars['autorespond'])) {
$autorespond = $vars['autorespond'];
}
# Apply filter-specific priority
if ($vars['priorityId']) {
$form->setAnswer('priority', null, $vars['priorityId']);
示例12: importCsv
static function importCsv($stream, $defaults = array())
{
//Read the header (if any)
$headers = array('name' => __('Full Name'), 'email' => __('Email Address'));
$uform = UserForm::getUserForm();
$all_fields = $uform->getFields();
$named_fields = array();
$has_header = true;
foreach ($all_fields as $f) {
if ($f->get('name')) {
$named_fields[] = $f;
}
}
if (!($data = fgetcsv($stream, 1000, ","))) {
return __('Whoops. Perhaps you meant to send some CSV records');
}
if (Validator::is_email($data[1])) {
$has_header = false;
// We don't have an header!
} else {
$headers = array();
foreach ($data as $h) {
$found = false;
foreach ($all_fields as $f) {
if (in_array(mb_strtolower($h), array(mb_strtolower($f->get('name')), mb_strtolower($f->get('label'))))) {
$found = true;
if (!$f->get('name')) {
return sprintf(__('%s: Field must have `variable` set to be imported'), $h);
}
$headers[$f->get('name')] = $f->get('label');
break;
}
}
if (!$found) {
$has_header = false;
if (count($data) == count($named_fields)) {
// Number of fields in the user form matches the number
// of fields in the data. Assume things line up
$headers = array();
foreach ($named_fields as $f) {
$headers[$f->get('name')] = $f->get('label');
}
break;
} else {
return sprintf(__('%s: Unable to map header to a user field'), $h);
}
}
}
}
// 'name' and 'email' MUST be in the headers
if (!isset($headers['name']) || !isset($headers['email'])) {
return __('CSV file must include `name` and `email` columns');
}
if (!$has_header) {
fseek($stream, 0);
}
$users = $fields = $keys = array();
foreach ($headers as $h => $label) {
if (!($f = $uform->getField($h))) {
continue;
}
$name = $keys[] = $f->get('name');
$fields[$name] = $f->getImpl();
}
// Add default fields (org_id, etc).
foreach ($defaults as $key => $val) {
// Don't apply defaults which are also being imported
if (isset($header[$key])) {
unset($defaults[$key]);
}
$keys[] = $key;
}
while (($data = fgetcsv($stream, 1000, ",")) !== false) {
if (count($data) == 1 && $data[0] == null) {
// Skip empty rows
continue;
} elseif (count($data) != count($headers)) {
return sprintf(__('Bad data. Expected: %s'), implode(', ', $headers));
}
// Validate according to field configuration
$i = 0;
foreach ($headers as $h => $label) {
$f = $fields[$h];
$T = $f->parse($data[$i]);
if ($f->validateEntry($T) && $f->errors()) {
return sprintf(__('%1$s: Invalid data: %2$s'), $label, implode(', ', $f->errors()));
}
// Convert to database format
$data[$i] = $f->to_database($T);
$i++;
}
// Add default fields
foreach ($defaults as $key => $val) {
$data[] = $val;
}
$users[] = $data;
}
foreach ($users as $u) {
$vars = array_combine($keys, $u);
if (!static::fromVars($vars)) {
//.........这里部分代码省略.........