cancel
Showing results for 
Search instead for 
Did you mean: 

Modificar Share

nemrp
Champ in-the-making
Champ in-the-making
Hola.

Estoy tratando de cambiar algunas cosas en Alfresco Share 3.3 SP3 y me he topado con algunas dudas.

He cambiado la línea del código del archivo "header.get.html.ftl" que está en "\webapps\share\WEB-INF\classes\alfresco\site-webscripts\org\alfresco\components\header\" para que cuando se pulse el logo de Share (arriba a la izquierda) vaya a una dirección y no presente la ventana de "Acerca de Share". Se que esto no debería haberlo hecho así, pero desconozco dónde debo colocar la plantilla para que funcione en Share.

Además, quiero modificar los textos de los tooltips que aparecen en Share cuando se coloca el puntero encima de los desplegables siguientes:

    · "Checked.  Click to uncheck."
    · Unchecked.  Click to check.
    · Menu collapse. Click to expand
    · Menu expanded. Click or press ESC to collapse.
Pero estos textos están en archivos javascrip y me encuentro en la misma situación que antes: no debería tocar esos archivos y crear copias modificadas. Pero, ¿dónde coloco esas copias para que funionen en Share?.

Como véis no estoy muy puesto en esto, he leído en la wiki de Alfresco, pero no he encontrado dónde se dice que se debe colocar un archivo para que funcione en Share. Lo único más cercano que he encontrado es el ejemplo que dan en la wiki (aquí).

Un saludo y muchas gracias.
11 REPLIES 11

cristinamr
World-Class Innovator
World-Class Innovator
Buenas.

Hay por ahí algo que le llaman "buenas prácticas" en donde se especificaba, entre otras cosas, cómo se debe desarrollar (lo más óptimo posible). Entonces, yo ese manual nunca lo he visto (corre la leyenda de que había uno para una versión de alfresco antigua, pero nada de share) y como llevo algún tiempo ya con temas de share te comento:

Si vas a shared/classes/alfresco/ tienes una carpeta que es extension y otra que se llama web-extension:La primera es para personalizaciones de alfresco (aunque hay exceptiones), y la segunda es donde debes meter tus personalizaciones para el share.

Por ejemplo, si estás extendiendo (extender = meter archivo en una ubicación)  en:
\webapps\share\WEB-INF\classes\alfresco\site-webscripts\org\alfresco\components\header\

Deberías hacerlo en:
\shared\classes\alfresco\web-extension\site-webscripts\org\alfresco\components\header\

Evidentemente, tendrás que crearte las carpetas.

La idea es que cuando arrancas alfresco, lo primero que va a hacer es mirar dentro de \shared\ de forma que si en cuentra que hay un header dentro de web-extension\… será ESE el que te cargue.  El que tienes dentro de webapps\share\.. es el que trae por defecto.

¿Ventajas de hacerlo así?

Si el día de mañana tienes que actualizar el alfresco, metes un war nuevo. Cuando arranques la carpeta que tienes dentro de webapps, alfresco y share te las elimina, y te crea unas nuevas con el contenido de los wars… Por lo que TODO lo que tuvieras ahí se te va al traste.
Si extiendes sobre \shared\… no te las toca ^___^

Sé que al principio suena a "chino" pero si haces la prueba con ese archivo que has tocado por ejemplo y ya verás lo que digo  :wink:

Espero que te haya servido de orientación.

Un saludoooo!!
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

nemrp
Champ in-the-making
Champ in-the-making
Muchas gracias CristinaMR. La verdad es que conozco la existencia de esa zona (shared) y he tocado ahí bastante, pero siempre para modificar propiedades de los ".properties". He probado a meter un ".ftl", pero no me ha funcionado. Quizás no lo he hecho bien, probaré de nuevo a hacerlo tal cual me indicas. Tan sólo hay que meter la plantilla y ya está, ¿no?. No hay que añadir nada más al nombre del archivo, ¿no?.

cristinamr
World-Class Innovator
World-Class Innovator
Nop. Debes respetar la ruta de la que tomes el archivo. Te pongo el mismo ejemplo de antes:

Si coges el archivo de esta ruta: \webapps\share\WEB-INF\classes\alfresco\site-webscripts\org\alfresco\components\header\
En web-extension DEBES crear la misma jerarquía de estrutura donde vayas a desplegar el archivo. Vamos, que debes ponerlo en esta ubicación:
\shared\classes\alfresco\web-extension\site-webscripts\org\alfresco\components\header\

Si te fijas, la carpeta site-webscripts no la tienes creada por defecto, por lo que deberás crearla a mano para que alfresco pille tu personalización.
Tendrías que crear dentro del web-extension las siguiente jerarquía de carpetas: site-webscripts\org\alfresco\components\header\ y dentro de header meter el archivo tuyo customizado.

