gelöst Neue Smarty-Variable in Overload-Class definieren

Thema wurde von Anonymous, 2. Juni 2017 erstellt.

  1. Anonymous

    Anonymous Mitglied

    Registriert seit:
    29. Mai 2017
    Beiträge:
    7
    Danke erhalten:
    0
    Danke vergeben:
    1
    #1 Anonymous, 2. Juni 2017
    Zuletzt von einem Moderator bearbeitet: 2. August 2017
    Hallo,

    iwie kann ich in einer überaldenen Klasse einde Smarty Variable definieren?

    ich habe eine Klasse MyProductInfoContentView erstellt und bekomme eine Fehlermeldung :
    (Link nur für registrierte Nutzer sichtbar.)

    Wie muß ich die Variable korrekt definieren?

    Vielen Dank im Voraus.
    Andi

    -------------------------------------------------------------------------------------------
    PHP:
    class MyProductInfoContentView extends ProductInfoContentView
    {
       
       public function 
    __construct($template 'default')
       {
           
    parent::__construct();

       }
     

       public function 
    _assignQuantity()
       {
             
           
    parent::_assignQuantity();
     
                    
    $smarty MainFactory::create('Smarty');
                    
    $smarty->assign('IS_RING''1');
                  
       }
    }
     
  2. Anonymous

    Anonymous Administrator
    Mitarbeiter

    Registriert seit:
    26. April 2011
    Beiträge:
    1.656
    Danke erhalten:
    1.261
    Danke vergeben:
    300
    Hi,

    es reicht in der eigenen Klasse einfach
    PHP:
    $this->set_content_data('MEINE_VARIABLE''1'); 
    zu setzen, dann kann in der HTML mit {$MEINE_VARIABLE} in Smarty darauf zugeriffen werden.

    Die folgenden Zeilen werden nicht benötigt:

    PS: Smarty Variablen werden immer mit $ geschrieben ohne dies ist es eine Smarty Funktion.
     
  3. Anonymous

    Anonymous Mitglied

    Registriert seit:
    29. Mai 2017
    Beiträge:
    7
    Danke erhalten:
    0
    Danke vergeben:
    1
    Super.

    Es hat jetzt geklappt.
    Danke
     
  4. icue

    icue Neues Mitglied

    Registriert seit:
    21. Juli 2017
    Beiträge:
    1
    Danke erhalten:
    0
    #4 icue, 21. Juli 2017
    Zuletzt bearbeitet: 21. Juli 2017
    Guten Tag,
    ich habe ein ähnliches Problem. Unter GXUserComponents/overloads/ habe ich einen CheckoutSuccessExtender angelegt.
    Ich habe mit dem Code von oben versucht eine Smarty Variable anzulegen, bekomme jedoch die Fehlermeldung:

    FATAL ERROR(1): "Call to undefined method MyExtenderCheckoutSuccessExtender::set_content_data()"

    Ist die Variable aus diesem Verzeichnes anders zu setzen?

    MfG
     
  5. Kai Schoelzke

    Kai Schoelzke Beta-Held

    Registriert seit:
    30. März 2016
    Beiträge:
    3.803
    Danke erhalten:
    548
    Danke vergeben:
    248
    Hallo, schau mal hier GXUserComponents\overloads\_extender_samples\CheckoutSuccessExtenderComponent da ist eine Beispiel Datei, wie es richtig sein muss, die kannst du als Basis nehmen, der Rest steht dann hier https://developers.gambio.de//tutorials.html?v=3.5.1.0&p=das-extender-system und hier https://developers.gambio.de//tutorials.html?v=3.5.1.0&p=class-overloading
     
  6. MJ

    MJ Erfahrener Benutzer

    Registriert seit:
    28. April 2011
    Beiträge:
    525
    Danke erhalten:
    54
    Danke vergeben:
    91
    Guten Tag,
    ich würde hier gern nochmal einhaken.

    wie kann ich in einer Klasse unter GX_Modules eine Variable festlegen?
    In der Datei mytest_ApplicationBottomExtender.inc.php

    a) Mit $this->set_content_data('foo', $this->createMyHtml()); erhalte ich den gleichen Fehler wie icue.

    b) Mit $this->v_output_buffer['foo'] = $this->createMyHtml(); erscheint der Inhalt ganz am Ende der Seite und nicht bei {$foo}

    -- Vielleicht missverstehe ich das auch.

    Der Hinweis von Kai hat mir nicht weitergeholfen - da wird nicht direkt eine Variable zugewiesen.

    Was ich erreichen möchte ist folgendes: Ich möchte an einer Stelle im Shop Content ausgeben (dabei CSS, und JS includen) und PHP ausführen (in der Klasse). Ich wollte das anhand eines Beispiels machen - hier einen Instagram-Feed einfügen im Footerbereich des Shops. Das wird auch eingefügt, aber eben nur am Ende. Ich möchte in den Templatefiles {$foo} angeben und genau dort meinen Output haben. Was könnte ich hier falsch machen?

    Vielen Dank