Willkommen Gast.
Um die volle Funktionalität des Forums nutzen zu können,
müssen Sie sich einloggen oder registrieren.
Haben Sie Ihre Aktivierungs E-Mail übersehen?

 
Erweiterte Suche

31.115 Beiträge in 6.478 Themen- von 6.477 Mitglieder - Neuestes Mitglied: Frideborg

16-07-2020 16:29:02
JOOM::GALLERY::FORUMArchivJoomGallery 1.5 MVC - ErweiterungenMambots / PluginsWarenkorblink unter Thumbnails und Detailansicht einfügen
Seiten: [1] 2 3
Drucken
Autor Thema: Warenkorblink unter Thumbnails und Detailansicht einfügen  (Gelesen 27661 mal)
0 Mitglieder und 1 Gast betrachten dieses Thema.
gabi_ix
Newbie
*
Offline Offline

Beiträge: 24


WWW
« am: 23-02-2009 16:30:22 »

Hallo zusammen,

ich möchte eine Bestellfunktion an die Joomgallery Version 1.5 RC anbinden. Ohne tief in den Code einzugreifen, soll unter den Thumbnails und in der Detailsansicht ein Link integriert werden, der mit einem Warenkorbscript verknüft ist. Warenkorb und den Bestellablauf werden in anderen Komponenten verarbeitet.
Bei Klick auf den Link soll die BildID an den Warenkorb gesendet werden. Ein PHP-Script, dass den Link erzeugt wird separat erstellt. Im Quellcode der Joomgallery würde lediglich an den entsprechenden Stellen eine Funktion aufgerufen, die den Link unter jedem Bild generiert und anzeigt.

Auf welche Scripte muss ich zugreifen um diese Link-Funktion zu hinterlegen?

Habe mich schon ein wenig mit dem Quellcode befasst und einige Scripte entdeckt. Weis aber nicht, ob das die richtigen sind bzw. ob ich welche übersehen habe:
Thumbnailausgabe: classes/interface.class.php Zeile 229
Detailbild: includes/html/viewdetails.html.php Zeile 255
Weitere Ansichten: includes/html/joomviewspecial.html.php Zeile 58
                   includes/html/joomviewfavorites.html.php Zeile 66

Freue mich über jeden Hinweis.

Gruß Gabi

« Letzte Änderung: 23-02-2009 16:35:07 von gabi_ix » Gespeichert
siocone
Jr. Member
**
Offline Offline

Beiträge: 123



WWW
« Antworten #1 am: 03-03-2009 16:17:39 »

wenn du das hinbekommen hast wäre es super wenn du das einstellen könntest... habe das hier im forum schon mehrfach gesehen. Würde bestimmt vielen intressieren.
Gespeichert
gabi_ix
Newbie
*
Offline Offline

Beiträge: 24


WWW
« Antworten #2 am: 03-03-2009 17:05:36 »

Hallo siocone,

hatte zunächst versucht einen eigenes Warenkorbmodul für die Joomgallery zu erstellen. Es gibt aber eine viel einfacherer Lösung:  Seht dazu die Antwort von Chraneco weiter unten.
Inzwischen hat sich dadurch ein recht einfacher Lösungsweg ergeben.

Gruß Gabi





« Letzte Änderung: 26-03-2009 17:58:41 von gabi_ix » Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



« Antworten #3 am: 03-03-2009 18:23:20 »

Hi,

eine Möglichkeit wäre, einfach die Favoriten-Funktion der JoomGallery zu verwenden.
Je nach Einstellung speichert diese schon die Bilder, die ein User auf der Seite "gesammelt" hat in einer Session oder in der Datenbank. Ihr müsstet dann nur die Icons der Favoriten-Funktion mit euren gewünschten Icons ersetzen und die Texte in der Sprachdatei dazu anpassen.

Falls ihr die Favoriten (also Zip-Download-Funktion in der Galerie) in der Session speichert, bekommt ihr mit

$piclist = $mainframe->getUserState('joom.favourites.pictures');

die Bild-IDs, die der im Moment aktive User ausgewählt hat und die ihr dann in eurer Bestellkomponente einfach weiterverarbeiten könnt. Dann müsst ihr die "Bildsammelfunktion" nicht selbst schreiben.

Gruß
Chraneco
Gespeichert

Der Sprecher
gabi_ix
Newbie
*
Offline Offline

Beiträge: 24


WWW
« Antworten #4 am: 05-03-2009 13:42:01 »

Hallo Chraneco,

vielen Dank für Deine Antwort. Die Nutzung der Favoriten als Zwischenspeicher scheint eine gute Idee. Ich werde das auf jeden Fall mal durchtesten.

Gruß Gabi
Gespeichert
gabi_ix
Newbie
*
Offline Offline

Beiträge: 24


WWW
« Antworten #5 am: 12-03-2009 13:12:30 »

Hallo Chraneco,

eine Möglichkeit wäre, einfach die Favoriten-Funktion der JoomGallery zu verwenden.
Je nach Einstellung speichert diese schon die Bilder, die ein User auf der Seite "gesammelt" hat in einer Session oder in der Datenbank. Ihr müsstet dann nur die Icons der Favoriten-Funktion mit euren gewünschten Icons ersetzen und die Texte in der Sprachdatei dazu anpassen.

Falls ihr die Favoriten (also Zip-Download-Funktion in der Galerie) in der Session speichert, bekommt ihr mit

$piclist = $mainframe->getUserState('joom.favourites.pictures');

die Bild-IDs, die der im Moment aktive User ausgewählt hat und die ihr dann in eurer Bestellkomponente einfach weiterverarbeiten könnt. Dann müsst ihr die "Bildsammelfunktion" nicht selbst schreiben.

