2010-10-25 11 views
0

J'ai une question concernant le fichier view.yml dans Symfony. En fait, je voudrais être en mesure d'inclure certains SDKs javascript dans ma mise en page avec l'aide du fichier view.yml comme ceci:Personnaliser le fichier symfony view.yml

D'abord, j'ajouter une entrée du fichier de vue correspondant:

all: 
    load_facebook: true 
    load_twitter: true 
    stylesheets:  
    javascripts: 

puis dans la mise en page faire quelque chose comme:

<?php if (sfConfig::get('view_load_facebook', true)): ?> 
      <div id="fb-root"></div> 
      <script type="text/javascript"> 
      window.fbAsyncInit = function() { 
       FB.init({ 
       appId: '<?php echo sfConfig::get('app_facebook_comment_app_id') ?>', 
       status: true, 
       cookie: true, 
       xfbml: true 
       }); 
      }; 
      (function() { 
       var e = document.createElement('script'); e.async = true; 
       e.src = document.location.protocol + '//connect.facebook.net/en_US/all.js'; 
       document.getElementById('fb-root').appendChild(e); 
      }()); 
      </script>   
<?php endif; ?> 

Malheureusement, je ne peux pas obtenir l'option avec sfConfig :: get (« view_load_facebook ») ainsi je devine qu'ils ont jamais été chargés. Quelqu'un at-il quelque chose comme ça au travail? Je pense que ce serait une très bonne idée d'avoir cette option dans le fichier view.yml car il serait très facile à mettre en œuvre et très flexible.

Merci,

Vince

Répondre

1

Vous pouvez enregistrer vos paramètres personnalisés dans app.yml fichier:

all: 
    load_facebook: true 
    load_twitter: true 

et consultez ensuite avec sfConfig :: get (app_load_facebook)

+0

@Vincent: Je pense que c'est la façon de le faire. Votre code actuel se réfère déjà au fichier app.yml, avec "app" au début de la configuration que vous appelez. – Tom

+0

Oui, ce serait une alternative, mais il est beaucoup trop rigide. J'ai besoin de définir le tiers sdk sur un modèle ou au moins sur une base de module. Cela serait en effet également possible dans le fichier app.yml en tenant un tableau de modules pour lequel activer les sdks mais je pense que cette approche est très peu intuitive et pas vraiment le bon endroit pour mettre cette information. – luxerama

0

Vous ne pouvez pas créer un fichier app.yml dans le répertoire du module? De toute façon, je ne sais pas si ce serait une bonne solution.
Vous pouvez également utiliser des emplacements.
Ou peut-être, mieux encore, mettre tout le code du SDK dans un fichier JS et l'insérer dans le view.yml

Questions connexes