// $Id$
+Data 6.x 1.0 xxxxxxxxxxxxxxxxxxxx
+---------------------------------
+
+- #731530 jmiccolis: Add markup field handler.
+
+
Data 6.x 1.0 Alpha 10, 2010-01-25
---------------------------------
Data 6.x 1.0 Alpha 8, 2009-10-20
---------------------------------
-- Initial release.
\ No newline at end of file
+- Initial release.
}
/**
+ * Implementation of hook_views_handlers().
+ */
+function data_views_handlers() {
+ return array(
+ 'info' => array(
+ 'path' => drupal_get_path('module', 'data') . '/views',
+ ),
+ 'handlers' => array(
+ 'views_handler_field_data_markup' => array(
+ 'parent' => 'views_handler_field',
+ ),
+ ),
+ );
+}
+
+/**
* Return all available field handlers.
*
* @param $type
'views_handler_field_numeric' => 'views_handler_field_numeric',
'views_handler_field_date' => 'views_handler_field_date',
'views_handler_field_url' => 'views_handler_field_url',
+ 'views_handler_field_data_markup' => 'views_handler_field_data_markup',
);
$handlers['filter'] = array(
'views_handler_filter_date' => 'views_handler_filter_date',
--- /dev/null
+<?php
+// $Id$
+
+/**
+ * A handler to run a field through check_markup.
+ */
+class views_handler_field_data_markup extends views_handler_field {
+
+ function construct() {
+ parent::construct();
+ $this->format = $this->definition['format'];
+ }
+
+ function options_form(&$form, &$form_state) {
+ parent::options_form($form, $form_state);
+
+ $options = array('default' => t('<Default>'));
+ $result = db_query("SELECT format, name FROM {filter_formats}");
+ while ($row = db_fetch_object($result)) {
+ $options[$row->format] = $row->name;
+ }
+ $form['format'] = array(
+ '#type' => 'select',
+ '#options' => $options,
+ '#title' => t('Format'),
+ '#default_value' => isset($this->options['format']) ? $this->options['format'] : '',
+ '#description' => t('Choose the filter format to use for this field.'),
+ );
+ }
+
+ function render($values) {
+ $value = $values->{$this->field_alias};
+ if ($value) {
+ $format = is_numeric($this->options['format']) ? $this->options['format'] : variable_get('filter_default_format', 1);
+ return check_markup($value, $format, FALSE);
+ }
+ }
+}