Alle Inhalte des Shops für nicht eingeloggte sperren

Thema wurde von ff-webdesigner, 31. Oktober 2023 erstellt.

  1. ff-webdesigner
    ff-webdesigner Erfahrener Benutzer
    Registriert seit:
    22. Januar 2014
    Beiträge:
    548
    Danke erhalten:
    53
    Danke vergeben:
    60
    Hallo beisammen,

    ich suche gerade nach einer Möglichkeit updatesicher alle Hauptbereich-Inhalte des Shops für nicht eingeloggte Besucher zu sperren.

    Bin soweit:

    GX/Modules/ff-webdesigner/custom/Shop/Overloads/LayoutContentControl/Lock_LayoutContentControl.inc.php

    Inhalt:

    PHP:
    class Lock_LayoutContentControl extends Lock_LayoutContentControl_parent
    {
        function 
    proceed()
        {
            
    $coo_layout_view MainFactory::create_object('LayoutContentView');
            
    $coo_layout_view->set_('main_content'"GESPERRT");
            
    $this->v_output_buffer $coo_layout_view->get_html();
        }
    }
    Jedoch egal welche Bereiche aus der Orignal Klasse ich übernehme, es kommen stets andere Fehler. Kann mit jemand auf die Spünge helfen? Ja, ich weiss: ich kann auch Inhalte anhand Gruppeneinstellungen vor nicht eingeloggten verstecken. Aber bei 120k Artikeln wäre alleine das ... äh ... "etwas" aufwändiger. Ich denke die Methode ist die zuverlässigere.
     
  2. FRAGO
    FRAGO Erfahrener Benutzer
    Registriert seit:
    5. Dezember 2019
    Beiträge:
    1.063
    Danke erhalten:
    340
    Danke vergeben:
    195
    dafür gibt es doch die Kundengruppen Funktion…
     
  3. Anonymous
    Anonymous Erfahrener Benutzer
    Registriert seit:
    11. Juli 2021
    Beiträge:
    455
    Danke erhalten:
    215
    Danke vergeben:
    166
     
  4. FRAGO
    FRAGO Erfahrener Benutzer
    Registriert seit:
    5. Dezember 2019
    Beiträge:
    1.063
    Danke erhalten:
    340
    Danke vergeben:
    195
    kann man bestimmt per SQL ändern…
     
  5. ff-webdesigner
    ff-webdesigner Erfahrener Benutzer
    Registriert seit:
    22. Januar 2014
    Beiträge:
    548
    Danke erhalten:
    53
    Danke vergeben:
    60
    das sicherste und durch kunden gewünschte ist das sperren aller hauptbereichs inhalte direkt mit overload.
     
  6. Dominik Dehning
    Dominik Dehning Aktives Mitglied
    Registriert seit:
    21. März 2023
    Beiträge:
    41
    Danke erhalten:
    30
    Danke vergeben:
    39
    Was für Fehler kommen denn?
     
  7. ff-webdesigner
    ff-webdesigner Erfahrener Benutzer
    Registriert seit:
    22. Januar 2014
    Beiträge:
    548
    Danke erhalten:
    53
    Danke vergeben:
    60
    mannigfaltigste, je nachdem welche teile ich in den overload übernehme. mit

    Code:
    class Lock_LayoutContentControl extends Lock_LayoutContentControl_parent
    {
        function proceed()
        {
            $coo_layout_view = MainFactory::create_object('LayoutContentView');
            $coo_layout_view->set_('main_content', "xxx");
            $this->_addTopbarContent($coo_layout_view);
            $this->_addPopupNotificationContent($coo_layout_view);
            $this->_addCookieBarContent($coo_layout_view);
            $this->_addFooterContent($coo_layout_view);
            $this->v_output_buffer = $coo_layout_view->get_html();
        }
    }
    kommt z.b.

    Call to undefined method Lock_LayoutContentControl::_addFooterContent()

    entferne ich die zeile kommt

    TopNavigationBoxThemeContentView::setXtcPrice(): Argument #1 ($xtcPrice) must be of type xtcPrice, null given, called in /GXMainComponents/View/ThemeContentViews/layout/LayoutThemeContentView.inc.php on line 109

    ich hab bisher ca. 50 verianten probiert, und in jeder kommen andere fehler...
     
  8. Dominik Dehning
    Dominik Dehning Aktives Mitglied
    Registriert seit:
    21. März 2023
    Beiträge:
    41
    Danke erhalten:
    30
    Danke vergeben:
    39
    Die Funktion _addFooterContent finde ich in Shopversion 4.8.0.2 nicht. Der Fehler wäre also zumindest da richtig. Geht es um diese Version?

    xtcPrice: Ich könnte mir vorstellen, dass es an folgendem fehlenden Code liegt:


    PHP:
    $coo_header_control MainFactory::create_object('HeaderContentControl');
            
    $coo_header_control->set_data('GET'$this->v_data_array['GET']);
            
    $coo_header_control->set_data('POST'$this->v_data_array['POST']);
            
    $coo_header_control->set_('c_path'$this->c_path);
            
    $coo_header_control->set_('coo_product'$this->coo_product);
            
    $coo_header_control->set_('xtcPrice'$this->coo_xtc_price);
    Da du die Funktion überschreibst, fehlen aktuell verschiedene Daten. Ich würde in dem Fall die vollständige Funktion übernehmen und nur den Teil anpassen, der relevant ist.
     
  9. Anonymous
    Anonymous Administrator
    Mitarbeiter
    Registriert seit:
    26. April 2011
    Beiträge:
    1.954
    Danke erhalten:
    1.588
    Danke vergeben:
    339
    @ff-webdesigner
    Muss das nicht wie folgt lauten?

    Code:
            $coo_layout_view = MainFactory::create_object('LayoutThemeContentView');