Follow-up to bug #14365: Bug: Install Tool skin is sometimes wrong (thanks to Lars...
[Packages/TYPO3.CMS.git] / typo3 / install / index.php
1 <?php
2 /***************************************************************
3 * Copyright notice
4 *
5 * (c) 1999-2009 Kasper Skaarhoj (kasperYYYY@typo3.com)
6 * All rights reserved
7 *
8 * This script is part of the TYPO3 project. The TYPO3 project is
9 * free software; you can redistribute it and/or modify
10 * it under the terms of the GNU General Public License as published by
11 * the Free Software Foundation; either version 2 of the License, or
12 * (at your option) any later version.
13 *
14 * The GNU General Public License can be found at
15 * http://www.gnu.org/copyleft/gpl.html.
16 * A copy is found in the textfile GPL.txt and important notices to the license
17 * from the author is found in LICENSE.txt distributed with these scripts.
18 *
19 *
20 * This script is distributed in the hope that it will be useful,
21 * but WITHOUT ANY WARRANTY; without even the implied warranty of
22 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
23 * GNU General Public License for more details.
24 *
25 * This copyright notice MUST APPEAR in all copies of the script!
26 ***************************************************************/
27 /**
28 * Starter-script for install screen
29 *
30 * $Id$
31 *
32 * @author Kasper Skaarhoj <kasperYYYY@typo3.com>
33 * @package TYPO3
34 * @subpackage core
35 */
36
37
38
39 // **************************************************************************
40 // Insert some security here, if you don't trust the Install Tool Password:
41 // **************************************************************************
42
43 if (defined('E_DEPRECATED')) {
44 error_reporting(E_ALL ^ E_NOTICE ^ E_DEPRECATED);
45 } else {
46 error_reporting(E_ALL ^ E_NOTICE);
47 }
48
49 $PATH_thisScript = str_replace('//','/', str_replace('\\','/', (PHP_SAPI=='cgi'||PHP_SAPI=='isapi' ||PHP_SAPI=='cgi-fcgi')&&($_SERVER['ORIG_PATH_TRANSLATED']?$_SERVER['ORIG_PATH_TRANSLATED']:$_SERVER['PATH_TRANSLATED'])? ($_SERVER['ORIG_PATH_TRANSLATED']?$_SERVER['ORIG_PATH_TRANSLATED']:$_SERVER['PATH_TRANSLATED']):($_SERVER['ORIG_SCRIPT_FILENAME']?$_SERVER['ORIG_SCRIPT_FILENAME']:$_SERVER['SCRIPT_FILENAME'])));
50 $PATH_site = dirname(dirname(dirname($PATH_thisScript)));
51
52 // Only allow Install Tool access if the file "typo3conf/ENABLE_INSTALL_TOOL" is found
53 $enableInstallToolFile = $PATH_site . '/typo3conf/ENABLE_INSTALL_TOOL';
54
55 if (is_file($enableInstallToolFile) && (time() - filemtime($enableInstallToolFile) > 3600)) {
56 $content = file_get_contents($enableInstallToolFile);
57 $verifyString = 'KEEP_FILE';
58
59 if (trim($content) !== $verifyString) {
60 // Delete the file if it is older than 3600s (1 hour)
61 unlink($enableInstallToolFile);
62 }
63 }
64
65 // Change 1==2 to 1==1 if you want to lock the Install Tool regardless of the file ENABLE_INSTALL_TOOL
66 if (1==2 || !is_file($enableInstallToolFile)) {
67 // Include t3lib_div and t3lib_parsehtml for templating
68 require_once($PATH_site . '/t3lib/class.t3lib_div.php');
69 require_once($PATH_site . '/t3lib/class.t3lib_parsehtml.php');
70
71 // Define the stylesheet
72 $stylesheet = '<link rel="stylesheet" type="text/css" href="' .
73 '../stylesheets/install/install.css" />';
74 $javascript = '<script type="text/javascript" src="' .
75 '../contrib/prototype/prototype.js"></script>' . LF;
76 $javascript .= '<script type="text/javascript" src="' .
77 '../sysext/install/Resources/Public/Javascript/install.js"></script>';
78
79 // Get the template file
80 $template = @file_get_contents($PATH_site . '/typo3/templates/install.html');
81 // Define the markers content
82 $markers = array(
83 'styleSheet' => $stylesheet,
84 'javascript' => $javascript,
85 'title' => 'The install tool is locked',
86 'content' => '
87 <p>
88 Fix: Create a file named <strong>ENABLE_INSTALL_TOOL</strong>
89 and put it into the folder <strong>typo3conf/</strong>
90 <br />
91 This file may simply be empty.
92 </p>
93 <p>
94 For security reasons, it is highly recommended to rename or
95 delete the file after the operation is finished.
96 </p>
97 <p>
98 If the file is older than 1 hour TYPO3 has automatically deleted
99 it, so it needs to be created again.
100 </p>
101 '
102 );
103 // Fill the markers
104 $content = t3lib_parsehtml::substituteMarkerArray(
105 $template,
106 $markers,
107 '###|###',
108 1,
109 1
110 );
111 // Output the warning message and exit
112 header('Content-Type: text/html; charset=utf-8');
113 echo $content;
114 exit();
115 }
116
117
118
119 // *****************************************************************************
120 // Defining constants necessary for the install-script to invoke the installer
121 // *****************************************************************************
122 define('TYPO3_MOD_PATH', 'install/');
123 $BACK_PATH='../';
124
125 // Defining this variable and setting it non-false will invoke the install-screen called from init.php
126 define('TYPO3_enterInstallScript', '1');
127 require ('../init.php');
128
129 ?>