function display($tpl = null) { $user = JFactory::getUser(); $providers = JFBCFactory::getAllProviders(); $providerData = array(); foreach ($providers as $provider) { if ($provider->appId && $provider->secretKey) { $userModel = JFBConnectModelUserMap::getUser($user->get('id'), $provider->systemName); $userData = $userModel->getData(); $providerInfo = new stdClass(); $providerInfo->profileUrl = $userData->params->get('data.profile_url'); if (empty($providerInfo->profileUrl)) { //JOOMLA 2.5 $providerInfo->profileUrl = $userData->params->get('profile_url'); } $providerInfo->isMapped = $userData->provider != null; $providerInfo->name = $provider->name; $providerInfo->provider = $provider; $providerInfo->systemName = $provider->systemName; $providerData[$provider->name] = $providerInfo; } } $this->providerData = $providerData; JFBCFactory::addStylesheet('jfbconnect.css'); parent::display($tpl); }
public function register($data = null) { //require_once (JPATH_COMPONENT.'/libraries/profile.php'); $mainframe = JFactory::getApplication(); $my = CFactory::getUser(); $config = CFactory::getConfig(); /** * Opengraph */ CHeadHelper::setType('website', JText::_('COM_COMMUNITY_REGISTER_NEW')); // Hide this form for logged in user if ($my->id) { $mainframe->enqueueMessage(JText::_('COM_COMMUNITY_REGISTER_ALREADY_USER'), 'warning'); return; } // If user registration is not allowed, show 403 not authorized. $usersConfig = JComponentHelper::getParams('com_users'); if ($usersConfig->get('allowUserRegistration') == '0') { //show warning message $this->addWarning(JText::_('COM_COMMUNITY_REGISTRATION_DISABLED')); return; } $fields = array(); $post = JRequest::get('post'); $isUseFirstLastName = CUserHelper::isUseFirstLastName(); $data = array(); $data['fields'] = $fields; $data['html_field']['jsname'] = empty($post['jsname']) ? '' : $post['jsname']; $data['html_field']['jsusername'] = empty($post['jsusername']) ? '' : $post['jsusername']; $data['html_field']['jsemail'] = empty($post['jsemail']) ? '' : $post['jsemail']; $data['html_field']['jsfirstname'] = empty($post['jsfirstname']) ? '' : $post['jsfirstname']; $data['html_field']['jslastname'] = empty($post['jslastname']) ? '' : $post['jslastname']; // $js = 'assets/validate-1.5.min.js'; // CFactory::attach($js, 'js'); $recaptcha = new CRecaptchaHelper(); $recaptchaHTML = $recaptcha->html(); $fbHtml = ''; if ($config->get('fbconnectkey') && $config->get('fbconnectsecret') && !$config->get('usejfbc')) { //CFactory::load( 'libraries' , 'facebook' ); $facebook = new CFacebook(); $fbHtml = $facebook->getLoginHTML(); } if ($config->get('usejfbc')) { if (class_exists('JFBCFactory')) { $providers = JFBCFactory::getAllProviders(); foreach ($providers as $p) { $fbHtml .= $p->loginButton(); } } } $tmpl = new CTemplate(); $content = $tmpl->set('data', $data)->set('recaptchaHTML', $recaptchaHTML)->set('config', $config)->set('isUseFirstLastName', $isUseFirstLastName)->set('fbHtml', $fbHtml)->fetch('register/base'); $appsLib = CAppPlugins::getInstance(); $appsLib->loadApplications(); $args = array(&$content); $appsLib->triggerEvent('onUserRegisterFormDisplay', $args); echo $this->_getProgressBar(1); echo $content; }
function __construct($params) { $this->params = $params; $this->user = JFactory::getUser(); $this->doc = JFactory::getDocument(); if (class_exists('JFBCFactory')) { $this->isJFBConnectInstalled = true; $this->providers = JFBCFactory::getAllProviders(); } $this->getPasswordAndProfileLinks(); }
protected function getOptions() { $options = array(); $options[] = JHtml::_('select.option', "--", "-- Select a Provider --"); $providers = JFBCFactory::getAllProviders(); foreach ($providers as $p) { $channels = $p->getChannelsOutbound(); if (count($channels) > 0) { $options[] = JHtml::_('select.option', strtolower($p->name), $p->name); } } return $options; }
public function getButtons() { if (!$this->exists()) { return; } $providers = JFBCFactory::getAllProviders(); $params = array('buttonSize' => 'icon_text_button'); $buttons = ''; foreach ($providers as $provider) { $buttons .= $provider->loginButton($params); } return $buttons; }
protected function getInput() { require_once JPATH_ADMINISTRATOR . '/components/com_jfbconnect/models/fields/providerloginbutton.php'; $html = array(); $data = $this->form->getValue($this->fieldname, $this->group, null); // Support for SCLogin module $loginbuttonstype = $this->form->getValue('loginbuttonstype', 'params', null); if (!$loginbuttonstype) { // Support for SCSocialWidget module $loginbuttonstype = $this->form->getValue('loginbuttonstype', 'params.widget_settings', 'default'); } if ($loginbuttonstype == 'default') { $noticeStyle = 'style="display:block"'; $buttonStyle = "display:none"; } else { $noticeStyle = 'style="display:none"'; $buttonStyle = "display:block"; } jimport('sourcecoast.utilities'); SCStringUtilities::loadLanguage('com_jfbconnect', JPATH_ADMINISTRATOR); $html[] = '<div class="fieldsocialbuttons">'; JFactory::getDocument()->addStyleDeclaration('.fieldsocialbuttons label { display: inline; float:left; } .fieldsocialbuttons input[type="radio"] { margin: 0 8px; } label.providername { width:60px; }'); $html[] = '<div style="clear:both"> </div>'; $html[] = '<fieldset id="loginbutton_custom_notice" ' . $noticeStyle . '>' . JText::_('COM_JFBCONNECT_LOGIN_BUTTON_CUSTOM_INSTRUCTIONS') . '</fieldset>'; $providerFound = false; foreach (JFBCFactory::getAllProviders() as $p) { if ($p->appId) { $providerFound = true; $value = is_array($data) && array_key_exists($p->systemName, $data) ? $data[$p->systemName] : 'icon_label.png'; $field = '<field type="providerloginbutton" label="Default Login Button" provider="' . $p->systemName . '" name="' . $p->systemName . '" required="true" style="' . $buttonStyle . '" />'; $element = new SimpleXMLElement($field); $node = new JFormFieldProviderloginbutton($this->form); $node->setup($element, $value, $this->group . '.' . $this->fieldname); $html[] = $node->getInput(); } } if (!$providerFound) { $html[] = '<label>No social networks are enabled. Please use the JFBConnect configuration area to set your App IDs and Secret Keys</label>'; } $html[] = '</div>'; return implode($html); }
function display($tpl = null) { JForm::addFieldPath(JPATH_ADMINISTRATOR . '/components/com_jfbconnect/models/fields'); $this->formLoad('config', JPATH_ADMINISTRATOR . '/components/com_jfbconnect/models/forms/config.xml'); $this->formBind('config', JFBCFactory::config()->getSettings()); foreach (JFBCFactory::getAllProviders() as $p) { $configPath = JPATH_SITE . '/components/com_jfbconnect/libraries/provider/' . strtolower($p->systemName) . '/config/'; JForm::addFieldPath($configPath . 'fields'); $this->formLoad($p->systemName, $configPath . 'config.xml'); $loginField = '<form>' . '<fieldset name="login_button" label="' . JText::_('COM_JFBCONNECT_PROVIDER_MENU_LOGIN_BUTTON') . '">' . '<field type="providerloginbutton" label="' . JText::_('COM_JFBCONNECT_CONFIG_LOGIN_BUTTON_DEFAULT_LABEL') . '" description="' . JText::_('COM_JFBCONNECT_CONFIG_LOGIN_BUTTON_DEFAULT_DESC') . '" provider="' . $p->systemName . '" name="' . $p->systemName . '_login_button" required="true" default="icon_label.png" />' . '</fieldset>' . '</form>'; $this->forms[$p->systemName]->load($loginField); $this->formBind($p->systemName, JFBCFactory::config()->getSettings()); } parent::display($tpl); }
function display($tpl = null) { $configModel = JFBCFactory::config(); $usermapModel = JFBCFactory::usermap(); $autotuneModel = JModelLegacy::getInstance('AutoTune', 'JFBConnectModel'); if (JFBCFactory::provider('facebook')->appId) { $appConfig = JFBCFactory::config()->get('autotune_app_config', null); if (!$appConfig || count($appConfig) == 0) { JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_MSG_RUN_AUTOTUNE', '<a href="index.php?option=com_jfbconnect&view=autotune">AutoTune</a>'), 'error'); } } $userCounts = array(); foreach (JFBCFactory::getAllProviders() as $p) { if ($p->appId) { $userCounts[$p->systemName] = $usermapModel->getTotalMappings($p->systemName); } } $this->configModel = $configModel; $this->autotuneModel = $autotuneModel; $this->usermapModel = $usermapModel; $this->userCounts = $userCounts; $this->addToolbar(); parent::display($tpl); }
private function getSelectedProviders($providerList) { if (!is_array($providerList)) { $providerList = str_replace("\r\n", ",", $providerList); $providerList = explode(',', $providerList); } $providers = array(); foreach ($providerList as $p) { if ($p) { $providers[] = JFBCFactory::provider(trim($p)); } } //For backwards compatibility: // - For Facebook, if no providers are specified, then show all providers // - For Others, if no providers are specified, just show the login button for that provider if (empty($providers)) { if ($this->provider->name == 'Facebook') { $providers = JFBCFactory::getAllProviders(); } else { $providers[] = $this->provider; } } return $providers; }
public function blockUnregister($uri = null) { $my = CFactory::getUser(); $config = CFactory::getConfig(); $usersConfig = JComponentHelper::getParams('com_users'); if ($my->id == 0) { $config = CFactory::getConfig(); if (empty($uri)) { $uri = CRoute::getURI(false); } $uri = base64_encode($uri); $tmpl = new CTemplate(); $fbHtml = ''; if ($config->get('fbconnectkey') && $config->get('fbconnectsecret') && !$config->get('usejfbc')) { $facebook = new CFacebook(); $fbHtml = $facebook->getLoginHTML(); } if ($config->get('usejfbc')) { if (class_exists('JFBCFactory')) { $providers = JFBCFactory::getAllProviders(); $fbHtml = ''; foreach ($providers as $p) { $fbHtml .= $p->loginButton(); } } } $tmpl->set('fbHtml', $fbHtml); $tmpl->set('return', $uri); $tmpl->set('allowUserRegister', $usersConfig->get('allowUserRegistration')); $tmpl->set('useractivation', $usersConfig->get('useractivation')); $html = $tmpl->fetch('guests.denied'); echo $html; return true; } return false; }
/** * Frontpage display * @param type $tpl */ public function display($tpl = null) { /** * Init variables */ $config = CFactory::getConfig(); $document = JFactory::getDocument(); $usersConfig = JComponentHelper::getParams('com_users'); $my = CFactory::getUser(); $model = CFactory::getModel('user'); /** * Opengraph */ CHeadHelper::setType('website', JText::sprintf('COM_COMMUNITY_FRONTPAGE_TITLE', $config->get('sitename'))); /** * Init document */ $feedLink = CRoute::_('index.php?option=com_community&view=frontpage&format=feed'); $feed = '<link rel="alternate" type="application/rss+xml" title="' . JText::_('COM_COMMUNITY_SUBSCRIBE_RECENT_ACTIVITIES_FEED') . '" href="' . $feedLink . '"/>'; $document->addCustomTag($feed); // Process headers HTML output $headerHTML = ''; $tmpl = new CTemplate(); $alreadyLogin = 0; /* User is logged */ if ($my->id != 0) { $headerHTML = $tmpl->fetch('frontpage.members'); $alreadyLogin = 1; } else { /* User is not logged */ $uri = CRoute::_('index.php?option=com_community&view=' . $config->get('redirect_login'), false); $uri = base64_encode($uri); $fbHtml = ''; /* Facebook login */ if ($config->get('fbconnectkey') && $config->get('fbconnectsecret') && !$config->get('usejfbc')) { $facebook = new CFacebook(); $fbHtml = $facebook->getLoginHTML(); } /* Joomla! Facebook Connect */ if ($config->get('usejfbc')) { if (class_exists('JFBCFactory')) { $providers = JFBCFactory::getAllProviders(); foreach ($providers as $p) { $fbHtml .= $p->loginButton(); } } } //hero image $heroImage = JURI::root() . 'components/com_community/assets/frontpage-image-default.jpg'; if (file_exists(COMMUNITY_PATH_ASSETS . 'frontpage-image.jpg')) { $heroImage = JURI::root() . 'components/com_community/assets/frontpage-image.jpg'; } else { if (file_exists(COMMUNITY_PATH_ASSETS . 'frontpage-image.png')) { $heroImage = JURI::root() . 'components/com_community/assets/frontpage-image.png'; } } //add the hero image as the image metatdata $imgMeta = '<meta property="og:image" content="' . $heroImage . '"/>'; $document->addCustomTag($imgMeta); $themeModel = CFactory::getModel('theme'); $settings = $themeModel->getSettings(); /* Generate header HTML for guest */ if ($settings['general']['enable-frontpage-login']) { $headerHTML = $tmpl->set('allowUserRegister', $usersConfig->get('allowUserRegistration'))->set('heroImage', $heroImage)->set('fbHtml', $fbHtml)->set('useractivation', $usersConfig->get('useractivation'))->set('return', $uri)->set('settings', $settings)->fetch('frontpage/guest'); } else { $headerHTML = ''; } } /* Get site members count */ $totalMembers = $model->getMembersCount(); $latestActivitiesData = $this->showLatestActivities(); $latestActivitiesHTML = $latestActivitiesData['HTML']; $tmpl = new CTemplate(); $tmpl->set('totalMembers', $totalMembers)->set('my', $my)->set('alreadyLogin', $alreadyLogin)->set('header', $headerHTML)->set('userActivities', $latestActivitiesHTML)->set('config', $config)->set('customActivityHTML', $this->getCustomActivityHTML()); $status = new CUserStatus(); if ($my->authorise('community.view', 'frontpage.statusbox')) { // Add default status box CUserHelper::addDefaultStatusCreator($status); if (COwnerHelper::isCommunityAdmin() && $config->get('custom_activity')) { $template = new CTemplate(); $template->set('customActivities', CActivityStream::getCustomActivities()); $creator = new CUserStatusCreator('custom'); $creator->title = JText::_('COM_COMMUNITY_CUSTOM'); $creator->html = $template->fetch('status.custom'); $status->addCreator($creator); } } /** * Misc variables * @since 3.3 * Move out variable init in side template into view */ $moduleCount = count(JModuleHelper::getModules('js_side_frontpage')) + count(JModuleHelper::getModules('js_side_top')) + count(JModuleHelper::getModules('js_side_bottom')) + count(JModuleHelper::getModules('js_side_frontpage_top')) + count(JModuleHelper::getModules('js_side_frontpage_bottom')) + count(JModuleHelper::getModules('js_side_frontpage_stacked')) + count(JModuleHelper::getModules('js_side_top_stacked')) + count(JModuleHelper::getModules('js_side_bottom_stacked')) + count(JModuleHelper::getModules('js_side_frontpage_top_stacked')) + count(JModuleHelper::getModules('js_side_frontpage_bottom_stacked')); $jinput = JFactory::getApplication()->input; /** * @todo 3.3 * All of these code must be provided in object. DO NOT PUT ANY CODE LOGIC HERE ! */ $cconfig = CFactory::getConfig(); $filter = $jinput->get('filter'); $filterValue = $jinput->get('value', 'default_value', 'RAW'); $filterText = JText::_("COM_COMMUNITY_FILTERBAR_ALL"); $filterHashtag = false; $filterKeyword = false; if ($filter == 'apps') { switch ($filterValue) { case 'profile': $filterText = JText::_("COM_COMMUNITY_FILTERBAR_TYPE_STATUS"); break; case 'photo': $filterText = JText::_("COM_COMMUNITY_FILTERBAR_TYPE_PHOTO"); break; case 'video': $filterText = JText::_("COM_COMMUNITY_FILTERBAR_TYPE_VIDEO"); break; case 'group': $filterText = JText::_("COM_COMMUNITY_FILTERBAR_TYPE_GROUP"); break; case 'event': $filterText = JText::_("COM_COMMUNITY_FILTERBAR_TYPE_EVENT"); break; } } else { if ($filter == 'hashtag') { $filterText = JText::_("COM_COMMUNITY_FILTERBAR_TYPE_HASHTAG") . ' #' . $filterValue; $filterHashtag = true; } else { if ($filter == 'keyword') { $filterText = JText::_("COM_COMMUNITY_FILTERBAR_TYPE_KEYWORD") . ' ' . $filterValue; $filterKeyword = true; } else { switch ($filterValue) { case 'me-and-friends': $filterText = JText::_("COM_COMMUNITY_FILTERBAR_RELATIONSHIP_ME_AND_FRIENDS"); break; } } } } echo $tmpl->set('userstatus', $status)->set('moduleCount', $moduleCount)->set('class', $moduleCount > 0 ? 'span8' : 'span12')->set('filterKey', $filter)->set('filter', $filter)->set('filterText', $filterText)->set('filterHashtag', $filterHashtag)->set('filterKeyword', $filterKeyword)->set('filterValue', $filterValue)->fetch('frontpage/base'); }
function login($provider = null) { if (!is_object($provider)) { $provider = JFBCFactory::provider(JRequest::getCmd('provider')); } // Let the provider do anything it wants before we try to login. $provider->onBeforeLogin(); $loginRegisterModel = $this->getModel('LoginRegister', 'JFBConnectModel'); // Set a cookie to prevent auto-logging in for the remainder of the session time $config = JFactory::getConfig(); $lifetime = $config->get('lifetime', 15); setcookie('jfbconnect_autologin_disable', 1, time() + $lifetime * 60); // Not a perfect solution, but fixes autologin loops.. $app = JFactory::getApplication(); $providerUserId = $provider->getProviderUserId(); if (!$providerUserId) { # Facebook isn't returning information about this user. Redirect them. JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_UNABLE_TO_RETRIEVE_USER', $provider->name)); $app->redirect('index.php'); } $userMapModel = JFBCFactory::usermap(); $jUser = JFactory::getUser(); if (!$jUser->guest) { SCSocialUtilities::clearJFBCNewMappingEnabled(); if ($userMapModel->map($jUser->get('id'), $providerUserId, strtolower($provider->name), $provider->client->getToken())) { JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_MAP_USER_SUCCESS', $provider->name)); } else { JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_MAP_USER_FAIL', $provider->name)); } $return = $loginRegisterModel->getLoginRedirect($provider); $app->redirect($return); } // They're not logged in. Check if they have a Joomla user and log that user in. If not, create them one $jUserId = $userMapModel->getJoomlaUserId($providerUserId, strtolower($provider->name)); if (!$jUserId) { $profile = $provider->profile->fetchProfile($providerUserId, array('email')); $providerEmail = $profile->get('email', null); # Check if automatic email mapping is allowed, and see if that email is registered # AND the Facebook user doesn't already have a Joomla account if (!$provider->initialRegistration && JFBCFactory::config()->getSetting('facebook_auto_map_by_email')) { if ($providerEmail != null) { $jUserEmailId = $userMapModel->getJoomlaUserIdFromEmail($providerEmail); if (!empty($jUserEmailId)) { // Found a user with the same email address // do final check to make sure there isn't a FB account already mapped to it $tempId = $userMapModel->getProviderUserId($jUserEmailId, strtolower($provider->name)); if (!$tempId) { SCSocialUtilities::clearJFBCNewMappingEnabled(); if ($userMapModel->map($jUserEmailId, $providerUserId, strtolower($provider->name), $provider->client->getToken())) { JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_MAP_USER_SUCCESS', $provider->name)); $jUserId = $jUserEmailId; // Update the temp jId so that we login below } else { JFBCFactory::log(JText::sprintf('COM_JFBCONNECT_MAP_USER_FAIL', $provider->name)); } } } } } // Check if no mapping, and Automatic Registration is set. If so, auto-create the new user. if (!$jUserId && JFBCFactory::config()->getSetting('automatic_registration')) { # User is not in system, should create their account automatically if ($loginRegisterModel->autoCreateUser($providerUserId, $provider)) { $jUserId = $userMapModel->getJoomlaUserId($providerUserId, strtolower($provider->name)); } } // At this point, we have nothing left to do but redirect the user to the registration page if (!$jUserId) { $return = $loginRegisterModel->getLoginRedirect($provider); $app = JFactory::getApplication(); $regComponent = JFBCFactory::config()->get('registration_component'); if ($regComponent == 'jfbconnect') { $app->redirect(JRoute::_('index.php?option=com_jfbconnect&view=loginregister&provider=' . strtolower($provider->name) . '&return=' . base64_encode($return), false)); } else { $app->setUserState('com_jfbconnect.registration.alternateflow', true); $app->setUserState('com_jfbconnect.registration.provider.name', strtolower($provider->name)); $app->setUserState('com_jfbconnect.registration.provider.user_id', $providerUserId); $plugins = $app->triggerEvent('socialProfilesGetPlugins'); foreach ($plugins as $plugin) { if ($plugin->getName() == $regComponent) { $redirect = $plugin->registration_url; } } if ($redirect) { $app->redirect(JRoute::_($redirect, false)); } } } } $jUser = JUser::getInstance($jUserId); $loginSuccess = false; // Try to log the user, but not if blocked and initial registration (then there will be a pretty message on how to activate) if (!$provider->initialRegistration || $jUser->get('block') == 0 && $provider->initialRegistration) { $options = array('silent' => 1, 'provider' => $provider, 'provider_user_id' => $providerUserId); // Disable other authentication messages // hack for J3.2.0 bug. Should remove after 3.2.1 is available. $password = $provider->secretKey; $loginSuccess = $app->login(array('username' => $provider->appId, 'password' => $password), $options); } if ($loginSuccess) { // lets update the user's access token with whatever we just received $jUser = JFactory::getUser(); $userMapModel->updateUserToken($jUser->get('id'), $provider->systemName, $provider->client->getToken()); // Store Profile URL and Avatar URL $userModel = JFBConnectModelUserMap::getUser($jUser->get('id'), $provider->name); $userModel->saveParameter('profile_url', JFBCFactory::provider($provider->name)->profile->getProfileUrl($providerUserId)); $avatarSettings = new JRegistry(); $avatarSettings->set('width', 50); $avatarSettings->set('height', 50); $userModel->saveParameter('avatar_thumb', JFBCFactory::provider($provider->name)->profile->getAvatarUrl($providerUserId, false, $avatarSettings)); if (!$provider->initialRegistration) { $args = array(strtolower($provider->name), $jUser->get('id'), $providerUserId); $app->triggerEvent('socialProfilesOnLogin', $args); } } JFactory::getApplication()->setUserState('com_jfbconnect.' . strtolower($provider->name) . '.checkForNewMapping', null); $allProviders = JFBCFactory::getAllProviders(); foreach ($allProviders as $p) { $p->checkNewMapping(); } $redirect = $loginRegisterModel->getLoginRedirect($provider); // Clear the 'alternate flow' session bit to prevent further alterations to reg pages for this user/session $app->setUserState('com_jfbconnect.registration.alternateflow', false); $app->redirect($redirect); }
function display($tpl = null) { $app = JFactory::getApplication(); $input = JFactory::getApplication()->input; $provider = $input->getCmd('provider', null); if (!$provider) { $app->redirect('index.php'); } $provider = JFBCFactory::provider($provider); $providerUserId = $provider->getProviderUserId(); $profile = $provider->profile->fetchProfile($providerUserId, array('first_name', 'last_name', 'email', 'full_name')); if ($providerUserId == null) { $app->redirect('index.php'); } $args = array(strtolower($provider->name)); $profileFields = $app->triggerEvent('socialProfilesOnShowRegisterForm', $args); // Get previously filled in values $postData = $app->getUserState('com_jfbconnect.registration.data', array()); $email1 = ''; $email2 = ''; SCUserUtilities::getDisplayEmail($postData, $profile->get('email'), $email1, $email2); $config = JFBCFactory::config(); $providerUsername = ''; $postUsername = SCUserUtilities::getPostData($postData, 'username'); if ($postUsername != '') { $providerUsername = $postUsername; } else { if (JFBCFactory::config()->get('registration_show_username') > USERNAME_LEAVE_BLANK) { $usernamePrefixFormat = $config->get('auto_username_format'); $providerUsername = SCUserUtilities::getAutoUsername($profile->get('first_name'), $profile->get('last_name'), $profile->get('email'), $provider->usernamePrefix, $providerUserId, $usernamePrefixFormat); } } $providerMemberName = SCUserUtilities::getDisplayNameByFullName($postData, $profile->get('full_name')); $language = JFactory::getLanguage(); $language->load('com_users'); JModelLegacy::addIncludePath(JPATH_SITE . '/components/com_users/models'); $userModel = JModelLegacy::getInstance('Registration', 'UsersModel'); $this->data = $userModel->getData(); JForm::addFormPath(JPATH_SITE . '/components/com_users/models/forms'); JForm::addFieldPath(JPATH_SITE . '/components/com_users/models/fields'); $this->form = $userModel->getForm(); // Setup the fields we can pre-populate // To do: Give option to show/hide the name on the form $this->form->setValue('name', null, $providerMemberName); if ($config->get('registration_show_name') == NAME_HIDE && $providerMemberName != '') { $this->form->setFieldAttribute('name', 'type', 'hidden'); } $this->form->setValue('username', null, $providerUsername); if ($providerUsername != '') { if ($config->get('registration_show_username') == USERNAME_GENERATE_HIDE) { $this->form->setFieldAttribute('username', 'type', 'hidden'); } else { if ($config->get('registration_show_username') == USERNAME_GENERATE_DISABLE) { $this->form->setFieldAttribute('username', 'readonly', 'true'); } } } $this->form->setValue('email1', null, $email1); $this->form->setValue('email2', null, $email2); if ($email1 != '' && $email2 != '') { if ($config->get('registration_show_email') == EMAIL_HIDE) { $this->form->setFieldAttribute('email1', 'type', 'hidden'); $this->form->setFieldAttribute('email2', 'type', 'hidden'); } else { if ($config->get('registration_show_email') == EMAIL_SHOW_DISABLE) { $this->form->setFieldAttribute('email1', 'readonly', 'true'); $this->form->setFieldAttribute('email2', 'readonly', 'true'); } } } if ($config->get('registration_show_password') == 1) { $password = JUserHelper::genRandomPassword(); $this->form->setValue('password1', null, $password); $this->form->setValue('password2', null, $password); $this->form->setFieldAttribute('password1', 'type', 'hidden'); $this->form->setFieldAttribute('password2', 'type', 'hidden'); } // Set an inputbox style on all the input elements so that inherited template styles look better $this->form->setFieldAttribute('name', 'class', 'inputbox required'); $this->form->setFieldAttribute('username', 'class', 'validate-username inputbox required'); $this->form->setFieldAttribute('email1', 'class', 'inputbox required'); $this->form->setFieldAttribute('email2', 'class', 'inputbox required'); $this->form->setFieldAttribute('password1', 'class', 'validate-password inputbox required'); $this->form->setFieldAttribute('password2', 'class', 'validate-password inputbox required'); //Check for form validation from each of the plugins $areProfilesValidating = $app->triggerEvent('socialProfilesAddFormValidation'); $defaultValidationNeeded = true; foreach ($areProfilesValidating as $hasDoneValidation) { if ($hasDoneValidation == true) { $defaultValidationNeeded = false; break; } } // Setup the view appearance // TODO: Make the addStyleSheet into a Utilities function to be used elsewhere. $displayType = $config->get('registration_display_mode'); $css = JPath::find($this->_path['template'], 'loginregister.css'); $css = str_replace(JPATH_SITE, '', $css); $css = JURI::root() . $css; $css = str_replace('\\', "/", $css); //Windows support for file separators $doc = JFactory::getDocument(); $doc->addStyleSheet($css); // get the other providers, for showing their login buttons $altParams = array(); $allProviders = JFBCFactory::getAllProviders(); $altProviders = array(); foreach ($allProviders as $p) { if ($p->name != $provider->name) { $altParams['providers'][] = $p->systemName; } } $altParams['image'] = 'icon.png'; // Set the session bit to check for a new login on next page load SCSocialUtilities::setJFBCNewMappingEnabled(); $this->altParams = $altParams; $this->assignRef('providerUserId', $providerUserId); $this->assignRef('profile', $profile); $this->assignRef('configModel', $config); $this->assignRef('profileFields', $profileFields); $this->assignRef('defaultValidationNeeded', $defaultValidationNeeded); $this->assignRef('displayType', $displayType); $this->assignRef('providerName', $provider->name); $this->assignRef('altProviders', $altProviders); parent::display($tpl); }
public function getFieldMappingHTML() { $allProviders = JFBCFactory::getAllProviders(); // Remove providers who aren't configured for authentication $providers = $allProviders; for ($i = 0; $i < count($allProviders); $i++) { $p = $allProviders[$i]; if (!$p->appId) { unset($providers[$i]); } } $profileFields = $this->getProfileFields(); $html = '<div class="row-fluid"><div class="span12"> <div class="well"> <legend>Social Network Profile Import Configuration</legend> <table> <tr> <th>' . ucwords($this->profileName) . " Field</th>"; foreach ($providers as $provider) { $html .= "<th>" . $provider->name . "</th>"; } $html .= "</tr>"; foreach ($profileFields as $profileField) { $html .= '<tr><td>'; $html .= JText::_($profileField->name); foreach ($providers as $provider) { $this->loadSettings(strtolower($provider->name)); $fieldMap = $this->getFieldMap(strtolower($provider->name)); if (property_exists($fieldMap, $profileField->id)) { $fieldId = $profileField->id; $selectedValue = $fieldMap->{$fieldId}; } else { $selectedValue = "0"; } $html .= '</td><td>'; $profile = $provider->profile; $html .= '<select name="profiles_' . $this->profileName . '_' . strtolower($provider->name) . '_field_map' . $profileField->id . '">'; foreach ($profile->getProviderFields() as $name => $providerField) { if ($name == $selectedValue) { $selected = 'selected'; } else { $selected = ''; } $html .= '<option value="' . $name . '" ' . $selected . '>' . $providerField . '</option>'; } $html .= '</select>'; } $html .= '</td></tr>'; } $html .= "</table>"; $html .= "</div></div></div>"; return $html; }
public function saveBasicInfo() { $subscriberId = JRequest::getString('subscriberId'); foreach (JFBCFactory::getAllProviders() as $provider) { $name = $provider->systemName; $appId = JRequest::getString($name . '_app_id'); $secretKey = JRequest::getString($name . '_secret_key'); JFBCFactory::config()->update($name . '_app_id', $appId); JFBCFactory::config()->update($name . '_secret_key', $secretKey); } JFBCFactory::config()->update('sc_download_id', $subscriberId); $this->setRedirect('index.php?option=com_jfbconnect&view=autotune&task=fbapp'); }
public function blockUnregister($uri = null) { $my = CFactory::getUser(); $config = CFactory::getConfig(); $usersConfig = JComponentHelper::getParams('com_users'); if ($my->id == 0) { $config = CFactory::getConfig(); if (empty($uri)) { $uri = CRoute::getURI(false); } $uri = base64_encode($uri); $tmpl = new CTemplate(); $fbHtml = ''; if ($config->get('fbconnectkey') && $config->get('fbconnectsecret') && !$config->get('usejfbc')) { $facebook = new CFacebook(); $fbHtml = $facebook->getLoginHTML(); } if ($config->get('usejfbc')) { if (class_exists('JFBCFactory')) { $providers = JFBCFactory::getAllProviders(); $fbHtml = ''; foreach ($providers as $p) { $fbHtml .= $p->loginButton(); } } } //hero image $heroImage = JURI::root() . 'components/com_community/assets/frontpage-image-default.jpg'; if (file_exists(COMMUNITY_PATH_ASSETS . 'frontpage-image.jpg')) { $heroImage = JURI::root() . 'components/com_community/assets/frontpage-image.jpg'; } else { if (file_exists(COMMUNITY_PATH_ASSETS . 'frontpage-image.png')) { $heroImage = JURI::root() . 'components/com_community/assets/frontpage-image.png'; } } $themeModel = CFactory::getModel('theme'); $settings = $themeModel->getSettings(); $tmpl->set('settings', $settings); $tmpl->set('heroImage', $heroImage); $tmpl->set('fbHtml', $fbHtml); $tmpl->set('return', $uri); $tmpl->set('allowUserRegister', $usersConfig->get('allowUserRegistration')); $tmpl->set('useractivation', $usersConfig->get('useractivation')); $html = $tmpl->fetch('guests.denied'); echo $html; return true; } return false; }
function &getViewLists() { $app = JFactory::getApplication(); //Search $search = $app->getUserStateFromRequest('com_jfbconnect.usermap.search', 'search', '', 'string'); $search = JString::strtolower($search); $lists['search'] = $search; //Filter $filter_network = $app->getUserStateFromRequest('com_jfbconnect.usermap.provider', 'provider', -1, 'string'); $filter_network_options[] = JHTML::_('select.option', -1, JText::_('COM_JFBCONNECT_USERMAP_SELECT_NETWORK')); $providers = JFBCFactory::getAllProviders(); foreach ($providers as $provider) { $filter_network_options[] = JHTML::_('select.option', $provider->systemName, $provider->name); } $lists['provider'] = JHTML::_('select.genericlist', $filter_network_options, 'provider', 'onchange="this.form.submit()"', 'value', 'text', $filter_network); //Order $filter_order = $app->getUserStateFromRequest('com_jfbconnect.usermap.filter_order', 'filter_order', 'id', 'cmd'); $filter_order_Dir = $app->getUserStateFromRequest('com_jfbconnect.usermap.filter_order_Dir', 'filter_order_Dir', 'DESC', 'word'); if (!$filter_order) { $filter_order = 'id'; } $lists['order_Dir'] = $filter_order_Dir; $lists['order'] = $filter_order; return $lists; }
private function replaceJSPlaceholders() { $contents = JResponse::getBody(); $javascript = ''; $providers = JFBCFactory::getAllProviders(); foreach ($providers as $provider) { $javascript .= $provider->getHeadData(); } $pinterestWidgets = JFBCFactory::getAllWidgets('pinterest'); $javascript .= $pinterestWidgets[0]->getHeadData(); JFBConnectProviderPinterestWidgetShare::$needsJavascript = false; $contents = str_replace('<SourceCoastProviderJSPlaceholder />', $javascript, $contents); JResponse::setBody($contents); }
/** * Edits a user details * * @access public * @param array An associative array to display the editing of the fields */ public function editDetails(&$data) { $mainframe = JFactory::getApplication(); // access check CFactory::setActiveProfile(); if (!$this->accessAllowed('registered')) { return; } $my = CFactory::getUser(); $config = CFactory::getConfig(); $userParams = $my->getParams(); $pathway = $mainframe->getPathway(); $pathway->addItem(JText::_($my->getDisplayName()), CRoute::_('index.php?option=com_community&view=profile&userid=' . $my->id)); $pathway->addItem(JText::_('COM_COMMUNITY_EDIT_DETAILS'), ''); /** * Opengraph */ CHeadHelper::setType('website', JText::_('COM_COMMUNITY_EDIT_DETAILS')); // $js = 'assets/validate-1.5.min.js'; // CFactory::attach($js, 'js'); $this->showSubmenu(); $connectModel = CFactory::getModel('Connect'); $associated = $connectModel->isAssociated($my->id); $fbHtml = ''; if ($config->get('fbconnectkey') && $config->get('fbconnectsecret') && !$config->get('usejfbc')) { //CFactory::load( 'libraries' , 'facebook' ); $facebook = new CFacebook(); $fbHtml = $facebook->getLoginHTML(); } if ($config->get('usejfbc')) { if (class_exists('JFBCFactory')) { $providers = JFBCFactory::getAllProviders(); foreach ($providers as $p) { $fbHtml .= $p->loginButton(); } } } // If FIELD_GIVENNAME & FIELD_FAMILYNAME is in use $isUseFirstLastName = CUserHelper::isUseFirstLastName(); $jConfig = JFactory::getConfig(); //CFactory::load( 'libraries' , 'apps' ); $app = CAppPlugins::getInstance(); $appFields = $app->triggerEvent('onFormDisplay', array('jsform-profile-editdetails')); $beforeFormDisplay = CFormElement::renderElements($appFields, 'before'); $afterFormDisplay = CFormElement::renderElements($appFields, 'after'); $tmpl = new CTemplate(); echo $tmpl->set('beforeFormDisplay', $beforeFormDisplay)->set('afterFormDisplay', $afterFormDisplay)->set('fbHtml', $fbHtml)->set('fbPostStatus', $userParams->get('postFacebookStatus'))->set('jConfig', $jConfig)->set('params', $data->params)->set('user', $my)->set('config', $config)->set('associated', $associated)->set('isAdmin', COwnerHelper::isCommunityAdmin())->set('offsetList', $data->offsetList)->set('isUseFirstLastName', $isUseFirstLastName)->fetch('profile.edit.details'); }
}); } if (typeof window.FB != 'undefined') { jomFbButtonInit(); } else { window.fbAsyncInit = jomFbButtonInit; } </script> <fb:login-button onlogin="******" scope="read_stream,publish_actions,email,user_birthday,user_status"><?php echo JText::_('COM_COMMUNITY_SIGN_IN_WITH_FACEBOOK'); ?> </fb:login-button> <?php } if ($config->get('usejfbc')) { $fbHtml = ''; if (class_exists('JFBCFactory')) { $providers = JFBCFactory::getAllProviders(); foreach ($providers as $p) { $fbHtml .= $p->loginButton(); } } echo $fbHtml; } } } } ?> </div>
function saveSettings($configs) { $this->getSettings(); // Create list of provider-specific settings. These to be moved to their own table ~6.2 $providerSettings = array(); foreach (JFBCFactory::getAllProviders() as $p) { foreach ($this->providerStandardSettings as $setting) { $providerSettings[$p->systemName . '_' . $setting] = ''; } } $allSettings = array_merge($providerSettings, $this->componentSettings); $settings = array_intersect_key($configs, $allSettings); foreach ($settings as $setting => $value) { if ($setting == 'experimental') { $value = json_encode($value); } $this->update($setting, $value); } $this->settings = null; // Clear all the settings so they're reloaded next time any are needed }