2

在 EVALSYS 的安装指南中,它说“该工具应添加到所有我的工作区”,但它没有提供有关如何执行此操作的任何详细信息。这似乎是一件很常见的事情,有没有最佳实践?

4

2 回答 2

5

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

关于现有工作区的注意事项:

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

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

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

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

如果您使用的是 Sakai 10+,那么同样的功能也可以通过 CXF 网络服务使用。有关文档和其他方法,请参见此处的源代码: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

于 2014-06-13T15:19:03.370 回答
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
于 2014-06-13T20:29:35.640 回答