public static function markProcessed($id, $relationship, $hash)
 {
     if (!is_string($relationship) || !is_string($hash) || !is_string($id) || !$id || !$hash || !$relationship) {
         $this->raiseError("bad parameters");
         return null;
     }
     if (self::$mark_stmt === null) {
         $db = mdb2::singleton();
         self::$mark_stmt = $db->prepare("INSERT INTO form_relationship_importer (id,relationship,hash) VALUES (?, ?, ?)", array('text', 'text', 'text'), MDB2_PREPARE_MANIP);
         if (I2CE::pearError(self::$mark_stmt, "Could not prepare mark statement")) {
             return null;
         }
     }
     if (!self::$mark_stmt) {
         return null;
     }
     return !I2CE::pearError(self::$mark_stmt->execute(array($id, $relationship, $hash)), "Could not mark processed");
 }
示例#2
0
/**
 * Read field-configuration as array and interpret array-keys
 * this function calls tagReplace
 *
 * @param mdb2    $mdb2 database object
 * @param R3Auth  $auth authentication object
 * @param array   $fields field-configuration
 * @param array   $data
 */
function readFieldArray($mdb2, $auth, &$fields, &$data, $opts = array())
{
    $opts = array_merge(array('ignoreReadOnly' => false, 'ignoreHidden' => false), $opts);
    $isAuthManager = get_class($auth) == 'R3AuthManager' || is_subclass_of($auth, 'R3AuthManager');
    if ($isAuthManager) {
        if (isset($data['do_name'])) {
            $dn_name = $data['dn_name'];
        } else {
            if (isset($data['do_id'])) {
                $domainData = $auth->getDomainDataFromID($data['do_id']);
                $dn_name = $domainData['dn_name'];
            } else {
                $dn_name = $auth->getDomainName();
            }
        }
        if (isset($data['app_code'])) {
            $app_code = $data['app_code'];
        } else {
            $app_code = $auth->getApplicationCode();
        }
        if (isset($data['us_login'])) {
            $us_login = $data['us_login'];
        } else {
            $us_login = $auth->getLogin();
        }
        // Se la chiamata fallisce l'utente non viene trovato. Considero un nuovo utente
        $isAdd = !$auth->loadConfigFor($dn_name, $app_code, $us_login);
    } else {
        $isAdd = false;
    }
    //$fixedValues = array();
    foreach ($fields as $fieldname => $settings) {
        if (isset($settings['inivalue']) && !isset($settings['value'])) {
            $fields[$fieldname]['value'] = $auth->getConfigValue($settings['inivalue'][0], $settings['inivalue'][1], $settings['inivalue'][2]);
        }
        if (isset($settings['label']) && isset($lbl[$settings['label']])) {
            $fields[$fieldname]['label'] = tagReplace($lbl[$settings['label']]);
        } else {
            if (isset($settings['label'])) {
                $fields[$fieldname]['label'] = _(tagReplace($settings['label']));
            }
        }
        if ($opts['ignoreReadOnly'] == true) {
            $ReadOnly = false;
        } else {
            $ReadOnly = isset($settings['kind']) && strToUpper(substr($settings['kind'], 0, 1)) == 'R';
        }
        if (isset($settings['type']) && in_array($settings['type'], array('select', 'select-multiple'))) {
            $a = array();
            if (isset($settings['sql']) && $settings['sql'] != '') {
                $sql = tagReplace($settings['sql']);
                $res =& $mdb2->query($sql);
                if (PEAR::isError($res)) {
                    throw new Exception($res->getMessage());
                }
                while ($row = $res->fetchRow(MDB2_FETCHMODE_ORDERED)) {
                    if (count($row) > 2) {
                        if ($ReadOnly || $row[0] == '' && $row[1] == '') {
                            $a[$row[0]] = $row[2];
                        } else {
                            $a[$row[1]][$row[0]] = $row[2];
                            /** men� a tendina con option */
                        }
                    } else {
                        $a[$row[0]] = $row[1];
                    }
                }
                $fields[$fieldname]['values'] = $a;
                if ($ReadOnly) {
                    /** Menu a tendina Read Only: Correggo valore (test_cbReplaceTexto e non value) */
                    if (isset($data[$fieldname]) && isset($a[$data[$fieldname]])) {
                        $data[$fieldname] = $a[$data[$fieldname]];
                    }
                }
            } else {
                if ($ReadOnly) {
                    if (!isset($settings['inistorage'])) {
                        $data[$fieldname] = @$fields[$fieldname]['values'][$auth->getParam($fieldname)];
                    }
                } else {
                    foreach ($fields[$fieldname]['values'] as $key => $val) {
                        $fields[$fieldname]['val'][$key] = _(tagReplace($val));
                    }
                    $fields[$fieldname]['values'] = $fields[$fieldname]['val'];
                }
            }
        }
    }
    // Assign the user values
    if (!$isAdd) {
        if (isset($fields) && is_array($fields)) {
            foreach ($fields as $fieldname => $settings) {
                if (isset($settings['inistorage'])) {
                    $default = @$auth->getConfigValue($settings['inivalue'][0], $settings['inivalue'][1], $settings['inivalue'][2]);
                    $fields[$fieldname]['value'] = $auth->getConfigValue($settings['inistorage'][0], $settings['inistorage'][1], $default);
                } else {
                    if (isset($settings['storagetable'])) {
                        if (isset($data['us_id'])) {
                            $sql = "SELECT {$fieldname} FROM {$settings['storagetable']} WHERE us_id={$data['us_id']} ";
                            $res =& $mdb2->query($sql);
                            if (PEAR::isError($res)) {
                                throw new Exception($res->getMessage());
                            }
                            $fields[$fieldname]['value'] = array();
                            while ($row = $res->fetchRow(MDB2_FETCHMODE_ASSOC)) {
                                $fields[$fieldname]['value'][] = $row[$fieldname];
                            }
                        }
                    } else {
                        if (isset($data[$fieldname])) {
                            $fields[$fieldname]['value'] = $data[$fieldname];
                        }
                    }
                }
            }
        }
    }
}