break; case 'delete_uploaded_file': $folderName = $_GET['param1']; $element_id = $_GET['param2']; $entry_id = $_GET['param3']; $element_handler = xoops_getmodulehandler('elements', 'formulize'); $elementObject = $element_handler->get($element_id); $fid = $elementObject->getVar('id_form'); include_once XOOPS_ROOT_PATH . "/modules/formulize/class/data.php"; $data_handler = new formulizeDataHandler($fid); $fileInfo = $data_handler->getElementValueInEntry($entry_id, $elementObject); $fileInfo = unserialize($fileInfo); $filePath = XOOPS_ROOT_PATH . "/uploads/{$folderName}/" . $fileInfo['name']; if (!file_exists($filePath) or unlink($filePath)) { // erase the recorded values for this file in the database, false is proxy user, true is force update (on a GET request) $data_handler->writeEntry($entry_id, array($elementObject->getVar('ele_handle') => ''), false, true); print json_encode(array("element_id" => $element_id, "entry_id" => $entry_id)); } break; case 'get_element_html': include_once XOOPS_ROOT_PATH . "/modules/formulize/include/elementdisplay.php"; displayElement("", formulize_db_escape($_GET['param2']), intval($_GET['param3'])); break; case 'get_element_value': $handle = $_GET['param1']; $entryId = intval($_GET['param3']); include_once XOOPS_ROOT_PATH . "/modules/formulize/include/functions.php"; include_once XOOPS_ROOT_PATH . "/modules/formulize/include/extract.php"; include_once XOOPS_ROOT_PATH . "/modules/formulize/class/data.php"; $element_handler = xoops_getmodulehandler('elements', 'formulize'); $elementObject = $element_handler->get(formulize_db_escape($handle));
function formulize_calcDerivedColumns($entry, $metadata, $relationship_id, $form_id) { global $xoopsDB; static $parsedFormulas = array(); include_once XOOPS_ROOT_PATH . "/modules/formulize/class/data.php"; foreach ($entry as $formHandle => $record) { $data_handler = new formulizeDataHandler(formulize_getFormIdFromName($formHandle)); $formHandle = htmlspecialchars_decode($formHandle, ENT_QUOTES); if (isset($metadata[$formHandle])) { // if there are derived value formulas for this form if (!isset($parsedFormulas[$formHandle])) { formulize_includeDerivedValueFormulas($metadata[$formHandle], $formHandle, $relationship_id, $form_id); $parsedFormulas[$formHandle] = true; } foreach ($record as $primary_entry_id => $elements) { $dataToWrite = array(); foreach ($metadata[$formHandle] as $formulaNumber => $thisMetaData) { // if there's nothing already in the DB, then derive it, unless we're being asked specifically to update the derived values, which happens during a save operation. In that case, always do a derivation regardless of what's in the DB. if (isset($GLOBALS['formulize_forceDerivedValueUpdate']) and !isset($GLOBALS['formulize_doingExport'])) { $functionName = "derivedValueFormula_" . str_replace(array(" ", "-", "/", "'", "`", "\\", ".", "’", ",", ")", "(", "[", "]"), "_", $formHandle) . "_" . $formulaNumber; // want to turn off the derived value update flag for the actual processing of a value, since the function might have a getData call in it!! $resetDerivedValueFlag = false; if (isset($GLOBALS['formulize_forceDerivedValueUpdate'])) { unset($GLOBALS['formulize_forceDerivedValueUpdate']); $resetDerivedValueFlag = true; } $derivedValue = $functionName($entry, $form_id, $primary_entry_id, $relationship_id); if ($resetDerivedValueFlag) { $GLOBALS['formulize_forceDerivedValueUpdate'] = true; } // if the new value is the same as the previous one, then skip updating and saving if ($derivedValue != $entry[$formHandle][$primary_entry_id][$thisMetaData['handle']][0]) { $entry[$formHandle][$primary_entry_id][$thisMetaData['handle']][0] = $derivedValue; if ($xoopsDB) { // save value for writing to database if XOOPS is active $elementID = formulize_getIdFromElementHandle($thisMetaData['handle']); $dataToWrite[$elementID] = $derivedValue; } } } } if ($xoopsDB and count($dataToWrite) > 0) { // false for no proxy user, true to force the update even on get requests, false is do not update the metadata (modification user) $data_handler->writeEntry($primary_entry_id, $dataToWrite, false, true, false); } } } } return $entry; }
function formulize_writeEntry($values, $entry = "new", $action = "replace", $proxyUser = false, $forceUpdate = false, $writeOwnerInfo = true) { if ($entry < 1 and "new" != $entry) { // safety net in case NULL is passed as $entry $entry = "new"; } // get the form id from the element id of the first value in the values array $element_handler = xoops_getmodulehandler('elements', 'formulize'); $elementObject = $element_handler->get(key($values)); if (is_object($elementObject)) { $data_handler = new formulizeDataHandler($elementObject->getVar('id_form')); if ($result = $data_handler->writeEntry($entry, $values, $proxyUser, $forceUpdate)) { global $xoopsUser; if ($proxyUser) { $ownerForGroups = $proxyUser; } elseif ($xoopsUser) { $ownerForGroups = $xoopsUser->getVar('uid'); } else { $ownerForGroups = 0; } if ($entry == "new" and $writeOwnerInfo) { $data_handler->setEntryOwnerGroups($ownerForGroups, $result); // result will be the ID number of the entry that was just written. } return $result; } else { exit("Error: data could not be written to the database for entry {$entry} in form " . $elementObject->getVar('id_form') . "."); } } else { exit("Error: invalid element in the value array: " . key($values) . "."); } }