public static function isFacebookFeedUrl($url) { if (!self::isFacebookUrl($url)) { return false; } if (!parse_url($url, PHP_URL_PATH) === '/feeds/page.php') { return false; } $params = ['id', 'format']; $query = extract_query($url); return in_array_all($params, array_keys($query)); }
function do_import() { $filename = $_FILES['file']['tmp_name']; $address_fields = array('street1', 'street2', 'street3', 'town', 'county', 'postcode'); $req_address_fields = array('street1', 'town', 'county', 'postcode'); $db =& DB::Instance(); $flash = Flash::Instance(); $db->StartTrans(); $columnheadings = false; if (isset($this->_data['contains_headings'])) { $columnheadings = true; } else { if (count($this->_data['headings']) > 0) { $columnheadings = $this->_data['headings']; } } $data = parse_csv_file($filename, $columnheadings); $co_loaded = false; $errors = array(); $try_address = false; if (in_array_all($req_address_fields, $columnheadings)) { $try_address = true; } foreach ($data as $person_data) { $company = DataObjectFactory::Factory('Company'); if (in_array('company', $columnheadings)) { if (isset($this->_data['unique_companies'])) { $co_loaded = $company->loadBy('name', $person_data['company']); } if ($co_loaded === false) { $co_data = array('name' => $person_data['company']); $company = DataObject::Factory($co_data, $errors, 'Company'); if ($company !== false) { $company->save(); } } if ($company !== false) { $person_data['company_id'] = $company->id; } } parent::save('Person', $person_data); if ($try_address && in_array_all($req_address_fields, array_keys($person_data))) { $address_data = array(); foreach ($address_fields as $fieldname) { if (isset($person_data[$fieldname])) { $address_data[$fieldname] = $person_data[$fieldname]; } } $address_data['main'] = true; $address_data['name'] = 'Main'; $address_data['person_id'] = $this->_data['id']; $address_data['countrycode'] = 'GB'; $address = DataObject::Factory($address_data, $errors, 'Personaddress'); if ($address !== false) { $address->save(); } } } $success = $db->CompleteTrans(); if ($success) { $flash->clearMessages(); $flash->addMessage(count($data) . ' contacts imported'); $this->import(); $this->setTemplateName('import'); } else { $flash->addErrors($errors); $this->import(); $this->setTemplateName('import'); } }
function in_all($needles, $haystack) { return in_array_all(is_array($needles) ? $needles : [$needles], is_array($haystack) ? $haystack : [$haystack]); }