1 37 38 package org.jahia.blogs.actions; 39 40 import org.jahia.data.containers.JahiaContainerList; 41 import org.jahia.data.containers.JahiaContainer; 42 import org.jahia.data.containers.ContainerSorterBean; 43 44 import org.jahia.services.version.EntryLoadRequest; 45 46 import org.jahia.data.fields.LoadFlags; 47 48 import org.jahia.exceptions.JahiaException; 49 50 import org.apache.log4j.Logger; 51 52 import java.util.Vector ; 53 import java.util.Enumeration ; 54 import java.util.Set ; 55 56 63 public class GetRecentPostTitlesAction extends AbstractAction { 64 65 static Logger log = Logger.getLogger(GetRecentPostTitlesAction.class); 67 68 private String blogID; 69 private int numberOfPosts; 70 71 72 public GetRecentPostTitlesAction(String blogID, 73 String userName, String password, int numberOfPosts) { 74 super.userName = userName; 75 super.password = password; 76 this.blogID = blogID; 77 this.numberOfPosts = numberOfPosts; 78 } 79 80 85 public Object execute() throws JahiaException { 86 super.init(); 88 89 super.checkLogin(); 91 92 super.changePage(Integer.parseInt(blogID)); 94 95 final String containerListName = super.containerNames.getValue( 97 BlogDefinitionNames.BLOG_POSTS_LIST_NAME); 98 final int containerListID = containerService.getContainerListID( 99 containerListName, Integer.parseInt(blogID)); 100 101 if (containerListID == -1) { 102 return new Vector (0); 103 } 104 105 final JahiaContainerList entryList = containerService.loadContainerList( 107 containerListID, LoadFlags.ALL, jParams); 108 109 log.debug("ContainerList for Blog: "+blogID+" is: "+containerListID); 110 111 int posts = entryList.getFullSize(); 112 113 Vector result = new Vector (numberOfPosts); 114 entryList.setCtnListPagination(numberOfPosts, 0); 115 116 if (numberOfPosts >= posts) { 117 log.debug("Getting all the posts of blog: "+blogID+ "("+ 118 numberOfPosts +" >= "+ posts + ")"); 119 Enumeration enu = entryList.getContainers(); 121 122 while (enu.hasMoreElements()) { 123 JahiaContainer postContainer = (JahiaContainer)enu.nextElement(); 124 125 result.addElement(super.createMovableTypePostInfo(postContainer)); 126 } 127 128 } else { 129 log.debug("Getting "+numberOfPosts+" recent posts of blog: "+ 131 blogID); 132 133 EntryLoadRequest elr = new EntryLoadRequest( 135 EntryLoadRequest.STAGING_WORKFLOW_STATE, 136 jParams.getEntryLoadRequest().getVersionID(), 137 jParams.getEntryLoadRequest().getLocales()); 138 ContainerSorterBean entries_sort_handler = 139 new ContainerSorterBean(containerListID, "date", true, 140 elr); 141 entries_sort_handler.setDescOrdering(); 142 143 Vector sortedList = entries_sort_handler.doSort(null); 144 145 for (int i=0; i<numberOfPosts; i++) { 146 int cntID = ((Integer )sortedList.get(i)).intValue(); 147 JahiaContainer postContainer = super.getContainer(cntID); 148 149 result.addElement(super.createMovableTypePostInfo(postContainer)); 150 } 151 } 152 153 log.debug("Post(s): "+result); 154 return result; 155 } 156 } 157 | Popular Tags |