Index: /extensions/oAuth/admin/template/providers.tpl
===================================================================
--- /extensions/oAuth/admin/template/providers.tpl	(revision 28825)
+++ /extensions/oAuth/admin/template/providers.tpl	(revision 28826)
@@ -85,5 +85,5 @@
     {if $provider.new_app_link}
       <ol>
-        <li>{'Go to <a href="%s" target="_blank">%s</a> and create a new application'|translate|sprintf:$provider.new_app_link:$provider.new_app_link}</li>
+        <li>{'Go to <a href="%s" target="_blank">%s</a> and create a new application'|translate:$provider.new_app_link:$provider.new_app_link}</li>
         
       {if $p=='Google'}
@@ -93,34 +93,35 @@
       {/if}
         
-      {if $provider.callback}
+      {if $provider.callback && $p!='Yahoo'}
         <li>
-          {assign var=callback value=$OAUTH_CALLBACK|cat:$p}
-          {'Provide this URL as the Callback/Redirect URL for your application: <em>%s</em>'|translate|sprintf:$callback}
+          {'Provide this URL as the Callback/Redirect URL for your application: <em>%s</em>'|translate:($OAUTH_CALLBACK|cat:$p)}
         </li>
       {/if}
       
       {if $p=='Live'}
-        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate|sprintf:'<b>Redirect Domain</b>':$WEBSITE}</li>
+        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate:'<b>Redirect Domain</b>':$WEBSITE}</li>
       {elseif $p=='Facebook'}
         <li>{'Go to <b>Settings->Advanced</b> and activate <em>Client OAuth Login</em>'|translate}</li>
-        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate|sprintf:'<b>Valid OAuth redirect URIs</b>':$SERVERNAME}</li>
+        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate:'<b>Valid OAuth redirect URIs</b>':$SERVERNAME}</li>
       {elseif $p=='LinkedIn'}
-        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate|sprintf:'<b>Website URL</b>':$WEBSITE}</li>
-        <li>{'Set <b>%s</b> to <em>%s</em>'|translate|sprintf:'Application Type':'Web Application'}</li>
-        <li>{'Set <b>%s</b> to <em>%s</em>'|translate|sprintf:'Default Scope':'r_basicprofile & r_emailaddress'}</li>
+        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate:'<b>Website URL</b>':$WEBSITE}</li>
+        <li>{'Set <b>%s</b> to <em>%s</em>'|translate:'Application Type':'Web Application'}</li>
+        <li>{'Set <b>%s</b> to <em>%s</em>'|translate:'Default Scope':'r_basicprofile & r_emailaddress'}</li>
       {elseif $p=='Yahoo'}
-        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate|sprintf:'<b>Application URL</b>, <b>Application Domain</b>':$WEBSITE}</li>
-        <li>{'Set <b>%s</b> to <em>%s</em>'|translate|sprintf:'Kind of Application':'Web-based'}</li>
-        <li>{'Set <b>%s</b> to <em>%s</em>'|translate|sprintf:'Access Scopes':'This app will only access public...'}</li>
-        <li>{'Once the application is registered update the permissions : set <b>Contacts</b> as <em>Read</em> and <b>Social Directory</b> as <em>Read Public</em>'|translate}</li>
+        <li>{'Set <b>%s</b> to <em>%s</em>'|translate:'Kind of Application':'Web-based'}</li>
+        <li>{'Set <b>%s</b> to <em>%s</em>'|translate:'Access Scopes':'This app requires access to private user data'}</li>
+        <li>{'Provide this URL as the Callback/Redirect URL for your application: <em>%s</em>'|translate:($OAUTH_CALLBACK|cat:$p)}</li>
+        <li>{'Select these APIs: <b>Contacts</b> as <em>Read</em> and <b>Social Directory</b> <em>Read Public</em>'|translate}</li>
       {elseif $p=='Twitter'}
