+
+ /**
+ * Get the URL to the register page and add OpenID parameters to it
+ */
+ private static function getRegisterURL()
+ {
+ if (empty(Session::get('openid_identity'))) {
+ return 'register';
+ }
+
+ $args = [];
+ $attr = Session::get('openid_attributes', []);
+
+ if (is_array($attr) && count($attr)) {
+ foreach ($attr as $k => $v) {
+ if ($k === 'namePerson/friendly') {
+ $nick = Strings::escapeTags(trim($v));
+ }
+ if ($k === 'namePerson/first') {
+ $first = Strings::escapeTags(trim($v));
+ }
+ if ($k === 'namePerson') {
+ $args['username'] = Strings::escapeTags(trim($v));
+ }
+ if ($k === 'contact/email') {
+ $args['email'] = Strings::escapeTags(trim($v));
+ }
+ if ($k === 'media/image/aspect11') {
+ $photosq = bin2hex(trim($v));
+ }
+ if ($k === 'media/image/default') {
+ $photo = bin2hex(trim($v));
+ }
+ }
+ }
+
+ if (!empty($nick)) {
+ $args['nickname'] = $nick;
+ } elseif (!empty($first)) {
+ $args['nickname'] = $first;
+ }
+
+ if (!empty($photosq)) {
+ $args['photo'] = $photosq;
+ } elseif (!empty($photo)) {
+ $args['photo'] = $photo;
+ }
+
+ $args['openid_url'] = Strings::escapeTags(trim(Session::get('openid_identity')));
+
+ return 'register?' . http_build_query($args);
+ }