You are not logged in.
Je voudrais ajouter un nouvel attribut ldap à la liste des attributs disponible dans le plugin mypage.
Est-ce possible ?
J'ai la possibilité de l'ajouter dans
mais ce n'est bien sur pas suffisant.
Merci
Offline
Bonjour,
Quel est le but de cet attribut ? critère de recherche ? affichage ? les deux ? filtre ?
Raphael Franchet
Expert Ametys
Offline
pour afficher sur le résultat de la recherche ? ou sur la fichier détaillée d'une personne ?
Raphael Franchet
Expert Ametys
Offline
Donc ce qu'il faut c'est l'ajouter aux attributs du type de contenu mypage.
Ensuite, il suffira de le sélectionner dans le service (partie critères affichés).
Est-ce que vous savez ajouter un attribut ?
Raphael Franchet
Expert Ametys
Offline
Je crois, mais nicolas confirmera à son retour de congé, qu'il faut redéfinir un type de contenu (en dupliquant celui définit dans le fichier plugins/mypage/plugin.xml sur le svn) en changeant son identifiant.
Puis créer un fichier WEB-INF/param/person-content-type.xml contenant l'identifiant:
<mypage>
<person-content-type>Nouvel identifiant</person-content-type>
</mypage>
Le problème c'est que toutes les pages perso existantes vont utiliser l'ancien type de contenu, je ne sais pas si ça va bien se passer... à tester
Raphael Franchet
Expert Ametys
Offline
Bonjour,
Pas de problème pour les pages perso existantes car nous avons pas encore mis en production ce plugin.
On peut supprimer les fiches actuelles qui ne servent qu'à titre de test.
Je vais essayer de creer ce nouveau type de contenu en suivant vos indications et vous tiens informé.
Merci
Offline
Après avoir paramétrer le cms comme indiqué ci dessous, j'obtiens l'erreur suivante quand je veux insérer le service "Recherche dans l'annuaire" :
java.lang.NullPointerException
at org.ametys.plugins.mypage.contenttype.AttributesEnumerator.getEntries(AttributesEnumerator.java:68)
at org.ametys.runtime.util.parameter.ParameterHelper.toSAXEnumerator(ParameterHelper.java:267)
at org.ametys.web.service.ServiceGenerator.toSAXParameter(ServiceGenerator.java:150)
at org.ametys.web.service.ServiceGenerator.toSAXService(ServiceGenerator.java:86)
at org.ametys.web.service.ServiceGenerator.generate(ServiceGenerator.java:62)
at org.apache.cocoon.components.pipeline.AbstractProcessingPipeline.processXMLPipeline(AbstractProcessingPipeline.java:579)
....
Configuration :
extrait du fichier cms/plugins/mypage/plugins.xml :
<cms:directory-attribute name="fonction">
<label i18n="true">PLUGINS_MYPAGE_CONTENT_PERSON_FONCTION</label>
<description i18n="true">PLUGINS_MYPAGE_CONTENT_PERSON_FONCTION_DESC</description>
<attribute>umFonction</attribute>
</cms:directory-attribute>
<cms:directory-attribute name="telfonction">
<label i18n="true">PLUGINS_MYPAGE_CONTENT_PERSON_TELFONCTION</label>
<description i18n="true">PLUGINS_MYPAGE_CONTENT_PERSON_TELFONCTION_DESC</description>
<attribute>supannAutreTelephone</attribute>
</cms:directory-attribute>
<cms:directory-attribute name="mailfonction">
<label i18n="true">PLUGINS_MYPAGE_CONTENT_PERSON_MAILFONCTION</label>
<description i18n="true">PLUGINS_MYPAGE_CONTENT_PERSON_MAILFONCTION_DESC</description>
<attribute>mailAlternateAddress</attribute>
</cms:directory-attribute>
Fichier cms/WEB-INF/param/person-content-type.xml
<mypage>
<person-content-type>fonction</person-content-type>
<person-content-type>telfonction</person-content-type>
<person-content-type>mailfonction</person-content-type>
</mypage>
Offline
Alors il y a un problème.
Dans le fichier person-content-type, il ne faut saisir qu'un seul identifiant, qui est celui du nouveau type de contenu : celui fourni par défaut est "org.ametys.plugins.mypage.Content.person", mais quand vous le dupliquez vous devez lui donner un nouvel identifiant (que vous prévicez dans ce fichier).
La liste des nouveaux attributs apparait bien dans le plugin.xml, donc le reste à l'air ok.
Raphael Franchet
Expert Ametys
Offline
Bonjour,
Merci pour la réponse. J'avais mal compris.
Je viens de modifier le fichier plugin.xml avec un nouvel identifiant
<feature name="org.ametys.mypage.content-type">
<extensions>
<extension point="org.ametys.cms.contenttype.ContentTypeExtensionPoint"
id="org.ametys.plugins.ummypage.Content.person"
class="org.ametys.plugins.mypage.contenttype.LdapPersonContentType">
Que j'ai indiqué dans person-content-type.xml :
<mypage>
<person-content-type>org.ametys.plugins.ummypage.Content.person</person-content-type>
</mypage>
Et j'ai toujours la même erreur après relance de tomcat-cms ...
Offline
Il doit y avoir une erreur AVANT dans les logs, comme quoi il n'a pas pris en compte votre type de contenu.
Ce que vous pouvez faire sinon, c'est enlever le fichier person-content-type.xml momentanément, puis redémarrer et enfin aller dans "Plugin et Workspaces" pour voir si votre nouveau type de contenu est correctement référencé...
Raphael Franchet
Expert Ametys
Offline
J'ai cette erreur dans mes log servlent-engine :
2012-09-17 10:03:33,255 ERROR [org.ametys.plugins.mypage.contenttype.PersonContentTypeRetriever] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) The person content type with ID 'org.ametys.plugins.ummypage.Content.person' does not exist or is not initialized yet.
2012-09-17 10:03:33,258 ERROR [org.ametys.plugins.mypage.contenttype.PersonContentTypeRetriever] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) The person content type with ID 'org.ametys.plugins.ummypage.Content.person' is not an instance of LdapPersonContentType.
2012-09-17 10:03:33,264 ERROR [sitemap] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Can not dispatch request '2' : 'web' 'service/params' '{id=org.ametys.mypage.service.Search, pageId=page://20b8762d-8afe-4791-a208-6f7da347a72a}'
org.apache.cocoon.util.location.LocatedException: Can not dispatch request '2' : 'web' 'service/params' '{id=org.ametys.mypage.service.Search, pageId=page://20b8762d-8afe-4791-a208-6f7da347a72a}'
Ne manque t'il pas une modif sur la config ldap ? voir message ci-dessous :
'org.ametys.plugins.ummypage.Content.person' is not an instance of LdapPersonContentType.
Je vais regarder si le nouveau type de contenu est référencé.
Offline
pourtant dans votre bout de plugin.xml, on voit que l'identifiant utilise bien la classe java LdapPersonContentType. Bizarre.
vos logs sont-ils en Warning ? en fait au démarrage les plugins mal fait sont éliminés mais tout ça est noté en Warning seulement.
Raphael Franchet
Expert Ametys
Offline
Dans les plugins par fichier, je ne trouve que
org.ametys.plugins.mypage.Content.person
et pas
org.ametys.plugins.ummypage.Content.person
Mon fichier plugins.xml est-il bien placé ?
dans mon répertoire de l'application cms cms/plugins/mypage
Offline
Mettez votre application en warning pour les logs. Vous verrez par exemple que le fichier doit s'appeler 'plugin.xml'.
Raphael Franchet
Expert Ametys
Offline
Il s'appelle bien plugin.xml. (faute de frappe dans le message précédent).
Je mets néanmoins l'application cms en warning de suite pour voir.
Last edited by pdelage (18/09/2012 11:13:55)
Offline
Je n'ai rien de plus avec les logs du plugin mypage en warning.
2012-09-18 18:02:40,702 ERROR [org.ametys.plugins.mypage.contenttype.PersonContentTypeRetriever] (http-8080-2;/cms330/plugins/core/servercomm/messages.xml) The person content type with ID 'org.ametys.plugins.ummypage.Content.person' does not exist or is not initialized yet.
2012-09-18 18:02:40,705 ERROR [org.ametys.plugins.mypage.contenttype.PersonContentTypeRetriever] (http-8080-2;/cms330/plugins/core/servercomm/messages.xml) The person content type with ID 'org.ametys.plugins.ummypage.Content.person' is not an instance of LdapPersonContentType.
2012-09-18 18:02:40,712 ERROR [sitemap] (http-8080-2;/cms330/plugins/core/servercomm/messages.xml) Can not dispatch request '2' : 'web' 'service/params' '{id=org.ametys.mypage.service.Search, pageId=page://20b8762d-8afe-4791-a208-6f7da347a72a}'
org.apache.cocoon.util.location.LocatedException: Can not dispatch request '2' : 'web' 'service/params' '{id=org.ametys.mypage.service.Search, pageId=page://20b8762d-8afe-4791-a208-6f7da347a72a}'
Offline
Dans ce cas, passez en INFO, vous aurez une trace pour chaque plugin chargé par le CMS.
Il faut comprendre pourquoi votre plugin n'est pas chargé.
Raphael Franchet
Expert Ametys
Offline
Bonjour,
J'ai mis le cms en debug info dans log4j.xml.
Voici les lignes avant l'erreur. Je n'ai pas mis toutes les lignes info concernant
2012-09-19 10:03:30,154 INFO [org.ametys.runtime.plugins.web.right.webhierarchicalprofilebased] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Find in cache2 the right Myfavorites_Right_Myfavorites_Createfor user delageon context [/application/immm/pages/fr]
2012-09-19 10:03:30,154 INFO [org.ametys.runtime.plugins.web.right.webhierarchicalprofilebased] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) In cache, user delage has not the right Multimedia_Right_Multimedia_Create on context [/application/immm/pages/fr/test-annuaire, ]
2012-09-19 10:03:30,155 INFO [org.ametys.runtime.plugins.web.right.webhierarchicalprofilebased] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) No find entry in cache for [delage, Multimedia_Right_Multimedia_Create, /application/immm/pages/fr]
2012-09-19 10:03:30,155 INFO [org.ametys.runtime.plugins.web.right.webhierarchicalprofilebased] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Find in cache2 the right Multimedia_Right_Multimedia_Createfor user delageon context [/application/immm/pages/fr]
2012-09-19 10:03:30,157 INFO [sitemap] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Dispatching url 'cocoon://ribbon/control/org.ametys.web.templatesmenu?pageIds=page://20b8762d-8afe-4791-a208-6f7da347a72a&'
2012-09-19 10:03:30,164 INFO [access] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) 'plugins/core/servercomm/messages.xml' Processed by Apache Cocoon 2.1.11 in 138 milliseconds.
2012-09-19 10:03:38,088 INFO [sitemap] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Dispatching url 'cocoon://_plugins/core/system-startuptime.xml'
2012-09-19 10:03:38,092 INFO [sitemap] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Dispatching url 'cocoon://_plugins/core/system-announcement/view.xml'
2012-09-19 10:03:38,098 INFO [sitemap] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Dispatching url 'cocoon://_plugins/web/service/params?id=org.ametys.mypage.service.Search&pageId=page://20b8762d-8afe-4791-a208-6f7da347a72a&'
2012-09-19 10:03:38,104 ERROR [org.ametys.plugins.mypage.contenttype.PersonContentTypeRetriever] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) The person content type with ID 'org.ametys.plugins.ummypage.Content.person' does not exist or is not initialized yet.
2012-09-19 10:03:38,104 ERROR [org.ametys.plugins.mypage.contenttype.PersonContentTypeRetriever] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) The person content type with ID 'org.ametys.plugins.ummypage.Content.person' is not an instance of LdapPersonContentType.
2012-09-19 10:03:38,109 ERROR [sitemap] (http-8080-3;/cms330/plugins/core/servercomm/messages.xml) Can not dispatch request '2' : 'web' 'service/params' '{id=org.ametys.mypage.service.Search, pageId=page://20b8762d-8afe-4791-a208-6f7da347a72a}'
org.apache.cocoon.util.location.LocatedException: Can not dispatch request '2' : 'web' 'service/params' '{id=org.ametys.mypage.service.Search, pageId=page://20b8762d-8afe-4791-a208-6f7da347a72a}'
at org.ametys.runtime.plugins.core.dispatcher.DispatchGenerator._dispatching(DispatchGenerator.java:155)
Offline
Non. Ce qui va nous intéresser sont des logs de démarrage. Pour chaque plugin chargé vous avez une ligne d'info dans votre log de ce type là
Plugin 'core' added at path 'D:\Dev\raphael\Ametys\templates\CMSWEB\trunk\webapp\site\plugins\core\plugin.xml'
Le but est de voir sur le plugin avec votre nouveau type de contenu a bien cette ligne là.
Raphael Franchet
Expert Ametys
Offline
J'ai trouvé cela dans les logs:
2012-09-19 10:02:17,855 INFO [org.ametys.runtime.plugin.PluginsManager] (main;) Plugin 'mypage' added at path 'resource://org/ametys/plugins/mypage/plugin.xml'
..........
..........
2012-09-19 10:02:18,606 WARN [org.ametys.runtime.plugin.PluginsManager] (main;) The plugin mypage at /usr/local/tomcat/webapps/cms330/plugins/mypage/plugin.xml is already declared. It will be ignored.
2012-09-19 10:02:18,991 INFO [org.ametys.runtime.plugin.PluginsManager] (main;) No init class configured
Offline
Dans votre répertoire plugins vous avez posé un répertoire nommé "mypage" ? le nom d'un plugin doit être unique...
Raphael Franchet
Expert Ametys
Offline
J'ai renommé ce répertoire en ummypage.
Après relance du tomcat-cms, j'ai ce message :
An error occurred. Please contact the administrator of the application.java.lang.IllegalArgumentException: In feature ummypage/org.ametys.mypage.init, the extension org.ametys.plugins.mypage.Init to point org.ametys.runtime.cocoon.InitExtensionPoint is already declared. at org.ametys.runtime.plugin.PluginsManager._checkExtensionsIds(PluginsManager.java:977) at org.ametys.runtime.plugin.PluginsManager._getActiveFeaturesInformations(PluginsManager.java:809)
Je pense qu'il faut supprimer la ref sur l'ancien mypage ...
Offline