Link zu phpMyAdmin prominent platzieren
bernd

bernd commited on 2011-01-04 10:32:18
Zeige 2 geänderte Dateien mit 30 Einfügungen und 9 Löschungen.


git-svn-id: https://svn.schokokeks.org/repos/tools/webinterface/trunk@1888 87cf0b9e-d624-0410-a070-f6ee81989793
... ...
@@ -127,7 +127,7 @@ if (isset($_POST['accesseditor']))
127 127
 if ($output_something)
128 128
 {
129 129
   title("MySQL-Datenbanken");
130
-  output('<p>Hier können Sie Ihre MySQL-Datenbanken verwalten. Die Einstellungen werden mit einer leichten Verzögerung (maximal 1 Minute) in das System übertragen. Bitte beachten Sie, dass neue Zugänge also nicht umgehend funktionieren.</p>
130
+  output('<p>Hier können Sie Ihre MySQL-Datenbanken verwalten. Die Einstellungen werden mit einer leichten Verzögerung (maximal 5 Minuten) in das System übertragen. Bitte beachten Sie, dass neue Zugänge also nicht umgehend funktionieren.</p>
131 131
   <p><strong>Hinweis:</strong> In dieser Matrix sehen Sie links die Datenbanken und oben die Benutzer, die Sie eingerichtet haben.
132 132
   In die leeren Eingabefelder können Sie den Namen eines neuen Benutzers bzw. einer neuen Datenbank eintragen. Sofern Sie noch keine Datenbank(en) oder Benutzer eingerichtet haben, erscheinen nur die Eingabefelder. Vergessen Sie nicht, nach der Erstellung eines neuen Benutzerkontos dem betreffenden Benutzer ein Passwort zu setzen (s. unten auf dieser Seite). Der Name von Datenbanken und Datenbank-Benutzern muss mit dem Namen des System-Benutzeraccounts übereinstimmen oder mit diesem und einem nachfolgenden Unterstrich beginnen. Z.B. kann der System-Benutzer <em>bernd</em> die MySQL-Accounts <em>bernd</em> und <em>bernd_2</em> erzeugen. Aufgrund einer Beschränkung des MySQL-Servers dürfen Benutzernamen allerdings zur Zeit nur 16 Zeichen lang sein.</p>');
133 133
 
... ...
@@ -148,9 +148,11 @@ if ($output_something)
148 148
 
149 149
   array_push($users, array('username' => "new", 'description' => NULL));
150 150
 
151
+  $servers = servers_for_databases();
152
+
151 153
   foreach($dbs as $db)
152 154
   {
153
-    $phpmyadmin = "https://mysql." . server_for_database($db['id']) . "/";
155
+    $phpmyadmin = "https://mysql.{$servers[$db['name']]}/";
154 156
     $desc = ($db['description'] ? $db['description'].' (Erstellt: '.$db['created'].')' : 'Erstellt: '.$db['created']);
155 157
     $form .= "<tr><td style=\"border: 0px; font-weight: bold; text-align: right;\"><span title=\"{$desc}\">{$db['name']}</span>&#160;".internal_link("", icon_delete("Datenbank »{$db['name']}« löschen"), "action=delete_db&db={$db['name']}")."&#160;<a href=\"".$phpmyadmin."\">".other_icon("database_go.png", "Datenbank-Verwaltung über phpMyAdmin")."</a></td>";
156 158
     foreach ($users as $user)
... ...
@@ -169,6 +171,23 @@ if ($output_something)
169 171
   
170 172
   output(html_form('mysql_databases', 'databases', '', $form));
171 173
 
174
+  $myservers = array();
175
+  foreach ($servers as $s) {
176
+    if (! in_array($s, $myservers)) {
177
+      $myservers[] = $s;
178
+    }
179
+  }
180
+
181
+  output("<h4>Verwaltung der Datenbanken (phpMyAdmin)</h4>
182
+  <p><img src=\"{$prefix}images/phpmyadmin.png\" style=\"width: 120px; height: 70px; float: right;\" />Zur Verwaltung der Datenbank-Inhalte stellen wir Ihnen eine stets aktualisierte Version von phpMyAdmin zur Verfügung.</p>");
183
+  if (count($myservers) == 1) {
184
+    output("<p><strong><a href=\"https://mysql.{$myservers[0]}/\">phpMyAdmin aufrufen</a></strong></p>");
185
+  }
186
+  else {
187
+    output("<p><em>Ihre Datenbanken befinden sich auf unterschiedlichen Servern, daher müssen Sie die jeweils passende Adresse für phpMyAdmin benutzen. Klicken Sie auf das Symbol ".other_icon("database_go.png", "Datenbank-Verwaltung über phpMyAdmin")." oben neben der jeweiligen Datenbank.</em></p>");
188
+  }
189
+
190
+
172 191
   $users = get_mysql_accounts($_SESSION['userinfo']['uid']);
173 192
 
174 193
 
... ...
@@ -29,15 +29,17 @@ function get_mysql_databases($UID)
29 29
 }
30 30
 
31 31
 
32
-function server_for_database($id)
32
+function servers_for_databases()
33 33
 {
34
-  $id = (int) $id;
34
+  $uid = (int) $_SESSION['userinfo']['uid'];
35 35
   
36
-  $result = db_query("SELECT hostname FROM misc.mysql_database AS db LEFT JOIN system.useraccounts AS u ON (db.useraccount=u.uid) LEFT JOIN system.servers ON (COALESCE(db.server, u.server) = servers.id) WHERE db.id={$id}");
37
-  if (mysql_num_rows($result) != 1)
38
-    system_failure("Fehler beim auslesen des zuständigen Servers");
39
-  $s = mysql_fetch_assoc($result);
40
-  return $s["hostname"];
36
+  $result = db_query("SELECT db.name AS db, hostname FROM misc.mysql_database AS db LEFT JOIN system.useraccounts AS u ON (db.useraccount=u.uid) LEFT JOIN system.servers ON (COALESCE(db.server, u.server) = servers.id) WHERE db.useraccount={$uid}");
37
+  $ret = array();
38
+  while ($line = mysql_fetch_assoc($result)) {
39
+    $ret[$line['db']] = $line['hostname'];
40
+  }
41
+  DEBUG($ret);
42
+  return $ret;
41 43
 }
42 44
 
43 45
 
44 46