Wellcome!

In Cms Howto you'll find updated tutorials to work with Alfresco, Liferay, and other cms software. In a world without information, Cms Howto is the solution.

Wednesday, December 2, 2009

Tuesday, November 24, 2009

Creating a webscript dashlet in Alfresco

To develop a custom dashlet in Alfresco we need 3 things:

- A Webscript.
- A Jsp.
- A Freemarker template.

1.- Firstly, create a webscript with the actions that you want to show in Alfresco Dashboard. WebScripts WikiPage.

For example:
\tomcat\webapps\alfresco\WEB-INF\classes\alfresco\templates\my_webscript.ftl

2.- Create a Jsp for the dashlet in: \tomcat\webapps\alfresco\jsp\extension\dashboards\dashlets\my_webscript.jsp with this content:





3.- Add to web-client-config-custom.xml the next config:



Finally restart Alfresco and configure the dashboard to show your new dashlet.

Tuesday, November 17, 2009

Changing the LifeRay context

In LifeRay we can found different types of urls, such as /c, /d, /theme, etc. It would be useful that all urls began by the same string, for example /portal. In that case we´ll have:

/portal/c../
/portal/d../
/portal/theme../

This allows Apache to handle easily the Liferay urls. To do that:

1.- Firstly, shutdown LifeRay.

2.- Edit portal-ext.properties, and add:

portal.ctx=/portal
portlet.virtual.path=/portal

3.- Rename the /ROOT folder to /portal in TOMCAT_HOME/webapps.

4.- Rename "tomcat-6.0.18/conf/Catalina/localhost/ROOT.xml"  to "tomcat-6.0.18/conf/Catalina/localhost/portal.xml".

5.- Delete the content of the folders /temp and /work in TOMCAT_HOME (delete the tomcat cache).

6.- Restart LifeRay.

Probably we must redo the Lucene Index in LifeRay control panel. Finally we can go to the LifeRay home page at:

http://localhost/portal

Monday, November 9, 2009

Api JavaScript samples in Alfresco

Alfresco allows us to perform actions when an event occurs, such as content creation, modification, and so on. Here are some examples of use:

Js that sent mails:

  // create mail action
  var mail = actions.create("mail");
  mail.parameters.to = "user@mail.com";
  mail.parameters.subject = "News Letter Title";
  mail.parameters.from = "alfresco@society.com";
  mail.parameters.template = search.findNode("workspace://SpacesStore/9c74d256-ff43-4437-rio5-3098c54fbc7a");
  mail.parameters.text = "Sorry, but the news letter is not available this week due to maintenance needs. Please apologize for disturbance";
  // execute action against a document
  mail.execute(document);

Js that start and advanced pooled workflow:

  var workflow = actions.create("start-workflow");
  workflow.parameters.workflowName = "jbpm$wf:reviewpooled";
  workflow.parameters["bpm:workflowDescription"] = document.name;
  workflow.parameters["bpm:groupAssignee"] = people.getGroup("GROUP_myGroup");
  var futureDate = new Date();
  futureDate.setDate(futureDate.getDate() + 7);
  workflow.parameters["bpm:workflowDueDate"] = futureDate;
  workflow.execute(document);

Js that change the name of an inbound document:

  // change the name of this document
  document.properties.name = "Backup of " + document.properties.name;
  // add a new property string
  document.properties["cm:locale"] = mylocalenode;
  // save the property modifications
  document.save();

More examples here:
Alfresco Js Api 



Saturday, November 7, 2009

Adding portlets to a theme/layout

If we want to include some portlet in all the pages of our web, we must include it into a theme or layout file (.vm or .tpl).

For example, it would be useful to have a breadcrumb portlet in the layout and not have to manually include it on every page. Even we could establish a default configuration.

Other portlets which should be included on the theme could be the language portlet, content search, navigation, etc.

The following examples show how to add a language portlet, to do that we have two posibilities:

a) Adding the portlet to portal_normal.vm with the xml configuration:








b) Adding the portlet to a hidden page, configure it and instance his portlet-id from portal_normal.vm:

Saturday, September 19, 2009

Creating a portlet clon in LifeRay

Some times we need a copy of a existing portlet, like navigation, breadcrumb, etc. We can do a copy of some portlet to instance it in the theme and have two different portlet configurations for the same type of portlet. This are the steps that we have to follow:

1. Edit liferay-display.xml and add a free id entry for that portlet.

2. Edit liferay-portlet.xml. We can copy the "..." of the origin portlet, and asign the free id of point 2.

3. Edit portlet-custom. We do the same of point 3.

4. Finally, we give a title to the portlet. Create a file in“/portal/WEB-INF/classes/content” called Language-ext_en_US.properties and add the line:
javax.portlet.title.FreeId=My_Clon_Portlet

Thursday, September 17, 2009

Expanding Alfresco JVM memory

When we launch for first time Alfresco Comunity 3.2, we get this warning:

Alfresco JVM - WARNING - maximum heap size 494.938MB is less than recommended 512MB

We have to expand the JVM memory to solve it. Go to Alfresco install home and edit the alfresco.bat/alfresco.sh file , and modify the JAVA_OPTS like that:

Linux:
export JAVA_OPTS='-Xms256m -Xmx1024m -XX:MaxPermSize=512m -server

  
Windows:
set JAVA_OPTS='-Xms256m -Xmx1024m -XX:MaxPermSize=512m -server