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));
 }
Beispiel #2
0
 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');
     }
 }
Beispiel #3
0
 function in_all($needles, $haystack)
 {
     return in_array_all(is_array($needles) ? $needles : [$needles], is_array($haystack) ? $haystack : [$haystack]);
 }