Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.

All other Modules /

Discuss all other Modules here.

Moderators: martimiz, Sean, Ed, biapar, Willr, Ingo, swaiba

OpenID module fails.

Go to End

5 Posts   1614 Views


Community Member, 19 Posts

9 July 2010 at 5:30am

On trying to install the OpenID authentication module, it fails on the dev/build, and then refreshes the page to the login screen, with the following error at the top of the page:

Notice: DataObjectDecorator::extraDBFields() is deprecated. Please use extraStatics() instead. in /system/home/[domain]/www/[domain]/sapphire/core/model/DataObjectDecorator.php on line 60

Firstly, the line reported in the error is simply a check to see if that class is used, so it's less than obvious where it's being used..

Secondly, I dislike how the error spits the full local path to the file in the webroot.

I'd REALLY like openID integration, has anyone else had this issue?

I have only the dataobjectmanager and openID auth modules installed, on SS2.4




Community Member, 19 Posts

9 July 2010 at 5:37am

Scratch that.. I changed the extraDBFields in code/OpenIDAuthenticatedRole.php so that it used extraStatics instead, and it "seems" to be working.
Watch this space, and I'll confirm after some testing


Community Member, 19 Posts

9 July 2010 at 6:49am

Edited: 09/07/2010 6:49am

Okay, installs fine.. Registering with the forum using OpenID takes me to the openID referring site asking for confirmation, and then redirects back to my site, but generates the following error:

[Warning] Invalid argument supplied for foreach()
GET /ForumMemberProfile/processopenidresponse?janrain_nonce=2010-07-08T18%3A40%3A31ZjxZx6D&openid.assoc_handle=%7BHMAC-SHA1%7D%7B4c361b9d%7D%7BqQJ8zQ%3D%3D%7D&openid.claimed_id=http%3A%2F%2FopenidDomain.TLD%2Fopenid%2Ffifi&openid.identity=http%3A%2F%2FopenidDomain.TLD%2Fopenid%2Ffifi&openid.mode=id_res&

Line 427 in /system/home/

418 }
420 function fromPostArgs($args)
421 {
422 // Construct a Message containing a set of POST arguments
423 $obj = new Auth_OpenID_Message();
425 // Partition into "openid." args and bare args
426 $openid_args = array();
427 foreach ($args as $key => $value) {
429 if (is_array($value)) {
430 return null;
431 }
433 $parts = explode('.', $key, 2);


* Auth_OpenID_Message->fromPostArgs(
Line 417 of Consumer.php
* Auth_OpenID_Consumer->complete(
Line 388 of ForumMemberProfile.php
* ForumMemberProfile->processopenidresponse(SS_HTTPRequest)
Line 193 of Controller.php
* Controller->handleAction(SS_HTTPRequest)
Line 134 of RequestHandler.php
* RequestHandler->handleRequest(SS_HTTPRequest)
Line 147 of Controller.php
* Controller->handleRequest(SS_HTTPRequest)
Line 199 of ContentController.php
* ContentController->handleRequest(SS_HTTPRequest)
Line 283 of Director.php
* Director::handleRequest(SS_HTTPRequest,Session)
Line 127 of Director.php
* Director::direct(/ForumMemberProfile/processopenidresponse)
Line 127 of main.php


Community Member, 19 Posts

9 July 2010 at 8:13am

entering an "echo $args;" into line 426, I see the following on the error page.


The foreach is expecting the $args to be an array, not a string.

However, I can't seem to find what's calling the fromPostArgs() function and passing the args incorrectly.


Community Member, 19 Posts

9 July 2010 at 9:50pm

Edited: 09/07/2010 9:55pm

reinstalled the module, to ensure none of the debugging I put in was confusing matters, and am still getting the same "foreach" error.