コード例 #1
0
ファイル: myApiTabs.php プロジェクト: rhumme/myApi
	function onAfterInitialise(){
		global $mainframe;
		if(!class_exists('plgSystemmyApiConnect') || $mainframe->isAdmin()) 
			return;
		
		$facebook = plgSystemmyApiConnect::getFacebook();
		$signedRequest = $facebook->getSignedRequest();
		$session =& JFactory::getSession();
		if(is_array($signedRequest)){
			JRequest::setVar('tmpl','component');
			if(isset($signedRequest['user_id'])){
				$user = JFactory::getUser();
				if($user->guest){
					global $mainframe;
					$options['uid'] = $signedRequest['user_id'];
					$mainframe->login($signedRequest['user_id'],$options);
				}
			}
		}
		$method = $_SERVER['REQUEST_METHOD'];  
		if($session->get( 'fbtmpl' ) == '1'){
			JRequest::setVar('tmpl','component');
		}
		
		if(JRequest::getVar('tmpl') == 'component')
			$session->set( 'fbtmpl','1');
	}
コード例 #2
0
ファイル: helper.php プロジェクト: rhumme/myApi
	function getPageLink($id){
		try {
			$facebook = plgSystemmyApiConnect::getFacebook();
			$page = $facebook->api('/'.$id);
			return $page['link'];
		}catch (FacebookApiException $e) {
			error_log($e);
		}
	}
コード例 #3
0
ファイル: realtime.php プロジェクト: rhumme/myApi
	function deleteSubscriptions(){
		global $mainframe;
		$facebook = plgSystemmyApiConnect::getFacebook();
		try{
			foreach($_POST['cid'] as $object){
				$facebook->api('/'.$facebook->getAppId().'/subscriptions','delete',array('access_token' => $this->getRealTimeAccess(),'object' => $object));
			}
			JFactory::getApplication()->enqueueMessage( JText::_('SUBSCRIPTIONS_DELETED') );
		} catch (FacebookApiException $e) {
			JError::raiseNotice( 100, $e->__toString() );
			$mainframe->redirect('index.php?option=com_myapi&view=realtime');
		}
		return;
	}
コード例 #4
0
ファイル: myApiAuth.php プロジェクト: rhumme/myApi
	function onAuthenticate($uid, $options, &$response )
    {
		if(!file_exists(JPATH_SITE.DS.'plugins'.DS.'system'.DS.'myApiConnectFacebook.php')){ return; }
		if(isset($options['group'])){
			if($options['group']!="Public Backend"){
				return;
			}	
		}
      	if(!is_array($uid)){
			$db =& JFactory::getDBO();
			
			$query = "SELECT #__users.id,#__myapi_users.access_token FROM ".$db->nameQuote('#__myapi_users')." JOIN #__users ON #__myapi_users.userId = #__users.id WHERE ".$db->nameQuote('uid')." = ".$db->quote($uid)." AND #__users.block = '0'";
			$db->setQuery( $query );
			$db->query();
			$result = $db->loadAssoc();
			$id = $result['id'];
			if($id != ''){      
				if($result['access_token'] == ''){
					$facebook = plgSystemmyApiConnect::getFacebook();
					$facebookSession = $facebook->getSession();
					$query = "UPDATE ".$db->nameQuote('#__myapi_users')." SET ".$db->nameQuote('access_token')." = ".$db->nameQuote($facebookSession['access_token'])." WHERE ".$db->nameQuote('uid')." = ".$db->quote($uid);
					$db->setQuery($query);
					$db->query();	
				}
				 
				$user = JFactory::getUser($id);
				$response->status			= JAUTHENTICATE_STATUS_SUCCESS;
				$response->error_message	= '';
				$response->username = $user->username;
				return true;
			}
			else{
				$response->status = JAUTHENTICATE_STATUS_FAILURE;
				$response->error_message = JText::_('NOT_LINKED');
				return false;
			}
		}
	 }
