You are here

function fontyourface_ui_apply_by_selector_form in @font-your-face 7.2

Provides form to apply fonts to selectors.

1 string reference to 'fontyourface_ui_apply_by_selector_form'
fontyourface_ui_apply_page in modules/fontyourface_ui/fontyourface_ui.module
Admin page shows enabled fonts with options to add.

File

modules/fontyourface_ui/fontyourface_ui.module, line 845

Code

function fontyourface_ui_apply_by_selector_form($form, &$form_state) {
  $fonts = fontyourface_get_fonts('enabled = 1');
  $font_select = array(
    '#type' => 'select',
    '#options' => array(
      '-- none --' => '-- none --',
    ),
  );
  foreach ($fonts as $font) {
    $font_select['#options'][$font->fid] = $font->name;
  }

  // foreach
  $unused_selectors = $default_selectors = array(
    'h1, h2, h3, h4, h5, h6' => t('all headers') . ' (h1, h2, h3, h4, h5, h6)',
    'h1' => 'h1',
    'h2' => 'h2',
    'h3' => 'h3',
    'p, div' => t('standard text') . ' (p, div)',
    'body' => t('everything') . ' (body)',
  );
  $selectors = fontyourface_get_fonts("enabled = 1 AND css_selector != '' AND css_selector != '<none>'");
  foreach ($selectors as $selector) {
    if (isset($unused_selectors[$selector->css_selector])) {
      unset($unused_selectors[$selector->css_selector]);
    }

    // if
  }

  // foreach
  $unused_selector_index = 1;
  foreach ($unused_selectors as $selector => $display) {
    $new_selector = new stdClass();
    $new_selector->fid = 'unused' . $unused_selector_index;
    $new_selector->css_selector = $selector;
    $new_selector->css_fallbacks = '';
    $selectors[] = $new_selector;
    $unused_selector_index++;
  }

  // foreach
  $form['table'] = array(
    '#prefix' => '<table><tbody><thead><tr><th>' . t('CSS Selector') . '</th><th>' . t('Font') . '</th><th>' . t('Fallbacks') . '</th></tr></thead>',
    '#suffix' => '</tbody></table>',
  );
  foreach ($selectors as $selector) {
    $form['table']['row_' . $selector->fid] = array(
      '#prefix' => '<tr>',
      '#suffix' => '</tr>',
    );
    $selector_display = $selector->css_selector;
    if (isset($default_selectors[$selector->css_selector])) {
      $selector_display = $default_selectors[$selector->css_selector];
    }

    // if
    $form['table']['row_' . $selector->fid]['css_selector[' . $selector->fid . ']'] = array(
      '#prefix' => '<td>',
      '#type' => 'hidden',
      '#value' => $selector->css_selector,
      '#suffix' => '<b>' . $selector_display . '</b></td>',
    );
    $form['table']['row_' . $selector->fid]['fid[' . $selector->fid . ']'] = $font_select + array(
      '#prefix' => '<td>',
      '#default_value' => intval($selector->fid),
      '#suffix' => '</td>',
    );
    $form['table']['row_' . $selector->fid]['css_fallbacks[' . $selector->fid . ']'] = array(
      '#prefix' => '<td>',
      '#type' => 'textfield',
      '#description' => t('Example: !example', array(
        '!example' => '<i>Helvetica, Arial, sans-serif</i>',
      )),
      '#size' => 50,
      '#default_value' => $selector->css_fallbacks,
      '#suffix' => '</td>',
    );
  }

  // foreach
  $form['table']['row_new'] = array(
    '#prefix' => '<tr>',
    '#suffix' => '</tr>',
  );
  $form['table']['row_new']['css_selector[new]'] = array(
    '#prefix' => '<td>',
    '#type' => 'textfield',
    '#size' => 50,
    '#suffix' => '</td>',
  );
  $form['table']['row_new']['fid[new]'] = $font_select + array(
    '#prefix' => '<td>',
    '#suffix' => '</td>',
  );
  $form['table']['row_new']['css_fallbacks[new]'] = array(
    '#prefix' => '<td>',
    '#type' => 'textfield',
    '#description' => t('Example: !example', array(
      '!example' => '<i>Helvetica, Arial, sans-serif</i>',
    )),
    '#size' => 50,
    '#suffix' => '</td>',
  );
  $form['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Save applied fonts'),
  );
  return $form;
}