Hello

Nice module!

Does anybody know how to use it in a block template file? Which function do I need to call to use invisimail?

Thanks,
Marco

EDIT: check_markup does not work.

Comments

46AND2’s picture

Issue summary: View changes

1

pontus_nilsson’s picture

Issue summary: View changes

You need to provide a text format where invisimail is enabled when you run check_markup().
I.e check_markup('test@test.com', 'html'); where html is the machine name of you text format where invisimail is enabled.

gruda’s picture

Running check_markup() will pass the string through every filter enabled for that text format. If you want to run a string through the invisimail filter only, try this (where 'html' is a text format where invisimail is enabled.)

function obfuscate_email($text) {
  $email_filters = array('invisimail_encode_html_entities', 'invisimail_encode_js_entities');

  $filters = filter_list_format('html');
  $filters = array_intersect_key($filters, array_flip($email_filters));

  $filter_info = filter_get_filters();
  $filter_info = array_intersect_key($filter_info, array_flip($email_filters));

  // Give filter the chance to escape HTML-like data such as code or formulas.
  foreach ($filters as $name => $filter) {
    if ($filter->status && isset($filter_info[$name]['prepare callback']) && function_exists($filter_info[$name]['prepare callback'])) {
      $function = $filter_info[$name]['prepare callback'];
      $text = $function($text, $filter, null, null, null, null);
    }
  }

  // Perform filtering.
  foreach ($filters as $name => $filter) {
    if ($filter->status && isset($filter_info[$name]['process callback']) && function_exists($filter_info[$name]['process callback'])) {
      $function = $filter_info[$name]['process callback'];
      $text = $function($text, $filter, null, null, null, null);
    }
  }

  return $text;
}