You are here

function widgets_replace_fields in Widgets 7

1 call to widgets_replace_fields()
theme_widgets_set_view in ./widgets.module
Returns HTML for a preview of an widget set.

File

./widgets.module, line 1354
Exposes global functionality for creating widget sets.

Code

function widgets_replace_fields($template, $data) {
  $fields = widgets_field_scan($template);
  foreach ($fields as $key => $field) {
    $keys = explode(':', $key);
    if (count($keys) == 1) {
      $value = isset($data[$key]) ? $data[$key] : FALSE;
    }
    else {
      $value = isset($data[$keys[0]][$keys[1]]) ? $data[$keys[0]][$keys[1]] : FALSE;
    }

    // if data value, use data otherwise use default
    if ($value) {

      // remove field if data value is set to none
      if ($value == '<none>') {
        $template = str_replace($field['original'], '', $template);
      }
      else {
        $str = (isset($field['pre']) ? $field['pre'] : '') . $value . (isset($field['post']) ? $field['post'] : '');
        $template = str_replace($field['original'], $str, $template);
      }
    }
    else {

      // remove field if default is set to none
      if (isset($field['default']) && $field['default'] == '<none>') {
        $template = str_replace($field['original'], '', $template);
      }
      else {
        $str = (isset($field['pre']) ? $field['pre'] : '') . $field['default'] . (isset($field['post']) ? $field['post'] : '');
        $template = str_replace($field['original'], $str, $template);
      }
    }
  }
  return $template;
}