0251 / 590 837 15
info@a-coding-project.de
;

Menüs im Admin-Bereich auflisten

Code & Blog Logo

Code & Blog Logo

Die Menüs unseres CMS haben im letzten Artikel Namen bekommen. Nun müssen wir sie nur noch im Admin-Bereich auflisten.

Dazu müssen wir als erstes noch Datensätze in die Tabelle cms_menu_names eintragen. Einen mit unseren Testmenüs und einen Zweiten, der bisher noch keine Einträge hat:

INSERT INTO `cms_menu_names` ( `id` , `name` )
VALUES (
'1', 'Testmenü'
), (
'2', 'Zweites Testmenü'
);


Nun basteln wir uns im PhpMyAdmin oder einen Ähnlichen Tool, eine SELECT-Abfrage, mit welcher wir ein paar Daten der Menüs bekommen.

Als erstes holen wir uns nur mal die Namen und IDs aus der Tabelle cms_menu_names:

SELECT id,name FROM `cms_menu_names`

Ich würde später gerne auch die Anzahl der Einträge anzeigen. Dies machen wir am besten über ein Subselect:

SELECT id, name, (
  SELECT COUNT( * )
  FROM cms_menu
  WHERE menuID = cms_menu_names.id
)count
FROM `cms_menu_names`

Jetzt haben wir schonmal den Select String, den müssen wir jetzt auch in das Script einbauen. Dies geschieht in der Klasse sys (Datei system/sys.php):

function getMenues(){
    $mysqlRes = mysql_query("SELECT id, name, (
                              SELECT COUNT( * ) 
                              FROM cms_menu
                              WHERE menuID = cms_menu_names.id
                             )count
                             FROM `cms_menu_names`");
    while($row = mysql_fetch_assoc($mysqlRes)){
      $res[] = $row;
    }
  return $res;
}

In der neuen Funktion geben wir ein zweidimensionales Array mit den jeweiligen Einträgen zurück. Diese lesen wir dann im Admin-Bereich wieder aus.

Zunächst müssen wir im Admin-Bereich die Klasse sys importieren. Hierzu fügen wir einfach den includes der Datei admin/index.php die sys-Datei hinzu:

<?PHP
  session_start();
  include("../system/dbconnect.php");
  include("../system/settings.php");
  include("../system/classes/user.php");
  include("../system/filterfilename.php");
  include("../system/sys.php");
?>

Zum Schluss geben wir das ganze noch in einer Tabelle aus. Diese kommt in die neue Datei admin/includes/menues.php:

<h1>Men&uuml;s</h1>
<table>
  <thead>
    <tr>
      <td><strong>ID</strong></td>
      <td><strong>Name</strong></td>
      <td><strong>Seiten</strong></td>
      <td><strong>Aktionen</strong></td>
    </tr>
  </thead>
  <tbody>
    <?PHP
      foreach(sys::getMenues() as $menue){
    ?>
    <tr>
      <td><?PHP echo $menue['id']; ?></td>
      <td><?PHP echo $menue['name']; ?></td>
      <td><?PHP echo $menue['count']; ?></td>
      <td>kommen sp&auml;ter 😉</td>
    </tr>
    <?PHP
      }
    ?>
  </tbody>
</table>

Die Aktionen werden demnächst noch hinzugefügt.

Dies ist ein Beitrag aus der Aktion Code & Blog, in der hier ein eigenes CMS erstellt wird.

Kommentare

Daniel Busch schrieb am 10.07.2009:

Das hier ist ja auch ein super Tutorial. Endlich mal eins bei dem ich, trotz meines Wissens welches ich beim Erstellen unserer Gildenseite gesammelt habe, gedanklich dahinter steige was wozu gebraucht wird. Respekt!!!!!!!! Noch bin ich Soldat (seit 9 Jahren System und Nutzerbetreuer als IT-Systemelektroniker)aber ich hoffe auf ein Studium im Fachgebiet Medieninformatik. Bis zum nächsten Mal Daniel PS: Schau mal auf www.kinder-des-schnaps.de vorbei

Stefan Wienströer schrieb am 10.07.2009:

Vielen Dank, geb mir Mühe. Werd mir die Seite mal ansehen.

Tobi schrieb am 23.09.2009:

kurze frage warum benutzt du hier die $dbpraefix nicht ?

Stefan Wienströer schrieb am 23.09.2009:

Kurze Antwort: Durchs Copy & Past von PhpMyAdmin Werd nen Bugfix-Beitrag darüber schreiben. Danke für den Tipp