Bonjour a tous !
je voudrais solliciter votre aide car j'ai sur une page des actualités qui
se rafraichissent en Ajax et je voudrais modifier mon code afin de supporter
un mode dégradé (si javascript est désactivé donc...)

l'existant :
j'ai un layout avec ça:

<div id="actu">
<p class="actua" id="actu1">
<span class="date"></span>
<br /><br />
<span class="contenu"></span>
</p>
<p class="actua" id="actu2">
<span class="date"></span>
<br /><br />
<span class="contenu"></span>
</p>
</div>

et au chargement de la page j'ai un script JQuery qui récupére du JSON pour
alimenter les deux dernières actu ...

<?php echo javascript_tag("
$.PeriodicalUpdater('".url_for('@refresh_actus?sf_format=*json*')."',{
...
...
...")?>

notez que j'appel le "sf_format" *JSON* Donc l'action correspondante :

  public function executeRefreshActus(sfWebRequest $request){
   $this->actus =
Doctrine::getTable('Actualite')->addActiveActualitesQuery()->limit(2);
  }

et le template refreshActusSuccess.*json*.php :

...
...
...
<?php echo json_encode($output); ?>

Si je crée un template pour le format HTML du nom de refreshActusSuccess.php
avec ce qu'il faut dedans et que j'appel directement l'URL depuis un
navigateur j'ai bien du contenu, et je peux aussi désactiver le layout ...

Mais comment inclure dans mon layout/dans une page (en fonction de
Javascript activé ou pas) soit


<div id="actu">
<p class="actua" id="actu1">
<span class="date">25 janvier 2010</span>
<br /><br />
<span class="contenu">blablaaa ezfg zfgeufz efize gfzeuig zefiuzeg fiuze
gerivfer ibvifguebz bguer</span>
</p>
<p class="actua" id="actu2">
<span class="date">24 janvier 2010</span>
<br /><br />
<span class="contenu">blablaaa ezfg zfgeufz efize gfzeuig zefiuzeg fiuze
gerivfer ibvifguebz bguer/span>
</p>
</div>

Donc avec les deux dernières actus préremplies si javascript et desactivé et
sinon inclure le "squellette" vide + l'appel javascript/json pour le refresh
:
<div id="actu">
<p class="actua" id="actu1">
<span class="date"></span>
<br /><br />
<span class="contenu"></span>
</p>
<p class="actua" id="actu2">
<span class="date"></span>
<br /><br />
<span class="contenu"></span>
</p>
</div>

<?php echo javascript_tag("
$.PeriodicalUpdater('".url_for('@refresh_actus?sf_format=*json*')."',{
...
...
...")?>

Mon pb n'est pas de tester l'activation ou non du javascript ça c'est OK
mais c'est quoi utiliser ? partial, component ? action ? afin de factoriser
le code au maximum et ainsi respecter le principe DRY ... par exmeple je
veux avoir le template :

<div id="actu">
<p class="actua" id="actu1">
<span class="date"></span>
<br /><br />
<span class="contenu"></span>
</p>
<p class="actua" id="actu2">
<span class="date"></span>
<br /><br />
<span class="contenu"></span>
</p>
</div>

à un seul endroit ... dans un partial ?

Merci de votre aide :)

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe Groupe "Symfony-fr" 
de Google Groupes.
 Pour transmettre des messages à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour résilier votre abonnement à ce groupe, envoyez un e-mail à 
l'adresse [email protected]
 Pour afficher d'autres options, visitez ce groupe à l'adresse 
http://groups.google.com/group/symfony-fr?hl=fr
-~----------~----~----~----~------~----~------~--~---

Répondre à