阅读时间3分钟 (618字)
jomSocial 与 K2 集成(Joomla! 1.7) - 第1部分
以下是一个分步教程
1. 在新/编辑文章的JomSocial动态中创建条目。2. 在新评论的JomSocial动态中创建条目。
3. 为新文章添加用户积分。
4. 为编辑文章添加用户积分。
5. 为新评论添加用户积分。
教程
1. 进行备份。每次您更改文件时,请先进行备份。2. 打开文件"administrator/components/com_k2/models/item.php"
在该文件中找到
case 'save':
default:
在其后放置以下代码
// Hack to add new or edited articles in the JomSocial activity stream
// Check if JomSocial is installed
$jcheck = JPATH_BASE . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'core.php';
// Check if the JomSocial library exist and if so, include it
if ( file_exists($jcheck)) {
require_once($jcheck);
}
// Get the current article title
$contentTitle = $row->title;
// Get the current article url
$link = 'index.php?option=com_k2&view=item&id='.$row->id;
// Add proper routing
$link = K2HelperRoute::getItemRoute($row->id.':'.urlencode($row->alias),$row->catid.':'.urlencode($row->category->alias));
// Post to JomSocial activity stream
$item->link=$link;
$act = new stdClass();
$act->cmd = 'wall.write';
$act->actor = $user->id;
$act->target = 0; // no target
if($isNew) {
$act->title = JText::_('K2_JOMSOCIAL_ARTICLE').' <a href="'.$link.'">'.$contentTitle.'</a>';
// Add user points for new article
if ( file_exists($jcheck)) {
include_once( JPATH_BASE . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'userpoints.php');
CuserPoints::assignPoint('com_k2.article.new');
}
}
else {
// Add user points for edited article
$act->title = JText::_('K2_JOMSOCIAL_EDIT').' <a href="'.$link.'">'.$contentTitle.'</a>';
if ( file_exists($jcheck)) {
include_once( JPATH_BASE . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'userpoints.php');
CuserPoints::assignPoint('com_k2.article.edit');
}
}
$act->content = '';
$act->app = 'wall';
$act->cid = 0;
CFactory::load('libraries', 'activities');
// Add support for like and comments in JomSocial activity stream
$act->comment_type = 'k2.article';
$act->comment_id = CActivities::COMMENT_SELF;
$act->like_type = 'k2.article';
$act->like_id = CActivities::LIKE_SELF;
CActivityStream::add($act);
// End JomSocial activity stream hack
注意:上述代码涵盖了前端项目添加和编辑所需的所有必要操作。如果您想完全覆盖后端文章的添加和编辑,请在
case 'apply':
之后
case 'saveAndNew':
和
3. 打开文件"components/com_k2/models/item.php"if ($params->get('commentsPublishing')) {
在文件中找到
// check if JomSocial is installed
$jscheck = JPATH_BASE . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'core.php';
//activity stream - added a comment
if ( file_exists($jscheck)) {
require_once($jscheck);
}
$contentTitle = $item->title;
$link = K2HelperRoute::getItemRoute($item->id.':'.urlencode($item->alias),$item->catid.':'.urlencode($item->category->alias));
//$item->link=urldecode(JRoute::_($link));
$item->link=$link;
$act = new stdClass();
$act->cmd = 'wall.write';
$act->actor = $user->id;
$act->target = 0; // no target
$act->title = JText::_('K2_JOMSOCIAL_COMMENT').' <a href="'.$item->link.'">'.$contentTitle.'</a>';
include_once( JPATH_BASE . DS . 'components' . DS . 'com_community' . DS . 'libraries' . DS . 'userpoints.php');
CuserPoints::assignPoint('com_k2.comment.add');
$act->content = '';
$act->app = 'wall';
$act->cid = 0;
CFactory::load('libraries', 'activities');
$act->comment_type = 'k2.comment';
$act->comment_id = CActivities::COMMENT_SELF;
$act->like_type = 'k2.comment';
$act->like_id = CActivities::LIKE_SELF;
CActivityStream::add($act);
在其后添加以下代码
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE jomsocial>
<jomsocial>
<component>com_k2</component>
<rules>
<rule>
<name>Add Article</name>
<description>Add New Blog Post.</description>
<action_string>com_k2.article.new</action_string>
<publish>true</publish>
<points>10</points>
<access_level>1</access_level>
</rule>
<rule>
<name>Edit Article</name>
<description>Edit New Blog Post.</description>
<action_string>com_k2.article.edit</action_string>
<publish>true</publish>
<points>1</points>
<access_level>1</access_level>
</rule>
<rule>
<name>Post Comment</name>
<description>Post New Blog Comment.</description>
<action_string>com_k2.comment.add</action_string>
<publish>true</publish>
<points>1</points>
<access_level>1</access_level>
</rule>
</rules>
</jomsocial>
4. 创建一个名为"jomsocial_rule.xml"的新文件,内容如下,并将其上传到"components/com_k2/"
;JomSocial
K2_JOMSOCIAL_COMMENT="{actor} commented on the article"
K2_JOMSOCIAL_ARTICLE="{actor} added the new article"
K2_JOMSOCIAL_EDIT="{actor} edited the article"
5. 在"language/en-GB/en-GB.com_k2.ini"的底部添加以下行(或使用您相应的语言)
6. 前往后端JomSocial,然后在用户积分处,点击“规则扫描”,它应该找到三个新规则(添加文章、编辑文章、添加评论)。点击刷新。默认情况下,新文章获得10分,编辑文章获得1分,评论获得1分。刷新后,您可以通过点击规则的名称来编辑分数。
我们将尝试编写一个教程,介绍如何在K2项目中显示JomSocial数据。
附言。如果您有任何问题或疑问,请随时在我们的论坛帖子中提问
Joomla 社区杂志上发布的一些文章代表作者对特定主题的个人观点或经验,可能并不与 Joomla 项目的官方立场一致
通过接受,您将访问由https://magazine.joomla.net.cn/以外的第三方提供的服务
评论