Subversion Repositories enhancedezbinaryfile

[/] [autoloads/] [templateparsexmloperator.php] - Blame information for rev 3

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 2 steven.bailey
<?
2
/*!
3
  \class   TemplateParseXMLOperator templateparsexmloperator.php
4
  \ingroup eZTemplateOperators
5
  \brief   Handles template operator parsexml
6 3 steven.bailey
  \version 2.0
7
  \date    20 April 2009
8 2 steven.bailey
  \author  Administrator User
9
 
10
  By using parsexml you can ...
11
 
12
  Example:
13
\code
14
{$value|parsexml|wash}
15
\endcode
16
*/
17
 
18
class TemplateParseXMLOperator
19
{
20
    /*!
21
      Constructor, does nothing by default.
22
    */
23
    function TemplateParseXMLOperator()
24
    {
25 3 steven.bailey
        $this->Operators = array( 'parsexml','filecheck' );
26 2 steven.bailey
    }
27
 
28
    /*!
29
     \return an array with the template operator name.
30
    */
31
    function operatorList()
32
    {
33
         return $this->Operators;
34
    }
35
    /*!
36
     \return true to tell the template engine that the parameter list exists per operator type,
37
             this is needed for operator classes that have multiple operators.
38
    */
39
    function namedParameterPerOperator()
40
    {
41
        return true;
42
    }
43
    /*!
44
     See eZTemplateOperator::namedParameterList
45
    */
46
    function namedParameterList()
47
    {
48
        return array( 'parsexml' => array( 'first_param' => array( 'type' => 'string',
49
                                                                    'required' => false,
50 3 steven.bailey
                                                                    'default' => 'default text' ) ));
51 2 steven.bailey
    }
52
    /*!
53
     Executes the PHP function for the operator cleanup and modifies \a $operatorValue.
54
    */
55 3 steven.bailey
    function modify( $tpl, $operatorName, $operatorParameters, $rootNamespace, $currentNamespace, &$operatorValue, $namedParameters )
56 2 steven.bailey
    {
57
        $firstParam = $namedParameters['first_param'];
58
        switch ( $operatorName )
59
        {
60
            case 'parsexml':
61
            {
62 3 steven.bailey
                if ( trim( $operatorValue ) != '' )
63
                {
64
                        $dom = new DOMDocument( '1.0', 'utf-8' );
65
                        if ($dom->loadXML( $operatorValue ))
66
                        {      
67
                                $FileAttributeValue = $dom->getElementsByTagName( $firstParam )->item(0)->textContent;
68
                                if( !$FileAttributeValue )
69
                                        $FileAttributeValue = $dom->getElementsByTagName( $firstParam )->item(0)->getAttribute('value');
70
                        }
71
                        $operatorValue=$FileAttributeValue;
72
                }
73 2 steven.bailey
            } break;
74 3 steven.bailey
            case 'filecheck':
75
            {
76
                if ( trim( $operatorValue ) != '' )
77
                {
78
                        $dom = new DOMDocument( '1.0', 'utf-8' );
79
                        if ($dom->loadXML( $operatorValue ))
80
                        {      
81
                                $FileAttributeValue = $dom->getElementsByTagName( 'Filename' )->item(0)->textContent;
82
                                if( !$FileAttributeValue )
83
                                        $FileAttributeValue = $dom->getElementsByTagName( 'Filename' )->item(0)->getAttribute('value');
84
                        }
85
                        if(file_exists(eZSys::wwwDir().$FileAttributeValue)){
86
                                $operatorValue=true;
87
                        } else {
88
                                $operatorValue=false;
89
                        }
90
                }
91
            } break;
92 2 steven.bailey
        }
93
    }
94
}
95 3 steven.bailey
?>