array( 'controller' => 'social_ui', 'path' => null, 'ui' => 'social_form_ui', 'uipath' => null ), ); protected $adminMenu = array( // 'main/list' => array('caption'=> LAN_MANAGE, 'perm' => 'P'), // 'main/create' => array('caption'=> LAN_CREATE, 'perm' => 'P'), 'main/configure' => array('caption'=> LAN_CONFIGURE, 'perm' => 'P'), 'main/prefs' => array('caption'=> LAN_PREFS, 'perm' => 'P'), ); protected $adminMenuAliases = array( 'main/edit' => 'main/list' ); protected $menuTitle = 'Social'; } class social_ui extends e_admin_ui { protected $pluginTitle = 'Social'; protected $pluginName = 'social'; // protected $eventName = 'social-social'; // remove comment to enable event triggers in admin. // protected $table = 'social'; // protected $pid = 'interview_id'; protected $perPage = 10; protected $batchDelete = true; // protected $batchCopy = true; // protected $sortField = 'somefield_order'; // protected $orderStep = 10; // protected $tabs = array('Tabl 1','Tab 2'); // Use 'tab'=>0 OR 'tab'=>1 in the $fields below to enable. // protected $listQry = "SELECT * FROM `#tableName` WHERE field != '' "; // Example Custom Query. LEFT JOINS allowed. Should be without any Order or Limit. protected $listOrder = ''; protected $fields = array(); protected $fieldpref = array(); protected $preftabs = array("Sharing", 'Facebook Comments', 'Facebook Menu', 'Twitter Menu', ); protected $prefs = array( 'facebook_comments_limit' => array('title'=> 'Limit', 'type'=>'number', 'tab'=>1, 'data' => 'int','help'=>'Number of comments to display.'), 'facebook_comments_theme' => array('title'=> 'Theme', 'type'=>'dropdown', 'tab'=>1, 'writeParms'=>array('optArray'=>array('light'=>'Light','dark'=>'Dark')), 'data' => 'str','help'=>''), 'facebook_comments_loadingtext' => array('title'=> 'Text while loading', 'type'=>'text', 'tab'=>1, 'data' => 'str', 'writeParms'=>array('placeholder'=>'Loading...'), 'help'=>''), 'facebook_like_menu_theme' => array('title'=> 'Theme', 'type'=>'dropdown', 'tab'=>2, 'writeParms'=>array('optArray'=>array('light'=>'Light','dark'=>'Dark')), 'data' => 'str'), 'facebook_like_menu_action' => array('title'=> 'Action', 'type'=>'dropdown', 'tab'=>2, 'writeParms'=>array('optArray'=>array('like'=>'Like','recommend'=>'Recommend')), 'data' => 'str'), 'facebook_like_menu_width' => array('title'=> 'Width', 'type'=>'number', 'tab'=>2, 'data' => 'int','help'=>'Width in px'), // 'facebook_like_menu_ref' => array('title'=> "Referrer", 'type'=>'text', 'tab'=>2, 'data' => 'str', 'writeParms'=>'size=xxlarge', 'help'=>'Leave blank to use Site Url'), 'twitter_menu_theme' => array('title'=> 'Theme', 'type'=>'dropdown', 'tab'=>3, 'writeParms'=>array('optArray'=>array('light'=>'Light','dark'=>'Dark')), 'data' => 'str'), 'twitter_menu_height' => array('title'=> 'Height', 'type'=>'number', 'tab'=>3, 'data' => 'int','help'=>'Height in px'), 'twitter_menu_limit' => array('title'=> 'Limit', 'type'=>'number', 'tab'=>3, 'data' => 'int','help'=>'Number of tweets to display.'), 'sharing_mode' => array('title'=> 'Display Mode', 'type'=>'dropdown', 'tab'=>0, 'writeParms'=>array('optArray'=>array('normal'=>'Normal','dropdown'=>'Dropdown','off'=>'Disabled')), 'data' => 'str','help'=>''), 'sharing_hashtags' => array('title'=> 'Hashtags', 'type'=>'tags', 'tab'=>0, 'data' => 'str','help'=>'Excluding the # symbol.'), 'sharing_providers' => array('title'=> 'Providers', 'type'=>'checkboxes', 'tab'=>0, 'writeParms'=>array(), 'data' => 'str','help'=>''), ); protected $social_logins = array(); protected $social_external = array(); public function init() { if(!empty($_POST['save_social']) ) { $cfg = e107::getConfig(); $cfg->setPref('social_login', $_POST['social_login']); $cfg->setPref('social_login_active', $_POST['social_login_active']); $cfg->setPref('xurl', $_POST['xurl']); $cfg->save(true, true, true); } $tp = e107::getParser(); require_once(e_PLUGIN."social/e_shortcode.php"); $obj = new social_shortcodes; $providers = $obj->getProviders(); foreach($providers as $k=>$v) { $this->prefs['sharing_providers']['writeParms']['optArray'][$k] = $k; } // print_a($bla); // Single/ Social Login / / copied from hybridAuth config.php so it's easy to add more. // Used Below. $this->social_logins = array ( // openid providers "OpenID" => array ( "enabled" => true ), "Yahoo" => array ( "enabled" => true ), "AOL" => array ( "enabled" => true ), "Facebook" => array ( "enabled" => true, "keys" => array ( "id" => "", "secret" => "" ), "trustForwarded" => false, // A comma-separated list of permissions you want to request from the user. See the Facebook docs for a full list of available permissions: http://developers.facebook.com/docs/reference/api/permissions. "scope" => "", // The display context to show the authentication page. Options are: page, popup, iframe, touch and wap. Read the Facebook docs for more details: http://developers.facebook.com/docs/reference/dialogs#display. Default: page "display" => "" ), "Foursquare" => array ( "enabled" => true, "keys" => array ( "id" => "", "secret" => "" ) ), "Github" => array ( "enabled" => true, "keys" => array ( "id" => "", "secret" => "" ) ), "Google" => array ( "enabled" => true, "keys" => array ( "id" => "", "secret" => "" ), "scope" => "" ), /* "Instagram" => array ( "enabled" => true, "keys" => array ( "id" => "", "secret" => "" ) ),*/ "LinkedIn" => array ( "enabled" => true, "keys" => array ( "key" => "", "secret" => "" ) ), // windows live "Live" => array ( "enabled" => true, "keys" => array ( "id" => "", "secret" => "" ) ), /* "MySpace" => array ( "enabled" => true, "keys" => array ( "key" => "", "secret" => "" ) ), */ "Steam" => array ( "enabled" => true, "keys" => array ( "key" => "" ) ), "Twitter" => array ( "enabled" => true, "keys" => array ( "key" => "", "secret" => "" ) ), ); $this->social_external = array( "Facebook" => "https://developers.facebook.com/apps", "Twitter" => "https://dev.twitter.com/apps/new", "Google" => "https://code.google.com/apis/console/", "Live" => "https://manage.dev.live.com/ApplicationOverview.aspx", "LinkedIn" => "https://www.linkedin.com/secure/developer", "Foursquare" => "https://www.foursquare.com/oauth/", "Github" => "https://github.com/settings/applications/new", "Steam" => "http://steamcommunity.com/dev/apikey", "Instagram" => "http://instagram.com/developer" ); } // ------- Customize Create -------- public function beforeCreate($new_data) { return $new_data; } public function afterCreate($new_data, $old_data, $id) { // do something } public function onCreateError($new_data, $old_data) { // do something } // ------- Customize Update -------- public function beforeUpdate($new_data, $old_data, $id) { return $new_data; } public function afterUpdate($new_data, $old_data, $id) { // do something } public function onUpdateError($new_data, $old_data, $id) { // do something } function renderHelp() { $this->testUrl = SITEURL."?route=system/xup/test"; $notice = "Note: In most cases you will need to obtain an id and secret key from one of the providers. Click the blue links to the right to configure.
You may test your configuration with the following URL:
".$this->testUrl.""; $callBack = SITEURL."index.php"; $notice .= "

Your callback URL is:
".$callBack.""; return array("caption"=>"Help",'text'=> $notice); } // optional - a custom page. public function configurePage() { $ns = e107::getRender(); $frm = e107::getForm(); $pref = e107::pref('core'); // e107::getMessage()->addInfo($notice); $text = "
".$frm->radio_switch('social_login_active', $pref['social_login_active'])."
Allows users to signup/login with their social media accounts. When enabled, this option will still allow users to signup/login even if the core user registration system above is disabled.
"; if(!is_array($pref['social_login'])) { $pref['social_login'] = array(); } foreach($this->social_logins as $prov=>$val) { $textKeys = ''; $textScope = ''; $keyCount= array(); $label = varset($this->social_external[$prov]) ? "".$prov."" : $prov; $radio_label = strtolower($prov); $text .= " "; foreach($val as $k=>$v) { switch ($k) { case 'enabled': $eopt = array('class'=>'e-expandit'); $textEnabled = $frm->radio_switch('social_login['.$prov.'][enabled]', vartrue($pref['social_login'][$prov]['enabled']),'','',$eopt); break; case 'keys': // $cls = vartrue($pref['single_login'][$prov]['keys'][$tk]) ? "class='e-hideme'" : ''; $sty = vartrue($pref['social_login'][$prov]['keys'][vartrue($tk)]) ? "" : "e-hideme"; // $text .= "
"; foreach($v as $tk=>$idk) { $eopt = array( 'size'=>'block-level'); $keyCount[] = 1; $textKeys .= "
"; } // $text .= ""; break; case 'scope': $textScope .= $frm->hidden('social_login['.$prov.'][scope]','email'); break; default: break; } } if(empty($keyCount)) { $textKeys = ""; } elseif(count($keyCount) == 1) { $textKeys .= ""; } $text .= $textKeys.""; $text .= " "; } $text .= "
Provider Key/ID Secret Signup/Login
".$frm->text('social_login['.$prov.'][keys]['.$tk.']', vartrue($pref['social_login'][$prov]['keys'][$tk]), 100, $eopt)."   ".$textEnabled.$textScope."
"; // ------------------------------- // // $text2 = " "; //XXX XURL Definitions. $xurls = array( 'facebook' => array('label'=>"Facebook", "placeholder"=>"eg. https://www.facebook.com/e107CMS"), 'twitter' => array('label'=>"Twitter", "placeholder"=>"eg. https://twitter.com/e107"), 'youtube' => array('label'=>"Youtube", "placeholder"=>"eg.https://youtube.com/e107Inc"), 'google' => array('label'=>"Google+", "placeholder"=>""), 'linkedin' => array('label'=>"LinkedIn", "placeholder"=>"eg. http://www.linkedin.com/groups?home=&gid=1782682"), 'github' => array('label'=>"Github", "placeholder"=>"eg. https://github.com/e107inc"), 'flickr' => array('label'=>"Flickr", "placeholder"=>""), 'instagram' => array('label'=>"Instagram", "placeholder"=>""), 'pinterest' => array('label'=>"Pinterest", "placeholder"=>""), 'vimeo' => array('label'=>"Vimeo", "placeholder"=>""), ); foreach($xurls as $k=>$var) { $keypref = "xurl[".$k."]"; $text_label = "xurl-".$k.""; $def = "XURL_". strtoupper($k); $opts = array('size'=>'xxlarge','placeholder'=> $var['placeholder']); $text2 .= " "; } $text2 .= "
".$frm->text($keypref, $pref['xurl'][$k], false, $opts)."
Used by some themes to provide a link to your ".$var['label']." page. (".$def.")
"; $tabs = array(); $tabs[] = array('caption'=>"Applications", 'text'=>$text); $tabs[] = array('caption'=>'Pages', 'text'=>$text2); $ret = $frm->open('social','post',null, 'class=form-horizontal').$frm->tabs($tabs); $ret .= "
".$frm->button('save_social',1,'submit',LAN_SAVE)."
"; $ret .= $frm->close(); return $ret; } } class social_form_ui extends e_admin_form_ui { } new social_adminarea(); require_once(e_ADMIN."auth.php"); e107::getAdminUI()->runPage(); require_once(e_ADMIN."footer.php"); exit; ?>