- Fixed #16160: Call to undefined function ezi18n()
[tinyz:tinyz.git] / kernel / package / upload.php
1 <?php
2 //
3 // Created on: <11-Aug-2003 18:12:39 amos>
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 require_once( "kernel/common/template.php" );
30 $module = $Params['Module'];
31
32 if ( !eZPackage::canUsePolicyFunction( 'import' ) )
33     return $module->handleError( EZ_ERROR_KERNEL_ACCESS_DENIED, 'kernel' );
34
35 $package = false;
36 $installElements = false;
37 $errorList = array();
38
39 if ( $module->isCurrentAction( 'UploadPackage' ) )
40 {
41     if ( eZHTTPFile::canFetch( 'PackageBinaryFile' ) )
42     {
43         $file = eZHTTPFile::fetch( 'PackageBinaryFile' );
44         if ( $file )
45         {
46             $packageFilename = $file->attribute( 'filename' );
47
48             $package = eZPackage::import( $packageFilename, $packageName );
49             if ( $package instanceof eZPackage )
50             {
51                 if ( $package->attribute( 'install_type' ) != 'install' or
52                      !$package->attribute( 'can_install' ) )
53                 {
54                     return $module->redirectToView( 'view', array( 'full', $package->attribute( 'name' ) ) );
55                 }
56                 else if ( $package->attribute( 'install_type' ) == 'install' )
57                 {
58                     return $module->redirectToView( 'install', array( $package->attribute( 'name' ) ) );
59                 }
60             }
61             else if ( $package == eZPackage::STATUS_ALREADY_EXISTS )
62             {
63                 $errorList[] = array( 'description' => ezpI18n::translate( 'kernel/package', 'Package %packagename already exists, cannot import the package', false, array( '%packagename' => $packageName ) ) );
64             }
65             else if ( $package == eZPackage::STATUS_INVALID_NAME )
66             {
67                 $errorList[] = array( 'description' => ezpI18n::translate( 'kernel/package', 'The package name %packagename is invalid, cannot import the package', false, array( '%packagename' => $packageName ) ) );
68             }
69             else
70             {
71                 eZDebug::writeError( "Uploaded file is not an eZ Publish package" );
72             }
73         }
74         else
75         {
76             eZDebug::writeError( "Failed fetching upload package file" );
77         }
78     }
79     else
80     {
81         eZDebug::writeError( "No uploaded package file was found" );
82     }
83 }
84 else if ( $module->isCurrentAction( 'UploadCancel' ) )
85 {
86     $module->redirectToView( 'list' );
87     return;
88 }
89
90 $tpl = templateInit();
91
92 $tpl->setVariable( 'package', $package );
93 $tpl->setVariable( 'error_list', $errorList );
94
95 $Result = array();
96 $Result['content'] = $tpl->fetch( "design:package/upload.tpl" );
97 $Result['path'] = array( array( 'url' => 'package/list',
98                                 'text' => ezpI18n::translate( 'kernel/package', 'Packages' ) ),
99                          array( 'url' => false,
100                                 'text' => ezpI18n::translate( 'kernel/package', 'Upload' ) ) );
101
102 ?>