public function store() { // @task: Load language file from the front end. JFactory::getLanguage()->load('com_easyblog', JPATH_ROOT); $this->clear($this->draft_id); // @rule: Send notification to the author of the post. $draft = EasyBlogHelper::getTable('Draft'); $draft->load($this->draft_id); $author = EasyBlogHelper::getTable('Profile'); $author->load($draft->created_by); $data['blogTitle'] = $draft->title; $data['blogAuthor'] = $author->getName(); $data['blogAuthorAvatar'] = $author->getAvatar(); $data['blogEditLink'] = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=dashboard&layout=write&draft_id=' . $draft->id, false, true); $data['blogAuthorEmail'] = $author->user->email; $data['rejectMessage'] = $this->message; // If blog post is being posted from the back end and SH404 is installed, we should just use the raw urls. $sh404exists = EasyBlogRouter::isSh404Enabled(); if (JFactory::getApplication()->isAdmin() && $sh404exists) { $data['blogEditLink'] = JURI::root() . 'index.php?option=com_easyblog&view=dashboard&layout=write&draft_id=' . $draft->id; } $emailTitle = JText::_('COM_EASYBLOG_EMAIL_TITLE_NEW_BLOG_REJECTED'); $obj = new StdClass(); $obj->unsubscribe = false; $obj->email = $author->user->email; $emails = array($obj); $notification = EasyBlogHelper::getHelper('Notification'); $notification->send($emails, $emailTitle, 'email.blog.rejected', $data); return parent::store(); }
public function sendApprovalEmail($approvalType) { $user = EasyBlogHelper::getTable('Profile'); $user->load($this->user_id); $team = EasyBlogHelper::getTable('TeamBlog'); $team->load($this->team_id); $template = $approvalType ? 'email.teamblog.approved' : 'email.teamblog.rejected'; $obj = new stdClass(); $obj->unsubscribe = false; $obj->email = $user->user->email; $emails = array($obj->email => $obj); $data = array('teamName' => $team->title, 'teamDescription' => $team->getDescription(), 'teamAvatar' => $team->getAvatar(), 'teamLink' => EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=teamblog&layout=listings&id=' . $this->team_id, false, true)); // If blog post is being posted from the back end and SH404 is installed, we should just use the raw urls. $sh404exists = EasyBlogRouter::isSh404Enabled(); if (JFactory::getApplication()->isAdmin() && $sh404exists) { $data['teamLink'] = JURI::root() . 'index.php?option=com_easyblog&view=teamblog&layout=listings&id=' . $team->id; } $notification = EasyBlogHelper::getHelper('Notification'); $notification->send($emails, JText::_('COM_EASYBLOG_TEAMBLOG_JOIN_REQUEST'), $template, $data); }
public function notify(EasyBlogTableBlog $blog) { $config = EasyBlogHelper::getConfig(); // Send notification to site admins when a new blog post is reported $data = array(); $data['blogTitle'] = $blog->title; $data['blogLink'] = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=entry&id=' . $blog->id, false, true); // @rule: Send email notifications out to subscribers. $author = EasyBlogHelper::getTable('Profile'); $author->load($this->created_by); $data['reporterAvatar'] = $author->getAvatar(); $data['reporterName'] = $author->getName(); $data['reporterLink'] = $author->getProfileLink(); $data['reason'] = $this->reason; $date = EasyBlogDateHelper::dateWithOffSet($this->created); $data['reportDate'] = EasyBlogDateHelper::toFormat($date, '%A, %B %e, %Y'); // If blog post is being posted from the back end and SH404 is installed, we should just use the raw urls. $sh404exists = EasyBlogRouter::isSh404Enabled(); if (JFactory::getApplication()->isAdmin() && $sh404exists) { $data['blogLink'] = JURI::root() . 'index.php?option=com_easyblog&view=entry&id=' . $blog->id; } $emailBlogTitle = JString::substr($blog->title, 0, $config->get('main_mailtitle_length')); $emailTitle = JText::sprintf('COM_EASYBLOG_EMAIL_TITLE_NEW_REPORT', $emailBlogTitle) . ' ...'; $notification = EasyBlogHelper::getHelper('Notification'); $emails = array(); // @rule: Fetch custom emails defined at the back end. if ($config->get('notification_blogadmin')) { if ($config->get('custom_email_as_admin')) { $notification->getCustomEmails($emails); } else { $notification->getAdminEmails($emails); } } if (!empty($emails)) { $notification->send($emails, $emailTitle, 'email.blog.report', $data); } }
/** * Process message **/ function processMessage($MsgTemplate, $blog) { $config = EasyBlogHelper::getConfig(); $message = empty($MsgTemplate) ? $config->get('main_twitter_message') : $MsgTemplate; $search = array(); $replace = array(); //replace title if (preg_match_all("/.*?(\\{title\\})/is", $message, $matches)) { $search[] = '{title}'; $replace[] = $blog->title; } //replace title if (preg_match_all("/.*?(\\{introtext\\})/is", $message, $matches)) { $introtext = empty($blog->intro) ? '' : strip_tags($blog->intro); $search[] = '{introtext}'; $replace[] = $introtext; } //replace category if (preg_match_all("/.*?(\\{category\\})/is", $message, $matches)) { $category = EasyBlogHelper::getTable('Category', 'Table'); $category->load($blog->category_id); $search[] = '{category}'; $replace[] = $category->title; } $message = JString::str_ireplace($search, $replace, $message); //replace link if (preg_match_all("/.*?(\\{link\\})/is", $message, $matches)) { // @task: Twitter now has auto shorten URL so the link will have a max of 20 chars which leaves us to a balance of 120 chars. $linkLength = 20; $link = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=entry&id=' . $blog->id, false, true); // If blog post is being posted from the back end and SH404 is installed, we should just use the raw urls. $mainframe = JFactory::getApplication(); $sh404exists = EasyBlogRouter::isSh404Enabled(); if ($mainframe->isAdmin() && $sh404exists) { $link = rtrim(JURI::root(), '/') . '/index.php?option=com_easyblog&view=entry&id=' . $blog->id; } if ($config->get('main_twitter_shorten_url')) { $shortenerLogin = $config->get('main_twitter_urlshortener_login'); $shortenerApiKey = $config->get('main_twitter_urlshortener_apikey'); if (!empty($shortenerLogin) && !empty($shortenerApiKey)) { require_once EBLOG_HELPERS . DIRECTORY_SEPARATOR . 'urlshortener.php'; $urlshortener = new EasyBlogURLShortenerHelper(); $result = $urlshortener->get_short_url($shortenerLogin, $shortenerApiKey, $link, 'bitly'); if (!empty($result)) { $link = $result; $linkLength = strlen($link); } } } // @task: Get the remaining length that we can use. $remainingLength = 140 - 3 - $linkLength; //split the message $tempMsg = explode('{link}', $message); for ($i = 0; $i < count($tempMsg); $i++) { $temp =& $tempMsg[$i]; $tempLength = strlen($temp); if ($tempLength > $remainingLength) { if ($remainingLength <= 0) { $temp = JString::substr($temp, 0, 0); } else { if ($remainingLength < 6) { $temp = JString::substr($temp, 0, $remainingLength); } else { $temp = JString::substr($temp, 0, $remainingLength - 3); $temp .= '.. '; } $remainingLength = 0; } } else { $remainingLength -= $tempLength; } } $message = implode($link, $tempMsg); } else { $message = JString::substr($message, 0, 136) . '...'; } // since we know now twitter has it own shortener, we no longer // need to substr as the above algorithm already taken care the // lenght of the message ( excluded link length ) // so we just need to pass the processed message together with the full url link. return $message; // return JString::substr($message, 0, 140); }
public static function addJomSocialActivityBlog($blog, $isNew, $isFeed = false) { $jsCoreFile = JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_community' . DIRECTORY_SEPARATOR . 'libraries' . DIRECTORY_SEPARATOR . 'core.php'; $config = EasyBlogHelper::getConfig(); $lang = JFactory::getLanguage(); $lang->load('com_easyblog', JPATH_ROOT); // We do not want to add activities if new blog activity is disabled. if ($isFeed) { if ($isNew && !$config->get('integrations_jomsocial_rss_import_activity')) { return false; } } else { if ($isNew && !$config->get('integrations_jomsocial_blog_new_activity')) { return false; } } // We do not want to add activities if update blog activity is disabled. if (!$isNew && !$config->get('integrations_jomsocial_blog_update_activity')) { return false; } if (JFile::exists($jsCoreFile)) { require_once $jsCoreFile; $blogCommand = $isNew ? 'easyblog.blog.add' : 'easyblog.blog.update'; $blogTitle = htmlspecialchars($blog->title); $maxTitleLength = $config->get('jomsocial_blog_title_length', 80); if (JString::strlen($blogTitle) > $maxTitleLength) { $blogTitle = JString::substr($blog->title, 0, $maxTitleLength) . '...'; } $category = EasyBlogHelper::getTable('Category', 'Table'); $category->load($blog->category_id); $easyBlogItemid = ''; $mainframe = JFactory::getApplication(); $blogLink = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=entry&id=' . $blog->id . $easyBlogItemid, false, true); $categoryLink = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=categories&layout=listings&id=' . $category->id . $easyBlogItemid, false, true); // If blog post is being posted from the back end and SH404 is installed, we should just use the raw urls. $sh404exists = EasyBlogRouter::isSh404Enabled(); if ($mainframe->isAdmin() && $sh404exists) { $easyBlogItemid = EasyBlogRouter::getItemId('latest'); $easyBlogItemid = '&Itemid=' . $easyBlogItemid; $blogLink = rtrim(JURI::root(), '/') . '/index.php?option=com_easyblog&view=entry&id=' . $blog->id . $easyBlogItemid; $categoryLink = rtrim(JURI::root(), '/') . '/index.php?option=com_easyblog&view=categories&layout=listings&id=' . $category->id . $easyBlogItemid; } $blogContent = ''; if ($config->get('integrations_jomsocial_submit_content')) { $requireVerification = false; if ($config->get('main_password_protect', true) && !empty($blog->blogpassword)) { $row->title = JText::sprintf('COM_EASYBLOG_PASSWORD_PROTECTED_BLOG_TITLE', $blog->title); $requireVerification = true; } $blogContent = ''; if ($requireVerification && !EasyBlogHelper::verifyBlogPassword($blog->blogpassword, $blog->id)) { $theme = new CodeThemes(); $theme->set('id', $blog->id); $theme->set('return', base64_encode($blogLink)); $blogContent = $theme->fetch('blog.protected.php'); } else { $blogContent = $blog->intro . $blog->content; // Get blog's image and use it as the cover photo. $image = ''; if ($blog->getImage()) { $imageSource = $blog->getImage()->getSource('frontpage'); if ($imageSource) { $image = '<a href="' . $blogLink . '"><img src="' . $imageSource . '" style="margin: 0 5px 5px 0;float: left; height: auto; width: 120px !important;"/></a>'; } } else { // Try to find for an image in the content. $pattern = '#<img[^>]*>#i'; preg_match($pattern, $blogContent, $matches); if ($matches) { $matches[0] = JString::str_ireplace('img ', 'img style="margin: 0 5px 5px 0;float: left; height: auto; width: 120px !important;"', $matches[0]); $image = '<a href="' . $blogLink . '">' . $matches[0] . '</a>'; } } // Strip unwanted data. $blogContent = EasyBlogHelper::getHelper('Videos')->strip($blogContent); $blogContent = EasyBlogGoogleAdsense::stripAdsenseCode($blogContent); $blogContent = JString::substr($blogContent, 0, $config->get('integrations_jomsocial_blogs_length', 250)) . ' ...'; // Remove all html tags from the content as we want to chop it down. $blogContent = strip_tags($blogContent); if (!empty($image)) { $blogContent = $image . $blogContent . '<div style="clear: both;"></div>'; } $blogContent .= '<div style="text-align: right;"><a href="' . $blogLink . '">' . JText::_('COM_EASYBLOG_CONTINUE_READING') . '</a></div>'; } } $title = $isNew ? JText::sprintf('COM_EASYBLOG_JS_ACTIVITY_BLOG_ADDED_NON_CATEGORY', $blogLink, $blogTitle) : JText::sprintf('COM_EASYBLOG_JS_ACTIVITY_BLOG_UPDATED_NON_CATEGORY', $blogLink, $blogTitle); if ($config->get('integrations_jomsocial_show_category')) { $title = $isNew ? JText::sprintf('COM_EASYBLOG_JS_ACTIVITY_BLOG_ADDED', $blogLink, $blogTitle, $categoryLink, JText::_($category->title)) : JText::sprintf('COM_EASYBLOG_JS_ACTIVITY_BLOG_UPDATED', $blogLink, $blogTitle, $categoryLink, JText::_($category->title)); } $obj = new stdClass(); $obj->access = $blog->private; $obj->title = $title; $obj->content = $blogContent; $obj->cmd = $blogCommand; if ($config->get('integrations_jomsocial_activity_likes')) { $obj->like_id = $blog->id; $obj->like_type = 'com_easyblog'; if (!$isNew) { $obj->comment_type = 'com_easyblog.update'; } } if ($config->get('integrations_jomsocial_activity_comments')) { $obj->comment_id = $blog->id; $obj->comment_type = 'com_easyblog'; if (!$isNew) { $obj->comment_type = 'com_easyblog.update'; } } $obj->actor = $blog->created_by; $obj->target = 0; $obj->app = 'easyblog'; $obj->cid = $blog->id; // add JomSocial activities CFactory::load('libraries', 'activities'); CActivityStream::add($obj); } }
/** * Shares a new content on Facebook **/ public function share($blog, $message = '', $oauth, $useSystem = false) { $config = EasyBlogHelper::getConfig(); $source = $config->get('integrations_facebook_source'); $content = isset($blog->{$source}) && !empty($blog->{$source}) ? $blog->{$source} : $blog->intro . $blog->content; $content = EasyBlogHelper::getHelper('Videos')->strip($content); $image = ''; // @rule: Ensure that only public posts are allowed if ($blog->private != 0) { return false; } // @rule: Try to get the blog image. if ($blog->getImage()) { $image = $blog->getImage()->getSource('frontpage'); } if (empty($image)) { // @rule: Match images from blog post $pattern = '/<\\s*img [^\\>]*src\\s*=\\s*[\\""\']?([^\\""\'\\s>]*)/i'; preg_match($pattern, $content, $matches); $image = ''; if ($matches) { $image = isset($matches[1]) ? $matches[1] : ''; if (JString::stristr($matches[1], 'https://') === false && JString::stristr($matches[1], 'http://') === false && !empty($image)) { $image = rtrim(JURI::root(), '/') . '/' . ltrim($image, '/'); } } } $maxContentLen = $config->get('integrations_facebook_blogs_length'); $text = strip_tags($content); if (!empty($maxContentLen)) { $text = JString::strlen($text) > $maxContentLen ? JString::substr($text, 0, $maxContentLen) . '...' : $text; } $url = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=entry&id=' . $blog->id, false, true); // If blog post is being posted from the back end and SH404 is installed, we should just use the raw urls. $sh404exists = EasyBlogRouter::isSh404Enabled(); $mainframe = JFactory::getApplication(); if ($mainframe->isAdmin() && $sh404exists) { $url = rtrim(JURI::root(), '/') . '/index.php?option=com_easyblog&view=entry&id=' . $blog->id; } preg_match('/expires=(.*)/i', $this->_access_token, $expires); if (isset($expires[1])) { $this->_access_token = str_ireplace('&expires=' . $expires[1], '', $this->_access_token); } // Remove adsense codes require_once EBLOG_CLASSES . DIRECTORY_SEPARATOR . 'adsense.php'; $text = EasyBlogGoogleAdsense::stripAdsenseCode($text); $jConfig = EasyBlogHelper::getJConfig(); $params = array('link' => $url, 'name' => $blog->title, 'description' => $text, 'message' => $blog->title, 'access_token' => $this->_access_token); if (empty($image)) { $params['picture'] = rtrim(JURI::root(), '/') . '/components/com_easyblog/assets/images/default_facebook.png'; $params['source'] = rtrim(JURI::root(), '/') . '/components/com_easyblog/assets/images/default_facebook.png'; } else { $params['picture'] = $image; $params['source'] = $image; } // @rule: For system messages, we need to see if there's any pages associated. if ($oauth->system && $useSystem) { if ($config->get('integrations_facebook_impersonate_page') || $config->get('integrations_facebook_impersonate_group')) { if ($config->get('integrations_facebook_impersonate_page')) { $pages = JString::trim($config->get('integrations_facebook_page_id')); $pages = explode(',', $pages); $total = count($pages); // @rule: Test if there are any pages at all the user can access $accounts = parent::api('/me/accounts', array('access_token' => $this->_access_token)); if (is_array($accounts) && isset($accounts['data'])) { for ($i = 0; $i < $total; $i++) { foreach ($accounts['data'] as $page) { if ($page['id'] == $pages[$i]) { $params['access_token'] = $page['access_token']; $query = parent::api('/' . $page['id'] . '/feed', 'post', $params); } } } } } if ($config->get('integrations_facebook_impersonate_group')) { $groupsId = JString::trim($config->get('integrations_facebook_group_id')); $groupsId = explode(',', $groupsId); $total = count($groupsId); // @rule: Test if there are any groups at all the user can access $accounts = parent::api('/me/groups', 'GET', array('access_token' => $this->_access_token)); $params['access_token'] = $this->_access_token; if (is_array($accounts) && isset($accounts['data'])) { for ($i = 0; $i < $total; $i++) { foreach ($accounts['data'] as $group) { if ($group['id'] == $groupsId[$i]) { $query = parent::api('/' . $group['id'] . '/feed', 'post', $params); } } } } } } else { // @rule: If this is just a normal posting, just post it on their page. $query = parent::api('/me/feed', 'post', $params); } } else { // @rule: If this is just a normal posting, just post it on their page. $query = parent::api('/me/feed', 'post', $params); } $success = isset($query['id']) ? true : false; return $success; }
public function getExternalBlogLink($url) { // If blog post is being posted from the back end and SH404 is installed, we should just use the raw urls. $sh404exists = EasyBlogRouter::isSh404Enabled(); $link = EasyBlogRouter::getRoutedURL($url, false, true); if (JFactory::getApplication()->isAdmin() && $sh404exists) { $link = rtrim(JURI::root(), '/') . $url; } return $link; }
public function store($updateNulls = false) { $state = parent::store(); // @rule: Process notifications for admins when the blog post is pending approvals if ($this->pending_approval) { $user = EasyBlogHelper::getTable('Profile'); $user->load($this->created_by); $date = EasyBlogDateHelper::dateWithOffSet($this->created); $data = array('blogTitle' => $this->title, 'blogAuthor' => $user->getName(), 'blogAuthorLink' => EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=blogger&layout=listings&id=' . $user->id, false, true), 'blogIntro' => $this->intro, 'blogContent' => $this->content, 'blogAuthorAvatar' => $user->getAvatar(), 'blogDate' => EasyBlogDateHelper::toFormat($date, '%A, %B %e, %Y'), 'reviewLink' => EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=dashboard&layout=pending&draft_id=' . $this->id, false, true)); // If blog post is being posted from the back end and SH404 is installed, we should just use the raw urls. $sh404exists = EasyBlogRouter::isSh404Enabled(); if (JFactory::getApplication()->isAdmin() && $sh404exists) { $data['blogAuthorLink'] = JURI::root() . 'index.php?option=com_easyblog&view=blogger&layout=listings&id=' . $user->id; $data['reviewLink'] = JURI::root() . 'index.php?option=com_easyblog&view=dashboard&layout=pending&draft_id' . $this->id; } $emailTitle = JText::_('COM_EASYBLOG_EMAIL_TITLE_NEW_BLOG_PENDING_REVIEW'); $emails = array(); $notification = EasyBlogHelper::getHelper('Notification'); $config = EasyBlogHelper::getConfig(); // @rule: if custom_email_as_admin is enabled, use custom email as admin email if ($config->get('custom_email_as_admin')) { // @rule: Send to custom email addresses $notification->getCustomEmails($emails); } else { // @rule: Send to administrator's on the site. $notification->getAdminEmails($emails); } $notification->send($emails, $emailTitle, 'email.blog.review', $data); } return $state; }
private function sendNotificationsJomsocial($blog, $isNew, $uid, $source, $author) { JFactory::getLanguage()->load('com_easyblog', JPATH_ROOT); $config = EasyBlogHelper::getConfig(); // @rule: Send email notifications out to subscribers. $author = EasyBlogHelper::getTable('Profile'); $author->load($blog->created_by); $data['blogTitle'] = $blog->title; $data['blogAuthor'] = $author->getName(); $data['blogAuthorAvatar'] = $author->getAvatar(); $data['blogAuthorLink'] = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=blogger&layout=listings&id=' . $author->id, false, true); $data['blogAuthorEmail'] = $author->user->email; $data['blogIntro'] = $blog->intro; $data['blogContent'] = $blog->content; $data['blogLink'] = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=entry&id=' . $blog->id, false, true); $date = EasyBlogDateHelper::dateWithOffSet($blog->created); $data['blogDate'] = EasyBlogDateHelper::toFormat($date, '%A, %B %e, %Y'); // If blog post is being posted from the back end and SH404 is installed, we should just use the raw urls. $sh404exists = EasyBlogRouter::isSh404Enabled(); if (JFactory::getApplication()->isAdmin() && $sh404exists) { $data['blogLink'] = JURI::root() . 'index.php?option=com_easyblog&view=entry&id=' . $blog->id; $data['blogAuthorLink'] = JURI::root() . 'index.php?option=com_easyblog&view=blogger&layout=listings&id=' . $author->id; } if (is_array($uid)) { $uid = $uid[0]; } JTable::addIncludePath(JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_community' . DIRECTORY_SEPARATOR . 'tables'); $event = JTable::getInstance('Event', 'CTable'); $event->load($uid); $members = $event->getMembers(1, 99999); $emails = array(); $jsCoreFile = JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_community' . DIRECTORY_SEPARATOR . 'libraries' . DIRECTORY_SEPARATOR . 'core.php'; foreach ($members as $member) { $user = CFactory::getUser($member->id); // Do not send email to the author. if ($author->user->email != $user->email) { $obj = new stdClass(); $obj->email = $user->email; $emails[] = $obj; } } $notification = EasyBlogHelper::getHelper('Notification'); $emailBlogTitle = JString::substr($blog->title, 0, $config->get('main_mailtitle_length')); $emailTitle = JText::sprintf('COM_EASYBLOG_EMAIL_TITLE_NEW_BLOG_ADDED_WITH_TITLE', $emailBlogTitle) . ' ...'; $notification->send($emails, $emailTitle, 'email.blog.new', $data); }
/** * Delete a blog entry from the site given the id's. **/ public function deleteBlog() { // Check for request forgeries JRequest::checkToken() or jexit('Invalid Token'); $mainframe = JFactory::getApplication(); $config = EasyBlogHelper::getConfig(); $acl = EasyBlogACLHelper::getRuleSet(); $my = JFactory::getUser(); $message = ''; $type = ''; $ids = JRequest::getVar('blogId', ''); $ids = explode(',', $ids); $redirect = JRequest::getVar('redirect', ''); $redirect = empty($redirect) ? 'index.php?option=com_easyblog' : base64_decode($redirect); $sh404exists = EasyBlogRouter::isSh404Enabled(); if (empty($ids)) { EasyBlogHelper::setMessageQueue(JText::_('COM_EASYBLOG_DASHBOARD_DELETE_NO_ID_ERROR'), 'error'); $mainframe->redirect($redirect); $mainframe->close(); } if ((empty($acl->rules->delete_entry) || $my->id == 0) && !EasyBlogHelper::isSiteAdmin() && empty($acl->rules->moderate_entry)) { EasyBlogHelper::setMessageQueue(JText::_('COM_EASYBLOG_NO_PERMISSION_TO_DELETE_BLOG'), 'error'); $mainframe->redirect($redirect); $mainframe->close(); } foreach ($ids as $id) { $blog = EasyBlogHelper::getTable('Blog', 'Table'); $blog->load($id); if ($blog->created_by != $my->id && !EasyBlogHelper::isSiteAdmin() && empty($acl->rules->moderate_entry)) { EasyBlogHelper::setMessageQueue(JText::_('COM_EASYBLOG_NOT_ALLOWED'), 'error'); $mainframe->redirect($redirect); $mainframe->close(); } if (!$blog->delete()) { EasyBlogHelper::setMessageQueue(JText::_('COM_EASYBLOG_DASHBOARD_DELETE_ERROR'), 'error'); $mainframe->redirect($redirect); $mainframe->close(); } } EasyBlogHelper::setMessageQueue(JText::_('COM_EASYBLOG_DASHBOARD_DELETE_SUCCESS', 'success')); $mainframe->redirect($redirect); $mainframe->close(); }
private function sendNotificationsJomsocial($blog, $isNew, $key, $source, $author) { JFactory::getLanguage()->load('com_easyblog', JPATH_ROOT); // @rule: Send email notifications out to subscribers. $author = EB::user($blog->created_by); $data['blogTitle'] = $blog->title; $data['blogAuthor'] = $author->getName(); $data['blogAuthorAvatar'] = $author->getAvatar(); $data['blogAuthorLink'] = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=blogger&layout=listings&id=' . $author->id, false, true); $data['blogAuthorEmail'] = $author->user->email; $data['blogIntro'] = $blog->intro; $data['blogContent'] = $blog->content; $data['blogLink'] = EasyBlogRouter::getRoutedURL('index.php?option=com_easyblog&view=entry&id=' . $blog->id, false, true); $date = EasyBlogDateHelper::dateWithOffSet($blog->created); $data['blogDate'] = EasyBlogDateHelper::toFormat($date, JText::_('DATE_FORMAT_LC1')); // If blog post is being posted from the back end and SH404 is installed, we should just use the raw urls. $sh404exists = EasyBlogRouter::isSh404Enabled(); if (JFactory::getApplication()->isAdmin() && $sh404exists) { $data['blogLink'] = JURI::root() . 'index.php?option=com_easyblog&view=entry&id=' . $blog->id; $data['blogAuthorLink'] = JURI::root() . 'index.php?option=com_easyblog&view=blogger&layout=listings&id=' . $author->id; } // Get group members emails if (!class_exists('CommunityModelGroups')) { jimport('joomla.application.component.model'); JLoader::import('groups', JPATH_ROOT . DIRECTORY_SEPARATOR . 'com_community' . DIRECTORY_SEPARATOR . 'models'); } $model = JModelLegacy::getInstance('Groups', 'CommunityModel'); if (is_array($key)) { $key = $key[0]; } if (!method_exists($model, 'getAllMember')) { // Snippet taken from getAllMember $db = EasyBlogHelper::db(); $query = 'SELECT a.' . $db->nameQuote('memberid') . ' AS id, a.' . $db->nameQuote('approved') . ' , b.' . $db->nameQuote('name') . ' as name , a.' . $db->nameQuote('permissions') . ' as permission FROM ' . $db->nameQuote('#__community_groups_members') . ' AS a ' . ' INNER JOIN ' . $db->nameQuote('#__users') . ' AS b ' . ' WHERE b.' . $db->nameQuote('id') . '=a.' . $db->nameQuote('memberid') . ' AND a.' . $db->nameQuote('groupid') . '=' . $db->Quote($key) . ' AND b.' . $db->nameQuote('block') . '=' . $db->Quote('0') . ' ' . ' AND a.' . $db->nameQuote('permissions') . ' !=' . $db->quote(-1); $db->setQuery($query); $members = $db->loadObjectList(); } else { $members = $model->getAllMember($key); } $emails = array(); $jsCoreFile = JPATH_ROOT . DIRECTORY_SEPARATOR . 'components' . DIRECTORY_SEPARATOR . 'com_community' . DIRECTORY_SEPARATOR . 'libraries' . DIRECTORY_SEPARATOR . 'core.php'; foreach ($members as $member) { $user = CFactory::getUser($member->id); $userParam = $user->getParams(); $enabled = $userParam->get('etype_groups_sendmail', 0); if (!$enabled) { continue; } if ($author->user->email != $user->email) { $obj = new stdClass(); $obj->email = $user->email; $emails[] = $obj; } } $config = EasyBlogHelper::getConfig(); $notification = EasyBlogHelper::getHelper('Notification'); $emailBlogTitle = JString::substr($blog->title, 0, $config->get('main_mailtitle_length')); $emailTitle = JText::sprintf('COM_EASYBLOG_EMAIL_TITLE_NEW_BLOG_ADDED_WITH_TITLE', $emailBlogTitle) . ' ...'; $notification->send($emails, $emailTitle, 'email.blog.new', $data); }