Fórum

Integrating Liferay in Moodle

antz s franz, modificado 15 Anos atrás.

Integrating Liferay in Moodle

New Member Postagens: 4 Data de Entrada: 01/12/08 Postagens Recentes
Hi,

Can you please let me know how to integrate Liferay with Moodle. I need the existing Moodle users to use the Liferay by Single Sign On method. Can you please let me know the procedure for this.

Thanks,
Antony
Andrew Tillinghast, modificado 15 Anos atrás.

RE: Integrating Liferay in Moodle

Junior Member Postagens: 60 Data de Entrada: 05/09/08 Postagens Recentes
We haven't done this yet but we are heading that direction. Our plan is to CAS as our single sign on solution. There are instructions on the Moodle site for casifying Moodle and Liferay has CAS support built in out of the box.

With both apps casified you should be able to switch back and forth easily.

Also there is a uportal portlet http://sourcesup.cru.fr/projects/cmoodle/ that shows the status of moodle courses that I'm hoping we will be able to utilize in Liferay.

-Andrew Tillinghast
antz s franz, modificado 15 Anos atrás.

RE: Integrating Liferay in Moodle

New Member Postagens: 4 Data de Entrada: 01/12/08 Postagens Recentes
Thank You for your valuable comments Andrew.! I will try with the CAS method and see how this can be done. Happy to know about your plan on this. Great.!
thumbnail
Brian Gormanly, modificado 15 Anos atrás.

RE: Integrating Liferay in Moodle

New Member Postagens: 18 Data de Entrada: 08/01/08 Postagens Recentes
We have successfully done this by modifying the standard iframe portlet to 'pass the individual users information to moodle (or any other webapp). instead of just passing the static user information that the stock portlet can pass.

Once this is done in the iframe configuration enter the url that handles moodles login script like normal ( ..moodlepath../login/index.php) and the feild names that the uservalues should be assoicated with when passed (username and password in my moodle installation) and post as the method and form as the type for moodle.

I did this by modifying the code like below (feel free to use or modify if it is helpful), it has been awhile since i made the changes so I have included the entire files as I do not remember exactly which lines I changed at the moment.

all files are from the iframe portlet.

init.jsp

