You are here

function webform2pdf_update_7300 in Webform2PDF 7.4

Same name and namespace in other branches
  1. 7.3 webform2pdf.install \webform2pdf_update_7300()

Convert the webform2pdf template.

File

./webform2pdf.install, line 176
Webform2pdf module install/schema hooks.

Code

function webform2pdf_update_7300(&$sandbox) {
  $sandbox['#finished'] = 0;

  // Multi-part update.
  if (!isset($sandbox['webform2pdf_convert'])) {
    db_change_field('webform2pdf', 'format', 'format', array(
      'type' => 'varchar',
      'length' => 255,
      'not null' => TRUE,
      'default' => '',
    ));
    $sandbox['webform2pdf_convert'] = 0;
    $sandbox['webform2pdf_count'] = db_query("SELECT COUNT(nid) FROM {webform2pdf}")
      ->fetchField();
  }
  else {
    $result = db_select('filter_format', 'f')
      ->fields('f', array(
      'format',
    ))
      ->condition('status', 0, '>')
      ->execute();
    $i = 0;
    while ($filter = $result
      ->fetchAssoc()) {
      $i++;
      $filters[$i] = $filter['format'];
    }
    $results = db_query_range("SELECT nid, format, p_body FROM {webform2pdf} ORDER BY nid", $sandbox['webform2pdf_convert'], 100);
    foreach ($results as $setting) {
      $node = node_load($setting->nid);
      foreach ($node->webform['components'] as $component) {
        if ($component['type'] == 'select') {
          $tokens['%' . $component['form_key'] . '-nl'] = '%nl[' . $component['form_key'] . ']';
          $tokens['%' . $component['form_key'] . '-all'] = '%all[' . $component['form_key'] . ']';
          $tokens['%' . $component['form_key'] . '-all-nl'] = '%all_nl[' . $component['form_key'] . ']';
        }
        $tokens['%' . $component['form_key']] = '%value[' . $component['form_key'] . ']';
      }
      $p_body = strtr($setting->p_body, $tokens);
      db_update('webform2pdf')
        ->fields(array(
        'format' => $filters[$setting->format],
      ))
        ->fields(array(
        'p_body' => $p_body,
      ))
        ->condition('nid', $setting->nid)
        ->execute();
      $sandbox['webform2pdf_convert']++;
    }
    $sandbox['#finished'] = $sandbox['webform2pdf_convert'] / $sandbox['webform2pdf_count'];
    if ($sandbox['webform2pdf_convert'] == $sandbox['webform2pdf_count']) {
      return t('Migrated webform to pdf format settings');
    }
  }
}