Merkliste

Fragen zu den Grundfunktionen der webEdition Oberfläche wie Backup, Import, ...
Fragen zu we:Tags bitte im Forum "Templates erstellen"
mobby
Senior Member
Beiträge: 1164
Registriert: Do 1. Sep 2005, 05:07

Merkliste

Beitragvon mobby » Mo 20. Jul 2009, 14:36

Moin Moin,
ich möchte gern eine Merkliste für angemeldtete Kunden haben.
Wie bekomme ich eine/mehre Objekt ID´s in die jeweilige Kundendatei und bei bedarf wieder raus?.
Oder kennt jemand vielleicht ein "externes" Script?
Viele Grüße
Mobby

webEdition 8.1.0 (Ahlberg) (8.1.0.0, Revision: 10599)

Liquid
Senior Member
Beiträge: 1172
Registriert: Do 8. Jan 2004, 12:31
Wohnort: Karlsruhe

Re: Merkliste

Beitragvon Liquid » Mo 20. Jul 2009, 15:01

Hi Mobby,

ich arbeite gerade an etwas ähnlichem (Favoriten) und habs wie folgt gelöst.
In der KV ein Feld Favoriten angelegt, in welchem kommasepariert die Objekt IDs gespeichert werden.
Der angemeldetet User sieht dann einen Link zum hinzufügen bzw. zum entfernen des jeweiligen Profils zu seinen Favoriten.

Die Seite zum speichern/löschen wird wie folgt aufgerufen http://www.domain.tld/index.php?favID=ObjectID&delete=true|false

Code zum speichern/entfernen.
Es wird geprüft ob der Favorit bereits vorhanden ist oder nicht, und es werden entsprechende Fehlermeldungen ausgegeben.

Code: Alles auswählen

<?php
$uid = $_SESSION['webuser']['ID'];
if(isset($_REQUEST['favID']) AND $_REQUEST['delete']!='true'){
    $favID = $_REQUEST['favID'];
    $name = mysql_query("SELECT input_Firma FROM tblObject_1 WHERE OF_ID = '".$favID."'");
    $row = mysql_fetch_row($name);
    if($row != ''){
        $Favs = $_SESSION['webuser']['Intern_Favoriten'];
        if(isset($Favs) AND $Favs != ''){
            // Wenn es bereits Favoriten gibt
            $Cats = explode(",",$Favs); // String teilen und in eine Array schreiben
        }else{
            // Falls Favoriten leer sind einen neuen Array erstellen
            $Cats = array();
        }
        if(!in_array($favID,$Cats)){
            array_push($Cats,$favID);
            $Cats_out = implode(',',$Cats);
            $_SESSION['webuser']['Intern_Favoriten'] = $Cats_out;
            $sql = "UPDATE tblWebUser SET Intern_Favoriten='".$Cats_out."' WHERE ID='".$uid."'";
            $result = mysql_query($sql);
            if($result){
                echo "<div id=\"hinweis\">";
                echo "<img src=\"/img/layout/icons/speichern_ok.gif\"  />&nbsp;<span style=\"font-weight:bold;\">".$row[0]."</span>&nbsp; erfolgreich zu den Favoriten gespeichert";
                echo "</div>";
            }else{
                echo "<div id=\"hinweis\">";
                echo "<img src=\"/img/layout/icons/speichern_fehler.gif\"  />&nbsp;Fehler beim speichern";
                echo "</div>";
            }
        }else{
            echo "<div id=\"hinweis\">";
            echo "<img src=\"/img/layout/icons/speichern_fehler.gif\"  />&nbsp;Dieses Profil ist bereits in Ihren Favoriten";
            echo "</div>";
        }
    }else{
        echo "<div id=\"hinweis\">";
        echo "<img src=\"/img/layout/icons/speichern_fehler.gif\" alt=\"Speichern fehler\" />&nbsp;Ein Profil mit dieser ID gibt es leider nicht";
        echo "</div>";
    }

}elseif(isset($_REQUEST['favID']) AND $_REQUEST['delete']=='true'){
        $delID = $_REQUEST['favID'];
        $Favs = $_SESSION['webuser']['Intern_Favoriten'];
        $Cats = explode(",",$Favs); // String teilen und in eine Array schreiben
        if(in_array($delID,$Cats)){
            $del_ref = array_search($delID,$Cats);
            unset($Cats[$del_ref]);
            $Cats_del = implode(',',$Cats);
            unset($_SESSION['webuser']['Intern_Favoriten']);
            $_SESSION['webuser']['Intern_Favoriten'] = $Cats_del;
            $sql_del = "UPDATE tblWebUser SET Intern_Favoriten='".$Cats_del."' WHERE ID='".$uid."'";
                $result = mysql_query($sql_del);
                if($result){
                    echo "<div id=\"hinweis\">";
                    echo "<img src=\"/img/layout/icons/speichern_ok.gif\" />&nbsp;Favoriten erfolgreich gelöscht";
                    echo "</div>";
                }else{
                    echo "<div id=\"hinweis\">";
                    echo "<img src=\"/img/layout/icons/speichern_fehler.gif\"  />&nbsp;Fehler beim löschen";
                    echo "</div>";
                }
        }else{
                echo "<div id=\"hinweis\">";
                echo "<img src=\"/img/layout/icons/speichern_fehler.gif\"  />&nbsp;Fehler beim löschen, kein Favorit mit dieser ID vorhanden";
                echo "</div>";
        }
}
?>
Ist nicht der schönste Code, aber es funktioniert.
Hoffe das hilft dir

