<?xml version="1.0" encoding="ISO-8859-1"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/">
	<channel>
		<title>Forum du club des développeurs et IT Pro - Blogs - phpiste</title>
		<link>https://www.developpez.net/forums/blogs/116472-phpiste/</link>
		<description>Developpez.com, le Club des Développeurs et IT Pro</description>
		<language>fr</language>
		<lastBuildDate>Sat, 30 May 2026 06:43:10 GMT</lastBuildDate>
		<generator>vBulletin</generator>
		<ttl>15</ttl>
		<image>
			<url>https://forum.developpez.be/images/misc/rss.jpg</url>
			<title>Forum du club des développeurs et IT Pro - Blogs - phpiste</title>
			<link>https://www.developpez.net/forums/blogs/116472-phpiste/</link>
		</image>
		<item>
			<title><![CDATA[php facebook sdk: récuperer les messages d'un group]]></title>
			<link>https://www.developpez.net/forums/blogs/116472-phpiste/b1664/php-facebook-sdk-recuperer-messages-d-group/</link>
			<pubDate>Fri, 30 Sep 2016 10:58:29 GMT</pubDate>
			<description>Bonjour,  
 
Voilà avec quoi...</description>
			<content:encoded><![CDATA[<blockquote class="blogcontent restore">Bonjour, <br />
<br />
Voilà avec quoi on commence une bonne journée, écrire un tuto :)<br />
(ca donne une énergie positive pour continuer une journée plein de stress)<br />
<br />
<b>L'idée du tutorial est simple:</b><br />
<br />
Comment récupérer les posts d’un group facebook avec un script lancé en ligne de commande<br />
<br />
<b>Step1: Créé l’application facebook </b><br />
Donc commençant par le commencement, créer l’application facebook pour obtenir les clés d’accès au api, pour cela rendez vous sur cette page <a href="https://developers.facebook.com" target="_blank">https://developers.facebook.com</a><br />
<br />
Donner un titre et une adresse email à votre nouvelle app<br />
<br />
<img src="https://www.developpez.net/forums/attachments/p221580d1475232770/autres-langages/autres-langages/corba/visthread-_start-unhandled-exception-in-thread/screen-shot-2016-09-29-at-9.56.48-am.png/" border="0" alt="Nom : Screen Shot 2016-09-29 at 9.56.48 AM.png
Affichages : 480
Taille : 57,9 Ko"  style="float: CONFIG" /><br />
<br />
Après avoir créé l’application veuillez récupérer l’ID de l’app et la clé secrète.<br />
<br />
<img src="https://www.developpez.net/forums/attachments/p221581d1475232798/autres-langages/autres-langages/corba/visthread-_start-unhandled-exception-in-thread/screen-shot-2016-09-29-at-9.57.46-am.png/" border="0" alt="Nom : Screen Shot 2016-09-29 at 9.57.46 AM.png
Affichages : 432
Taille : 48,8 Ko"  style="float: CONFIG" /><br />
<br />
<b>Step2: Installer le SDK php</b><br />
Rdv sur cette page github <a href="https://github.com/facebook/php-graph-sdk" target="_blank">https://github.com/facebook/php-graph-sdk</a> et sure votre terminal lancer cette commande <br />
composer require facebook/graph-sdk<br />
Vous allez voir un nouveau dossier dans votre arborescence nommé vendor<br />
<br />
<b>Step3: récupérer les feed</b>  <br />
La classe va servir comme récupérateur des messages du group. <br />
Elle prend en paramètre de constructeur l'app key et le secret key de l’application facebook que vous venez de créer.<br />
<br />
Dans un nouveau fichier importFeed.php ajouter cette classe<br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">class</span> FacebookFeedScrapper<span class="br0">&#123;</span>
  <span style="color: #0000ff;">private</span> <span style="color: #339933;">$clientId</span>;
  <span style="color: #0000ff;">private</span> <span style="color: #339933;">$appSecret</span>;
&nbsp;
  <span style="color: #808080;">//Access token from graph</span>
  <span style="color: #0000ff;">private</span> <span style="color: #339933;">$accessToken</span>;
&nbsp;
  <span style="color: #808080;">//should be the client sdk</span>
  <span style="color: #0000ff;">private</span> <span style="color: #339933;">$fb</span>;
&nbsp;
  <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> <span style="color: #0080ff;">__construct</span><span class="br0">&#40;</span><span style="color: #339933;">$clientId</span>, <span style="color: #339933;">$appSecret</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
    <span style="color: #339933;">$this</span>-&gt;clientId = <span style="color: #339933;">$clientId</span>;
    <span style="color: #339933;">$this</span>-&gt;appSecret = <span style="color: #339933;">$appSecret</span>;
&nbsp;
    <span style="color: #339933;">$this</span>-&gt;accessToken = <span style="color: #339933;">$this</span>-&gt;getAccessToken<span class="br0">&#40;</span><span class="br0">&#41;</span>;
    <span style="color: #339933;">$this</span>-&gt;fb = <span style="color: #0000ff;">new</span> \Facebook\Facebook<span class="br0">&#40;</span><span class="br0">&#91;</span>
      <span style="color: #FF0000;">'app_id'</span> =&gt; <span style="color: #339933;">$this</span>-&gt;clientId,
      <span style="color: #FF0000;">'app_secret'</span> =&gt; <span style="color: #339933;">$this</span>-&gt;appSecret,
      <span style="color: #FF0000;">'default_graph_version'</span> =&gt; <span style="color: #FF0000;">'v2.7'</span>
    <span class="br0">&#93;</span><span class="br0">&#41;</span>;
  <span class="br0">&#125;</span>
&nbsp;
  <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">function</span> getAccessToken<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
    <span style="color: #339933;">$url</span> = <span style="color: #FF0000;">&quot;https://graph.facebook.com/oauth/access_token?client_id=&quot;</span>
    . <span style="color: #339933;">$this</span>-&gt;clientId
    . <span style="color: #FF0000;">&quot;&amp;client_secret=&quot;</span> 
    . <span style="color: #339933;">$this</span>-&gt;appSecret 
    . <span style="color: #FF0000;">&quot;&amp;grant_type=client_credentials&quot;</span>;
&nbsp;
    <span style="color: #339933;">$str</span> = file_get_contents<span class="br0">&#40;</span><span style="color: #339933;">$url</span><span class="br0">&#41;</span>;
&nbsp;
    <span style="color: #0000ff;">return</span>  str_replace <span class="br0">&#40;</span><span style="color: #FF0000;">&quot;access_token=&quot;</span>, <span style="color: #FF0000;">&quot;&quot;</span>, <span style="color: #339933;">$str</span><span class="br0">&#41;</span>;
  <span class="br0">&#125;</span>
&nbsp;
  <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> getFeed<span class="br0">&#40;</span><span style="color: #339933;">$id</span>, <span style="color: #339933;">$since</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
    <span style="color: #0000ff;">try</span> <span class="br0">&#123;</span>
      <span style="color: #0000ff;">return</span> <span style="color: #339933;">$this</span>-&gt;fb-&gt;get<span class="br0">&#40;</span><span style="color: #339933;">$id</span>.<span style="color: #FF0000;">&quot;/feed?since=&quot;</span>.<span style="color: #339933;">$since</span>, <span style="color: #339933;">$this</span>-&gt;accessToken<span class="br0">&#41;</span>;
    <span class="br0">&#125;</span> <span style="color: #0000ff;">catch</span><span class="br0">&#40;</span>\Facebook\Exceptions\FacebookResponseException <span style="color: #339933;">$e</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
      <span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> \Exception<span class="br0">&#40;</span><span style="color: #FF0000;">'Graph returned an error: '</span> . <span style="color: #339933;">$e</span>-&gt;getMessage<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
    <span class="br0">&#125;</span> <span style="color: #0000ff;">catch</span><span class="br0">&#40;</span>\Facebook\Exceptions\FacebookSDKException <span style="color: #339933;">$e</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
      <span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> \Exception<span class="br0">&#40;</span><span style="color: #FF0000;">'Facebook SDK returned an error: '</span> . <span style="color: #339933;">$e</span>-&gt;getMessage<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
    <span class="br0">&#125;</span>
  <span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></pre>
</div><br />
<b>Explication du code</b><br />
- Le constructeur<br />
Pour utiliser l’api de facebook on doit posséder un jeton d'access (access token) en plus des app key and secret key, c’est pour cela que dans le constructeur de la classe on essaye de le récupérer.<br />
on initialise aussi dans le constructeur le client facebook dans l’attribut fb, ceci nous permet de l’utiliser ultérieurement dans les méthodes de la classe.<br />
<br />
- La méthode getFeeds<br />
c’est la méthode qui fait le travail réel de récupération des feed, elle prend en paramètre l’id du group, ainsi qu’un filtre de date pour récupérer tous les feeds de la semaine qui vient de s’écouler (vous pouvez aussi utiliser le paramètre limit pour minimiser le nombre de résultats)<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:60px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">return</span> <span style="color: #339933;">$this</span>-&gt;fb-&gt;get<span class="br0">&#40;</span><span style="color: #339933;">$id</span>.<span style="color: #FF0000;">&quot;/feed?since=&quot;</span>.<span style="color: #339933;">$since</span>, <span style="color: #339933;">$this</span>-&gt;accessToken<span class="br0">&#41;</span>;</pre></td></tr></table></pre>
</div><br />
<b>Step Execution et affichage</b><br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #339933;">$feedScrapper</span> = <span style="color: #0000ff;">new</span> FacebookFeedScrapper<span class="br0">&#40;</span>
  <span style="color: #FF0000;">&quot;your-app-key&quot;</span>, 
  <span style="color: #FF0000;">&quot;your-secret-key&quot;</span>
<span class="br0">&#41;</span>;
&nbsp;
<span style="color: #339933;">$groupId</span> = &#147;the-group-ID&#148;;
&nbsp;
<span style="color: #0000ff;">try</span> <span class="br0">&#123;</span>
  <span style="color: #339933;">$feeds</span> = <span style="color: #339933;">$feedScrapper</span>-&gt;getFeed<span class="br0">&#40;</span><span style="color: #339933;">$groupId</span>, date<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;Y-m-d&quot;</span>, strtotime<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;-1 week +1 day&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>-&gt;getDecodedBody<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span style="color: #FF0000;">'data'</span><span class="br0">&#93;</span>;
<span class="br0">&#125;</span> <span style="color: #0000ff;">catch</span><span class="br0">&#40;</span>\Exception <span style="color: #339933;">$e</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
  <span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> \Exception<span class="br0">&#40;</span><span style="color: #339933;">$e</span>-&gt;getMessage<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
<span class="br0">&#125;</span>
&nbsp;
<span style="color: #0000ff;">echo</span> <span style="color: #FF0000;">&quot;&lt;pre&gt;&quot;</span>;
print_r<span class="br0">&#40;</span><span style="color: #339933;">$feeds</span><span class="br0">&#41;</span>;</pre></td></tr></table></pre>
</div><br />
la variable feeds est maintenant un tableau contenant la liste des posts du group apparus depuis une semaine<br />
<br />
<b>Le code source complet de l’exemple<br />
</b><br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: black;"><span style="color: #0080ff;">&lt;?php</span></span>
<span style="color: black;"><span style="color: #0000ff;">require_once</span> <span style="color: #339933;">__DIR__</span> . <span style="color: #FF0000;">'/vendor/autoload.php'</span>;</span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">class</span> FacebookFeedScrapper<span class="br0">&#123;</span></span>
<span style="color: black;">  <span style="color: #0000ff;">private</span> <span style="color: #339933;">$clientId</span>;</span>
<span style="color: black;">  <span style="color: #0000ff;">private</span> <span style="color: #339933;">$appSecret</span>;</span>
&nbsp;
<span style="color: black;">  <span style="color: #808080;">//Access token from graph</span></span>
<span style="color: black;">  <span style="color: #0000ff;">private</span> <span style="color: #339933;">$accessToken</span>;</span>
&nbsp;
<span style="color: black;">  <span style="color: #808080;">//should be the client sdk</span></span>
<span style="color: black;">  <span style="color: #0000ff;">private</span> <span style="color: #339933;">$fb</span>;</span>
&nbsp;
<span style="color: black;">  <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> <span style="color: #0080ff;">__construct</span><span class="br0">&#40;</span><span style="color: #339933;">$clientId</span>, <span style="color: #339933;">$appSecret</span><span class="br0">&#41;</span><span class="br0">&#123;</span></span>
<span style="color: black;">    <span style="color: #339933;">$this</span>-&gt;clientId = <span style="color: #339933;">$clientId</span>;</span>
<span style="color: black;">    <span style="color: #339933;">$this</span>-&gt;appSecret = <span style="color: #339933;">$appSecret</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #339933;">$this</span>-&gt;accessToken = <span style="color: #339933;">$this</span>-&gt;getAccessToken<span class="br0">&#40;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">    <span style="color: #339933;">$this</span>-&gt;fb = <span style="color: #0000ff;">new</span> \Facebook\Facebook<span class="br0">&#40;</span><span class="br0">&#91;</span></span>
<span style="color: black;">      <span style="color: #FF0000;">'app_id'</span> =&gt; <span style="color: #339933;">$this</span>-&gt;clientId,</span>
<span style="color: black;">      <span style="color: #FF0000;">'app_secret'</span> =&gt; <span style="color: #339933;">$this</span>-&gt;appSecret,</span>
<span style="color: black;">      <span style="color: #FF0000;">'default_graph_version'</span> =&gt; <span style="color: #FF0000;">'v2.7'</span></span>
<span style="color: black;">    <span class="br0">&#93;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">  <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">  <span style="color: #808080;">//Get the Access token</span></span>
<span style="color: black;">  <span style="color: #808080;">//@todo change this with some official api</span></span>
<span style="color: black;">  <span style="color: #0000ff;">private</span> <span style="color: #0000ff;">function</span> getAccessToken<span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">    <span style="color: #339933;">$url</span> = <span style="color: #FF0000;">&quot;https://graph.facebook.com/oauth/access_token?client_id=&quot;</span></span>
<span style="color: black;">    . <span style="color: #339933;">$this</span>-&gt;clientId</span>
<span style="color: black;">    . <span style="color: #FF0000;">&quot;&amp;client_secret=&quot;</span> </span>
<span style="color: black;">    . <span style="color: #339933;">$this</span>-&gt;appSecret </span>
<span style="color: black;">    . <span style="color: #FF0000;">&quot;&amp;grant_type=client_credentials&quot;</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #339933;">$str</span> = file_get_contents<span class="br0">&#40;</span><span style="color: #339933;">$url</span><span class="br0">&#41;</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">return</span>  str_replace <span class="br0">&#40;</span><span style="color: #FF0000;">&quot;access_token=&quot;</span>, <span style="color: #FF0000;">&quot;&quot;</span>, <span style="color: #339933;">$str</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">  <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">  <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> getFeeds<span class="br0">&#40;</span><span style="color: #339933;">$id</span>, <span style="color: #339933;">$since</span><span class="br0">&#41;</span><span class="br0">&#123;</span></span>
<span style="color: black;">    <span style="color: #0000ff;">try</span> <span class="br0">&#123;</span></span>
<span style="color: black;">      <span style="color: #0000ff;">return</span> <span style="color: #339933;">$this</span>-&gt;fb-&gt;get<span class="br0">&#40;</span><span style="color: #339933;">$id</span>.<span style="color: #FF0000;">&quot;/feed?since=&quot;</span>.<span style="color: #339933;">$since</span>, <span style="color: #339933;">$this</span>-&gt;accessToken<span class="br0">&#41;</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span> <span style="color: #0000ff;">catch</span><span class="br0">&#40;</span>\Facebook\Exceptions\FacebookResponseException <span style="color: #339933;">$e</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">      <span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> \Exception<span class="br0">&#40;</span><span style="color: #FF0000;">'Graph returned an error: '</span> . <span style="color: #339933;">$e</span>-&gt;getMessage<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span> <span style="color: #0000ff;">catch</span><span class="br0">&#40;</span>\Facebook\Exceptions\FacebookSDKException <span style="color: #339933;">$e</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">      <span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> \Exception<span class="br0">&#40;</span><span style="color: #FF0000;">'Facebook SDK returned an error: '</span> . <span style="color: #339933;">$e</span>-&gt;getMessage<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
<span style="color: black;">  <span class="br0">&#125;</span></span>
<span style="color: black;"><span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;"><span style="color: #339933;">$groupId</span> = &#147;the-group-ID&#148;;</span>
<span style="color: black;"><span style="color: #339933;">$feedScrapper</span> = <span style="color: #0000ff;">new</span> FacebookFeedScrapper<span class="br0">&#40;</span></span>
<span style="color: black;">  <span style="color: #FF0000;">&quot;your-app-key&quot;</span>, </span>
<span style="color: black;">  <span style="color: #FF0000;">&quot;your-secret-key&quot;</span></span>
<span style="color: black;"><span class="br0">&#41;</span>;</span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">try</span> <span class="br0">&#123;</span></span>
<span style="color: black;">  <span style="color: #339933;">$feeds</span> = <span style="color: #339933;">$feedScrapper</span>-&gt;getFeeds<span class="br0">&#40;</span><span style="color: #339933;">$groupId</span>, date<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;Y-m-d&quot;</span>, strtotime<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;-1 week +1 day&quot;</span><span class="br0">&#41;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>-&gt;getDecodedBody<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#91;</span><span style="color: #FF0000;">'data'</span><span class="br0">&#93;</span>;</span>
<span style="color: black;"><span class="br0">&#125;</span> <span style="color: #0000ff;">catch</span><span class="br0">&#40;</span>\Exception <span style="color: #339933;">$e</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">  <span style="color: #0000ff;">throw</span> <span style="color: #0000ff;">new</span> \Exception<span class="br0">&#40;</span><span style="color: #339933;">$e</span>-&gt;getMessage<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;"><span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">echo</span> <span style="color: #FF0000;">&quot;&lt;pre&gt;&quot;</span>;</span>
<span style="color: black;">print_r<span class="br0">&#40;</span><span style="color: #339933;">$feeds</span><span class="br0">&#41;</span>;</span></pre></td></tr></table></pre>
</div><br />
Voila il ne reste maintenant qu'a lancer le script pour récupérer les feeds <br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code  :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:36px;">php importFeed.php</pre>
</div>@todo<br />
la méthode getAccessToken n'utilise pas le sdk php <br />
(voir comment récupérer ce token via une méthode de l'sdk)</blockquote>

]]></content:encoded>
			<dc:creator>phpiste</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/blogs/116472-phpiste/b1664/php-facebook-sdk-recuperer-messages-d-group/</guid>
		</item>
		<item>
			<title>Un script qui ne sert à rien</title>
			<link>https://www.developpez.net/forums/blogs/116472-phpiste/b1645/script-ne-sert-rien/</link>
			<pubDate>Fri, 23 Sep 2016 12:35:32 GMT</pubDate>
			<description>Voici un petit bout de code...</description>
			<content:encoded><![CDATA[<blockquote class="blogcontent restore">Voici un petit bout de code Php qui ne serve à rien sauf qu'il détecte des similarities dans un tableau :)<br />
<br />
enfaite c'était un chalenge personnel pour détecter des lettres similaires dans un tableau selon différentes stratégies.<br />
<br />
<img src="https://www.developpez.net/forums/attachments/p221022d1474633842/c-cpp/c/editeur-mode-console/screen-shot-2016-09-23-at-1.29.19-pm.png/" border="0" alt="Nom : Screen Shot 2016-09-23 at 1.29.19 PM.png
Affichages : 1199
Taille : 79,5 Ko"  style="float: CONFIG" /><br />
<br />
Les défis aussi était de pouvoir ajouter facilement une stratégie, Une stratégie de recherche de similarité n'est qu'un couple x/y des différentes combinaisons possibles de recherche <br />
<br />
Exemple de strategies knight, plus, plus_and_coin;<br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:144px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="26"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td valign="top"><pre style="margin: 0">$directions = [ 
    'knight' =&gt; [[2, 1],[2, -1],[-2, 1],[-2, -1],[1, 2],[-1,2],[1,-2],[-1,-2]], 
    // pour la lettre a par exemple
    //<font color="#FF0000"><b>a</b></font> b c
    //b a v
    //c <b><font color="#FF0000">a</font></b> b
    'plus' =&gt; [[0, 1],[-1, 0],[0, -1],[1, 0]], 
    'plus_and_coin' =&gt; [[0, 1],[-1, 0],[0, -1],[1, 0],[1, 1],[-1, 1],[1, -1],[-1, -1]] 
];</pre></td></tr></table></pre>
</div><br />
sinon voici le code source de l'exemple ainsi le demo<br />
<br />
la method getRegularConnexion permet au script de s'arrêter une fois un nombre limite de connexions qui répondent a la stratégie est atteint<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="40"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br />85<br />86<br />87<br />88<br />89<br />90<br />91<br />92<br />93<br />94<br />95<br />96<br />97<br />98<br />99<br />100<br />101<br />102<br />103<br />104<br />105<br />106<br />107<br />108<br />109<br />110<br />111<br />112<br />113<br />114<br />115<br />116<br />117<br />118<br />119<br />120<br />121<br />122<br />123<br />124<br />125<br />126<br />127<br />128<br />129<br />130<br />131<br />132<br />133<br />134<br />135<br />136<br />137<br />138<br />139<br />140<br />141<br />142<br />143<br />144<br />145<br />146<br />147<br />148<br />149<br />150<br />151<br />152<br />153<br />154<br />155<br />156<br />157<br />158<br />159<br />160<br />161<br />162<br />163<br />164<br />165<br />166<br />167<br />168<br />169<br />170<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: black;"><span style="color: #0080ff;">&lt;?php</span></span>
&nbsp;
<span style="color: black;"><span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* Copyright (c) &lt;2015&gt;, Ghali Ahmed&lt;ghaliano2005@gmail.com&gt;</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;*</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* All rights reserved.</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* Redistribution and use in source and binary forms, with or without modification,</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* are permitted provided that the following conditions are met:</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* 1. Redistributions of source code must retain the above copyright notice,</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* this list of conditions and the following disclaimer.</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* 2. Redistributions in binary form must reproduce the above copyright notice,</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* this list of conditions and the following disclaimer in the documentation and/or</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* other materials provided with the distribution.</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS &quot;AS IS&quot;</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;*</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* This class find similarity for given cel on 2D array</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* the search strategie can be easly modified with the given direction</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* @Exemple: when the given direction array is: [[0, 1],[-1, 0],[0, -1],[1, 0]]</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* the script will look recursively to the right, top, bottom, left, right of the given cel</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* @author Ghali Ahmed&lt;ghaliano2005@gmail.com&gt;</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* @version 1.0</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;*/</span></span>
<span style="color: black;"><span style="color: #0000ff;">class</span> MathMatrixHelper</span>
<span style="color: black;"><span class="br0">&#123;</span></span>
<span style="color: black;">    <span style="color: #0000ff;">protected</span> <span style="color: #339933;">$atomes</span> = <span class="br0">&#91;</span><span class="br0">&#93;</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">protected</span> <span style="color: #339933;">$tile</span> = <span class="br0">&#91;</span><span class="br0">&#93;</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">protected</span> <span style="color: #339933;">$visited</span> = <span class="br0">&#91;</span><span class="br0">&#93;</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">protected</span> <span style="color: #339933;">$tileDim</span> = <span style="color: #cc66cc;">20</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">private</span> <span style="color: #339933;">$maxNest</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * Direction to find friend cell</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    */</span></span>
<span style="color: black;">    <span style="color: #0000ff;">protected</span> <span style="color: #339933;">$directions</span> = <span class="br0">&#91;</span><span class="br0">&#93;</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> <span style="color: #0080ff;">__construct</span><span class="br0">&#40;</span><span style="color: #339933;">$atomes</span>, <span style="color: #339933;">$directions</span>, <span style="color: #339933;">$tileDim</span><span class="br0">&#41;</span></span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #339933;">$this</span>-&gt;atomes = <span style="color: #339933;">$atomes</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$this</span>-&gt;directions = <span style="color: #339933;">$directions</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$this</span>-&gt;tileDim = <span style="color: #339933;">$tileDim</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$this</span>-&gt;maxNest = ini_set<span class="br0">&#40;</span><span style="color: #FF0000;">'xdebug.max_nesting_level'</span>, <span style="color: #cc66cc;">0</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$this</span>-&gt;init<span class="br0">&#40;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> init<span class="br0">&#40;</span><span class="br0">&#41;</span></span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #339933;">$i</span> = <span style="color: #cc66cc;">0</span>;</span>
<span style="color: black;">        <span style="color: #0000ff;">while</span> <span class="br0">&#40;</span><span style="color: #339933;">$i</span> &lt; <span style="color: #339933;">$this</span>-&gt;tileDim<span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #339933;">$j</span> = <span style="color: #cc66cc;">0</span>;</span>
<span style="color: black;">            <span style="color: #339933;">$this</span>-&gt;tile<span class="br0">&#91;</span><span style="color: #339933;">$i</span><span class="br0">&#93;</span> = <span class="br0">&#91;</span><span class="br0">&#93;</span>;</span>
<span style="color: black;">            <span style="color: #0000ff;">while</span> <span class="br0">&#40;</span><span style="color: #339933;">$j</span> &lt; <span style="color: #339933;">$this</span>-&gt;tileDim<span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">                <span style="color: #339933;">$this</span>-&gt;tile<span class="br0">&#91;</span><span style="color: #339933;">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #339933;">$j</span><span class="br0">&#93;</span> = <span style="color: #339933;">$this</span>-&gt;atomes<span class="br0">&#91;</span>array_rand<span class="br0">&#40;</span><span style="color: #339933;">$this</span>-&gt;atomes<span class="br0">&#41;</span><span class="br0">&#93;</span>;</span>
<span style="color: black;">                <span style="color: #339933;">$this</span>-&gt;visited<span class="br0">&#91;</span><span style="color: #339933;">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #339933;">$j</span><span class="br0">&#93;</span> = <span class="br0">&#91;</span><span class="br0">&#93;</span>;</span>
<span style="color: black;">                <span style="color: #339933;">$j</span>++;</span>
<span style="color: black;">            <span class="br0">&#125;</span></span>
<span style="color: black;">            <span style="color: #339933;">$i</span>++;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> getAllConnexion<span class="br0">&#40;</span><span style="color: #339933;">$i</span>, <span style="color: #339933;">$j</span>, &amp;<span style="color: #339933;">$result</span> = <span class="br0">&#91;</span><span class="br0">&#93;</span><span class="br0">&#41;</span></span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #0000ff;">foreach</span> <span class="br0">&#40;</span><span style="color: #339933;">$this</span>-&gt;directions <span style="color: #0000ff;">as</span> <span style="color: #339933;">$key</span> =&gt; <span style="color: #339933;">$direction</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #339933;">$iTarget</span> = <span style="color: #339933;">$i</span> + <span style="color: #339933;">$direction</span><span class="br0">&#91;</span><span style="color: #cc66cc;">0</span><span class="br0">&#93;</span>;</span>
<span style="color: black;">            <span style="color: #339933;">$jTarget</span> = <span style="color: #339933;">$j</span> + <span style="color: #339933;">$direction</span><span class="br0">&#91;</span><span style="color: #cc66cc;">1</span><span class="br0">&#93;</span>;</span>
&nbsp;
<span style="color: black;">            <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$this</span>-&gt;tile<span class="br0">&#91;</span><span style="color: #339933;">$iTarget</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #339933;">$jTarget</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">                <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span class="br0">&#40;</span><span style="color: #339933;">$this</span>-&gt;tile<span class="br0">&#91;</span><span style="color: #339933;">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #339933;">$j</span><span class="br0">&#93;</span> == <span style="color: #339933;">$this</span>-&gt;tile<span class="br0">&#91;</span><span style="color: #339933;">$iTarget</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #339933;">$jTarget</span><span class="br0">&#93;</span><span class="br0">&#41;</span></span>
<span style="color: black;">                    &amp;&amp; !<span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$this</span>-&gt;visited<span class="br0">&#91;</span><span style="color: #339933;">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #339933;">$j</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #339933;">$key</span><span class="br0">&#93;</span><span class="br0">&#41;</span></span>
<span style="color: black;">                    &amp;&amp; !<span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$this</span>-&gt;visited<span class="br0">&#91;</span><span style="color: #339933;">$iTarget</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #339933;">$jTarget</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #339933;">$key</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">                    <span style="color: #339933;">$result</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span style="color: #FF0000;">&quot;<span style="color: #800000;">$i</span>:<span style="color: #800000;">$j</span>&quot;</span>;</span>
<span style="color: black;">                    <span style="color: #339933;">$this</span>-&gt;visited<span class="br0">&#91;</span><span style="color: #339933;">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #339933;">$j</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #339933;">$key</span><span class="br0">&#93;</span> = <span style="color: #0080ff;">true</span>;</span>
&nbsp;
<span style="color: black;">                    <span style="color: #339933;">$this</span>-&gt;getAllConnexion<span class="br0">&#40;</span><span style="color: #339933;">$iTarget</span>, <span style="color: #339933;">$jTarget</span>, <span style="color: #339933;">$result</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">                <span class="br0">&#125;</span></span>
<span style="color: black;">            <span class="br0">&#125;</span></span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$result</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * Search for connexion in regular mode until there length reached the max value</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @var $m x0</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @var $n y0</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    */</span></span>
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> getRegularConnexion<span class="br0">&#40;</span><span style="color: #339933;">$m</span>, <span style="color: #339933;">$n</span>, <span style="color: #339933;">$max</span>, <span style="color: #339933;">$onlyFirst</span>=<span style="color: #0080ff;">false</span><span class="br0">&#41;</span> </span>
<span style="color: black;">	<span class="br0">&#123;</span></span>
<span style="color: black;">		<span style="color: #339933;">$result</span> = <span class="br0">&#91;</span><span class="br0">&#93;</span>;</span>
<span style="color: black;">		<span style="color: #339933;">$len</span> = count<span class="br0">&#40;</span><span style="color: #339933;">$this</span>-&gt;tile<span class="br0">&#41;</span>;</span>
<span style="color: black;">		<span style="color: #0000ff;">foreach</span> <span class="br0">&#40;</span><span style="color: #339933;">$this</span>-&gt;directions <span style="color: #0000ff;">as</span> <span style="color: #339933;">$key</span> =&gt; <span style="color: #339933;">$direction</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">			<span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>!<span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$result</span><span class="br0">&#91;</span><span style="color: #339933;">$key</span><span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">				<span style="color: #339933;">$result</span><span class="br0">&#91;</span><span style="color: #339933;">$key</span><span class="br0">&#93;</span> = <span class="br0">&#91;</span><span class="br0">&#93;</span>;</span>
<span style="color: black;">			<span class="br0">&#125;</span> </span>
<span style="color: black;">			<span style="color: #0000ff;">for</span> <span class="br0">&#40;</span><span style="color: #339933;">$i</span> = <span style="color: #cc66cc;">0</span>; <span style="color: #339933;">$i</span> &lt; <span style="color: #339933;">$len</span>; <span style="color: #339933;">$i</span>++<span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">				<span style="color: #339933;">$iTarget</span> = <span style="color: #339933;">$m</span> + <span style="color: #339933;">$i</span>*<span style="color: #339933;">$direction</span><span class="br0">&#91;</span><span style="color: #cc66cc;">0</span><span class="br0">&#93;</span>;</span>
<span style="color: black;">				<span style="color: #339933;">$jTarget</span> = <span style="color: #339933;">$n</span> + <span style="color: #339933;">$i</span>*<span style="color: #339933;">$direction</span><span class="br0">&#91;</span><span style="color: #cc66cc;">1</span><span class="br0">&#93;</span>;</span>
<span style="color: black;">					<span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #339933;">$this</span>-&gt;tile<span class="br0">&#91;</span><span style="color: #339933;">$m</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #339933;">$n</span><span class="br0">&#93;</span> != @<span style="color: #339933;">$this</span>-&gt;tile<span class="br0">&#91;</span><span style="color: #339933;">$iTarget</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #339933;">$jTarget</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">					<span style="color: #0000ff;">break</span>;</span>
<span style="color: black;">				<span class="br0">&#125;</span> <span style="color: #0000ff;">else</span> <span class="br0">&#123;</span></span>
<span style="color: black;">					<span style="color: #339933;">$result</span><span class="br0">&#91;</span><span style="color: #339933;">$key</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span style="color: #FF0000;">&quot;<span style="color: #800000;">$iTarget</span>:<span style="color: #800000;">$jTarget</span>&quot;</span>;</span>
<span style="color: black;">					<span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #339933;">$onlyFirst</span> &amp;&amp; <span class="br0">&#40;</span>count<span class="br0">&#40;</span><span style="color: #339933;">$result</span><span class="br0">&#91;</span><span style="color: #339933;">$key</span><span class="br0">&#93;</span><span class="br0">&#41;</span> == <span style="color: #339933;">$max</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">						<span style="color: #0000ff;">return</span> <span style="color: #339933;">$result</span><span class="br0">&#91;</span><span style="color: #339933;">$key</span><span class="br0">&#93;</span>;</span>
<span style="color: black;">					<span class="br0">&#125;</span></span>
<span style="color: black;">				<span class="br0">&#125;</span></span>
<span style="color: black;">			<span class="br0">&#125;</span></span>
<span style="color: black;">            <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>!<span style="color: #339933;">$onlyFirst</span> &amp;&amp; count<span class="br0">&#40;</span><span style="color: #339933;">$result</span><span class="br0">&#91;</span><span style="color: #339933;">$key</span><span class="br0">&#93;</span><span class="br0">&#41;</span> &lt;<span style="color: #339933;">$max</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">                <span style="color: #339933;">$result</span><span class="br0">&#91;</span><span style="color: #339933;">$key</span><span class="br0">&#93;</span> = <span class="br0">&#91;</span><span class="br0">&#93;</span>;</span>
<span style="color: black;">            <span class="br0">&#125;</span></span>
<span style="color: black;">		<span class="br0">&#125;</span>;</span>
&nbsp;
<span style="color: black;">		<span style="color: #0000ff;">return</span> <span style="color: #339933;">$this</span>-&gt;flatten<span class="br0">&#40;</span><span style="color: #339933;">$result</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">	<span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * Print array like a matrix</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * and display connexion with special color</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    */</span></span>
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> printTile<span class="br0">&#40;</span><span style="color: #339933;">$result</span>, <span style="color: #339933;">$m</span>, <span style="color: #339933;">$n</span><span class="br0">&#41;</span></span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #339933;">$linePattern</span> = <span style="color: #FF0000;">&quot;[%s]&lt;br /&gt;&quot;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$itemPattern</span> = <span style="color: #FF0000;">&quot;%s&lt;span style='%s'&gt;%s&lt;/span&gt;&quot;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$output</span> = <span style="color: #FF0000;">&quot;&quot;</span>;</span>
<span style="color: black;">        <span style="color: #0000ff;">for</span> <span class="br0">&#40;</span><span style="color: #339933;">$i</span> = <span style="color: #cc66cc;">0</span>; <span style="color: #339933;">$i</span>&lt;<span style="color: #339933;">$this</span>-&gt;tileDim; <span style="color: #339933;">$i</span>++<span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #339933;">$sep</span> = <span style="color: #FF0000;">''</span>;</span>
<span style="color: black;">            <span style="color: #339933;">$j</span> = <span style="color: #cc66cc;">0</span>;</span>
<span style="color: black;">            <span style="color: #339933;">$str</span> = <span style="color: #FF0000;">''</span>;</span>
<span style="color: black;">            <span style="color: #0000ff;">for</span> <span class="br0">&#40;</span><span style="color: #339933;">$j</span> = <span style="color: #cc66cc;">0</span>; <span style="color: #339933;">$j</span>&lt;<span style="color: #339933;">$this</span>-&gt;tileDim; <span style="color: #339933;">$j</span>++<span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">                <span style="color: #339933;">$in</span> = in_array<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;<span style="color: #800000;">$i</span>:<span style="color: #800000;">$j</span>&quot;</span>, <span style="color: #339933;">$result</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">                <span style="color: #339933;">$from</span> = <span style="color: #339933;">$i</span> == <span style="color: #339933;">$m</span> &amp;&amp; <span style="color: #339933;">$j</span> == <span style="color: #339933;">$n</span>;</span>
<span style="color: black;">                <span style="color: #339933;">$str</span> .= sprintf<span class="br0">&#40;</span><span style="color: #339933;">$itemPattern</span>, <span style="color: #339933;">$sep</span>, <span class="br0">&#40;</span><span style="color: #339933;">$in</span> ? <span style="color: #FF0000;">'color: red; font-weight: bold;'</span> : <span style="color: #FF0000;">''</span><span class="br0">&#41;</span>.<span class="br0">&#40;</span><span style="color: #339933;">$from</span> ? <span style="color: #FF0000;">'border: 1px solid;'</span> : <span style="color: #FF0000;">''</span><span class="br0">&#41;</span>, @<span style="color: #339933;">$this</span>-&gt;tile<span class="br0">&#91;</span><span style="color: #339933;">$i</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #339933;">$j</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">                <span style="color: #339933;">$sep</span> = <span style="color: #FF0000;">','</span>;</span>
<span style="color: black;">            <span class="br0">&#125;</span></span>
<span style="color: black;">            <span style="color: #339933;">$output</span> .= sprintf<span class="br0">&#40;</span><span style="color: #339933;">$linePattern</span>, <span style="color: #339933;">$str</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">print</span> <span style="color: #FF0000;">'&lt;pre&gt;'</span>.<span style="color: #339933;">$output</span>.<span style="color: #FF0000;">'&lt;/pre&gt;'</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> <span style="color: #0080ff;">__destruct</span><span class="br0">&#40;</span><span class="br0">&#41;</span></span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>!<span style="color: #0000ff;">empty</span><span class="br0">&#40;</span><span style="color: #339933;">$this</span>-&gt;maxNest<span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            ini_set<span class="br0">&#40;</span><span style="color: #FF0000;">'xdebug.max_nesting_level'</span>, <span style="color: #339933;">$this</span>-&gt;maxNest<span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * Thnaks to http://stackoverflow.com/users/28835/too-much-php</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * http://stackoverflow.com/questions/1319903/how-to-flatten-a-multidimensional-array</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    */</span></span>
<span style="color: black;">    <span style="color: #0000ff;">protected</span> <span style="color: #0000ff;">function</span> flatten<span class="br0">&#40;</span><span style="color: #0000ff;">array</span> <span style="color: #339933;">$array</span><span class="br0">&#41;</span> </span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #339933;">$return</span> = <span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        array_walk_recursive<span class="br0">&#40;</span><span style="color: #339933;">$array</span>, <span style="color: #0000ff;">function</span><span class="br0">&#40;</span><span style="color: #339933;">$a</span><span class="br0">&#41;</span> <span style="color: #0000ff;">use</span> <span class="br0">&#40;</span>&amp;<span style="color: #339933;">$return</span><span class="br0">&#41;</span> <span class="br0">&#123;</span> <span style="color: #339933;">$return</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span style="color: #339933;">$a</span>; <span class="br0">&#125;</span><span class="br0">&#41;</span>;</span>
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$return</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
<span style="color: black;"><span class="br0">&#125;</span></span></pre></td></tr></table></pre>
</div><br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: black;"><span style="color: #0080ff;">&lt;?php</span></span>
<span style="color: black;"><span style="color: #0000ff;">include</span><span class="br0">&#40;</span><span style="color: #FF0000;">'matrix.php'</span><span class="br0">&#41;</span>;</span>
&nbsp;
<span style="color: black;"><span style="color: #339933;">$letters</span> = <span class="br0">&#91;</span><span style="color: #FF0000;">'a'</span>, <span style="color: #FF0000;">'b'</span>, <span style="color: #FF0000;">'c'</span>, <span style="color: #FF0000;">'d'</span><span class="br0">&#93;</span>;</span>
<span style="color: black;"><span style="color: #339933;">$directions</span> = <span class="br0">&#91;</span></span>
<span style="color: black;">	<span style="color: #FF0000;">'knight'</span> =&gt; <span class="br0">&#91;</span><span class="br0">&#91;</span><span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">1</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="color: #cc66cc;">2</span>, -<span style="color: #cc66cc;">1</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span>-<span style="color: #cc66cc;">2</span>, <span style="color: #cc66cc;">1</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span>-<span style="color: #cc66cc;">2</span>, -<span style="color: #cc66cc;">1</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">2</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span>-<span style="color: #cc66cc;">1</span>,<span style="color: #cc66cc;">2</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="color: #cc66cc;">1</span>,-<span style="color: #cc66cc;">2</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span>-<span style="color: #cc66cc;">1</span>,-<span style="color: #cc66cc;">2</span><span class="br0">&#93;</span><span class="br0">&#93;</span>,</span>
<span style="color: black;">	<span style="color: #FF0000;">'plus'</span> =&gt; <span class="br0">&#91;</span><span class="br0">&#91;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span>-<span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="color: #cc66cc;">0</span>, -<span style="color: #cc66cc;">1</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span><span class="br0">&#93;</span><span class="br0">&#93;</span>,</span>
<span style="color: black;">	<span style="color: #FF0000;">'plus_and_coin'</span> =&gt; <span class="br0">&#91;</span><span class="br0">&#91;</span><span style="color: #cc66cc;">0</span>, <span style="color: #cc66cc;">1</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span>-<span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="color: #cc66cc;">0</span>, -<span style="color: #cc66cc;">1</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">0</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">1</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span>-<span style="color: #cc66cc;">1</span>, <span style="color: #cc66cc;">1</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span><span style="color: #cc66cc;">1</span>, -<span style="color: #cc66cc;">1</span><span class="br0">&#93;</span>,<span class="br0">&#91;</span>-<span style="color: #cc66cc;">1</span>, -<span style="color: #cc66cc;">1</span><span class="br0">&#93;</span><span class="br0">&#93;</span></span>
<span style="color: black;"><span class="br0">&#93;</span>;</span>
&nbsp;
<span style="color: black;"><span style="color: #339933;">$strategie</span> = <span style="color: #FF0000;">'plus_and_coin'</span>;</span>
&nbsp;
<span style="color: black;"><span style="color: #339933;">$matrix</span> = <span style="color: #0000ff;">new</span> MathMatrixHelper<span class="br0">&#40;</span><span style="color: #339933;">$letters</span>, <span style="color: #339933;">$directions</span><span class="br0">&#91;</span><span style="color: #339933;">$strategie</span><span class="br0">&#93;</span>, <span style="color: #cc66cc;">20</span><span class="br0">&#41;</span>;</span>
<span style="color: black;"><span style="color: #0000ff;">print</span> <span style="color: #FF0000;">'&lt;b&gt;getAllConnexion:&lt;/b&gt;&lt;br&gt;'</span>;</span>
<span style="color: black;"><span style="color: #339933;">$startTime</span> = microtime<span class="br0">&#40;</span><span style="color: #0080ff;">true</span><span class="br0">&#41;</span>;</span>
<span style="color: black;"><span style="color: #339933;">$result</span> = <span style="color: #339933;">$matrix</span>-&gt;getAllConnexion<span class="br0">&#40;</span><span style="color: #cc66cc;">6</span>, <span style="color: #cc66cc;">6</span><span class="br0">&#41;</span>;</span>
<span style="color: black;"><span style="color: #339933;">$matrix</span>-&gt;printTile<span class="br0">&#40;</span><span style="color: #339933;">$result</span>, <span style="color: #cc66cc;">6</span>, <span style="color: #cc66cc;">6</span><span class="br0">&#41;</span>;</span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">print</span> <span style="color: #FF0000;">'&lt;b&gt;getRegularConnexion:&lt;/b&gt;&lt;br&gt;'</span>;</span>
<span style="color: black;"><span style="color: #339933;">$result</span> = <span style="color: #339933;">$matrix</span>-&gt;getRegularConnexion<span class="br0">&#40;</span><span style="color: #cc66cc;">6</span>, <span style="color: #cc66cc;">6</span>, <span style="color: #cc66cc;">5</span>, <span style="color: #0080ff;">true</span><span class="br0">&#41;</span>;</span>
<span style="color: black;"><span style="color: #339933;">$matrix</span>-&gt;printTile<span class="br0">&#40;</span><span style="color: #339933;">$result</span>, <span style="color: #cc66cc;">6</span>, <span style="color: #cc66cc;">6</span><span class="br0">&#41;</span>;</span>
<span style="color: black;"><span style="color: #339933;">$endTime</span> = microtime<span class="br0">&#40;</span><span style="color: #0080ff;">true</span><span class="br0">&#41;</span>;</span>
<span style="color: black;"><span style="color: #0000ff;">echo</span> <span style="color: #FF0000;">&quot;Execution time : &quot;</span> . <span class="br0">&#40;</span><span style="color: #339933;">$endTime</span> - <span style="color: #339933;">$startTime</span><span class="br0">&#41;</span> . <span style="color: #FF0000;">&quot; seconds&lt;br/&gt;&lt;br/&gt;&quot;</span>;</span></pre></td></tr></table></pre>
</div></blockquote>

]]></content:encoded>
			<dc:creator>phpiste</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/blogs/116472-phpiste/b1645/script-ne-sert-rien/</guid>
		</item>
		<item>
			<title><![CDATA[dataTable avec symfony3 [partie 2]]]></title>
			<link>https://www.developpez.net/forums/blogs/116472-phpiste/b1644/datatable-symfony3-partie-2/</link>
			<pubDate>Fri, 23 Sep 2016 11:44:47 GMT</pubDate>
			<description>Bonjour, 
 
Ce billet et une...</description>
			<content:encoded><![CDATA[<blockquote class="blogcontent restore">Bonjour,<br />
<br />
Ce billet et une continuation de l’ancien billet manipuler une dataTable js<br />
<a href="http://www.developpez.net/forums/blogs/116472-phpiste/b454/exemple-simple-integrer-datatable-symfony2" target="_blank">http://www.developpez.net/forums/blo...table-symfony2</a><br />
A travers ce billet vous allez pouvoir améliorer l'exemple précédent en ajoutant un utilisateur via une popup.<br />
<br />
<b>Intro</b><br />
J’ai pensé au début à créé un nouveau template pour l’ajout, mais ceci va nous obliger de quitter la page et perdre les fonctionnalités de refresh de dataTable, pour cela on va proposer à l’utilisateur un formulaire dans une popup qui lui permettra d’ajouter une entrée dans la base sans qu’il quitte la page des listes d’utilisateurs et pouvoir la rafraichir pour voir la nouvelle entrée, pour l’exemple je vais utiliser la popup de bootstrap.<br />
<br />
Donc pour mettre le tout en place, j’ai effectué quelques modifications<br />
<br />
<img src="https://www.developpez.net/forums/attachments/p221015d1474631581/c-cpp/c/editeur-mode-console/screen-shot-2016-09-23-at-11.19.09-am.png/" border="0" alt="Nom : Screen Shot 2016-09-23 at 11.19.09 AM.png
Affichages : 2575
Taille : 26,0 Ko"  style="float: CONFIG" /><br />
Importent: j'ai mis a jour la version du framework  vers v3.<br />
la création d’un nouveau bundle nommé AppBundle et déplacement des vues dedans (à partir du dossier Resources sous /app)<br />
L’ajout plusieurs lib javascript<b></b>:<br />
Bootstrap: servira à améliorer l’ergonomie et la mise en page du site, et pour la popup javascript<br />
jquery.form.js: pour simplifier l’envoi des formulaires en ajax<br />
<br />
J’ai aussi utiliser le layout bootstrap suivant pour améliorer l’affichage<br />
<a href="http://getbootstrap.com/examples/dashboard/" target="_blank">http://getbootstrap.com/examples/dashboard/</a><br />
<br />
<b>1/ Ajouter le formType</b><br />
<br />
Pour ajouter une classe de formulaire, lancer tout simplement la commande <br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code  :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:36px;">php bin/console generate:doctrine:form AppBundle:User</pre>
</div>Un fichier sera créé sous AppBundle/Form, modifier le pour avoir le contenu suivant<br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: black;"><span style="color: #0080ff;">&lt;?php</span></span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">namespace</span> AppBundle\Form;</span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">use</span> Symfony\Component\Form\AbstractType;</span>
<span style="color: black;"><span style="color: #0000ff;">use</span> Symfony\Component\Form\FormBuilderInterface;</span>
<span style="color: black;"><span style="color: #0000ff;">use</span> Symfony\Component\OptionsResolver\OptionsResolver;</span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">class</span> UserType <span style="color: #0000ff;">extends</span> AbstractType</span>
<span style="color: black;"><span class="br0">&#123;</span></span>
<span style="color: black;">    <span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @param FormBuilderInterface $builder</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @param array $options</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    */</span></span>
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> buildForm<span class="br0">&#40;</span>FormBuilderInterface <span style="color: #339933;">$builder</span>, <span style="color: #0000ff;">array</span> <span style="color: #339933;">$options</span><span class="br0">&#41;</span></span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #339933;">$builder</span></span>
<span style="color: black;">            -&gt;add<span class="br0">&#40;</span><span style="color: #FF0000;">'name'</span><span class="br0">&#41;</span></span>
<span style="color: black;">        ;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @param OptionsResolver $resolver</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    */</span></span>
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> configureOptions<span class="br0">&#40;</span>OptionsResolver <span style="color: #339933;">$resolver</span><span class="br0">&#41;</span></span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #339933;">$resolver</span>-&gt;setDefaults<span class="br0">&#40;</span><span style="color: #0000ff;">array</span><span class="br0">&#40;</span></span>
<span style="color: black;">            <span style="color: #FF0000;">'data_class'</span> =&gt; <span style="color: #FF0000;">'AppBundle\Entity\User'</span></span>
<span style="color: black;">        <span class="br0">&#41;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
<span style="color: black;"><span class="br0">&#125;</span></span></pre></td></tr></table></pre>
</div><br />
<b>2/ Ajouter l’action associé qui à travers, on pourra instancier le FormType et et le passer au rendu:<br />
</b><br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #0000ff;">use</span> Symfony\Component\Form\Extension\Core\Type\TextType;
<span style="color: #0000ff;">use</span> AppBundle\Entity\User;
<span style="color: #0000ff;">use</span> AppBundle\Form\UserType;
   &#133;&#133;.
   &#133;&#133;.
    <span style="color: #808080;">/**</span>
<span style="color: #808080;">&nbsp;    * @Route(&quot;/user/new&quot;, name=&quot;user_new&quot;)</span>
<span style="color: #808080;">&nbsp;    */</span>
    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> newAction<span class="br0">&#40;</span>Request <span style="color: #339933;">$request</span><span class="br0">&#41;</span>
    <span class="br0">&#123;</span>
        <span style="color: #339933;">$user</span> = <span style="color: #0000ff;">new</span> User<span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp;
        <span style="color: #339933;">$form</span> = <span style="color: #339933;">$this</span>-&gt;createForm<span class="br0">&#40;</span>UserType::<span style="color: #0000ff;">class</span>, <span style="color: #339933;">$user</span><span class="br0">&#41;</span>;
&nbsp;
        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$this</span>-&gt;render<span class="br0">&#40;</span><span style="color: #FF0000;">'AppBundle:user:new.html.twig'</span>, <span style="color: #0000ff;">array</span><span class="br0">&#40;</span>
            <span style="color: #FF0000;">'form'</span> =&gt; <span style="color: #339933;">$form</span>-&gt;createView<span class="br0">&#40;</span><span class="br0">&#41;</span>,
        <span class="br0">&#41;</span><span class="br0">&#41;</span>;
    <span class="br0">&#125;</span></pre></td></tr></table></pre>
</div><br />
<b>Créer la vue pour afficher le formulaire<br />
</b><br />
<br />
La vue contiendra des éléments html relatifs à la modal bootstrap ainsi que la fonction javascript pour envoyer le formulaire en ajax<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code html :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">div</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;modal-header&quot;</span><span style="color: #0000ff;">&gt;</span></span>
	<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">button</span> <span style="color: #0080ff;">type</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;button&quot;</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;close&quot;</span> data-dismiss<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;modal&quot;</span> aria-hidden<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;true&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;">&amp;times;</span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">button</span><span style="color: #0000ff;">&gt;</span></span>
	<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">h4</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;modal-title&quot;</span><span style="color: #0000ff;">&gt;</span></span>Ajouter un utilisateur<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">h4</span><span style="color: #0000ff;">&gt;</span></span>
<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">div</span><span style="color: #0000ff;">&gt;</span></span>
&nbsp;
<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">form</span> <span style="color: #0080ff;">method</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;post&quot;</span> <span style="color: #0080ff;">action</span><span style="color: #0000ff;">=</span><span style="color: black;"><span style="color: #FF0000;">&quot;<span style="color: black;"><span style="color: #339933;"><span class="br0">&#123;</span><span class="br0">&#123;</span></span>path<span class="br0">&#40;</span><span style="color: #FF0000;">'user_create'</span><span class="br0">&#41;</span><span style="color: #339933;"><span class="br0">&#125;</span><span class="br0">&#125;</span></span></span>&quot;</span></span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;user-create-form&quot;</span><span style="color: #0000ff;">&gt;</span></span>
	<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">div</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;modal-body&quot;</span><span style="color: #0000ff;">&gt;</span></span>
		<span style="color: #339933;"><span class="br0">&#123;</span><span class="br0">&#123;</span></span>form_widget<span class="br0">&#40;</span>form<span class="br0">&#41;</span><span style="color: #339933;"><span class="br0">&#125;</span><span class="br0">&#125;</span></span>
	<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">div</span><span style="color: #0000ff;">&gt;</span></span>
	<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">div</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;modal-footer&quot;</span><span style="color: #0000ff;">&gt;</span></span>
	    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">button</span> <span style="color: #0080ff;">type</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;button&quot;</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;btn btn-default&quot;</span> data-dismiss<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;modal&quot;</span><span style="color: #0000ff;">&gt;</span></span>fermer<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">button</span><span style="color: #0000ff;">&gt;</span></span>
	    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">button</span> <span style="color: #0080ff;">type</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;submit&quot;</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;btn btn-primary&quot;</span><span style="color: #0000ff;">&gt;</span></span>Enregistrer<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">button</span><span style="color: #0000ff;">&gt;</span></span>
	<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">div</span><span style="color: #0000ff;">&gt;</span></span>
<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">form</span><span style="color: #0000ff;">&gt;</span></span>
&nbsp;
<span style="color: #0000ff;">&lt;script&gt;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #FF0000;">'.user-create-form'</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">submit</span><span class="br0">&#40;</span><span style="color: #0000ff;">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.<span style="color: #0080ff;">preventDefault</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #0000ff;">this</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">ajaxSubmit</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #800000;">dataType</span>: <span style="color: #FF0000;">'json'</span>,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #800000;">success</span>: <span style="color: #0000ff;">function</span><span class="br0">&#40;</span>result<span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>result.<span style="color: #0080ff;">status</span> == <span style="color: #FF0000;">'ok'</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; userTable.ajax.<span style="color: #0080ff;">reload</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #FF0000;">'#myModal'</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">modal</span><span class="br0">&#40;</span><span style="color: #FF0000;">'hide'</span><span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #339933;">false</span>;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>; 
<span style="color: #0000ff;">&lt;/script&gt;</span></pre></td></tr></table></pre>
</div><br />
<b>La mise en forme avec le layout</b><br />
<br />
Aussi le layout principale est à changer pour inclure le html de base de la popup, le nouveau design et les différents scripts et styles de librairies tiers<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code html :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">html</span><span style="color: #0000ff;">&gt;</span></span>
	<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">head</span><span style="color: #0000ff;">&gt;</span></span>
		<span style="color: #339933;"><span class="br0">&#123;</span>%</span><span style="color: #339933;">block</span> css<span style="color: #339933;">%<span class="br0">&#125;</span></span>
		    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">link</span> <span style="color: #0080ff;">rel</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;stylesheet&quot;</span> <span style="color: #0080ff;">href</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css&quot;</span> integrity<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u&quot;</span> <span style="color: #0080ff;">crossorigin</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;anonymous&quot;</span><span style="color: #0000ff;">&gt;</span></span>
&nbsp;
		    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">link</span> <span style="color: #0080ff;">rel</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;stylesheet&quot;</span> <span style="color: #0080ff;">href</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css&quot;</span> integrity<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp&quot;</span> <span style="color: #0080ff;">crossorigin</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;anonymous&quot;</span><span style="color: #0000ff;">&gt;</span></span>
&nbsp;
		    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">link</span> <span style="color: #0080ff;">rel</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;stylesheet&quot;</span> <span style="color: #0080ff;">href</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;https://cdn.datatables.net/1.10.6/css/jquery.dataTables.min.css&quot;</span> /<span style="color: #0000ff;">&gt;</span></span>
		    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">link</span> <span style="color: #0080ff;">rel</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;stylesheet&quot;</span> <span style="color: #0080ff;">href</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;https://cdn.datatables.net/1.10.12/css/dataTables.bootstrap.min.css&quot;</span> /<span style="color: #0000ff;">&gt;</span></span>
		    <span style="color: #0000ff;">&lt;style</span><span style="color: #0080ff;"> type=</span><span style="color: #FF0000;">&quot;text/css&quot;</span><span style="color: #0000ff;">&gt;</span>
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">&lt;/style&gt;</span>
		<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">endblock</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span>
	<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">head</span><span style="color: #0000ff;">&gt;</span></span>
<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">html</span><span style="color: #0000ff;">&gt;</span></span>
&nbsp;
<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">body</span> cz-shortcut-listen<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;true&quot;</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">nav</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;navbar navbar-inverse navbar-fixed-top&quot;</span><span style="color: #0000ff;">&gt;</span></span>
      <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">div</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;container-fluid&quot;</span><span style="color: #0000ff;">&gt;</span></span>
        <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">div</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;navbar-header&quot;</span><span style="color: #0000ff;">&gt;</span></span>
          <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">button</span> <span style="color: #0080ff;">type</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;button&quot;</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;navbar-toggle collapsed&quot;</span> data-toggle<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;collapse&quot;</span> data-target<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;#navbar&quot;</span> aria-expanded<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;false&quot;</span> aria-controls<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;navbar&quot;</span><span style="color: #0000ff;">&gt;</span></span>
            <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">span</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;sr-only&quot;</span><span style="color: #0000ff;">&gt;</span></span>Toggle navigation<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">span</span><span style="color: #0000ff;">&gt;</span></span>
            <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">span</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;icon-bar&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">span</span><span style="color: #0000ff;">&gt;</span></span>
            <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">span</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;icon-bar&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">span</span><span style="color: #0000ff;">&gt;</span></span>
            <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">span</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;icon-bar&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">span</span><span style="color: #0000ff;">&gt;</span></span>
          <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">button</span><span style="color: #0000ff;">&gt;</span></span>
          <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">a</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;navbar-brand&quot;</span> <span style="color: #0080ff;">href</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;#&quot;</span><span style="color: #0000ff;">&gt;</span></span>dataTable exemple<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">a</span><span style="color: #0000ff;">&gt;</span></span>
        <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">div</span><span style="color: #0000ff;">&gt;</span></span>
        <span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">block</span> actions <span style="color: #339933;">%<span class="br0">&#125;</span></span>
        <span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">endblock</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span>
      <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">div</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">nav</span><span style="color: #0000ff;">&gt;</span></span>
&nbsp;
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">div</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;container-fluid&quot;</span><span style="color: #0000ff;">&gt;</span></span>
      <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">div</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;row&quot;</span><span style="color: #0000ff;">&gt;</span></span>
        <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">div</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;col-sm-12 main&quot;</span><span style="color: #0000ff;">&gt;</span></span>
        	<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">br</span> /<span style="color: #0000ff;">&gt;</span></span>
    			<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">block</span> body <span style="color: #339933;">%<span class="br0">&#125;</span></span>
    			<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">endblock</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span>
          <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">div</span><span style="color: #0000ff;">&gt;</span></span>
        <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">div</span><span style="color: #0000ff;">&gt;</span></span>
      <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">div</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">div</span><span style="color: #0000ff;">&gt;</span></span>
&nbsp;
    <span style="color: #808080;">&lt;!-- /.modal source code --&gt;</span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">div</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;modal fade&quot;</span> <span style="color: #0080ff;">id</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;myModal&quot;</span> <span style="color: #0080ff;">tabindex</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;-1&quot;</span> <span style="color: #0080ff;">role</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;dialog&quot;</span> aria-labelledby<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;myModalLabel&quot;</span> aria-hidden<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;true&quot;</span><span style="color: #0000ff;">&gt;</span></span>
        <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">div</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;modal-dialog&quot;</span><span style="color: #0000ff;">&gt;</span></span>
            <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">div</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;modal-content&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">div</span><span style="color: #0000ff;">&gt;</span></span>
        <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">div</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">div</span><span style="color: #0000ff;">&gt;</span></span>
<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">body</span><span style="color: #0000ff;">&gt;</span></span>
&nbsp;
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">block</span> javascript <span style="color: #339933;">%<span class="br0">&#125;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">script</span> <span style="color: #0080ff;">src</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;https://code.jquery.com/jquery-1.11.2.min.js&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">script</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">script</span> <span style="color: #0080ff;">src</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js&quot;</span> integrity<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa&quot;</span> <span style="color: #0080ff;">crossorigin</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;anonymous&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">script</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">script</span> <span style="color: #0080ff;">src</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;https://cdn.datatables.net/1.10.6/js/jquery.dataTables.min.js&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">script</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">script</span> <span style="color: #0080ff;">src</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;https://cdn.datatables.net/1.10.12/js/dataTables.bootstrap.min.js&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">script</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">script</span> <span style="color: #0080ff;">type</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;text/javascript&quot;</span> <span style="color: #0080ff;">src</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;http://malsup.github.io/min/jquery.form.min.js&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">script</span><span style="color: #0000ff;">&gt;</span></span>
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">endblock</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span></pre></td></tr></table></pre>
</div><br />
<b>la page liste des utilisateurs</b><br />
<br />
Reste aussi le code de la page liste des utilisateurs, j’ai un peut changer son code js pour pouvoir l’adapter à la nouvelle fonctionnalité d’ajout.<br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code html :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">extends</span> <span style="color: #FF0000;">&quot;AppBundle::base.html.twig&quot;</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span>
&nbsp;
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">block</span> actions <span style="color: #339933;">%<span class="br0">&#125;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">ul</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;nav navbar-nav navbar-right&quot;</span><span style="color: #0000ff;">&gt;</span></span>
      <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">li</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">a</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;btn btn-link user-add-btn&quot;</span> <span style="color: #0080ff;">href</span><span style="color: #0000ff;">=</span><span style="color: black;"><span style="color: #FF0000;">&quot;<span style="color: black;"><span style="color: #339933;"><span class="br0">&#123;</span><span class="br0">&#123;</span></span> path<span class="br0">&#40;</span><span style="color: #FF0000;">'user_new'</span><span class="br0">&#41;</span> <span style="color: #339933;"><span class="br0">&#125;</span><span class="br0">&#125;</span></span></span>&quot;</span></span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">i</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;glyphicon glyphicon-plus&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">i</span><span style="color: #0000ff;">&gt;</span></span> Ajouter<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">a</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">li</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">ul</span><span style="color: #0000ff;">&gt;</span></span>
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">endblock</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span>
&nbsp;
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">block</span> body <span style="color: #339933;">%<span class="br0">&#125;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">h1</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;page-header&quot;</span><span style="color: #0000ff;">&gt;</span></span>Liste des utilisateurs<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">h1</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">table</span> <span style="color: #0080ff;">id</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;user-list&quot;</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;table table-striped&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">table</span><span style="color: #0000ff;">&gt;</span></span>
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">endblock</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span>
&nbsp;
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">block</span> javascript <span style="color: #339933;">%<span class="br0">&#125;</span></span>
    <span style="color: #339933;"><span class="br0">&#123;</span><span class="br0">&#123;</span></span> parent<span class="br0">&#40;</span><span class="br0">&#41;</span> <span style="color: #339933;"><span class="br0">&#125;</span><span class="br0">&#125;</span></span>
&nbsp;
    <span style="color: #0000ff;">&lt;script&gt;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">var</span> userTable;
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #0000ff;">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #808080;">//C'est le bouton qui affiche la popup, et charge aussi le formulaire dans cette derni&egrave;re.</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #FF0000;">'.user-add-btn'</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">click</span><span class="br0">&#40;</span><span style="color: #0000ff;">function</span><span class="br0">&#40;</span>e<span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$</span>.<span style="color: #0080ff;">get</span><span class="br0">&#40;</span>e.currentTarget.href, <span style="color: #0000ff;">function</span><span class="br0">&#40;</span>html<span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #FF0000;">'#myModal .modal-content'</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">html</span><span class="br0">&#40;</span>html<span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #FF0000;">'#myModal'</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">modal</span><span class="br0">&#40;</span><span style="color: #FF0000;">'show'</span><span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; e.<span style="color: #0080ff;">preventDefault</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; userTable = <span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #FF0000;">'#user-list'</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">DataTable</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">&quot;processing&quot;</span>: <span style="color: #339933;">true</span>,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">&quot;serverSide&quot;</span>: <span style="color: #339933;">true</span>,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">&quot;ajax&quot;</span>: <span style="color: #FF0000;">&quot;{{ path('user_paginate') }}&quot;</span>,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">&quot;sAjaxDataProp&quot;</span>: <span style="color: #FF0000;">&quot;data&quot;</span>,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">&quot;pageLength&quot;</span>: <span style="color: #cc66cc;">10</span>,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">&quot;columns&quot;</span>:<span class="br0">&#91;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span style="color: #FF0000;">&quot;data&quot;</span>: <span style="color: #FF0000;">&quot;id&quot;</span><span class="br0">&#125;</span>,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span style="color: #FF0000;">&quot;data&quot;</span>: <span style="color: #FF0000;">&quot;name&quot;</span><span class="br0">&#125;</span>,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span style="color: #FF0000;">&quot;data&quot;</span>: <span style="color: #FF0000;">&quot;created_at&quot;</span><span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#93;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;
&nbsp; &nbsp; <span style="color: #0000ff;">&lt;/script&gt;</span>
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">endblock</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span></pre></td></tr></table></pre>
</div><br />
Vous pourriez actuellement afficher le contenu du formulaire dane la popup en cliquant sur Ajouter<br />
<br />
<img src="https://www.developpez.net/forums/attachments/p221014d1474631549/c-cpp/c/editeur-mode-console/screen-shot-2016-09-23-at-11.15.53-am.png/" border="0" alt="Nom : Screen Shot 2016-09-23 at 11.15.53 AM.png
Affichages : 2555
Taille : 25,1 Ko"  style="float: CONFIG" /><br />
<br />
Pour pouvoir insérer le nouvelle entrée dans la base il nous fera une nouvelle action createAction<br />
<br />
Le rôle de cette action est de prendre les données envoye en POST.<br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
    <span style="color: #808080;">/**</span>
<span style="color: #808080;">&nbsp;    * @Route(&quot;/user/create&quot;, name=&quot;user_create&quot;)</span>
<span style="color: #808080;">&nbsp;    */</span>
    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> createAction<span class="br0">&#40;</span>Request <span style="color: #339933;">$request</span><span class="br0">&#41;</span>
    <span class="br0">&#123;</span>
        <span style="color: #339933;">$user</span> = <span style="color: #0000ff;">new</span> User<span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp;
        <span style="color: #339933;">$form</span> = <span style="color: #339933;">$this</span>-&gt;createForm<span class="br0">&#40;</span>UserType::<span style="color: #0000ff;">class</span>, <span style="color: #339933;">$user</span><span class="br0">&#41;</span>;
&nbsp;
        <span style="color: #339933;">$form</span>-&gt;handleRequest<span class="br0">&#40;</span><span style="color: #339933;">$request</span><span class="br0">&#41;</span>;
&nbsp;
        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #339933;">$form</span>-&gt;isSubmitted<span class="br0">&#40;</span><span class="br0">&#41;</span> &amp;&amp; <span style="color: #339933;">$form</span>-&gt;isValid<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            dump<span class="br0">&#40;</span><span style="color: #339933;">$form</span>-&gt;getData<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;
            <span style="color: #0000ff;">die</span>;
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span></pre></td></tr></table></pre>
</div><br />
Si à ce stade là vous rencontrez l’erreur suivante<br />
<img src="https://www.developpez.net/forums/attachments/p221016d1474631745/c-cpp/c/editeur-mode-console/screen-shot-2016-09-23-at-11.36.20-am.png/" border="0" alt="Nom : Screen Shot 2016-09-23 at 11.36.20 AM.png
Affichages : 2548
Taille : 50,7 Ko"  style="float: CONFIG" /><br />
<br />
<br />
C’est parce qu'il ne trouve pas une méthode capable de binder  la valeur du champs name du formulaire avec l’attribut name de la classe.<br />
Il suffit donc d’ajouter les setters des attributs, du coup voici le code de la class User<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
<span style="color: black;"><span style="color: #0080ff;">&lt;?php</span></span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">namespace</span> AppBundle\Entity;</span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">use</span> Doctrine\ORM\Mapping <span style="color: #0000ff;">as</span> ORM;</span>
&nbsp;
<span style="color: black;"><span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* User</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;*</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* @ORM\Entity(repositoryClass=&quot;AppBundle\Repository\UserRepository&quot;)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* @ORM\Table(name=&quot;users&quot;)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;*/</span></span>
<span style="color: black;"><span style="color: #0000ff;">class</span> User</span>
<span style="color: black;"><span class="br0">&#123;</span></span>
<span style="color: black;">    <span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @var integer</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    *</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @ORM\Column(name=&quot;id&quot;, type=&quot;integer&quot;, nullable=false)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @ORM\Id</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @ORM\GeneratedValue(strategy=&quot;IDENTITY&quot;)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    */</span></span>
<span style="color: black;">    <span style="color: #0000ff;">private</span> <span style="color: #339933;">$id</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @var string</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    *</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @ORM\Column(type=&quot;string&quot;)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    */</span></span>
<span style="color: black;">    <span style="color: #0000ff;">private</span> <span style="color: #339933;">$name</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @var string</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    *</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @ORM\Column(type=&quot;datetime&quot;)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    */</span></span>
<span style="color: black;">    <span style="color: #0000ff;">private</span> <span style="color: #339933;">$createdAt</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> <span style="color: #0080ff;">__construct</span><span class="br0">&#40;</span><span class="br0">&#41;</span></span>
<span style="color: black;">    <span class="br0">&#123;</span>   </span>
<span style="color: black;">        <span style="color: #339933;">$this</span>-&gt;createdAt = <span style="color: #0000ff;">new</span> \dateTime<span class="br0">&#40;</span><span style="color: #FF0000;">'now'</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> getId<span class="br0">&#40;</span><span class="br0">&#41;</span> </span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$this</span>-&gt;id;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> getName<span class="br0">&#40;</span><span class="br0">&#41;</span> </span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$this</span>-&gt;name;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> getCreatedAt<span class="br0">&#40;</span><span class="br0">&#41;</span> </span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$this</span>-&gt;createdAt;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> setName<span class="br0">&#40;</span><span style="color: #339933;">$name</span><span class="br0">&#41;</span> </span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #339933;">$this</span>-&gt;name = <span style="color: #339933;">$name</span>;</span>
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$this</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> setCreatedAt<span class="br0">&#40;</span><span style="color: #339933;">$createdAt</span><span class="br0">&#41;</span> </span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #339933;">$this</span>-&gt;createdAt = <span style="color: #339933;">$createdAt</span>;</span>
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$this</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
<span style="color: black;"><span class="br0">&#125;</span></span></pre></td></tr></table></pre>
</div><br />
Reste maintenant l’insertion dans la base de données, pour cela ajoutant deux lignes, qui a la suite font appel au service doctrine.manager et permettent de persister l’objet et l'insérer dans la base.<br />
<br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br /></div></td><td valign="top"><pre style="margin: 0">&nbsp;
    <span style="color: #808080;">/**</span>
<span style="color: #808080;">&nbsp;    * @Route(&quot;/user/create&quot;, name=&quot;user_create&quot;)</span>
<span style="color: #808080;">&nbsp;    */</span>
    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> createAction<span class="br0">&#40;</span>Request <span style="color: #339933;">$request</span><span class="br0">&#41;</span>
    <span class="br0">&#123;</span>
        <span style="color: #339933;">$user</span> = <span style="color: #0000ff;">new</span> User<span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp;
        <span style="color: #339933;">$form</span> = <span style="color: #339933;">$this</span>-&gt;createForm<span class="br0">&#40;</span>UserType::<span style="color: #0000ff;">class</span>, <span style="color: #339933;">$user</span><span class="br0">&#41;</span>;
&nbsp;
        <span style="color: #339933;">$form</span>-&gt;handleRequest<span class="br0">&#40;</span><span style="color: #339933;">$request</span><span class="br0">&#41;</span>;
&nbsp;
        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #339933;">$form</span>-&gt;isSubmitted<span class="br0">&#40;</span><span class="br0">&#41;</span> &amp;&amp; <span style="color: #339933;">$form</span>-&gt;isValid<span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
            <span style="color: #339933;">$em</span> = <span style="color: #339933;">$this</span>-&gt;getDoctrine<span class="br0">&#40;</span><span class="br0">&#41;</span>-&gt;getManager<span class="br0">&#40;</span><span class="br0">&#41;</span>;
            <span style="color: #339933;">$em</span>-&gt;persist<span class="br0">&#40;</span><span style="color: #339933;">$user</span><span class="br0">&#41;</span>;
            <span style="color: #339933;">$em</span>-&gt;flush<span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp;
            <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> JsonResponse<span class="br0">&#40;</span><span class="br0">&#91;</span><span style="color: #FF0000;">'status'</span> =&gt; <span style="color: #FF0000;">'ok'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;
        <span class="br0">&#125;</span> <span style="color: #0000ff;">else</span> <span class="br0">&#123;</span>
            <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> JsonResponse<span class="br0">&#40;</span><span class="br0">&#91;</span><span style="color: #FF0000;">'status'</span> =&gt; <span style="color: #FF0000;">'ko'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;
        <span class="br0">&#125;</span>
    <span class="br0">&#125;</span></pre></td></tr></table></pre>
</div><br />
@todo<br />
<br />
Dans le prochain tuto<br />
<ul><li style="">Supprimer un utilisateur</li><li style="">Modifier un utilisateur</li><li style="">Afficher les détails</li><li style="">Améliorer le filtre avec un critère supplémentaire: la date de création</li></ul></blockquote>

]]></content:encoded>
			<dc:creator>phpiste</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/blogs/116472-phpiste/b1644/datatable-symfony3-partie-2/</guid>
		</item>
		<item>
			<title>Réaliser un clustering de données avec la timeline VIS.js</title>
			<link>https://www.developpez.net/forums/blogs/116472-phpiste/b1638/realiser-clustering-donnees-timeline-vis-js/</link>
			<pubDate>Sat, 17 Sep 2016 13:02:22 GMT</pubDate>
			<description>*Présentation* 
 
VIS.js...</description>
			<content:encoded><![CDATA[<blockquote class="blogcontent restore"><b>Présentation</b><br />
<br />
VIS.js propose une timeline très bien documentée, et à mon avis, l’avantage majeur de cette dernière et des autres widgets VIS (network, graph2d,..) et le découplage du modèle de données des widgets elles mêmes, le modèle de données est un composant VIS autonome dont vous pouvez l’utiliser indépendamment.<br />
<br />
<b>Voir en Action</b><br />
<a href="http://codepen.io/ghaliano/pen/vXKVPr" target="_blank">http://codepen.io/ghaliano/pen/vXKVPr<br />
</a><br />
<br />
<b>C'est quoi un clustering</b><br />
<br />
D'apres wikipedia<br />
<a href="https://fr.wikipedia.org/wiki/Partitionnement_de_donn%C3%A9es" target="_blank">https://fr.wikipedia.org/wiki/Partit...e_donn%C3%A9es</a><br />
<div class="bbcode_container">
	<div class="bbcode_quote">
		<div class="quote_container">
			<div class="bbcode_quote_container"></div>
			
				Le partitionnement de données (ou data clustering en anglais) est une des méthodes d'analyse des données. Elle vise à diviser un ensemble de données en différents « paquets » homogènes, en ce sens que les données de chaque sous-ensemble partagent des caractéristiques communes, qui correspondent le plus souvent à des critères de proximité (similarité informatique) que l'on définit en introduisant des mesures et classes de distance entre objets.
			
		</div>
	</div>
</div><b>Objectif de l’exemple</b><br />
<br />
Réaliser une timeline qui gere les evenements sportifs tout en clusterisant les données pour alléger l’affichage et améliorer l’experience utilisateur.<br />
<br />
<b>Interaction</b><br />
Des contrôles de type zoom-in zoom-out permettent d'éclater grouper les données selon une valeur de scale renvoyée par la timeline.<br />
<br />
<b>Problématique</b><br />
<img src="https://www.developpez.net/forums/attachments/p220509d1474116990/general-developpement/langages-programmation/c-cpp-lequel-choisir/screen-shot-2016-09-17-at-1.33.52-pm.png/" border="0" alt="Nom : Screen Shot 2016-09-17 at 1.33.52 PM.png
Affichages : 1859
Taille : 140,8 Ko"  style="float: CONFIG" /><br />
J’ai été récemment amené  à intégrer une timeline pour gérer des événements, le challenge le plus important était de pouvoir regrouper des données pour alléger l’affichage et améliorer l’experience utilisateur.<br />
La version précédente de VIS (nommé CHAP) intègre en natif le clustering <br />
<a href="https://almende.github.io/chap-links-library/js/timeline/examples/example22_clustering.html" target="_blank">https://almende.github.io/chap-links...lustering.html</a><br />
Malheureusement cette fonctionnalité a été retiré de la nouvelle version de VIS du coup il n’est plus possible de clusteriser les données avec une simple config.<br />
<br />
<b>Solution</b><br />
Codant nous même le script de clustering!<br />
<br />
Code source<br />
<b>Les données de test</b><br />
<br />
Pour effectuer l’exemple on va générer des événements sportifs avec des dates aléatoires.<br />
le nombre limite des événements est configurable via une variable get.<br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: black;"><span style="color: #0080ff;">&lt;?php</span></span>
&nbsp;
<span style="color: black;">date_default_timezone_set<span class="br0">&#40;</span><span style="color: #FF0000;">'America/New_York'</span><span class="br0">&#41;</span>;</span>
<span style="color: black;"><span style="color: #339933;">$limit</span> = intval<span class="br0">&#40;</span><span style="color: #339933;">$_GET</span><span class="br0">&#91;</span><span style="color: #FF0000;">'limit'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</span>
&nbsp;
<span style="color: black;"><span style="color: #808080;">// Find a randomDate between $start_date and $end_date</span></span>
<span style="color: black;"><span style="color: #808080;">//from http://stackoverflow.com/questions/1972712/generate-random-date-between-two-dates-using-php</span></span>
<span style="color: black;"><span style="color: #0000ff;">function</span> randomDate<span class="br0">&#40;</span><span style="color: #339933;">$start_date</span>, <span style="color: #339933;">$end_date</span><span class="br0">&#41;</span></span>
<span style="color: black;"><span class="br0">&#123;</span></span>
<span style="color: black;">    <span style="color: #808080;">// Convert to timetamps</span></span>
<span style="color: black;">    <span style="color: #339933;">$min</span> = strtotime<span class="br0">&#40;</span><span style="color: #339933;">$start_date</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">    <span style="color: #339933;">$max</span> = strtotime<span class="br0">&#40;</span><span style="color: #339933;">$end_date</span><span class="br0">&#41;</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #808080;">// Generate random number using above bounds</span></span>
<span style="color: black;">    <span style="color: #339933;">$val</span> = rand<span class="br0">&#40;</span><span style="color: #339933;">$min</span>, <span style="color: #339933;">$max</span><span class="br0">&#41;</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #808080;">// Convert back to desired date format</span></span>
<span style="color: black;">    <span style="color: #0000ff;">return</span> date<span class="br0">&#40;</span><span style="color: #FF0000;">'Y-m-d H:i'</span>, <span style="color: #339933;">$val</span><span class="br0">&#41;</span>;</span>
<span style="color: black;"><span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;"><span style="color: #808080;">//Sports categories</span></span>
<span style="color: black;"><span style="color: #339933;">$groupsData</span> = <span style="color: #0000ff;">array</span><span class="br0">&#40;</span></span>
<span style="color: black;">	<span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span style="color: #FF0000;">&quot;id&quot;</span> =&gt; <span style="color: #cc66cc;">1</span>, <span style="color: #FF0000;">&quot;content&quot;</span> =&gt; <span style="color: #FF0000;">'Football'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">	<span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span style="color: #FF0000;">&quot;id&quot;</span> =&gt; <span style="color: #cc66cc;">2</span>, <span style="color: #FF0000;">&quot;content&quot;</span> =&gt; <span style="color: #FF0000;">'Handball'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">	<span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span style="color: #FF0000;">&quot;id&quot;</span> =&gt; <span style="color: #cc66cc;">3</span>, <span style="color: #FF0000;">&quot;content&quot;</span> =&gt; <span style="color: #FF0000;">'Criquet'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">	<span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span style="color: #FF0000;">&quot;id&quot;</span> =&gt; <span style="color: #cc66cc;">4</span>, <span style="color: #FF0000;">&quot;content&quot;</span> =&gt; <span style="color: #FF0000;">'Natation'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">	<span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span style="color: #FF0000;">&quot;id&quot;</span> =&gt; <span style="color: #cc66cc;">5</span>, <span style="color: #FF0000;">&quot;content&quot;</span> =&gt; <span style="color: #FF0000;">'basketball'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">	<span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span style="color: #FF0000;">&quot;id&quot;</span> =&gt; <span style="color: #cc66cc;">6</span>, <span style="color: #FF0000;">&quot;content&quot;</span> =&gt; <span style="color: #FF0000;">'Tenis de table'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">	<span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span style="color: #FF0000;">&quot;id&quot;</span> =&gt; <span style="color: #cc66cc;">7</span>, <span style="color: #FF0000;">&quot;content&quot;</span> =&gt; <span style="color: #FF0000;">'Cyclisme'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">	<span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span style="color: #FF0000;">&quot;id&quot;</span> =&gt; <span style="color: #cc66cc;">8</span>, <span style="color: #FF0000;">&quot;content&quot;</span> =&gt; <span style="color: #FF0000;">'F1'</span><span class="br0">&#41;</span></span>
<span style="color: black;"><span class="br0">&#41;</span>;</span>
&nbsp;
<span style="color: black;"><span style="color: #808080;">//The same service return both groups and item</span></span>
<span style="color: black;"><span style="color: #339933;">$result</span> = <span style="color: #0000ff;">array</span><span class="br0">&#40;</span></span>
<span style="color: black;">	<span style="color: #FF0000;">&quot;groups&quot;</span> =&gt; <span style="color: #339933;">$groupsData</span>,</span>
<span style="color: black;">	<span style="color: #FF0000;">&quot;items&quot;</span> =&gt; <span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span> </span>
<span style="color: black;"><span class="br0">&#41;</span>;</span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">for</span> <span class="br0">&#40;</span><span style="color: #339933;">$i</span>=<span style="color: #cc66cc;">0</span>; <span style="color: #339933;">$i</span>&lt;<span style="color: #339933;">$limit</span>; <span style="color: #339933;">$i</span>++<span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">	<span style="color: #339933;">$result</span><span class="br0">&#91;</span><span style="color: #FF0000;">'items'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="br0">&#91;</span></span>
<span style="color: black;">		<span style="color: #FF0000;">&quot;id&quot;</span> =&gt; <span style="color: #339933;">$i</span>+<span style="color: #cc66cc;">1</span>, </span>
<span style="color: black;">		<span style="color: #FF0000;">&quot;group&quot;</span> =&gt; <span style="color: #339933;">$groupsData</span><span class="br0">&#91;</span>array_rand<span class="br0">&#40;</span><span style="color: #339933;">$groupsData</span><span class="br0">&#41;</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span style="color: #FF0000;">'id'</span><span class="br0">&#93;</span>, </span>
<span style="color: black;">		<span style="color: #FF0000;">&quot;content&quot;</span> =&gt; <span style="color: #FF0000;">&quot;Event&quot;</span>.<span style="color: #339933;">$i</span>, </span>
<span style="color: black;">		<span style="color: #FF0000;">&quot;start&quot;</span> =&gt; randomDate<span class="br0">&#40;</span><span style="color: #FF0000;">'2016-09-01'</span>, <span style="color: #FF0000;">'2016-10-20'</span><span class="br0">&#41;</span></span>
<span style="color: black;">	<span class="br0">&#93;</span>;</span>
<span style="color: black;"><span class="br0">&#125;</span></span>
&nbsp;
&nbsp;
<span style="color: black;">header<span class="br0">&#40;</span><span style="color: #FF0000;">'Content-Type: application/json'</span><span class="br0">&#41;</span>;</span>
<span style="color: black;"><span style="color: #0000ff;">echo</span> json_encode<span class="br0">&#40;</span><span style="color: #339933;">$result</span><span class="br0">&#41;</span>;</span></pre></td></tr></table></pre>
</div><br />
<b>La classe de clusterisation</b><br />
<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code javascript :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br />66<br />67<br />68<br />69<br />70<br />71<br />72<br />73<br />74<br />75<br />76<br />77<br />78<br />79<br />80<br />81<br />82<br />83<br />84<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #0000ff;">var</span> clusteriser = <span style="color: #0000ff;">function</span><span class="br0">&#40;</span>timeline<span class="br0">&#41;</span><span class="br0">&#123;</span>
	<span style="color: #0000ff;">this</span>.timeline = timeline;
&nbsp;
	<span style="color: #0000ff;">this</span>.getDiffDate = <span style="color: #0000ff;">function</span><span class="br0">&#40;</span>date1, date2<span class="br0">&#41;</span><span class="br0">&#123;</span>
		<span style="color: #0000ff;">var</span> second=<span style="color: #cc66cc;">1000</span>;
		<span style="color: #0000ff;">var</span> minute = second*<span style="color: #cc66cc;">60</span>;
		<span style="color: #0000ff;">var</span> hour = minute*<span style="color: #cc66cc;">60</span>;
		<span style="color: #0000ff;">var</span> day = hour*<span style="color: #cc66cc;">24</span>;
		<span style="color: #0000ff;">var</span> month = day*<span style="color: #cc66cc;">31</span>;
		<span style="color: #0000ff;">var</span> year = month*<span style="color: #cc66cc;">12</span>;
&nbsp;
		<span style="color: #808080;">// Convert both dates to milliseconds</span>
		<span style="color: #0000ff;">var</span> diff = date2.<span style="color: #0080ff;">getTime</span><span class="br0">&#40;</span><span class="br0">&#41;</span> - date1.<span style="color: #0080ff;">getTime</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp;
		<span style="color: #808080;">// Convert back to components and return</span>
		<span style="color: #0000ff;">return</span> <span class="br0">&#123;</span>
			<span style="color: #800000;">years</span>: <span style="color: #0080ff;">Math</span>.<span style="color: #0080ff;">round</span><span class="br0">&#40;</span>diff/year<span class="br0">&#41;</span>,
			<span style="color: #800000;">months</span>: <span style="color: #0080ff;">Math</span>.<span style="color: #0080ff;">round</span><span class="br0">&#40;</span>diff/month<span class="br0">&#41;</span>,
			<span style="color: #800000;">days</span>: <span style="color: #0080ff;">Math</span>.<span style="color: #0080ff;">round</span><span class="br0">&#40;</span>diff/day<span class="br0">&#41;</span>,
			<span style="color: #800000;">hours</span>: <span style="color: #0080ff;">Math</span>.<span style="color: #0080ff;">round</span><span class="br0">&#40;</span>diff/hour<span class="br0">&#41;</span>,
			<span style="color: #800000;">minutes</span>: <span style="color: #0080ff;">Math</span>.<span style="color: #0080ff;">round</span><span class="br0">&#40;</span>diff/minute<span class="br0">&#41;</span>
		<span class="br0">&#125;</span>;
	<span class="br0">&#125;</span>
&nbsp;
	<span style="color: #808080;">//Get the scale between two date</span>
	<span style="color: #808080;">//We can use the scale information from timeline api in order to know how to cluster data</span>
	<span style="color: #0000ff;">this</span>.getScale = <span style="color: #0000ff;">function</span><span class="br0">&#40;</span>start, end<span class="br0">&#41;</span> <span class="br0">&#123;</span>	
		<span style="color: #0000ff;">var</span> diff = <span style="color: #0000ff;">this</span>.<span style="color: #0080ff;">getDiffDate</span><span class="br0">&#40;</span>start, end<span class="br0">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>diff.months &gt; <span style="color: #cc66cc;">12</span>*<span style="color: #cc66cc;">2</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
			<span style="color: #0000ff;">return</span> <span style="color: #FF0000;">'year'</span>;
		<span class="br0">&#125;</span>
		<span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>diff.days &gt;<span style="color: #cc66cc;">31</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
			<span style="color: #0000ff;">return</span> <span style="color: #FF0000;">'month'</span>;
		<span class="br0">&#125;</span>
		<span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>diff.hours &gt;<span style="color: #cc66cc;">24</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
			<span style="color: #0000ff;">return</span> <span style="color: #FF0000;">'day'</span>;
		<span class="br0">&#125;</span>
		<span style="color: #0000ff;">else</span> <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>diff.minutes &gt;<span style="color: #cc66cc;">60</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
			<span style="color: #0000ff;">return</span> <span style="color: #FF0000;">'hour'</span>;
		<span class="br0">&#125;</span>
		<span style="color: #0000ff;">else</span> <span class="br0">&#123;</span>
			<span style="color: #0000ff;">return</span> <span style="color: #FF0000;">'second'</span>;
		<span class="br0">&#125;</span>
	<span class="br0">&#125;</span>
&nbsp;
	<span style="color: #0000ff;">this</span>.getClusters = <span style="color: #0000ff;">function</span><span class="br0">&#40;</span>dataItems<span class="br0">&#41;</span><span class="br0">&#123;</span>
		<span style="color: #0000ff;">var</span> timelineWindow = <span style="color: #0000ff;">this</span>.timeline.<span style="color: #0080ff;">getWindow</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">var</span> scale = <span style="color: #0000ff;">this</span>.<span style="color: #0080ff;">getScale</span><span class="br0">&#40;</span>timelineWindow.start, timelineWindow.end<span class="br0">&#41;</span>;
&nbsp;
	    <span style="color: #0000ff;">var</span> group = _.<span style="color: #0080ff;">toArray</span><span class="br0">&#40;</span>_.<span style="color: #0080ff;">groupBy</span><span class="br0">&#40;</span>dataItems, <span style="color: #FF0000;">'group'</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;;
		<span style="color: #0000ff;">var</span> result = <span class="br0">&#123;</span><span class="br0">&#125;</span>;
&nbsp;
		<span style="color: #0000ff;">var</span> formatByScale = <span class="br0">&#123;</span>
			<span style="color: #800000;">year</span>: <span style="color: #FF0000;">'Y'</span>,
			<span style="color: #800000;">month</span>: <span style="color: #FF0000;">'Y-M'</span>,
			<span style="color: #800000;">weekday</span>: <span style="color: #FF0000;">'Y-M-week-W'</span>,
			<span style="color: #800000;">day</span>: <span style="color: #FF0000;">'Y-M-day-D'</span>,
			<span style="color: #800000;">hour</span>: <span style="color: #FF0000;">'Y-M-D-H'</span>,
			<span style="color: #800000;">second</span>: <span style="color: #FF0000;">'Y-M-D-H-m'</span>
		<span class="br0">&#125;</span>;
&nbsp;
		group.<span style="color: #0080ff;">forEach</span><span class="br0">&#40;</span><span style="color: #0000ff;">function</span><span class="br0">&#40;</span>items, i<span class="br0">&#41;</span><span class="br0">&#123;</span>
			items.<span style="color: #0080ff;">forEach</span><span class="br0">&#40;</span><span style="color: #0000ff;">function</span><span class="br0">&#40;</span><span style="color: #0000ff;">item</span>, j<span class="br0">&#41;</span><span class="br0">&#123;</span>
				<span style="color: #0000ff;">var</span> index = <span style="color: #0080ff;">moment</span><span class="br0">&#40;</span><span style="color: #0000ff;">item</span>.start<span class="br0">&#41;</span>.<span style="color: #0080ff;">format</span><span class="br0">&#40;</span>formatByScale<span class="br0">&#91;</span>scale<span class="br0">&#93;</span><span class="br0">&#41;</span> + <span style="color: #FF0000;">'-group'</span> + <span style="color: #0000ff;">item</span>.group;
&nbsp;
				<span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>!result<span class="br0">&#91;</span>index<span class="br0">&#93;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
					result<span class="br0">&#91;</span>index<span class="br0">&#93;</span> = <span class="br0">&#123;</span>
						<span style="color: #800000;">count</span>: <span style="color: #cc66cc;">1</span>,
						<span style="color: #800000;">items</span>: <span class="br0">&#91;</span><span class="br0">&#93;</span>,
						<span style="color: #800000;">group</span>: <span style="color: #0000ff;">item</span>.group,
						<span style="color: #800000;">start</span>: <span style="color: #0000ff;">item</span>.start
					<span class="br0">&#125;</span>;
				<span class="br0">&#125;</span>
&nbsp;
				result<span class="br0">&#91;</span>index<span class="br0">&#93;</span>.items.<span style="color: #0080ff;">push</span><span class="br0">&#40;</span><span style="color: #0000ff;">item</span><span class="br0">&#41;</span>;
				result<span class="br0">&#91;</span>index<span class="br0">&#93;</span>.count++;
			<span class="br0">&#125;</span><span class="br0">&#41;</span>
		<span class="br0">&#125;</span><span class="br0">&#41;</span>;
&nbsp;
		<span style="color: #0000ff;">return</span> _.<span style="color: #0080ff;">toArray</span><span class="br0">&#40;</span>result<span class="br0">&#41;</span>;
	<span class="br0">&#125;</span>
<span class="br0">&#125;</span></pre></td></tr></table></pre>
</div><br />
La page d'affichage de la timeline<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code html :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br />58<br />59<br />60<br />61<br />62<br />63<br />64<br />65<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #339933;">&lt;!DOCTYPE HTML&gt;</span>
<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">html</span><span style="color: #0000ff;">&gt;</span></span>
  <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">head</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">title</span><span style="color: #0000ff;">&gt;</span></span>Timeline | Clustering demo<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">title</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">script</span> <span style="color: #0080ff;">src</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;https://ajax.googleapis.com/ajax/libs/jquery/2.2.4/jquery.min.js&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">script</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">script</span> <span style="color: #0080ff;">src</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;http://underscorejs.org/underscore-min.js&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">script</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">script</span> <span style="color: #0080ff;">src</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;http://momentjs.com/downloads/moment.min.js&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">script</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">script</span> <span style="color: #0080ff;">src</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;http://visjs.org/dist/vis.js&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">script</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">script</span> <span style="color: #0080ff;">src</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;clusteriser.js&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">script</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">link</span> <span style="color: #0080ff;">href</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;http://visjs.org/dist/vis.css&quot;</span> <span style="color: #0080ff;">rel</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;stylesheet&quot;</span> <span style="color: #0080ff;">type</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;text/css&quot;</span> /<span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #0000ff;">&lt;style</span><span style="color: #0080ff;"> type=</span><span style="color: #FF0000;">&quot;text/css&quot;</span><span style="color: #0000ff;">&gt;</span>
* <span class="br0">&#123;</span>
&nbsp; <span style="color: #0000ff;">font-size</span>: <span style="color: #cc66cc;">12</span>px;
<span class="br0">&#125;</span>
&nbsp; &nbsp; <span style="color: #0000ff;">&lt;/style&gt;</span>
  <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">head</span><span style="color: #0000ff;">&gt;</span></span>
  <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">body</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">button</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;zoom&quot;</span> data-dir<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;1&quot;</span><span style="color: #0000ff;">&gt;</span></span>Zomm in<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">button</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">button</span> <span style="color: #0080ff;">class</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;zoom&quot;</span> data-dir<span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;-1&quot;</span><span style="color: #0000ff;">&gt;</span></span>Zoom out<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">button</span><span style="color: #0000ff;">&gt;</span></span>
&nbsp;
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">div</span> <span style="color: #0080ff;">id</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;visualization&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">div</span><span style="color: #0000ff;">&gt;</span></span>
&nbsp;
    <span style="color: #0000ff;">&lt;script</span><span style="color: #0080ff;"> type</span>=<span style="color: #FF0000;">&quot;text/javascript&quot;</span>&gt;
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">var</span> timeline = <span style="color: #339933;">false</span>;
&nbsp;
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$</span>.<span style="color: #0080ff;">getJSON</span><span class="br0">&#40;</span><span style="color: #FF0000;">'data.php?limit=1000'</span>, <span style="color: #0000ff;">function</span><span class="br0">&#40;</span>jsonResponse<span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">var</span> groups = jsonResponse<span class="br0">&#91;</span><span style="color: #FF0000;">'groups'</span><span class="br0">&#93;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">var</span> items = jsonResponse<span class="br0">&#91;</span><span style="color: #FF0000;">'items'</span><span class="br0">&#93;</span>;
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span>!timeline<span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; timeline = <span style="color: #0000ff;">new</span> vis.<span style="color: #0080ff;">Timeline</span><span class="br0">&#40;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0080ff;">document</span>.<span style="color: #0080ff;">getElementById</span><span class="br0">&#40;</span><span style="color: #FF0000;">'visualization'</span><span class="br0">&#41;</span>, 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#91;</span><span class="br0">&#93;</span>, 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; groups, 
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #800000;">template</span>: <span style="color: #0000ff;">function</span> <span class="br0">&#40;</span><span style="color: #0000ff;">item</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">item</span>.count?<span class="br0">&#40;</span><span style="color: #FF0000;">&quot;&lt;span&gt;&quot;</span>+<span style="color: #0000ff;">item</span>.count+<span style="color: #FF0000;">&quot; &eacute;venement&quot;</span>+<span class="br0">&#40;</span><span class="br0">&#40;</span><span style="color: #0000ff;">item</span>.count&gt;<span style="color: #cc66cc;">1</span><span class="br0">&#41;</span>?<span style="color: #FF0000;">'s'</span>:<span style="color: #FF0000;">''</span><span class="br0">&#41;</span>+<span style="color: #FF0000;">&quot;&lt;/span&gt;&quot;</span><span class="br0">&#41;</span>:<span style="color: #0000ff;">item</span>.content; 
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span>;
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span style="color: #0000ff;">var</span> clusters = <span style="color: #0000ff;">new</span> <span style="color: #0080ff;">clusteriser</span><span class="br0">&#40;</span>timeline<span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; timeline.<span style="color: #0080ff;">setItems</span><span class="br0">&#40;</span>clusters.<span style="color: #0080ff;">getClusters</span><span class="br0">&#40;</span>items<span class="br0">&#41;</span><span class="br0">&#41;</span>;
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; timeline.<span style="color: #0080ff;">on</span><span class="br0">&#40;</span><span style="color: #FF0000;">'rangechanged'</span>, <span style="color: #0000ff;">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; timeline.<span style="color: #0080ff;">setItems</span><span class="br0">&#40;</span>clusters.<span style="color: #0080ff;">getClusters</span><span class="br0">&#40;</span>items<span class="br0">&#41;</span><span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; <span class="br0">&#41;</span>;
&nbsp;
&nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #FF0000;">&quot;.zoom&quot;</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">on</span><span class="br0">&#40;</span><span style="color: #FF0000;">&quot;click&quot;</span>, <span style="color: #0000ff;">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">var</span> dir = <span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #0000ff;">this</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">data</span><span class="br0">&#40;</span><span style="color: #FF0000;">'dir'</span><span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">var</span> range = timeline.<span style="color: #0080ff;">getWindow</span><span class="br0">&#40;</span><span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #0000ff;">var</span> interval = range.end - range.start;
&nbsp;
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; timeline.<span style="color: #0080ff;">setWindow</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #800000;">start</span>: range.start.<span style="color: #0080ff;">valueOf</span><span class="br0">&#40;</span><span class="br0">&#41;</span> - interval * dir * <span style="color: #cc66cc;">0</span>.<span style="color: #cc66cc;">2</span>,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #800000;">end</span>: &nbsp; range.end.<span style="color: #0080ff;">valueOf</span><span class="br0">&#40;</span><span class="br0">&#41;</span> &nbsp; + interval * dir * <span style="color: #cc66cc;">0</span>.<span style="color: #cc66cc;">2</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;
&nbsp; &nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>
&nbsp;
&nbsp; &nbsp; <span style="color: #0000ff;">&lt;/script&gt;</span>
  <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">body</span><span style="color: #0000ff;">&gt;</span></span>
<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">html</span><span style="color: #0000ff;">&gt;</span></span></pre></td></tr></table></pre>
</div><b>Résultat</b><br />
<img src="https://www.developpez.net/forums/attachments/p220510d1474117908/general-developpement/langages-programmation/c-cpp-lequel-choisir/screen-shot-2016-09-17-at-2.10.13-pm.png/" border="0" alt="Nom : Screen Shot 2016-09-17 at 2.10.13 PM.png
Affichages : 1553
Taille : 69,5 Ko"  style="float: CONFIG" /><br />
<br />
<b>Mot finale</b><br />
<ul><li style="">Le script n’est pas optimale mais un bon départ pour une solution plus pertinente.</li><li style="">On pourra facilement ajouter un system de cache avec un localStorage car a un certain moment on pourra sauvegarder les données d'un niveau de zoom pour éviter de calculer les clusters a chaque fois que ce niveau de zoom est atteint.</li><li style="">Il se peut que dans une version superieur de VIS cette fonctionnalité est bien integré en natif !</li></ul></blockquote>

]]></content:encoded>
			<dc:creator>phpiste</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/blogs/116472-phpiste/b1638/realiser-clustering-donnees-timeline-vis-js/</guid>
		</item>
		<item>
			<title><![CDATA[Lire SonataAdmin à l'inverse]]></title>
			<link>https://www.developpez.net/forums/blogs/116472-phpiste/b466/lire-sonataadmin-l-inverse/</link>
			<pubDate>Mon, 27 Apr 2015 10:39:35 GMT</pubDate>
			<description>Voici une petite astuce...</description>
			<content:encoded><![CDATA[<blockquote class="blogcontent restore">Voici une petite astuce comment lire SonataAdmin pour les langues qui se lit de droite à gauche<br />
<br />
<b>1/ Tester si la langue se lit de droite à gauche </b><br />
#source des langues <a href="http://en.wikipedia.org/wiki/Right-to-left" target="_blank">http://en.wikipedia.org/wiki/Right-to-left</a><br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code Twig :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:36px;"><span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">set</span> _is_rtl = app.request.getLocale<span class="br0">&#40;</span><span class="br0">&#41;</span> <span style="color: #339933;">in</span> <span class="br0">&#91;</span><span style="color: #FF0000;">'ar'</span>, <span style="color: #FF0000;">'arc'</span>, <span style="color: #FF0000;">'bcc'</span>, <span style="color: #FF0000;">'bqi'</span>, <span style="color: #FF0000;">'ckb'</span>, <span style="color: #FF0000;">'dv'</span>, <span style="color: #FF0000;">'fa'</span>, <span style="color: #FF0000;">'glk'</span>, <span style="color: #FF0000;">'he'</span>, <span style="color: #FF0000;">'ku'</span>, <span style="color: #FF0000;">'mzn'</span>, <span style="color: #FF0000;">'pnb'</span>, <span style="color: #FF0000;">'ps'</span>, <span style="color: #FF0000;">'sd'</span>, <span style="color: #FF0000;">'ug'</span>, <span style="color: #FF0000;">'ur'</span>, <span style="color: #FF0000;">'yi'</span><span class="br0">&#93;</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span></pre>
</div><br />
<b>2/ Utiliser AdminLTE-rtl.css</b><br />
SonataAdmin utilise le theme AdminLTE qui ne supporte pas nativement le RTL (Right to Left)<br />
Faut donc inclure le patch css disponible sur ce lien<br />
<br />
<a href="https://github.com/Yellowen/AdminLTE-rtl/blob/master/css/AdminLTE-rtl.css" target="_blank">https://github.com/Yellowen/AdminLTE...minLTE-rtl.css</a><br />
<br />
<b>3/Surcharger les blocks styles</b><br />
les css sont par defaut chargés via la configuration :(<br />
<br />
Faut aussi surcharger le block des css {% block stylesheets %}<br />
<br />
Voici le code complet:<br />
<br />
#Layout.html.twig<br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code HTML :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:168px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">set</span> stylesheets = admin_pool.getOption<span class="br0">&#40;</span><span style="color: #FF0000;">'stylesheets'</span>, <span class="br0">&#91;</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span>
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">if</span> _is_rtl <span style="color: #339933;">%<span class="br0">&#125;</span></span>
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">set</span> stylesheets = stylesheets|merge<span class="br0">&#40;</span><span class="br0">&#91;</span><span style="color: #FF0000;">'bundles/mydemo/css/AdminLTE-rtl.css'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span>
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">endif</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span>
&nbsp;
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">block</span> stylesheets <span style="color: #339933;">%<span class="br0">&#125;</span></span>
    <span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">for</span> stylesheet <span style="color: #339933;">in</span> stylesheets <span style="color: #339933;">%<span class="br0">&#125;</span></span>
        <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">link</span> <span style="color: #0080ff;">rel</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;stylesheet&quot;</span> <span style="color: #0080ff;">href</span><span style="color: #0000ff;">=</span><span style="color: black;"><span style="color: #FF0000;">&quot;<span style="color: black;"><span style="color: #339933;"><span class="br0">&#123;</span><span class="br0">&#123;</span></span> asset<span class="br0">&#40;</span>stylesheet<span class="br0">&#41;</span> <span style="color: #339933;"><span class="br0">&#125;</span><span class="br0">&#125;</span></span></span>&quot;</span></span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">endfor</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span>
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">endblock</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span>
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">block</span> body_attributes <span style="color: #339933;">%<span class="br0">&#125;</span></span><span style="color: #339933;"><span class="br0">&#123;</span><span class="br0">&#123;</span></span> parent<span class="br0">&#40;</span><span class="br0">&#41;</span> <span style="color: #339933;"><span class="br0">&#125;</span><span class="br0">&#125;</span></span> <span style="color: #339933;"><span class="br0">&#123;</span><span class="br0">&#123;</span></span> _is_rtl?<span style="color: #FF0000;">'dir=&quot;rtl&quot;'</span>:<span style="color: #FF0000;">''</span> <span style="color: #339933;"><span class="br0">&#125;</span><span class="br0">&#125;</span></span> <span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">endblock</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span></pre></td></tr></table></pre>
</div><br />
n'oubliez pas la fameuse commande assets:install :)</blockquote>

]]></content:encoded>
			<dc:creator>phpiste</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/blogs/116472-phpiste/b466/lire-sonataadmin-l-inverse/</guid>
		</item>
		<item>
			<title>Exemple simple pour intégrer dataTable avec symfony2</title>
			<link>https://www.developpez.net/forums/blogs/116472-phpiste/b454/exemple-simple-integrer-datatable-symfony2/</link>
			<pubDate>Tue, 21 Apr 2015 10:27:18 GMT</pubDate>
			<description><![CDATA[*Prérequis de l'exemple :*...]]></description>
			<content:encoded><![CDATA[<blockquote class="blogcontent restore"><b>Prérequis de l'exemple :</b><br />
Pour réaliser l'exemple vous devez disposer:<br />
D'un projet symfony2 déjà en place<br />
une base de donnée<br />
<br />
J'ai utilisé le bundle AcmeDemoBundle automatiquement installé avec la commande <br />
symfony new<br />
<br />
<b>Bundle existant</b><br />
Pour info il existe deux supers bundles existant qui marchent  très bien <br />
<a href="https://github.com/stwe/DatatablesBundle" target="_blank">https://github.com/stwe/DatatablesBundle</a><br />
<a href="https://github.com/AliHichem/AliDatatableBundle" target="_blank">https://github.com/AliHichem/AliDatatableBundle</a><br />
Dans notre exemple on va rester simple :) et le plus découplé possible coté vue qui sera facilement changeable par une autre purement html totalement isolé du site symfony2 (ce dernier jouera seulement le rôle de fournisseur d'api)<br />
<br />
<b>Présentation du plugin dataTable</b><br />
Le plugin datatable offre une manière élégante pour transformer des tableaux purement html en un tableau riche en fonctionnalités (Pagination, tri, filtrage, ...) avec un minimum de code JavaScript.<br />
Je ne vais trop rentrer en détail car la doc officiel du script est largement complète.<br />
<a href="http://datatables.net/manual/index" target="_blank">Lien vers la doc.</a><br />
<br />
<b>Problématique:</b><br />
par contre en travaillant avec cette librairie vous remarquerez que si le nombre de données à gérer augmente, la page rame et les interactions perdent leurs fluidités.<br />
<br />
<b>Solutions:</b><br />
Récupérer en ajax les données du tableau<br />
<br />
Pour cela voici le code source de l'exemple (j'ai essayé de rester le plus simple possible) qui couvre cette fonctionnalité de datatable (Server side processing)<br />
<br />
<b>@le Modele</b><br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br />57<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: black;"><span style="color: #0080ff;">&lt;?php</span></span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">namespace</span> Acme\DemoBundle\Entity;</span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">use</span> Doctrine\ORM\Mapping <span style="color: #0000ff;">as</span> ORM;</span>
&nbsp;
<span style="color: black;"><span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* User</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;*</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* @ORM\Entity(repositoryClass=&quot;Acme\DemoBundle\Repository\UserRepository&quot;)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;* @ORM\Table(name=&quot;users&quot;)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;*/</span></span>
<span style="color: black;"><span style="color: #0000ff;">class</span> User</span>
<span style="color: black;"><span class="br0">&#123;</span></span>
<span style="color: black;">    <span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @var integer</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    *</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @ORM\Column(name=&quot;id&quot;, type=&quot;integer&quot;, nullable=false)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @ORM\Id</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @ORM\GeneratedValue(strategy=&quot;IDENTITY&quot;)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    */</span></span>
<span style="color: black;">    <span style="color: #0000ff;">private</span> <span style="color: #339933;">$id</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @var string</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    *</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @ORM\Column(type=&quot;string&quot;)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    */</span></span>
<span style="color: black;">    <span style="color: #0000ff;">private</span> <span style="color: #339933;">$name</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @var string</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    *</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @ORM\Column(type=&quot;datetime&quot;)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    */</span></span>
<span style="color: black;">    <span style="color: #0000ff;">private</span> <span style="color: #339933;">$createdAt</span>;</span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> <span style="color: #0080ff;">__construct</span><span class="br0">&#40;</span><span class="br0">&#41;</span></span>
<span style="color: black;">    <span class="br0">&#123;</span>   </span>
<span style="color: black;">        <span style="color: #339933;">$this</span>-&gt;createdAt = <span style="color: #0000ff;">new</span> \dateTime<span class="br0">&#40;</span><span style="color: #FF0000;">'now'</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> getId<span class="br0">&#40;</span><span class="br0">&#41;</span> </span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$this</span>-&gt;id;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> getName<span class="br0">&#40;</span><span class="br0">&#41;</span> </span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$this</span>-&gt;name;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> getCreatedAt<span class="br0">&#40;</span><span class="br0">&#41;</span> </span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$this</span>-&gt;createdAt;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
<span style="color: black;"><span class="br0">&#125;</span></span></pre></td></tr></table></pre>
</div><b>@La Vue</b><br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code twig :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">extends</span> <span style="color: #FF0000;">&quot;AcmeDemoBundle::layout.html.twig&quot;</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span>
&nbsp;
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">block</span> head <span style="color: #339933;">%<span class="br0">&#125;</span></span>
<span style="color: #339933;"><span class="br0">&#123;</span><span class="br0">&#123;</span></span> parent<span class="br0">&#40;</span><span class="br0">&#41;</span> <span style="color: #339933;"><span class="br0">&#125;</span><span class="br0">&#125;</span></span>
<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">link</span> <span style="color: #0080ff;">rel</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;stylesheet&quot;</span> <span style="color: #0080ff;">href</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;https://cdn.datatables.net/1.10.6/css/jquery.dataTables.min.css&quot;</span> /<span style="color: #0000ff;">&gt;</span></span>
<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">script</span> <span style="color: #0080ff;">src</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;https://code.jquery.com/jquery-1.11.2.min.js&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">script</span><span style="color: #0000ff;">&gt;</span></span>
<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">script</span> <span style="color: #0080ff;">src</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;https://cdn.datatables.net/1.10.6/js/jquery.dataTables.min.js&quot;</span><span style="color: #0000ff;">&gt;</span></span><span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">script</span><span style="color: #0000ff;">&gt;</span></span>
<span style="color: #0000ff;">&lt;script&gt;</span>
<span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #0000ff;">function</span><span class="br0">&#40;</span><span class="br0">&#41;</span> <span class="br0">&#123;</span>
&nbsp; <span style="color: #0000ff;">$</span><span class="br0">&#40;</span><span style="color: #FF0000;">'#user-list'</span><span class="br0">&#41;</span>.<span style="color: #0080ff;">DataTable</span><span class="br0">&#40;</span><span class="br0">&#123;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">&quot;processing&quot;</span>: <span style="color: #339933;">true</span>,
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">&quot;serverSide&quot;</span>: <span style="color: #339933;">true</span>,
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">&quot;ajax&quot;</span>: <span style="color: #FF0000;">&quot;{{ path('user_paginate') }}&quot;</span>,
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">&quot;sAjaxDataProp&quot;</span>: <span style="color: #FF0000;">&quot;data&quot;</span>,
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">&quot;pageLength&quot;</span>: <span style="color: #cc66cc;">10</span>,
&nbsp; &nbsp; &nbsp; &nbsp; <span style="color: #FF0000;">&quot;columns&quot;</span>:<span class="br0">&#91;</span>
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span style="color: #FF0000;">&quot;data&quot;</span>: <span style="color: #FF0000;">&quot;id&quot;</span><span class="br0">&#125;</span>,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span style="color: #FF0000;">&quot;data&quot;</span>: <span style="color: #FF0000;">&quot;name&quot;</span><span class="br0">&#125;</span>,
&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#123;</span><span style="color: #FF0000;">&quot;data&quot;</span>: <span style="color: #FF0000;">&quot;created_at&quot;</span><span class="br0">&#125;</span>
&nbsp; &nbsp; &nbsp; &nbsp; <span class="br0">&#93;</span>
&nbsp; &nbsp; <span class="br0">&#125;</span><span class="br0">&#41;</span>;
<span class="br0">&#125;</span><span class="br0">&#41;</span>;
<span style="color: #0000ff;">&lt;/script&gt;</span>
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">endblock</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span>
&nbsp;
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">block</span> body <span style="color: #339933;">%<span class="br0">&#125;</span></span>
&nbsp;
<span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">table</span> <span style="color: #0080ff;">id</span><span style="color: #0000ff;">=</span><span style="color: #FF0000;">&quot;user-list&quot;</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">thead</span><span style="color: #0000ff;">&gt;</span></span>
        <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">tr</span><span style="color: #0000ff;">&gt;</span></span>
            <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">th</span><span style="color: #0000ff;">&gt;</span></span>ID<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">th</span><span style="color: #0000ff;">&gt;</span></span>
            <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">th</span><span style="color: #0000ff;">&gt;</span></span>Nom<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">th</span><span style="color: #0000ff;">&gt;</span></span>
            <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">th</span><span style="color: #0000ff;">&gt;</span></span>Cr&eacute;e le<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">th</span><span style="color: #0000ff;">&gt;</span></span>
        <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">tr</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">thead</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;</span><span style="color: #0000ff;">tbody</span><span style="color: #0000ff;">&gt;</span></span>
    <span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">tbody</span><span style="color: #0000ff;">&gt;</span></span>
<span style="color: #339933;"><span style="color: #0000ff;">&lt;/</span><span style="color: #0000ff;">table</span><span style="color: #0000ff;">&gt;</span></span>
<span style="color: #339933;"><span class="br0">&#123;</span>%</span> <span style="color: #339933;">endblock</span> <span style="color: #339933;">%<span class="br0">&#125;</span></span></pre></td></tr></table></pre>
</div><br />
<b>@Le Controlleur</b><br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br />37<br />38<br />39<br />40<br />41<br />42<br />43<br />44<br />45<br />46<br />47<br />48<br />49<br />50<br />51<br />52<br />53<br />54<br />55<br />56<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: black;"><span style="color: #0080ff;">&lt;?php</span></span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">namespace</span> Acme\DemoBundle\Controller;</span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">use</span> Symfony\Bundle\FrameworkBundle\Controller\Controller;</span>
<span style="color: black;"><span style="color: #0000ff;">use</span> Symfony\Component\HttpFoundation\Request;</span>
<span style="color: black;"><span style="color: #0000ff;">use</span> Symfony\Component\HttpFoundation\Response;</span>
<span style="color: black;"><span style="color: #0000ff;">use</span> Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;</span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">class</span> UserController <span style="color: #0000ff;">extends</span> Controller</span>
<span style="color: black;"><span class="br0">&#123;</span></span>
<span style="color: black;">    <span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @Route(&quot;/list&quot;, name=&quot;user_list&quot;)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    */</span></span>
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> indexAction<span class="br0">&#40;</span><span class="br0">&#41;</span></span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #0000ff;">return</span>  <span style="color: #339933;">$this</span>-&gt;render<span class="br0">&#40;</span><span style="color: #FF0000;">'AcmeDemoBundle:User:index.html.twig'</span>,<span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span><span class="br0">&#41;</span>;  </span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">    <span style="color: #808080;">/**</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    * @Route(&quot;/paginate&quot;, name=&quot;user_paginate&quot;)</span></span>
<span style="color: black;"><span style="color: #808080;">&nbsp;    */</span></span>
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> paginateAction<span class="br0">&#40;</span>Request <span style="color: #339933;">$request</span><span class="br0">&#41;</span></span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #339933;">$length</span> = <span style="color: #339933;">$request</span>-&gt;get<span class="br0">&#40;</span><span style="color: #FF0000;">'length'</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$length</span> = <span style="color: #339933;">$length</span> &amp;&amp; <span class="br0">&#40;</span><span style="color: #339933;">$length</span>!=-<span style="color: #cc66cc;">1</span><span class="br0">&#41;</span>?<span style="color: #339933;">$length</span>:<span style="color: #cc66cc;">0</span>;</span>
&nbsp;
<span style="color: black;">        <span style="color: #339933;">$start</span> = <span style="color: #339933;">$request</span>-&gt;get<span class="br0">&#40;</span><span style="color: #FF0000;">'start'</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$start</span> = <span style="color: #339933;">$length</span>?<span class="br0">&#40;</span><span style="color: #339933;">$start</span> &amp;&amp; <span class="br0">&#40;</span><span style="color: #339933;">$start</span>!=-<span style="color: #cc66cc;">1</span><span class="br0">&#41;</span>?<span style="color: #339933;">$start</span>:<span style="color: #cc66cc;">0</span><span class="br0">&#41;</span>/<span style="color: #339933;">$length</span>:<span style="color: #cc66cc;">0</span>;</span>
&nbsp;
<span style="color: black;">        <span style="color: #339933;">$search</span> = <span style="color: #339933;">$request</span>-&gt;get<span class="br0">&#40;</span><span style="color: #FF0000;">'search'</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$filters</span> = <span class="br0">&#91;</span></span>
<span style="color: black;">            <span style="color: #FF0000;">'query'</span> =&gt; @<span style="color: #339933;">$search</span><span class="br0">&#91;</span><span style="color: #FF0000;">'value'</span><span class="br0">&#93;</span></span>
<span style="color: black;">        <span class="br0">&#93;</span>;</span>
&nbsp;
<span style="color: black;">        <span style="color: #339933;">$users</span> = <span style="color: #339933;">$this</span>-&gt;getDoctrine<span class="br0">&#40;</span><span class="br0">&#41;</span>-&gt;getRepository<span class="br0">&#40;</span><span style="color: #FF0000;">'AcmeDemoBundle:User'</span><span class="br0">&#41;</span>-&gt;search<span class="br0">&#40;</span></span>
<span style="color: black;">            <span style="color: #339933;">$filters</span>, <span style="color: #339933;">$start</span>, <span style="color: #339933;">$length</span></span>
<span style="color: black;">        <span class="br0">&#41;</span>;</span>
&nbsp;
<span style="color: black;">        <span style="color: #339933;">$output</span> = <span style="color: #0000ff;">array</span><span class="br0">&#40;</span></span>
<span style="color: black;">            <span style="color: #FF0000;">'data'</span> =&gt; <span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">            <span style="color: #FF0000;">'recordsFiltered'</span> =&gt; count<span class="br0">&#40;</span><span style="color: #339933;">$this</span>-&gt;getDoctrine<span class="br0">&#40;</span><span class="br0">&#41;</span>-&gt;getRepository<span class="br0">&#40;</span><span style="color: #FF0000;">'AcmeDemoBundle:User'</span><span class="br0">&#41;</span>-&gt;search<span class="br0">&#40;</span><span style="color: #339933;">$filters</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0080ff;">false</span><span class="br0">&#41;</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">            <span style="color: #FF0000;">'recordsTotal'</span> =&gt; count<span class="br0">&#40;</span><span style="color: #339933;">$this</span>-&gt;getDoctrine<span class="br0">&#40;</span><span class="br0">&#41;</span>-&gt;getRepository<span class="br0">&#40;</span><span style="color: #FF0000;">'AcmeDemoBundle:User'</span><span class="br0">&#41;</span>-&gt;search<span class="br0">&#40;</span><span style="color: #0000ff;">array</span><span class="br0">&#40;</span><span class="br0">&#41;</span>, <span style="color: #cc66cc;">0</span>, <span style="color: #0080ff;">false</span><span class="br0">&#41;</span><span class="br0">&#41;</span></span>
<span style="color: black;">        <span class="br0">&#41;</span>;</span>
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">foreach</span> <span class="br0">&#40;</span><span style="color: #339933;">$users</span> <span style="color: #0000ff;">as</span> <span style="color: #339933;">$user</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #339933;">$output</span><span class="br0">&#91;</span><span style="color: #FF0000;">'data'</span><span class="br0">&#93;</span><span class="br0">&#91;</span><span class="br0">&#93;</span> = <span class="br0">&#91;</span></span>
<span style="color: black;">                <span style="color: #FF0000;">'id'</span> =&gt; <span style="color: #339933;">$user</span>-&gt;getId<span class="br0">&#40;</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">                <span style="color: #FF0000;">'name'</span> =&gt; <span style="color: #339933;">$user</span>-&gt;getName<span class="br0">&#40;</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">                <span style="color: #FF0000;">'created_at'</span> =&gt; <span style="color: #339933;">$user</span>-&gt;getCreatedAt<span class="br0">&#40;</span><span class="br0">&#41;</span>-&gt;format<span class="br0">&#40;</span><span style="color: #FF0000;">'Y-m-d'</span><span class="br0">&#41;</span>,</span>
<span style="color: black;">            <span class="br0">&#93;</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #0000ff;">new</span> Response<span class="br0">&#40;</span>json_encode<span class="br0">&#40;</span><span style="color: #339933;">$output</span><span class="br0">&#41;</span>, <span style="color: #cc66cc;">200</span>, <span class="br0">&#91;</span><span style="color: #FF0000;">'Content-Type'</span> =&gt; <span style="color: #FF0000;">'application/json'</span><span class="br0">&#93;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
<span style="color: black;"><span class="br0">&#125;</span></span></pre></td></tr></table></pre>
</div><b>@La requette</b><br />
<div class="bbcode_container">
	<table width="100%" border="0" cellspacing="0" cellpadding="0"><tr>
	<td style="border: 0; padding: 0; text-align: left">Code php :</td>
	<td style="border: 0; padding: 0; text-align: right"><a href="#" onclick="return ano_selectionnerCode(this);">Sélectionner tout</a> -
	<a href="#" onclick="return ano_etendreCode(this);">Visualiser dans une fenêtre à part</a></td></tr></table>
	<pre class="bbcode_code" style="height:204px;"><table cellspacing="0" cellpadding="0"><tr><td valign="top" width="33"><div style="border: 1px dashed gray; padding-left: 5px; padding-right: 5px; margin-right: 5px; text-align: right; font-family: monospace">1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br />11<br />12<br />13<br />14<br />15<br />16<br />17<br />18<br />19<br />20<br />21<br />22<br />23<br />24<br />25<br />26<br />27<br />28<br />29<br />30<br />31<br />32<br />33<br />34<br />35<br />36<br /></div></td><td valign="top"><pre style="margin: 0"><span style="color: black;"><span style="color: #0080ff;">&lt;?php</span></span>
<span style="color: black;"><span style="color: #0000ff;">namespace</span> Acme\DemoBundle\Repository;</span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">use</span> Doctrine\ORM\EntityRepository;</span>
&nbsp;
<span style="color: black;"><span style="color: #0000ff;">class</span> UserRepository <span style="color: #0000ff;">extends</span> EntityRepository</span>
<span style="color: black;"><span class="br0">&#123;</span></span>
<span style="color: black;">    <span style="color: #0000ff;">public</span> <span style="color: #0000ff;">function</span> search<span class="br0">&#40;</span><span style="color: #339933;">$data</span>, <span style="color: #339933;">$page</span> = <span style="color: #cc66cc;">0</span>, <span style="color: #339933;">$max</span> = <span style="color: #339933;">NULL</span>, <span style="color: #339933;">$getResult</span> = <span style="color: #0080ff;">true</span><span class="br0">&#41;</span></span>
<span style="color: black;">    <span class="br0">&#123;</span></span>
<span style="color: black;">        <span style="color: #339933;">$qb</span> = <span style="color: #339933;">$this</span>-&gt;_em-&gt;createQueryBuilder<span class="br0">&#40;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span style="color: #339933;">$query</span> = <span style="color: #0000ff;">isset</span><span class="br0">&#40;</span><span style="color: #339933;">$data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'query'</span><span class="br0">&#93;</span><span class="br0">&#41;</span> &amp;&amp; <span style="color: #339933;">$data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'query'</span><span class="br0">&#93;</span>?<span style="color: #339933;">$data</span><span class="br0">&#91;</span><span style="color: #FF0000;">'query'</span><span class="br0">&#93;</span>:<span style="color: #0080ff;">null</span>;</span>
&nbsp;
<span style="color: black;">        <span style="color: #339933;">$qb</span></span>
<span style="color: black;">            -&gt;select<span class="br0">&#40;</span><span style="color: #FF0000;">'u'</span><span class="br0">&#41;</span></span>
<span style="color: black;">            -&gt;from<span class="br0">&#40;</span><span style="color: #FF0000;">'AcmeDemoBundle:User'</span>, <span style="color: #FF0000;">'u'</span><span class="br0">&#41;</span></span>
<span style="color: black;">        ;</span>
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #339933;">$query</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #339933;">$qb</span></span>
<span style="color: black;">                -&gt;andWhere<span class="br0">&#40;</span><span style="color: #FF0000;">'u.name like :query'</span><span class="br0">&#41;</span></span>
<span style="color: black;">                -&gt;setParameter<span class="br0">&#40;</span><span style="color: #FF0000;">'query'</span>, <span style="color: #FF0000;">&quot;%&quot;</span>.<span style="color: #339933;">$query</span>.<span style="color: #FF0000;">&quot;%&quot;</span><span class="br0">&#41;</span></span>
<span style="color: black;">            ;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">if</span> <span class="br0">&#40;</span><span style="color: #339933;">$max</span><span class="br0">&#41;</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #339933;">$preparedQuery</span> = <span style="color: #339933;">$qb</span>-&gt;getQuery<span class="br0">&#40;</span><span class="br0">&#41;</span></span>
<span style="color: black;">                -&gt;setMaxResults<span class="br0">&#40;</span><span style="color: #339933;">$max</span><span class="br0">&#41;</span></span>
<span style="color: black;">                -&gt;setFirstResult<span class="br0">&#40;</span><span style="color: #339933;">$page</span> * <span style="color: #339933;">$max</span><span class="br0">&#41;</span></span>
<span style="color: black;">            ;</span>
<span style="color: black;">        <span class="br0">&#125;</span> <span style="color: #0000ff;">else</span> <span class="br0">&#123;</span></span>
<span style="color: black;">            <span style="color: #339933;">$preparedQuery</span> = <span style="color: #339933;">$qb</span>-&gt;getQuery<span class="br0">&#40;</span><span class="br0">&#41;</span>;</span>
<span style="color: black;">        <span class="br0">&#125;</span></span>
&nbsp;
<span style="color: black;">        <span style="color: #0000ff;">return</span> <span style="color: #339933;">$getResult</span>?<span style="color: #339933;">$preparedQuery</span>-&gt;getResult<span class="br0">&#40;</span><span class="br0">&#41;</span>:<span style="color: #339933;">$preparedQuery</span>;</span>
<span style="color: black;">    <span class="br0">&#125;</span></span>
<span style="color: black;"><span class="br0">&#125;</span></span></pre></td></tr></table></pre>
</div><b>@Raffinnement </b><br />
<ul><li style="">Améliorer la récupération des résultats (getSingleScalarResult au lieux du count)</li><li style="">Alléger le contrôleur</li><li style="">Ajouter le tri des résultats</li><li style="">Formater les cellules d'une façon particulière</li><li style="">Ajouter les actions</li><li style="">Ajouter des actions groupées (bash actions)</li></ul><br />
<br />
<b>@Todo</b><br />
Test !!<br />
<br />
<b>@Code source sur github</b><br />
très bientôt disponible</blockquote>

]]></content:encoded>
			<dc:creator>phpiste</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/blogs/116472-phpiste/b454/exemple-simple-integrer-datatable-symfony2/</guid>
		</item>
		<item>
			<title>Bonjour</title>
			<link>https://www.developpez.net/forums/blogs/116472-phpiste/b453/bonjour/</link>
			<pubDate>Tue, 21 Apr 2015 08:10:12 GMT</pubDate>
			<description><![CDATA[C'est mon tout premier billet...]]></description>
			<content:encoded><![CDATA[<blockquote class="blogcontent restore">C'est mon tout premier billet sur developpez.net !!! <br />
Merci pour cette initiative.</blockquote>

]]></content:encoded>
			<dc:creator>phpiste</dc:creator>
			<guid isPermaLink="true">https://www.developpez.net/forums/blogs/116472-phpiste/b453/bonjour/</guid>
		</item>
	</channel>
</rss>
