/[drupal]/contributions/modules/relativity/relativity_views.inc
ViewVC logotype

Contents of /contributions/modules/relativity/relativity_views.inc

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


Revision 1.4 - (show annotations) (download) (as text)
Wed Apr 4 19:51:53 2007 UTC (2 years, 7 months ago) by darius
Branch: MAIN
CVS Tags: DRUPAL-5--2-4, DRUPAL-5--2-5, DRUPAL-5--2-2, DRUPAL-5--2-3, DRUPAL-5--2-0, DRUPAL-5--2-1, DRUPAL-4-7--2-2, HEAD
Branch point for: DRUPAL-5--2, DRUPAL-6--1, DRUPAL-6--3
Changes since 1.3: +2 -1 lines
File MIME type: text/x-php
parent title sortable (issue 130622)
1 <?php
2 // $Id: relativity_views.inc,v 1.3 2007/04/03 06:07:14 darius Exp $
3
4 function relativity_views_tables() {
5 $tables['relativity'] = array(
6 'name' => 'relativity',
7 'provider' => 'internal',
8 'join' => array('left' => array('table' => 'node',
9 'field' => 'nid'),
10 'right' => array('field' => 'nid')),
11 'filters' => array('parent_nid' => array('name' => t('Relativity: Parent Node'),
12 'list' => 'views_handler_filter_relativity_parent_zero',
13 'operator' => 'views_handler_operator_andor',
14 'help' => t('This allows you to filter nodes based on parent node ID and title.')),
15 ),
16 );
17
18 $tables['relativity_parent_node'] = array(
19 'name' => 'node',
20 'provider' => 'internal',
21 'join' => array(
22 'left' => array(
23 'table' => 'relativity',
24 'field' => 'parent_nid'
25 ),
26 'right' => array(
27 'field' => 'nid'
28 )
29 ),
30 'fields' => array(
31 'title' => array(
32 'name' => t('Relativity: Parent Title'),
33 'handler' => array(
34 'views_handler_field_relativity_parent_title' => t('As Link'),
35 'views_handler_field_relativity_parent_title_nl' => t('Without Link'),
36 ),
37 'sortable' => TRUE,
38 'addlfields' => array('nid'),
39 'help' => t('Display the title of the parent node'),
40 ),
41 ),
42 'sorts' => array(
43 'title' => array(
44 'name' => t('Relativity: Parent Title'),
45 'help' => t('Sort by the title of the parent node'),
46 ),
47 ),
48 );
49
50 return $tables;
51 }
52
53 function relativity_views_arguments() {
54 $arguments = array(
55 'relativity_parent' => array(
56 'name' => t("Relativity: Parent Node ID"),
57 'handler' => "views_handler_arg_relativity_parent",
58 ),
59 );
60 return $arguments;
61 }
62
63 function relativity_views_default_views() {
64
65 }
66
67 function views_handler_arg_relativity_parent($op, & $query, $argtype, $arg = '') {
68 switch ($op)
69 {
70 case 'summary' :
71 $query->ensure_table("relativity_parent_node");
72 $query->add_field("nid");
73 $query->add_field("parent_nid", "relativity");
74 $query->add_field("title", "relativity_parent_node");
75 $query->add_field("nid", "relativity_parent_node", "pnid");
76 $query->add_where("relativity_parent_node.nid IS NOT NULL");
77 $fieldinfo['field'] = "relativity_parent_node.title";
78 return $fieldinfo;
79 break;
80 case 'sort':
81 $query->add_orderby('relativity_parent_node', 'title', $argtype);
82 break;
83 case 'filter' :
84 $query->ensure_table("relativity");
85 $query->add_where("relativity.parent_nid = %d", $arg);
86 break;
87 case 'link' :
88 return l($query->title, "$arg/$query->pnid");
89 case 'title' :
90 if ($query)
91 {
92 $term = db_fetch_object(db_query("SELECT title FROM {node} WHERE nid = '%d'", $query));
93 return $term->title;
94 }
95 }
96 }
97
98 /*
99 * Format a field as a link to the parent node
100 */
101 function views_handler_field_relativity_parent_title($fieldinfo, $fielddata, $value, $data) {
102 return l($value, "node/$data->relativity_parent_node_nid");
103 }
104
105 function views_handler_field_relativity_parent_title_nl($fieldinfo, $fielddata, $value, $data) {
106 return check_plain($value);
107 }
108
109 function views_handler_filter_relativity_parent_zero() {
110 $parents = array();
111 $result = db_query("SELECT DISTINCT parent_nid FROM {relativity} ORDER BY parent_nid");
112 while ($obj = db_fetch_object($result)) {
113 $node = node_load($obj->parent_nid);
114 $parents[$obj->parent_nid] = "$obj->parent_nid. $node->title";
115 }
116 return $parents;
117 }

  ViewVC Help
Powered by ViewVC 1.1.2