PS: Ich habe den Code als include auf der Seite mit der LV
Gruß Liquid

mobby
Senior Member
Beiträge: 1164
Registriert: Do 1. Sep 2005, 05:07

Re: Merkliste

Beitragvon mobby » Mo 20. Jul 2009, 15:07

moin Liquid,
Favoriten: genau das meine ich damit ;)
Werde es heute abend mal testen und basteln. Wird wieder ne lange Nacht ;)
Viele Grüße
Mobby

webEdition 8.1.0 (Ahlberg) (8.1.0.0, Revision: 10599)

Liquid
Senior Member
Beiträge: 1172
Registriert: Do 8. Jan 2004, 12:31
Wohnort: Karlsruhe

Re: Merkliste

Beitragvon Liquid » Mo 20. Jul 2009, 15:10

Na dann mal viel Erfolg. :wink:
Theoretisch musst du lediglich "Intern_Favoriten" überall gegen deinen Feldnamen tauschen und in den SQL Queries die tbl_Object mit deiner ID versehen und es sollte funktionieren.
Gruß Liquid

sirius6

Re: Merkliste

Beitragvon sirius6 » Mo 20. Jul 2009, 16:54

wenn das bloss ne Merkliste ist ......
muss die nicht intern gespeichert werden, reicht wenn du die in der Session des angemeldeten Kunden mitspeicherst.......

$_SESSION["favoriten"][] = $_REQUEST["id_des_objects"];


und dann halt vor der Listview mit ner Schleife die IDs per Komma trennen und an die Listview übergeben......
das kann man dann mit nem kleinen Popup machen das man dann auch wieder schliesst, oder mit nem DIV der ne src hat und die dann reloaded dann sieht das gar niemand.

sollte doch reichen oder hab ich was überlesen?!

mobby
Senior Member
Beiträge: 1164
Registriert: Do 1. Sep 2005, 05:07

Re: Merkliste

Beitragvon mobby » Mo 20. Jul 2009, 17:22

Hi,
auch ne schöne Sache, aber die Merkliste=Favoritenliste trifft es genau. Es soll es nur für angemeldete User geben, auch wenn sie sich Tage später wieder anmelden.
Viele Grüße
Mobby

webEdition 8.1.0 (Ahlberg) (8.1.0.0, Revision: 10599)

mobby
Senior Member
Beiträge: 1164
Registriert: Do 1. Sep 2005, 05:07

Re: Merkliste

Beitragvon mobby » Mo 20. Jul 2009, 21:38

