Как ссылаться на веточку для пользовательских типов полей в выделенном пакете? - PullRequest
0 голосов
/ 16 ноября 2011

Я (все еще) пытаюсь ввести http://xoxco.com/clickable/jquery-tags-input в выделенный пакет.На данный момент у меня есть дочерний тип текста и преобразователь данных, который преобразует разделенные запятыми строки в массивы объектов и наоборот.

Теперь я хочу украсить текстовое поле с помощью кода JQuery, связанного выше,Насколько я понимаю, я должен определить блок как

{% block manytomanycomboselector_widget %}
{% spaceless %}
  {{ block('text_widget') }}
  <script>
    $(function(){
      $("#{{ id }}").tagsInput();
    });
  </script>
{% endspaceless %}
{% endblock manytomanycomboselector_widget %}

в [MyTypeBundle]Resources/views/Form/fields.html.twig

Теперь и документация, и ответы на этот вопрос на StackOverflow утверждают, что я должен ссылаться на fields.html.twig где-либо в шаблоне, который использует форму, или в app/, но это не обязательно для других пакетов типа поля, хотя я не вижу в их коде почему.Что мне нужно настроить внутри пакета помимо этого блока в этом файле?

Также я не понял, куда мне нужно поместить требования css и js для заголовка и как я справляюсь с общими требованиями, такими как jQuery.сам по себе.

1 Ответ

4 голосов
/ 16 ноября 2011

У меня та же проблема, и я решил ее, объединив свой шаблон поля в параметре twig.form.resources.

Итак, в расширении DI моего пакета (MyBundle / DependencyInjection / MyBundleExtension.php) я добавляю:

$container->setParameter('twig.form.resources', array_merge(
    array('MyBundle:Form:field_widget.html.twig'),
    $container->getParameter('twig.form.resources')
));

Имейте в виду, ваш пакет должен быть зарегистрирован после TwigBundle в вашем AppKernel.

EDIT:

Поле формы не связано ни с одним JS или CSS. Итак, ИМО, у вас есть 2 решения.

Во-первых, вы непосредственно оборачиваете свой JS & CSS в шаблон поля, и ваш пакет остается автономным.

Во-вторых, вы указываете конечным пользователям, что им нужно вручную включать некоторые JSS и CSS каждый раз, когда они используют тип вашего поля.

IoFormBundle & GenemuFormBundle использует второе решение, подобное объяснению в их документации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...