Dwoo / codeigniter: есть ли способ назначить данные из php шаблонам dwoo vars INSIDE? - PullRequest
0 голосов
/ 04 августа 2010

Эквивалент чистого dwoo будет:

$dwoo->output('DwooTest/index', array('assignedVar' => 'Hello'));

(на самом деле я использую его с codeigniter - с библиотекой Фила Стерджена):

$this->dwooParser->parse('DwooTest/index', array('assignedVar' => 'Hello'));

затем внутри index.php

{$assignedVar} //outputs 'Hello'

<?php
    $localVar = 'LocalVar';
?>

{$localVar}  //output: error

Есть ли способ передать данные из php внутри шаблона в dwoo var?

Почему я использую это, потому что у меня есть представление, которое требует некоторой предварительной обработки (это своего рода расширенное представление, поэтому я не хочу помещать обработку каждый раз внутри контроллера), внутри index.php у меня есть

require 'index.h.php' //(notation inspired from c++ header files)

В соответствии с приведенным выше примером, index.h.php обработает $ assignVar и поместит данные в $ localVar, тогда отображение данных будет происходить внутри шаблона index.php.

(Также в примечании, где находится документация для этого Dwoo ... Я имею в виду, что вики ... это так?)

1 Ответ

1 голос
/ 24 августа 2010

Локальные переменные сохраняются во внутренней переменной объекта Dwoo во время выполнения шаблона.Фактический код шаблона выполняется в контексте объекта Dwoo, поэтому у вас есть доступ к его методам из php с использованием $ this.

В этом случае вам нужен метод assignInScope ($ val, $ scope), который назначит его таким образом, например:

<?php $this->assignInScope('Hello', 'localVar'); ?>
{$localVar} // outputs Hello

Вы также можете прочитать его с помощью readVar ($ name) , то есть:

<?php echo $this->readVar('localVar'); ?> // outputs Hello again
...