function adminSave($element, $ele_value) { $changed = false; list($indexId, $ele_uitext) = formulize_extractUIText($_POST['ele_value']); foreach ($indexId as $id => $text) { if ($text !== "") { $ele_value[$text] = isset($_POST['defaultoption'][$id]) ? 1 : 0; } } $element->setVar('ele_value', $ele_value); if ($_POST['element_delimit']) { if ($_POST['element_delimit'] == "custom") { $element->setVar('ele_delim', $_POST['element_delim_custom']); } else { $element->setVar('ele_delim', $_POST['element_delimit']); } } if (isset($_POST['changeuservalues']) and $_POST['changeuservalues'] == 1) { include_once XOOPS_ROOT_PATH . "/modules/formulize/class/data.php"; $fid = $element->getVar('id_form'); $data_handler = new formulizeDataHandler($fid); $newValues = $element->getVar('ele_value'); $ele_id = $element->getVar('ele_id'); if (!($changeResult = $data_handler->changeUserSubmittedValues($ele_id, $newValues))) { print "Error updating user submitted values for the options in element {$ele_id}"; } } return $changed; }
} } // check to see if we should be reassigning user submitted values, and if so, trap the old ele_value settings, and the new ones, and then pass off the job to the handling function that does that change if (isset($_POST['changeuservalues']) and $_POST['changeuservalues'] == 1) { include_once XOOPS_ROOT_PATH . "/modules/formulize/class/data.php"; $data_handler = new formulizeDataHandler($fid); switch ($ele_type) { case "radio": case "check": $newValues = $processedValues['elements']['ele_value']; break; case "select": $newValues = $processedValues['elements']['ele_value'][2]; break; } if (!($changeResult = $data_handler->changeUserSubmittedValues($ele_id, $newValues))) { print "Error updating user submitted values for the options in element {$ele_id}"; } } /**newly added for autocomplete box to make sure when {USERNAMES} and {FULLNAMES} are selected, system will not allow new entries to be added *ele_value[8] ==1 will make sure it's an autocomplete box *ele_value[16]=0 means say no match found, * 1 means add as new entry. * *when $processedValues['elements']['ele_value'][2]['{USERNAMES}'] = 1, that means this one is checked; * if it's 0, then it's not checked * *this also applys in database: "{USERNAMES}";i:1; as selected; * "{USERNAMES}";i:0; for not selected. * *you can use those lines to check the value.
function adminSave($element, $ele_value) { $changed = false; if (isset($_POST['formlink']) and $_POST['formlink'] != "none") { global $xoopsDB; $sql_link = "SELECT ele_caption, id_form, ele_handle FROM " . $xoopsDB->prefix("formulize") . " WHERE ele_id = " . intval($_POST['formlink']); $res_link = $xoopsDB->query($sql_link); $array_link = $xoopsDB->fetchArray($res_link); $ele_value[2] = $array_link['id_form'] . "#*=:*" . $array_link['ele_handle']; } else { $ele_value[2] = array(); list($_POST['ele_value'], $ui_text) = formulize_extractUIText($_POST['ele_value']); foreach ($_POST['ele_value'] as $id => $text) { if ($text !== "") { $ele_value[2][$text] = isset($_POST['defaultoption'][$id]) ? 1 : 0; } } $element->setVar('ui_text', $ui_text); } $ele_value[8] = 0; if ($_POST['elements_listordd'] == 2) { $ele_value[0] = 1; $ele_value[8] = 1; } else { if ($_POST['elements_listordd']) { $ele_value[0] = $ele_value[0] > 1 ? intval($ele_value[0]) : 1; } else { $ele_value[0] = 1; } } $ele_value[1] = $_POST['elements_multiple']; $ele_value[3] = implode(",", $_POST['element_formlink_scope']); // handle conditions // grab any conditions for this page too // add new ones to what was passed from before $filter_key = 'formlinkfilter'; if ($_POST["new_" . $filter_key . "_term"] != "") { $_POST[$filter_key . "_elements"][] = $_POST["new_" . $filter_key . "_element"]; $_POST[$filter_key . "_ops"][] = $_POST["new_" . $filter_key . "_op"]; $_POST[$filter_key . "_terms"][] = $_POST["new_" . $filter_key . "_term"]; $_POST[$filter_key . "_types"][] = "all"; } if ($_POST["new_" . $filter_key . "_oom_term"] != "") { $_POST[$filter_key . "_elements"][] = $_POST["new_" . $filter_key . "_oom_element"]; $_POST[$filter_key . "_ops"][] = $_POST["new_" . $filter_key . "_oom_op"]; $_POST[$filter_key . "_terms"][] = $_POST["new_" . $filter_key . "_oom_term"]; $_POST[$filter_key . "_types"][] = "oom"; } // then remove any that we need to $conditionsDeleteParts = explode("_", $_POST['optionsconditionsdelete']); $deleteTarget = $conditionsDeleteParts[1]; if ($_POST['optionsconditionsdelete']) { // go through the passed filter settings starting from the one we need to remove, and shunt the rest down one space // need to do this in a loop, because unsetting and key-sorting will maintain the key associations of the remaining high values above the one that was deleted $originalCount = count($_POST[$filter_key . "_elements"]); for ($i = $deleteTarget; $i < $originalCount; $i++) { // 2 is the X that was clicked for this page if ($i > $deleteTarget) { $_POST[$filter_key . "_elements"][$i - 1] = $_POST[$filter_key . "_elements"][$i]; $_POST[$filter_key . "_ops"][$i - 1] = $_POST[$filter_key . "_ops"][$i]; $_POST[$filter_key . "_terms"][$i - 1] = $_POST[$filter_key . "_terms"][$i]; $_POST[$filter_key . "_types"][$i - 1] = $_POST[$filter_key . "_types"][$i]; } if ($i == $deleteTarget or $i + 1 == $originalCount) { // first time through or last time through, unset things unset($_POST[$filter_key . "_elements"][$i]); unset($_POST[$filter_key . "_ops"][$i]); unset($_POST[$filter_key . "_terms"][$i]); unset($_POST[$filter_key . "_types"][$i]); } } } if (count($_POST[$filter_key . "_elements"]) > 0) { $ele_value[5][0] = $_POST[$filter_key . "_elements"]; $ele_value[5][1] = $_POST[$filter_key . "_ops"]; $ele_value[5][2] = $_POST[$filter_key . "_terms"]; $ele_value[5][3] = $_POST[$filter_key . "_types"]; } else { $ele_value[5] = ""; } $element->setVar('ele_value', $ele_value); if (isset($_POST['changeuservalues']) and $_POST['changeuservalues'] == 1) { include_once XOOPS_ROOT_PATH . "/modules/formulize/class/data.php"; $fid = $element->getVar('id_form'); $data_handler = new formulizeDataHandler($fid); $newValues = $element->getVar('ele_value'); $ele_id = $element->getVar('ele_id'); if (!($changeResult = $data_handler->changeUserSubmittedValues($ele_id, $newValues))) { print "Error updating user submitted values for the options in element {$ele_id}"; } } return $changed; }