/[drupal]/contributions/modules/views/modules/node.views_convert.inc
ViewVC logotype

Contents of /contributions/modules/views/modules/node.views_convert.inc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph


Revision 1.7 - (show annotations) (download) (as text)
Tue Jun 30 19:14:27 2009 UTC (4 months, 4 weeks ago) by merlinofchaos
Branch: MAIN
CVS Tags: DRUPAL-6--2-7, HEAD
Branch point for: DRUPAL-6--2, DRUPAL-7--3
Changes since 1.6: +5 -12 lines
File MIME type: text/x-php
More Views convert updates from Darren Oh
1 <?php
2 //$Id: node.views_convert.inc,v 1.6 2009/06/02 20:31:00 merlinofchaos Exp $
3
4 /**
5 * @file
6 * Field conversion for fields handled by this module.
7 */
8
9 /**
10 * Implementation of hook_views_convert().
11 *
12 * Intervene to convert field values from the Views 1 format to the
13 * Views 2 format. Intervene only if $view->add_item() won't produce
14 * the right results, usually needed to set field options or values.
15 */
16 function node_views_convert($display, $type, &$view, $field, $id = NULL) {
17 switch ($type) {
18 case 'field':
19 switch ($field['tablename']) {
20 case 'node':
21 switch ($field['field']) {
22 case 'title':
23 if ($field['options'] != 'no_link') {
24 $view->set_item_option($display, 'field', $id, 'link_to_node', TRUE);
25 }
26 break;
27 case 'created':
28 case 'changed':
29 $handlers = array(
30 'views_handler_field_date_small' => 'small',
31 'views_handler_field_date' => 'medium',
32 'views_handler_field_date_large' => 'large',
33 'views_handler_field_date_custom' => 'custom',
34 'views_handler_field_since' => 'time ago',
35 );
36 $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]);
37 if (!empty($field['options'])) {
38 $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']);
39 }
40 break;
41 case 'body':
42 $field['field'] = $field['handler'] == 'views_handler_field_teaser' ? 'teaser' : $field['field'];
43 $view->set_item_option($display, 'field', $id, 'field', $field['field']);
44 $view->set_item_option($display, 'field', $id, 'table', 'node_revisions');
45 break;
46 case 'link':
47 case 'edit':
48 case 'delete':
49 case 'view':
50 $field['field'] = $field['field'] == 'link' ? 'view_node' : "$field[field]_node";
51 $view->set_item_option($display, 'field', $id, 'field', $field['field']);
52 if (!empty($field['options'])) {
53 $view->set_item_option($display, 'field', $id, 'text', $field['options']);
54 }
55 break;
56 }
57 break;
58 }
59 break;
60 case 'filter':
61 switch ($field['tablename']) {
62 case 'node':
63 switch ($field['field']) {
64 case 'type':
65 $operators = array('OR' => 'in', 'NOR' => 'not in');
66 $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]);
67 break;
68 case 'anon':
69 $item = $view->get_item($display, 'filter', $id);
70 $item['value'] = array(0);
71 $item['table'] = 'users';
72 $item['field'] = 'uid';
73 $view->set_item($display, 'filter', $id, $item);
74 break;
75 case 'currentuid':
76 $operators = array('=' => TRUE, '!=' => FALSE);
77 $item = $view->get_item($display, 'filter', $id);
78 $item['value'] = $operators[$field['operator']];
79 $item['table'] = 'users';
80 $item['field'] = 'uid_current';
81 $view->set_item($display, 'filter', $id, $item);
82 break;
83 case 'currentuidtouched':
84 $view->set_item_option($display, 'filter', $id, 'value', '=');
85 $view->set_item_option($display, 'filter', $id, 'field', 'uid_touch');
86 break;
87 case 'distinct':
88 $view->display_handler->set_option('distinct', $field['operator'] == '=' && $field['value'] == 'distinct');
89 $view->set_item($display, 'filter', $id, NULL);
90 break;
91 case 'title':
92 $item = $view->get_item($display, 'filter', $id);
93 $item['operator'] = $field['operator'];
94 $item['case'] = FALSE;
95 $view->set_item($display, 'filter', $id, $item);
96 break;
97 case 'created':
98 case 'changed':
99 $item = $view->get_item($display, 'filter', $id);
100 $item['operator'] = $field['operator'];
101 $item['value'] = array(
102 'type' => $field['value'] == 'now' ? 'offset' : 'date',
103 'value' => $field['value'],
104 );
105 if (!empty($field['options'])) {
106 $item['value']['value'] = intval($field['options']) .' seconds';
107 }
108 $view->set_item($display, 'filter', $id, $item);
109 break;
110 case 'body':
111 $item = $view->get_item($display, 'filter', $id);
112 $item['operator'] = $field['operator'];
113 $item['case'] = FALSE;
114 $item['table'] = 'node_revisions';
115 $view->set_item($display, 'filter', $id, $item);
116 break;
117 }
118 break;
119 case 'history':
120 switch ($field['field']) {
121 case 'timestamp':
122 $view->set_item_option($display, 'filter', $id, 'table', 'history_user');
123 break;
124 }
125 break;
126 }
127 break;
128 case 'sort':
129 switch ($field['tablename']) {
130 case 'node':
131 switch ($field['field']) {
132 case 'created':
133 case 'changed':
134 $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options'];
135 $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']);
136 break;
137 case 'random':
138 $view->set_item_option($display, 'sort', $id, 'table', 'views');
139 break;
140 }
141 break;
142 }
143 break;
144 case 'argument':
145 $options = $field['argoptions'];
146 switch ($field['type']) {
147 case 'nodetype':
148 $view->add_item($display, 'argument', 'node', 'type', $options, $field['id']);
149 break;
150 case 'nodeletter':
151 if (!empty($field['options'])) {
152 $options['glossary'] = TRUE;
153 $options['limit'] = $field['options'];
154 }
155 $options['case'] = 'upper';
156 $view->add_item($display, 'argument', 'node', 'title', $options, $field['id']);
157 break;
158 case 'year':
159 $view->add_item($display, 'argument', 'node', 'created_year', $options, $field['id']);
160 break;
161 case 'month':
162 $view->add_item($display, 'argument', 'node', 'created_month', $options, $field['id']);
163 break;
164 case 'week':
165 $view->add_item($display, 'argument', 'node', 'created_week', $options, $field['id']);
166 break;
167 case 'monthyear':
168 $view->add_item($display, 'argument', 'node', 'created_year_month', $options, $field['id']);
169 break;
170 case 'fulldate':
171 $view->add_item($display, 'argument', 'node', 'created_fulldate', $options, $field['id']);
172 break;
173 case 'nid':
174 if (!empty($field['options'])) {
175 $options['not'] = TRUE;
176 }
177 $view->add_item($display, 'argument', 'node', 'nid', $options, $field['id']);
178 break;
179 }
180 break;
181 }
182 }

  ViewVC Help
Powered by ViewVC 1.1.2