Moin,
irgendwie wird nix angezeigt.
Ich habe in der kv ein Textfeld angelegt, dies im extra Reiter Interne und das Feld heißt Favoriten. Nun wird auf der Seite nix angezeigt. Und wenn ich

Code: Alles auswählen

$_SESSION['webuser']['Interne_Favoriten']; 
ausgeben lassen will, wird nix angezeigt. Ich habe die ObID angepasst.
Wo habe ich was falsch gemacht?
Viele Grüße
Mobby

webEdition 8.1.0 (Ahlberg) (8.1.0.0, Revision: 10599)

Liquid
Senior Member
Beiträge: 1172
Registriert: Do 8. Jan 2004, 12:31
Wohnort: Karlsruhe

Re: Merkliste

Beitragvon Liquid » Di 21. Jul 2009, 09:33

Wird was angezeigt wenn du Daten manuell in das Feld in der KV schreibst?!
Gruß Liquid

mobby
Senior Member
Beiträge: 1164
Registriert: Do 1. Sep 2005, 05:07

Re: Merkliste

Beitragvon mobby » Di 21. Jul 2009, 09:43

Moin,
nix ;) Ich habe mir per p_v alle Daten ausgeben lassen, es wird nicht mal das Feld angezeigt. Ich habe aber in die tblWebUser geschaut, und dort ist sie vorhanden.
Viele Grüße
Mobby

webEdition 8.1.0 (Ahlberg) (8.1.0.0, Revision: 10599)

Liquid
Senior Member
Beiträge: 1172
Registriert: Do 8. Jan 2004, 12:31
Wohnort: Karlsruhe

Re: Merkliste

Beitragvon Liquid » Di 21. Jul 2009, 09:59

Hast du den User nach dem anlegen des Feldes aus und wieder eingeloggt?!
Gruß Liquid

mobby
Senior Member
Beiträge: 1164
Registriert: Do 1. Sep 2005, 05:07

Re: Merkliste

Beitragvon mobby » Di 21. Jul 2009, 10:26

Ja, habe ich gemacht, eben gerade. Hier mal meine Code, vielleicht irgendwoe wieder ein dreher von mir?

Code: Alles auswählen

    <?php
    $uid = $_SESSION['webuser']['ID'];

    if(isset($_REQUEST['favID']) AND $_REQUEST['delete']!='true'){
        $favID = $_REQUEST['favID'];
        $name = mysql_query("SELECT input_PlatzName FROM tblObject_5 WHERE OF_ID = '".$favID."'");
        $row = mysql_fetch_row($name);
        if($row != ''){
            $Favs = $_SESSION['webuser']['Interne_Favoriten'];
            if(isset($Favs) AND $Favs != ''){
                // Wenn es bereits Favoriten gibt
                $Cats = explode(",",$Favs); // String teilen und in eine Array schreiben
            }else{
                // Falls Favoriten leer sind einen neuen Array erstellen
                $Cats = array();
            }
            if(!in_array($favID,$Cats)){
                array_push($Cats,$favID);
                $Cats_out = implode(',',$Cats);
                $_SESSION['webuser']['Interne_Favoriten'] = $Cats_out;
                $sql = "UPDATE tblWebUser SET Interne_Favoriten='".$Cats_out."' WHERE ID='".$uid."'";
                $result = mysql_query($sql);
                if($result){
                    echo "<div id=\"hinweis\">";
                    echo "<img src=\"/img/layout/icons/speichern_ok.gif\"  />&nbsp;<span style=\"font-weight:bold;\">".$row[0]."</span>&nbsp; erfolgreich zu den Favoriten gespeichert";
                    echo "</div>";
                }else{
                    echo "<div id=\"hinweis\">";
                    echo "<img src=\"/img/layout/icons/speichern_fehler.gif\"  />&nbsp;Fehler beim speichern";
                    echo "</div>";
                }
            }else{
                echo "<div id=\"hinweis\">";
                echo "<img src=\"/img/layout/icons/speichern_fehler.gif\"  />&nbsp;Dieses Profil ist bereits in Ihren Favoriten";
                echo "</div>";
            }
        }else{
            echo "<div id=\"hinweis\">";
            echo "<img src=\"/img/layout/icons/speichern_fehler.gif\" alt=\"Speichern fehler\" />&nbsp;Ein Profil mit dieser ID gibt es leider nicht";
            echo "</div>";
        }

    }elseif(isset($_REQUEST['favID']) AND $_REQUEST['delete']=='true'){
            $delID = $_REQUEST['favID'];
            $Favs = $_SESSION['webuser']['Interne_Favoriten'];
            $Cats = explode(",",$Favs); // String teilen und in eine Array schreiben
            if(in_array($delID,$Cats)){
                $del_ref = array_search($delID,$Cats);
                unset($Cats[$del_ref]);
                $Cats_del = implode(',',$Cats);
                unset($_SESSION['webuser']['Interne_Favoriten']);
                $_SESSION['webuser']['Interne_Favoriten'] = $Cats_del;
                $sql_del = "UPDATE tblWebUser SET Interne_Favoriten='".$Cats_del."' WHERE ID='".$uid."'";
                    $result = mysql_query($sql_del);
                    if($result){
                        echo "<div id=\"hinweis\">";
                        echo "<img src=\"/img/layout/icons/speichern_ok.gif\" />&nbsp;Favoriten erfolgreich gelöscht";
                        echo "</div>";
                    }else{
                        echo "<div id=\"hinweis\">";
                        echo "<img src=\"/img/layout/icons/speichern_fehler.gif\"  />&nbsp;Fehler beim löschen";
                        echo "</div>";
                    }
            }else{
                    echo "<div id=\"hinweis\">";
                    echo "<img src=\"/img/layout/icons/speichern_fehler.gif\"  />&nbsp;Fehler beim löschen, kein Favorit mit dieser ID vorhanden";
                    echo "</div>";
            }
    }
    
    

    ?>
