public function autopost() { // Check for request forgeries JRequest::checkToken() or jexit('Invalid Token'); // @task: Check for acl rules. $this->checkAccess('blog'); $type = JRequest::getWord('autopost_type'); $config = EasyBlogHelper::getConfig(); $my = JFactory::getUser(); $app = JFactory::getApplication(); $oauth = EasyBlogHelper::getTable('OAuth'); $oauth->loadSystemByType($type); if (!$oauth->id) { $app->redirect('index.php?option=com_easyblog&view=blogs', JText::_('COM_EASYBLOG_AUTOPOST_UNABLE_TO_LOAD_TYPE'), 'error'); $app->close(); } if (!$config->get('integrations_' . $oauth->type)) { $app->redirect('index.php?option=com_easyblog&view=blogs', JText::sprintf('COM_EASYBLOG_AUTOPOST_SITE_IS_NOT_ENABLED', ucfirst($type)), 'error'); $app->close(); } $id = JRequest::getInt('autopost_selected'); $blog = EasyBlogHelper::getTable('Blog'); $blog->load($id); // @task: Test if the blog post is unpublished. if ($blog->published != POST_ID_PUBLISHED) { $app->redirect('index.php?option=com_easyblog&view=blogs', JText::_('COM_EASYBLOG_AUTOPOST_PLEASE_PUBLISH_BLOG'), 'error'); $app->close(); } // @task: Test if the api key and secret is valid. $key = $config->get('integrations_' . $oauth->type . '_api_key'); $secret = $config->get('integrations_' . $oauth->type . '_secret_key'); if (empty($key) || empty($secret)) { $app->redirect('index.php?option=com_easyblog&view=blogs', JText::sprintf('COM_EASYBLOG_AUTOPOST_KEYS_INVALID', ucfirst($type)), 'error'); $app->close(); } if (!EasyBlogSocialShareHelper::share($blog, $oauth->type, true)) { $app->redirect('index.php?option=com_easyblog&view=blogs', JText::sprintf('COM_EASYBLOG_AUTOPOST_SUBMIT_ERROR', ucfirst($oauth->type)), 'error'); $app->close(); } $app->redirect('index.php?option=com_easyblog&view=blogs', JText::sprintf('COM_EASYBLOG_AUTOPOST_SUBMIT_SUCCESS', ucfirst($oauth->type)), 'success'); }
public function autopost($userSites, $centralizedSites = array()) { $config = EasyBlogHelper::getConfig(); $allowed = array(EBLOG_OAUTH_LINKEDIN, EBLOG_OAUTH_FACEBOOK, EBLOG_OAUTH_TWITTER); // @rule: Process centralized options first // See if there are any global postings enabled. if (!empty($centralizedSites)) { foreach ($centralizedSites as $item) { if ($config->get('integrations_' . $item . '_centralized')) { EasyBlogSocialShareHelper::share($this, constant('EBLOG_OAUTH_' . JString::strtoupper($item)), true); } } } if (!empty($userSites)) { foreach ($userSites as $site) { if (in_array($site, $allowed) && $config->get('integrations_' . $site)) { EasyBlogSocialShareHelper::share($this, constant('EBLOG_OAUTH_' . JString::strtoupper($site))); } } } }
/** * Ajax method to share content to social networks * * @param int $blogId The blog's id. * @param int $oauthId The oauth id. **/ function ajaxSocialShare($blogId, $type) { $ajax = new Ejax(); $config = EasyBlogHelper::getConfig(); $my = JFactory::getUser(); $userId = $my->id; $oauth = EasyBlogHelper::getTable('Oauth', 'Table'); $oauth->loadByUser($userId, $type); if (!$oauth->id) { $ajax->script('eblog.spinner.publish(\'' . $blogId . '\', 0);'); $ajax->alert(JText::_('COM_EASYBLOG_OAUTH_INVALID_ID'), JText::_('COM_EASYBLOG_INFO'), 450, 'auto'); $ajax->send(); return; } if (!$config->get('integrations_' . $oauth->type)) { $ajax->script('eblog.spinner.publish(\'' . $blogId . '\', 0);'); $ajax->alert(JText::sprintf('COM_EASYBLOG_OAUTH_TYPE_DISABLED', ucfirst($oauth->type)), JText::_('COM_EASYBLOG_INFO'), 450, 'auto'); $ajax->send(); return; } $blog = EasyBlogHelper::getTable('blog', 'Table'); $blog->load($blogId); if ($blog->published != POST_ID_PUBLISHED) { $ajax->script('eblog.spinner.publish(\'' . $blogId . '\', 0);'); $ajax->alert(JText::_('COM_EASYBLOG_DASHBOARD_ENTRIES_NOT_ABLE_TO_SOCIAL_SHARE'), JText::_('COM_EASYBLOG_INFO'), 450, 'auto'); $ajax->send(); return; } $key = $config->get('integrations_' . $oauth->type . '_api_key'); $secret = $config->get('integrations_' . $oauth->type . '_secret_key'); if (empty($key) || empty($secret)) { $ajax->script('eblog.spinner.publish("' . $blogId . '", 0);'); $ajax->alert(JText::_('COM_EASYBLOG_OAUTH_KEY_INVALID'), JText::_('COM_EASYBLOG_INFO'), 450, 'auto'); $ajax->send(); return; } $callback = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&controller=oauth&task=grant&type=' . $oauth->type, false, true); require_once EBLOG_HELPERS . DIRECTORY_SEPARATOR . 'oauth.php'; $consumer = EasyBlogOauthHelper::getConsumer($oauth->type, $key, $secret, $callback); $consumer->setAccess($oauth->access_token); if (!EasyBlogSocialShareHelper::share($blog, $oauth->type)) { $ajax->script('eblog.spinner.publish("' . $blogId . '", 0);'); $ajax->alert(JText::_('COM_EASYBLOG_OAUTH_ERROR_POSTING'), JText::_('COM_EASYBLOG_INFO'), 450, 'auto'); $ajax->send(); return; } // @todo: mark this as sent! $oauthPost = EasyBlogHelper::getTable('OauthPost', 'Table'); $oauthPost->loadByOauthId($blog->id, $oauth->id); $date = EasyBlogHelper::getDate(); $oauthPost->post_id = $blog->id; $oauthPost->oauth_id = $oauth->id; $oauthPost->created = $date->toMySQL(); $oauthPost->modified = $date->toMySQL(); $oauthPost->sent = $date->toMySQL(); $oauthPost->store(); // Update message $img = JURI::root() . '/components/com_easyblog/assets/icons/socialshare/' . JString::strtolower($oauth->type) . '.png'; $ajax->script('$("#oauth_img_' . $oauth->type . '_' . $blog->id . '").attr("src", "' . $img . '");'); $ajax->script('eblog.spinner.publish(\'' . $blog->id . '\', 0);'); $ajax->alert(JText::sprintf('COM_EASYBLOG_OAUTH_POST_SUCCESS', ucfirst($oauth->type)), JText::_('COM_EASYBLOG_INFO'), 450, 'auto'); $ajax->send(); }