You are here

function custom_breadcrumbs_form_validate in Custom Breadcrumbs 7.2

Same name and namespace in other branches
  1. 5 custom_breadcrumbs.module \custom_breadcrumbs_form_validate()
  2. 6.2 custom_breadcrumbs.admin.inc \custom_breadcrumbs_form_validate()
  3. 6 custom_breadcrumbs.admin.inc \custom_breadcrumbs_form_validate()
  4. 7 custom_breadcrumbs.admin.inc \custom_breadcrumbs_form_validate()

Form validation handler for custom_breadcrumbs_form().

See also

custom_breadcrumbs_form()

custom_breadcrumbs_form_submit()

6 string references to 'custom_breadcrumbs_form_validate'
custom_breadcrumbsapi_form in custom_breadcrumbsapi/custom_breadcrumbsapi.module
Form builder; Displays an edit form for a module page breadcrumb.
custom_breadcrumbs_panels_form in custom_breadcrumbs_panels/custom_breadcrumbs_panels.module
Form builder; Displays an edit form for a panels breadcrumb.
custom_breadcrumbs_paths_form in custom_breadcrumbs_paths/custom_breadcrumbs_paths.module
Form builder; Provide an edit form for a custom breadcrumb paths breadcrumb.
custom_breadcrumbs_taxonomy_term_form in custom_breadcrumbs_taxonomy/custom_breadcrumbs_taxonomy.admin.inc
Term Form.
custom_breadcrumbs_taxonomy_vocabulary_form in custom_breadcrumbs_taxonomy/custom_breadcrumbs_taxonomy.admin.inc
Vocabulary Form.

... See full list

File

./custom_breadcrumbs.admin.inc, line 224
Admin page callback file for the custom_breadcrumbs module.

Code

function custom_breadcrumbs_form_validate($form, &$form_state) {

  // Check to make sure there are an equal number of paths and titles.
  $check = TRUE;
  if (!user_access('use php in custom breadcrumbs') || !variable_get('custom_breadcrumbs_use_php_in_titles', FALSE)) {

    // Strip any PHP tags from paths and titles since they are not allowed.
    $elements = array(
      'titles',
      'paths',
    );
    foreach ($elements as $element) {
      if (strpos($form_state['values'][$element], '<?php') !== FALSE) {
        $form_state['values'][$element] = str_replace(array(
          '<?php',
          '?>',
        ), '', $form_state['values'][$element]);
        form_set_error($element, t('Use of PHP in !element is not permitted and will be filtered out.', array(
          '!element' => $element,
        )));
      }
    }
  }
  else {

    // If PHP is used, don't validate number of paths and titles.
    if (strpos($form_state['values']['titles'], '<?php') !== FALSE || strpos($form_state['values']['paths'], '<?php') !== FALSE) {
      $check = FALSE;
    }
  }
  if ($check) {
    $path_count = count(explode("\n", trim($form_state['values']['paths'])));
    $title_count = count(explode("\n", trim($form_state['values']['titles'])));
    if ($title_count != $path_count) {
      $error_field = $title_count < $path_count ? 'titles' : 'paths';
      form_set_error($error_field, t('Every link path must have a matching title. There are !paths paths, and !titles titles.', array(
        '!paths' => $path_count,
        '!titles' => $title_count,
      )));
    }
  }
}