cancel
Showing results for 
Search instead for 
Did you mean: 

Comment ajouter un nouveau type de documents?

lhouttem_
Champ in-the-making
Champ in-the-making

Bonjour à tous,

Je tente de créer un nouveau type de document afin de pouvoir saisir un champ supplémentaire.

J'ai suivi cette page mais je ne vois rien de nouveau quand j'utilise le bouton "Nouveau document" dans mon espace de travail.

J'ai créé ces répertoires et fichiers dans /usr/local/nuxeo-cap-5.6-tomcat/nxserver/ :

META-INF
    MANIFEST.MF

nuxeo.war
    icons
        publication100x100.png
        publication16x16.png

OSGI-INF
    types-contrib.xml
    ui-types-contrib.xml
schemas
    publication.xsd

et voici mes fichiers :

MANIFEST.MF

Manifest-Version: 1.0
Bundle-SymbolicName: org.nuxeo.project.publication;singleton:=true
Nuxeo-Component: OSGI-INF/types-contrib.xml,
 OSGI-INF/ui-types-contrib.xml

types-contrib.xml

<?xml version="1.0"?>
    <component name="org.nuxeo.project.publication.types">

        <extension target="org.nuxeo.ecm.core.schema.TypeService" point="schema">
            <schema name="publication" src="schemas/publication.xsd" prefix="pub" />
        </extension>

        <extension target="org.nuxeo.ecm.core.schema.TypeService" point="doctype">
            <doctype name="Publication" extends="Document">
                <schema name="common"/>
                <schema name="dublincore"/>
                <schema name="publication"/>
            </doctype>
        </extension>

    </component>

ui-types-contrib.xml

<?xml version="1.0"?>
<component name="org.nuxeo.project.publication.ecm.types">
    <extension target="org.nuxeo.ecm.platform.types.TypeService" point="types">
        <type id="Publication">
            <label>Publication</label>
            <icon>/icons/publication16x16.png</icon>
            <bigIcon>/icons/publication100x100.png</bigIcon>
            <description>Articles publies dans les medias</description>
            <category>SimpleDocument</category>
            <default-view>view_documents</default-view>
            <create-view>create_document</default-view>
            <edit-view>edit_document</default-view>
            <layouts mode="any">
                <layout>heading</layout>
                <layout>note</layout>
            </layouts>
        </type>
        <type id="Folder">
            <subtypes>
                <type>Publication</type>
            </subtypes>
        </type>
        <type id="Workspace">
            <subtypes>
                <type>Publication</type>
            </subtypes>
        </type>
    </extension>
</component>

publication.xsd

<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
        targetNamespace="http://project.nuxeo.org/publication/schemas/publication/">
    <xs:element name="publicationmedia" type="xs:string" />
</xs:schema>

Est-ce que quelqu'un saurait me donner une piste pour trouver ce que j'ai manqué et/ou ce que je n'ai pas bien fait?

Merci.

3 REPLIES 3

Anahide_Tchertc
Elite Collaborator
Elite Collaborator

Bonjour, Le fichier ui-types-contrib.xml devrait mentionner :

<require>org.nuxeo.ecm.platform.types</require>

Sans cette indication, les contributions sur les types parents sont peut-être écrasées par la définition originale des types (si celle-ci est déployé après).

Sinon, peut-être que les logs montrent une erreur qui pourrait donner une piste ?

Bonjour,

Marwane_K_A_
Star Contributor
Star Contributor

Je pense que le problème vient d'ici :

J'ai créé ces répertoires et fichiers dans /usr/local/nuxeo-cap-5.6-tomcat/nxserver/

Sauf erreur de ma part, créer ces documents directement à cet endroit ne peut pas fonctionner, il faut packager ces fichiers de configuration au sein d'un "bundle" Nuxeo, qu'il faudra alors déployer dans le dossier ..../nxserver/plugins/ :

http://doc.nuxeo.com/display/NXDOC55/How-to+create+an+empty+bundle (EDIT : Il doit sûrement y avoir une méthode plus simple?)

EDIT 2: A priori une méthode simple qui devrait marcher est de zipper ensemble tous les fichiers que vous avez créé, de renommer le résultat en "myproject.jar" et de le placer dans .../nxserver/plugins avant de redémarrer le serveur.

Par contre pour ce qui est des images, il faut tout d'abord mettre le dossier nuxeo.war dans un dossier web/, puis rajouter un fichier de configuration supplémentaire OSGI-INF/deployment-fragment.xml :

<?xml version="1.0" ?>
<fragment version="1">

  <install>
    <!-- Deploy web contents -->
    <unzip from="${bundle.fileName}" to="/" prefix="web">
      <include>web/nuxeo.war/**</include>
    </unzip>
  </install>

</fragment>

Arbo finale du contenu du JAR :

META-INF
  MANIFEST.MF
OSGI-INF
    types-contrib.xml
    ui-types-contrib.xml
    deployment-fragment.xml
schemas
    publication.xsd
web
  nuxeo.war
      icons
          publication100x100.png
          publication16x16.png