当前位置: 首页>>代码示例>>PHP>>正文


PHP UserForm::getUserForm方法代码示例

本文整理汇总了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;
 }
开发者ID:ed00m,项目名称:osTicket-1.8,代码行数:31,代码来源:class.export.php

示例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 {
开发者ID:ed00m,项目名称:osTicket-1.8,代码行数:31,代码来源:users.php

示例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';
 }
开发者ID:Jride,项目名称:OSTicket-Thaiconnections,代码行数:17,代码来源:ajax.users.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 -&gt; Manage -&gt; Forms -&gt; <?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 
开发者ID:ed00m,项目名称:osTicket-1.8,代码行数:30,代码来源:user-import.tmpl.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);
 }
开发者ID:ed00m,项目名称:osTicket-1.8,代码行数:38,代码来源:ajax.tickets.php

示例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)) {
开发者ID:pradhmanyu,项目名称:ost,代码行数:31,代码来源:login.php

示例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;
     }
 }
开发者ID:KingsleyGU,项目名称:osticket,代码行数:20,代码来源:class.auth.php

示例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;
 }
开发者ID:CarlosAvilesMx,项目名称:CarlosAviles.Mx,代码行数:59,代码来源:ajax.orgs.php

示例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']);
开发者ID:gizur,项目名称:osticket,代码行数:67,代码来源:class.ticket.php

示例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");
//.........这里部分代码省略.........
开发者ID:KingsleyGU,项目名称:osticket,代码行数:101,代码来源:xmlSchema.php

示例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']);
开发者ID:jmangarret,项目名称:ostickets,代码行数:67,代码来源:class.ticket.php

示例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)) {
//.........这里部分代码省略.........
开发者ID:dmiguel92,项目名称:osTicket-1.8,代码行数:101,代码来源:class.user.php


注:本文中的UserForm::getUserForm方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。