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]>
----------------------------------------------------------------

  • [magn... Magnolia Forums (on behalf of Paulo Roberto de Camargo Mello Junior)
    • ... Magnolia Forums (on behalf of Paulo Roberto de Camargo Mello Junior)
    • ... Magnolia Forums (on behalf of Jan Haderka)

Reply via email to