/** * Prints <link> tags for all stylesheets associated with the given form. * * @see get_stylesheets_for_form() */ function include_stylesheets_for_form(sfForm $form) { echo get_stylesheets_for_form($form); }
// get_javascripts_for_form() get_stylesheets_for_form() $t->diag('get_javascripts_for_form() get_stylesheets_for_form()'); $form = new MyForm(); $output = <<<EOF <script type="text/javascript" src="/path/to/a/foo.js"></script> <script type="text/javascript" src="/path/to/a/bar.js"></script> EOF; $t->is(get_javascripts_for_form($form), fix_linebreaks($output), 'get_javascripts_for_form() returns script tags'); $output = <<<EOF <link rel="stylesheet" type="text/css" media="all" href="/path/to/a/foo.css" /> <link rel="stylesheet" type="text/css" media="print" href="/path/to/a/bar.css" /> EOF; $t->is(get_stylesheets_for_form($form), fix_linebreaks($output), 'get_stylesheets_for_form() returns link tags'); // use_javascripts_for_form() use_stylesheets_for_form() $t->diag('use_javascripts_for_form() use_stylesheets_for_form()'); $response = sfContext::getInstance()->getResponse(); $form = new MyForm(); $response->resetAssets(); use_stylesheets_for_form($form); $t->is_deeply($response->getStylesheets(), array('/path/to/a/foo.css' => array('media' => 'all'), '/path/to/a/bar.css' => array('media' => 'print')), 'use_stylesheets_for_form() adds stylesheets to the response'); $response->resetAssets(); use_javascripts_for_form($form); $t->is_deeply($response->getJavaScripts(), array('/path/to/a/foo.js' => array(), '/path/to/a/bar.js' => array()), 'use_javascripts_for_form() adds javascripts to the response');
public function renderEmbeddedForms($name) { sfContext::getInstance()->getConfiguration()->loadHelpers(array('Asset', 'Url')); $parentForm = $this->getOption('parent_form'); $taintedValues = $parentForm->getTaintedValues(); $html = ''; foreach ($this->embeddedForms as $formName => $form) { $formClonedWidget = clone $parentForm->getWidget($formName); $formTempWidget = new sfWidgetFormSchemaDecorator($form->getWidgetSchema(), $this->getEmbededFormFormatter($form)->getDecoratorFormat()); $formWidgetId = $formClonedWidget->generateId($formName); $formIndex = $formName[strlen($formName) - 1]; $formTaintedValues = is_array($taintedValues) && isset($taintedValues[$formName]) ? $taintedValues[$formName] : array(); /* Renders form's code */ $parentForm->setWidget($formName, $formTempWidget); $formHtml = $this->renderDispatch('renderForm', $this->renderDispatch('renderFormHeader', $this->renderDispatch('renderButtonRemoveForm', $this->generateId($name), $formIndex, image_path($this->getOption('delete-button-image')), $this->getOption('delete-button-text'), $this->getOption('after-delete-js')), $this->getFormTitle($form, $formTaintedValues)), $parentForm[$formName]->render(array()), get_javascripts_for_form($form) . get_stylesheets_for_form($form)); $parentForm->setWidget($formName, $formClonedWidget); $html .= $formHtml; } return $html; }
<?php use_helper('I18N', 'Asset', 'Tag'); ?> <?php echo call_user_func(array($rendererClass, 'renderForm'), call_user_func(array($rendererClass, 'renderFormHeader'), call_user_func(array($rendererClass, 'renderButtonRemoveForm'), $widgetId, $childCount, image_path($images['delete-button-image']['image']), $images['delete-button-image']['text'], $afterDeleteJs), $formTitle), str_replace(array('%content%'), array($form->renderUsing($formFormatter)), $form->getWidgetSchema()->getFormFormatter()->getDecoratorFormat()), get_javascripts_for_form($form) . get_stylesheets_for_form($form));
$t->is(get_javascripts(), '<script type="text/javascript" src="module/action?sf_format=js"></script>' . "\n", 'use_dynamic_javascript() register a dynamic javascript in the response'); // use_dynamic_stylesheet() $t->diag('use_dynamic_stylesheet()'); use_dynamic_stylesheet('module/action'); $t->is(get_stylesheets(), '<link rel="stylesheet" type="text/css" media="screen" href="module/action?sf_format=css" />' . "\n", 'use_dynamic_stylesheet() register a dynamic stylesheet in the response'); class MyForm extends sfForm { public function getStylesheets() { return array('/path/to/a/foo.css' => 'all', '/path/to/a/bar.css' => 'print'); } public function getJavaScripts() { return array('/path/to/a/foo.js', '/path/to/a/bar.js'); } } // get_javascripts_for_form() get_stylesheets_for_form() $t->diag('get_javascripts_for_form() get_stylesheets_for_form()'); $form = new MyForm(); $t->is(get_javascripts_for_form($form), <<<EOF <script type="text/javascript" src="/path/to/a/foo.js"></script> <script type="text/javascript" src="/path/to/a/bar.js"></script> EOF , 'get_javascripts_for_form() returns script tags'); $t->is(get_stylesheets_for_form($form), <<<EOF <link rel="stylesheet" type="text/css" media="all" href="/path/to/a/foo.css" /> <link rel="stylesheet" type="text/css" media="print" href="/path/to/a/bar.css" /> EOF , 'get_stylesheets_for_form() returns link tags');