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.
das sicherste und durch kunden gewünschte ist das sperren aller hauptbereichs inhalte direkt mit overload.
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...
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.
@ff-webdesigner Muss das nicht wie folgt lauten? Code: $coo_layout_view = MainFactory::create_object('LayoutThemeContentView');