2010-10-25 2 views
0

У меня есть вопрос относительно файла view.yml в Symfony. В основном я хотел бы иметь возможность включить некоторый JavaScript SDKs в моем макете с помощью файла view.yml как так:Настройка файла symfony view.yml

первого я бы добавить запись в соответствующем виде файл:

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

а затем в макете сделать что-то вроде:

<?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; ?> 

к сожалению, я не смог получить вариант с sfConfig :: Get («view_load_facebook»), таким образом, я предполагаю, что они никогда не были загружены. У кого-нибудь есть что-то подобное? Я думаю, что было бы очень неплохо иметь этот параметр в файле view.yml, так как это было бы очень легко реализовать и очень гибко.

Спасибо,

Vince

ответ

1

Вы можете сохранять пользовательские настройки в app.yml файле:

all: 
    load_facebook: true 
    load_twitter: true 

и обратитесь к затем sfConfig :: получить (app_load_facebook)

+0

@Vincent: Я думаю, что это способ сделать это. Ваш текущий код ссылается на файл app.yml уже с «приложением» в начале конфигурации, которую вы вызываете. – Tom

+0

Да, это была бы альтернатива, но она слишком негибкая. Мне нужно установить сторонний sdk на основе шаблона или, по крайней мере, на основе модуля. Это действительно было бы возможно и в файле app.yml, удерживая массив модулей, для которых для включения sdks, тем не менее, я считаю, что этот подход очень неинтуитивный и не совсем подходящее место для размещения этой информации. – luxerama

0

Не можете ли вы создать файл app.yml внутри каталога модуля? Во всяком случае, я не знаю, будет ли это хорошим решением.
В качестве альтернативы вы можете использовать слоты.
Или, может быть, даже лучше, поместите весь код SDK в файл JS и вставьте его в view.yml

Смежные вопросы