This is my java class that is pointed in the freemarker templating:
[quote]package info.itelios.zends.magnolia.manager;
import info.magnolia.cms.beans.config.ContentRepository;
import info.magnolia.cms.core.Content;
import info.magnolia.cms.core.HierarchyManager;
import info.magnolia.cms.core.ItemType;
import info.magnolia.cms.core.MetaData;
import info.magnolia.cms.core.NodeData;
import info.magnolia.cms.util.NodeDataUtil;
import info.magnolia.context.MgnlContext;
import javax.jcr.RepositoryException;
import javax.jcr.ValueFactory;
import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
* @author pmello
*/
public class zNode {
private static final Logger log = LoggerFactory.getLogger(zNode.class);
public static void createnode() throws RepositoryException{
HierarchyManager hierarchyManager = MgnlContext.getHierarchyManager(
ContentRepository.WEBSITE );
Content parentPage =
hierarchyManager.getContent("/path/to/parent/page");
ValueFactory valueFactory =
hierarchyManager.getWorkspace().getSession().getValueFactory();
Content newPage = parentPage.createContent("page-name",
ItemType.CONTENT.getSystemName() );
MetaData meta = newPage.getMetaData();
meta.setCreationDate();
meta.setModificationDate();
meta.setTemplate( "your-template" );
newPage.setNodeData("title", valueFactory.createValue( "Default Title
for New Page" ) );
parentPage.save();
}
/** dados de entrada
* workspace,
* titulo,
* data
*
*/
public boolean gerenciaHierarquiaSite(String path, String titulo, String
data, String frequencia)
{
//recupera o caminho workspace que vai explodir o conteudo
//com a data, quebra em ano, mes e semana
//identifica a frequencia
//de acordo com a frequencia verifica ou cria a estrutura existe um
getorcreate(path)
//ao final da cria??o da estrutura cria o conteudo. se criado
corretamente,
//se criado corretamente, fecha a popup
//redireciona para a pagina criada.
boolean flag = false;
try{
Date dt_news = formataData("29/06/2011");
Calendar calendar = Calendar.getInstance();
calendar.setTime(dt_news);
int ano = calendar.get(Calendar.YEAR);
int mes = calendar.get(Calendar.MONTH+1);
int semanal = calendar.get(Calendar.WEEK_OF_YEAR);
HierarchyManager hierarchyManager =
MgnlContext.getHierarchyManager( ContentRepository.WEBSITE );
Content parentPage = hierarchyManager.getContent(path);
NodeData newNodeParent = NodeDataUtil.getOrCreate(parentPage,
String.valueOf(ano));
ValueFactory valueFactory =
hierarchyManager.getWorkspace().getSession().getValueFactory();
Content newPage =
newNodeParent.getReferencedContent().createContent(titulo,
ItemType.CONTENT.getSystemName() );
MetaData meta = newPage.getMetaData();
meta.setCreationDate();
meta.setModificationDate();
meta.setTemplate( "automatictemplate" );
newPage.setNodeData("title", valueFactory.createValue( "Default
Title for New Page" ) );
newNodeParent.save();
flag = true;
}catch(Exception ex){
log.error("Erro para salvar email: " + ex.getMessage());
}
return flag;
}
public boolean gerenciaHierarquiaSite(){
return
gerenciaHierarquiaSite("website/demo-features/modules/public-user-registration/",
"TESTEEEE", "29/06/2011", "teste");
}
public static Date formataData(String data){
Date date = null;
try {
DateFormat formatter = new SimpleDateFormat("dd/MM/yyyy");
date = (Date)formatter.parse(data);
} catch (ParseException e) {
}
return date;
}
public boolean isPost() {
return
MgnlContext.getWebContext().getRequest().getMethod().equals("POST");
}
}[/quote]
--
Context is everything:
http://forum.magnolia-cms.com/forum/thread.html?threadId=9081f420-ba5f-4df5-9297-d4acb399b8f9
----------------------------------------------------------------
For list details see
http://www.magnolia-cms.com/community/mailing-lists.html
To unsubscribe, E-mail to: <[email protected]>
----------------------------------------------------------------