Subversion Repositories ezrating

[/] [trunk/] [extension/] [ezrating/] [autoloads/] [ezratingoperator.php] - Blame information for rev 6

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 1 cyberwolf
<?php
2
 
3
class eZRatingOperator
4
{
5
    function eZRatingOperator()
6
    {
7
        $this->Operators = array( 'ezrating_summary' );
8
    }
9
 
10 6 Cyberwolf
    function operatorList()
11 1 cyberwolf
    {
12
        return $this->Operators;
13
    }
14
 
15
    function namedParameterPerOperator()
16
    {
17
        return true;
18
    }
19
 
20
    function namedParameterList()
21
    {
22
        return array(
23
            'ezrating_summary' => array(
24
                'class_attribute_id' => array(
25
                    'type' => 'integer',
26
                    'required' => true ),
27
                'node_id' => array(
28
                    'type' => 'integer',
29
                    'required' => true )
30
            )
31
        );
32
    }
33
 
34 6 Cyberwolf
    function modify( $tpl, $operatorName, $operatorParameters, $rootNamespace, $currentNamespace, &$operatorValue, $namedParameters )
35 1 cyberwolf
    {
36
        switch ( $operatorName )
37
        {
38
            case 'ezrating_summary':
39
            {
40
                $classAttrID = $namedParameters['class_attribute_id'];
41
                $nodeID = $namedParameters['node_id'];
42
 
43 6 Cyberwolf
                $db = eZDB::instance();
44 1 cyberwolf
 
45 5 Cyberwolf
                $sql = "SELECT COUNT(a.data_int) AS reviewer_count, AVG(a.data_int) AS average_rating, MIN(a.data_int) AS min_rating, MAX(a.data_int) AS max_rating
46 1 cyberwolf
                        FROM ezcontentobject_attribute a, ezcontentclass_attribute ca, ezcontentobject o, ezcontentobject_tree n
47
                        WHERE n.contentobject_id=o.id
48
                          AND n.parent_node_id=$nodeID
49
                          AND ca.id=$classAttrID
50
                          AND ca.version=0
51
                          AND a.contentclassattribute_id=ca.id
52
                          AND a.contentobject_id=o.id
53
                          AND a.version=o.current_version
54
                          AND o.published >= ALL (
55
                            SELECT o1.published
56
                            FROM ezcontentobject_tree n1, ezcontentobject o1
57
                            WHERE n1.contentobject_id=o1.id
58
                              AND o1.owner_id=o.owner_id
59
                              AND o1.contentclass_id=ca.contentclass_id
60
                              AND n1.parent_node_id=$nodeID)";
61
 
62
                $results = $db->arrayQuery( $sql );
63
 
64
                if ( count( $results ) > 0 )
65
                {
66
                    $operatorValue = $results[0];
67
                }
68
 
69
            } break;
70
        }
71
    }
72
 
73
    var $Operators;
74
}
75
 
76 5 Cyberwolf
?>