Skip to content

Instantly share code, notes, and snippets.

@radarin
Last active January 13, 2019 18:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save radarin/8f5b3ef03a6c2ab27dd0af91ff405bba to your computer and use it in GitHub Desktop.
Save radarin/8f5b3ef03a6c2ab27dd0af91ff405bba to your computer and use it in GitHub Desktop.
Listet die Tabelle und stellt das Bearbeitungsformular
<?php
/* Inhalt listen (Admin) */
add_shortcode('rad-glossar-adminlist', 'radGlossarAdminlist');
function radGlossarAdminlist() {
global $wpdb;
$ausgabe = "";
// Formular wird nur Admin angezeigt
if(current_user_can('administrator')){
// Hier die URL eintragen, auf welcher die Seite verwendet wird
$url = "https://computer-for-dummies.ch/glossar/bearbeiten/";
$spacer= "https://computer-for-dummies.ch/static-img/blank.3x3.png";
// Formular wird angezeigt wenn in der URL die DSID vorhanden ist.
if((isset($_GET['id']) OR isset($_GET['del'])) AND !isset($_GET['delok']) ){
// Liest die Daten eines Datensatzes und füllt das Formular aus
$sql = $wpdb->get_row("SELECT * FROM ".$wpdb->prefix."rad_glossar WHERE glossar_ID = ".esc_sql($_GET['id'])."");
$ausgabe .= "<p class='glossartitel'>Eintrag bearbeiten</p>";
//
if(isset($_GET['del'])){
$ausgabe .= "<p class='glossarinfo-false'>Wollen Sie diesen Eintrag wirklich löschen?</p>";
}
$ausgabe .= "<form action='".$url."?save' METHOD='post'>";
$ausgabe .= "<p class='glossarfieldname' class='glossartitel'>Begriff</p>";
$ausgabe .= "<p><input type='text' name='glossar_term' value='".$sql->glossar_term."' maxlength='50' class='glossarfield'></p>";
$ausgabe .= "<p class='glossarfieldname'>Beschreibung</p>";
$ausgabe .= "<p><textarea name='glossar_description' wrap='virtual' class='glossararea'>".$sql->glossar_description."</textarea></p>";
// Der Speichern Button ändert die Beschriftung bei der Löschen-Nachfrage
if(!isset($_GET['del'])){$txtsave = "Speichern";} else {$txtsave = "Abbrechen";}
// Speichern Button
$ausgabe .= "<p><input type='Submit' value='".$txtsave."' class='glossarbutton'><img class='glossarspacer' src='".$spacer."'></p>";
$ausgabe .= "<input type='hidden' name='glossar_ID' value='".$sql->glossar_ID."'></p>";
$ausgabe .= "</form>";
// URL Variable für Löschen-Button
if(!isset($_GET['del'])){$del = "del";} else {$del = "delok";}
$ausgabe .= "<form action='".$url."?id=".$sql->glossar_ID."&".$del."' METHOD='post'>";
// Der Löschen-Button ändert die Beschriftung, wenn die URL Variable 'del' vorhanden ist.
if(!isset($_GET['del'])){$txtdel = "Löschen...";} else {$txtdel = "Definitiv löschen";}
// Löschen Button
$ausgabe .= "<p><input type='Submit' value='".$txtdel."' class='glossarbutton'></p>";
$ausgabe .= "</form><p><br />&nbsp;<br />&nbsp;<br /></p>";
}
}
// Speichert den DS wenn in der URL die Variable 'save' vorhanden ist, und das Feld 'term' nicht leer ist
if(isset($_GET['save']) AND $_POST['glossar_term'] != ""){
$result = $wpdb->update(
$wpdb->prefix.'rad_glossar',
array(
'glossar_term' => $_POST['glossar_term'],
'glossar_description' => $_POST['glossar_description']
),
array( 'glossar_ID' => $_POST['glossar_ID'] ),
array(
'%s', //term
'%s' //description
// %s steht für String (Text), %d für Integer (ganze Zahlen) und %f für Float (Gleitkommazahlen).
),
array( '%d' ) //Integer (ID)
);
// Bestätigung
if($result === false)
{
echo "<p class='glossarinfo-false'>Der Datensatz konnte nicht aktualisiert werden</p>";
} else {
//
if($result == 0){
echo "<p class='glossarinfo-false'>Am Datensatz wurden keine Änderungen vorgenommen</p>";
}else{
if($result > 1){
echo "<p class='glossarinfo-true'>".$result." Datensätze wurden aktualisiert</p>";
}else{
echo "<p class='glossarinfo-true'>".$result." Datensatz wurde aktualisiert</p>";
}
}
}
}
// Datensatz löschen, wenn URL Variable 'delok' vorhanden ist
if(isset($_GET['delok']) ){
// Tabellenname, löschen mittels ID
$table = $wpdb->prefix."rad_glossar";
$result = $wpdb-> delete ($table, Array ('glossar_ID' => $_GET['id']));
// Bestätigung
if($result == 0){
echo "<p class='glossarinfo-false'>Fehler beim Löschen des Eintrages</p>";
} else {
echo "<p class='glossarinfo-true'>Der Eintrag wurde gelöscht</p>";
}
}
// Alle Einträge listen (nur Begriff)
$sql = $wpdb->get_results("SELECT glossar_term, glossar_ID
FROM ".$wpdb->prefix."rad_glossar
ORDER BY glossar_term ASC");
$numrows = $wpdb->num_rows;
$ausgabe .= "<p class='glossartitel'>Auswahl zu bearbeitende Einträge</p>";
$ausgabe .= "<p class='glossarnumrows'>Das Glossar enthällt ".$numrows." Einträge.</p>";
$ausgabe .= "<p class='glossaredit'>";
foreach($sql as $result)
{
// Lädt die Liste erneut, durch die ID in der URL wird das Edit Formular angezeigt
$ausgabe .= "<a href='".$url."?id=".$result->glossar_ID."'>".$result->glossar_term."</a><br />";
}
$ausgabe .= "</p>";
return $ausgabe;
} // --- END Funktion
?>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment