f924eaf24736432a49ee554a46bb7ccc0bd563a1
3 // WARNING: this script takes a few weeks to be executed completly, thus run it into a screen.
5 require_once 'connect.db.inc.php';
6 require_once '../../classes/phone.php';
7 require_once '../../classes/address.php';
9 $globals->debug
= 0; // Do not store backtraces.
11 echo "Formats non formated phones.\n";
12 $it = XDB
::rawIterator("SELECT search_tel AS search, display_tel AS display, comment, link_id,
13 tel_type AS type, link_type, tel_id AS id, pid, pub
15 WHERE search_tel = '' OR search_tel IS NULL
16 ORDER BY pid, link_id, tel_id");
17 while ($phone = new Phone($it->next())) {
22 echo "Deletes duplicated phones.\n";
23 $it = XDB
::rawIterator("SELECT search_tel AS search, display_tel AS display, comment, link_id,
24 tel_type AS type, link_type, tel_id AS id, pid, pub
26 WHERE link_type = 'user'
27 ORDER BY pid, tel_id");
29 $duplicates = array();
30 $phone = new Phone($it->next());
34 while ($phone = new Phone($it->next())) {
35 if ($phone->pid() == $pid) {
40 for ($i = 0; $i < $count; ++
$i) {
41 for ($j = $i +
1; $j < $count; ++
$j) {
42 if ($phones[$i]->search() == $phones[$j]->search()) {
43 $duplicates[$i] = true
;
47 foreach ($duplicates as $key => $bool) {
50 if (count($phones) != $count) {
51 Phone
::deletePhones($pid, 'user');
53 foreach ($phones as $phone) {
58 XDB
::execute('UPDATE profile_merge_issues
59 SET issues = REPLACE(issues, \'phone\', \'\')
60 WHERE pid = {?}', $pid);
71 echo "Tries to geocode addresses (due a bug in the previous release, all addresses must run once again).\n";
72 $it = XDB
::rawIterator('SELECT *
73 FROM profile_addresses
74 ORDER BY pid, jobid, type, id');
77 while ($address = $it->next()) {
78 $address->format(array(true
, true
));
81 if (!($pid == $address->pid
&& $jobid == $address->jobid
)) {
83 $jobid = $address->jobid
;
88 echo "Deletes duplicated addresses.\n";
89 $it = XDB
::rawIterator("SELECT *
90 FROM profile_addresses
94 $duplicates = array();
95 $address = new Address($it->next());
97 $addresses[] = $address;
99 while ($address = new Address($it->next())) {
100 if ($address->pid
== $pid) {
101 $address[] = $address;
105 for ($i = 0; $i < $count; ++
$i) {
106 for ($j = $i +
1; $j < $count; ++
$j) {
107 if ($addresses[$i]->text
== $addresses[$j]->text
) {
108 $duplicates[$i] = true
;
112 foreach ($duplicates as $key => $bool) {
113 unset($addresses[$key]);
115 if (count($addresses) != $count) {
116 Address
::deleteAddresses($pid, 'home');
118 foreach ($addresses as $address) {
119 $address->setId($id);
123 XDB
::execute('UPDATE profile_merge_issues
124 SET issues = REPLACE(issues, \'address\', \'\')
125 WHERE pid = {?}', $pid);
130 $pid = $address->pid
;
131 $addresses[] = $address;
136 /* vim:set et sw=4 sts=4 ts=4: */