You are not logged in.
L'antispam est intégré par défaut.
Faites un lien de type "externe" et entrez le sous la forme : "mailto:test@onion.com"
Regardez le source généré : le lien est crée par javascript, et vous pouvez tester en desactivant javascript.
Pour ce qui est de l'automatisme, seul IE sait faire ça : lorsque vous saisissez un estpace après une adresse mail, il la converti en lien "externe" tout seul est cela fonctionne directement avec l'antispam.
Bonjour,
les pages et les contenus dans Ametys sont deux notions différentes.
vous avez les pages hierarchiques d'un coté qui référence des contenus pris dans un pool de contenus.
actuellement, dans la plupart des cas, vous créez un contenu qui est directement affecté à une page
lorsque vous supprimez cette affectation, le contenu n'est plus référencé par la page mais reste vivant dans le pool
on dit alors qu'il est "orphelin"
certains contenus comme les newsletters sont orphelins, mais c'est normal.
au niveau du site, les contenus orphelins peuvent apparaitre via des remontés de contenus s'ils ont une version validée.
ce qu'il faut faire c'est donc de supprimer les contenus orphelins qui vous gène.
pour cela, ouvrez la recherche du backoffice, chercher tout puis triez sur la colonne orphelin : sélectionnez les contenus en question et faites "Supprimer"
Il y a donc bien deux notions différentes : dans le premier cas, les contributeurs ne supprime que l'affectation à la page, alors que dans le deuxième on supprime le contenu de manière irréversible.
En effet, la déclaration des types de contenus se passent dans des plugins (plugin.xml) mais peuvent aussi se faire dans l'application directement (WEB-INF/param/content-types/web/<id de votre content type>.xml)
Tous les types de contenus du noyau sont définis dans des plugins sur lesquels vous n'avez pas la main car les fichiers sont stockés dans des jar.
Heureusement, depuis la version 3.1, vous pouvez modifier les vues des types de contenus au niveau de l'application (même s'ils sont déclarés dans des jars)
Pour cela dans WEB-INF/param/content-types/_override/<id de votre content type>.xml vous pouvez surcharger (ou rajouter) les vues(=metadataSet) d'un content type déjà défini.
Je n'ai pas d'exemple sous la main, donc il va falloir tatonner
Pour les articles par exemple, je crois qu'il faut mettre l'identifiant complet "org.ametys.web.default.Content.article"
Ensuite pour le contenu du fichier, il faut recopier la partie de la déclaration du type de contenu qui vous importe (ici la vue d'édition)
<article xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:cms="http://www.ametys.org/schema/cms"
xsi:schemaLocation="http://www.ametys.org/schema/cms http://www.ametys.org/schema/cms-3.0.xsd">
<cms:metadata-set name="main" type="edition">
<cms:metadata-ref name="title" />
<cms:metadata-ref name="document-subtitle" />
<cms:metadata-ref name="illustration">
<cms:metadata-ref name="image" />
<cms:metadata-ref name="alt-text" />
</cms:metadata-ref>
<cms:metadata-ref name="abstract" />
<cms:metadata-ref name="content" />
<cms:metadata-ref name="comment" />
<cms:metadata-ref name="contact">
<cms:metadata-ref name="name" />
<cms:metadata-ref name="mail" />
</cms:metadata-ref>
<cms:dublin-core/>
</cms:metadata-set>
</article>
il ne vous reste qu'à commenter la ligne qui référence la métadonnée "comment", à redémarrer l'application et à vérifier que la case à cocher à bien disparu des articles.
Ensuite, il faut refaire le travail avec vos autres types de contenus.
Par exemple, pour les actualités, le fichier initial est ici (il contient l'identifiant complet du type de contenu ainsi que la déclaration actuelle de la vue d'édition)
Est-ce que ce que je raconte est clair ?
Bonjour,
non ce n'est pas possible directement.
Vous avez deux possibilité :
1) soit vous faites disparaitre la case à cocher 'Activer les commentaires' au moment de l'édition (mais les contenus actuellement commentables le resteront)
2) soit graphiquement, les rendus des types de contnus peuvent ne rien faire quand un article est commentable.
au niveau réalisation,
1) lorsqu'on décrit un type de contenu, on définit les métdadonnées qui le compose mais aussi la façon d'afficher l'écran d'édition : l'idée serait d'enlever la réference à la métadonnée commentable. Cela doit être fait, type de contenu par type de contenu. Pour ceux que vous avez défini vous même: pas de problème, pour ceux définit par le noyau : vous pouvez surcharger cela.
2) l'idée est là de modifier tous les rendus des types de contenus incréminés pour retirer les lignes qui font le rendu des commentaires (<xsl:call-template name="comments-head"/> et <xsl:call-template name="comments"/>) ; de même pour vos rendus, pas de problème, pour ceux du noyau il faut surcharger la xsl.
En fait, tout dépend de si vous avez déjà surchargé tous les rendus pour votre charte graphique.
Si vous souhaitez faire la solution 1) je peux revenir plus en détail sur la faàon de surcharger la vue d'édition d'un type de contenus
Bonne année aussi.
La remontée de contenu, comme son nom l'indique remonte des contenus (et pas des pages).
Eventuellement, ces contenus peuvent être rattachés à des pages, ce qui est positionné dans le html qui en entrée du rendu d'un contenu.
C'est donc bien dans le rendu de la vue utilisée par la remontée de contenu qu'il faut travailler (par exemple, article-abstract.xsl).
Est-ce que votre charte graphique surcharge déjà ce rendu ? ou sinon savez-vous comment faire pour surcharger ce rendu ?
Les solutions proposées me paraissent les plus simples.
Si maintenant vous voulez faire mieux on va tomber dans le développement dont l'idée serait d'ajouter un bouton à l'éditeur en ligne "Mon contenu ici" qui insère un marqueur (un peu comme le htmlexpert) et au moment du rendu du contenu le marqueur est remplacé par le contenu lui même. Je pense que c'est une voix un peu longue et complexe mais c'est au moins un bon exercice
Bon la zone apparait bien et à l'air bien déclarée.
Si elle n'est pas cliquable ça peut donc être dû à un pb de CSS ou de JS.
Est-ce qu'il y a une erreur JS ? (le mieux est d'utiliser FireBug pour Firefox par exemple)
et sinon si c'est du CSS, il faut simplifier la skin petit à petit jusqu'à ce que ça refonctionne...
par exemple vous pouvez commencer par retirer les appels à toutes les css et voir si ça marche,
si ça marche tjrs pas, ça peut venir de la structure HTML de votre skin
si ça marche, c'est un pb purement CSS
dans ce cas vous pouvez en remettre une... puis deux...
quand vous tomber sur la CSS fautive, vous pouver commenter une partie du fichier
et ainsi de suite jusqu'à tomber sur la règle CSS fautive
à vue de nez, ça peut être dû à des DIV en relative ou en float right, qui se passent les uns au dessus des autres
(si par contre cela vient de la structure HTML, simplifiez votre charte en commentant des pans entiers, désactivez vos appels JS -menus...- )
Tenez-nous au courant, nous essayons dans la mesure du possible de blinder notre code contre les skins capricieuces, donc quand vous aurez localisé le problème, on pourra voir si Ametys peut se blinder encore plus pour que ça ne se reproduise plus
Bon debug en tous cas
Est-ce que vous pouvez mettre une capture d'écran de ce que vous voyez dans le backoffice ?
Dans la sitemap du service, cela implique donc de se passer des paramètres à la xsl du service
<map:transform src="ma_feuille_de_style.xsl">
<map:parameter name="cms-context" value="{cmscontext:contextWorkspacePath:{request-attr:siteName}}"/>
<map:parameter name="template" value="{request-attr:template}"/>
<map:parameter name="lang" value="{request-attr:sitemapLanguage}"/>
<map:parameter name="plugin" value="{request-attr:pluginName}"/>
</map:transform>
(on en dispose ici dans les attributs de requêtes car le service prend place dans une page)
et dans la xsl, pour créer les liens
<a href="{$cms-context}/{$lang}/_plugins/{$plugin}/{$template}/monurldansmasitemapdeplugin.html">...</a>
après avoir en en-tête déclaré tous les paramètres
<xsl:param name="cms-context"/>
<xsl:param name="plugin"/>
<xsl:param name="lang"/>
<xsl:param name="template"/>
La page qui contient le service peut renvoyer vers des urls en :
SITE / LANG / _plugins / PLUGINNAME / TEMPLATE / url
Attention! le site doit être présent coté back mais pas coté front. Il faut utiliser le cms-context input module pour cela.
De même il peut être intéressant de récupérer le template utilisé par la page au lieu d'ne choisir un de manière figée.
Ensuite le HTML renvoyé peut contenir plusieurs <body> qui doivent contenir un id portant le nom de la zone du template à remplir. ex:
<html>
<head></head>
<body id="default">Contenu à mettre dans la zone default</body>
<body id="left">Contenu à mettre dans la zone left</body>
</html>
Bonjour,
Dans Ametys, les pages prennent plancent dans une arborescence et donc à ce titre ne sont jamais orphelines (on peut les retrouver via le plan du site - coté contributeur ou visiteur - ou par le moteur de recherche visiteur).
Par contre, les contenus eux, peuvent être liés ou non à des pages, et à ce titre être orphelins : parfois c'est volontaire (comme les newsletters, parfois non : c'est le cas d'un contenu supprimé d'une page mais qui reste présent dans le pool de contenus)
Pour trouver les contenus orphelins, vous pouvez faire une recherche dans le cms (ce n'est pas un critère de recherche mais c'est une colonne de résultat par laquelle vous pouver trier)
Une fois que vous les avez, vous pouvez les sélectionner et les supprimer (en faisant attention de ne pas supprimer les contenus qui sont volontairement orphelins)
Bonjour et merci
Les JVM de sun sont dotées de deux espaces mémoire (visible dans l'admin).
Le permier sert à charger les objects etc... il se configure avec -Xmx512m
Le deuxième sert à charger les librairies (le code java lui même) et il se configure avec -XX:MaxPermSize=128M
Il s'agit de deux espaces mémoire séparés.
C'est ce deuxième qui vous pose problème. Par défaut il doit valoir 64M (ou 96M si vous avez l'option -server), mais 128M sont nécessaire à cause de toutes les librairies qui sont incluses.
Voilà !
Bonjour Didier,
En fait la charte de démo (common.xsl ligne 288) boucle sur les pages étiquettées RUBRIQUES puis pour chacune sur les pages étiquettées SOUS_RUBRIQUES.
Il suffit donc d'jouter une nouvelle boucle à l'intérieur et là, faites le sur la condition qui vous arrange : soit en réutilisant l'étiquette SOUS-RUBRIQUE, soit avec une nouvelle étiquette SOUS SOUS RUBRIQUE, soit en bouclant sur toutes les sous-pages (sans étiquette spécifique)
pour ajouter une nouvelle étiquette dans la charte, rdv dans le fichier tags/tags.xml (je crois que c'est documenté dans le wiki - partie anglaise -)
Voilà
Non malheureusement pas aujourd'hui.
Nous avons dans les cartons de créer des "macros", pour pouvoir par exemple en un clic : créer une page avec le gabarit "page" et un contenu de type "Article". Mais rien n'est planifié pour le moment.
Merci
J'ai ouvert et corrigé le ticket
Il était temps, on s'apprête à livrer la version 3.1 finale
Oui jon.
Il y a un exemple dans la charte graphique de démo pour se brancher à Facebook.
<xsl:value-of select="concat($absolute-raw-context, '/', $lang, '/', $document, '.html')"/>
Pour créer un service, il faut le déclarer dans un plugin.xml
Voici l'exemple du service "plan du site"
<feature name="sitemap-service">
<extensions>
<extension point="org.ametys.web.service.ServiceExtensionPoint"
class="org.ametys.web.service.StaticService"
id="org.ametys.web.service.SitemapService">
<url>service/sitemap.html</url>
<cacheable>true</cacheable>
<label i18n="true">PLUGINS_WEB_SERVICE_SITEMAP_LABEL</label>
<description i18n="true">PLUGINS_WEB_SERVICE_SITEMAP_DESCRIPTION</description>
<thumbnail>
<small>img/service/sitemap_16.png</small>
<medium>img/service/sitemap_32.png</medium>
<large>img/service/sitemap_48.png</large>
</thumbnail>
<parameters>
<parameter name="header" type="string">
<label i18n="true">PLUGINS_WEB_SERVICE_SITEMAP_TITLE</label>
<description i18n="true">PLUGINS_WEB_SERVICE_SITEMAP_TITLE_DESC</description>
</parameter>
<parameter name="depth" type="long">
<label i18n="true">PLUGINS_WEB_SERVICE_SITEMAP_DEPTH</label>
<description i18n="true">PLUGINS_WEB_SERVICE_SITEMAP_DEPTH_DESC</description>
<default-value>-1</default-value>
</parameter>
<parameter name="all" type="string">
<label i18n="true">PLUGINS_WEB_SERVICE_SITEMAP_FROM</label>
<description i18n="true">PLUGINS_WEB_SERVICE_SITEMAP_FROM_DESC</description>
<enumeration>
<entry>
<label i18n="true">PLUGINS_WEB_SERVICE_SITEMAP_FROM_ALL</label>
<value>true</value>
</entry>
<entry>
<label i18n="true">PLUGINS_WEB_SERVICE_SITEMAP_FROM_CURRENT_PAGE</label>
<value>false</value>
</entry>
</enumeration>
</parameter>
<parameter name="xslt" type="string">
<label i18n="true">PLUGINS_WEB_SERVICE_SITEMAP_XSLT</label>
<description i18n="true">PLUGINS_WEB_SERVICE_SITEMAP_XSLT_DESC</description>
<default-value>pages/services/sitemap/sitemap.xsl</default-value>
<enumeration>
<custom-enumerator class="org.ametys.web.service.ServiceXSLTEnumerator">
<path>pages/services/sitemap</path>
</custom-enumerator>
</enumeration>
</parameter>
</parameters>
</extension>
</extensions>
</feature>
Dans votre cas, vous pouvez retirer les paramètres qui ne vous servent à rien, vous pouvez passer cachable à false.
(si vous n'avez pas besoin d'internationnaliser le backoffice, vous pouvez remplacer par exemple <label i18n="true">CLEFI18N</label> par <label i18n="false">Mon service</label>)
Ensuite, comme vous le voyez, un service est caractérisé par une url.
Il faut donc ajouter un pipeline cocoon à la sitemap.xmap de votre plugin pour gérer cette url ; le but de ce pipeline est de renvoyer un html vide dans votre cas
<html>
<head></head>
<body></body>
</html>
Pour ça dans la sitemap il faut mettre un pipeline comme celui-ci :
<map:match pattern="service/sitemap.html">
<map:generate type="action-result"/> <!-- c'est un générateur qui ne fait rien de particulier -->
<map:transform src="pages/maxsl.xsl"/>
<map:serialize/>
</map:match>
et ensuite dans votre plugin vous créez le fichier "pages/maxsl.xsl" qui match / et qui créé le html que j'ai mis un peu plus haut
Attention ! Les modifications de plugin.xml nécessite un redémarrage.
Par contre, pour la sitemap et les xsl ce n'est pas la peine.
ps: pensez aussi à changer l'id de votre service dans le plugin.xml, sinon le CMS refusera de démarrer.
Quand vous travaillez sur des snapshots, c'est principalement le répertoire WEB-INF/lib qui change.
Donc "Stoper le tomcat, renommer WEB-INF/lib en WEB-INF/old, copier les lib du nouveau package" peut suffire ; mais pas toujours...
En effet cela peut être fastidieux, mais c'est le "prix à payer" pour travailler sur la toute dernière version
Une fois que la 3.1 sera sortie (d'ici la fin de la semaine) vous serez plus tranquille.
Bonjour,
Donc il y avait bien un problème avec les droits de ce plugin : c'est rectifié et disponible dans le snapshot de cette nuit.
Merci encore pour ce retour.
Bonjour à tous les deux,
j'ai pris le snapshot de cette nuit en version auto-installable
Et en effet, il doit y avoir un problème dans la gestion des droits : nous avons modifier quelque chose là dessus tout dernièrement : nous regardons d'où cela peut venir.
Merci à tous les deux pour avoir vu ce problème.
Je pense que oui et c'est plus ou moins facile : en fait cela dépend de où vous en avez besoin.
Est-ce dans un template ? ou bien est-ce dans le rendu du type de contenu ?
FACILE :
Dans le cas d'un rendu de type de contenu, les étiquettes de contenus sont dans /content/tags
Par exemple vous pouvez faire :
<xsl:if test="tags/MON_ETIQUETTE">...</xsl:if>
DIFFICILE :
Dans le cas d'un template c'est plus compliqué : vous n'avez pas le contenu lui-même en entrée mais le rendu du contenu (rendu qui dépend d'ailleurs de la vue que vous utilisé). Donc en fait il faut que vous vous passiez l'information à travers la vue : pour cela vous pouvez le mettre en <meta> de tous les rendus de votre contenu (en utilisant la solution au-dessus) et dans votre gabarit vous allez chercher dans /cms/page/pageContents/zone/zoneItem/html/head/meta...
c'est plus compliqué et pour cause : les cas où le gabarit doit être influé par une étiquette de contenus sont rares ! (je parle bien du gabarit et pas du rendu du contenu)
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
Vous avez raison, j'avais oublié de vous prévenir.
Désolé
Ca y est, c'est ajouté
A partir du snapshot de demain, les scripts font partie de la livraison ; la doc d'installation a aussi été mise à jour.
Là on doit être sur des problèmes de cache (soit de tomcat, si vous avez juste mis les jars à jour - soit de firefox - soit des deux)
en effet, la correction se situant dans un fichier js, tous ces caches sont mis en action