如何向Sakai的所有用户My Workspace站点添加新工具?

时间:2014-06-13 12:57:23

标签: sakai

在EVALSYS的安装指南中,它说"The tool should be added to all My Workspaces"但它没有提供有关如何执行此操作的任何详细信息。这似乎是一件很常见的事情,有没有最好的做法?

2 个答案:

答案 0 :(得分:5)

最简单的方法是将工具添加到!user 网站(使用特殊的管理网站工具)。找到!用户站点,然后添加页面(使用“页面”按钮),然后向该页面添加工具,并从列表中选择要添加到所有工作区的工具。完成此操作后,所有新的我的工作区将在用户首次登录Sakai时自动创建该工具。

关于现有工作空间的说明:

如果您还希望所有现有我的工作区包含该工具,那么您必须实际删除它们,以便在下次用户登录时重新创建它们(这将导致当前登录用户出现问题)。这最好在系统未运行(或至少未被主动使用)时完成。为此,您需要在数据库上运行这样的SQL:

delete from sakai_site where SITE_ID like '~%' AND SITE_ID <> '~admin';

通过Sakai网络服务的替代方法:

还有一个SOAP Web服务可以为所有我的工作区添加一个工具,该工具位于: HTTP:// {your.sakai.server} /sakai-axis/SakaiScript.jws?wsdl

如果您使用的是Sakai 10+,那么也可以通过CXF webservice获得相同的功能。 有关文档和其他方法,请参阅此处的源代码:https://source.sakaiproject.org/svn/webservices/branches/sakai-10.x/axis/src/webapp/SakaiScript.jws

public String addNewToolToAllWorkspaces(
    String sessionid, String toolid, String pagetitle, String tooltitle, 
    int pagelayout, int position, boolean popup);

有关使用Sakai SOAP Web服务的更多详细信息,请访问: https://confluence.sakaiproject.org/display/WEBSVCS/How+to+use+the+Sakai+Web+Services

答案 1 :(得分:1)

当您导航到http://your.server/sakai-axis/SakaiScript.jws?wsdl时,还有一个Axis Web服务可以执行此操作。如果您使用的是Sakai 10+,那么同样的呼叫也可以通过CXF获得。

/** 
 * Adds a tool to all My Workspace sites
 *
 * @param   sessionid       the id of a valid session for the admin user
 * @param   toolid          the id of the tool you want to add (ie sakai.profile2)
 * @param   pagetitle       the title of the page shown in the site navigation
 * @param   tooltitle       the title of the tool shown in the main portlet
 * @param   pagelayout      single or double column (0 or 1). Any other value will revert to 0.
 * @param   position        integer specifying the position within other pages on the site (0 means top, for right at the bottom a large enough number, ie 99)
 * @param   popup           boolean for if it should be a popup window or not
 *
 * @return                  success or exception
 * @throws  AxisFault       
 *
 * Sakai properties:
 *  #specify the list of users to ignore separated by a comma, no spaces. Defaults to 'admin,postmaster'.
 *  webservice.specialUsers=admin,postmaster
 *
 */
public String addNewToolToAllWorkspaces(String sessionid, String toolid, String pagetitle, String tooltitle, int pagelayout, int position, boolean popup) throws AxisFault