knguyen 2005/11/03 14:23:45 CET
Added files:
core/src/java/org/jahia/data/search
JahiaSearchResultSorter.java
core/src/java/org/jahia/services/metadata
CoreMetadataConstant.java
core/src/java/org/jahia/services/metadata/core/listeners
ContentPagePathListener.java
core/src/java/org/jahia/services/usermanager
JahiaAdminUser.java
Log:
- synchr
Revision Changes Path
1.1 +14 -0
jahia/core/src/java/org/jahia/data/search/JahiaSearchResultSorter.java (new)
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/data/search/JahiaSearchResultSorter.java?rev=1.1&content-type=text/plain
1.1 +20 -0
jahia/core/src/java/org/jahia/services/metadata/CoreMetadataConstant.java (new)
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/metadata/CoreMetadataConstant.java?rev=1.1&content-type=text/plain
1.1 +112 -0
jahia/core/src/java/org/jahia/services/metadata/core/listeners/ContentPagePathListener.java
(new)
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/metadata/core/listeners/ContentPagePathListener.java?rev=1.1&content-type=text/plain
1.1 +36 -0
jahia/core/src/java/org/jahia/services/usermanager/JahiaAdminUser.java (new)
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/services/usermanager/JahiaAdminUser.java?rev=1.1&content-type=text/plain
Index: JahiaSearchResultSorter.java
====================================================================
package org.jahia.data.search;
/**
* Created by IntelliJ IDEA.
* User: hollis
* Date: 28 oct. 2005
* Time: 12:17:38
* To change this template use File | Settings | File Templates.
*/
public interface JahiaSearchResultSorter {
public abstract void sort(JahiaSearchResult searchResult);
}
Index: CoreMetadataConstant.java
====================================================================
package org.jahia.services.metadata;
/**
* Created by IntelliJ IDEA.
* User: hollis
* Date: 26 oct. 2005
* Time: 12:43:45
* To change this template use File | Settings | File Templates.
*/
public class CoreMetadataConstant {
public static final String CREATOR = "creator";
public static final String CREATION_DATE = "creationDate";
public static final String LAST_CONTRIBUTOR = "lastConstributor";
public static final String LAST_MODIFICATION_DATE =
"lastModificationDate";
public static final String LAST_PUBLISHER = "lastPublisher";
public static final String LAST_PUBLISHING_DATE = "lastPublishingDate";
public static final String PAGE_PATH = "pagePath";
}
Index: ContentPagePathListener.java
====================================================================
package org.jahia.services.metadata.core.listeners;
import org.jahia.content.ContentObject;
import org.jahia.content.JahiaObject;
import org.jahia.data.events.JahiaEvent;
import org.jahia.data.events.JahiaEventListener;
import org.jahia.data.fields.FieldsEditHelper;
import org.jahia.data.fields.FieldsEditHelperAbstract;
import org.jahia.data.fields.JahiaField;
import org.jahia.data.fields.LoadFlags;
import org.jahia.engines.metadata.Metadata_Engine;
import org.jahia.params.ProcessingContext;
import org.jahia.registries.ServicesRegistry;
import org.jahia.services.fields.ContentField;
import java.util.HashMap;
/**
* <p>Title: </p>
* <p>Description: </p>
* <p>Copyright: Copyright (c) 2004</p>
* <p>Company: Jahia Ltd</p>
* @author not attributable
* @version 1.0
*/
public class ContentPagePathListener extends JahiaEventListener {
private static org.apache.log4j.Logger logger =
org.apache.log4j.Logger.getLogger (ContentPagePathListener.class);
private String metadataName;
public void setMetadataName(String metadataName){
this.metadataName = metadataName;
}
public String getMetadataName(){
return this.metadataName;
}
public void metadataEngineAfterInit (JahiaEvent theEvent) {
if ( metadataName == null || theEvent == null ){
return;
}
try {
String attribPrefix = Metadata_Engine.ENGINE_NAME + ".";
ProcessingContext jParams = theEvent.getProcessingContext();
HashMap engineMap = (HashMap)
jParams.getSessionState().getAttribute(
"jahia_session_engineMap");
FieldsEditHelper feh =
(FieldsEditHelper)engineMap.get(attribPrefix
+FieldsEditHelperAbstract.FIELDS_EDIT_HELPER_CONTEXTID);
String pagePath = "";
JahiaField theField = feh.getField(this.getMetadataName());
if (theField == null) {
logger.info("Requested metadata field
["+this.getMetadataName()+"] not found!");
return;
}
String fieldValue = "";
if (theField != null && theField.getValue() != null) {
fieldValue = theField.getValue().trim();
if
(fieldValue.startsWith(ContentObject.PAGEPATH_PAGEID_PREFIX)) {
pagePath = fieldValue;
} else {
if ( theField.getID()>0 ){
ContentField contentField =
ContentField.getField(theField.getID());
pagePath =
contentField.getPagePathString(jParams,true);
} else {
pagePath =
jParams.getContentPage().getPagePathString(jParams);
}
}
}
// we want to init the page Path
if ( pagePath != null &&
pagePath.startsWith(ContentObject.PAGEPATH_PAGEID_PREFIX) ){
theField.setValue(pagePath);
feh.addUpdatedField(theField.getID(),theField.getLanguageCode());
}
} catch ( Throwable t ){
logger.debug("Exception processing event
metadataEngineAfterInit",t);
}
}
public void contentObjectCreated(JahiaEvent theEvent){
ProcessingContext jParams = theEvent.getProcessingContext();
ContentObject contentObject = (ContentObject)theEvent.getObject();
if ( contentObject == null || jParams == null
|| contentObject instanceof ContentField ){
return;
}
String pagePath = "";
try {
pagePath = contentObject.getPagePathString(jParams);
JahiaField jahiaField =
contentObject.getMetadataAsJahiaField(this.getMetadataName(),jParams);
if ( jahiaField == null ){
return;
}
if ( jahiaField == null ){
return;
}
jahiaField.setValue(pagePath);
jahiaField.save(jParams);
} catch ( Throwable t ){
logger.debug(t);
}
}
}
Index: JahiaAdminUser.java
====================================================================
package org.jahia.services.usermanager;
import org.jahia.registries.ServicesRegistry;
import java.util.Set;
/**
* Created by IntelliJ IDEA.
* User: hollis
* Date: 27 oct. 2005
* Time: 15:21:14
* To change this template use File | Settings | File Templates.
*/
public class JahiaAdminUser {
public static ThreadLocal adminUserThreadLocal = new ThreadLocal();
public static synchronized JahiaUser getAdminUser(int siteId){
if ( adminUserThreadLocal == null ){
adminUserThreadLocal = new ThreadLocal();
}
JahiaUser user = (JahiaUser)adminUserThreadLocal.get();
if ( user == null ){
JahiaGroup adminGroup =
ServicesRegistry.getInstance().getJahiaGroupManagerService()
.lookupGroup(siteId,
JahiaGroupManagerService.ADMINISTRATORS_GROUPNAME);
Set members = adminGroup.getRecursiveUserMembers();
if ( members.iterator().hasNext() ){
user = (JahiaUser)members.iterator().next();
adminUserThreadLocal.set(user);
}
}
return user;
}
}