root/afridex/plugins/Flutter/RCCWP_Query.php @ 22

Revision 21, 2.0 kB (checked in by admin, 18 years ago)
Line 
1<?php
2
3define('RC_CWP_QUERY_PERFIX', 'x_');
4define('RC_CWP_QUERY_ORDERBY', 'customorderby');
5
6class RCCWP_Query
7{
8
9        function FilterPrepare(&$qs)
10        {
11                global $curr_qs_vars;
12                $curr_qs_vars = $qs->query_vars;
13                return $qs;
14        }
15
16
17       
18        function FilterCustomPostsWhere($where)
19        {
20                global $wpdb;
21                global $curr_qs_vars; 
22               
23                foreach ($curr_qs_vars as $queryVarKey => $queryVarValue){
24                        if (substr($queryVarKey, 0, strlen(RC_CWP_QUERY_PERFIX)) == RC_CWP_QUERY_PERFIX){       
25                                $customKey = substr($queryVarKey, strlen(RC_CWP_QUERY_PERFIX));
26                                $customVal = $queryVarValue;
27                                $where = $where . " AND 0 < (SELECT count($wpdb->postmeta.meta_value)
28                                                FROM $wpdb->postmeta
29                                                WHERE $wpdb->postmeta.post_id = $wpdb->posts.ID and $wpdb->postmeta.meta_key = '$customKey' and $wpdb->postmeta.meta_value = '$customVal') ";
30                        }
31                }
32
33                //Add orderby
34                if (get_query_var(RC_CWP_QUERY_ORDERBY)){
35                        $newOrderby = get_query_var(RC_CWP_QUERY_ORDERBY);
36                        $newOrderbyFieldName =  substr($newOrderby, strlen(RC_CWP_QUERY_PERFIX));
37                        $where = $where . " AND pmeta.meta_key = '$newOrderbyFieldName' ";
38                }
39               
40                return $where;
41
42       
43        }
44
45        function FilterCustomPostsOrderby($orderby)
46        {
47                global $wpdb;
48               
49                if (get_query_var(RC_CWP_QUERY_ORDERBY)){
50                        $newOrderby = get_query_var(RC_CWP_QUERY_ORDERBY);
51                        $newOrderbyFieldName =  substr($newOrderby, strlen(RC_CWP_QUERY_PERFIX));
52                        $orderby = "pmeta.meta_value ".get_query_var('order');
53                }
54               
55                return $orderby;
56
57        }
58
59        function FilterCustomPostsFields($fields) {
60                global $wpdb;
61                if (get_query_var(RC_CWP_QUERY_ORDERBY)){
62                        $newOrderby = get_query_var(RC_CWP_QUERY_ORDERBY);
63                        $newOrderbyFieldName =  substr($newOrderby, strlen(RC_CWP_QUERY_PERFIX));
64                        $fields = $fields. " , pmeta.meta_value ";
65                }
66               
67                return $fields;
68        }
69
70        function FilterCustomPostsJoin($join) {
71                global $wpdb;
72
73                if (get_query_var(RC_CWP_QUERY_ORDERBY)){
74                        $join = $join . " INNER JOIN $wpdb->postmeta pmeta ON $wpdb->posts.ID = pmeta.post_id "; 
75                       
76                }
77               
78                return $join;
79        }
80
81
82}
83?>
Note: See TracBrowser for help on using the browser.