<?xml version='1.0' encoding='UTF-8'?><uidget><metadata><name>Commentaire</name><api_version>1.0</api_version><size height='290' width='440' /><server>local://CommentCptServer</server><blog en='10' /><gdpr enabled='true' /></metadata><view><content>&lt;div&gt;
  &lt;div class=form&gt;
		&lt;div class=&quot;item_div uic_name_input&quot;&gt;
			&lt;label&gt;
				&lt;span&gt;Nom à afficher &lt;span class=&apos;uic_require&apos;&gt;*&lt;/span&gt;&lt;/span&gt;
				&lt;input class=&quot;site_textbox&quot; type=&quot;text&quot; name=&quot;name&quot; value=&quot;&quot;/&gt;
			&lt;/label&gt;
		&lt;/div&gt;
		&lt;div class=&quot;item_div uic_email_input&quot;&gt;
			&lt;label&gt;
				&lt;span&gt;Email (Non affiché)&lt;/span&gt;
				&lt;input class=&quot;site_textbox&quot; type=&quot;email&quot; name=&quot;email&quot; value=&quot;&quot;/&gt;
			&lt;/label&gt;
		&lt;/div&gt;
		&lt;div class=&quot;item_div uic_website_input&quot;&gt;
			&lt;label&gt;
				&lt;span&gt;Site Web&lt;/span&gt;
				&lt;input class=&quot;site_textbox&quot; type=&quot;text&quot; name=&quot;url&quot; value=&quot;&quot;/&gt;
			&lt;/label&gt;
		&lt;/div&gt;
		&lt;div class=&quot;item_div uic_comment_input&quot;&gt;
			&lt;label&gt;
				&lt;span&gt;Message&lt;span class=&apos;uic_require&apos;&gt;*&lt;/span&gt;&lt;/span&gt;
				&lt;textarea name=&quot;comment&quot;&gt;&lt;/textarea&gt;
			&lt;/label&gt;
			&lt;div class=help_cmt&gt;Les adresses internet sont automatiquement converties en liens. Pas de code html.&lt;/div&gt;
		&lt;/div&gt;
		&lt;div class=&quot;item_div&quot;&gt;
			&lt;label&gt;
				&lt;span&gt;Recopiez ce code&lt;span class=&apos;uic_require&apos;&gt;*&lt;/span&gt;&lt;/span&gt;
				&lt;div uitype=&quot;captcha&quot; name=&quot;captcha&quot;&gt;&lt;/div&gt;
			&lt;/label&gt;
		&lt;/div&gt;
		&lt;div class=&quot;item_div&quot;&gt;
		  &lt;div class=&quot;component_gdpr_container uic_gdpr&quot;&gt;&lt;/div&gt;
		&lt;/div&gt;
		&lt;div class=&quot;item_div&quot; style=&quot;text-align:center;&quot;&gt;
			&lt;input class=&quot;site_button&quot; type=submit value=&quot;Poster un commentaire&quot; /&gt;&lt;img src=&quot;/assets/loadingAnimation.gif&quot; class=&quot;loading&quot;&gt;
		&lt;/div&gt;
		&lt;div class=&quot;require_info&quot;&gt;
			*:Champs requis
		&lt;/div&gt;
  &lt;/div&gt;
  &lt;div class=&quot;stat font_title_2&quot;&gt;&lt;/div&gt;
  &lt;div class=comments&gt;&lt;/div&gt;
