Пример #1
0
 /**
  * Handle processing the form when it's posted, such as saving and handling errors.
  */
 protected function processPost()
 {
     if (!$this->formObj) {
         return false;
     }
     if ($this->formObj->formSubmitted()) {
         // Form is valid, so save data
         if ($this->formObj->formValid()) {
             $originalFormValues = $this->formObj->getFormValues();
             // Add optional filter to tweak the form values before saving
             if ($this->filterBeforeSaveFunction && function_exists($this->filterBeforeSaveFunction)) {
                 $formValues = call_user_func($this->filterBeforeSaveFunction, $originalFormValues, $this);
             } else {
                 $formValues = $originalFormValues;
             }
             // Now save the form values as normal.
             $this->handleSave($formValues);
             // Optional function once data has been saved
             if ($this->afterSaveFunction && function_exists($this->afterSaveFunction)) {
                 call_user_func($this->afterSaveFunction, $formValues, $originalFormValues, $this);
             }
         } else {
             $this->messages = $this->showListOfErrors($this->formObj->getListOfErrors());
         }
     }
 }
Пример #2
0
 /**
  * Handle processing the form when it's posted, such as saving and handling errors.
  */
 protected function processPost()
 {
     if (!$this->formObj) {
         return false;
     }
     if ($this->formObj->formSubmitted()) {
         // Form is valid, so save data
         if ($this->formObj->formValid()) {
             $originalFormValues = $this->formObj->getFormValues();
             // Add optional function to validate the data
             $gotFnErrorMsg = false;
             if ($this->filterExtraValidationFunction && function_exists($this->filterExtraValidationFunction)) {
                 $gotFnErrorMsg = call_user_func($this->filterExtraValidationFunction, $originalFormValues, $this);
             }
             // Got an error message, so show and abort.
             if ($gotFnErrorMsg) {
                 $this->messages = $this->showMessage($gotFnErrorMsg, true);
                 return false;
             }
             // Add optional filter to tweak the form values before saving
             if ($this->filterBeforeSaveFunction && function_exists($this->filterBeforeSaveFunction)) {
                 $formValues = call_user_func($this->filterBeforeSaveFunction, $originalFormValues, $this);
                 // If we're modifying values, then we need to update the data being stored in the form
                 $this->loadDefaults($formValues);
             } else {
                 $formValues = $originalFormValues;
             }
             // Now save the form values as normal.
             $this->handleSave($formValues);
             // Optional function once data has been saved
             if ($this->afterSaveFunction && function_exists($this->afterSaveFunction)) {
                 call_user_func($this->afterSaveFunction, $formValues, $originalFormValues, $this);
             }
         } else {
             $this->messages .= $this->showListOfErrors($this->formObj->getListOfErrors());
         }
     }
 }
/**
 * Show the import course page.
 */
function WPCW_showPage_ImportExport_importUsers()
{
    $page = new PageBuilder(true);
    $page->showPageHeader(__('Import Users from CSV File', 'wp_courseware'), '75%', WPCW_icon_getPageIconURL());
    // Show selection menu for import/export to save pages
    WPCW_showPage_ImportExport_menu('import_users');
    // Show form to import some XML
    $form = new FormBuilder('wpcw_import_users');
    $form->setSubmitLabel(__('Import Users', 'wp_courseware'));
    // Course upload for XML file
    $formElem = new FormElement('import_course_csv', __('User Import CSV File', 'wp_courseware'), true);
    $formElem->setTypeAsUploadFile();
    $form->addFormElement($formElem);
    if ($form->formSubmitted()) {
        // Do the full export
        if ($form->formValid()) {
            // Handle the importing/uploading
            WPCW_users_importUsersFromFile($page);
        } else {
            $page->showListOfErrors($form->getListOfErrors(), __('Unfortunately, there were some errors trying to import the XML file.', 'wp_courseware'));
        }
    }
    // Workout maximum upload size
    $max_upload = (int) ini_get('upload_max_filesize');
    $max_post = (int) ini_get('post_max_size');
    $memory_limit = (int) ini_get('memory_limit');
    $upload_mb = min($max_upload, $max_post, $memory_limit);
    printf('<p class="wpcw_doc_quick">');
    printf(__('You can import a CSV file of users using the form below.', 'wp_courseware') . ' ' . __('The <b>maximum upload file size</b> for your server is <b>%d MB</b>.', 'wp_courseware'), $upload_mb);
    printf('</p>');
    echo $form->toString();
    printf('<br/><br/><div class="wpcw_docs_wrapper">');
    printf('<b>%s</b>', __('Some tips for importing users via a CSV file:', 'wp_courseware'));
    printf('<ul>');
    printf('<li>' . __('If a user email address already exists, then just the courses are updated for that user.', 'wp_courseware'));
    printf('<li>' . __('User names are generated from the first and last name information. If a user name already exists, then a unique username is generated.', 'wp_courseware'));
    printf('<li>' . __('To add a user to many courses, just separate those course IDs with a comma in the <code>courses_to_add_to</code> column.', 'wp_courseware'));
    printf('<li>' . __('If a user is created, any courses set to be automatically assigned will be done first, and then the courses added in the <code>courses_to_add_to</code> column.', 'wp_courseware'));
    printf('<li>' . __('You can download an <a href="%s">example CSV file here</a>.', 'wp_courseware') . '</li>', admin_url('?wpcw_export=csv_import_user_sample'));
    printf('<li>' . __('The IDs for the training courses can be found on the <a href="%s">course summary page</a>.', 'wp_courseware') . '</li>', admin_url('admin.php?page=WPCW_wp_courseware'));
    printf('</ul>');
    printf('</div>');
    $page->showPageFooter();
}