Option für User

Begonnen von Pac06, 16 Mai 2008, 20:16:28

⏪ vorheriges - nächstes ⏩

0 Mitglieder und 1 Gast betrachten dieses Thema.

Pac06

Hi Zusammen,

ich hab auf Basis des Siteupdate-Moduls ein Webkatalog-Verzeichniss erstellt. Da ich das Modul auch schon für andere Zwecke erfoglreich benutzt habe, ist mir das auch soweit ohne große Probleme gelungen...nur diesmal würde ich gerne eingie Erweiterungen integrieren, über deren Umsetzung ich mir noch nicht ganz im Klaren bin.

In dem Verzeichniss soll es Spalten für User geben, in welchen diese über eine Checkbox den Eintrag und die Aufnahme in einem Webkatalog speichern können. Später auch für mehrere Webseiten pro User, aber erstmal nur eine.

Mein Problem liegt nun an der Umsetzung dieser Funktion. Ich habe eine Tabelle für die Webkataloge und dachte mir die Infos der User in einer weiteren Tabelle abzulegen, in welcher UserID, Webkatalog-ID und Eintrag und Aufnahme angelegt werden. Die Einträge sollen nur gespeichert werden wenn die Checkbox aktivert wurde und wieder gelöscht werden wenn diese deaktivert wird. Ich frag mich dabei nun, wie ich in einer Funktion die Variabeln auslesen, aber auch ändern und übergeben zum speichern oder löschen kann.

function mainview()
{
global $bgcolor1, $bgcolor2, $bgcolor3, $bgcolor2, $textcolor1, $textcolor2, $module_name, $prefix;


include("header.php");

OpenTable();

// Der Rahmen und Header
echo "<table border=\"0\" cellpadding=\"2\" cellspacing=\"1\" width=\"100%\" bgcolor=\"$bgcolor2\" height=\"100%\"><tr><td bgcolor=\"$bgcolor1\" align=\"center\" height=\"100%\">";
echo "<table border=\"0\" cellpadding=\"1\" cellspacing=\"0\" width=\"100%\"><tr><td><img src=\"images/top/dot.gif\" width=\"14\" height=\"21\" border=\"0\"><img src=\"modules/" . $module_name . "/images/webkataloge.gif\" width=\"119\" height=\"21\" border=\"0\"></td><td background=\"images/top/dot2.gif\" width=\"100%\"></td></tr></table>";
echo "<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=\"100%\"><tr><td class=\"content\">Hier der Einführungstext</td><td>Hier das Menu</td></tr></table>";
echo "<br><br>";
echo "<p align=\"left\" class=\"modulmenutxt\">" . _WEBKATALOGE . "</p>";

// Tabellenkopf und spätere Sortierung
echo "<table border=\"0\" cellpadding=\"2\" cellspacing=\"1\" width=\"100%\"><tr><td class=\"modulmenu\" width=\"40%\">" . _WNAME . "</td><td class=\"modulmenu\" width=\"15%\">" . _WPR . "</td><td class=\"modulmenu\" width=\"15%\">" . _WBLP . "</td><td class=\"modulmenu\" width=\"30%\">" . _WTYP . "</td></tr></table>";

echo "<table border=\"0\" cellpadding=\"2\" cellspacing=\"1\" width=\"100%\">";
$result = sql_query("select wid, whttp, wname, wpr, wblp, wtyp  from " . $prefix . "_webkataloge order by wpr DESC");
while (list($wid, $whttp, $wname, $wpr, $wblp, $wtyp) = sql_fetch_row($result)) {
     if (MX_IS_USER) {
      echo "<tr><td class=\"modullist\" width=\"40%\" nowrap><a href=\"" . $whttp . "\" target=\"_blank\">" . $wname . "</a></td><td class=\"modullist\" width=\"15%\">" . $wpr . "</td><td class=\"modullist\" width=\"15%\">" . $wblp . "</td><td class=\"modullist\" width=\"15%\">" . $wtyp . "</td>\n";
      echo "<td class=\"modullist\"><input type=\"checkbox\" name=\"webkat_eintr\" value=\"1\" " . $webkat_eintr . "></td><td class=\"modullist\"><input type=\"checkbox\" name=\"webkat_list\" value=\"1\" " . $webkat_list . "></td></tr>\n";
     } else {
    echo "<tr><td class=\"modullist\" width=\"40%\" nowrap><a href=\"" . $whttp . "\" target=\"_blank\">" . $wname . "</a></td><td class=\"modullist\" width=\"15%\">" . $wpr . "</td><td class=\"modullist\" width=\"15%\">" . $wblp . "</td><td class=\"modullist\" width=\"15%\">" . $wtyp . "</td></tr>\n";
      }
    }
echo "</table><br><br>\n";

if (MX_IS_ADMIN) {
echo "</td></tr><tr><td align=\"right\"><a href=\"modules.php?name=" . $module_name . "&op=add_webkat\">" . _WEBKATHIN . "</a></td></tr></table>";
} else {
echo "</td></tr></table>";
}
CloseTable();

include("footer.php");
}


Mich würde jetzt eigentlich erstmal interessieren, ob sich das so auch realisieren lässt und ich auf dem richtigen Weg bin...würde halt jetzt noch user id festlegen und dann in der Schleife ne zweite Abfrage für die Checkboxen machen. Nur wie kann ich dann deren Werte wieder zum Speichern übergeben?