Viele Grüße
Mobby

webEdition 8.1.0 (Ahlberg) (8.1.0.0, Revision: 10599)

sirius6

Re: Merkliste

Beitragvon sirius6 » Di 21. Jul 2009, 10:46

ich versteh garnicht warum Ihr euch so sehr plagt, das geht doch mit nem

a. Standardfeld in der KV
b. Session Array für FavIDs
c. Standard Session Input Feld das hidden ist

und dann muss man da garnix mit SQL erledigen ........

mobby
Senior Member
Beiträge: 1164
Registriert: Do 1. Sep 2005, 05:07

Re: Merkliste

Beitragvon mobby » Di 21. Jul 2009, 11:04

Moin,
kannst du mir aufschreiben, wie der code aussieht? Wie bekommt man mehre favID´s rein bzw. wieder ausgelesen?
Viele Grüße
Mobby

webEdition 8.1.0 (Ahlberg) (8.1.0.0, Revision: 10599)

sirius6

Re: Merkliste

Beitragvon sirius6 » Di 21. Jul 2009, 13:04

die fav ids trotzdem Kommasepariert natürlich in die KV geschrieben.

<?php
//Favoritensammler
if ($_REQUEST["saveFav"]==true) {
if (!in_array( $_REQUEST["ob_id"],$SESSION[eigeneVariablen][Favoriten]))
$_SESSION[eigeneVariablen][Favoriten][] = $_REQUEST["ob_id"];
else {
print "<script language='javascript'>alert(Seite bereits vorhanden); window.close();</script>";
}
} else {
//hier muss man sich dann noch was zum löschen der Favoriten ausdenken, habe ich grad keinen Kopf dafür
}
for ($i=0; $i<count($_SESSION[eigeneVariablen][Favoriten]);$i++) {
$meineFavs .= $_SESSION[eigeneVariablen][Favoriten][$i];
}
//letztes Komma wegmachen
$meineFavs = substr($smeineFavs, 0, -1);

$_SESSION[webuser][favoritenfeld] = $meineFavs;
//Formular mit der UserID generieren und absenden per JS....... auch keinen Kopf dafür Idee müsste aber passen


Zurück zu „Basisversion“

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 4 Gäste