From 175c4603fe81cd9ef97c28bcfe4e5cf0b2a13c8a Mon Sep 17 00:00:00 2001
From: Bob Vincent <bobvin@pillars.net>
Date: Sun, 10 Apr 2011 09:54:58 -0400
Subject: [PATCH] Issue #1095278 by pillarsdotnet: add filter support.

---
 filter_transliteration/filter_transliteration.info |    5 ++
 .../filter_transliteration.module                  |   55 ++++++++++++++++++++
 2 files changed, 60 insertions(+), 0 deletions(-)
 create mode 100644 filter_transliteration/filter_transliteration.info
 create mode 100644 filter_transliteration/filter_transliteration.module

diff --git a/filter_transliteration/filter_transliteration.info b/filter_transliteration/filter_transliteration.info
new file mode 100644
index 0000000000000000000000000000000000000000..8c348c7d1af506ccd05e80ed8c358118f1822bdd
--- /dev/null
+++ b/filter_transliteration/filter_transliteration.info
@@ -0,0 +1,5 @@
+name = Filter Transliteration
+description = Provides a text format filter for converting non-latin text to US-ASCII.
+package = Input filters
+core = 7.x
+dependencies[] = transliteration
diff --git a/filter_transliteration/filter_transliteration.module b/filter_transliteration/filter_transliteration.module
new file mode 100644
index 0000000000000000000000000000000000000000..9462312532ef92024c22c5ccb2302488a53430fb
--- /dev/null
+++ b/filter_transliteration/filter_transliteration.module
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * @file
+ * Provides a text format filter for transliteration.
+ */
+
+/**
+ * Implements hook_filter_info().
+ */
+function filter_transliteration_filter_info() {
+  return array(
+    'filter_transliteration' => array(
+      'title' => t('Transliteration'),
+      'default settings' => array('no_known_transliteration' => '?'),
+      'process callback' => '_filter_transliteration_process',
+      'settings callback' => '_filter_transliteration_settings',
+      'tips callback' => '_filter_transliteration_tips',
+    ),
+  );
+}
+
+/**
+ * Implements hook_filter_FILTER_process().
+ */
+function _filter_transliteration_process($text, $filter, $format, $langcode, $cache, $cache_id) {
+  return transliteration_get($text, $filter->settings['no_known_transliteration'], $langcode);
+}
+
+/**
+ * Implements hook_filter_FILTER_settings().
+ */
+function _filter_transliteration_settings($form, &$form_state, $filter, $format, $defaults, $filters) {
+  $filter->settings += $defaults;
+  return array(
+    'no_known_transliteration' => array(
+      '#type' => 'textfield',
+      '#title' => t('No known transliteration'),
+      '#title_display' => 'invisible',
+      '#field_prefix' => t('Replace non-ASCII characters with'),
+      '#field_suffix' => t('if there is no suitable ASCII equivalent.'),
+      '#size' => 2,
+      // The maximum length is 5 in order to accomodate unicode multibyte input.
+      '#maxlength' => 5,
+      '#default_value' => $filter->settings['no_known_transliteration'],
+    )
+  );
+}
+
+/**
+ * Implements hook_filter_FILTER_tips().
+ */
+function _filter_transliteration_tips($filter, $format, $long) {
+  return t('Characters outside the range of "!" through "}" will be converted to their nearest ASCII equivalents.');
+}
-- 
1.7.5.4