&lt;/div&gt;</content><properties><server_manage help='Valider, supprimer, modifier les commentaires postés par les utilisateurs. Vous pouvez aussi ajouter vos commentaires : ils seront affichés différemment des commentaires des visiteurs.' icon='ui_forum' name='manage' text='Gestion' url='/cpt_comments/manage' /><server_manage ame='add_comment' help='Ajouter un commentaire. Il sera affiché différemment des commentaires des visiteurs.' icon='bubble_up' text='Poster' url='/cpt_comments/new' /><number default='20' help='Choisissez combien d&apos;articles seront affichés par page.' maximum='50' minimum='1' name='rows' title='Par page' /><checkbox default='true' help='Si coché, vous serez notifié par email pour chaque commentaire posté par vos visiteurs.' name='notify' value='Notification' /><checkbox default='true' help='Si coché, quand les visiteurs postent un commentaire, celui-ci n&apos;apparaît pas sur votre site tant que vous n&apos;avez pas validé le commentaire.' name='validation' value='Validation' /><checkbox default='true' help='Si cette option est cochée, la hauteur du module sera automatiquement adaptée au nombre de messages (ceci pourra éventuellement cacher des modules placés sous ce module). Sans cette option des barres de défilement permettent de parcourir tous les messages.' name='auto_size' value='Taille auto' /><option class='form_position' default='&apos;bottom&apos;' display='En haut|En bas' help='Sélectionne ou afficher le formulaire d&apos;envoi de commentaire : avant les commentaires, après les commentaires ou les deux.' name='form_pos' title='Formulaire' values='top|bottom' /><checkbox default='false' help='Si coché, les derniers commentaires envoyés seront affichés en haut.' name='desc' value='Dernier en haut' /></properties><design_properties><trigger_preset class='gtbackdrop_prop_custom' gt_type='backdrop' help='Sélectionnez un style prédéfini de fond' icon='palette' mode='select' name='backdrop_preset' text='Style de fond' /><trigger_preset class='gttextbox_prop_custom' gt_type='textbox' help='Sélectionnez un style prédéfini pour les champs texte du formulaire' icon='palette' mode='select' name='textboxes_preset' text='Style de champ texte' /><trigger_preset class='gtbutton_prop_custom' gt_type='buttonsgroup' help='Sélectionnez un style prédéfini pour la pagination' icon='palette' mode='select' name='pagination_preset' text='Style de la pagination' /><trigger_preset class='gtbutton_prop_custom' gt_type='button' help='Sélectionnez un style prédéfini pour le bouton d&apos;envoi d&apos;un commentaire' icon='palette' mode='select' name='buttons_preset' text='Style des boutons' /></design_properties></view><script>UI_List.UI_Comment={initialize:function(t){this.cpt=t
;t.setOptions([&quot;locked&quot;])},onDisplay:function(t){this.node=t
;this.pageSelected=0
;this.stat_node=$(t.find(&quot;&gt; div&quot;).children()[1])
;this.list_node=$(t.find(&quot;&gt; div&quot;).children()[2])
;this.form_node=$([t.find(&quot;&gt; div&quot;).children()[0],$(t.find(&quot;&gt; div&quot;).children()[0]).clone().appendTo(t.find(&quot;&gt; div&quot;))[0]])
;this.size_getter_el=$(&quot;&lt;div&gt;&lt;/div&gt;&quot;).appendTo(t)[0];var e=this
;this.comments=this.cpt.data.comments||[]
;delete this.cpt.data.comments;this.updateForms()
;this.updateCommentList();this.n={
gdpr:this.node.find(&quot;.component_gdpr_container&quot;)}
;var s=e.form_node.find(&quot;.loading&quot;);s.hide()
;this.form_node.find(&quot;:submit&quot;).bind(&quot;click&quot;,function(){
var t=e.form_node.find(&quot;:submit&quot;)
;if(!e.testFormGdpr($(this).parents(&quot;.form&quot;)))return!1;t.hide()
;s.show();var i=$(this).parents(&quot;div.form&quot;),n={
request:&quot;add_comment&quot;,comment:{},gdpr:e.getGdpr(e.n.gdpr)}
;i.find(&quot;input,textarea&quot;).each(function(t,e){
&quot;url&quot;==e.name?n.comment.url=&quot;&quot;==e.value?&quot;&quot;:&quot;http://&quot;+e.value:n.comment[e.name]=e.value
});e.cpt.ask(n,function(i){e.comments=i.comments
;e.updateCommentList()
;e.cpt.data.validation?alert(&quot;Votre commentaire a \xe9t\xe9 envoy\xe9 et est en attente de validation.&quot;):alert(&quot;Votre commentaire a \xe9t\xe9 ajout\xe9.&quot;)
;s.hide();t.show()},function(e){s.hide();t.show()
;alert(&quot;Votre commentaire n&apos;a pas \xe9t\xe9 envoy\xe9 :\n&quot;+e.join(&quot;\n&quot;))
},i)});$.extend(this,componentGdpr);this.initGdpr()
;this.cpt.use_graphical_preset(&quot;button&quot;,[&quot;buttons_preset&quot;])
;this.cpt.use_graphical_preset(&quot;textbox&quot;,[&quot;textboxes_preset&quot;])
;this.cpt.use_graphical_preset(&quot;backdrop&quot;,[&quot;backdrop_preset&quot;])
;this.cpt.use_graphical_preset(&quot;buttonsgroup&quot;,[&quot;pagination_preset&quot;])
;this.applyPreset();e=this
;sigCtl.connect(&quot;Theme.changed&quot;,function(){e.updateCptSize()})},
getComments:function(){var t=this;t.cpt.ask({
request:&quot;get_comments&quot;,desc:t.cpt.data.desc},function(e){
t.comments=e.comments;t.updateCommentList()},function(t){
alert(&quot;Impossible de mettre \xe0 jour les commentaires.\n&quot;+t.join(&quot;\n&quot;))
})},updateCommentList:function(){var t=this,e=this.comments
;this.cpt.data.rows&amp;&amp;null!=this.cpt.data.rows&amp;&amp;0!=this.cpt.data.rows||(this.cpt.data.rows=20)
;var s=Math.ceil(e.length/this.cpt.data.rows)
;this.pageSelected=Math.max(0,Math.min(this.pageSelected,s-1))
;this.stat_node.text(sprintf(e.length&gt;1?&quot;%1$s commentaires&quot;:&quot;%1$s commentaire&quot;,e.length))
;0==$(&quot;.ui_list_pages&quot;,this.list_node).length?this.list_node.append(&apos;&lt;div class=&quot;ui_list_pages&quot;&gt;&lt;/div&gt;&apos;):$(&quot;.ui_list_pages&quot;,this.list_node).empty()
;s&gt;1?$.fn.paginate($(&quot;.ui_list_pages&quot;,this.list_node),s,this.pageSelected,1,3,function(e){
t.pageSelected=e;t.updateCommentList();t.create_comments()
}):$(&quot;.ui_list_pages&quot;,this.list_node).empty()
;this.create_comments()},create_comments:function(){
var t=this,e=this.comments.slice(this.pageSelected*this.cpt.data.rows,(this.pageSelected+1)*this.cpt.data.rows)
;0==$(&quot;.list_comments&quot;,this.list_node).length?this.list_node.append(&apos;&lt;div class=&quot;list_comments&quot;&gt;&lt;/div&gt;&apos;):$(&quot;.list_comments&quot;,this.list_node).empty()
;e.each(function(e){
var s=$(&quot;&lt;div&gt;&lt;/div&gt;&quot;).addClass(&quot;comment_holder&quot;).appendTo($(&quot;.list_comments&quot;,t.list_node))
;e.admin&amp;&amp;s.addClass(&quot;admin&quot;)
;e.url?s.append($(&quot;&lt;a rel=&apos;nofollow noopener noreferrer&apos; target=&apos;_blank&apos;&gt;&lt;/a&gt;&quot;).attr(&quot;href&quot;,e.url||&quot;#&quot;).text(e.name).addClass(&quot;name&quot;)):s.append($(&quot;&lt;span&gt;&lt;/span&gt;&quot;).text(e.name).addClass(&quot;name&quot;))
;e.published?s.append($(sprintf(&quot;&lt;span&gt;&amp;nbsp;%s&lt;/span&gt;&quot;,e.date)).addClass(&quot;date&quot;)):s.append($(&quot;&lt;span&gt;&amp;nbsp;Ce commentaire est en attente de validation.&lt;/span&gt;&quot;).attr(&quot;title&quot;,e.date).addClass(&quot;date&quot;))
;s.append($(&quot;&lt;div&gt;&lt;/div&gt;&quot;).html(e.comment).addClass(&quot;comment&quot;))
})
;this.cpt.data.auto_size?this.node.css(&quot;overflow-y&quot;,&quot;hidden&quot;):this.node.css(&quot;overflow-y&quot;,&quot;auto&quot;)
;this.updateCptSize()},onShow:function(){this.updateCptSize()},
onSelect:function(){this.updateGdpr();this._showProp()},
updateCptSize:function(){if(this.cpt.data.auto_size){
var t=this,e=function(){t.cpt.setSize({h:1e4});var e=[]
;$(&quot;*&quot;,$(&quot;.UI_Comment&quot;)).each(function(){
e.push([this.offsetTop,this.offsetHeight,this.tagName,this.id,this.className])
});t.cpt.setSize({h:t.size_getter_el.offsetTop})};e()
;setTimeout(e,1e3);setTimeout(e,2500)}},updateForms:function(){
-1!=this.cpt.data.form_pos.indexOf(&quot;top&quot;)?$(this.form_node[0]).show():$(this.form_node[0]).hide()
;-1!=this.cpt.data.form_pos.indexOf(&quot;bottom&quot;)?$(this.form_node[1]).show():$(this.form_node[1]).hide()
},onPropertyChanged:function(t){
if(t.include(&quot;buttons_preset&quot;)||t.include(&quot;textboxes_preset&quot;)||t.include(&quot;backdrop_preset&quot;)||t.include(&quot;pagination_preset&quot;)){
this.updateForms();this.applyPreset()}
if(t.include(&quot;desc&quot;)||t.include(&quot;manage&quot;)||t.include(&quot;add_comment&quot;))this.getComments();else{
this.updateForms();this.updateCommentList()}this._showProp()},
_showProp:function(){
var t=$(this.component.propertyNode).add(this.component.propertyDesignNode)
;$(&quot;.gtbutton_prop_custom, .gttextbox_prop_custom, .gtbackdrop_prop_custom&quot;,t).toggle(GraphicalType.available)
},onResizeStop:function(){this.updateCptSize()},
onFontFamilyUpdate:function(){this.updateCptSize()},
applyPreset:function(){if(GraphicalType.available){
var t=GraphicalType.graphical_types.button.preset_data.prefix,e=this.form_node.find(&quot;input[type=submit]&quot;).parent()
;e.removeClassMatch(new RegExp(t))
;(s=this.cpt.getGTPreset(&quot;button&quot;,&quot;buttons_preset&quot;))&amp;&amp;e.addClass(&quot;gtbutton_preset &quot;+t+&quot;_&quot;+s)
;t=GraphicalType.graphical_types.textbox.preset_data.prefix
;var s=this.cpt.getGTPreset(&quot;textbox&quot;,&quot;textboxes_preset&quot;)
;this.form_node.removeClassMatch(new RegExp(t))
;s&amp;&amp;this.form_node.addClass(t+&quot; &quot;+t+&quot;_&quot;+s)
;t=GraphicalType.graphical_types.backdrop.preset_data.prefix,
s=this.cpt.getGTPreset(&quot;backdrop&quot;,&quot;backdrop_preset&quot;)
;this.node.removeClassMatch(new RegExp(t));if(s){
this.node.find(&quot;&gt; div:first&quot;).addClass(&quot;gt_backdrop_content&quot;)
;this.node.addClass(t+&quot; &quot;+t+&quot;_&quot;+s)
}else this.node.find(&quot;&gt; div:first&quot;).removeClass(&quot;gt_backdrop_content&quot;)
;t=GraphicalType.graphical_types.buttonsgroup.preset_data.prefix,
s=this.cpt.getGTPreset(&quot;buttonsgroup&quot;,&quot;pagination_preset&quot;)
;this.node.find(&quot;.ui_list_pages&quot;).removeClassMatch(t)
;s&amp;&amp;this.node.find(&quot;.ui_list_pages&quot;).addClass(t+&quot; &quot;+t+&quot;_&quot;+s)
;this.updateCptSize()}}};</script><style>div.UI_Comment textarea{box-sizing:border-box;width:100%;height:100px}
div.UI_Comment span.date{display:block;font-size:xx-small;font-style:italic}
div.UI_Comment .name{text-transform:capitalize}
div.UI_Comment div.comments{margin:0}
div.UI_Comment div.comment_holder{margin:5px;padding:5px}
div.UI_Comment div.help_cmt,div.UI_Comment .info{font-size:xx-small;font-style:italic}
div.UI_Comment .info{padding-left:5px}
div.UI_Comment div.comment{margin-top:5px;text-align:justify}
div.UI_Comment a.name{text-decoration:underline}
div.UI_Comment a.name:hover{text-decoration:none}
div.UI_Comment div.stat{font-weight:700;text-align:center}
.item_div{padding:5px}
.item_div input:not([type=checkbox]){width:100%;box-sizing:border-box}
div[name=captcha]{display:inline-block}
input.captcha_field,.item_div input[type=submit]{width:auto}
.uic_require,.require_info{color:red}
div.UI_Comment.gtbackdrop_preset{box-sizing:border-box}</style></uidget>