#!/usr/bin/php5 -q next()) { $pid = $row[0]; // Find the address which would be selected as "AX mail" // But don't update anything $best_mail = Address::updateBestMail($pid, true); if (is_null($best_mail)) { continue; } // Just continue if the returned address is already selected $flags = new PlFlagSet($best_mail['flags']); if ($flags->hasFlag('dn_best_mail')) { continue; } // The current profile is buggy. // Let's fetch more data to print detailed information $profile = Profile::get($pid); $addresses = ProfileField::getForPID('ProfileAddresses', array($pid), $admin_visibility); $addresses = $addresses->get(Profile::ADDRESS_POSTAL); $old_mail = null; $new_mail = null; foreach ($addresses as $addr) { if ($addr->flags->hasFlag('dn_best_mail')) { $old_mail = $addr; } else if ($addr->id == $best_mail['id']) { $new_mail = $addr; } } echo "Profile " . $profile->hrid() . " ($pid) has a wrongly selected best mail.\n"; if (is_null($old_mail)) { echo "... no currently selected best mail\n"; } else { echo "... currently selected best mail: " . $old_mail->formatted_address . " (flags: " . $old_mail->flags->flags() . ", pub: " . $old_mail->pub . ")\n"; } if (is_null($new_mail)) { echo "... unable to find newly selected best mail (BUG!)\n"; } else { echo "... best mail that would be selected: " . $new_mail->formatted_address . " (flags: " . $new_mail->flags->flags() . ", pub: " . $new_mail->pub . ")\n"; } echo "\n"; } // vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8: ?>