Moin Zusammen,
ich mache gerade meine ersten Gehversuche mit dem bau von eigenen Plugins. Nachdem ich erst versucht habe das ganze über ein Template in meine Wordpress Umgebung einzubauen habe ich nun entschlossen doch ein eigenes Plugin zu bauen :).
PHP/HTML mäßig funktioniert der code. Sobald ich die Seite mehr oder weniger so als Plugin in Wordpress integriere und anschließend das Plugin starte funktioniert es immernoch jedoch zerstört es das ganze Theme. Das Ergebniss meines Codes steht dann sozusagen über dem Header.
Ich verstehe leider nicht wie ich es in ein bestehendes Theme integriere oder nur dort aufrufe?
<?php
/*
Plugin Name: DB Connect
Plugin URI:
Description: Plugin zur Kommunikation mit externer Datenbank
Version: 0.5
*/
?>
<?php
// error_reporting(E_ALL);
error_reporting(0);
require 'db.php';
print_r ($db->connect_error);
if ($db->connect_errno) {
die('Sorry - gerade gibt es ein Problem');
}
if (isset($_GET['aktion']) and $_GET['aktion']=='loeschen') {
if (isset($_GET['filme_id'])) {
$filme_id = (INT) $_GET['filme_id'];
if ($filme_id > 0)
{
$loeschen = $db->prepare("DELETE FROM filme WHERE filme_id=(?) LIMIT 1");
$loeschen->bind_param('i', $filme_id);
if ($loeschen->execute()) {
echo "<p>Datensatz wurde gelöscht</p>";
}
}
}
}
if (isset($_POST['aktion']) and $_POST['aktion']=='korrigieren') {
echo "<h1>korrigieren der Daten";
$upd_filme_id = "";
if (isset($_POST['filme_id'])) {
$upd_filme_id = (INT) trim($_POST['filme_id']);
}
$upd_filmname = "";
if (isset($_POST['filmname'])) {
$upd_filmname = trim($_POST['filmname']);
}
$upd_format = "";
if (isset($_POST['format'])) {
$upd_format = trim($_POST['format']);
}
$upd_trailer = "";
if (isset($_POST['trailer'])) {
$upd_trailer = trim($_POST['trailer']);
}
if ( $upd_filme_id != '' AND ($upd_filmname != '' or $upd_format != '' or $upd_trailer != '') )
{
// speichern
$update = $db->prepare("UPDATE filme SET filmname =?, format=?, trailer=? WHERE filme_id=? LIMIT 1");
$update->bind_param('sssi', $upd_filmname, $upd_format, $upd_trailer, $upd_filme_id);
if ($update->execute()) {
echo '<p class="feedbackerfolg">Datensatz wurde geändert</p>';
$modus_aendern = false;
}
}
}
if (isset($_POST['aktion']) and $_POST['aktion']=='speichern') {
$filmname = "";
if (isset($_POST['filmname'])) {
$filmname = trim($_POST['filmname']);
}
$format = "";
if (isset($_POST['format'])) {
$format = trim($_POST['format']);
}
$trailer = "";
if (isset($_POST['trailer'])) {
$trailer = trim($_POST['trailer']);
}
$erstellt = date("Y-m-d H:i:s");
if ( $filmname != '' or $format != '' or $trailer != '' )
{
// speichern
$einfuegen = $db->prepare("INSERT INTO filme (filmname, format, trailer, erstellt) VALUES (?, ?, ?, NOW())");
$einfuegen->bind_param('sss', $filmname, $format, $trailer);
if ($einfuegen->execute()) {
header('Location: index.php?aktion=feedbackgespeichert');
die();
echo "<h1>gespeichert</h1>";
}
}
}
if (isset($_GET['aktion']) and $_GET['aktion']=='feedbackgespeichert') {
echo '<p class="feedbackerfolg">Datensatz wurde gespeichert</p>';
}
$modus_aendern = false;
if (isset($_GET['aktion']) and $_GET['aktion']=='bearbeiten') {
$modus_aendern = true;
}
if ($modus_aendern != true)
{
$daten = array();
if ($erg = $db->query("SELECT * FROM filme")) {
if ($erg->num_rows) {
while($datensatz = $erg->fetch_object()) {
$daten[] = $datensatz;
}
$erg->free();
}
}
if (!count($daten)) {
echo "<p>Es liegen keine Daten vor :(</p>";
} else {
?>
<table>
<thead>
<tr>
<th>Nutzeraktion</th>
<th>filme_id</th>
<th>filmname</th>
<th>format</th>
<th>trailer</th>
<th>erstellt</th>
</thead>
<tbody>
<?php
foreach ($daten as $inhalt) {
?>
<tr>
<td>
<a href="?aktion=bearbeiten&filme_id=<?php echo $inhalt->filme_id; ?>">
bearbeiten</a>
<a href="?aktion=loeschen&filme_id=<?php echo $inhalt->filme_id; ?>">
Löschen</a>
</td>
<td><?php echo $inhalt->filme_id; ?></td>
<td><?php echo bereinigen($inhalt->filmname); ?></td>
<td><?php echo bereinigen($inhalt->format); ?></td>
<td><?php echo bereinigen($inhalt->trailer); ?></td>
<td><?php echo $inhalt->erstellt; ?></td>
</tr>
<?php
}
?>
</tbody>
</table>
<?php
}
}
if ( $modus_aendern == true and isset($_GET['filme_id']) ) {
$filme_id_einlesen = (INT) $_GET['filme_id'];
if ($filme_id_einlesen > 0)
{
$dseinlesen = $db->prepare("SELECT filme_id, filmname, format, trailer FROM filme WHERE filme_id=? ");
$dseinlesen->bind_param('i', $filme_id_einlesen);
$dseinlesen->bind_result($filme_id, $filmname, $format, $trailer);
$dseinlesen->execute();
while ($dseinlesen->fetch()) {
// echo "<li>";
// echo $filme_id . ' / '. $filmname .' '. $format.' '. $trailer;
}
}
}
function bereinigen($inhalt='') {
$inhalt = trim($inhalt);
$inhalt = htmlentities($inhalt, ENT_QUOTES, "UTF-8");
return($inhalt);
}
?>
<form action="index.php" method="post">
<label>filmname:
<input type="text" name="filmname" id="filmname" value="<?php echo $filmname; ?>">
</label>
<label>format:
<input type="text" name="format" id="format" value="<?php echo $format; ?>">
</label>
<label>trailer:
<input type="text" name="trailer" id="trailer" value="<?php echo $trailer; ?>">
</label>
<input type="hidden" name="aktion" value="speichern">
<?php
if ($modus_aendern != true) {
echo '<input type="hidden" name="aktion" value="speichern">';
echo '<input type="submit" value="speichern">';
echo '</form>';
}
else
{
echo '<input type="hidden" name="filme_id" value="'. $filme_id .'">';
echo '<input type="hidden" name="aktion" value="korrigieren">';
echo '<input type="submit" value="ändern">';
echo '</form>';
}
?>
</form>
Alles anzeigen
Letztendlich soll es mal eine Filmdatenbank werden in der ich Filme hinzufügen/bearbeiten und löschen kann.
Muss ich das ganze als Function speichern und dann an einer bestimmten Stelle aufrufen? Weil derzeit wenn ich das Plugin aktiviere steht es überall auf jeder Seite was etwas am Ziel vorbei ist :).
Grüße