function checkContactUs($email, $name, $subject, $comments) { $email = fixEmail($email); if (!isValidEmail($email)) { return INVALID_EMAIL_ERR; } $name = fixName($name); if (!isValidName($name)) { return INVALID_NAME_ERR; } $subject = fixTitleCase($subject); global $CONTACT_US_SUBJECTS; if (!in_array($subject, $CONTACT_US_SUBJECTS)) { return INVALID_CONTACT_US_SUBJECT; } $comments = trim($comments); if ($comments === "") { return INVALID_COMMENTS_ERR; } return sendContactUsEmail($email, $name, $subject, $comments); }
// $isMultipleFirst = 1; // not used foreach ($firstNames as $firstName) { $lastNames[] = $row[last_name]; } } else { $firstNames[] = $row[first_name]; $lastNames[] = $row[last_name]; 1; } // Make a custdata record for each person. for ($personNum = 1; $personNum <= count($firstNames); $personNum++) { $custdata[personNum] = $personNum; // Index to names arrays. $i = $personNum - 1; $custdata[FirstName] = fixName($firstNames[$i]); $custdata[LastName] = fixName($lastNames[$i]); // blueLine should start with a '"', but in case of quoting chaos, // wait until otherwise working. $custdata[blueLine] = "\"{$custdata['CardNo']} {$custdata['LastName']}"; // Is this premature? Contribution recordds not examined. if ($is4cOp[custdata] == "insert") { // $insertCustdata is an array of statements to execute later. $insertCustdata[$i] = "INSERT INTO custdata (\nCardNo,\npersonNum,\nLastName,\nFirstName,\nCashBack,\nType,\nmemType,\nblueLine,\nid)\nVALUES (\n{$custdata['CardNo']},\n{$custdata['personNum']},\n'{$custdata['LastName']}',\n'{$custdata['FirstName']}',\n{$custdata['CashBack']},\n'{$custdata['Type']}',\n{$custdata['memType']},\n'{$custdata['blueLine']}',\n'{$custdata['id']}'\n);"; } elseif ($is4cOp[custdata] == "update") { // $updateCustdata is an array of statements to execute later. $updateCustdata[$i] = "UPDATE custdata SET \nLastName = '{$custdata['LastName']}'\n, FirstName = '{$custdata['FirstName']}'\n, blueLine = '{$custdata['blueLine']}'\nWHERE CardNo = {$custdata['CardNo']}\nAND\npersonNum = {$custdata['personNum']}\n;"; } else { echo "Bad is4cOp >{$is4cOp[custdata]}<\n"; 1; } // each person on the card
function assignLocalI($row, $is4cOps, $updated) { global $dbConn2; // table-arrays. // in core_op // Card#, Person#, Name global $custdata; // Contact points for Card# global $meminfo; // Whether/how to contact. global $memContact; // Membership start, i.e. join date global $memDates; // Member Card barcode lookup. global $memberCards; // in core_trans global $stockpurchases; // DML arrays. global $insertCustdata; global $insertMeminfo; global $insertMemContact; global $insertMemDates; global $insertMemberCards; global $insertStockpurchases; global $updateCustdata; global $updateMeminfo; global $updateMemContact; global $updateMemDates; global $updateMemberCards; global $updateStockpurchases; /* custdata */ $custdata[CardNo] = $row[member_id]; // This lets autoincrement of custdata.id do its thing. $custdata[id] = ""; // Fields that are the same for all. $custdata[CashBack] = 999.99; // double $custdata[Type] = "PC"; $custdata[memType] = $row[mti]; // int $firstNames = array(); $lastNames = array(); $insertCustdata = array(); // Organization if ($row[organization_name] != "") { $lastNames[] = $row[organization_name]; $firstNames[] = $row[first_name]; //echo "Names 0 >",$lastNames[0],"< >$row[first_name]<\n"; } else { if ($row[middle_name] != "") { $firstNames[] = "{$row[first_name]}|{$row[middle_name]}"; } else { $firstNames[] = $row[first_name]; } $lastNames[] = $row[last_name]; 1; } // Make a custdata record for each person. for ($personNum = 1; $personNum <= count($firstNames); $personNum++) { $custdata[personNum] = $personNum; // Index to names arrays. $i = $personNum - 1; $custdata[FirstName] = fixName($firstNames[$i]); $custdata[LastName] = fixName($lastNames[$i]); $custdata[blueLine] = "\"{$custdata['CardNo']} {$custdata['LastName']}"; $custdata[LastChange] = $updated; if ($is4cOps[custdata] == "insert") { // $insertCustdata is an array of statements to execute later. $insertCustdata[$i] = "INSERT INTO custdata (\nCardNo,\npersonNum,\nLastName,\nFirstName,\nCashBack,\nType,\nmemType,\nblueLine,\nLastChange,\nid)\nVALUES (\n{$custdata['CardNo']},\n{$custdata['personNum']},\n{$dbConn2->escape($custdata[LastName])},\n{$dbConn2->escape($custdata[FirstName])},\n{$custdata['CashBack']},\n{$dbConn2->escape($custdata[Type])},\n{$custdata['memType']},\n{$dbConn2->escape($custdata[blueLine])},\n{$dbConn2->escape($custdata[LastChange])},\n{$dbConn2->escape($custdata[id])}\n);"; } elseif ($is4cOps[custdata] == "update") { // $updateCustdata is an array of statements to execute later. $updateCustdata[$i] = "UPDATE custdata SET \nLastName = {$dbConn2->escape($custdata[LastName])}\n, FirstName = {$dbConn2->escape($custdata[FirstName])}\n, LastChange = {$dbConn2->escape($custdata[LastChange])}\n, blueLine = {$dbConn2->escape($custdata[blueLine])}\nWHERE CardNo = {$custdata['CardNo']}\nAND\npersonNum = {$custdata['personNum']}\n;"; } else { echo "Bad is4cOps, personNum: {$personNum} >{$is4cOps[custdata]}<\n"; 1; } // each person on the card } /* meminfo */ $meminfo[card_no] = $custdata[CardNo]; // Need fixAddress to capitalize first letter of each word. $meminfo[street] = fixAddress($row[street_address]); if ($row[supplemental_address_1] != "") { $meminfo[street] .= ", {$row['supplemental_address_1']}"; } if ($row[supplemental_address_2] != "") { $meminfo[street] .= ", {$row['supplemental_address_2']}"; } $meminfo[city] = fixCity($row[city]); $meminfo[zip] = fixPostalCode($row[postal_code]); $meminfo[state] = fixProvince($row[state_province_id], $row[province], $meminfo[city], $meminfo[zip]); $meminfo[phone] = fixPhone($row[phone]); $meminfo[email_1] = $row[email]; // Use for 2nd phone if there is one. None I know of. $meminfo[email_2] = ""; // What should the source for this be? contact.is_opt_out == 1 -> ads_OK = 0. //$meminfo[ads_OK] = "1"; $meminfo[ads_OK] = $row[is_opt_out] == "1" ? "0" : "1"; if ($is4cOps[meminfo] == "insert") { // Compose the insert statement. $insertMeminfo = "INSERT INTO meminfo (\ncard_no\n,street\n,city\n,state\n,zip\n,phone\n,email_1\n,email_2\n,ads_OK\n)\nVALUES (\n{$meminfo['card_no']}\n, {$dbConn2->escape($meminfo[street])}\n, {$dbConn2->escape($meminfo[city])}\n, {$dbConn2->escape($meminfo[state])}\n, {$dbConn2->escape($meminfo[zip])}\n, {$dbConn2->escape($meminfo[phone])}\n, {$dbConn2->escape($meminfo[email_1])}\n, {$dbConn2->escape($meminfo[email_2])}\n, {$meminfo['ads_OK']}\n);"; // update } else { $updateMeminfo = "UPDATE meminfo SET\nstreet = {$dbConn2->escape($meminfo[street])}\n,city = {$dbConn2->escape($meminfo[city])}\n,state = {$dbConn2->escape($meminfo[state])}\n,zip = {$dbConn2->escape($meminfo[zip])}\n,phone = {$dbConn2->escape($meminfo[phone])}\n,email_1 = {$dbConn2->escape($meminfo[email_1])}\n,email_2 = {$dbConn2->escape($meminfo[email_2])}\n,ads_OK = {$meminfo['ads_OK']}\nWHERE card_no = {$meminfo['card_no']}\n;"; } /* memDates Date the person became a member. May change if expiry implemented, so code. */ if ($row[start_date] != "") { $memDates[card_no] = $custdata[CardNo]; // Civi is date, IS4C is datetime // The time part is set to 00:00:00 // Is conversion needed? Seems OK without. $memDates[start_date] = $row[start_date]; if ($row[end_date] != "") { $memDates[end_date] = $row[end_date]; } if ($is4cOps[memDates] == "insert") { // Compose the insert statement. $insertMemDates = "INSERT INTO memDates (\ncard_no\n,start_date\n,end_date\n)\nVALUES (\n{$memDates['card_no']}\n, '{$memDates['start_date']}'\n, '{$memDates['end_date']}'\n);"; } else { // Compose the update statement. $updateMemDates = "UPDATE memDates SET\nstart_date = '{$memDates['start_date']}'\n, end_date = '{$memDates['end_date']}'\nWHERE card_no = {$memDates['card_no']}\n;"; } // memDates, if anything to record. } /* memContact Preference about being contacted. 0 => no contact 1 => postal mail only # WEFC doesn't do, so not used. 2 => email only # Default. 3 => both # Not used. May want to do only if "no". */ $memContact[card_no] = $custdata[CardNo]; // 29Nov12 WEFC_Toronto really only does email at this point, so ingore the other do_not* if ($row[do_not_email] == 1) { // no contact $memContact[pref] = 0; } else { // email $memContact[pref] = 2; } if ($is4cOps[memContact] == "insert") { // Compose the insert statement. $insertMemContact = "INSERT INTO memContact (\ncard_no\n,pref\n)\nVALUES (\n{$memContact['card_no']}\n, {$memContact['pref']}\n);"; } else { // Compose the update statement. $updateMemContact = "UPDATE memContact SET\npref = '{$memContact['pref']}'\nWHERE card_no = {$memContact['card_no']}\n;"; } /* #'m memberCards */ if ($row[mcard] != "" && $row[mcard] != "0") { $memberCards[card_no] = $custdata[CardNo]; $memberCards[upc] = sprintf("00401229%05d", $row[mcard]); if ($is4cOps[memberCards] == "insert") { // Compose the insert statement. $insertMemberCards = "INSERT INTO memberCards (\ncard_no\n,upc\n)\nVALUES (\n{$memberCards['card_no']}\n, '{$memberCards['upc']}'\n);"; } else { // Compose the update statement. $updateMemberCards = "UPDATE memberCards SET\nupc = '{$memberCards['upc']}'\nWHERE card_no = {$memberCards['card_no']}\n;"; } // memberCards, if anything to record. } /* stockpurchases */ // assignLocalI }
function fix_path($path, $transliteration) { $path = fixName($path); $info = pathinfo($path); if (($s = strrpos($path, '/')) !== false) { $s++; } if (($e = strrpos($path, '.') - $s) !== strlen($info['filename'])) { $info['filename'] = substr($path, $s, $e); $info['basename'] = substr($path, $s); } $tmp_path = $info['dirname'] . DIRECTORY_SEPARATOR . $info['basename']; $str = fix_filename($info['filename'], $transliteration); if ($tmp_path != "") { return $tmp_path . DIRECTORY_SEPARATOR . $str; } else { return $str; } }