cancel
Showing results for 
Search instead for 
Did you mean: 

Modificando Alfresco

melongris
Champ in-the-making
Champ in-the-making
Hola, tengo que hacer algunas modificaciones en Alfreco y la verdad es que estoy hecho un lío.

Tengo Alfresco instalado, lo he probado y todo parece que funciona bien. Tengo eclipse y el SDK y aquí es donde me he perdido, porque no encuentro lo que tengo que modificar para que salga lo que yo quiero.

Por poner un ejemplo. Supongamos que voy a crear contenido nuevo y que al final, cuando relleno las propiedades, quiero que como título me salga un comboBox con tres posibles elecciones. ¿Qué archivos debo modificar para que esto funcione? y ya de paso ¿qué tengo que hacer para visualizar los cambios?

Sé que el ejemplo parece bastante absurdo y estúpido, pero sabiendo la respuesta sabré por donde tirar, porque de verdad que estoy totalmente perdido.
18 REPLIES 18

pablo_zapico
Champ in-the-making
Champ in-the-making
Buenos dias… Quieres crear un tipo de contenido nuevo o quieres añadir contenido al gestor?..

1) Si quieres crear un tipo de contenido nuevo tienes que tocar una serie de xml en alfresco\tomcat\shared\classes\alfresco\extension

           - Para ser exactos tendrias que tocar este fichero web-client-config-custom.xml y despues crearte dos xml donde defines y cargar tu tipo de contenido
           - Puedes configurar tu tipo de contenido para que una de las propiedades sea un combo

2) Si quieres añadir contenido desde la api, tienes tambien varias opciones:

           a) Servicios Web (la mas sencilla)
           b) JCR
           c) first foundation api 


Para los servicios web, el ejemplo del sdk viene muy bien, solo tienes que configurar la ip, puerto y usuario para establecer la conexion.

pablo_zapico
Champ in-the-making
Champ in-the-making
Para crear un combo con varias opciones, en el xml que se define el tipo de contenido


   <property name="ge:carStatus">
      <title>CAR Status</title>
         <type>d:text</type>
         <protected>false</protected>
         <mandatory>true</mandatory>
         <multiple>false</multiple>   
         <constraints>
            <constraint ref="ge:status"/>
         </constraints>
   </property>

   <constraints>
      <constraint name="ge:status" type="LIST">
         <parameter name="allowedValues">
            <list>
               <value>New</value>
               <value>In process</value>
               <value>Closed</value>
            </list>
         </parameter>
      </constraint>      
   </constraints>


En el primer bloque se define la propiedad a la cual se le añade una constraint que es la lista con los valores.

Saludos

melongris
Champ in-the-making
Champ in-the-making
Gracias por las respuestas.

De momento, me interesa meter metadatos propios (y poder verlos) y luego creo que tendría que modificar otras partes de Alfresco, pero quiero centrarme primero en esta parte.

Miraré lo que me has escrito a ver si saco algo en claro, porque estas últimas dos semanas, me han mandado a hacer tantas cosas tan diferentes, que después de leer tanta documentación de todo, yo ya no coordino y no sé si no doy pie con bola por torpeza propia o porque mi cerebro está a punto de estallar.

pablo_zapico
Champ in-the-making
Champ in-the-making
Si necesitas ayuda me dices… en lo que pueda te ayudare…

un saludo

melongris
Champ in-the-making
Champ in-the-making
Bueno, pues después de estar largo rato dándole al tema, acudo de nuevo por aquí en busca de ayuda.

Teniendo en cuenta lo que me ha dicho pablo.zapico y siguiedo un ejemplo que encontré, intenté hacer una primera modificación, pero no ha habido forma ninguna de que hacerlo funcionar y empiezo a desesperar.

La cuestión es que creé un fichero llamado NewModel-context.xml con el siguiente contenido:

    <!– Registration of new models –>   
    <bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
        <property name="models">
            <list>
           <value>alfresco/extension/NewModel.xml</value>
            </list>
        </property>
    </bean>

Por tanto se ve que también que creé un archivo llamado NewModel.xml y a partir de aquí la cosa dejó de ir bien y no sé si es que el ejemplo no estaba bien o que se obvia algún dato importante, por lo que, si no es mucha molestia me gustaría que alguien me dijese, que debo poner en este archivo (y luego en el web-client-config-custom.xml) para que simplemente a la hora de definir las propiedas (o metadatos) tras crear nuevo contenido, salga un campo más que podría ser el que pablo.zapico definió antes.

Muchas gracias

