2015-02-09 4 views
0

Я пытаюсь создать набор упрощенных функций, чтобы пользователь мог создать шаблон ветви, который будет отображаться как форма.Значение функции расширения Twig value

Форма, когда выполняется, должна считывать самогенерируемый массив данных.

Приведенный ниже код должен печатать поле с именем «hello», при его отправке (с примером value «world») создать приветствие массива и отобразить связанное поле со значением «мир».

Пример шаблона:

{{configkey('hello', 'Hello Field')}} 

Функция расширения

$func = new Twig_SimpleFunction('configkey', function ($key='example', $label='label') { 

     echo '<div class="control-group">'; 
     echo '<label class="control-label" for="' . $key . '">' . $label . '</label>'; 
     echo '<div class="controls">'; 
     echo '<input type="text" name="' . $key . '" value="{{config.' . $key . '}}"/>'; 
     echo '</div>'; 
     echo '</div>'; 

    }); 

$ это -> _ twigEnv-> AddFunction ('configkey', $ FUNC);

выход

the undesired output

+0

Функция twig не должна эхо-результата, она должна возвращать результат –

+0

вместо echo html вставлять его в файлы twig и правильно печатать значение массива config. Используете ли вы компонент Twig отдельно или внутри рамки? Я могу предложить вам реализацию на основе схемы symfony2. Дайте мне знать – Matteo

+0

@kmlnvm Я попытался кратко вернуть строку, но функция выводит raw html. Я нахожусь в приложении zf1 с пользовательским представлением zend, полагающимся на веточку с пользовательской реализацией завихрятеля для вытягивания шаблонов с S3. – mattimatti

ответ

0

Thakns все для помощи, но я нашел решение проще, чем ожидалось ..

$func = new Twig_SimpleFunction('configkey', function ($key='example', $label='label', $value='') { 

    echo '<div class="control-group">'; 
    echo '<label class="control-label" for="' . $key . '">' . $label . '</label>'; 
    echo '<div class="controls">'; 
    echo '<input type="text" name="' . $key . '" value="' . $value . '"/>'; 
    echo '</div>'; 
    echo '</div>'; 

}); 

Звонок будет

{{configkey('hello', 'Hello Field', config.hello)}} 

У вас есть лучший подход к привязке с использованием ключевого параграфа ameter?

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