コード例 #5
0
ファイル: myApiSend.php プロジェクト: rhumme/myApi
	function onBeforeDisplayContent( &$article, &$params, $limitstart ){
		if(!file_exists(JPATH_SITE.DS.'plugins'.DS.'system'.DS.'myApiConnectFacebook.php') || (!array_key_exists('category',$article) && !isset($params->showK2Plugins)  )){ return; }
		
		//this may fire fron a component other than com_content
		if((@$article->id != '') && (@$_POST['fb_sig_api_key'] == '')){
			$doc = & JFactory::getDocument();
			
			$plugin = & JPluginHelper::getPlugin('content', 'myApiSend');

			// Load plugin params info
			$myapiparama = new JParameter($plugin->params);
			
			$send_sections 		= $myapiparama->get('send_sections');
			$send_categories 	= $myapiparama->get('send_categories');
			$send_show_on 		= $myapiparama->get('send_show_on');
			$layout_style 		= $myapiparama->get('layout_style');
			$show_faces 		= $myapiparama->get('show_faces');
			$color_scheme 		= $myapiparama->get('color_scheme');
			$verb 				= $myapiparama->get('verb');
			$width 				= $myapiparama->get('width');
			$send_style 		= $myapiparama->get('send_style');
			$font 				= $myapiparama->get('send_font');
			$ref 				= $myapiparama->get('send_ref');
			$show_send 			= $myapiparama->get('send_send');
			$position			= $myapiparama->get('position','myApiShareTop');
			$send_show 			= false;
		
			$facebook = plgSystemmyApiConnect::getFacebook();
			
			if(isset($article->sectionid)){
				if( is_array($send_sections) ){	
					foreach($send_sections as $id){ if($id == $article->sectionid) $send_show = true;  }
				}
				elseif($send_sections == $article->sectionid) $send_show = true;
			}
			
			if(isset($article->category)){
				if( is_array($send_categories) ){	
					foreach($send_categories as $id){ if($id == $article->category) $send_show = true; }
				}
				elseif($send_categories == $article->category) $send_show = true;
			}
			
			if(($send_show) || ($send_show_on == 'all')){
				require_once(JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php');
				
				if(isset($article->slug)){
					require_once(JPATH_SITE.DS.'components'.DS.'com_content'.DS.'helpers'.DS.'route.php');
					$link = ContentHelperRoute::getArticleRoute($article->slug, $article->catslug, $article->sectionid);
				}elseif(method_exists('K2HelperRoute','getItemRoute')){
					$link = K2HelperRoute::getItemRoute($article->id.':'.urlencode($article->alias),$article->catid.':'.urlencode($article->category->alias));
				}else{
					error_log('myApi unable to calculate link for the article id '.$article->id);
					return;
				}
				$u =& JURI::getInstance( JURI::base().$link );
				$port 	= ($u->getPort() == '') ? '' : ":".$u->getPort();
				$link = 'http://'.$u->getHost().$port.$u->getPath().'?'.$u->getQuery();
				$button	= '<fb:send href="'.$link.'" colorscheme="'.$color_scheme.'" font="'.$font.'" ref="'.$ref.'"></fb:send>';
		
				require_once(JPATH_SITE.DS.'plugins'.DS.'system'.DS.'myApiDom.php');
				$article->text = myApiButtons::addToTable($article->text,$position,$button);
			}
		}
	}
コード例 #6
0
ファイル: controller.php プロジェクト: rhumme/myApi
	function save_myApiTabs(){
		$post 		= JRequest::get('post');	
		$facebook 	= plgSystemmyApiConnect::getFacebook();
		try{
			jimport( 'joomla.application.menu' );
			$data['tab_default_name']	= $post['params']['tab_name'];
			$data['profile_tab_url'] 	= JRoute::_(JURI::root()."index.php?Itemid=".$post['params']['tab_url']);
			$data['edit_url'] = $data['profile_tab_url'];
			$app_update = $facebook->api(array('method' => 'admin.setAppProperties','access_token' => $facebook->getAppId().'|'.$facebook->getApiSecret(),'properties'=> json_encode($data)));
			$this->setRedirect( 'index.php?option=com_myapi&view=plugin&plugin=myApiTabs',JText::_('TAB_SAVED'));
		}catch (FacebookApiException $e) {
			$this->setRedirect( 'index.php?option=com_myapi&view=plugin&plugin=myApiTabs',JText::_('TAB_SAVED_ERROR').$e);
		}
	}
コード例 #7
0
ファイル: controller.php プロジェクト: rhumme/myApi
	function newUser()
	{
		global $mainframe;

		$return = base64_decode(JRequest::getVar('return',''));
		// Get required system objects
		$user 		= clone(JFactory::getUser());
		$pathway 	=& $mainframe->getPathway();
		$config		=& JFactory::getConfig();
		$authorize	=& JFactory::getACL();
		$document   =& JFactory::getDocument();

		$usersConfig = &JComponentHelper::getParams( 'com_users' );
		// Initialize new usertype setting
		$newUsertype = $usersConfig->get( 'new_usertype' );
		if (!$newUsertype) {
			$newUsertype = 'Registered';
		}
		
		global $fbUser;
		if(!is_object($fbUser)){
			require_once JPATH_ADMINISTRATOR.DS.'components'.DS.'com_myapi'.DS.'models'.DS.'facebook.php';
			$facebookmodel = new myapiModelfacebook;  //Bring the myAPI facebook model
			$fbUser = $facebookmodel->getLoggedInUser();
		}
		
		if($fbUser['username'] != ''){
			$newuserName = $fbUser['username'];
		}else{
			$newuserName = str_replace(' ', '',$fbUser['name']);
		}
		
		$db = JFactory::getDBO();
		$uniqueUsername = false;
		$i = 0;
		
		while(!$uniqueUsername){
			$tryUsername = $newuserName;
			if($i >= 1){
				$tryUsername = $tryUsername.$i;	
			}
			
			$query = "SELECT COUNT(".$db->nameQuote('id').") FROM ".$db->nameQuote('#__users')." WHERE ".$db->nameQuote('username')." = ".$db->quote($tryUsername);
			$db->setQuery($query);
			$count = $db->loadResult();
			if($count == 0){
				$uniqueUsername = true;
				$newuserName = $tryUsername;
			}
				$i++;
			
		}
		
		jimport('joomla.user.helper');
		$newUser['name'] = $fbUser['name'];
		$newUser['username'] = $newuserName;
		$newUser['password'] = $newUser['password2'] = JUserHelper::genRandomPassword();
		$newUser['email'] = $fbUser['email'];
		
		// Bind the post array to the user object
		if (!$user->bind( $newUser, 'usertype' )) {
			$message = $user->getError();
			$this->setRedirect($return,$message);
		}
		
		// Set some initial user values
		$user->set('id', 0);
		$user->set('usertype', $newUsertype);
		$user->set('gid', $authorize->get_group_id( '', $newUsertype, 'ARO' ));

		$date =& JFactory::getDate();
		$user->set('registerDate', $date->toMySQL());

		// If user activation is turned on, we need to set the activation information
		$useractivation = $usersConfig->get( 'useractivation' );
		
		// If there was an error with registration, set the message and display form
		if ( $result = !$user->save() ){
			$message = $user->getError();
			$this->setRedirect($return,$message);
		}elseif($fbUser['id'] != ''){
			$db = JFactory::getDBO();
			$facebook = plgSystemmyApiConnect::getFacebook();
			$facebookSession = $facebook->getSession();
			$query = "INSERT INTO ".$db->nameQuote('#__myapi_users')." (userId,uid,access_token) VALUES(".$db->quote($user->id).",".$db->quote($fbUser['id']).",".$db->quote($facebookSession['access_token']).")";
			$db->setQuery($query);
			$db->query();
			
			//Sync Community Builder
			$sql_sync = "INSERT IGNORE INTO #__comprofiler(id,user_id) SELECT id,id FROM #__users WHERE #__users.id =".$db->Quote($user->id);
			$db->setQuery($sql_sync);
			$db->query();
			
			// Send registration confirmation mail
			$password = $newUser['password'];
			$password = preg_replace('/[\x00-\x1F\x7F]/', '', $password); //Disallow control chars in the email
			myapiController::_sendMail($user, $password);
	
			$message = JText::_( 'LOGGED_IN_FACEBOOK' );
			
			$options['fake_array'] = "This mainframe->login needs and array passed to it";
			$error = $mainframe->login($fbUser['id'],$options);
			$user = JFactory::getUser();
			
			JRequest::setVar('K2UserForm',$a = 1);
			JRequest::setVar('gender',$a = substr($fbUser['gender'],0,1)); 
			JRequest::setVar('url',$a = $fbUser['link']);
			JRequest::setVar('description',$a = $fbUser['bio']);
			
			$dispatcher =& JDispatcher::getInstance();
			$dispatcher->trigger('onAfterStoreUser', array($user->getProperties(), true, $result,''));
			
			MyapiController::syncPhoto($fbUser['id']);
			$this->setRedirect($return,$message);
		}else{
			$this->setRedirect($return,JText::_('NO_UID_FOUND'));
		}
	}
コード例 #8
0
ファイル: view.html.php プロジェクト: rhumme/myApi
	function _myApiTabs(){
		$facebook = plgSystemmyApiConnect::getFacebook();
		$pageLink = 'http://www.facebook.com/apps/application.php?id='.$facebook->getAppId();
		$sideContent = JText::sprintf('MYAPITABS_SIDE',$pageLink).'<br />'.JHTML::_('image', 'plugins/system/addtab.png', null);
		$this->assignRef('aside',$sideContent);
	}
コード例 #9
0
ファイル: facebook.php プロジェクト: rhumme/myApi
	function getLoggedInUserLikes() {
		$facebook = plgSystemmyApiConnect::getFacebook();
		try {
		  $likes = $facebook->api('/me/likes');
		  
		} catch (FacebookApiException $e) {
		  error_log($e);
		  return false;
		}
		return $likes;
	}
コード例 #10
0
ファイル: mod_myapi_fbFan.php プロジェクト: rhumme/myApi
 **   myApi_fbfan is free software: you can redistribute it and/or modify   **
 **   it under the terms of the GNU General Public License as published by  **
 **   the Free Software Foundation, either version 3 of the License, or	    **	
 **   (at your option) any later version.                                   **
 **                                                                         **
 **   myApi_fbfan is distributed in the hope that it will be useful,	    **
 **   but WITHOUT ANY WARRANTY; without even the implied warranty of	    **
 **   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         **
 **   GNU General Public License for more details.                          **
 **                                                                         **
 **   You should have received a copy of the GNU General Public License	    **
 **   along with myApi_fbfan.  If not, see <http://www.gnu.org/licenses/>.	**
 **                                                                         **			
 *****************************************************************************/

if(!class_exists('plgSystemmyApiConnect') || !$this->_facebook = plgSystemmyApiConnect::getFacebook())
	return;
			 
$classSfx 		= $params->get('moduleclass_sfx');
$width 			= $params->get('fan_width');
$height 		= $params->get('fan_height');
$header		 	= $params->get('fan_header');
$stream 		= $params->get('fan_stream');
$scheme 		= $params->get('fan_scheme');
$faces	 		= $params->get('fan_faces');
$pageLink 		= $params->get('fan_href');

if($pageLink == ''){
	require_once (dirname(__FILE__).DS.'helper.php');
	
	$plugin =& JPluginHelper::getPlugin('system', 'myApiConnect');
コード例 #11
0
ファイル: myApiComment.php プロジェクト: rhumme/myApi
	function addFbJs($xid){
		global $fbAsyncInitJs;
		$facebook = plgSystemmyApiConnect::getFacebook();
		$app_id = $facebook->getAppId();
		$fbAsyncInitJs .= "var query".$xid." = FB.Data.query('select id from comment where xid=\"$xid\" ; '); query".$xid.".wait(function(result) { if(result.length > 0){ $('".$xid."commentLink').setHTML('".JText::_('ADD_COMMENT')." ('+result.length+')'); } });";	
	}
コード例 #12
0
ファイル: mod_myapi_fbLogin.php プロジェクト: rhumme/myApi
$query 	= ($u->getQuery() == '') ? '' : '?'.$u->getQuery();
$redirect_login	= base64_encode($host->getScheme().'://'.$host->getHost().$port.$u->getPath().$query); 

if($user->guest){
	$joomla_login = $params->get('login_joomlaLogin');
	$loginText = $params->get('login_button_text');
	require(JModuleHelper::getLayoutPath('mod_myapi_fbLogin','guest'));	
	
}else{
	$unlink	= $params->get('login_unlink','0');
	
	$db = JFactory::getDBO();
	$query = "SELECT ".$db->nameQuote('uid')." FROM ".$db->nameQuote('#__myapi_users')." WHERE userId =".$db->quote($user->id);
	$db->setQuery($query);
	$db->query();
	$num_rows = $db->getNumRows();
	if($num_rows == 0){
		$linked = false;
		$facebook = plgSystemmyApiConnect::getFacebook();
		$loginUrl = $facebook->getLoginUrl(array('next' => JURI::base().'index.php?option=com_myapi&task=newLink&return='.$redirect_login ));
		$linkText = $params->get('login_link_text');
	}
	else { 
		$linked = true; 
		//Get User Avatar
		$avatar = $myApiModel->getAvatar();
	}
	require(JModuleHelper::getLayoutPath('mod_myapi_fbLogin','user'));	
}

?>