| 
 |||||||
| 
    Модели контента в Alfresco (часть 2) 
        
        
		  Время создания: 25.01.2012 16:39		  
		 
		
		 		
		
		 		
		
				  
		    Раздел: Компьютер - Управление проектами - Tomcat и Alfresco		   
		
		
		 		 
		  Запись: xintrea/mytetra_syncro/master/base/1327495182y80e0s50ak/text.html на raw.githubusercontent.com		  
		 
		
				  
  | 
 |||||||
| 
    | 
 |||||||
| 
    Продолжим начатую тему. Впереди - самое главное. Как же применить этот XML, написанный ранее? Зачем он нам? А вот сейчас посмотрим. Применение новой модели Сначала надо уведомить Alfresco о том, что у нас появилась новая модель. Это делается добавлением нового файла в директорию tomcat/shared/classes/alfresco/extension/, название файла должно соответствовать маске *-context.xml. Можно просто добавить код в стандартный custom-model-context.xml. <?xml version='1.0' encoding='UTF-8'?> <!DOCTYPE beans PUBLIC '-//SPRING//DTD BEAN//EN' 'http://www.springframework.org/dtd/spring-beans.dtd'> 
 <beans> 
 <!-- Registration of new models --> <bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap"> <property name="models"> <list> <value>alfresco/extension/request.xml</value> </list> </property> </bean> </beans> Этап 2. Добавление модели в интерфейс /alfresco В интерфейс alfresco всего 3 места, где нужно что-то изменить: 1. Content Wizard - модуль, отвечающий за загрузку новых документов. Чтобы мы могли выбрать для нового документа принадлежность к нашему типу. Находим/создаем в той же директории tomcat/shared/classes/alfresco/extension/ файл web-client-config-custom.xml и добавляем туда следующие строки: <config evaluator="string-compare" condition="Content Wizards" replace="true"> <content-types> <type name="itd:Request" /> </content-types> </config> После этого получаем такой результат: 
 2. Вторым этапом добавляем свойства файла. Какие и как должны показываться? Самый простой вариант: <config evaluator="node-type" condition="itd:Request"> <property-sheet> <show-property name="itd:Number" /> <show-property name="itd:Category" /> <show-property name="itd:Status" /> <show-association name="itd:relatedDocuments" /> </property-sheet> </config> Все в соответствии с моделью: свойства, ассоциации. Конечно же эту часть можно делать более сложно и с множеством рюшечек, но сейчас у нас цель - просто понять, как это счастье нам покажется. А вот так: При редактировании: 
 Потом просто так: 
 А где же мы потеряли аспекты? 3. А аспекты мы описываем в разделе Action Wizards - Rule Wizard. Добавляем в tomcat/shared/classes/alfresco/extension/ файл web-client-config-custom.xml строки <config evaluator="string-compare" condition="Action Wizards" replace="true"> <aspects> <!-- добавляем все аспекты, которые успели создать в моделе--> <aspect name="itd:Severity" /> </aspects> 
 <subtypes> <type name="itd:Request" /> </subtypes> </config> Далее добавление действий на аспекты выглядит примерно так: 
 С вашего позволения точнее описывать пока что не буду, спать хочется.. Если есть вопросы по реализации конкретного аспекта - пишите в комменты, а вообще пробуйте.. Этап 3. Добавление модели в интерфейс /share Во первых, нужно научиться загружать документы нашего типа. Это делается в файле tomcat/webapps/share/WEB-INF/classes/alfresco/site-webscripts/org/alfresco/components/upload/flash-upload.get.js. Требуется добавить наш тип в список, либо изменить существующий на новый. Мы облегчим задачу и просто удалим все типы кроме нашего. function getContentTypes() { var contentTypes = [ { id: "itd:Request", value: "itd_Request" }]; 
 return contentTypes; } model.contentTypes = getContentTypes(); После этого все загружаемые документы будут нашего типа. Следующим этапом отображаем новые свойства в метаданных. Для этого нужно найти (или создать) файл tomcat/shared/classes/alfresco/web-extension/share-config-custom.xml. По аналогии с web-client-config-custom.xml получается такой файл: <alfresco-config> <config evaluator="node-type" condition="itd:Request"> <forms> <form> <field-visibility> <show id="itd:Number" /> <show id="itd:Category" /> <show id="itd:Status" /> <show id="itd:relatedDocuments" /> <show id="cm:name" /> </field-visibility> </form> </forms> </config> </alfresco-config> Вот и все. Ничего нереального, но это помогает заметно упростить категоризацию и обработку документов, обладающих определенными свойствами. Олег Китаков okitakov [AT] itd-systems [DOT] ru ITD Systems  | 
 |||||||
| 
    
 
 Так же в этом разделе:
  
  
  | 
 |||||||
      
   | 
 |||||||
   
   
  | 
 |||||||
   
  |