]> CyberLeo.Net >> Repos - Github/YOURLS.git/blob - admin/install.php
1.3 RC1 massive commit
[Github/YOURLS.git] / admin / install.php
1 <?php\r
2 // Require Files\r
3 require_once( dirname(dirname(__FILE__)).'/includes/config.php' );\r
4 \r
5 // Variables\r
6 $error_msg = array();\r
7 $success_msg = array();\r
8 \r
9 // Create Table Query\r
10 $create_tables = array();\r
11 $create_tables[YOURLS_DB_TABLE_URL] = 'CREATE TABLE IF NOT EXISTS `'.YOURLS_DB_TABLE_URL.'` ('.\r
12                                                          '`id` BIGINT UNSIGNED NOT NULL AUTO_INCREMENT,'.\r
13                                                          '`url` VARCHAR(200) NOT NULL,'.\r
14                                                          '`timestamp` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,'.\r
15                                                          '`ip` VARCHAR(41) NOT NULL,'.\r
16                                                          '`clicks` INT(10) UNSIGNED NOT NULL,'.\r
17                                                          'PRIMARY KEY  (`id`)'.\r
18                                                         ') ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=1 ;';\r
19 $create_tables[YOURLS_DB_TABLE_NEXTDEC] = 'CREATE TABLE `'.YOURLS_DB_TABLE_NEXTDEC.'` ('.\r
20                                                                         '`next_id` BIGINT NOT NULL ,'.\r
21                                                                         'PRIMARY KEY (`next_id`)'.\r
22                                                                         ') ENGINE = MYISAM ;';\r
23 \r
24 // Insert Initial Records\r
25 $insert_queries = array();\r
26 $insert_queries[] = 'INSERT INTO '.YOURLS_DB_TABLE_NEXTDEC.' VALUES (1)';\r
27 \r
28 // Connect To Database\r
29 $db = yourls_db_connect();\r
30 \r
31 // Check Whether YOURLS Is Installed\r
32 $db->show_errors = false;\r
33 $is_installed = $db->get_var('SELECT next_id FROM '.YOURLS_DB_TABLE_NEXTDEC);\r
34 \r
35 \r
36 ## Install YOURLS\r
37 if ( isset($_REQUEST['install']) && !$is_installed ) {\r
38         $create_table_count = 0;\r
39         $insert_query_count = 0;\r
40         foreach($create_tables as $table_name => $table_query) {\r
41                 $db->query($table_query);\r
42                 $create_success = $db->query("SHOW TABLES LIKE '$table_name'");\r
43                 if($create_success) {\r
44                         $create_table_count++;\r
45                         $success_msg[] = "Table '$table_name' created."; \r
46                 } else {\r
47                         $error_msg[] = "Error creating table '$table_name'."; \r
48                 }\r
49         }\r
50         foreach($insert_queries as $insert_query) {\r
51                 $insert_success = $db->query($insert_query);\r
52                 if($insert_success) {\r
53                         $insert_query_count++;\r
54                         $success_msg[] = 'Query '.$insert_query_count.'/'.sizeof($insert_queries).' executed successfully.'; \r
55                 } else {\r
56                         $error_msg[] = 'Error executing '.$insert_query_count.'/'.sizeof($insert_queries).'.'; \r
57                 }\r
58         }\r
59         if(sizeof($create_tables) == $create_table_count && sizeof($insert_queries) == $insert_query_count) {\r
60                 $success_msg[] = 'YOURLS successfully installed.';\r
61         } else {\r
62                 $error_msg[] = "Error installing YOURLS."; \r
63         }\r
64 } else {\r
65         if( $is_installed != NULL ) {\r
66                 $error_msg[] = 'YOURLS has already been installed.';\r
67         }\r
68 }\r
69 \r
70 yourls_html_head( 'install' );\r
71 \r
72 ?>\r
73 <div id="login">\r
74         <form method="post" action="?"><?php // reset any QUERY parameters ?>\r
75                 <p>\r
76                         <img src="<?php echo YOURLS_SITE; ?>/images/yourls-logo.png" alt="YOURLS" title="YOURLS" />\r
77                 </p>\r
78                 <?php\r
79                         // Print out any error messages\r
80                         if(sizeof($error_msg) > 0) {\r
81                                 echo '<p class="error">';\r
82                                 foreach($error_msg as $error) {\r
83                                         echo $error.'<br />';\r
84                                 }\r
85                                 echo '</p>';\r
86                         }\r
87                         // Print out any success messages\r
88                         if(sizeof($success_msg) > 0) {\r
89                                 echo '<p class="success">';\r
90                                 foreach($success_msg as $success) {\r
91                                         echo $success.'<br />';\r
92                                 }\r
93                                 echo '</p>';\r
94                         }\r
95                         // Display install button\r
96                         if($is_installed == NULL && !isset($_REQUEST['install'])) {\r
97                                 echo '<p>&nbsp;</p><p style="text-align: center;"><input type="submit" name="install" value="Install YOURLS" class="button" /></p>';\r
98                         } else {\r
99                                 echo '<p>&nbsp;</p><p style="text-align: center;">&raquo; <a href="'.YOURLS_SITE.'/admin/" title="YOURS Administration Page">YOURS Administration Page</a></p>';\r
100                         }\r
101                 ?>\r
102         </form>\r
103 </div>\r
104 <?php yourls_html_footer(); ?>\r