-        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate|sprintf:'<b>Website</b>':$WEBSITE}</li>
+        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate:'<b>Website</b>':$WEBSITE}</li>
       {elseif $p=='Tumblr'}
-        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate|sprintf:'<b>Application Website</b>':$WEBSITE}</li>
+        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate:'<b>Application Website</b>':$WEBSITE}</li>
       {elseif $p=='Instagram'}
-        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate|sprintf:'<b>Website</b>':$WEBSITE}</li>
+        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate:'<b>Website</b>':$WEBSITE}</li>
       {elseif $p=='Google'}
-        <li>{'Set <b>%s</b> to <em>%s</em>'|translate|sprintf:'Application Type':'Web Application'}</li>
-        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate|sprintf:'<b>Authorized Javascript origins </b>':$SERVERNAME}</li>
+        <li>{'Set <b>%s</b> to <em>%s</em>'|translate:'Application Type':'Web Application'}</li>
+        <li>{'Put your website domain in the %s fields. It should match with the current hostname: <em>%s</em>'|translate:'<b>Authorized Javascript origins </b>':$SERVERNAME}</li>
+      {elseif $p=='px500'}
+        <li>{'Once the application is created, click <b>See application details</b>'|translate}</li>
       {/if}
       
Index: /extensions/oAuth/include/hybridauth/Hybrid/Providers/Yahoo.php
===================================================================
--- /extensions/oAuth/include/hybridauth/Hybrid/Providers/Yahoo.php	(revision 28825)
+++ /extensions/oAuth/include/hybridauth/Hybrid/Providers/Yahoo.php	(revision 28826)
@@ -25,5 +25,5 @@
 
 		// Provider api end-points
-		$this->api->api_base_url      = 'http://social.yahooapis.com/v1/';
+		$this->api->api_base_url      = 'https://social.yahooapis.com/v1/';
 		$this->api->authorize_url     = 'https://api.login.yahoo.com/oauth/v2/request_auth';
 		$this->api->request_token_url = 'https://api.login.yahoo.com/oauth/v2/get_request_token';
