Forum Ametys

Forum de la communauté Ametys

You are not logged in.

#1 17/11/2010 13:09:28

Utilisateur Ametys
Member
Registered: 10/08/2010
Posts: 42

Nouveau content type

Bonjour,
je souhaiterais créer un nouveau content type, quels sont les différents types de metadata supportés par Ametys? J'ai vu des metadata composite, et pour les types simple des string, date, mais quels sont les autres? boolean, integer, float sont-ils supportés?
Est-ce qu'il est possible de définir une metadata composite comme étant du type d'un content type déjà défini dans Ametys?

Merci d'avance

Joël

Offline

#2 17/11/2010 13:10:42

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,117

Re: Nouveau content type

Joel,

Quand tu remplis un fichier plugin.xml, le fichier doit suivre le format de la XSD associée  Cette XSD contient la liste des types supportés.

Si tu configures correctement Eclipse tu auras la complétion syntaxique

(Window / Preferences / XML / XML Catalog / User Specified Entries / Add - location : mettre l'emplacement du fichier xsd que tu auras préalablement téléchargé  - key type : schema location - key :

Voici donc la liste : binary, boolean, composite, date, double, file, long, reference, rich-text, string, user.
Ensuite, selon les types tu peux utiliser des widgets pour la saisie.
Par exemple, un type string peut être sans widget ou avec le widget 'textarea'.

>  Est-ce qu'il est possible de définir une metadata composite comme étant du type d'un content type déjà défini dans Ametys?
Non, il n'est pas possible de référencer ou d'hériter les content type entre eux. Il faut donc copier la déclaration.

Cdt,


Raphael Franchet
Expert Ametys

Offline

#3 17/11/2010 13:10:53

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,117

Re: Nouveau content type

J'ajoute ce pointer vers la liste des widgets existants  (que je viens de mettre à jour)

Raphael


Raphael Franchet
Expert Ametys

Offline

#4 26/11/2010 15:28:31

bqui
Guest
From: Nîmes
Registered: 17/11/2010
Posts: 132

Re: Nouveau content type

Bonjour,

J'ai récupéré un content type (MyFavorites) que je voudrais modifier.

Je voudrais avoir du texte avec retour à la ligne mais je n'y arrive pas !
J'ai essayé en type string (avec textarea) et en rich-text mais les retours à la ligne ne s'affichent pas.

Comment faut il faire ?

Merci,

Cordialement.

Offline

#5 26/11/2010 16:06:04

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,117

Re: Nouveau content type

Avec textarea c'est logique, car du coup la chaine de caractère stockée contient de caractères de retours chariots mais ça en HTML ça ne donne rien, sauf si vous mettez par exemple une balise <pre> autour du rendu.

Par contre en rich-text cela devrait tout à fait marcher puisque dans ce cas la chaine de caractère contient des <p>. Le problème doit dans ce cas venir de la façon que vous utiliser pour récupérer cette valeur : en effet dans le cas d'un richtext il ne faut pas faire <xsl:value-of> mais plutot quelquechose comme

<xsl:apply-templates select="metadata/content/docbook:article">
    <xsl:with-param name="level" select="2"/>
</xsl:apply-templates>

où "content" est le nom de ma métadonnée
et où le "level" à 2 veut dire que les "Titre 1" doivent être convertis en <h2>


Raphael Franchet
Expert Ametys

Offline

#6 26/11/2010 18:05:02

Nicolas Gavalda
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 32

Re: Nouveau content type

Il est aussi possible, avec un textarea, d'utiliser un petit bout de XSL transformant les retours à la ligne en balises "<br/>" :

<!-- Newline to br tag. -->
<xsl:template name="nl2br">
    <xsl:param name="input"/>
    <xsl:param name="s1"><xsl:text>
</xsl:text></xsl:param>
    <xsl:choose>
        <xsl:when test="contains($input, $s1)">
            <xsl:variable name="rest">
                <xsl:call-template name="nl2br">
                    <xsl:with-param name="input" select="substring-after($input, $s1)"/>
                    <xsl:with-param name="s1" select="$s1"/>
                </xsl:call-template>
            </xsl:variable>
            <xsl:value-of select="substring-before($input, $s1)"/>
            <br/>
            <xsl:copy-of select="$rest"/>
        </xsl:when>
        <xsl:otherwise>
            <xsl:value-of select="$input"/>
        </xsl:otherwise>
    </xsl:choose>
</xsl:template>    

Cela s'utilise comme suit ("multiligne" est ici le nom de la métadonnée) :

<xsl:call-template name="nl2br">
    <xsl:with-param name="input" select="metadata/multiligne"/>
</xsl:call-template>

Last edited by Nicolas Gavalda (02/12/2010 10:45:27)

Offline

#7 03/12/2010 13:18:01

bqui
Guest
From: Nîmes
Registered: 17/11/2010
Posts: 132

Re: Nouveau content type

Bonjour,

Merci, j'ai utilisé le nl2br qui fonctionne bien.

Pour un autre type de contenu, je voudrais du rich-text dans un repeater mais je me demande s'il n'y a pas un bug.
Le premier élément s'enregistre et s'affiche bien mais pour les suivants, les outils d'édition sont grisés et quand je saisis du texte dans ces rich-text, l'enregistrement ne se fait pas (les string sont elles bien enregistrées).

                    <cms:repeater name="link" initial-size="0">
                        <label i18n="true">PLUGINS_SITES_LINKS_SUBJECT</label>
                        <description i18n="true">PLUGINS_SITES_LINKS_SUBJECT_DESC</description>
                        <cms:add-label i18n="true">PLUGINS_SITES_LINKS_ADD</cms:add-label>
                        <cms:del-label i18n="true">PLUGINS_SITES_LINKS_DELETE</cms:del-label>
                                   <cms:metadata name="label" type="string">
                            <label i18n="true">PLUGINS_SITES_TITLE</label>
                            <description i18n="true">PLUGINS_SITES_TITLE_DESC</description>
                            <validation>
                                <mandatory />
                            </validation>
                        </cms:metadata>
                        <cms:metadata name="description" type="rich-text">
                            <label i18n="true">PLUGINS_SITES_DESCRIPTION</label>
                            <description i18n="true">PLUGINS_SITES_DESCRIPTION_DESC</description>
                        </cms:metadata>
                        <cms:metadata name="adresse" type="rich-text">
                            <label i18n="true">PLUGINS_SITES_ADDRESS</label>
                            <description i18n="true">PLUGINS_SITES_ADDRESS_DESC</description>
                        </cms:metadata>
                        <cms:metadata name="contacts" type="rich-text">
                            <label i18n="true">PLUGINS_SITES_CONTACTS</label>
                            <description i18n="true">PLUGINS_SITES_CONTACTS_DESC</description>
                        </cms:metadata>
                    </cms:repeater>

Merci,

Cordialement.

Last edited by bqui (03/12/2010 13:18:42)

Offline

#8 03/12/2010 19:27:10

Raphaël Franchet
Expert Team
From: Toulouse
Registered: 10/08/2010
Posts: 1,117

Re: Nouveau content type

Bonjour,
même si la configuration permet de faire ça, ce n'est pas malheuresement pas supporté pour le moment par Ametys.
Donc ce n'est pas un bug mais une fonctionnalité pas (encore) développée.
Raphael


Raphael Franchet
Expert Ametys

Offline

Board footer

Powered by FluxBB