@@ -7,16 +7,16 @@ |
||
| 7 | 7 | |
| 8 | 8 | function search_views_convert($display, $type, &$view, $field, $id = NULL) { |
| 9 | 9 | switch ($type) { |
| 10 | - case 'filter': |
|
| 11 | - switch ($field['tablename']) { |
|
| 12 | - case 'temp_search_results': |
|
| 13 | - switch ($field['field']) { |
|
| 14 | - case 'word': |
|
| 15 | - $view->set_item_option($display, 'filter', $id, 'table', 'search_index'); |
|
| 16 | - $view->set_item_option($display, 'filter', $id, 'field', 'keys'); |
|
| 17 | - break; |
|
| 18 | - } |
|
| 19 | - break; |
|
| 10 | + case 'filter': |
|
| 11 | + switch ($field['tablename']) { |
|
| 12 | + case 'temp_search_results': |
|
| 13 | + switch ($field['field']) { |
|
| 14 | + case 'word': |
|
| 15 | + $view->set_item_option($display, 'filter', $id, 'table', 'search_index'); |
|
| 16 | + $view->set_item_option($display, 'filter', $id, 'field', 'keys'); |
|
| 17 | + break; |
|
| 18 | + } |
|
| 19 | + break; |
|
| 20 | 20 | } |
| 21 | 21 | break; |
| 22 | 22 | } |
@@ -22,18 +22,18 @@ |
||
| 22 | 22 | $value = unserialize($value->{$this->field_alias}); |
| 23 | 23 | $format = $this->options['date_format']; |
| 24 | 24 | switch ($format) { |
| 25 | - case 'custom': |
|
| 26 | - $format = $this->options['custom_date_format']; |
|
| 27 | - break; |
|
| 28 | - case 'small': |
|
| 29 | - $format = variable_get('date_format_short', 'm/d/Y - H:i'); |
|
| 30 | - break; |
|
| 31 | - case 'medium': |
|
| 32 | - $format = variable_get('date_format_medium', 'D, m/d/Y - H:i'); |
|
| 33 | - break; |
|
| 34 | - case 'large': |
|
| 35 | - $format = variable_get('date_format_long', 'l, F j, Y - H:i'); |
|
| 36 | - break; |
|
| 25 | + case 'custom': |
|
| 26 | + $format = $this->options['custom_date_format']; |
|
| 27 | + break; |
|
| 28 | + case 'small': |
|
| 29 | + $format = variable_get('date_format_short', 'm/d/Y - H:i'); |
|
| 30 | + break; |
|
| 31 | + case 'medium': |
|
| 32 | + $format = variable_get('date_format_medium', 'D, m/d/Y - H:i'); |
|
| 33 | + break; |
|
| 34 | + case 'large': |
|
| 35 | + $format = variable_get('date_format_long', 'l, F j, Y - H:i'); |
|
| 36 | + break; |
|
| 37 | 37 | } |
| 38 | 38 | |
| 39 | 39 | // Note: Avoid PHP's date() because it does not handle dates before |
@@ -14,168 +14,168 @@ |
||
| 14 | 14 | */ |
| 15 | 15 | function node_views_convert($display, $type, &$view, $field, $id = NULL) { |
| 16 | 16 | switch ($type) { |
| 17 | - case 'field': |
|
| 18 | - switch ($field['tablename']) { |
|
| 19 | - case 'node': |
|
| 20 | - switch ($field['field']) { |
|
| 21 | - case 'title': |
|
| 22 | - if ($field['options'] != 'no_link') { |
|
| 23 | - $view->set_item_option($display, 'field', $id, 'link_to_node', TRUE); |
|
| 24 | - } |
|
| 25 | - break; |
|
| 26 | - case 'created': |
|
| 27 | - case 'changed': |
|
| 28 | - $handlers = array( |
|
| 29 | - 'views_handler_field_date_small' => 'small', |
|
| 30 | - 'views_handler_field_date' => 'medium', |
|
| 31 | - 'views_handler_field_date_large' => 'large', |
|
| 32 | - 'views_handler_field_date_custom' => 'custom', |
|
| 33 | - 'views_handler_field_since' => 'time ago', |
|
| 34 | - ); |
|
| 35 | - $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]); |
|
| 36 | - if (!empty($field['options'])) { |
|
| 37 | - $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']); |
|
| 38 | - } |
|
| 39 | - break; |
|
| 40 | - case 'body': |
|
| 41 | - $field['field'] = $field['handler'] == 'views_handler_field_teaser' ? 'teaser' : $field['field']; |
|
| 42 | - $view->set_item_option($display, 'field', $id, 'field', $field['field']); |
|
| 43 | - $view->set_item_option($display, 'field', $id, 'table', 'node_revisions'); |
|
| 44 | - break; |
|
| 45 | - case 'link': |
|
| 46 | - case 'edit': |
|
| 47 | - case 'delete': |
|
| 48 | - case 'view': |
|
| 49 | - $field['field'] = $field['field'] == 'link' ? 'view_node' : "$field[field]_node"; |
|
| 50 | - $view->set_item_option($display, 'field', $id, 'field', $field['field']); |
|
| 51 | - if (!empty($field['options'])) { |
|
| 52 | - $view->set_item_option($display, 'field', $id, 'text', $field['options']); |
|
| 53 | - } |
|
| 54 | - break; |
|
| 55 | - } |
|
| 56 | - break; |
|
| 17 | + case 'field': |
|
| 18 | + switch ($field['tablename']) { |
|
| 19 | + case 'node': |
|
| 20 | + switch ($field['field']) { |
|
| 21 | + case 'title': |
|
| 22 | + if ($field['options'] != 'no_link') { |
|
| 23 | + $view->set_item_option($display, 'field', $id, 'link_to_node', TRUE); |
|
| 24 | + } |
|
| 25 | + break; |
|
| 26 | + case 'created': |
|
| 27 | + case 'changed': |
|
| 28 | + $handlers = array( |
|
| 29 | + 'views_handler_field_date_small' => 'small', |
|
| 30 | + 'views_handler_field_date' => 'medium', |
|
| 31 | + 'views_handler_field_date_large' => 'large', |
|
| 32 | + 'views_handler_field_date_custom' => 'custom', |
|
| 33 | + 'views_handler_field_since' => 'time ago', |
|
| 34 | + ); |
|
| 35 | + $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]); |
|
| 36 | + if (!empty($field['options'])) { |
|
| 37 | + $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']); |
|
| 38 | + } |
|
| 39 | + break; |
|
| 40 | + case 'body': |
|
| 41 | + $field['field'] = $field['handler'] == 'views_handler_field_teaser' ? 'teaser' : $field['field']; |
|
| 42 | + $view->set_item_option($display, 'field', $id, 'field', $field['field']); |
|
| 43 | + $view->set_item_option($display, 'field', $id, 'table', 'node_revisions'); |
|
| 44 | + break; |
|
| 45 | + case 'link': |
|
| 46 | + case 'edit': |
|
| 47 | + case 'delete': |
|
| 48 | + case 'view': |
|
| 49 | + $field['field'] = $field['field'] == 'link' ? 'view_node' : "$field[field]_node"; |
|
| 50 | + $view->set_item_option($display, 'field', $id, 'field', $field['field']); |
|
| 51 | + if (!empty($field['options'])) { |
|
| 52 | + $view->set_item_option($display, 'field', $id, 'text', $field['options']); |
|
| 53 | + } |
|
| 54 | + break; |
|
| 55 | + } |
|
| 56 | + break; |
|
| 57 | 57 | } |
| 58 | 58 | break; |
| 59 | - case 'filter': |
|
| 60 | - switch ($field['tablename']) { |
|
| 61 | - case 'node': |
|
| 62 | - switch ($field['field']) { |
|
| 63 | - case 'type': |
|
| 64 | - $operators = array('OR' => 'in', 'NOR' => 'not in'); |
|
| 65 | - $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]); |
|
| 66 | - break; |
|
| 67 | - case 'anon': |
|
| 68 | - $item = $view->get_item($display, 'filter', $id); |
|
| 69 | - $item['value'] = array(0); |
|
| 70 | - $item['table'] = 'users'; |
|
| 71 | - $item['field'] = 'uid'; |
|
| 72 | - $view->set_item($display, 'filter', $id, $item); |
|
| 73 | - break; |
|
| 74 | - case 'currentuid': |
|
| 75 | - $operators = array('=' => TRUE, '!=' => FALSE); |
|
| 76 | - $item = $view->get_item($display, 'filter', $id); |
|
| 77 | - $item['value'] = $operators[$field['operator']]; |
|
| 78 | - $item['table'] = 'users'; |
|
| 79 | - $item['field'] = 'uid_current'; |
|
| 80 | - $view->set_item($display, 'filter', $id, $item); |
|
| 81 | - break; |
|
| 82 | - case 'currentuidtouched': |
|
| 83 | - $view->set_item_option($display, 'filter', $id, 'value', '='); |
|
| 84 | - $view->set_item_option($display, 'filter', $id, 'field', 'uid_touch'); |
|
| 85 | - break; |
|
| 86 | - case 'distinct': |
|
| 87 | - $view->display_handler->set_option('distinct', $field['operator'] == '=' && $field['value'] == 'distinct'); |
|
| 88 | - $view->set_item($display, 'filter', $id, NULL); |
|
| 89 | - break; |
|
| 90 | - case 'title': |
|
| 91 | - $item = $view->get_item($display, 'filter', $id); |
|
| 92 | - $item['operator'] = $field['operator']; |
|
| 93 | - $item['case'] = FALSE; |
|
| 94 | - $view->set_item($display, 'filter', $id, $item); |
|
| 95 | - break; |
|
| 96 | - case 'created': |
|
| 97 | - case 'changed': |
|
| 98 | - $item = $view->get_item($display, 'filter', $id); |
|
| 99 | - $item['operator'] = $field['operator']; |
|
| 100 | - $item['value'] = array( |
|
| 101 | - 'type' => $field['value'] == 'now' ? 'offset' : 'date', |
|
| 102 | - 'value' => $field['value'], |
|
| 103 | - ); |
|
| 104 | - if (!empty($field['options'])) { |
|
| 105 | - $item['value']['value'] = intval($field['options']) .' seconds'; |
|
| 106 | - } |
|
| 107 | - $view->set_item($display, 'filter', $id, $item); |
|
| 108 | - break; |
|
| 109 | - case 'body': |
|
| 110 | - $item = $view->get_item($display, 'filter', $id); |
|
| 111 | - $item['operator'] = $field['operator']; |
|
| 112 | - $item['case'] = FALSE; |
|
| 113 | - $item['table'] = 'node_revisions'; |
|
| 114 | - $view->set_item($display, 'filter', $id, $item); |
|
| 115 | - break; |
|
| 116 | - } |
|
| 117 | - break; |
|
| 118 | - case 'history': |
|
| 119 | - switch ($field['field']) { |
|
| 120 | - case 'timestamp': |
|
| 121 | - $view->set_item_option($display, 'filter', $id, 'table', 'history_user'); |
|
| 122 | - break; |
|
| 123 | - } |
|
| 124 | - break; |
|
| 125 | - } |
|
| 59 | + case 'filter': |
|
| 60 | + switch ($field['tablename']) { |
|
| 61 | + case 'node': |
|
| 62 | + switch ($field['field']) { |
|
| 63 | + case 'type': |
|
| 64 | + $operators = array('OR' => 'in', 'NOR' => 'not in'); |
|
| 65 | + $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]); |
|
| 66 | + break; |
|
| 67 | + case 'anon': |
|
| 68 | + $item = $view->get_item($display, 'filter', $id); |
|
| 69 | + $item['value'] = array(0); |
|
| 70 | + $item['table'] = 'users'; |
|
| 71 | + $item['field'] = 'uid'; |
|
| 72 | + $view->set_item($display, 'filter', $id, $item); |
|
| 73 | + break; |
|
| 74 | + case 'currentuid': |
|
| 75 | + $operators = array('=' => TRUE, '!=' => FALSE); |
|
| 76 | + $item = $view->get_item($display, 'filter', $id); |
|
| 77 | + $item['value'] = $operators[$field['operator']]; |
|
| 78 | + $item['table'] = 'users'; |
|
| 79 | + $item['field'] = 'uid_current'; |
|
| 80 | + $view->set_item($display, 'filter', $id, $item); |
|
| 81 | + break; |
|
| 82 | + case 'currentuidtouched': |
|
| 83 | + $view->set_item_option($display, 'filter', $id, 'value', '='); |
|
| 84 | + $view->set_item_option($display, 'filter', $id, 'field', 'uid_touch'); |
|
| 85 | + break; |
|
| 86 | + case 'distinct': |
|
| 87 | + $view->display_handler->set_option('distinct', $field['operator'] == '=' && $field['value'] == 'distinct'); |
|
| 88 | + $view->set_item($display, 'filter', $id, NULL); |
|
| 89 | + break; |
|
| 90 | + case 'title': |
|
| 91 | + $item = $view->get_item($display, 'filter', $id); |
|
| 92 | + $item['operator'] = $field['operator']; |
|
| 93 | + $item['case'] = FALSE; |
|
| 94 | + $view->set_item($display, 'filter', $id, $item); |
|
| 95 | + break; |
|
| 96 | + case 'created': |
|
| 97 | + case 'changed': |
|
| 98 | + $item = $view->get_item($display, 'filter', $id); |
|
| 99 | + $item['operator'] = $field['operator']; |
|
| 100 | + $item['value'] = array( |
|
| 101 | + 'type' => $field['value'] == 'now' ? 'offset' : 'date', |
|
| 102 | + 'value' => $field['value'], |
|
| 103 | + ); |
|
| 104 | + if (!empty($field['options'])) { |
|
| 105 | + $item['value']['value'] = intval($field['options']) .' seconds'; |
|
| 106 | + } |
|
| 107 | + $view->set_item($display, 'filter', $id, $item); |
|
| 108 | + break; |
|
| 109 | + case 'body': |
|
| 110 | + $item = $view->get_item($display, 'filter', $id); |
|
| 111 | + $item['operator'] = $field['operator']; |
|
| 112 | + $item['case'] = FALSE; |
|
| 113 | + $item['table'] = 'node_revisions'; |
|
| 114 | + $view->set_item($display, 'filter', $id, $item); |
|
| 115 | + break; |
|
| 116 | + } |
|
| 117 | + break; |
|
| 118 | + case 'history': |
|
| 119 | + switch ($field['field']) { |
|
| 120 | + case 'timestamp': |
|
| 121 | + $view->set_item_option($display, 'filter', $id, 'table', 'history_user'); |
|
| 126 | 122 | break; |
| 127 | - case 'sort': |
|
| 128 | - switch ($field['tablename']) { |
|
| 129 | - case 'node': |
|
| 130 | - switch ($field['field']) { |
|
| 131 | - case 'created': |
|
| 132 | - case 'changed': |
|
| 133 | - $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options']; |
|
| 134 | - $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']); |
|
| 135 | - break; |
|
| 136 | - case 'random': |
|
| 137 | - $view->set_item_option($display, 'sort', $id, 'table', 'views'); |
|
| 138 | - break; |
|
| 139 | - } |
|
| 123 | + } |
|
| 140 | 124 | break; |
| 141 | 125 | } |
| 142 | 126 | break; |
| 143 | - case 'argument': |
|
| 144 | - $options = $field['argoptions']; |
|
| 145 | - switch ($field['type']) { |
|
| 146 | - case 'nodetype': |
|
| 147 | - $view->add_item($display, 'argument', 'node', 'type', $options, $field['id']); |
|
| 148 | - break; |
|
| 149 | - case 'nodeletter': |
|
| 150 | - if (!empty($field['options'])) { |
|
| 151 | - $options['glossary'] = TRUE; |
|
| 152 | - $options['limit'] = $field['options']; |
|
| 153 | - } |
|
| 154 | - $options['case'] = 'upper'; |
|
| 155 | - $view->add_item($display, 'argument', 'node', 'title', $options, $field['id']); |
|
| 156 | - break; |
|
| 157 | - case 'year': |
|
| 158 | - $view->add_item($display, 'argument', 'node', 'created_year', $options, $field['id']); |
|
| 159 | - break; |
|
| 160 | - case 'month': |
|
| 161 | - $view->add_item($display, 'argument', 'node', 'created_month', $options, $field['id']); |
|
| 162 | - break; |
|
| 163 | - case 'week': |
|
| 164 | - $view->add_item($display, 'argument', 'node', 'created_week', $options, $field['id']); |
|
| 165 | - break; |
|
| 166 | - case 'monthyear': |
|
| 167 | - $view->add_item($display, 'argument', 'node', 'created_year_month', $options, $field['id']); |
|
| 168 | - break; |
|
| 169 | - case 'fulldate': |
|
| 170 | - $view->add_item($display, 'argument', 'node', 'created_fulldate', $options, $field['id']); |
|
| 171 | - break; |
|
| 172 | - case 'nid': |
|
| 173 | - if (!empty($field['options'])) { |
|
| 174 | - $options['not'] = TRUE; |
|
| 175 | - } |
|
| 176 | - $view->add_item($display, 'argument', 'node', 'nid', $options, $field['id']); |
|
| 177 | - break; |
|
| 127 | + case 'sort': |
|
| 128 | + switch ($field['tablename']) { |
|
| 129 | + case 'node': |
|
| 130 | + switch ($field['field']) { |
|
| 131 | + case 'created': |
|
| 132 | + case 'changed': |
|
| 133 | + $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options']; |
|
| 134 | + $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']); |
|
| 135 | + break; |
|
| 136 | + case 'random': |
|
| 137 | + $view->set_item_option($display, 'sort', $id, 'table', 'views'); |
|
| 138 | + break; |
|
| 139 | + } |
|
| 140 | + break; |
|
| 178 | 141 | } |
| 179 | 142 | break; |
| 143 | + case 'argument': |
|
| 144 | + $options = $field['argoptions']; |
|
| 145 | + switch ($field['type']) { |
|
| 146 | + case 'nodetype': |
|
| 147 | + $view->add_item($display, 'argument', 'node', 'type', $options, $field['id']); |
|
| 148 | + break; |
|
| 149 | + case 'nodeletter': |
|
| 150 | + if (!empty($field['options'])) { |
|
| 151 | + $options['glossary'] = TRUE; |
|
| 152 | + $options['limit'] = $field['options']; |
|
| 153 | + } |
|
| 154 | + $options['case'] = 'upper'; |
|
| 155 | + $view->add_item($display, 'argument', 'node', 'title', $options, $field['id']); |
|
| 156 | + break; |
|
| 157 | + case 'year': |
|
| 158 | + $view->add_item($display, 'argument', 'node', 'created_year', $options, $field['id']); |
|
| 159 | + break; |
|
| 160 | + case 'month': |
|
| 161 | + $view->add_item($display, 'argument', 'node', 'created_month', $options, $field['id']); |
|
| 162 | + break; |
|
| 163 | + case 'week': |
|
| 164 | + $view->add_item($display, 'argument', 'node', 'created_week', $options, $field['id']); |
|
| 165 | + break; |
|
| 166 | + case 'monthyear': |
|
| 167 | + $view->add_item($display, 'argument', 'node', 'created_year_month', $options, $field['id']); |
|
| 168 | + break; |
|
| 169 | + case 'fulldate': |
|
| 170 | + $view->add_item($display, 'argument', 'node', 'created_fulldate', $options, $field['id']); |
|
| 171 | + break; |
|
| 172 | + case 'nid': |
|
| 173 | + if (!empty($field['options'])) { |
|
| 174 | + $options['not'] = TRUE; |
|
| 175 | + } |
|
| 176 | + $view->add_item($display, 'argument', 'node', 'nid', $options, $field['id']); |
|
| 177 | + break; |
|
| 178 | + } |
|
| 179 | + break; |
|
| 180 | 180 | } |
| 181 | 181 | } |
@@ -60,62 +60,62 @@ |
||
| 60 | 60 | $type = isset($this->argument->options['validate_argument_nid_type']) ? $this->argument->options['validate_argument_nid_type'] : 'nid'; |
| 61 | 61 | |
| 62 | 62 | switch ($type) { |
| 63 | - case 'nid': |
|
| 64 | - if (!is_numeric($argument)) { |
|
| 65 | - return FALSE; |
|
| 66 | - } |
|
| 67 | - $node = node_load($argument); |
|
| 68 | - if (!$node) { |
|
| 63 | + case 'nid': |
|
| 64 | + if (!is_numeric($argument)) { |
|
| 65 | + return FALSE; |
|
| 66 | + } |
|
| 67 | + $node = node_load($argument); |
|
| 68 | + if (!$node) { |
|
| 69 | + return FALSE; |
|
| 70 | + } |
|
| 71 | + |
|
| 72 | + if (!empty($this->argument->options['validate_argument_node_access'])) { |
|
| 73 | + if (!node_access('view', $node)) { |
|
| 69 | 74 | return FALSE; |
| 70 | 75 | } |
| 76 | + } |
|
| 71 | 77 | |
| 72 | - if (!empty($this->argument->options['validate_argument_node_access'])) { |
|
| 73 | - if (!node_access('view', $node)) { |
|
| 74 | - return FALSE; |
|
| 75 | - } |
|
| 76 | - } |
|
| 78 | + // Save the title() handlers some work. |
|
| 79 | + $this->argument->validated_title = check_plain($node->title); |
|
| 77 | 80 | |
| 78 | - // Save the title() handlers some work. |
|
| 79 | - $this->argument->validated_title = check_plain($node->title); |
|
| 81 | + if (empty($types)) { |
|
| 82 | + return TRUE; |
|
| 83 | + } |
|
| 80 | 84 | |
| 81 | - if (empty($types)) { |
|
| 82 | - return TRUE; |
|
| 83 | - } |
|
| 85 | + return isset($types[$node->type]); |
|
| 86 | + break; |
|
| 87 | + case 'nids': |
|
| 88 | + $nids = new stdClass(); |
|
| 89 | + $nids->value = array($argument); |
|
| 90 | + $nids = views_break_phrase($argument, $nids); |
|
| 91 | + if ($nids->value == -1) { |
|
| 92 | + return FALSE; |
|
| 93 | + } |
|
| 84 | 94 | |
| 85 | - return isset($types[$node->type]); |
|
| 86 | - break; |
|
| 87 | - case 'nids': |
|
| 88 | - $nids = new stdClass(); |
|
| 89 | - $nids->value = array($argument); |
|
| 90 | - $nids = views_break_phrase($argument, $nids); |
|
| 91 | - if ($nids->value == -1) { |
|
| 92 | - return FALSE; |
|
| 93 | - } |
|
| 95 | + $placeholders = implode(', ', array_fill(0, sizeof($nids->value), '%d')); |
|
| 94 | 96 | |
| 95 | - $placeholders = implode(', ', array_fill(0, sizeof($nids->value), '%d')); |
|
| 97 | + $test = drupal_map_assoc($nids->value); |
|
| 98 | + $titles = array(); |
|
| 96 | 99 | |
| 97 | - $test = drupal_map_assoc($nids->value); |
|
| 98 | - $titles = array(); |
|
| 100 | + $result = db_query("SELECT * FROM {node} WHERE nid IN ($placeholders)", $nids->value); |
|
| 101 | + while ($node = db_fetch_object($result)) { |
|
| 102 | + if ($types && empty($types[$node->type])) { |
|
| 103 | + return FALSE; |
|
| 104 | + } |
|
| 99 | 105 | |
| 100 | - $result = db_query("SELECT * FROM {node} WHERE nid IN ($placeholders)", $nids->value); |
|
| 101 | - while ($node = db_fetch_object($result)) { |
|
| 102 | - if ($types && empty($types[$node->type])) { |
|
| 106 | + if (!empty($this->argument->options['validate_argument_node_access'])) { |
|
| 107 | + if (!node_access('view', $node)) { |
|
| 103 | 108 | return FALSE; |
| 104 | 109 | } |
| 105 | - |
|
| 106 | - if (!empty($this->argument->options['validate_argument_node_access'])) { |
|
| 107 | - if (!node_access('view', $node)) { |
|
| 108 | - return FALSE; |
|
| 109 | - } |
|
| 110 | - } |
|
| 111 | - |
|
| 112 | - $titles[] = check_plain($node->title); |
|
| 113 | - unset($test[$node->nid]); |
|
| 114 | 110 | } |
| 115 | 111 | |
| 116 | - $this->argument->validated_title = implode($nids->operator == 'or' ? ' + ' : ', ', $titles); |
|
| 117 | - // If this is not empty, we did not find a nid. |
|
| 118 | - return empty($test); |
|
| 112 | + $titles[] = check_plain($node->title); |
|
| 113 | + unset($test[$node->nid]); |
|
| 114 | + } |
|
| 115 | + |
|
| 116 | + $this->argument->validated_title = implode($nids->operator == 'or' ? ' + ' : ', ', $titles); |
|
| 117 | + // If this is not empty, we did not find a nid. |
|
| 118 | + return empty($test); |
|
| 119 | 119 | } |
| 120 | 120 | } |
| 121 | 121 | } |
@@ -121,18 +121,18 @@ |
||
| 121 | 121 | |
| 122 | 122 | // Prepare the item description |
| 123 | 123 | switch ($item_length) { |
| 124 | - case 'fulltext': |
|
| 125 | - $item->description = $node->body; |
|
| 126 | - break; |
|
| 127 | - case 'teaser': |
|
| 128 | - $item->description = $node->teaser; |
|
| 129 | - if (!empty($item->readmore)) { |
|
| 130 | - $item->description .= '<p>' . l(t('read more'), 'node/' . $item->nid, array('absolute' => TRUE, 'attributes' => array('target' => '_blank'))) . '</p>'; |
|
| 131 | - } |
|
| 132 | - break; |
|
| 133 | - case 'title': |
|
| 134 | - $item->description = ''; |
|
| 135 | - break; |
|
| 124 | + case 'fulltext': |
|
| 125 | + $item->description = $node->body; |
|
| 126 | + break; |
|
| 127 | + case 'teaser': |
|
| 128 | + $item->description = $node->teaser; |
|
| 129 | + if (!empty($item->readmore)) { |
|
| 130 | + $item->description .= '<p>' . l(t('read more'), 'node/' . $item->nid, array('absolute' => TRUE, 'attributes' => array('target' => '_blank'))) . '</p>'; |
|
| 131 | + } |
|
| 132 | + break; |
|
| 133 | + case 'title': |
|
| 134 | + $item->description = ''; |
|
| 135 | + break; |
|
| 136 | 136 | } |
| 137 | 137 | |
| 138 | 138 | return theme($this->theme_functions(), $this->view, $this->options, $item); |
@@ -14,116 +14,116 @@ |
||
| 14 | 14 | */ |
| 15 | 15 | function comment_views_convert($display, $type, &$view, $field, $id = NULL) { |
| 16 | 16 | switch ($type) { |
| 17 | - case 'field': |
|
| 18 | - switch ($field['tablename']) { |
|
| 19 | - case 'comments': |
|
| 20 | - switch ($field['field']) { |
|
| 21 | - case 'subject': |
|
| 22 | - if ($field['options'] = 'nolink') { |
|
| 23 | - $view->set_item_option($display, 'field', $id, 'link_to_comment', FALSE); |
|
| 24 | - } |
|
| 25 | - break; |
|
| 26 | - case 'cid': |
|
| 27 | - $view->set_item_option($display, 'field', $id, 'link_to_comment', FALSE); |
|
| 28 | - break; |
|
| 29 | - case 'timestamp': |
|
| 30 | - $handlers = array( |
|
| 31 | - 'views_handler_field_date_small' => 'small', |
|
| 32 | - 'views_handler_field_date' => 'medium', |
|
| 33 | - 'views_handler_field_date_large' => 'large', |
|
| 34 | - 'views_handler_field_date_custom' => 'custom', |
|
| 35 | - 'views_handler_field_since' => 'time ago', |
|
| 36 | - ); |
|
| 37 | - $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]); |
|
| 38 | - if (!empty($field['options'])) { |
|
| 39 | - $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']); |
|
| 40 | - } |
|
| 41 | - break; |
|
| 42 | - case 'add': |
|
| 43 | - $view->set_item_option($display, 'field', $id, 'field', 'replyto_comment'); |
|
| 44 | - break; |
|
| 45 | - } |
|
| 46 | - break; |
|
| 47 | - case 'node_comment_statistics': |
|
| 48 | - switch ($field['field']) { |
|
| 49 | - case 'last_comment_timestamp': |
|
| 50 | - $handlers = array( |
|
| 51 | - 'views_handler_field_date_small' => 'small', |
|
| 52 | - 'views_handler_field_date' => 'medium', |
|
| 53 | - 'views_handler_field_date_large' => 'large', |
|
| 54 | - 'views_handler_field_date_custom' => 'custom', |
|
| 55 | - 'views_handler_field_since' => 'time ago', |
|
| 56 | - ); |
|
| 57 | - $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]); |
|
| 58 | - if (!empty($field['options'])) { |
|
| 59 | - $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']); |
|
| 60 | - } |
|
| 61 | - break; |
|
| 62 | - case 'last_changed': |
|
| 63 | - $handlers = array( |
|
| 64 | - 'views_handler_field_date_small' => 'small', |
|
| 65 | - 'views_handler_field_date' => 'medium', |
|
| 66 | - 'views_handler_field_date_large' => 'large', |
|
| 67 | - 'views_handler_field_date_custom' => 'custom', |
|
| 68 | - 'views_handler_field_since' => 'time ago', |
|
| 69 | - ); |
|
| 70 | - $item = $view->get_item($display, 'field', $id); |
|
| 71 | - $item['date_format'] = $handlers[$field['handler']]; |
|
| 72 | - if (!empty($field['options'])) { |
|
| 73 | - $item['custom_date_format'] = $field['options']; |
|
| 74 | - } |
|
| 75 | - $item['field'] = 'last_updated'; |
|
| 76 | - $view->set_item($display, 'field', $id, $item); |
|
| 77 | - break; |
|
| 78 | - } |
|
| 79 | - break; |
|
| 17 | + case 'field': |
|
| 18 | + switch ($field['tablename']) { |
|
| 19 | + case 'comments': |
|
| 20 | + switch ($field['field']) { |
|
| 21 | + case 'subject': |
|
| 22 | + if ($field['options'] = 'nolink') { |
|
| 23 | + $view->set_item_option($display, 'field', $id, 'link_to_comment', FALSE); |
|
| 24 | + } |
|
| 25 | + break; |
|
| 26 | + case 'cid': |
|
| 27 | + $view->set_item_option($display, 'field', $id, 'link_to_comment', FALSE); |
|
| 28 | + break; |
|
| 29 | + case 'timestamp': |
|
| 30 | + $handlers = array( |
|
| 31 | + 'views_handler_field_date_small' => 'small', |
|
| 32 | + 'views_handler_field_date' => 'medium', |
|
| 33 | + 'views_handler_field_date_large' => 'large', |
|
| 34 | + 'views_handler_field_date_custom' => 'custom', |
|
| 35 | + 'views_handler_field_since' => 'time ago', |
|
| 36 | + ); |
|
| 37 | + $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]); |
|
| 38 | + if (!empty($field['options'])) { |
|
| 39 | + $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']); |
|
| 40 | + } |
|
| 41 | + break; |
|
| 42 | + case 'add': |
|
| 43 | + $view->set_item_option($display, 'field', $id, 'field', 'replyto_comment'); |
|
| 44 | + break; |
|
| 45 | + } |
|
| 46 | + break; |
|
| 47 | + case 'node_comment_statistics': |
|
| 48 | + switch ($field['field']) { |
|
| 49 | + case 'last_comment_timestamp': |
|
| 50 | + $handlers = array( |
|
| 51 | + 'views_handler_field_date_small' => 'small', |
|
| 52 | + 'views_handler_field_date' => 'medium', |
|
| 53 | + 'views_handler_field_date_large' => 'large', |
|
| 54 | + 'views_handler_field_date_custom' => 'custom', |
|
| 55 | + 'views_handler_field_since' => 'time ago', |
|
| 56 | + ); |
|
| 57 | + $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]); |
|
| 58 | + if (!empty($field['options'])) { |
|
| 59 | + $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']); |
|
| 80 | 60 | } |
| 81 | 61 | break; |
| 82 | - case 'filter': |
|
| 83 | - switch ($field['tablename']) { |
|
| 84 | - case 'node_comment_statistics': |
|
| 85 | - switch ($field['field']) { |
|
| 86 | - case 'comment_count': |
|
| 87 | - $view->set_item_option($display, 'filter', $id, 'operator', $field['operator']); |
|
| 88 | - break; |
|
| 89 | - case 'last_changed': |
|
| 90 | - $field['field'] = 'last_updated'; |
|
| 91 | - case 'last_comment_timestamp': |
|
| 92 | - $item = $view->get_item($display, 'filter', $id); |
|
| 93 | - $item['operator'] = $field['operator']; |
|
| 94 | - $item['value'] = array( |
|
| 95 | - 'type' => $field['value'] == 'now' ? 'offset' : 'date', |
|
| 96 | - 'value' => $field['value'], |
|
| 97 | - ); |
|
| 98 | - if (!empty($field['options'])) { |
|
| 99 | - $item['value']['value'] = intval($field['options']) .' seconds'; |
|
| 100 | - } |
|
| 101 | - $item['field'] = $field['field']; |
|
| 102 | - $view->set_item($display, 'filter', $id, $item); |
|
| 103 | - break; |
|
| 104 | - } |
|
| 105 | - break; |
|
| 62 | + case 'last_changed': |
|
| 63 | + $handlers = array( |
|
| 64 | + 'views_handler_field_date_small' => 'small', |
|
| 65 | + 'views_handler_field_date' => 'medium', |
|
| 66 | + 'views_handler_field_date_large' => 'large', |
|
| 67 | + 'views_handler_field_date_custom' => 'custom', |
|
| 68 | + 'views_handler_field_since' => 'time ago', |
|
| 69 | + ); |
|
| 70 | + $item = $view->get_item($display, 'field', $id); |
|
| 71 | + $item['date_format'] = $handlers[$field['handler']]; |
|
| 72 | + if (!empty($field['options'])) { |
|
| 73 | + $item['custom_date_format'] = $field['options']; |
|
| 106 | 74 | } |
| 75 | + $item['field'] = 'last_updated'; |
|
| 76 | + $view->set_item($display, 'field', $id, $item); |
|
| 107 | 77 | break; |
| 108 | - case 'sort': |
|
| 109 | - switch ($field['tablename']) { |
|
| 110 | - case 'comments': |
|
| 111 | - switch ($field['field']) { |
|
| 112 | - case 'timestamp': |
|
| 113 | - $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options']; |
|
| 114 | - $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']); |
|
| 115 | - break; |
|
| 116 | - } |
|
| 78 | + } |
|
| 117 | 79 | break; |
| 118 | - case 'node_comment_statistics': |
|
| 119 | - switch ($field['field']) { |
|
| 120 | - case 'last_changed': |
|
| 121 | - $view->set_item_option($display, 'sort', $id, 'field', 'last_updated'); |
|
| 122 | - case 'last_comment_timestamp': |
|
| 123 | - $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options']; |
|
| 124 | - $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']); |
|
| 125 | - break; |
|
| 126 | - } |
|
| 80 | + } |
|
| 81 | + break; |
|
| 82 | + case 'filter': |
|
| 83 | + switch ($field['tablename']) { |
|
| 84 | + case 'node_comment_statistics': |
|
| 85 | + switch ($field['field']) { |
|
| 86 | + case 'comment_count': |
|
| 87 | + $view->set_item_option($display, 'filter', $id, 'operator', $field['operator']); |
|
| 88 | + break; |
|
| 89 | + case 'last_changed': |
|
| 90 | + $field['field'] = 'last_updated'; |
|
| 91 | + case 'last_comment_timestamp': |
|
| 92 | + $item = $view->get_item($display, 'filter', $id); |
|
| 93 | + $item['operator'] = $field['operator']; |
|
| 94 | + $item['value'] = array( |
|
| 95 | + 'type' => $field['value'] == 'now' ? 'offset' : 'date', |
|
| 96 | + 'value' => $field['value'], |
|
| 97 | + ); |
|
| 98 | + if (!empty($field['options'])) { |
|
| 99 | + $item['value']['value'] = intval($field['options']) .' seconds'; |
|
| 100 | + } |
|
| 101 | + $item['field'] = $field['field']; |
|
| 102 | + $view->set_item($display, 'filter', $id, $item); |
|
| 103 | + break; |
|
| 104 | + } |
|
| 105 | + break; |
|
| 106 | + } |
|
| 107 | + break; |
|
| 108 | + case 'sort': |
|
| 109 | + switch ($field['tablename']) { |
|
| 110 | + case 'comments': |
|
| 111 | + switch ($field['field']) { |
|
| 112 | + case 'timestamp': |
|
| 113 | + $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options']; |
|
| 114 | + $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']); |
|
| 115 | + break; |
|
| 116 | + } |
|
| 117 | + break; |
|
| 118 | + case 'node_comment_statistics': |
|
| 119 | + switch ($field['field']) { |
|
| 120 | + case 'last_changed': |
|
| 121 | + $view->set_item_option($display, 'sort', $id, 'field', 'last_updated'); |
|
| 122 | + case 'last_comment_timestamp': |
|
| 123 | + $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options']; |
|
| 124 | + $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']); |
|
| 125 | + break; |
|
| 126 | + } |
|
| 127 | 127 | break; |
| 128 | 128 | } |
| 129 | 129 | break; |
@@ -14,37 +14,37 @@ |
||
| 14 | 14 | */ |
| 15 | 15 | function statistics_views_convert($display, $type, &$view, $field, $id = NULL) { |
| 16 | 16 | switch ($type) { |
| 17 | - case 'field': |
|
| 18 | - switch ($field['tablename']) { |
|
| 19 | - case 'node_counter': |
|
| 20 | - switch ($field['field']) { |
|
| 21 | - case 'timestamp': |
|
| 22 | - $handlers = array( |
|
| 23 | - 'views_handler_field_date_small' => 'small', |
|
| 24 | - 'views_handler_field_date' => 'medium', |
|
| 25 | - 'views_handler_field_date_large' => 'large', |
|
| 26 | - 'views_handler_field_date_custom' => 'custom', |
|
| 27 | - 'views_handler_field_since' => 'time ago', |
|
| 28 | - ); |
|
| 29 | - $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]); |
|
| 30 | - if (!empty($field['options'])) { |
|
| 31 | - $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']); |
|
| 32 | - } |
|
| 33 | - break; |
|
| 34 | - } |
|
| 35 | - break; |
|
| 17 | + case 'field': |
|
| 18 | + switch ($field['tablename']) { |
|
| 19 | + case 'node_counter': |
|
| 20 | + switch ($field['field']) { |
|
| 21 | + case 'timestamp': |
|
| 22 | + $handlers = array( |
|
| 23 | + 'views_handler_field_date_small' => 'small', |
|
| 24 | + 'views_handler_field_date' => 'medium', |
|
| 25 | + 'views_handler_field_date_large' => 'large', |
|
| 26 | + 'views_handler_field_date_custom' => 'custom', |
|
| 27 | + 'views_handler_field_since' => 'time ago', |
|
| 28 | + ); |
|
| 29 | + $view->set_item_option($display, 'field', $id, 'date_format', $handlers[$field['handler']]); |
|
| 30 | + if (!empty($field['options'])) { |
|
| 31 | + $view->set_item_option($display, 'field', $id, 'custom_date_format', $field['options']); |
|
| 32 | + } |
|
| 33 | + break; |
|
| 34 | + } |
|
| 35 | + break; |
|
| 36 | 36 | } |
| 37 | 37 | break; |
| 38 | - case 'sort': |
|
| 39 | - switch ($field['tablename']) { |
|
| 40 | - case 'node_counter': |
|
| 41 | - switch ($field['field']) { |
|
| 42 | - case 'timestamp': |
|
| 43 | - $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options']; |
|
| 44 | - $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']); |
|
| 45 | - break; |
|
| 46 | - } |
|
| 47 | - break; |
|
| 38 | + case 'sort': |
|
| 39 | + switch ($field['tablename']) { |
|
| 40 | + case 'node_counter': |
|
| 41 | + switch ($field['field']) { |
|
| 42 | + case 'timestamp': |
|
| 43 | + $field['options'] = $field['options'] == 'normal' ? 'second' : $field['options']; |
|
| 44 | + $view->set_item_option($display, 'sort', $id, 'granularity', $field['options']); |
|
| 45 | + break; |
|
| 46 | + } |
|
| 47 | + break; |
|
| 48 | 48 | } |
| 49 | 49 | break; |
| 50 | 50 | } |
@@ -101,116 +101,116 @@ |
||
| 101 | 101 | |
| 102 | 102 | // Add fields specific to the profile type. |
| 103 | 103 | switch ($field->type) { |
| 104 | - case 'textfield': |
|
| 105 | - $data += array( |
|
| 106 | - 'help' => t('Profile textfield'), |
|
| 107 | - 'field' => array( |
|
| 108 | - 'handler' => 'views_handler_field_user', |
|
| 109 | - 'click sortable' => TRUE, |
|
| 110 | - ), |
|
| 111 | - 'sort' => array( |
|
| 112 | - 'handler' => 'views_handler_sort', |
|
| 113 | - ), |
|
| 114 | - 'filter' => array( |
|
| 115 | - 'handler' => 'views_handler_filter_string', |
|
| 116 | - ), |
|
| 117 | - 'argument' => array( |
|
| 118 | - 'handler' => 'views_handler_argument_string', |
|
| 119 | - ), |
|
| 120 | - ); |
|
| 121 | - |
|
| 122 | - break; |
|
| 123 | - case 'textarea': |
|
| 124 | - $data += array( |
|
| 125 | - 'help' => t('Profile textarea'), |
|
| 126 | - 'field' => array( |
|
| 127 | - 'handler' => 'views_handler_field_markup', |
|
| 128 | - 'format' => FILTER_FORMAT_DEFAULT, |
|
| 129 | - ), |
|
| 130 | - 'sort' => array( |
|
| 131 | - 'handler' => 'views_handler_sort', |
|
| 132 | - ), |
|
| 133 | - 'filter' => array( |
|
| 134 | - 'handler' => 'views_handler_filter_string', |
|
| 135 | - ), |
|
| 136 | - ); |
|
| 137 | - |
|
| 138 | - break; |
|
| 139 | - case 'checkbox': |
|
| 140 | - $data += array( |
|
| 141 | - 'help' => t('Profile checkbox'), |
|
| 142 | - 'field' => array( |
|
| 143 | - 'handler' => 'views_handler_field_boolean', |
|
| 144 | - 'click sortable' => TRUE, |
|
| 145 | - ), |
|
| 146 | - 'sort' => array( |
|
| 147 | - 'handler' => 'views_handler_sort', |
|
| 148 | - ), |
|
| 149 | - 'filter' => array( |
|
| 150 | - 'handler' => 'views_handler_filter_boolean_operator', |
|
| 151 | - 'accept null' => TRUE, |
|
| 152 | - ), |
|
| 153 | - // @todo there ought to be a boolean argument handler |
|
| 154 | - ); |
|
| 155 | - |
|
| 156 | - break; |
|
| 157 | - case 'url': |
|
| 158 | - $data += array( |
|
| 159 | - 'help' => t('Profile URL'), |
|
| 160 | - 'field' => array( |
|
| 161 | - 'handler' => 'views_handler_field_url', |
|
| 162 | - 'click sortable' => TRUE, |
|
| 163 | - ), |
|
| 164 | - 'sort' => array( |
|
| 165 | - 'handler' => 'views_handler_sort', |
|
| 166 | - ), |
|
| 167 | - 'filter' => array( |
|
| 168 | - 'handler' => 'views_handler_filter_string', |
|
| 169 | - ), |
|
| 170 | - ); |
|
| 171 | - |
|
| 172 | - break; |
|
| 173 | - case 'selection': |
|
| 174 | - $data += array( |
|
| 175 | - 'help' => t('Profile selection'), |
|
| 176 | - 'field' => array( |
|
| 177 | - 'handler' => 'views_handler_field', |
|
| 178 | - 'click sortable' => TRUE, |
|
| 179 | - ), |
|
| 180 | - 'sort' => array( |
|
| 181 | - 'handler' => 'views_handler_sort', |
|
| 182 | - ), |
|
| 183 | - 'filter' => array( |
|
| 184 | - 'handler' => 'views_handler_filter_profile_selection', |
|
| 185 | - 'fid' => $field->fid, |
|
| 186 | - ), |
|
| 187 | - 'argument' => array( |
|
| 188 | - 'handler' => 'views_handler_argument_string', |
|
| 189 | - ), |
|
| 190 | - ); |
|
| 191 | - |
|
| 192 | - break; |
|
| 193 | - case 'list': |
|
| 194 | - $data += array( |
|
| 195 | - 'help' => t('Profile freeform list %field-name.', array('%field-name' => $field->title)), |
|
| 196 | - 'field' => array( |
|
| 197 | - 'handler' => 'views_handler_field_profile_list', |
|
| 198 | - ), |
|
| 199 | - 'filter' => array( |
|
| 200 | - 'handler' => 'views_handler_filter_string', |
|
| 201 | - ), |
|
| 202 | - ); |
|
| 203 | - |
|
| 204 | - break; |
|
| 205 | - case 'date': |
|
| 206 | - $data += array( |
|
| 207 | - 'help' => t('Profile date %field-name.', array('%field-name' => $field->title)), |
|
| 208 | - 'field' => array( |
|
| 209 | - 'handler' => 'views_handler_field_profile_date', |
|
| 210 | - ), |
|
| 211 | - ); |
|
| 104 | + case 'textfield': |
|
| 105 | + $data += array( |
|
| 106 | + 'help' => t('Profile textfield'), |
|
| 107 | + 'field' => array( |
|
| 108 | + 'handler' => 'views_handler_field_user', |
|
| 109 | + 'click sortable' => TRUE, |
|
| 110 | + ), |
|
| 111 | + 'sort' => array( |
|
| 112 | + 'handler' => 'views_handler_sort', |
|
| 113 | + ), |
|
| 114 | + 'filter' => array( |
|
| 115 | + 'handler' => 'views_handler_filter_string', |
|
| 116 | + ), |
|
| 117 | + 'argument' => array( |
|
| 118 | + 'handler' => 'views_handler_argument_string', |
|
| 119 | + ), |
|
| 120 | + ); |
|
| 121 | + |
|
| 122 | + break; |
|
| 123 | + case 'textarea': |
|
| 124 | + $data += array( |
|
| 125 | + 'help' => t('Profile textarea'), |
|
| 126 | + 'field' => array( |
|
| 127 | + 'handler' => 'views_handler_field_markup', |
|
| 128 | + 'format' => FILTER_FORMAT_DEFAULT, |
|
| 129 | + ), |
|
| 130 | + 'sort' => array( |
|
| 131 | + 'handler' => 'views_handler_sort', |
|
| 132 | + ), |
|
| 133 | + 'filter' => array( |
|
| 134 | + 'handler' => 'views_handler_filter_string', |
|
| 135 | + ), |
|
| 136 | + ); |
|
| 137 | + |
|
| 138 | + break; |
|
| 139 | + case 'checkbox': |
|
| 140 | + $data += array( |
|
| 141 | + 'help' => t('Profile checkbox'), |
|
| 142 | + 'field' => array( |
|
| 143 | + 'handler' => 'views_handler_field_boolean', |
|
| 144 | + 'click sortable' => TRUE, |
|
| 145 | + ), |
|
| 146 | + 'sort' => array( |
|
| 147 | + 'handler' => 'views_handler_sort', |
|
| 148 | + ), |
|
| 149 | + 'filter' => array( |
|
| 150 | + 'handler' => 'views_handler_filter_boolean_operator', |
|
| 151 | + 'accept null' => TRUE, |
|
| 152 | + ), |
|
| 153 | + // @todo there ought to be a boolean argument handler |
|
| 154 | + ); |
|
| 155 | + |
|
| 156 | + break; |
|
| 157 | + case 'url': |
|
| 158 | + $data += array( |
|
| 159 | + 'help' => t('Profile URL'), |
|
| 160 | + 'field' => array( |
|
| 161 | + 'handler' => 'views_handler_field_url', |
|
| 162 | + 'click sortable' => TRUE, |
|
| 163 | + ), |
|
| 164 | + 'sort' => array( |
|
| 165 | + 'handler' => 'views_handler_sort', |
|
| 166 | + ), |
|
| 167 | + 'filter' => array( |
|
| 168 | + 'handler' => 'views_handler_filter_string', |
|
| 169 | + ), |
|
| 170 | + ); |
|
| 171 | + |
|
| 172 | + break; |
|
| 173 | + case 'selection': |
|
| 174 | + $data += array( |
|
| 175 | + 'help' => t('Profile selection'), |
|
| 176 | + 'field' => array( |
|
| 177 | + 'handler' => 'views_handler_field', |
|
| 178 | + 'click sortable' => TRUE, |
|
| 179 | + ), |
|
| 180 | + 'sort' => array( |
|
| 181 | + 'handler' => 'views_handler_sort', |
|
| 182 | + ), |
|
| 183 | + 'filter' => array( |
|
| 184 | + 'handler' => 'views_handler_filter_profile_selection', |
|
| 185 | + 'fid' => $field->fid, |
|
| 186 | + ), |
|
| 187 | + 'argument' => array( |
|
| 188 | + 'handler' => 'views_handler_argument_string', |
|
| 189 | + ), |
|
| 190 | + ); |
|
| 191 | + |
|
| 192 | + break; |
|
| 193 | + case 'list': |
|
| 194 | + $data += array( |
|
| 195 | + 'help' => t('Profile freeform list %field-name.', array('%field-name' => $field->title)), |
|
| 196 | + 'field' => array( |
|
| 197 | + 'handler' => 'views_handler_field_profile_list', |
|
| 198 | + ), |
|
| 199 | + 'filter' => array( |
|
| 200 | + 'handler' => 'views_handler_filter_string', |
|
| 201 | + ), |
|
| 202 | + ); |
|
| 203 | + |
|
| 204 | + break; |
|
| 205 | + case 'date': |
|
| 206 | + $data += array( |
|
| 207 | + 'help' => t('Profile date %field-name.', array('%field-name' => $field->title)), |
|
| 208 | + 'field' => array( |
|
| 209 | + 'handler' => 'views_handler_field_profile_date', |
|
| 210 | + ), |
|
| 211 | + ); |
|
| 212 | 212 | |
| 213 | - break; |
|
| 213 | + break; |
|
| 214 | 214 | } |
| 215 | 215 | |
| 216 | 216 | // @todo: add access control to hidden fields. |
@@ -14,89 +14,89 @@ |
||
| 14 | 14 | */ |
| 15 | 15 | function taxonomy_views_convert($display, $type, &$view, $field, $id = NULL) { |
| 16 | 16 | switch ($type) { |
| 17 | - case 'field': |
|
| 18 | - $matches = array(); |
|
| 19 | - if (preg_match('/term_node(_(\d+))?/', $field['tablename'], $matches)) { |
|
| 20 | - switch ($field['field']) { |
|
| 21 | - case 'name': |
|
| 22 | - $item = $view->get_item($display, 'field', $id); |
|
| 23 | - $item['table'] = 'term_node'; |
|
| 24 | - $item['field'] = 'tid'; |
|
| 25 | - if ($field['options'] != 'nolink') { |
|
| 26 | - $item['link_to_taxonomy'] = TRUE; |
|
| 27 | - } |
|
| 28 | - if (!empty($field['vocabulary'])) { |
|
| 29 | - $item['limit'] = TRUE; |
|
| 30 | - $item['vids'] = array($field['vocabulary']); |
|
| 31 | - } |
|
| 32 | - // The vocabulary ID might be embedded in the table name. |
|
| 33 | - elseif (!empty($matches[2])) { |
|
| 34 | - $item['limit'] = TRUE; |
|
| 35 | - $item['vids'] = array($matches[2]); |
|
| 36 | - } |
|
| 37 | - $view->set_item($display, 'field', $id, $item); |
|
| 38 | - break; |
|
| 39 | - } |
|
| 17 | + case 'field': |
|
| 18 | + $matches = array(); |
|
| 19 | + if (preg_match('/term_node(_(\d+))?/', $field['tablename'], $matches)) { |
|
| 20 | + switch ($field['field']) { |
|
| 21 | + case 'name': |
|
| 22 | + $item = $view->get_item($display, 'field', $id); |
|
| 23 | + $item['table'] = 'term_node'; |
|
| 24 | + $item['field'] = 'tid'; |
|
| 25 | + if ($field['options'] != 'nolink') { |
|
| 26 | + $item['link_to_taxonomy'] = TRUE; |
|
| 27 | + } |
|
| 28 | + if (!empty($field['vocabulary'])) { |
|
| 29 | + $item['limit'] = TRUE; |
|
| 30 | + $item['vids'] = array($field['vocabulary']); |
|
| 31 | + } |
|
| 32 | + // The vocabulary ID might be embedded in the table name. |
|
| 33 | + elseif (!empty($matches[2])) { |
|
| 34 | + $item['limit'] = TRUE; |
|
| 35 | + $item['vids'] = array($matches[2]); |
|
| 36 | + } |
|
| 37 | + $view->set_item($display, 'field', $id, $item); |
|
| 38 | + break; |
|
| 39 | + } |
|
| 40 | 40 | } |
| 41 | 41 | elseif ($field['tablename'] == 'term_data') { |
| 42 | 42 | switch ($field['field']) { |
| 43 | - case 'name': |
|
| 44 | - if ($field['field'] == 'views_handler_field_tid_link') { |
|
| 45 | - $view->set_item_option($display, 'field', $id, 'link_to_taxonomy', TRUE); |
|
| 46 | - } |
|
| 47 | - break; |
|
| 43 | + case 'name': |
|
| 44 | + if ($field['field'] == 'views_handler_field_tid_link') { |
|
| 45 | + $view->set_item_option($display, 'field', $id, 'link_to_taxonomy', TRUE); |
|
| 46 | + } |
|
| 47 | + break; |
|
| 48 | 48 | } |
| 49 | 49 | } |
| 50 | 50 | break; |
| 51 | - case 'filter': |
|
| 52 | - if ($field['tablename'] == 'term_node' || !strncmp($field['tablename'], 'term_node_', 10)) { |
|
| 53 | - switch ($field['field']) { |
|
| 54 | - case 'tid': |
|
| 55 | - $operators = array('AND' => 'and', 'OR' => 'or', 'NOR' => 'not'); |
|
| 56 | - $item = $view->get_item($display, 'filter', $id); |
|
| 57 | - if ($vid = (integer) substr($field['tablename'], 10)) { |
|
| 58 | - $item['table'] = 'term_node'; |
|
| 59 | - $item['vid'] = $vid; |
|
| 60 | - } |
|
| 61 | - else { |
|
| 62 | - $item['limit'] = FALSE; |
|
| 63 | - } |
|
| 64 | - $item['operator'] = $operators[$field['operator']]; |
|
| 65 | - $item['type'] = 'select'; |
|
| 66 | - $view->set_item($display, 'filter', $id, $item); |
|
| 67 | - break; |
|
| 68 | - } |
|
| 51 | + case 'filter': |
|
| 52 | + if ($field['tablename'] == 'term_node' || !strncmp($field['tablename'], 'term_node_', 10)) { |
|
| 53 | + switch ($field['field']) { |
|
| 54 | + case 'tid': |
|
| 55 | + $operators = array('AND' => 'and', 'OR' => 'or', 'NOR' => 'not'); |
|
| 56 | + $item = $view->get_item($display, 'filter', $id); |
|
| 57 | + if ($vid = (integer) substr($field['tablename'], 10)) { |
|
| 58 | + $item['table'] = 'term_node'; |
|
| 59 | + $item['vid'] = $vid; |
|
| 60 | + } |
|
| 61 | + else { |
|
| 62 | + $item['limit'] = FALSE; |
|
| 63 | + } |
|
| 64 | + $item['operator'] = $operators[$field['operator']]; |
|
| 65 | + $item['type'] = 'select'; |
|
| 66 | + $view->set_item($display, 'filter', $id, $item); |
|
| 67 | + break; |
|
| 68 | + } |
|
| 69 | 69 | } |
| 70 | 70 | elseif ($field['tablename'] == 'term_data') { |
| 71 | 71 | switch ($field['field']) { |
| 72 | - case 'vid': |
|
| 73 | - $operators = array('AND' => 'in', 'OR' => 'in', 'NOR' => 'not in'); |
|
| 74 | - $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]); |
|
| 75 | - break; |
|
| 72 | + case 'vid': |
|
| 73 | + $operators = array('AND' => 'in', 'OR' => 'in', 'NOR' => 'not in'); |
|
| 74 | + $view->set_item_option($display, 'filter', $id, 'operator', $operators[$field['operator']]); |
|
| 75 | + break; |
|
| 76 | 76 | } |
| 77 | 77 | } |
| 78 | 78 | break; |
| 79 | - case 'argument': |
|
| 80 | - $options = $field['argoptions']; |
|
| 81 | - switch ($field['type']) { |
|
| 82 | - case 'taxid': |
|
| 83 | - if (!empty($field['options'])) { |
|
| 84 | - $options['depth'] = $field['options']; |
|
| 85 | - } |
|
| 86 | - $options['break_phrase'] = TRUE; |
|
| 87 | - $view->add_item($display, 'argument', 'node', 'term_node_tid_depth', $options, $field['id']); |
|
| 88 | - break; |
|
| 89 | - case 'taxletter': |
|
| 90 | - if (!empty($field['options'])) { |
|
| 91 | - $options['glossary'] = TRUE; |
|
| 92 | - $options['limit'] = $field['options']; |
|
| 93 | - } |
|
| 94 | - $view->add_item($display, 'argument', 'term_data', 'name', $options, $field['id']); |
|
| 95 | - break; |
|
| 96 | - case 'vocid': |
|
| 97 | - $view->add_item($display, 'argument', 'vocabulary', 'vid', $options, $field['id']); |
|
| 98 | - break; |
|
| 99 | - } |
|
| 79 | + case 'argument': |
|
| 80 | + $options = $field['argoptions']; |
|
| 81 | + switch ($field['type']) { |
|
| 82 | + case 'taxid': |
|
| 83 | + if (!empty($field['options'])) { |
|
| 84 | + $options['depth'] = $field['options']; |
|
| 85 | + } |
|
| 86 | + $options['break_phrase'] = TRUE; |
|
| 87 | + $view->add_item($display, 'argument', 'node', 'term_node_tid_depth', $options, $field['id']); |
|
| 88 | + break; |
|
| 89 | + case 'taxletter': |
|
| 90 | + if (!empty($field['options'])) { |
|
| 91 | + $options['glossary'] = TRUE; |
|
| 92 | + $options['limit'] = $field['options']; |
|
| 93 | + } |
|
| 94 | + $view->add_item($display, 'argument', 'term_data', 'name', $options, $field['id']); |
|
| 95 | + break; |
|
| 96 | + case 'vocid': |
|
| 97 | + $view->add_item($display, 'argument', 'vocabulary', 'vid', $options, $field['id']); |
|
| 98 | + break; |
|
| 99 | + } |
|
| 100 | 100 | break; |
| 101 | 101 | } |
| 102 | 102 | } |