Comment ajouter un nouveau type de documents?

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.

1 votes

2 answers

2560 views

ANSWER



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 ?

1 votes



Bonjour,

Où dois-je insérer la ligne <require> (j'ai essayé plusieurs endroits sans succès)?

J'ai été voir dans les logs mais je n'ai rien trouvé concernant mes fichiers. (J'ai recherché surtout la chaine "publication" dans les logs mais elle n'apparait pas.)

Je me suis aperçu au redemarrage de nuxeo qu'il disait : "Nuxeo home: /usr/local/nuxeo-cap-5.6-tomcat" j'ai donc essayé de remonter mes dossiers et fichiers d'une branche mais rien n'y fait … je n'ai toujours rien dans les logs ni rien quand je clique sur le bouton "Nouveau document" dans mon espace de travail!

J'ai oublié de préciser que je découvre complètement nuxeo et qu'il est possible que j'ai complètement raté un petit (ou un gros d'ailleurs) truc qui pourrait être la base!

Cordialement.

05/02/2013


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
0 votes