From 9ad86a242331e2ee643341bb43ac2dda4fb1ba75 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                  |   64 ++++++++++++++++++++
 2 files changed, 69 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..9fd08ad3f97786b7574e19ecc0ac846ea1ad6174
--- /dev/null
+++ b/filter_transliteration/filter_transliteration.module
@@ -0,0 +1,64 @@
+<?php
+
+/**
+ * @file
+ * Provides a text format filter for transliteration.
+ *
+ * @see http://drupal.org/project/transliteration
+ */
+
+/**
+ * Implements hook_filter_info().
+ */
+function filter_transliteration_filter_info() {
+  return array(
+    'filter_transliteration' => array(
+      'title' => t('Transliteration'),
+      'description' => t('Convert non-latin text to US-ASCII equivalents.'),
+      'default settings' => array('unknown' => '?'),
+      'process callback' => '_filter_transliteration_process',
+      'settings callback' => '_filter_transliteration_settings',
+      'tips callback' => '_filter_transliteration_tips',
+    ),
+  );
+}
+
+/**
+ * Implements hook_filter_FILTER_process().
+ *
+ * @see filter_transliteration_filter_info()
+ */
+function _filter_transliteration_process($text, $filter, $format, $langcode, $cache, $cache_id) {
+  return transliteration_get($text, $filter->settings['unknown'], $langcode);
+}
+
+/**
+ * Implements hook_filter_FILTER_settings().
+ *
+ * @see filter_transliteration_filter_info()
+ */
+function _filter_transliteration_settings($form, &$form_state, $filter, $format, $defaults, $filters) {
+  $filter->settings += $defaults;
+  return array(
+    'unknown' => array(
+      '#type' => 'textfield',
+      '#title' => t('Unknown'),
+      '#title_display' => 'invisible',
+      '#field_prefix' => t('Replace non-ASCII characters with') . ' ',
+      '#field_suffix' => ' ' . t('if there is no suitable ASCII equivalent.'),
+      '#size' => 2,
+      '#maxlength' => 5,
+      '#attributes' => array('style' => 'width: 1em'),
+      '#default_value' => $filter->settings['unknown'],
+    )
+  );
+}
+
+/**
+ * Implements hook_filter_FILTER_tips().
+ *
+ * @see filter_transliteration_filter_info()
+ */
+function _filter_transliteration_tips($filter, $format, $long) {
+  return t('Non-latin text will be converted to US-ASCII equivalents.');
+}
-- 
1.7.5.4

