- Fixed #16160: Call to undefined function ezi18n()
[tinyz:tinyz.git] / kernel / content / urlalias_wildcard.php
1 <?php
2 //
3 // Created on: <14-Nov-2007 11:27:10 dl>
4 //
5 // ## BEGIN COPYRIGHT, LICENSE AND WARRANTY NOTICE ##
6 // SOFTWARE NAME: eZ Publish
7 // SOFTWARE RELEASE: 4.1.x
8 // COPYRIGHT NOTICE: Copyright (C) 1999-2010 eZ Systems AS
9 // SOFTWARE LICENSE: GNU General Public License v2.0
10 // NOTICE: >
11 //   This program is free software; you can redistribute it and/or
12 //   modify it under the terms of version 2.0  of the GNU General
13 //   Public License as published by the Free Software Foundation.
14 //
15 //   This program is distributed in the hope that it will be useful,
16 //   but WITHOUT ANY WARRANTY; without even the implied warranty of
17 //   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18 //   GNU General Public License for more details.
19 //
20 //   You should have received a copy of version 2.0 of the GNU General
21 //   Public License along with this program; if not, write to the Free
22 //   Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
23 //   MA 02110-1301, USA.
24 //
25 //
26 // ## END COPYRIGHT, LICENSE AND WARRANTY NOTICE ##
27 //
28
29 /*! \file
30 */
31 require_once( 'kernel/common/template.php' );
32
33 $Module =& $Params['Module'];
34 $http = eZHTTPTool::instance();
35
36 $Offset = $Params['Offset'];
37 if ( $Module->hasActionParameter( 'Offset' ) )
38 {
39     $Offset = $Module->actionParameter( 'Offset' );
40 }
41
42 $tpl = templateInit();
43 $limit = 20;
44
45 $infoCode = 'no-errors'; // This will be modified if info/warning is given to user.
46 $infoData = array(); // Extra parameters can be added to this array
47 $wildcardSrcText = false;
48 $wildcardDstText = false;
49 $wildcardType = false;
50
51 if ( $Module->isCurrentAction( 'RemoveAllWildcards' ) )
52 {
53     eZURLWildcard::removeAll();
54
55     eZURLWildcard::expireCache();
56
57     $infoCode = "feedback-wildcard-removed-all";
58 }
59 else if ( $Module->isCurrentAction( 'RemoveWildcard' ) )
60 {
61     if ( $http->hasPostVariable( 'WildcardIDList' ) )
62     {
63         $wildcardIDs = $http->postVariable( 'WildcardIDList' );
64
65         eZURLWildcard::removeByIDs( $wildcardIDs );
66
67         eZURLWildcard::expireCache();
68
69         $infoCode = "feedback-wildcard-removed";
70     }
71 }
72 else if ( $Module->isCurrentAction( 'NewWildcard' ) )
73 {
74     $wildcardSrcText = trim( $Module->actionParameter( 'WildcardSourceText' ) );
75     $wildcardDstText = trim( $Module->actionParameter( 'WildcardDestinationText' ) );
76     $wildcardType = $http->hasPostVariable( 'WildcardType' ) && strlen( trim( $http->postVariable( 'WildcardType' ) ) ) > 0;
77
78     if ( strlen( $wildcardSrcText ) == 0 )
79     {
80         $infoCode = "error-no-wildcard-text";
81     }
82     else if ( strlen( $wildcardDstText ) == 0 )
83     {
84         $infoCode = "error-no-wildcard-destination-text";
85     }
86     else
87     {
88         $wildcard = eZURLWildcard::fetchBySourceURL( $wildcardSrcText, false );
89         if ( $wildcard )
90         {
91             $infoCode = "feedback-wildcard-exists";
92
93             $infoData['wildcard_src_url'] = $wildcardSrcText;
94             $infoData['wildcard_dst_url'] = $wildcard['destination_url'];
95         }
96         else
97         {
98             $row = array(
99                 'source_url' => $wildcardSrcText,
100                 'destination_url' => $wildcardDstText,
101                 'type' => $wildcardType ? eZURLWildcard::TYPE_FORWARD : eZURLWildcard::TYPE_DIRECT );
102
103             $wildcard = new eZURLWildcard( $row );
104             $wildcard->store();
105
106             eZURLWildcard::expireCache();
107
108             $infoData['wildcard_src_url'] = $wildcardSrcText;
109             $infoData['wildcard_dst_url'] = $wildcardDstText;
110
111             $wildcardSrcText = false;
112             $wildcardDstText = false;
113             $wildcardType = false;
114
115             $infoCode = "feedback-wildcard-created";
116         }
117     }
118 }
119
120 // User preferences
121 $limitList = array( array( 'id'    => 1,
122                            'value' => 10 ),
123                     array( 'id'    => 2,
124                            'value' => 25 ),
125                     array( 'id'    => 3,
126                            'value' => 50 ),
127                     array( 'id'    => 4,
128                            'value' => 100 ) );
129 $limitID = eZPreferences::value( 'admin_urlwildcard_list_limit' );
130 foreach ( $limitList as $limitEntry )
131 {
132     $limitIDs[]                     = $limitEntry['id'];
133     $limitValues[$limitEntry['id']] = $limitEntry['value'];
134 }
135 if ( !in_array( $limitID, $limitIDs ) )
136 {
137     $limitID = 2;
138 }
139
140 // Fetch wildcads
141 $wildcardsLimit = $limitValues[$limitID];
142 $wildcardsCount = eZURLWildcard::fetchListCount();
143 // check offset, it can be out of range if some wildcards were removed.
144 if ( $Offset >= $wildcardsCount )
145 {
146     $Offset = 0;
147 }
148 $wildcardList = eZURLWildcard::fetchList( $Offset, $wildcardsLimit );
149
150 $viewParameters = array( 'offset' => $Offset );
151
152
153 $path = array();
154 $path[] = array( 'url'  => false,
155                  'text' => ezpI18n::translate( 'kernel/content/urlalias_wildcard', 'URL wildcard aliases' ) );
156
157 $tpl->setVariable( 'wildcard_list', $wildcardList );
158 $tpl->setVariable( 'wildcards_limit', $wildcardsLimit );
159 $tpl->setVariable( 'wildcards_count', $wildcardsCount );
160 $tpl->setVariable( 'info_code', $infoCode );
161 $tpl->setVariable( 'info_data', $infoData );
162 $tpl->setVariable( 'wildcardSourceText', $wildcardSrcText );
163 $tpl->setVariable( 'wildcardDestinationText', $wildcardDstText );
164 $tpl->setVariable( 'wildcardType', $wildcardType );
165 $tpl->setVariable( 'limitList', $limitList );
166 $tpl->setVariable( 'limitID', $limitID );
167 $tpl->setVariable( 'view_parameters', $viewParameters );
168
169 $Result = array();
170 $Result['content'] = $tpl->fetch( 'design:content/urlalias_wildcard.tpl' );
171 $Result['path'] = $path;
172
173 ?>