Dotclear

Changeset 2964


Ignore:
Timestamp:
02/21/11 03:10:44 (12 years ago)
Author:
JcDenis
Message:

dcLibFoursquare 0.3

Location:
plugins/dcLibFoursquare
Files:
4 added
8 edited

Legend:

Unmodified
Added
Removed
  • plugins/dcLibFoursquare/_admin.php

    r2955 r2964  
    1818     'plugin.php?p=dcLibFoursquare','index.php?pf=dcLibFoursquare/icon.png', 
    1919     preg_match('/plugin.php\?p=dcLibFoursquare(&.*)?$/',$_SERVER['REQUEST_URI']), 
    20      $core->auth->check('admin',$core->blog->id) 
     20     $core->auth->isSuperAdmin() 
    2121); 
    2222?> 
  • plugins/dcLibFoursquare/_define.php

    r2958 r2964  
    1717     /* Description*/         "Foursquare library for Dotclear's plugins", 
    1818     /* Author */             "JC Denis", 
    19      /* Version */            '0.2', 
     19     /* Version */            '0.3', 
    2020     /* Permissions */        'admin' 
    2121); 
    22      /* date */          #20110219 
     22     /* date */          #20110220 
    2323?> 
  • plugins/dcLibFoursquare/_install.php

    r2955 r2964  
    3232     $s = $core->blog->settings->dcLibFoursquare; 
    3333      
    34      $social_profil = base64_encode(serialize(array( 
    35            
    36      ))); 
     34     $social_profil = $social_reader = base64_encode(serialize(array())); 
    3735      
    3836     $s->put('soCialMe_profil',$social_profil,'string','config for soCialMe Profil',false,true); 
     37     $s->put('soCialMe_preader',$social_reader,'string','config for soCialMe Reader',false,true); 
    3938      
    4039     $s->put('oauth_admin','','string','oAuth2 app ref for admin side',false,true); 
  • plugins/dcLibFoursquare/inc/lib.oauth.client.2.0.foursquare.php

    r2955 r2964  
    1313if (!defined('DC_RC_PATH')){return;} 
    1414 
    15 # Config for oauth 1.0 client manager 
     15# Config for oauth 2 client manager 
    1616class oAuthClient20Foursquare extends oAuthClient20 
    1717{ 
  • plugins/dcLibFoursquare/inc/lib.social.profil.srv.foursquare.php

    r2958 r2964  
    3030          'playSmallContent' => true, 
    3131          'playBigContent' => true, 
    32           'playMediumExtraContent' => true 
     32          'playCardContent' => true 
    3333     ); 
    34       
    35      protected $available = true; 
    3634      
    3735     private $oauth = false; 
     
    4442          # Required plugin oAuthManager 
    4543          # Used name of parent plugin 
    46           if (!empty($oauth_settings['client_id']) && soCialMeUtils::checkPlugin('oAuthManager','0.2-alpha1')) 
     44          if (!empty($oauth_settings['client_id']) && soCialMeUtils::checkPlugin('oAuthManager','0.3')) 
    4745          { 
    4846               $this->oauth = oAuthClient::load($this->core,'foursquare', 
     
    127125     public function parseContent($img) 
    128126     {  
    129           return !$this->oauth || !$this->oauth->info('id') ?  
    130                null :  
    131                soCialMeUtils::preloadBox( 
    132                     soCialMeUtils::easyLink( 
    133                          'http://foursquare.com/user/'.$this->oauth->info('id'), 
    134                          $this->name, 
    135                          $this->url.$img, 
    136                          'profil' 
    137                     ) 
    138                ); 
     127          if (!$this->oauth || !$this->oauth->info('id')) return; 
     128           
     129          $record[0] = array( 
     130               'service' => $this->id, 
     131               'source_name' => $this->name, 
     132               'source_url' => $this->home, 
     133               'source_icon' => $this->icon, 
     134               'preload' => true, 
     135               'title' => sprintf(__('View my profil on %s'),$this->name), 
     136               'avatar' => $this->url.$img, 
     137               'url' => 'http://foursquare.com/user/'.$this->oauth->info('id') 
     138          ); 
     139          return $record; 
    139140     } 
    140141     public function playIconContent() { return $this->parseContent('pf=dcLibFoursquare/inc/icons/icon-small.png'); } 
     
    149150          if (!$this->available || $this->oauth->state() != 2) return; 
    150151           
    151           # 
    152           # Cache for user badges 
    153           # 
    154            
    155152          # cache filename 
    156           $file_user_badges = $this->core->blog->id.$this->id.'user_badges'; 
     153          $file = $this->core->blog->id.$this->id.'user_profil_and_badges'; 
    157154           
    158155          # check cache expiry 
    159           if(isset($available['MediumExtra']) && in_array($this->id,$available['MediumExtra'])  
    160           && soCialMeCacheFile::expired($file_user_badges,'enc',$this->cache_timeout)) 
    161           { 
    162                # call API 
     156          if(isset($available['Card']) && in_array($this->id,$available['Card'])  
     157           && soCialMeCacheFile::expired($file,'enc',$this->cache_timeout)) 
     158          { 
     159               $i = 0; 
     160               $records = null; 
     161               $this->log('Get','playServerScript','user_profil_and_badges'); 
     162                
     163               // profil 
     164               $rsp = foursquareUtils::api($this->oauth,'users/self'); 
     165                
     166               if ($rsp && $rsp->user) 
     167               { 
     168                    $rs = $rsp->user; 
     169                     
     170                    $records[$i]['service'] = $this->id; 
     171                    $records[$i]['author'] = $this->oauth->info('name'); 
     172                    $records[$i]['source_name'] = $this->name; 
     173                    $records[$i]['source_url'] = $this->home; 
     174                    $records[$i]['source_icon'] = $this->icon; 
     175                     
     176                    $records[$i]['me'] = true; 
     177                    $records[$i]['url'] = 'http://foursquare.com/user/'.$rs->id; 
     178                    $records[$i]['title'] = $rs->firstName.' '.$rs->lastName; 
     179                    $records[$i]['excerpt'] = sprintf(__('View my profil on %s'),$this->name); 
     180                    $records[$i]['content'] = sprintf(__('%s checkins, %s badges'),$rs->checkins->count,$rs->badges->count); 
     181                    $records[$i]['avatar'] = 'http://playfoursquare.s3.amazonaws.com/userpix_thumbs/QENPJKQ33TFQLNRS.png'; 
     182                    $records[$i]['icon'] = 'http://playfoursquare.s3.amazonaws.com/userpix_thumbs/QENPJKQ33TFQLNRS.png'; 
     183                     
     184                    $i++; 
     185               } 
     186                
     187               // badges 
    163188               $rsp = foursquareUtils::api($this->oauth,'users/self/badges'); 
    164 //echo '<p>rsp:</p><pre style="text-align:left;">'.print_r($rsp,true).'</pre>';exit(1); 
     189                
    165190               if ($rsp && $rsp->badges) 
    166191               { 
    167192                    $rs = $rsp->badges; 
    168193                     
    169                     # Parse response 
    170                     $records = null; 
    171                     $i = 0; 
    172194                    foreach($rs as $record) 
    173195                    { 
     
    185207                         $records[$i]['url'] = 'http://foursquare.com/user/'.$this->oauth->info('id').'/bagdes/'.$record->id; 
    186208                         $records[$i]['title'] = sprintf(__('%s has got the %s badge'),$this->oauth->info('name'),$record->name); 
     209                         $records[$i]['excerpt'] = sprintf(__('View this badge on %s'),$this->name); 
    187210                         $records[$i]['content'] = $record->description; 
    188211                         $records[$i]['avatar'] = $record->image->prefix.$recorf->image->size[1].$record->image->name; 
     
    191214                         $i++; 
    192215                    } 
    193                     # Create cache file 
    194                     if (!empty($records)) { 
    195                          soCialMeCacheFile::write($file_user_badges,'enc',soCialMeUtils::encode($records)); 
    196                     } 
    197                } 
    198           } 
    199      } 
    200       
    201      # List from cache file user unlock badges on soCialMe "medium extra content" 
    202      public function playMediumExtraContent() 
     216               } 
     217                
     218               # Set cache file 
     219               if (empty($records)) { 
     220                    soCialMeCacheFile::touch($file,'enc'); 
     221               } 
     222               else { 
     223                    soCialMeCacheFile::write($file,'enc',soCialMeUtils::encode($records)); 
     224               } 
     225          } 
     226     } 
     227      
     228     # List from cache file user unlock badges on soCialMe "card content" 
     229     public function playCardContent() 
    203230     { 
    204231          if (!$this->available) return; 
    205           # cache filename 
    206           $file = $this->core->blog->id.$this->id.'user_badges'; 
    207           # Read cache content 
     232           
     233          $file = $this->core->blog->id.$this->id.'user_profil_and_badges'; 
    208234          $content = soCialMeCacheFile::read($file,'enc'); 
    209235          if (empty($content)) return; 
    210           # Parse content 
    211           $rs = soCialMeUtils::decode($content); 
    212 //echo '<p>rs:</p><pre style="text-align:left;">'.print_r($rs,true).'</pre>';exit(1); 
    213           if (empty($rs)) return; 
    214            
    215           $res = ''; 
    216            
    217           foreach($rs as $record) 
    218           { 
    219                $res .= 
    220                '<div class="foursquare-badge">'. 
    221                '<img src="'.$record['icon'].'" alt="'.$record['title'].'" /> '. 
    222                '<strong>'.$record['title'].'</strong><br />'. 
    223                $record['content'].'<br />'. 
    224                '<em>'.dt::str($this->core->blog->settings->system->date_format.', '.$this->core->blog->settings->system->time_format,$record['date']).'</em>'. 
    225                '</div>'; 
    226           } 
    227           return $res; 
     236           
     237          return soCialMeUtils::decode($content); 
    228238     } 
    229239} 
  • plugins/dcLibFoursquare/inc/lib.social.reader.srv.foursquare.php

    r2955 r2964  
    3232      
    3333     private $oauth = false; 
    34      private $cache_timeout = 300; //5 minutes 
    3534     private $chekins_returned = 20; 
    3635      
     
    4241          # Required plugin oAuthManager 
    4342          # Used name of parent plugin 
    44           if (!empty($oauth_settings['client_id']) && soCialMeUtils::checkPlugin('oAuthManager','0.2-alpha1')) 
     43          if (!empty($oauth_settings['client_id']) && soCialMeUtils::checkPlugin('oAuthManager','0.3')) 
    4544          { 
    4645               $this->oauth = oAuthClient::load($this->core,'foursquare', 
     
    128127          if (!$this->available || $this->oauth->state() != 2) return; 
    129128           
    130           # 
    131           # Cache for user checkins 
    132           # 
    133            
    134129          # cache filename 
    135           $file_user_checkins = $this->core->blog->id.$this->id.'user_checkins'; 
     130          $file = $this->core->blog->id.$this->id.'user_checkins'; 
    136131           
    137132          # check cache expiry 
    138133          if((isset($available['Widget']) && in_array($this->id,$available['Widget'])  
    139134           || isset($available['Page']) && in_array($this->id,$available['Page']))  
    140           && soCialMeCacheFile::expired($file_user_checkins,'enc',$this->cache_timeout)) 
    141           { 
     135          && soCialMeCacheFile::expired($file,'enc',$this->cache_timeout)) 
     136          { 
     137               $records = null; 
     138               $this->log('Get','playServerScript','user_checkins'); 
    142139               # call API 
    143140               $params = array( 
     
    145142               ); 
    146143               $rsp = foursquareUtils::api($this->oauth,'users/self/checkins',$params); 
    147                //echo '<pre style="text-align:left;">'.print_r($rsp,true).'</pre>';exit(1); 
     144                
    148145               if ($rsp && $rsp->checkins->count) 
    149146               { 
     
    151148                     
    152149                    # Parse response 
    153                     $records = null; 
    154150                    $i = 0; 
    155151                    foreach($rs as $record) 
     
    189185                         $i++; 
    190186                    } 
    191                     # Create cache file 
    192                     if (!empty($records)) { 
    193                          soCialMeCacheFile::write($file_user_checkins,'enc',soCialMeUtils::encode($records)); 
    194                     } 
     187               } 
     188                
     189               # Set cache file 
     190               if (empty($records)) { 
     191                    soCialMeCacheFile::touch($file,'enc'); 
     192               } 
     193               else { 
     194                    soCialMeCacheFile::write($file,'enc',soCialMeUtils::encode($records)); 
    195195               } 
    196196          } 
  • plugins/dcLibFoursquare/index.php

    r2955 r2964  
    1111# -- END LICENSE BLOCK ------------------------------------ 
    1212 
    13 // super admin must create an app with multiblog's admin url 
    14 // admin must create an app with blog's public url 
    15  
    16 dcPage::check('admin'); 
     13dcPage::checkSuper(); 
    1714 
    1815$s_oauth_admin = foursquareUtils::decodeApp('admin'); 
    19 if (!empty($_POST['superadminsave']) && $core->auth->isSuperAdmin()) 
     16if (!empty($_POST['superadminsave'])) 
    2017{ 
    2118     $s_oauth_admin = foursquareUtils::encodeApp('admin',$_POST['oauth_admin_client_id'],$_POST['oauth_admin_client_secret'],$_POST['oauth_admin_redirect_uri']); 
     
    2421echo  
    2522'<html><head><title>'.__('Foursquare manager').'</title>'. 
    26 '</head><body><h2>'.__('Foursquare manager').'</h2>'; 
     23'</head><body><h2>'.__('Foursquare manager').'</h2>'. 
     24'<fieldset><legend>'.__('Register multiblog administration pages').'</legend>'. 
     25'<form action="'.$p_url.'" method="post" id="form-superadmin">'; 
    2726 
    28 # Super admin part (for admin pages) 
    29 if ($core->auth->isSuperAdmin()) 
     27if (empty($s_oauth_admin['client_id'])) 
    3028{ 
    31      echo   
    32      '<fieldset><legend>'.__('Register multiblog administration pages').'</legend>'. 
    33      '<form action="'.$p_url.'" method="post" id="form-superadmin">'; 
    34       
    35      if (empty($s_oauth_admin['client_id'])) 
    36      { 
    37           echo  
    38           '<p>'.__('In order to use Foursquare on your multiblog administration pages, you must first create a foursquare app.').'</p>'. 
    39           '<ul>'. 
    40           '<li>1) <a href="https://foursquare.com/oauth/">'.__('Go to foursquare application registration page').'</a></li>'. 
    41           '<li>2) '.__('Enter your multiblog name as your application name').'</li>'. 
    42           '<li>3) '.sprintf(__('Enter your multiblog administration URL as your app URL ( %s )'),DC_ADMIN_URL).'</li>'. 
    43           '<li>4) '.__('When its done:').'</li>'. 
    44           '<li><label>'.__('Enter your new App ID here:').' '.form::field(array('oauth_admin_client_id'),100,255,'').'</label></li>'. 
    45           '<li><label>'.__('Enter your new App Secret here:').' '.form::field(array('oauth_admin_client_secret'),100,255,'').'</label></li>'. 
    46           '<li><label>'.__('Confirm your redirect URL (admin URL) here:').' '.form::field(array('oauth_admin_redirect_uri'),100,255,'').'</label></li>'. 
    47           '</ul>'. 
    48           '<p><input type="submit" name="superadminsave" value="'.__('save').'" />'; 
    49      } 
    50      else 
    51      { 
    52           echo 
    53           '<p>'.__('You have already registered a foursquare app.').'</p>'. 
    54           '<ul>'. 
    55           '<li>'.sprintf(__('Application ID: %s'),$s_oauth_admin['client_id']).'</li>'. 
    56           '<li>'.sprintf(__('Application secret: %s'),$s_oauth_admin['client_secret']).'</li>'. 
    57           '<li>'.sprintf(__('Redirect URL: %s'),$s_oauth_admin['redirect_uri']).'</li>'. 
    58           '</ul>'. 
    59           form::hidden(array('oauth_admin_client_id'),''). 
    60           form::hidden(array('oauth_admin_client_secret'),''). 
    61           form::hidden(array('oauth_admin_redirect_uri'),''). 
    62           '<p><input type="submit" name="superadminsave" value="'.__('delete').'" />'; 
    63      } 
    6429     echo  
    65      $core->formNonce().'</p>'. 
    66      '</form>'. 
    67      '</fieldset>'; 
     30     '<p>'.sprintf(__('In order to use %s on your blog, you must first create a %s app.'),'Foursquare','Foursquare').'</p>'. 
     31     '<ul>'. 
     32     '<li>1) <a href="https://foursquare.com/oauth/">'.sprintf(__('Go to %s application registration page'),'Foursquare').'</a></li>'. 
     33     '<li>2) '.__('Enter your multiblog name as your application name').'</li>'. 
     34     '<li>3) '.sprintf(__('Enter your multiblog administration URL as your app URL ( %s )'),DC_ADMIN_URL).'</li>'. 
     35     '<li>4) '.__('When its done:').'</li>'. 
     36     '<li><label>'.__('Enter your new App ID here:').' '.form::field(array('oauth_admin_client_id'),100,255,'').'</label></li>'. 
     37     '<li><label>'.__('Enter your new App Secret here:').' '.form::field(array('oauth_admin_client_secret'),100,255,'').'</label></li>'. 
     38     '<li><label>'.__('Confirm your redirect URL (admin URL) here:').' '.form::field(array('oauth_admin_redirect_uri'),100,255,'').'</label></li>'. 
     39     '</ul>'. 
     40     '<p><input type="submit" name="superadminsave" value="'.__('save').'" />'; 
    6841} 
    6942else 
    7043{ 
    71      echo '<p>'._('This part is reserved to a super admin.').'</p>'; 
     44     echo 
     45     '<p>'.sprintf(__('You have already registered a %s app.'),'Foursquare').'</p>'. 
     46     '<ul>'. 
     47     '<li>'.sprintf(__('Application ID: %s'),$s_oauth_admin['client_id']).'</li>'. 
     48     '<li>'.sprintf(__('Application secret: %s'),$s_oauth_admin['client_secret']).'</li>'. 
     49     '<li>'.sprintf(__('Redirect URL: %s'),$s_oauth_admin['redirect_uri']).'</li>'. 
     50     '</ul>'. 
     51     form::hidden(array('oauth_admin_client_id'),''). 
     52     form::hidden(array('oauth_admin_client_secret'),''). 
     53     form::hidden(array('oauth_admin_redirect_uri'),''). 
     54     '<p><input type="submit" name="superadminsave" value="'.__('delete').'" />'; 
    7255} 
    73  
    7456echo  
    7557$core->formNonce().'</p>'. 
  • plugins/dcLibFoursquare/release.txt

    r2955 r2964  
     10.3 20110220 
     2 * Followed soCialMe new system 
     3 * Fixed admin right 
     4 
    150.2-alpha2 20110218 
    26 * First public release of Foursquare libraries for Dotclear 
Note: See TracChangeset for help on using the changeset viewer.

Sites map