Ist der Zugriff auf die Favoritenfunktion auch für nicht registrierte User möglich? Das ist ein wichtiges Kriterium bei der Bestellung. Diese soll ohne Registrierungszwang möglich sein.
Gruß Gabi
Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



« Antworten #6 am: 12-03-2009 13:59:19 »

Hi,

jep, das ist möglich. Stelle dazu bitte im Tab 'Favoriten' des Konfigurationsmanagers einfach die Optionen 'Favoriten verwenden' und 'Öffentlicher Zip-Download' auf 'Ja'.

Damit auch die ausgewählten Bilder der registrierten Benutzer in der Session gespeichert werden, musst du 'Nur Zip-Download anbieten' ebenfalls auf 'Ja' stellen.

Dann benötigst du in deiner Bestellkomponente nur noch die in meinem letzten Beitrag gepostete Zeile, um die IDs aller ausgewählten Bilder des gerade aktiven Benutzers zu erhalten.

Gruß
Chraneco
Gespeichert

Der Sprecher
gabi_ix
Newbie
*
Offline Offline

Beiträge: 24


WWW
« Antworten #7 am: 12-03-2009 16:20:08 »

Hallo Chraneco,

vielen Dank für deine Antwort. Das klappt schon mal prima. Werde den Favoritenlink beibehalten und nur die Hinweise aus der Sprachdatei in languages/de-DE.com_joomgallery.ini in Warenkorbhiweise umformulieren.

Dann muss nur noch der Link "Zip-Archiv downloaden" gegen einen Link zu dem Bestellformular(Komponente ChronoForms) ersetzt werden. Wo, in den Scripten wird dieser Link ausgegeben?

Gruß Gabi 
« Letzte Änderung: 12-03-2009 16:25:48 von gabi_ix » Gespeichert
Chraneco
Entwickler-Team
Hero Member
*****
Offline Offline

Beiträge: 4.066



« Antworten #8 am: 12-03-2009 16:31:41 »

Hi gabi_ix,

diesen Link findest du in der Datei 'components/com_joomgallery/joomgallery.html.php' am Ende der Funktion 'Joom_ShowFavouritesLink':

Code
<a href="<?php echo JRoute::_('index.php?option=com_joomgallery&func=createzip'._JOOM_ITEMID); ?>"

Gruß
Chraneco
Gespeichert

Der Sprecher
gabi_ix
Newbie
*
Offline Offline

Beiträge: 24


WWW
« Antworten #9 am: 12-03-2009 16:46:27 »

Hallo Chraneco,

super danke sm_smile. Werde das in den nächsten Tagen ausprobieren und meine Ergebnisse dann hier einstellen.

Falls von Euch Lesern jemand Erfahrungen mit der Komponente ChronoForms hat und weis, ob damit Bestellformular, wo die BildID's aus JoomgallerySession einglesen werden können, machbar ist, würde ich mich freuen.

Gruß Gabi
« Letzte Änderung: 12-03-2009 17:18:42 von gabi_ix » Gespeichert
gabi_ix
Newbie
*
Offline Offline

Beiträge: 24


WWW
« Antworten #10 am: 25-03-2009 12:00:54 »

Hallo zusammen,

ich will Euch den Lösungsansatz für die Verknüpfung von Joomgallery mit einem Bestellformular (Komponente Chronoforms) mitteilen:

Hintergrund ist, Bilder auswählen zu können und in einem Warenkorb zwischenzuspeichern. Die gespeicherten Bilder sollten dann an ein Bestellformular übermittelt werden, wo der Käufer seine Daten eingibt und die Bildbestellung an den Fotografen sendet. Das ganze soll ohne Nutzerregistrierung möglich sein.

1. Anpassung an der Joomgallery:
An der Joomgallery (verwendete Version JOOMGALLERY_1_5_RC2_BUILD_20090222.zip) selber sind nur wenige Anpassungen  notwendig, da die Favoriten-Funktion mit dem ZipDownload zum Warenkorb umfunktioniert werden kann.
Damit diese auch für nicht registrierte Nutzer verfügbar sind, müssen die Favoriten im Konfigurationsmanager der Joomgallery wie folgt gesetzt werden:

'Favoriten verwenden', 'Öffentlicher Zip-Download' und 'Nur Zip-Download anbieten' auf 'Ja'  sowie 'Wer darf die Favoriten verwenden?' auf registrierte und spezielle

Dann sollten noch die Links ZIP-Download auskommentiert und die Hinweise und Linktexte zum Zipdownload in den JoomGallery-Sprachdateien in folgenden Dateien angepasst werden:

  • Links Zip Download auskommentieren in
    • components/com_joomgallery/joomgallery.html.php
      Zeilen 499 bis 505 am Ende der Funktion Joom_ShowFavouritesLink() diesen Code
Code:
<div class="jg_my_favourites">
    <a href="<?php echo JRoute::_('index.php?option=com_joomgallery&func=createzip'._JOOM_ITEMID); ?>"
        onMouseOver="return overlib('<?php echo JText::_('JGS_ZIP_CREATE_TOOLTIP_TEXT',true); ?>', CAPTION, '<?php echo JText::_('JGS_ZIP_DOWNLOAD',true); ?>', BELOW, RIGHT);" onmouseout="return nd();"><?php echo JText::_('JGS_ZIP_DOWNLOAD'); ?>
      <img src="<?php echo _JOOM_LIVE_SITE.'components/com_joomgallery/assets/images/package_go.png' ;?>" alt="<?php echo JText::_('JGS_ZIP_DOWNLOAD'); ?>" class="pngfile jg_icon" />
    </a>
  </div>