Index: /extensions/oAuth/include/hybridauth/Hybrid/Providers/px500.php
===================================================================
--- /extensions/oAuth/include/hybridauth/Hybrid/Providers/px500.php	(revision 28826)
+++ /extensions/oAuth/include/hybridauth/Hybrid/Providers/px500.php	(revision 28826)
@@ -0,0 +1,100 @@
+<?php
+/*!
+* HybridAuth
+* http://hybridauth.sourceforge.net | http://github.com/hybridauth/hybridauth
+* (c) 2009-2012, HybridAuth authors | http://hybridauth.sourceforge.net/licenses.html 
+*/
+
+/**
+* Hybrid_Providers_px500 (500px.com)
+*/
+class Hybrid_Providers_px500 extends Hybrid_Provider_Model_OAuth1
+{
+   	/**
+	* IDp wrappers initializer 
+	*/
+	function initialize()
+	{
+		parent::initialize();
+
+		// provider api end-points
+		$this->api->api_base_url      = "https://api.500px.com/v1/";
+		$this->api->authorize_url     = "https://api.500px.com/v1/oauth/authorize";
+		$this->api->request_token_url = "https://api.500px.com/v1/oauth/request_token";
+		$this->api->access_token_url  = "https://api.500px.com/v1/oauth/access_token";
+
+		$this->api->curl_auth_header  = false;
+	}
+
+
+   /**
+	* load the user profile from the IDp api client
+	*/
+	function getUserProfile()
+	{ 
+	
+
+		try{  
+			$response = $this->api->get( 'users' );
+
+			$this->user->profile->identifier    = (property_exists($response->user,'id'))?$response->user->id:"";
+			$this->user->profile->displayName   = (property_exists($response->user,'username'))?$response->user->username:"";
+			$this->user->profile->description   = (property_exists($response->user,'about'))?$response->user->about:"";
+			$this->user->profile->firstName     = (property_exists($response->user,'firstname'))?$response->user->firstname:"";
+			$this->user->profile->lastName      = (property_exists($response->user,'lastname'))?$response->user->lastname:"";  
+			$this->user->profile->photoURL      = (property_exists($response->user,'userpic_url'))?$response->user->userpic_url:"";
+			$this->user->profile->profileURL    = (property_exists($response->user,'domain'))?("http://".$response->user->domain):"";
+			$this->user->profile->webSiteURL    = (property_exists($response->user->contacts,'website'))?$response->user->contacts->website:""; 
+			$this->user->profile->city          = (property_exists($response->user,'city'))?$response->user->city:"";
+			$this->user->profile->region        = (property_exists($response->user,'state'))?$response->user->state:"";
+			$this->user->profile->country       = (property_exists($response->user,'country'))?$response->user->country:"";
+
+			if(property_exists($response->user,'sex')){
+				if($response->user->sex>0){
+					$this->user->profile->gender   = ($response->user->sex==1)?"male":"female";
+				}
+			}
+
+			return $this->user->profile; 
+		}
+		catch( Exception $e ){
+			throw new Exception( "User profile request failed! {$this->providerId} returned an error while requesting the user profile.", 6 );
+		}
+
+		return $this->user->profile;
+ 	}
+
+   	/**
+	* post to 500px
+	*/ 
+	function setUserStatus( $status )
+	{
+		// README : posting to a 500px.com blog requires the post's TITLE to be set somehow
+		// So it is strongly recommended that you submit status as an ARRAY, like :
+		
+		// setUserStatus( array( 'title'=>'YOUR TITLE HERE', 'body'=>'YOUR MESSAGE HERE' ) )
+		
+		
+		if(is_array($status) && isset($status['title']) && isset($status['body'])){
+			$t = $status['title'];
+			$b = $status['body'];
+		} else {
+			$t = '...';
+			$b = $status;	
+		}
+		
+		$parameters = array( 'title' => $t, 'body' => $b ); 
+		$response  = $this->api->post( 'blogs', $parameters );  
+
+		if ( property_exists($response,'id') ){
+			return $response->id;
+		} else {
+			throw new Exception( "Update user status failed! {$this->providerId} returned an error. "  );	
+		}
+		
+		// this function is for 'plain' blog posting only :
+		// we will commit photo upload soon in an extra function, called setUpload -
+		// because 500px users can also get an additional Upload Key to upload pictures
+		// refer to  http://developers.500px.com/docs/upload-post  for now
+	}
+}
Index: /extensions/oAuth/include/providers_stats.inc.php
===================================================================
--- /extensions/oAuth/include/providers_stats.inc.php	(revision 28825)
+++ /extensions/oAuth/include/providers_stats.inc.php	(revision 28826)
@@ -9,5 +9,4 @@
     'scope'             => 'email',
   ),
-  
   'Google' => array( 
     'label'             => 'Google',
@@ -51,5 +50,12 @@
     'label'             => 'Yahoo',
     'provider_name'     => 'Yahoo!',
+    'callback'          => true,
     'new_app_link'      => 'https://developer.apps.yahoo.com/projects/',
+  ),
+  'px500' => array(
+    'label'             => '500px',
+    'provider_name'     => '500px',
+    'callback'          => true,
+    'new_app_link'      => 'http://500px.com/settings/applications',
   ),
   'OpenID' => array( 
Index: /extensions/oAuth/language/en_UK/help.lang.php
===================================================================
--- /extensions/oAuth/language/en_UK/help.lang.php	(revision 28825)
+++ /extensions/oAuth/language/en_UK/help.lang.php	(revision 28826)
@@ -10,6 +10,5 @@
 $lang['Once you have registered, copy and past the created application credentials into this setup page'] = 'Once you have registered, copy and past the created application credentials into this setup page';
 $lang['No registration required'] = 'No registration required';
-$lang['Once the application is registered update the permissions : set <b>Contacts</b> as <em>Read</em> and <b>Social Directory</b> as <em>Read Public</em>'] = 'Once the application is registered update the permissions : set <b>Contacts</b> as <em>Read</em> and <b>Social Directory</b> as <em>Read Public</em>';
+$lang['Select these APIs: <b>Contacts</b> as <em>Read</em> and <b>Social Directory</b> <em>Read Public</em>'] = 'Select these APIs: <b>Contacts</b> as <em>Read</em> and <b>Social Directory</b> <em>Read Public</em>';
 $lang['Go to <b>Settings->Advanced</b> and activate <em>Client OAuth Login</em>'] = 'Go to <b>Settings->Advanced</b> and activate <em>Client OAuth Login</em>';
-
-?>
+$lang['Once the application is created, click <b>See application details</b>'] = 'Once the application is created, click <b>See application details</b>';
Index: /extensions/oAuth/language/fr_FR/help.lang.php
===================================================================
--- /extensions/oAuth/language/fr_FR/help.lang.php	(revision 28825)
+++ /extensions/oAuth/language/fr_FR/help.lang.php	(revision 28826)
@@ -7,9 +7,8 @@
 $lang['Set <b>%s</b> to <em>%s</em>'] = 'Sélectionnez <em>%2$s</em> pour <b>%1$s</b>';
 $lang['Once you have registered, copy and past the created application credentials into this setup page'] = 'Quand votre application est enregistrée, copiez-collez les clefs d\'authentification sur cette page';
-$lang['Once the application is registered update the permissions : set <b>Contacts</b> as <em>Read</em> and <b>Social Directory</b> as <em>Read Public</em>'] = 'Quand l\'application est enregistrée, éditez les permissions : sélectionnez <em>Read</em> pour <b>Contacts</b> et <em>Read Public</em> pour <b>Social Directory</b>';
-
+$lang['Select these APIs: <b>Contacts</b> as <em>Read</em> and <b>Social Directory</b> <em>Read Public</em>'] = 'Sélectionnez ces permissions : <em>Read</em> pour <b>Contacts</b> et <em>Read Public</em> pour <b>Social Directory</b>';
 $lang['Based on OpenID'] = 'Basé sur OpenID';
 $lang['Go to <b>Settings->Advanced</b> and activate <em>Client OAuth Login</em>'] = 'Allez dans <b>Settings->Advanced</b> et activez <em>Client OAuth Login</em>';
 $lang['No registration required'] = 'Aucun enregistrement nécessaire';
 $lang['On the <b>APIs & auth -> Credentials</b> tab, <b>Create new client ID</b>'] = 'Sur la page <b>APIs & auth -> Credentials</b>, <b>Create new client ID</b>';
-?>
+$lang['Once the application is created, click <b>See application details</b>'] = 'Quand l\'application est créée, cliquez sur <b>See application details</b>';
Index: /extensions/oAuth/template/oauth_sprites.css
===================================================================
--- /extensions/oAuth/template/oauth_sprites.css	(revision 28825)
+++ /extensions/oAuth/template/oauth_sprites.css	(revision 28826)
@@ -18,4 +18,5 @@
 .oauth_16px.steam { background-position: -176px 0px; }
 .oauth_16px.persona { background-position: -192px 0px; }
+.oauth_16px.px500 { background-position: -208px 0px; }
 
 .oauth_26px {
@@ -38,4 +39,5 @@
 .oauth_26px.steam { background-position: -286px 0px; }
 .oauth_26px.persona { background-position: -312px 0px; }
+.oauth_26px.px500 { background-position: -338px 0px; }
 
 .oauth_38px {
@@ -58,2 +60,3 @@
 .oauth_38px.steam { background-position: -418px 0px; }
 .oauth_38px.persona { background-position: -456px 0px; }
+.oauth_38px.px500 { background-position: -494px 0px; }