ajimenez
Champ in-the-making
Champ in-the-making
No se si le has echado un vistazo a la mini-guia de creación de contenidos con propiedades de forma personalizada…
Mini-Guia Creación contenido

Ahí viene bastante bien explicado y te dice todo lo que tienes que tocar.  Espero que te sirva.

Un saludo.

pablo_zapico
Champ in-the-making
Champ in-the-making
Buenas, si puedes pega lo que tienes en el NewModel y en el web-client-config-custom.xml para ver lo que puede estar mal… Te da algun error al iniciar alfresco, si es asi y lo pegas igual te puedo ayudar…

cesarista
World-Class Innovator
World-Class Innovator
Hola melongris:

La cuestión es que creé un fichero llamado NewModel-context.xml con el siguiente contenido:

    <!– Registration of new models –>   
    <bean id="extension.dictionaryBootstrap" parent="dictionaryModelBootstrap" depends-on="dictionaryBootstrap">
        <property name="models">
            <list>
           <value>alfresco/extension/NewModel.xml</value>
            </list>
        </property>
    </bean>

En principio, esto es lo que aparece documentado en muchos sitios, pero según mi experiencia he tenido que declarar los nuevos modelos en un fichero de contexto existente como example-model-context.xml o custom-model-context.xml

No se si esto os ha pasado.

Un saludo.

–C.

melongris
Champ in-the-making
Champ in-the-making
Muchas gracias por las respuesta, en especial por el enlace a la mini-guía que me ha ayudando mucho a comprender determinadas cosas, sin embargo, sigo estancado, porque a pesar de seguir la guía, cuando vuelvo a arrancarlo, aparentemente no veo ningún tipo de cambio.

El código de newModel.xml sigue siendo el mismo que puse antes y el código de newModel.xml y web-client-config-custom.xml es el que aparece en la mini-guía con los cambios sugeridos para contenidos.

newModel.xml
<?xml version="1.0" encoding="UTF-8"?>

<!– Modelo personalizado –>

<model name="ajv:modeloPersonalizado" xmlns="http://www.alfresco.org/model/dictionary/1.0">

   <!– Optional meta-data about the model –>  
   <description>Modelo personalizado</description>
   <author>Adrian E. Jimenez Vega</author>
   <version>1.0</version>

   <imports>
        <!– Importamos definiciones de Alfresco, concretamente el diccionario de datos y el modelo de contenido de Alfresco –>
      <import uri="http://www.alfresco.org/model/dictionary/1.0" prefix="d"/>
      <!– Import Alfresco Content Domain Model Definitions –>
      <import uri="http://www.alfresco.org/model/content/1.0" prefix="cm"/>
   </imports>

   <!– Registramos el Nuevo namespaces que se utilizara en este modelo –>
   <!– NOTE: The following namespace custom.model should be changed to reflect your own namespace –>
   <namespaces>
      <namespace uri="modelo.miniguia" prefix="ajv"/>
   </namespaces>
     
  <types>
   <!– Definicion de los tipos de contenido personalizados –>
  
   <!–  Definicion del tipo de contenido ajv:carpeta –>
   <type name="ajv:carpeta">
      <title>Carpeta de Proyecto</title>
      <parent>cm:content</parent>
      <properties>
         <property name="ajv:Mail">
            <title>eMail</title>
            <type>d:text</type>
         </property>
         <property name="ajv:Proyecto">
            <title>Proyecto</title>
            <type>d:text</type>
         </property>
         <property name="ajv:Fecha">
            <title>Fecha</title>
            <type>d:date</type>
         </property>
      </properties>
   </type>  
  </types>
 
  <aspects>
   <!– Definicion de los aspectos personalizados –>
  </aspects>
</model>
web-client-config-custom.xml
   <!– New Model –>
   <config evaluator="string-compare" condition="Action Wizards">
          <subtypes>
              <type name="ajv:carpeta"/>
          </subtypes>
   </config>

   <config evaluator="string-compare" condition="Action Wizards">
          <especialise-types>
              <type name="ajv:carpeta"/>
          </especialise-types>
   </config>

   <config evaluator="string-compare" condition="Content Wizards">
      <content-types>
         <type name="ajv:carpeta"/>
      </content-types>
   </config>

   <config evaluator="node-type" condition="ajv:carpeta">
          <property-sheet>
            <show-property name="ajv:Mail"/>
            <show-property name="ajv:Proyecto"/>
            <show-property name="ajv:Fecha"/>
          </property-sheet>
   </config>
   
   <!– New Model –>

¿Alguien sabría explicarme por qué está mal o por qué no veo que se produzca ningún tipo de cambio?