[/li]
[li]components/com_joomgallery/includes/html/joom.favourites.html.php
Zeilen 154 bis 157 innerhalb der Funktion Joom_ShowFavourites_HTML1 und 304 bis 307 innerhalb der Funktion Joom_ShowFavourites_HTML2
Code:
<div class="jg_up_esub1">
          <a href="<?php echo JRoute::_('index.php?option=com_joomgallery&func=download&catid='.$row->catid.'&id='.$row->id._JOOM_ITEMID); ?>"
            onMouseOver="return overlib('<?php echo JText::_('JGS_DOWNLOAD_TOOLTIP_TEXT',true); ?>', CAPTION, '<?php echo JText::_('JGS_DOWNLOAD_TOOLTIP_CAPTION',true); ?>', BELOW, RIGHT);" onmouseout="return nd();">
          <img src="<?php echo _JOOM_LIVE_SITE.'components/com_joomgallery/assets/images/download.png' ;?>" border="0" width="16" height="16" alt="<?php echo JText::_('JGS_DOWNLOAD_TOOLTIP_CAPTION'); ?>" class="pngfile jg_icon" /></a>
        </div>
      [/li]
    [/li]
    [li]Achtung: bei der Anpassung der Sprachdateien Variablennamen nicht verändern!!
    language/de-DE/de-DE.com_joomgallery.ini bzw. language/en-GB/en-GB.com_joomgallery.ini die Tooltipps und Linktexte zu Favoriten durch Warenkorbhinweise ersetzen
    Angepasste Sprachvariablen:
    • Zeilen 65 - 74
      JGS_FAV_HEADING=Warenkorb
      JGS_ZIP_HEADING=Bilder im Warenkorb
      JGS_FAV_SWITCH_LAYOUT=Ansicht ändern
      JGS_FAV_REMOVE_ALL=Liste leeren
      JGS_ZIP_CREATE_TOOLTIP_TEXT=
      JGS_FAV_REMOVE_TOOLTIP_CAPTION=Bild aus dem Warenkorb entfernen
      JGS_ZIP_REMOVE_TOOLTIP_CAPTION=Bild aus der Warenkorbliste entfernen
      JGS_FAV_REMOVE_TOOLTIP_TEXT=Hier klicken, um das Bild wieder aus dem Warenkorb zu entfernen.
      JGS_ZIP_REMOVE_TOOLTIP_TEXT=Hier klicken, um das Bild wieder aus der Warenkorbliste zu entfernen.
      JGS_FAV_REMOVE_TOOLTIP_CAPTION=Bild aus dem Warenkorb entfernen
      JGS_ZIP_REMOVE_TOOLTIP_CAPTION=Bild aus der Warenkorbliste entfernen
      JGS_FAV_REMOVE_TOOLTIP_TEXT=Hier klicken, um das Bild wieder aus dem Warenkorb zu entfernen
      JGS_ZIP_REMOVE_TOOLTIP_TEXT=Hier klicken, um das Bild wieder aus der Warenkorbliste zu entfernen
    • Zeilen 219 - 222
      JGS_FAV_ADD_PICTURE_TOOLTIP_CAPTION=Bild in den Warenkorb legen
      JGS_ZIP_ADD_PICTURE_TOOLTIP_CAPTION=Bild der Warenkorb-Liste hinzufügen
      JGS_FAV_ADD_PICTURE_TOOLTIP_TEXT=Hier Bild dem Warenkorb hinzufügen, welcher  mit einem Klick auf <i>Warenkorb</i> aufgerufen werden kann.
      JGS_ZIP_ADD_PICTURE_TOOLTIP_TEXT=Hier Bild dem Warenkorb hinzufügen, um die Lizenzen dann mit anderen ausgewählten Bildern bestellen zu können.
    • Zeilen 368 - 372
      JGS_FAV_MY=Warenkorb
      JGS_ZIP_MY=Warenkorb
      JGS_FAV_DOWNLOAD_TOOLTIP_TEXT=Bilder im Warenkorb anzeigen.
      JGS_ZIP_DOWNLOAD_ALLOWED_TOOLTIP_TEXT=Mit Klick auf den Bestellbutton können die Lizenzen für die gespeicherten Bilder geordert werden.
      JGS_ZIP_DOWNLOAD_TOOLTIP_TEXT=Mit Hilfe des Korb-Symbols können Bilder in dieser Galerie im Warenkorb gesammelt werden.

    [/li]
    [/list]

    Über das Warenkorbsymbol unter den Bildern der Detailansicht können die Nutzer die BildID's in der Joomla-Session ablegen, was auch ohne Login funktioniert.
    Zugriff auf die  gespeicherten BildID's bekommt man mit dieser Funktion: $piclist = $mainframe->getUserState('joom.favourites.pictures');

    Das waren im wesentlichen die Anpassungen an der Joomgallery (falls ich was übersehen habe - Tipps sind willkommen sm_smile).


    2. Übertragung der gespeicherte BildID's in ein Formular der Komponente Chronoforms

    Zur Übermittlung der gespeicherte Bilddaten an den Fotografen nutze ich die Komponente Chronoforms (Version: Chronoforms_3.1_RC3, Download unter www.chronoengine.com ). Hiermit lassen sich E-Mail-Formulare für Joomla 1.5 flexibel gestalten (auch mit PHP-Code) und die Daten in der Datenbank abspeichern.
    Nach dem Installieren von Chronoforms kann nach Anleitung ein Formular angelegt werden, Tutorials dazu gibt es unter http://www.chronoengine.com/downloads/folder/43-ChronoForms%20Tutorials.html und http://openbook.galileocomputing.de/joomla15/joomla_18_formulare_neu_002.htm:

    Beispielcode, mit dem die gespeicherten Bilddaten der Joomgallery-Favoriten anzeigt und in ein Formular geschrieben werden. Der Code muss ggf. noch angepasst werden - betrachtet ihn als Beta-Version. Mit dem Formular aus dem nachfolgenden Beispielcode werden 20 gespeicherte Bilder ausgelesen (man kann die Schleife auch hochsetzen auf mehr Bilder- meist reichen aber 20)und deren Daten in dynamische Formularfelder geschrieben. Es kann zu jedem Bild noch das Format und das Nutzungsrecht ausgewählt werden. Die Daten werden dann über Chronforms an die Dort hinterlegten Empfänger gesendet.

    Code:
    <?php
    $piclist = $mainframe->getUserState('joom.favourites.pictures');
    $piclist_array = explode(',',$piclist);
    $database = & JFactory::getDBO();
    if(sizeof($piclist_array)>0)
    {
    $imgsize_1="<= 320 cm&sup2";
    $imgsize_2="> 320 cm&sup2";
    ?>
    <table width="100%"  border="0" cellspacing="0" cellpadding="0" class="table_form">
      <tr>
    <th>Bild<br>Image</th>
    <th>ID</th>
    <th>Titel<br>Title</th>
    <th>Druckgröße<br>Size to print</th>
    <th>Ständiges Nutzungsrecht<br>Positive covenant</th>
      </tr>
      <?php
    for ($x = 0; $x < sizeof($piclist_array); ++$x)
    {
    $sql = "SELECT  * FROM #__joomgallery
    WHERE id='".current($piclist_array)."'";
    $database->setQuery( $sql );
    $output_img=$database->loadObject();
    if($output_img){
    $sql_cat = "SELECT  * FROM #__joomgallery_catg 
    WHERE cid='".$output_img->catid."'";
    $database->setQuery( $sql_cat );
    $output_cat=$database->loadObject();
    if($output_cat){
    ?>
      <tr>
    <td><a href="<?php echo JRoute::_('index.php?option=com_joomgallery&amp;func=detail&amp;id='.$output_img->id._JOOM_ITEMID); ?>"><img src="<?php echo 'components/com_joomgallery/img_thumbnails/'.$output_cat->catpath.'/'.$output_img->imgthumbname;?>" alt="<?php echo $output_img->imgtitle; ?>" border="0"></a></td>
    <td><?php echo $output_img->imgauthor; ?>
    <input id="hidden_<?php echo $x;?>_1" name="BildID_<?php echo $x;?>" type="hidden" readonly="readonly"  value="<?php echo $output_img->imgauthor; ?>"></td>
    <td><?php echo $output_img->imgtitle; ?>
    <input id="hidden_<?php echo $x;?>_2" name="Bildtitel_<?php echo $x;?>" type="hidden" readonly="readonly"  value="<?php echo $output_img->imgtitle; ?>"></td>
    <td>
    <select name="Groesse_<?php echo $x;?>">
    <option value="<?php echo $imgsize_1;?>"><?php echo $imgsize_1;?></option>
    <option value="<?php echo $imgsize_2;?>"><?php echo $imgsize_2;?></option>
    </select>
    </td>
    <td>
    <select name="Nutzungsrecht_<?php echo $x;?>">
    <option value="nein">nein/ no</option>
    <option value="ja">ja / yes</option>
    </select>
    </td>
      </tr>
      <? }
    }
      next($piclist_array);
    }
    ?>
    <tr>
    <td colspan="5"></td>
    <?php
    $no_of_fields="20";
    if(sizeof($piclist_array)<$no_of_fields)
    {
    for ($i = sizeof($piclist_array); $i <= $no_of_fields; ++$i)
    {
    ?>     
    <input id="hidden_<?php echo $i;?>_1" name="BildID_<?php echo $i;?>" type="hidden" readonly="readonly"  value="">
    <input id="hidden_<?php echo $i;?>_2" name="Bildtitel_<?php echo $i;?>" type="hidden" readonly="readonly"  value="">
    <input id="hidden_<?php echo $i;?>_3" name="Groesse_<?php echo $i;?>" type="hidden" readonly="readonly"  value="">
    <input id="hidden_<?php echo $i;?>_4" name="Nutzungsrecht_<?php echo $i;?>" type="hidden" readonly="readonly"  value="">
    <?php
    }
    }
    ?>
    </td>
    </tr>
    <tr><th colspan="5">Ihre Daten / Your data</th></tr>
    <tr>
    <td colspan="3"><label class="cf_label">Vor- und Zuname / Name</label></td>
    <td colspan="2"><input  id="text_0" name="vor-und-zuname" type="text" /></td>
    </tr>
    <tr>
    <td colspan="3"><label class="cf_label">Strasse + Hausnr. / street</label></td>
    <td colspan="2"><input  id="text_1" name="strasse" type="text" /></td>
    </tr>
    <tr>
    <td colspan="3"><label class="cf_label">PLZ / postel code</label></td>
    <td colspan="2"><input  id="text_3" name="plz" type="text" /></td>
      </tr>
    <tr>
    <td colspan="3"><label class="cf_label">Ort / town</label></td>
    <td colspan="2"><input  id="text_4" name="ort" type="text" /></td>
      </tr>
    <tr>
    <td colspan="3"><label class="cf_label">E-Mail / email</label></td>
    <td colspan="2"><input class="cf_inputbox required validate-email"  id="text_2" name="email" type="text" /></td>
    </tr>
    <tr>
    <td colspan="3"><label class="cf_label">Bemerkungen / message</label></td>
    <td colspan="2"><textarea class="cf_inputbox" rows="3" id="text_5" cols="30" name="bemerkungen"></textarea></td>
    </tr>
    <tr>
    <td colspan="3">
    <label class="cf_label">Spamschutz / anti spam<br>Bitte tragen Sie den angezeigten Code in das Feld ein!<br>Insert this code, please!</label></td>
    <td colspan="2"><span>{imageverification}</span>

      </td>
    </tr>
    <tr>
    <td colspan="5"><div class="formbutton" align="center"><input value="Bestellung senden / send" type="submit" /></div></td>
    </tr>
    </table>
    <?php }
    else
    {
    echo " Bitte wählen Sie zunächst Fotos aus.<br>Please choose any Photos.";
    } ?>


    Hinweise: Es empfielt sich die Daten neben dem E-Mail-Versand  von Chronoforms in der Datenbank speichern zu lassen. So geht nichts verloren. Auch die Möglichkeiten der Eingabeüberprüfung und des Spamschutzes nutzen. Wer vermeiden möchte, dass sein Formular Fehler enthält, sollte das Formular mit dem Chronoforms Form Wizard anlegen. Der individuelle PHP-Code muss dann nachträglich im "Forms Management" Reiter "Form Code" ergänzt werden. Aber Vorsicht, wenn Ihr das Formular erneut mit dem Form-Wizard bearbeitet, wird der PHP-Code beim Specihern wieder überschrieben und Ihr habt nur das blanke Formular. 
    Ist das Formular richtig konfiguriert, muss nun nur noch ein Bestelllink in der Seitennavigation platziert werden, der auf ein Formular der Componente Chronoforms und das entsprechende Formular weißt.

    Durch das Kombinieren von Joomgallery und Chronoforms kann auf recht einfache Weise die Bestellung von Fotos ermöglicht werden. Auch wenn die Funktionalitäten bezüglich der Bestellverwaltung nicht so komfortabel wie in einem Onlienshop sind und das Versenden von Rechnungen und der Fotos vom Fotografen in Handarbeit abwickelt werden muss, ist es für kleine Fotoportale  sicher eine Überlegung wert.

    Gruß Gabi

    PS. Nochmals vielen Dank an chraneco. Du hast mich mit Deinen Hinweisen auf einen einfachen Lösungsweg gebracht.



    « Letzte Änderung: 28-04-2009 16:18:12 von gabi_ix » Gespeichert
    bogi24
    Newbie
    *
    Offline Offline

    Beiträge: 7


    « Antworten #11 am: 03-12-2009 11:45:04 »

    Hallo Zusammen,

    ich bastel mir auch gerade eine Fotoseite mit Shopfunktion.

    Die Änderungen oben hab ich auch angewandt, nur möchte ich das Chronformular etwas geändert.

    Hier meine Bastelei:
    Code:
    <?php
    $piclist = $mainframe->getUserState('joom.favourites.pictures');
    $piclist_array = explode(',',$piclist);
    $database = & JFactory::getDBO();
    if(sizeof($piclist_array)>0)
    {
    $imgsize_1="<= 320 cm&sup2";
    $imgsize_2="> 320 cm&sup2";
    ?>
    <table width="100%"  border="0" cellspacing="0" cellpadding="0" class="table_form">
      <tr>
    <th>Bild<br></th>
    <th>ID</th>
    <th>Titel<br></th>
    <th>Preis<br></th>
      </tr>
      <?php
    for ($x = 0; $x < sizeof($piclist_array); ++$x)
    {
    $sql = "SELECT  * FROM #__joomgallery
    WHERE id='".current($piclist_array)."'";
    $database->setQuery( $sql );
    $output_img=$database->loadObject();
    if($output_img){
    $sql_cat = "SELECT  * FROM #__joomgallery_catg
    WHERE cid='".$output_img->catid."'";
    $database->setQuery( $sql_cat );
    $output_cat=$database->loadObject();
    if($output_cat){
    ?>
      <tr>
    <td><a href="<?php echo JRoute::_('index.php?option=com_joomgallery&amp;func=detail&amp;id='.$output_img->id._JOOM_ITEMID); ?>"><img src="<?php echo 'components/com_joomgallery/img_thumbnails/'.$output_cat->catpath.'/'.$output_img->imgthumbname;?>" alt="<?php echo $output_img->imgtitle; ?>" border="0"></a></td>
    <td><?php echo $output_img->imgauthor; ?>
    <input id="hidden_<?php echo $x;?>_1" name="BildID_<?php echo $x;?>" type="hidden" readonly="readonly"  value="<?php echo $output_img->imgauthor; ?>"></td>
    <td><?php echo $output_img->imgtitle; ?>
    <input id="hidden_<?php echo $x;?>_2" name="Bildtitel_<?php echo $x;?>" type="hidden" readonly="readonly"  value="<?php echo $output_img->imgtitle; ?>"></td>
    <td>
    <select name="Preis<?php echo $x;?>">
    <option value="1">1 Euro bei Download für Einzellizenz</option>
    <option value="2">2 Euro bei Abzugsdruck 13 mal 18</option>
    </select>
    </td>
      </tr>
      <? }
    }
      next($piclist_array);
    }
    ?>
    <tr>
    <td colspan="5"></td>
    <?php
    $no_of_fields="20";
    if(sizeof($piclist_array)<$no_of_fields)
    {
    for ($i = sizeof($piclist_array); $i <= $no_of_fields; ++$i)
    {
    ?>
    <input id="hidden_<?php echo $i;?>_1" name="BildID_<?php echo $i;?>" type="hidden" readonly="readonly"  value="">
    <input id="hidden_<?php echo $i;?>_2" name="Bildtitel_<?php echo $i;?>" type="hidden" readonly="readonly"  value="">
    <input id="hidden_<?php echo $i;?>_4" name="Preis_<?php echo $i;?>" type="hidden" readonly="readonly"  value="">
    <?php
    }
    }
    ?>
    </td>
    </tr>
    <tr>
    <td colspan="3"><label class="cf_label">Versandkosten (Nur bei Abzugsbestellung)</label></td>
    <td colspan="2"><label class="cf_label" style="width: 150px;"></label>
        <input class="cf_inputbox required" maxlength="150" size="30" title="Bitte geben Sie ihren Vornamen an" id="text_1" name="vorname" type="text" /></td>
    </tr>
    <tr>
    <td colspan="3"><label class="cf_label">Gesamtpreis im Warenkorb</label></td>
    <td colspan="2"><label class="cf_label" style="width: 150px;"></label>
        <input class="cf_inputbox required" maxlength="150" size="30" title="Bitte geben Sie ihren Vornamen an" id="text_1" name="vorname" type="text" /></td>
    </tr>
    <tr>
    <td colspan="3"><label class="cf_label">Bezahlung per</label></td>
    <td colspan="2"><input value="Vorkasse" title="" class="radio" id="check00" name="check0[]" type="checkbox" />
    <label for="check00" class="check_label">Vorkasse</label>
          <br />
        <input value="Rechnung" title="" class="radio" id="check01" name="check0[]" type="checkbox" />
          <label for="check01" class="check_label">Rechnung</label>
          <br />
    <input value="Paypal" title="" class="radio" id="check01" name="check0[]" type="checkbox" />
          <label for="check01" class="check_label">Paypal</label>
          <br /></td>
    </tr>
    <tr><th colspan="5"><b>Ihre Daten</b></th></tr>
    <tr>
    <td colspan="3"><label class="cf_label">Vorname</label></td>
    <td colspan="2"><label class="cf_label" style="width: 150px;"></label>
        <input class="cf_inputbox required" maxlength="150" size="30" title="Bitte geben Sie ihren Vornamen an" id="text_1" name="vorname" type="text" /></td>
    </tr>
    <td colspan="3"><label class="cf_label">Nachname</label></td>
    <td colspan="2"><label class="cf_label" style="width: 150px;"></label>
        <input class="cf_inputbox required" maxlength="150" size="30" title="Bitte geben Sie ihren Nachnamen an" id="text_1" name="nachname" type="text" /></td>
    </tr>
    <tr>
    <td colspan="3"><label class="cf_label">Strasse + Hausnr.</label></td>
    <td colspan="2"><input  id="text_1" name="strasse" type="text" /></td>
    </tr>
    <tr>
    <td colspan="3"><label class="cf_label">PLZ</label></td>
    <td colspan="2"><input  id="text_3" name="plz" type="text" /></td>
      </tr>
    <tr>
    <td colspan="3"><label class="cf_label">Ort</label></td>
    <td colspan="2"><input  id="text_4" name="ort" type="text" /></td>
      </tr>
    <tr>
    <td colspan="3"><label class="cf_label">E-Mail</label></td>
    <td colspan="2"><label class="cf_label" style="width: 150px;"></label>
        <input class="cf_inputbox required validate-email" maxlength="150" size="30" title="Bitte geben Sie ihre Emailadresse an" id="text_2" name="email" type="text" />
    </td>
    </tr>
    <tr>
    <td colspan="3"><label class="cf_label">Bemerkungen</label></td>
    <td colspan="2"><textarea class="cf_inputbox" rows="3" id="text_5" cols="30" name="bemerkungen"></textarea></td>
    </tr>
    <tr>
    <td colspan="3">
    <label class="cf_label">Spamschutz<br>Bitte tragen Sie den angezeigten Code in das Feld ein!<br>Insert this code, please!</label></td>
    <td colspan="2"><span>{imageverification}</span>

      </td>
    </tr>
    <tr>
    <td colspan="5"><div class="formbutton" align="center"><input value="Bestellung senden" type="submit" /></div></td>
    </tr>
    </table>
    <?php }
    else
    {
    echo " Bitte wählen Sie zunächst Fotos aus.<br>Please choose any Photos.";
    } ?>

    Wie mach ich die Chronoformsänderungen jetzt, wenn in der Zeile Versandkosten nur der Betrag 3,90 erscheinen soll, wenn in der oberen Selectauswahl bei einem der 20 Bilder die Auswahl "2 Euro bei Abzugsdruck 13 mal 18" gewählt wurde?

    Wie kann ich den Warenkorbgesamtpreis berechnen?

    Und wie kann ich bei der Auswahl "Paypal" nach dem "Bestellung senden" nach Paypal zu gelangen. Ansonsten ganz normaler Emailversand?

    Vielen vielen Dank für Eure Hilfe!
    Gespeichert
    gabi_ix
    Newbie
    *
    Offline Offline

    Beiträge: 24


    WWW
    « Antworten #12 am: 03-12-2009 15:38:24 »

    Die Berechnung des Warenkorbes mache ich über JavaScript.

    Hier mal der Code aus meinem Formular oben:

    Code:
    <h1>Bilder bestellen / Order Images</h1>

    <?php
    /* ############ Preise und Aufschläge für Fotos hier eintragen ########################## */
    $photo_use_addition=50; //in %
    $photo_price=50; // in Euro
    $photo_price_large=90; // in Euro
    $photo_price_addition=($photo_price*$photo_use_addition/100)+$photo_price; // in Euro
    $photo_price_large_addition=($photo_price_large*$photo_use_addition/100)+$photo_price_large; //in Euro
    /* ############ Ende Preise und Aufschläge für Fotos hier eintragen ##################### */
    /* ############ Fotogröße ########################## */
    $imgsize_1="<= DIN A5";
    $imgsize_2="> DIN A5"; 
    /* ############ Ende Fotogröße ##################### */
    /* ############ Nutzungsrecht ###################### */
    $covenant_yes="ja";
    $covenant_no="nein";
    /* ############ Anzahl der Bilder die insgesamt bestellt werden können #########*/
    $no_of_fields="20";
    /* ############ Ende Anzahl der Bilder die insgesamt bestellt werden können ###*/

    $piclist = $mainframe->getUserState('joom.favourites.pictures');
    $piclist_array = explode(',',$piclist);
    $database = & JFactory::getDBO();
    if(sizeof($piclist_array)>0)
    {

    echo("<script type=\"text/javascript\">");
    //Funktion Preis
    echo ("var a = document.ChronoContact_Bildbestellung;");
    for ($a = 0; $a < sizeof($piclist_array); ++$a)
    {
    echo("function rechne_preis_".$a."() {");
    echo("var feld_groesse_".$a." = a.Groesse_".$a.".options[a.Groesse_".$a.".selectedIndex].value;");
    echo("var feld_nutzung_".$a." = a.Nutzungsrecht_".$a.".options[a.Nutzungsrecht_".$a.".selectedIndex].value;");
    echo("if (feld_groesse_".$a." ==\"".$imgsize_1."\" && feld_nutzung_".$a." ==\"".$Repeated Use_no."\"){a.Preis_".$a.".value=".$photo_price.";}");
    echo("if (feld_groesse_".$a." ==\"".$imgsize_1."\" && feld_nutzung_".$a." ==\"".$Repeated Use_yes."\"){a.Preis_".$a.".value=".$Photo_price_addition.";}");
    echo("if (feld_groesse_".$a." ==\"".$imgsize_2."\" && feld_nutzung_".$a." ==\"".$covenant_no."\"){a.Preis_".$a.".value=".$photo_price_large.";}");
    echo("if (feld_groesse_".$a." ==\"".$imgsize_2."\" && feld_nutzung_".$a." ==\"".$covenant_yes."\"){a.Preis_".$a.".value=".$photo_price_large_addition.";}");
    echo("}");
    }
    // Addition der Preisfelder mit JavaScript
    echo("function preissumme () {");
    echo("var summe = 0");
    for ($b = 0; $b < sizeof($piclist_array); ++$b)
    {
    echo(" + Number(a.Preis_".$b.".value)");
    }
    echo("; a.Gesamtsumme.value=summe;");
    echo("}");

    echo("</script>");

    ?>
    <noscript>
    Ihr Browser unterstützt kein JavaScript, daher kann der Preis für Ihre Bestellung nicht berechnet werden.<br>
    No JavaScript. Without JavaScript don't calculate the prices.
    </noscript>
    <p>Pro Bestellung können bis zu <? echo($no_of_fields);?> Fotos bestellt werden. Möchten Sie mehr als 20 Fotos bestellen, bitte kontaktieren Sie uns.<br>You can order till up to <? echo($no_of_fields);?> Images. If you would like to order more than  <? echo($no_of_fields);?>, please contact us.</p>
    <table width="100%"  border="0" cellspacing="0" cellpadding="0" class="table_form">
          <tr>
            <th>Bild<br>
              Image</th>
            <th>ID</th>
            <th>Titel<br>
              Title</th>
            <th>Druckgröße<br>
              Size to Print</th>
            <th>Ständiges Nutzungsrecht<br>
              Right to Repeated Use</th>
            <th>Preis (&euro;, inkl. MwSt)<br>
              price(Euros VAT included)
             </th>
    <th>Löschen<br>delete</th>
          </tr>
          <?php
    for ($x = 0; $x < sizeof($piclist_array); ++$x)
    {
    $sql = "SELECT  * FROM #__joomgallery
    WHERE id='".current($piclist_array)."'";
    $database->setQuery( $sql );
    $output_img=$database->loadObject();
    if($output_img){
    $sql_cat = "SELECT  * FROM #__joomgallery_catg 
    WHERE cid='".$output_img->catid."'";
    $database->setQuery( $sql_cat );
    $output_cat=$database->loadObject();
    if($output_cat){
    ?>
          <tr>
            <td><div class="mod_ji_img"><a href="<?php echo JRoute::_('index.php?option=com_joomgallery&amp;func=detail&amp;id='.$output_img->id._JOOM_ITEMID); ?>"><img src="<?php echo 'components/com_joomgallery/img_thumbnails/'.$output_cat->catpath.'/'.$output_img->imgthumbname;?>" alt="<?php echo $output_img->imgtitle; ?>" border="0"></a></div></td>
            <td><?php echo $output_img->imgauthor; ?>
                <input id="hidden_<?php echo $x;?>_1" name="BildID_<?php echo $x;?>" type="hidden" readonly="readonly"  value="<?php echo $output_img->imgauthor; ?>"></td>
            <td><?php echo $output_img->imgtitle; ?>
                <input id="hidden_<?php echo $x;?>_2" name="Bildtitel_<?php echo $x;?>" type="hidden" readonly="readonly"  value="<?php echo $output_img->imgtitle; ?>"></td>
            <td><select name="Groesse_<?php echo $x;?>" onchange="rechne_preis_<?php echo $x;?>(); preissumme ()">
                <option value="<?php echo $imgsize_1;?>"><?php echo $imgsize_1;?></option>
                <option value="<?php echo $imgsize_2;?>"><?php echo $imgsize_2;?></option>
              </select>
            </td>
            <td><select name="Nutzungsrecht_<?php echo $x;?>" onchange="rechne_preis_<?php echo $x;?>(); preissumme ()">
                <option value="<? echo($covenant_no);?>">nein / no</option>
                <option value="<? echo($covenant_yes);?>">ja / yes</option>
              </select>
            </td>
            <td><input name="Preis_<?php echo $x;?>" type="text" readonly="readonly" class="show_photo_price" value="<?php echo $photo_price;?>"></td>
    <td>
    <a href="<?php echo JRoute::_('index.php?option=com_joomgallery&func=removepicture&id='.$output_img->id); ?>">
                    <img src="components/com_joomgallery/assets/images/basket_remove.png" alt="Bild l&ouml;schen / delete image"/>
                  </a>
    </td>
          </tr>
          <? }
    }
      next($piclist_array);
    }
    ?>
    <tr>
            <td colspan="5">Summe / sum</td><td><input name="Gesamtsumme" type="text" readonly="readonly" class="show_photo_price"  value="<? echo($photo_price*sizeof($piclist_array));?>"></td>
    <td>&nbsp;</td>
    </tr>
          <tr>
            <td colspan="7"><?php
    if(sizeof($piclist_array)<$no_of_fields)
    {
    for ($i = sizeof($piclist_array); $i <= $no_of_fields; ++$i)
    {
    ?>
                <input id="hidden_<?php echo $i;?>_1" name="BildID_<?php echo $i;?>" type="hidden" readonly="readonly"  value="">
                <input id="hidden_<?php echo $i;?>_2" name="Bildtitel_<?php echo $i;?>" type="hidden" readonly="readonly"  value="">
                <input id="hidden_<?php echo $i;?>_3" name="Groesse_<?php echo $i;?>" type="hidden" readonly="readonly"  value="">
                <input id="hidden_<?php echo $i;?>_4" name="Nutzungsrecht_<?php echo $i;?>" type="hidden" readonly="readonly"  value="">
    <input id="hidden_<?php echo $i;?>_5" name="Preis_<?php echo $i;?>" type="hidden" readonly="readonly"  value="">
                <?php
    }
    }
    ?>
            </td>
          </tr>
          <tr>
            <th colspan="7">Ihre Daten / Your data</th>
          </tr>
          <tr>
            <td colspan="3"><label class="cf_label">Vor- und Zuname / First Name and Surname</label></td>
            <td colspan="4"><input  id="text_0" name="vor-und-zuname" type="text" /></td>
          </tr>
          <tr>
            <td colspan="3"><label class="cf_label">Strasse + Hausnr. / Street Address</label></td>
            <td colspan="4"><input  id="text_1" name="strasse" type="text" /></td>
          </tr>
          <tr>
            <td colspan="3"><label class="cf_label">PLZ / Postel ZIP Code</label></td>
            <td colspan="4"><input  id="text_3" name="plz" type="text" /></td>
          </tr>
          <tr>
            <td colspan="3"><label class="cf_label">Ort / City - Town</label></td>
            <td colspan="4"><input  id="text_4" name="ort" type="text" /></td>
          </tr>
          <tr>
            <td colspan="3"><label class="cf_label">E-Mail / E-mail address</label></td>
            <td colspan="4"><input class="cf_inputbox required validate-email"  id="text_2" name="email" type="text" /></td>
          </tr>
          <tr>
            <td colspan="3"><label class="cf_label">Bemerkungen / Comment</label></td>
            <td colspan="4"><textarea class="cf_inputbox" rows="3" id="text_5" cols="30" name="Bemerkungen"></textarea></td>
          </tr>
          <tr>
            <td colspan="3"><label class="cf_label">Spamschutz / Anti Spam<br>
              Bitte tragen Sie den angezeigten Code in das Feld ein!<br>
              Please fil in the code shown.</label></td>
            <td colspan="4"><span>{imageverification}</span> </td>
          </tr>
          <tr>
            <td colspan="7"><div class="formbutton" align="center">
                <input value="Bestellung senden / Send" type="submit" />
            </div></td>
          </tr>
        </table>
    <?php }
    else
    {
    echo " Bitte wählen Sie zunächst Fotos aus.<br>Please choose any Photos.";
    } ?>


    Eine Weiterleitung zu Paypal müsste bei Chronoforms auch gehen. Es gibt bei den Code-Feldern ein Feld, wo man Code hinterlegen kann, der nach dem Absenden des Formulars ausgeführt wird. Hier müsstest Du den Paypalcode hinterlegen und von Paypal aus dann über einen Link wieder zu Deinem Webauftritt zurückleiten.
    Gespeichert
    bogi24
    Newbie
    *
    Offline Offline

    Beiträge: 7


    « Antworten #13 am: 04-12-2009 19:02:37 »

    Hi,

    danke gabi_ix

    Wenn ich Dein Formular als Grundlage nehme, kommt auf der Frontpage die Fehlermeldung:

    Code:
    Parse error: syntax error, unexpected T_STRING in /www/htdocs/w009ffc1/fotoshop_hauptordner/fotoshop/components/com_chronocontact/chronocontact.html.php(180) : eval()'d code on line 36

    Weißt was da los ist.

    Sorry, meine php Kenntnisse usw. sind ned gerade die besten sm_wink
    Gespeichert
    Claudia E.
    Global Moderator
    Hero Member
    *****
    Offline Offline

    Beiträge: 1.842



    « Antworten #14 am: 04-12-2009 20:04:50 »

    Evtl. hast du nicht wirklich den kompletten Code kopiert und in dein Formular eingefügt.
    Gespeichert

    Freundliche Grüße von
    Claudia
    Seiten: [1] 2 3
    Drucken
    Gehe zu:  

    HOSTED BY SCHWARZKÜNSTLER ®

    PROTECTED BY  ZB BLOCK  AND Project Honey Pot
    Theme orange-lt created by panic

    Bad Behavior has blocked 1088 access attempts in the last 7 days.

    mouth