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;
      }
  
  
  }
  

Reply via email to