<?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' /></metadata><view><content>&lt;div class=form&gt;
	&lt;table&gt;
		&lt;tr&gt;&lt;td&gt;Nom&lt;span class=info&gt;(Requis)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;input type=text name=&quot;name&quot; value=&quot;&quot;/&gt;&lt;/td&gt;&lt;/tr&gt;
		&lt;tr&gt;&lt;td&gt;Email&lt;span class=info&gt;(Non affiché)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;input type=text name=&quot;email&quot; value=&quot;&quot;/&gt;&lt;/td&gt;&lt;/tr&gt;
		&lt;tr&gt;&lt;td&gt;Site Web&lt;/td&gt;&lt;td&gt;http://&lt;input type=text name=&quot;url&quot; value=&quot;&quot;/&gt;&lt;/td&gt;&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=2&gt;&lt;textarea name=&quot;comment&quot;&gt;&lt;/textarea&gt;
		&lt;div class=help_cmt&gt;Les adresses internet sont automatiquement converties en liens. Pas de code html.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
		&lt;tr&gt;&lt;td&gt;Recopiez ce code&lt;span class=info&gt;(Requis)&lt;/span&gt;&lt;/td&gt;&lt;td&gt;&lt;div uitype=&quot;captcha&quot; name=&quot;captcha&quot;&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
		&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align:center;&quot;&gt;&lt;input type=submit value=&quot;Poster un commentaire&quot; /&gt;&lt;img src=&quot;/assets/loadingAnimation.gif&quot; class=&quot;loading&quot;&gt;&lt;/td&gt;&lt;/tr&gt;
	&lt;/table&gt;
&lt;/div&gt;
&lt;div class=stat&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();
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;);
f.hide();
c.show();
var d=$(this).parents(&quot;div.form&quot;);
var e={request:&quot;add_comment&quot;,comment:{}};
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()
},function(g){c.hide();
f.show();
alert(&quot;Votre commentaire n&apos;a pas été envoyé :\n&quot;+g.join(&quot;\n&quot;))
},d)
});
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()
},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{width:99%;height:100px}
div.UI_Comment table{width:100%}
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 .submit{cursor:pointer;text-decoration:underline}
div.UI_Comment .submit:hover{cursor:pointer;text-decoration:none}
div.UI_Comment div.stat{font-weight:700}</style></uidget>