Y así con todas las modificaciones que vayas haciendo: Que por ejemplo tocas el preset.xml ( \webapps\share\WEB-INF\classes\alfresco\site-data\presets\) pues dentro de tu web-extension tendrás que crearte la cartpeta site-data, después presets y ahí dentro colocar tu archivo modificado Smiley Wink

Prueba con el primer ejemplo que te puse, el del primer post… Ya verás como funciona  :wink:

Un saludo!!!
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

nemrp
Champ in-the-making
Champ in-the-making
Hola CristinaMR.

Muchas gracias por tu ayuda. Ya he hecho la prueba con un ftl y ha salido perfecto :wink:. Ahora quiero ir un paso más allá. ¿Es posible hacer lo mismo para las hojas de estilos y los javascripts. He probado ha hacer una cosa parecida con un css pero no me ha funcionado Smiley Surprisedops:.

Un saludo y gracias de nuevo.

nemrp
Champ in-the-making
Champ in-the-making
He probado a replicar los estilos e imagenes de igual forma que se hace con las plantillas, pero no ha funcionado. Lo que he hecho es lo siguiente:

· Estilos en el servidor: \webapps\share\themes\greenTheme\
· Estilos personalizados: \shared\classes\alfresco\web-extension\themes\greenTheme\

Parece ser que sólo funciona con las plantillas porque repliqué una que está en templates y ha funcionado. Es decir:

· Plantilla en el servidor: \webapps\share\WEB-INF\classes\alfresco\templates\org\alfresco\global\
· Plantilla personalizada: \shared\classes\alfresco\web-extension\templates\org\alfresco\global\

No se si estoy haciendo algo mal o es que realmente no se puede hacer lo mismo para los css, los javascripts y las imágenes. Un saludo y gracias.

cristinamr
World-Class Innovator
World-Class Innovator
Buenas.

Disculpa la tardanza en responder (últimamente ando liadilla). Como lo has hecho es la única forma de hacerlo, son algunas de las excepciones que te vas a encontrar. Todo lo que vayas a modificar que esté en  \webapps\share\WEB-INF\classes\alfresco\   puede ser replicado dentro de \shared\classes\alfresco\web-extension\ Por lo que si te fijas la carpeta template está en \webapps\share\themes\ varios niveles arriba desde  donde sabemos que se puede extender sobre el web-extension (\webapps\share\WEB-INF\classes\alfresco\), por lo que debes hacerlo directamente sobre el despliegue, esto y todo lo que haya por arriba de \webapps\share\WEB-INF\classes\alfresco\ (archivos que estén en \webapps\share\ por ejemplo).

Es algo lioso, pero espero que mínimamente entiendas lo que te intento explicar (es muy difícil por aquí explicarlo! xD).

Un saludo!!
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc

nemrp
Champ in-the-making
Champ in-the-making
Hola CristinaMR, no te procupes, entiendo perfectamente que estés liada (me pasa lo mismo, jeje).

Si no entiendo mal, todo lo que esté de "\webapps\share\WEB-INF\classes\alfresco\" para abajo es replicable (en "\shared\classes\alfresco\web-extension\") y todo lo que esté por encima no. EN el caso de que quiera modificar algo que esté por encima hay que hacerlo dentro del servidor (dentro de la aplicación desplegada). Es así, ¿no?.

Un saludo y muchas gracias CristinaMR.

ajv
Champ in-the-making
Champ in-the-making
Buenas!

Acabo de responder una duda que está muy relacionada con ésta. Aquí el hilo reciente

Personalmente para extender todo lo que está por encima del WEB-INF de Share lo encapsulo en un jar y en el META-INF pongo las extensiones que necesite siguiendo la misma estructura de directorios que cuelga directamente de share.
Por ejemplo, si tengo que tocar el share/components/console/application.js, en el META-INF del jar pongo compontents/console/application.js con mis extensiones…y sobreescribe el comportamiento de ese javacript. Basta con dejar el jar en el share/WEB-INF/lib, y listo.
De esta forma, tengo más controlados todos los cambios que están por encima del WEB-INF pero afectan a share.

Desconozco si es buena práctica o no, porque sobre buenas prácticas y guías para extender share hay más bien poco (o nada). Es una de las cosas que se dejó ver en la última quedada informal que hicimos en Madrid…a ver si se anima alguien y nos ilumina con una especie de metodología para extender share Smiley Very Happy

Hasta pronto!

cristinamr
World-Class Innovator
World-Class Innovator
Mu' buenas ajv!

¿Has probado en vez de WEB-INF/lib a meterlo en Shared/lib?

Funciona  :mrgreen:

Saludossss!
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc