Ergebnis 1 bis 4 von 4

Thema: Merkzettel

  1. #1
    Alter Contao-Hase
    Registriert seit
    06.07.2009.
    Beiträge
    1.493

    Standard Merkzettel

    Hallo Community,

    gibt es jemanden, der eine Merkzettel für Contao im Einsatz hat:

    Grundsätzliche Beschreibung der Idee:

    1. Im Layout wird ein Button eingebunden, welcher beim Anklicken die Aktuelle Seite auf eine Merkliste setzt
    2. Entweder ebenfalls als Modul oder als eigenständige Seite, wird eine Liste der gemerkten Seiten angeboten. Die Liste soll klickbare Verweise enthalten.
    3. In der Liste soll ebenfalls die Möglichkeit des Löschens bestehen.

    Ich habe mich an das ganze Thema gewagt und etwas mit dem EFG umgesetzt:
    Wenn gewünscht, kann ich das gerne hier Posten.

    Meine Probleme daran sind jedoch folgende:

    1. Bekomm ich es nicht hin, dass jede Seite nur einmal Pro nutzer in der DB ist. Wenn er viermal draufklickt ist es viermal enthalten.
    2. Kann ich den Hinweis, dass die Seite auf die Merkliste gesetzt wurde, nur mit einer Weiterleitungsseite anzeigen. Dann ist der Nutzer aber nicht mehr auf der Seite.
    3. Weis ich nicht, wie die Performance des EFG Modul bei z.B. 1.000 verschiedenen Favoriten ist.
    Geändert von Acta (16.02.2015 um 13:19 Uhr)

  2. #2
    Alter Contao-Hase
    Registriert seit
    06.07.2009.
    Beiträge
    1.493

    Standard

    Problem 1 ist vorerst gelöst!

    Nr. 2 und 3. nicht aber da 1. gelöst wurde, sollte nr. 2 nicht mehr so oft auftreten.

    Für alle die es interessiert!

    So habe ich es gelöst!

    1. Formular erstellt
    Code:
    Versteckes Feld: title - Standartwert: {{env::page_name}}
    Versteckes Feld: link - Standartwert: {{env::request}}
    Versteckes Feld: Favoriten - leer
    Absendefeld  - Bildschaltfläche
    Weiterleitzungziel: Merkliste-Weiterleitung
    2. Modul
    Code:
    Merkliste Button - Formular -  Formular auswählen
    
    Merkliste Anzeige -  Auflistung Formular Daten
    Felder "Favoriten" 
    Zugriffschutz: 
    Anzeige: Besitzer
    Bearbeitung: keine Berechtigung
    Löschen: Besitzer
    CSV Export: keine Berechtigung
    ListenTemplate: list_fd_table_default
    3. EFG Hook zum zusammenbau des Links:

    Code:
    Eine Datei mit den Namen EFGCallbacks.php erstellen
    Nachfolgenden Inhalt übernehmen
    In system/modules/efg ablegen
    In DCA File folgendes ergänzen:
    $GLOBALS['TL_HOOKS']['processEfgFormData']['callback_01'] = array('EfgCallbacks', 'favoriten');
    PHP-Code:
    <?php
     
    // $arrSubmitted enthalt die POST-Werte
    // $arrFiles ggf. Datei-Uploads
    // $intOldId die ID des bearbeiteten Datensatzes, im Falle von Frontend-Bearbeitung
    // $arrForm enthaelt die 'Formular-Konfiguration'

    //Registrieren des Callbacks in system/config/dcaconfig.php - $GLOBALS['TL_HOOKS']['processEfgFormData']['callback_01'] = array('EfgCallbacks', 'favoriten');
     
    class EfgCallbacks extends Backend
    {

        public function 
    favoriten($arrSubmitted$arrFiles$intOldId, &$arrForm)
        {

    // Einschraenkung auf das Formular if ($arrSubmitted['FORM_SUBMIT'] == 'auto_form_44')
        
            
    {
            if (
    $arrSubmitted['FORM_SUBMIT'] == 'auto_form_44')
     
    // Textzusammenfassen
    $arrSubmitted['Favoriten'] = '<a href="'.$arrSubmitted['link'].'">'.$arrSubmitted['title'].'</a>';

            }
                         
             return 
    $arrSubmitted;
            }
        }
    ?>
    4. 2 Seiten erstellen:
    Code:
    1. Seite: Merkliste - Hier das Listen Modul hinterlegen
    Inhaltselement Typ Text erstellen - "Der Favorit wurden Ihrem Merkzettel hinzugefügt" -  CSS-ID: #mb_popup
    
    2. Seite: Merkliste 
    WeiterleitungSeitentyp Weiterleitung Permanent: Adresse: index.php/merkzettel.html#popup (Diese Seite im Formular als Weiterleitungsziel auswählen)
    5. PopUp erzeugen
    Im Seitenlayout folgenden JS Code hinterlegen

    PHP-Code:
    <script type="text/javascript">
    <!--
    //--><![CDATA[//><!--
    window.addEvent('domready', function() {
      var 
    = new URI(document.URL);
      if (
    == 'http://euredomain/tl/index.php/merkzettel.html#popup') {
          
    Mediabox.open('#mb_popup''Favoriten''180 40');
      }
    });
    //--><!]]>
    </script> 
    6. In Eurer CSS-Datei folgendes ergänzen.
    Code:
    #mb_popup {display:none;}
    7. Jetzt müsst ihr nur noch euren Merkzettel Button ergänzen und schon sollte alles Funktionieren.

  3. #3
    Contao-Nutzer
    Registriert seit
    08.11.2009.
    Beiträge
    191

    Standard

    Hallo Acta,

    für ein kommendes Projekt brauche ich eine ähnliche Funktion.
    Werde mir deinen Ansatz demnächst genauer ansehen und mich wieder melden.

  4. #4
    Alter Contao-Hase
    Registriert seit
    06.07.2009.
    Beiträge
    1.493

    Standard

    Gerne ... wenn jemand anderes noch ne bessere Idee hat bin ich dafür auch offen!

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

Lesezeichen

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •