Index: shindig_integrator.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/ShindigIntegrator/shindig_integrator/shindig_integrator.module
retrieving revision 1.1 
diff -b -r1.1 shindig_integrator.module
89a90
>     'save application prefs',
145a147,153
>   $items['pref/set'] = array(
>     'title'           => t('Save Prefs'),
>     'description'     => t('A place where prefs are saved'),
>     'page callback'   => 'pref_set',
>     'access arguments' =>array('save application prefs'),
>     'type'            => MENU_CALLBACK);
> 
684,686c690,700
<     .'&parent='. urlencode('http://'. $_SERVER['HTTP_HOST']) 
<     . $prefs 
<     . (isset($_REQUEST['appParams']) ? '&view-params='. urlencode($_REQUEST['appParams']):'') 
---
>       .'&parent='. urlencode('http://'. $_SERVER['HTTP_HOST']);
> 
>     $res = db_query("SELECT name, value FROM {application_settings} 
>       WHERE module_id = %d AND user_id = %d AND application_id = %d", $mod_id, $viewer_id, $gadget->id);
> 
>     while ($setting = db_fetch_array($res)) {
>       $iframe_url .= '&up_' . urlencode($setting['name']) . '=' . urlencode($setting['value']);
>     }
> 
>     $iframe_url .= 
>       (isset($_REQUEST['appParams']) ? '&view-params='. urlencode($_REQUEST['appParams']):'') 
737a757,793
> 
> function pref_set() {
>   if (empty($_GET['st']) || empty($_GET['name']) || ! isset($_GET['value'])) {
>     header("HTTP/1.0 400 Bad Request", true);
>     echo "<html><body><h1>400 - Bad Request</h1></body></html>";
>   }
>   else {
>     module_load_include('php', 'shindig_integrator', '/shindig/php/src/common/Config');
>     module_load_include('php', 'shindig_integrator', '/shindig/php/src/common/SecurityToken');
>     module_load_include('php', 'shindig_integrator', '/shindig/php/src/common/BlobCrypter');
>     module_load_include('php', 'shindig_integrator', '/shindig/php/src/common/sample/BasicSecurityToken');
>     module_load_include('php', 'shindig_integrator', '/shindig/php/src/common/sample/BasicBlobCrypter');
>     module_load_include('php', 'shindig_integrator', '/shindig/php/src/common/sample/Crypto');
>     module_load_include('php', 'shindig_integrator', '/shindig/php/config/local');
> 
>     $st = urldecode(base64_decode($_GET['st']));
>     $key = urldecode($_GET['name']);
>     $value = urldecode($_GET['value']);
>     $token = BasicSecurityToken::createFromToken($st, Config::get('token_max_age'));
>     $app_id = $token->getAppId();
>     $viewer = $token->getViewerId();
> 
>     $result_get_mod_id = db_query("SELECT id FROM {user_applications} WHERE user_id = %d AND application_id = %d",
>       $viewer, $app_id);
>     if(!$result_get_mod_id) {
>       return FALSE;
>     }   
>     $record_get_mod_id = db_fetch_object($result_get_mod_id);
>     $mod_id            = $record_get_mod_id->id;
>     
>     db_query("INSERT INTO {application_settings} (application_id, user_id, module_id, name, value) 
>       VALUES (%d, %d, %d, '%s', '%s')
>       ON DUPLICATE key UPDATE value = '%s'", 
>       $app_id, $viewer, $mod_id, $key, $value, $value
>     );
>   }
> }
