1 31 32 package org.opencms.setup.xml; 33 34 import org.opencms.configuration.CmsConfigurationManager; 35 import org.opencms.configuration.CmsSearchConfiguration; 36 import org.opencms.configuration.I_CmsXmlConfiguration; 37 import org.opencms.file.CmsProject; 38 import org.opencms.file.types.CmsResourceTypeXmlPage; 39 import org.opencms.search.CmsVfsIndexer; 40 import org.opencms.workplace.CmsWorkplace; 41 42 import java.util.ArrayList ; 43 import java.util.List ; 44 45 import org.dom4j.Document; 46 import org.dom4j.Node; 47 48 57 public class CmsXmlAddDEHelpSearchIndex extends A_CmsSetupXmlUpdate { 58 59 60 private List m_xpaths; 61 62 65 public String getName() { 66 67 return "Add German Help search index"; 68 } 69 70 73 public String getXmlFilename() { 74 75 return CmsSearchConfiguration.DEFAULT_XML_FILE_NAME; 76 } 77 78 81 protected boolean executeUpdate(Document document, String xpath) { 82 83 Node node = document.selectSingleNode(xpath); 84 if (node == null) { 85 if (xpath.equals(getXPathsToUpdate().get(0))) { 86 CmsSetupXmlHelper.setValue(document, xpath + "/" + I_CmsXmlConfiguration.N_NAME, "German online help"); 87 CmsSetupXmlHelper.setValue(document, xpath + "/" + CmsSearchConfiguration.N_REBUILD, "auto"); 88 CmsSetupXmlHelper.setValue( 89 document, 90 xpath + "/" + CmsSearchConfiguration.N_PROJECT, 91 CmsProject.ONLINE_PROJECT_NAME); 92 CmsSetupXmlHelper.setValue(document, xpath + "/" + CmsSearchConfiguration.N_LOCALE, "de"); 93 CmsSetupXmlHelper.setValue(document, xpath 94 + "/" 95 + CmsSearchConfiguration.N_SOURCES 96 + "/" 97 + CmsSearchConfiguration.N_SOURCE, "source2"); 98 } else if (xpath.equals(getXPathsToUpdate().get(1))) { 99 CmsSetupXmlHelper.setValue(document, xpath + "/" + I_CmsXmlConfiguration.N_NAME, "source2"); 100 CmsSetupXmlHelper.setValue(document, xpath 101 + "/" 102 + CmsSearchConfiguration.N_INDEXER 103 + "/@" 104 + I_CmsXmlConfiguration.A_CLASS, CmsVfsIndexer.class.getName()); 105 CmsSetupXmlHelper.setValue(document, xpath 106 + "/" 107 + CmsSearchConfiguration.N_RESOURCES 108 + "/" 109 + I_CmsXmlConfiguration.N_RESOURCE, CmsWorkplace.VFS_PATH_LOCALES); 110 CmsSetupXmlHelper.setValue(document, xpath 111 + "/" 112 + CmsSearchConfiguration.N_DOCUMENTTYPES_INDEXED 113 + "/" 114 + I_CmsXmlConfiguration.N_NAME, CmsResourceTypeXmlPage.getStaticTypeName()); 115 } 116 return true; 117 } 118 return false; 119 } 120 121 124 protected String getCommonPath() { 125 126 return new StringBuffer ("/").append(CmsConfigurationManager.N_ROOT).append("/").append( 128 CmsSearchConfiguration.N_SEARCH).toString(); 129 } 130 131 134 protected List getXPathsToUpdate() { 135 136 if (m_xpaths == null) { 137 StringBuffer xp = new StringBuffer (256); 139 xp.append("/"); 140 xp.append(CmsConfigurationManager.N_ROOT); 141 xp.append("/"); 142 xp.append(CmsSearchConfiguration.N_SEARCH); 143 xp.append("/"); 144 xp.append(CmsSearchConfiguration.N_INDEXES); 145 xp.append("/"); 146 xp.append(CmsSearchConfiguration.N_INDEX); 147 xp.append("["); 148 xp.append(I_CmsXmlConfiguration.N_NAME); 149 xp.append("='German online help']"); 150 m_xpaths = new ArrayList (); 151 m_xpaths.add(xp.toString()); 152 xp = new StringBuffer (256); 154 xp.append("/"); 155 xp.append(CmsConfigurationManager.N_ROOT); 156 xp.append("/"); 157 xp.append(CmsSearchConfiguration.N_SEARCH); 158 xp.append("/"); 159 xp.append(CmsSearchConfiguration.N_INDEXSOURCES); 160 xp.append("/"); 161 xp.append(CmsSearchConfiguration.N_INDEXSOURCE); 162 xp.append("["); 163 xp.append(I_CmsXmlConfiguration.N_NAME); 164 xp.append("='source2']"); 165 m_xpaths.add(xp.toString()); 166 } 167 return m_xpaths; 168 } 169 170 } | Popular Tags |