public function getRenderUITopExtensions(&$html) { $current_user = Member::currentUser(); if (!$current_user->shouldShowDupesOnProfile()) { return; } $dupe_members = $this->manager->getDupes($current_user); $qty = count($dupe_members); if ($qty > 0) { Requirements::css('dupe_members/css/edit.profile.dupes.member.extension.css'); Requirements::css('themes/openstack/bower_assets/sweetalert2/dist/sweetalert2.min.css'); Requirements::javascript('themes/openstack/bower_assets/sweetalert2/dist/sweetalert2.min.js'); Requirements::javascript('marketplace/code/ui/admin/js/utils.js'); Requirements::javascript('dupe_members/javascript/edit.profile.dupes.member.extension.js'); $members_emails_warning = "<div id=\"dupes-email-warning-container\" class=\"alert alert-danger alert-dismissible\" role=\"alert\">"; $members_emails_warning .= "<button id='dupes-dismiss' type=\"button\" class=\"close\" data-dismiss=\"alert\"><span aria-hidden=\"true\">×</span><span class=\"sr-only\">Close</span></button>"; $members_emails_warning .= "<p>We currently show there are <span class='span-qty'>{$qty}</span> additional accounts with your First & Last Name:</p>"; $members_emails_warning .= '<ul id="dupes-emails-list">'; foreach ($dupe_members as $dupe_mem) { $id = $dupe_mem->getIdentifier(); $delete_btn_html = '<a class="roundedButton dupes-member-delete-account" data-id="' . $id . '" href="#" title="Delete account">Delete</a>'; $merge_btn_html = '<a class="roundedButton dupes-member-merge-account" data-id="' . $id . '" href="#" title="Merge account">Merge</a>'; $not_my_btn_html = '<a class="roundedButton dupes-member-not-my-account" data-id="' . $id . '" href="#" title="This is not my account">This is not my account</a>'; $members_emails_warning .= '<li><span class="dupes-email">' . preg_replace('/(?<=.).(?=.*.@)/u', '*', $dupe_mem->getEmail()) . '</span>' . $merge_btn_html . ' ' . $delete_btn_html . ' ' . $not_my_btn_html . '</li>'; } $members_emails_warning .= '</ul></div>'; $html .= $members_emails_warning; } }