<%
/**
 * Copyright (c) 2000-2008 Liferay, Inc. All rights reserved.
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in
 * all copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
%>

<%@ include file="/html/portlet/init.jsp" %>

<%
PortletPreferences prefs = renderRequest.getPreferences();

String portletResource = ParamUtil.getString(request, "portletResource");

if (Validator.isNotNull(portletResource)) {
	prefs = PortletPreferencesFactoryUtil.getPortletSetup(request, portletResource);
}

String src = prefs.getValue("src", StringPool.BLANK);
boolean relative = GetterUtil.getBoolean(prefs.getValue("relative", StringPool.BLANK));

boolean auth = GetterUtil.getBoolean(prefs.getValue("auth", StringPool.BLANK));
String authType = prefs.getValue("auth-type", StringPool.BLANK);
String formMethod = prefs.getValue("form-method", StringPool.BLANK);
String userName = prefs.getValue("user-name", StringPool.BLANK);
String password = prefs.getValue("password", StringPool.BLANK);
String hiddenVariables = prefs.getValue("hidden-variables", StringPool.BLANK);

String border = prefs.getValue("border", "0");
String bordercolor = prefs.getValue("bordercolor", "#000000");
String frameborder = prefs.getValue("frameborder", "0");
String heightMaximized = prefs.getValue("height-maximized", "600");
String heightNormal = prefs.getValue("height-normal", "300");
String hspace = prefs.getValue("hspace", "0");
String scrolling = prefs.getValue("scrolling", "auto");
String vspace = prefs.getValue("vspace", "0");
String width = prefs.getValue("width", "100%");
%>



view.jsp

<%
<%@ include file="/html/portlet/iframe/init.jsp" %>

<%
String iframeSrc = StringPool.BLANK;

if (relative) {
	iframeSrc = themeDisplay.getPathContext();
}

iframeSrc += (String)request.getAttribute(WebKeys.IFRAME_SRC);

String iframeHeight = heightNormal;

if (windowState.equals(WindowState.MAXIMIZED)) {
	iframeHeight = heightMaximized;
}
%>
<iframe border="<%= border %>" bordercolor="<%= bordercolor %>" frameborder="<%= frameborder %>" height="<%= iframeHeight %>" hspace="<%= hspace %>" name="<portlet:namespace />iframe" scrolling="<%= scrolling %>" src="<%= iframeSrc %>" vspace="<%= vspace %>" width="<%= width %>"></iframe>




&lt;%
String userNameKey = StringPool.BLANK;
String userNameValue = StringPool.BLANK;


userNameKey = userName;

// get userid
userNameValue = PortalUtil.getUser(request).getScreenName();

%&gt;


&lt;%
String passwordKey = StringPool.BLANK;
String passwordValue = StringPool.BLANK;

passwordKey = password;
passwordValue = PortalUtil.getUserPassword(renderRequest);

%&gt;

<input name="<%= passwordKey %>" type="hidden" value="<%= passwordValue %>">




<script language="javascript" type="text/javascript">
                window.frames["<portlet:namespace />iframe"].window.onload = testRun;
                function testRun() {
                		
                        if(window.frames["<portlet:namespace />iframe"].document.getElementById('welcomeBackBar')) {
                                alert('testing');
                                window.frames["<portlet:namespace />iframe"].document.forms["MAINFORM"].elements["userName"].value
= "<%= userNameValue %>";
                                window.frames["<portlet:namespace />iframe"].document.forms["MAINFORM"].elements["password"].value
= "<%= passwordValue %>";
                                window.frames["<portlet:namespace />iframe"].document.forms["MAINFORM"].elements["btnLogin"].click();
                        }
                }
</script>


proxy.jsp


&lt;%@ include file="/html/portlet/iframe/init.jsp" %&gt;

&lt;%
String[] hiddenVariablesArray = StringUtil.split(hiddenVariables, StringPool.SEMICOLON);
%&gt;

"&gt;


	<meta content="no-cache" http-equiv="Cache-Control">
	<meta content="no-cache" http-equiv="Pragma">
	<meta content="0" http-equiv="Expires">




<form action="<%= src %>" method="<%= formMethod %>" name="MAINFORM">


&lt;%
for (int i = 0; i &lt; hiddenVariablesArray.length; i++) {
	String hiddenKey = StringPool.BLANK;
	String hiddenValue = StringPool.BLANK;

	int pos = hiddenVariablesArray[i].indexOf(StringPool.EQUAL);

	if (pos != -1) {
		hiddenKey = hiddenVariablesArray[i].substring(0, pos);
		hiddenValue = hiddenVariablesArray[i].substring(pos + 1, hiddenVariablesArray[i].length());
	}
%&gt;

	<input name="<%= hiddenKey %>" type="hidden" value="<%= hiddenValue %>">

&lt;%
}

String userNameKey = StringPool.BLANK;
String userNameValue = StringPool.BLANK;

int pos = userName.indexOf("=");
if (pos != -1) {
	userNameKey = userName.substring(0, pos);
	userNameValue = userName.substring(pos + 1, userName.length());
}
else {
	userNameKey = userName;

	// get userid
	userNameValue = PortalUtil.getUser(request).getScreenName();
}
%&gt;

<input name="<%= userNameKey %>" type="hidden" value="<%= userNameValue %>">

&lt;%
String passwordKey = StringPool.BLANK;
String passwordValue = StringPool.BLANK;

pos = password.indexOf("=");
if (pos != -1) {
	passwordKey = password.substring(0, pos);
	passwordValue = password.substring(pos + 1, password.length());
}
else {
	passwordKey = password;
	passwordValue = PortalUtil.getUserPassword(renderRequest);
}
%&gt;

<input name="<%= passwordKey %>" type="hidden" value="<%= passwordValue %>">


</form>







configuration.jsp

&lt;%@ include file="/html/portlet/iframe/init.jsp" %&gt;

&lt;%
String htmlAttributes =
	"border=" + border + "\n" +
	"bordercolor=" + bordercolor + "\n" +
	"frameborder=" + frameborder + "\n" +
	"height-maximized=" + heightMaximized + "\n" +
	"height-normal=" + heightNormal + "\n" +
	"hspace=" + hspace + "\n" +
	"scrolling=" + scrolling + "\n" +
	"vspace=" + vspace + "\n" +
	"width=" + width + "\n";
%&gt;

<form action="<liferay-portlet:actionURL portletConfiguration=" true">" method="post" name="<portlet:namespace />fm"&gt;
<input name="<portlet:namespace /><%= Constants.CMD %>" type="hidden" value="<%= Constants.UPDATE %>">

<div class="portlet-msg-info">
You may enter just the field names (ie username and password) to use the users portal login info.  You may also enter field name = 'some value' (ie username=brian, password=password) to specify username and password.
</div>

<table class="lfr-table">
<tbody><tr>
	<td>
		<liferay-ui:message key="source-url" />
	</td>
	<td>
		<span id="<portlet:namespace />context-path-text" style="<%= relative ? &quot;&quot; : &quot;display: none;&quot; %>">...&lt;%= themeDisplay.getPathContext() %&gt;</span> <input class="lfr-input-text" name="<portlet:namespace />src" type="text" value="<%= src %>">
	</td>
</tr>
<tr>
	<td>
		<liferay-ui:message key="relative-to-context-path" />
	</td>
	<td>

		&lt;%
		String relativeOnClick = "jQuery(\"#" + renderResponse.getNamespace() + "context-path-text\").toggle();";
		%&gt;

		<liferay-ui:input-checkbox param="relative" defaultValue="<%= relative %>" onClick="<%= relativeOnClick %>" />
	</td>
</tr>
<tr>
	<td colspan="2">
		<br>
	</td>
</tr>
<tr>
	<td>
		<liferay-ui:message key="authenticate" />
	</td>
	<td>
		<liferay-ui:input-checkbox param="auth" defaultValue="<%= auth %>" />
	</td>
</tr>
<tr>
	<td>
		<liferay-ui:message key="authentication-type" />
	</td>
	<td>
		<select name="<portlet:namespace />authType">
			<option <%="(authType.equals(&quot;basic&quot;))" ? "selected" : "" %> value="basic"&gt;Basic</option>
			<option <%="(authType.equals(&quot;form&quot;))" ? "selected" : "" %> value="form"&gt;Form</option>
		</select>
	</td>
</tr>
<tr>
	<td>
		<liferay-ui:message key="form-method" />
	</td>
	<td>
		<select name="<portlet:namespace />formMethod">
			<option <%="(formMethod.equals(&quot;get&quot;))" ? "selected" : "" %> value="get"&gt;Get</option>
			<option <%="(formMethod.equals(&quot;post&quot;))" ? "selected" : "" %> value="post"&gt;Post</option>
		</select>
	</td>
</tr>
<tr>
	<td>
		<liferay-ui:message key="user-name" />
	</td>
	<td>
		<input class="lfr-input-text" name="<portlet:namespace />userName" type="text" value="<%= userName %>">
	</td>
</tr>
<tr>
	<td>
		<liferay-ui:message key="password" />
	</td>
	<td>
		<input class="lfr-input-text" name="<portlet:namespace />password" type="text" value="<%= password %>">
	</td>
</tr>
<tr>
	<td>
		<liferay-ui:message key="hidden-variables" />
	</td>
	<td>
		<input class="lfr-input-text" name="<portlet:namespace />hiddenVariables" type="text" value="<%= hiddenVariables %>">
	</td>
</tr>
<tr>
	<td colspan="2">
		<br>
	</td>
</tr>
<tr>
	<td>
		<liferay-ui:message key="html-attributes" />
	</td>
	<td>
		<textarea class="lfr-textarea" name="<portlet:namespace />htmlAttributes" wrap="soft" onkeydown="Liferay.Util.checkTab(this); Liferay.Util.disableEsc();">&lt;%= htmlAttributes %&gt;</textarea>
	</td>
</tr>
</tbody></table>

<br>

<input type="button" value="<liferay-ui:message key=" save">" onClick="submitForm(document.<portlet:namespace />fm);" /&gt;

</form>

<c:if test="<%= windowState.equals(WindowState.MAXIMIZED) %>">
	<script type="text/javascript">
		Liferay.Util.focusFormField(document.<portlet:namespace />fm.<portlet:namespace />src);
	</script>
</c:if>
antz s franz, modificado 15 Anos atrás.

RE: Integrating Liferay in Moodle

New Member Postagens: 4 Data de Entrada: 01/12/08 Postagens Recentes
WOW thats Great Brian.! Nice way of achieving the integration. Thanks a lot for sharing your script. I will try to make this and see.
Robin S., modificado 15 Anos atrás.

RE: Integrating Liferay in Moodle

Regular Member Postagens: 116 Data de Entrada: 16/09/08 Postagens Recentes
Hi guys,

has anybody used this integration in 5.2? I tried it, but got a lot of Exceptions and Errormessages.
All I did was, copy paste the code for the 4 jsp files.
Anybody got this running in 5.2?

Thanks in advance
Robin S., modificado 15 Anos atrás.

RE: Integrating Liferay in Moodle

Regular Member Postagens: 116 Data de Entrada: 16/09/08 Postagens Recentes
Oh my god emoticon

Sorry to bother you guys. Look at view.jsp line 2, there's a unnecessary <% . After I removed this tag, everything works.

Thanks for code btw.

regards
Robin S., modificado 15 Anos atrás.

RE: Integrating Liferay in Moodle

Regular Member Postagens: 116 Data de Entrada: 16/09/08 Postagens Recentes
Sorry for spamming this thread, but now I faced another problem.
Here's the whole stacktrace.

13:05:47,520 ERROR [[jsp]:711] Servlet.service() for servlet jsp threw exception
org.apache.jasper.JasperException: Unable to compile class for JSP:

An error occurred at line: 27 in the jsp file: /html/portlet/iframe/proxy.jsp
Cannot invoke indexOf(String) on the array type String[]
24:     String hiddenKey = StringPool.BLANK;
25:     String hiddenValue = StringPool.BLANK;
26:
27:     int pos = hiddenVariablesArray.indexOf(StringPool.EQUAL);
28:     if (pos != -1) {
29:         hiddenKey = hiddenVariablesArray.substring(0, pos);
30:         hiddenValue = hiddenVariablesArray.substring(pos + 1, hiddenVariablesArray.len
gth());


An error occurred at line: 29 in the jsp file: /html/portlet/iframe/proxy.jsp
Cannot invoke substring(int, int) on the array type String[]
26:
27:     int pos = hiddenVariablesArray.indexOf(StringPool.EQUAL);
28:     if (pos != -1) {
29:         hiddenKey = hiddenVariablesArray.substring(0, pos);
30:         hiddenValue = hiddenVariablesArray.substring(pos + 1, hiddenVariablesArray.len
gth());
31:     }
32: %&gt;


An error occurred at line: 30 in the jsp file: /html/portlet/iframe/proxy.jsp
Cannot invoke length() on the array type String[]
27:     int pos = hiddenVariablesArray.indexOf(StringPool.EQUAL);
28:     if (pos != -1) {
29:         hiddenKey = hiddenVariablesArray.substring(0, pos);
30:         hiddenValue = hiddenVariablesArray.substring(pos + 1, hiddenVariablesArray.len
gth());
31:     }
32: %&gt;
33:


Stacktrace:
        at org.apache.jasper.compiler.DefaultErrorHandler.javacError(DefaultErrorHandler.j
ava:93)
        at org.apache.jasper.compiler.ErrorDispatcher.javacError(ErrorDispatcher.java:330)

        at org.apache.jasper.compiler.JDTCompiler.generateClass(JDTCompiler.java:435)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:298)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:277)
        at org.apache.jasper.compiler.Compiler.compile(Compiler.java:265)
        at org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:564)

        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:302)

        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:188)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.jav
a:679)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispat
cher.java:461)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.
java:399)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.ja
va:301)
        at com.liferay.portal.struts.StrutsUtil.forward(StrutsUtil.java:90)
        at com.liferay.portal.struts.PortalRequestProcessor.doForward(PortalRequestProcess
or.java:264)
        at org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(Request
Processor.java:1023)
        at org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(Til
esRequestProcessor.java:345)
        at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:
572)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:221)
        at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor
.java:159)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
        at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:505)
        at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:732)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)

        at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilt
er.java:282)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)

        at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.j
ava:193)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)

        at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.doFilter(Virtu
alHostFilter.java:188)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)

        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:94)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:188)
        at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.ja
va:738)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
172)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.ja
va:433)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:10
8)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConn
ection(Http11BaseProtocol.java:665)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:5
28)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorke
rThread.java:81)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:6
89)
        at java.lang.Thread.run(Thread.java:595)
13:05:47,536 ERROR [jsp:668] User ID 10376
13:05:47,536 ERROR [jsp:669] Current URL /c/iframe/proxy?p_l_id=10382&amp;p_p_id=48_INSTANCE_N
d9l
13:05:47,536 ERROR [jsp:670] Referer http://localhost:8080/web/john/profile
13:05:47,536 ERROR [jsp:671] Remote address 127.0.0.1
13:05:47,536 ERROR [jsp:673]
13:05:47,536 ERROR [[jsp]:711] Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
        at org.apache.jsp.html.common.error_jsp._jspService(error_jsp.java:676)
        at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:98)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:331)

        at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:329)
        at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:265)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:188)
        at org.apache.catalina.core.ApplicationDispatcher.invoke(ApplicationDispatcher.jav
a:679)
        at org.apache.catalina.core.ApplicationDispatcher.processRequest(ApplicationDispat
cher.java:461)
        at org.apache.catalina.core.ApplicationDispatcher.doForward(ApplicationDispatcher.
java:399)
        at org.apache.catalina.core.ApplicationDispatcher.forward(ApplicationDispatcher.ja
va:301)
        at com.liferay.portal.struts.StrutsUtil.forward(StrutsUtil.java:108)
        at com.liferay.portal.struts.PortalRequestProcessor.doForward(PortalRequestProcess
or.java:264)
        at org.apache.struts.action.RequestProcessor.internalModuleRelativeForward(Request
Processor.java:1023)
        at org.apache.struts.tiles.TilesRequestProcessor.internalModuleRelativeForward(Til
esRequestProcessor.java:345)
        at org.apache.struts.action.RequestProcessor.processForward(RequestProcessor.java:
572)
        at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:221)
        at com.liferay.portal.struts.PortalRequestProcessor.process(PortalRequestProcessor
.java:159)
        at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
        at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:414)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:627)
        at com.liferay.portal.servlet.MainServlet.callParentService(MainServlet.java:505)
        at com.liferay.portal.servlet.MainServlet.service(MainServlet.java:732)
        at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:269)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)

        at com.liferay.portal.servlet.filters.secure.SecureFilter.processFilter(SecureFilt
er.java:282)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)

        at com.liferay.portal.sharepoint.SharepointFilter.processFilter(SharepointFilter.j
ava:193)
        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:91)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)

        at com.liferay.portal.servlet.filters.virtualhost.VirtualHostFilter.doFilter(Virtu
alHostFilter.java:188)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:188)
        at com.liferay.portal.kernel.servlet.BaseFilter.processFilter(BaseFilter.java:154)

        at com.liferay.portal.kernel.servlet.BaseFilter.doFilter(BaseFilter.java:94)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:188)
        at org.tuckey.web.filters.urlrewrite.UrlRewriteFilter.doFilter(UrlRewriteFilter.ja
va:738)
        at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFil
terChain.java:215)
        at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain
.java:188)
        at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:
213)
        at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:
172)
        at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.ja
va:433)
        at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
        at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)
        at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:10
8)
        at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:174)
        at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:875)
        at org.apache.coyote.http11.Http11BaseProtocol$Http11ConnectionHandler.processConn
ection(Http11BaseProtocol.java:665)
        at org.apache.tomcat.util.net.PoolTcpEndpoint.processSocket(PoolTcpEndpoint.java:5
28)
        at org.apache.tomcat.util.net.LeaderFollowerWorkerThread.runIt(LeaderFollowerWorke
rThread.java:81)
        at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:6
89)
        at java.lang.Thread.run(Thread.java:595)


Anyone knows, whats my mistake?

kind regards
Robin S., modificado 15 Anos atrás.

RE: Integrating Liferay in Moodle

Regular Member Postagens: 116 Data de Entrada: 16/09/08 Postagens Recentes
OK, I promise this is my last post in here emoticon

Again, this was a simple mistake.

You need to append the [ i ] to the hiddenVariablesArray. So just replace hiddenVariablesArray with hiddenVariablesArray[ i ], where i is the counter of the loop.

regards
thumbnail
Jonas X. Yuan, modificado 13 Anos atrás.

RE: Integrating Liferay in Moodle

Liferay Master Postagens: 993 Data de Entrada: 27/04/07 Postagens Recentes
Any updates on Moodle fully integrated with Liferay?

any examples on both Moodle and Liferay sharing same user accounts?

Thanks

Jonas Yuan
thumbnail
Manuel Hoyos, modificado 11 Anos atrás.

RE: Integrating Liferay in Moodle

Junior Member Postagens: 60 Data de Entrada: 11/06/12 Postagens Recentes
Jonas Yuan:
Any updates on Moodle fully integrated with Liferay?

any examples on both Moodle and Liferay sharing same user accounts?

Thanks

Jonas Yuan


There are any change in the status of this integration?

Thanks