<?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='32' fr='24' /><gdpr enabled='true' /></metadata><view><content>&lt;div class=form&gt;
		&lt;div class=&quot;item_div&quot;&gt;
			&lt;label&gt;
				&lt;span&gt;Nom &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&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&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&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;
</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 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></view><script>UI_List.UI_Comment={initialize:function(a){this.cpt=a;
a.setOptions([&quot;locked&quot;])
},onDisplay:function(b){this.node=b;
this.pageSelected=0;
this.stat_node=$(b.children()[1]);
this.list_node=$(b.children()[2]);
this.form_node=$([b.children()[0],$(b.children()[0]).clone().appendTo(b)[0]]);
this.size_getter_el=$(&quot;&lt;div&gt;&lt;/div&gt;&quot;).appendTo(b)[0];
var a=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 c=a.form_node.find(&quot;.loading&quot;);
c.hide();
this.form_node.find(&quot;:submit&quot;).bind(&quot;click&quot;,function(){var f=a.form_node.find(&quot;:submit&quot;);
if(!a.testFormGdpr($(this).parents(&quot;.form&quot;))){return false
}f.hide();
c.show();
var d=$(this).parents(&quot;div.form&quot;);
var e={request:&quot;add_comment&quot;,comment:{},gdpr:a.getGdpr(a.n.gdpr)};
d.find(&quot;input,textarea&quot;).each(function(g,h){if(h.name==&quot;url&quot;){e.comment[&quot;url&quot;]=(h.value==&quot;&quot;)?&quot;&quot;:&quot;http://&quot;+h.value
}else{e.comment[h.name]=h.value
}});
a.cpt.ask(e,function(g){a.comments=g.comments;
a.updateCommentList();
if(a.cpt.data.validation){alert(&quot;Votre commentaire a été envoyé et est en attente de validation.&quot;)
}else{alert(&quot;Votre commentaire a été ajouté.&quot;)
}c.hide();
f.show()
},function(g){c.hide();
f.show();
alert(&quot;Votre commentaire n&apos;a pas été envoyé :\n&quot;+g.join(&quot;\n&quot;))
},d)
});
$.extend(this,componentGdpr);
this.initGdpr();
var a=this;
sigCtl.connect(&quot;Theme.changed&quot;,function(){a.updateCptSize()
})
},getComments:function(){var a=this;
a.cpt.ask({request:&quot;get_comments&quot;,desc:a.cpt.data.desc},function(b){a.comments=b.comments;
a.updateCommentList()
},function(b){alert(&quot;Impossible de mettre à jour les commentaires.\n&quot;+b.join(&quot;\n&quot;))
})
},updateCommentList:function(){var b=this;
var c=this.comments;
if(!this.cpt.data.rows||this.cpt.data.rows==null||this.cpt.data.rows==0){this.cpt.data.rows=20
}var a=Math.ceil(c.length/this.cpt.data.rows);
this.pageSelected=Math.max(0,Math.min(this.pageSelected,a-1));
this.stat_node.text(sprintf(c.length&gt;1?&quot;%1$s commentaires&quot;:&quot;%1$s commentaire&quot;,c.length));
if($(&quot;.ui_list_pages&quot;,this.list_node).length==0){this.list_node.append(&apos;&lt;div class=&quot;ui_list_pages&quot;&gt;&lt;/div&gt;&apos;)
}else{$(&quot;.ui_list_pages&quot;,this.list_node).empty()
}if(a&gt;1){$.fn.paginate($(&quot;.ui_list_pages&quot;,this.list_node),a,this.pageSelected,1,3,function(d){b.pageSelected=d;
b.updateCommentList();
b.create_comments()
})
}else{$(&quot;.ui_list_pages&quot;,this.list_node).empty()
}this.create_comments()
},create_comments:function(){var a=this;
var b=this.comments.slice(this.pageSelected*this.cpt.data.rows,(this.pageSelected+1)*this.cpt.data.rows);
if($(&quot;.list_comments&quot;,this.list_node).length==0){this.list_node.append(&apos;&lt;div class=&quot;list_comments&quot;&gt;&lt;/div&gt;&apos;)
}else{$(&quot;.list_comments&quot;,this.list_node).empty()
}b.each(function(e){var d=$(&quot;&lt;div&gt;&lt;/div&gt;&quot;).addClass(&quot;comment_holder&quot;).appendTo($(&quot;.list_comments&quot;,a.list_node));
if(e.admin){d.addClass(&quot;admin&quot;)
}if(e.url){d.append($(&quot;&lt;a rel=&apos;nofollow&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;))
}else{d.append($(&quot;&lt;span&gt;&lt;/span&gt;&quot;).text(e.name).addClass(&quot;name&quot;))
}if(e.published){d.append($(sprintf(&quot;&lt;span&gt;&amp;nbsp;%s&lt;/span&gt;&quot;,e.date)).addClass(&quot;date&quot;))
}else{d.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;))
}d.append($(&quot;&lt;div&gt;&lt;/div&gt;&quot;).html(e.comment).addClass(&quot;comment&quot;))
});
if(this.cpt.data.auto_size){this.node.css(&quot;overflow-y&quot;,&quot;hidden&quot;)
}else{this.node.css(&quot;overflow-y&quot;,&quot;auto&quot;)
}this.updateCptSize()
},onShow:function(){this.updateCptSize()
},onSelect:function(){this.updateGdpr()
},updateCptSize:function(){if(this.cpt.data.auto_size){var a=this;
var b=function(){a.cpt.setSize({h:10000});
var c=[];
$(&quot;*&quot;,$(&quot;.UI_Comment&quot;)).each(function(d){c.push([this.offsetTop,this.offsetHeight,this.tagName,this.id,this.className])
});
a.cpt.setSize({h:a.size_getter_el.offsetTop})
};
b();
setTimeout(b,1000);
setTimeout(b,2500)
}},updateForms:function(){if(this.cpt.data.form_pos.indexOf(&quot;top&quot;)!=-1){$(this.form_node[0]).show()
}else{$(this.form_node[0]).hide()
}if(this.cpt.data.form_pos.indexOf(&quot;bottom&quot;)!=-1){$(this.form_node[1]).show()
}else{$(this.form_node[1]).hide()
}},onPropertyChanged:function(a){if(a.include(&quot;desc&quot;)||a.include(&quot;manage&quot;)||a.include(&quot;add_comment&quot;)){this.getComments()
}else{this.updateForms();
this.updateCommentList()
}},onResizeStop:function(){this.updateCptSize()
},onFontFamilyUpdate:function(){this.updateCptSize()
}};</script><style>div.UI_Comment textarea{box-sizing:border-box;width:100%;height:100px}
div.UI_Comment span.date{display:block;padding-left:5px;font-size:xx-small;font-style:italic;color:#888}
div.UI_Comment .name{font-weight:700;text-transform:capitalize}
div.UI_Comment div.comments{margin:0}
div.UI_Comment div.comment_holder{margin:5px;padding:5px;border:solid 1px}
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{color:#000;text-decoration:underline}
div.UI_Comment a.name:hover{text-decoration:none}
div.UI_Comment div.stat{font-weight:700}
.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}</style></uidget>