$original_handle = $element->getVar('ele_handle');
}
$element->setVar('ele_order', figureOutOrder($_POST['orderpref'], $element->getVar('ele_order'), $fid));
$form_handler = xoops_getmodulehandler('forms', 'formulize');
$formObject = $form_handler->get($fid);
if ($formObject->getVar('lockedform')) {
    return;
}
// check if the user has permission to edit the form
if (!$gperm_handler->checkRight("edit_form", $fid, $groups, $mid)) {
    return;
}
$isNew = $_POST['formulize_admin_key'] == "new" ? true : false;
foreach ($processedValues['elements'] as $property => $element_handle_name) {
    if ($property == "ele_handle") {
        $element_handle_name = formulizeForm::sanitize_handle_name($element_handle_name);
        if (strlen($element_handle_name)) {
            $firstUniqueCheck = true;
            while (!($uniqueCheck = $form_handler->isHandleUnique($element_handle_name, $ele_id))) {
                if ($firstUniqueCheck) {
                    $element_handle_name = $element_handle_name . "_" . $fid;
                    $firstUniqueCheck = false;
                } else {
                    $element_handle_name = $element_handle_name . "_copy";
                }
            }
        }
        $ele_handle = $element_handle_name;
        if ($element_handle_name != $processedValues['elements']['ele_handle']) {
            $_POST['reload_names_page'] = 1;
        }
示例#2
0
 function isHandleUnique($handle, $element_id = "")
 {
     $handle = formulizeForm::sanitize_handle_name($handle);
     if (isMetaDataField($handle)) {
         return false;
         // don't allow reserved words that will be used in the main data extraction queries
     }
     global $xoopsDB;
     $element_id_condition = $element_id ? " AND ele_id != " . intval($element_id) : "";
     $sql = "SELECT count(ele_handle) FROM " . $xoopsDB->prefix("formulize") . " WHERE ele_handle = '" . formulize_db_escape($handle) . "' {$element_id_condition}";
     if (!($res = $xoopsDB->query($sql))) {
         print "Error: could not verify uniqueness of handle '{$handle}' in form {$fid}";
     } else {
         $row = $xoopsDB->fetchRow($res);
         if ($row[0] == 0) {
             // zero rows found with that handle in this form
             return true;
         } else {
             return false;
         }
     }
 }
示例#3
0
 function multiPageScreen_addToOptionsList($form_id, $options)
 {
     $formObject = new formulizeForm($form_id, true);
     // true causes all elements, even ones now shown to any user, to be included
     $elements = $formObject->getVar('elements');
     $elementCaptions = $formObject->getVar('elementCaptions');
     foreach ($elementCaptions as $key => $elementCaption) {
         $options[$elements[$key]] = printSmart(trans(strip_tags($elementCaption)));
         // need to pull out potential HTML tags from the caption
     }
     return $options;
 }
// check if the user has permission to edit the form
if (!$gperm_handler->checkRight("edit_form", $fid, $groups, $mid) and $_POST['formulize_admin_key'] != "new") {
    return;
}
if ($_POST['new_app_yes_no'] == "yes" and $_POST['applications-name']) {
    $newAppObject = $application_handler->create();
}
// get all the existing applcations that this form object was assigned to
if (isset($_POST['apps']) and count($_POST['apps']) > 0) {
    $selectedAppObjects = $application_handler->get($_POST['apps']);
}
// interpret form object values that were submitted and need special handling
$processedValues['forms']['headerlist'] = (isset($_POST['headerlist']) and is_array($_POST['headerlist'])) ? "*=+*:" . implode("*=+*:", $_POST['headerlist']) : "";
// form_handle cannot have any period, strip all of the periods out
$form_handle_from_ui = $processedValues['forms']['form_handle'];
$corrected_form_handle = formulizeForm::sanitize_handle_name($form_handle_from_ui);
if ($corrected_form_handle != $form_handle_from_ui) {
    $formulize_altered_form_handle = true;
    $processedValues['forms']['form_handle'] = $corrected_form_handle;
}
// form_handle can not be blank, default to form id if blank
if ($processedValues['forms']['form_handle'] == "") {
    $processedValues['forms']['form_handle'] = $fid;
}
$old_form_handle = $formObject->getVar("form_handle");
foreach ($processedValues['forms'] as $property => $value) {
    $formObject->setVar($property, $value);
}
if (!$form_handler->insert($formObject)) {
    print "Error: could not save the form properly: " . $xoopsDB->error();
}
function multiPageScreen_addToOptionsList($fid, $options)
{
    $formObject = new formulizeForm($fid);
    $elements = $formObject->getVar('elements');
    $elementCaptions = $formObject->getVar('elementCaptions');
    foreach ($elementCaptions as $key => $elementCaption) {
        $options[$elements[$key]] = printSmart(trans(strip_tags($elementCaption)));
        // need to pull out potential HTML tags from the caption
    }
    return $options;
}
示例#6
0
function cloneEntry($entry, $frid, $fid, $copies, $callback = null)
{
    global $xoopsDB, $xoopsUser;
    include_once XOOPS_ROOT_PATH . "/modules/formulize/class/forms.php";
    $lsbpairs = array();
    if ($frid) {
        include_once XOOPS_ROOT_PATH . "/modules/formulize/class/frameworks.php";
        include_once XOOPS_ROOT_PATH . "/modules/formulize/include/extract.php";
        $thisframe = new formulizeFramework($frid);
        $links = $thisframe->getVar('links');
        // get the element ids of the elements that are linked selectboxes pointing to another form
        $lsbindexer = 0;
        foreach ($links as $link) {
            // not a common value link, and not a uid link (key is 0 for uid links)
            if (!$link->getVar('common') and $link->getVar('key1') and $link->getVar('relationship') > 1) {
                // 2 is one to many
                // 3 is many to one
                if ($link->getVar('relationship') == 2) {
                    // key1 is the textbox, key2 is the lsb
                    $lsbpairs[$link->getVar('key1')] = $link->getVar('key2');
                } else {
                    // key 1 is the lsb and key 2 is the textbox
                    $lsbpairs[$link->getVar('key2')] = $link->getVar('key1');
                }
            }
        }
        $entries_query = getData($frid, $fid, $entry);
        $ids = internalRecordIds($entries_query[0], "", "", true);
        // true causes the first key of the returned array to be the fids
        foreach ($ids as $fid => $entryids) {
            foreach ($entryids as $id) {
                $entries_to_clone[$fid][] = $id;
            }
        }
    } else {
        $entries_to_clone[$fid][] = $entry;
    }
    $dataHandlers = array();
    $entryMap = array();
    for ($copy_counter = 0; $copy_counter < $copies; $copy_counter++) {
        foreach ($entries_to_clone as $fid => $entries) {
            // never clone an entry in a form that is a single-entry form
            $thisform = new formulizeForm($fid);
            if ($thisform->getVar('single') != "off") {
                continue;
            }
            foreach ($entries as $thisentry) {
                if (!isset($dataHandlers[$fid])) {
                    $dataHandlers[$fid] = new formulizeDataHandler($fid);
                }
                $clonedEntryId = $dataHandlers[$fid]->cloneEntry($thisentry, $callback);
                $dataHandlers[$fid]->setEntryOwnerGroups(getEntryOwner($clonedEntryId, $fid), $clonedEntryId);
                $entryMap[$fid][$thisentry][] = $clonedEntryId;
            }
        }
    }
    // all entries have been made.  Now we need to fix up any linked selectboxes
    $element_handler = xoops_getmodulehandler('elements', 'formulize');
    foreach ($lsbpairs as $source => $lsb) {
        $sourceElement = $element_handler->get($source);
        $lsbElement = $element_handler->get($lsb);
        $dataHandlers[$lsbElement->getVar('id_form')]->reassignLSB($sourceElement->getVar('id_form'), $lsbElement, $entryMap);
    }
    return $entryMap;
}