function data_blog($data, $params) { // No change in the parameters with Clyde global $gLibertySystem, $gBitSmarty, $gBitSystem, $gBitUser; $display_result = ""; if ($gBitSystem->isPackageActive('blogs') && $gBitUser->hasPermission('p_blogs_view')) { // The next 2 lines allow access to the $pluginParams given above and may be removed when no longer needed $pluginParams = $gLibertySystem->mPlugins[PLUGIN_GUID_DATABLOG]; require_once BLOGS_PKG_PATH . 'BitBlog.php'; require_once LIBERTY_PKG_PATH . 'lookup_content_inc.php'; $module_params = $params; if (isset($module_params['id'])) { $gBitSmarty->assign('blog_id', $module_params['id']); } $blogPost = new BitBlogPost(); $sortOptions = array("publish_date_desc", "publish_date_asc", "last_modified_asc", "last_modified_desc", "created_asc", "created_desc", "random"); if (!empty($module_params['sort_mode']) && in_array($module_params['sort_mode'], $sortOptions)) { $sort_mode = $module_params['sort_mode']; } else { $sort_mode = 'publish_date_desc'; } $getHash = array(); if (isset($module_params['user'])) { $getHash['user'] = $module_params['user']; } if (isset($module_params['id'])) { $getHash['blog_id'] = $module_params['id']; } if (isset($module_params['group_id'])) { $getHash['group_id'] = $module_params['group_id']; } if (isset($module_params['role_id'])) { $getHash['role_id'] = $module_params['role_id']; } // handle draft posts $getHash['enforce_status'] = TRUE; // @TODO enable lists that include draft posts // the current tpl configuration doesnt allow us to support draft lists right now // there is an object reference problem in liberty::service_content_body_inc.tpl // if the object reference problem in the above mentions tpl is patched then use this if to enable drafts // if ( !empty( $module_params['status'] ) && $module_params['status'] = "draft" && isset( $gBitUser->mUserId ) ){ if (FALSE) { // if we are getting drafts then get future posts too $getHash['show_future'] = TRUE; $getHash['min_status_id'] = -6; $getHash['max_status_id'] = -4; $getHash['min_owner_status_id'] = -6; // limit by user $getHash['user_id'] = $gBitUser->mUserId; } else { $getHash['min_owner_status_id'] = 0; } $getHash['sort_mode'] = $sort_mode; $getHash['parse_data'] = TRUE; $getHash['max_records'] = empty($module_params['max']) ? 1 : $module_params['max']; $getHash['load_num_comments'] = TRUE; $getHash['page'] = !empty($module_params['page']) ? $module_params['page'] : 1; $getHash['offset'] = !empty($module_params['offset']) ? $module_params['offset'] : 0; $blogPosts = $blogPost->getList($getHash); $display_format = empty($module_params['format']) ? 'simple_title_list' : $module_params['format']; switch ($display_format) { case 'full': $display_result = '<div class="blogs">'; if ($gBitSystem->isPackageActive('rss')) { if (isset($module_params['user'])) { $rssUser = new BitUser(); $rssUser->load(false, $module_params['user']); $rssUserId = $rssUser->getField('user_id'); } $rssPath = BLOGS_PKG_URL . 'blogs_rss.php?' . (isset($module_params['id']) ? 'blog_id=' . $module_params['id'] : "") . (isset($module_params['id']) && isset($rssUserId) ? "&" : "") . (isset($rssUserId) ? 'user_id=' . $rssUserId : "") . (isset($rssUserId) && isset($module_params['group_id']) ? "&" : "") . (isset($module_params['group_id']) ? 'group_id=' . $module_params['group_id'] : "") . (isset($rssUserId) && isset($module_params['role_id']) ? "&" : "") . (isset($module_params['role_id']) ? 'role_id=' . $module_params['role_id'] : ""); // something like this would be better, calling smarty directly so translation can also be called -wjames5 // $rssIcon = smarty_function_biticon( array('ipackage'=>"rss", 'iname'="rss-16x16", 'iexplain'=>"RSS feed"), &$gBitSmarty ); $display_result .= '<div class="floaticon"><a title="RSS feed" href="' . $rssPath . '"><img src="' . BIT_ROOT_URL . 'rss/icons/rss-16x16.png" alt="RSS feed" title="RSS feed" class="icon" /></a></div>'; } $gBitSmarty->assign('showDescriptionsOnly', TRUE); foreach ($blogPosts['data'] as $aPost) { $gBitSmarty->assign('aPost', $aPost); $display_result .= $gBitSmarty->fetch('bitpackage:blogs/blog_list_post.tpl'); } $display_result .= '</div>'; $display_result = eregi_replace("\n", "", $display_result); break; case 'list': default: $display_result = "<ul>"; foreach ($blogPosts['data'] as $post) { $link = $blogPost->getDisplayLink($post['title'], $post); $display_result .= "<li>{$link}</li>\n"; } $display_result .= "</ul>\n"; break; } } else { $display_result = '<div class=error>' . tra('Blogs Package Deactivated.') . '</div>'; } return $display_result; }
} } if (!empty($_REQUEST['blog_id'])) { $listHash['blog_id'] = $_REQUEST['blog_id']; $gBlog = new BitBlog($_REQUEST['blog_id']); $gBlog->load(); if (isset($gBlog->mContentId)) { // adjust feed title to blog title $rss->title = $gBlog->getTitle() . " at " . $gBitSystem->getConfig('site_title'); if (isset($userName)) { $rss->title = $userName . "'s Posts in " . $rss->title; } $rss->description = $gBlog->parseData(); } } $feeds = $blogPost->getList($listHash); // set the rss link $rss->link = 'http://' . $_SERVER['HTTP_HOST'] . BLOGS_PKG_URL . (!empty($_REQUEST['blog_id']) ? "?blog_id=" . $_REQUEST['blog_id'] : ""); // get all the data ready for the feed creator foreach ($feeds['data'] as $feed) { $item = new FeedItem(); $item->title = BitBlogPost::getTitleFromHash($feed); $item->link = BIT_BASE_URI . BitBlogPost::getDisplayUrlFromHash(NULL, $feed); $item->description = $feed['parsed']; $item->date = (int) $feed['last_modified']; $item->source = 'http://' . $_SERVER['HTTP_HOST'] . BIT_ROOT_URL; $item->author = $gBitUser->getDisplayName(FALSE, $feed); $item->descriptionTruncSize = $gBitSystem->getConfig('rssfeed_truncate', 50000); $item->descriptionHtmlSyndicated = TRUE; // pass the item on to the rss feed creator $rss->addItem($item);