Danke für eure Mithilfe... :smile:
Geld verdienen im Internet
Bonusjaeger.de

using PragmaMX 0.1.9

Pac06

Hallo nochmal,

ich habe das SiteUpdate-Modul jetzt soweit angepasst und der Eintrag, das Ändern und Löschen von Webkatalogen funktioniert auch ohne Probleme. Für User werden in der while-Ausgabe-Schleife 2 Checkboxen pro Zeile eingefügt. Geht der User auf Speichern, sollen alle zeilen mit aktivierten checkboxen übergeben und gespeichert werden, so dass beim nächsten Besuch die Checkboxen aktiviert sind. Wird der Eintrag deaktiviert, sollen die entsprechenden Zeilen wieder gelöscht werden.

Ich habe hierfür zwei Funktionen. Einmal die Ausgabe mit Checkboxen für User:
...
echo '<form method="post" action="modules.php">
          <input type="hidden" name="name" value="' . $module_name . '">
                 <input type="hidden" name="op" value="user_add">';
         }
         echo '<table border="0" cellpadding="2" cellspacing="1" width="100%">';
         $result = sql_query("SELECT id, wname, whttp, wpr, wblp, wtyp, wblink FROM ${prefix}_webkataloge ORDER BY wpr DESC");
                 while (list($id, $wname, $whttp, $wpr, $wblp, $wtyp, $wblink) = sql_fetch_row($result)) {
                       if (MX_IS_USER){
                        $result2 = sql_query("select webkat_eintr, webkat_list FROM ${prefix}_webkataloge_userwk where uid='" . $uid."' AND id ='" . intval($id)."'");
                        list($webkat_eintr, $webkat_list) = sql_fetch_row($result2);
                          echo '<tr>
                                         <td class="modullist" width="90">'.$wblink.'</td>
                                         <td class="modullist" width="20%" nowrap><a href="'.$whttp.'" target="_blank">'.$wname.'</a></td>
                                         <td class="modullist" width="10%">'.$wpr.'</td>
                                         <td class="modullist" width="10%">'.$wblp.'</td>
                                         <td class="modullist" width="20%">'.$wtyp.'</td>
                                         <td class="modullist" width="10%">
                                         <input type="hidden" name="uid" value="'.$uid.'">
                                         <input type="hidden" name="id" value="'.$id.'">
                                         <input type="checkbox" name="webkat_eintr" value="'.$id.'"></td>
                                         <td class="modullist" width="10%"><input type="checkbox" name="webkat_list" value="'.$id.'"></td>
                                      </tr>';
                       } else {
                        echo'<tr>
                          <td class="modullist" width="40%" nowrap><a href="'.$whttp.'" target="_blank">Test</a></td>
                                 <td class="modullist" width="15%">'.$wpr.'</td>
                                 <td class="modullist" width="15%">'.$wblp.'</td>
                                 <td class="modullist" width="15%">'.$wtyp.'</td>
                         </tr>';
                       }
                 }

echo '<tr>
          <td align="right" colspan="7"><input type="submit" value="' . _SAVEWEBKAT . '"></td>
               </tr></table></form>';


und die Funktion zum speichern...:
function user_add($pvs)
{
  global $prefix, $module_name;

  if (MX_IS_ADMIN) {
    $pvs = mxAddSlashesForSQL($pvs);
    extract ($pvs);
    // sql_fetch_row($pvs);
    echo '$pvs';
    $qry = "INSERT INTO ${prefix}_webkataloge_userwk (uid,id,webkat_eintr,webkat_list) VALUES ('". mxAddSlashesForSQL($uid) ."', '" . mxAddSlashesForSQL($id) . "', '" . mxAddSlashesForSQL($webkat_eintr) . "',  '" . mxAddSlashesForSQL($webkat_list) . "')";
    sql_query($qry);
    // }
    header("Location: modules.php?name=" . $module_name);
    } else {
        mxErrorScreen(_NOACCESS);
    }
}


Zur Zeit werden die Variablen webkat_eintr und webkat_list ja mit jedem durchlaufen der Schleife ggf. überschrieben und nur ein Wert gespeichert. Wenigstens das, klappt aber schon...Nun würde ich natürlich alle Werte übergeben und speichern...und bräuchte dabei ein wenig Hilfe. Geht dies über die Vergabe von IDs, oder müssen alle Werte verschiedene Namen haben? Ein Array geht ja nur bei gleichen Datentypen, oder?

Danke und mfg
Henning
Geld verdienen im Internet
Bonusjaeger.de

using PragmaMX 0.1.9

Pac06

kleines Update:
Hab es mit dem Speichern und Löschen von einem Datensatz hinbekommen...nun probier ich es mir Arrays. In meiner Speicherfunktion kommt folgendes an:
ZitatArray ( [name] => Webkataloge3 [op] => user_add [webkat_4] => Array (
  • => 2 [1] => 4 ) [webkat_6] => Array (
  • => 2 [1] => 6 ) [webkat_3] => Array (
  • => 2 [1] => 3 ) [webkat_5] => Array (
  • => 2 [1] => 5 [2] => 5 [3] => 5 ) )
Das muss jetzt nur noch ausgelesen und gepseichert werden. Bin auf der Suche, wäre aber für Tipps dankbar!!!
Geld verdienen im Internet
Bonusjaeger.de

using PragmaMX 0.1.9