Ordner-Struktur GXEngine

Thema wurde von Steffen (indiv-style.de), 11. März 2016 erstellt.

  1. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    115
    Danke vergeben:
    20
    Bedeutet ich müsste den "EnvironmentHttpViewControllerRegistryFactory" für jeden Eintrag überladen?
     
  2. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.692
    Danke vergeben:
    903
    Für jeden Controller. Das kann in einem Overload gelöst werden:
    PHP:
    protected function _addAvailableControllers(HttpViewControllerRegistryInterface $registry)
    {
        
    parent::_addAvailableControllers($registry);
        
        
    $registry->set('Monevo''MonevoController');
        
    $registry->set('MonevoEbay''MonevoEbayController');
        
    // ...
    }
     
  3. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    115
    Danke vergeben:
    20
    Ah, alles klar... so langsam verstehe ich, wie eure graue Zellen funken :D
     
  4. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.692
    Danke vergeben:
    903
    Ich würde sagen, der Funken ist übergesprungen :D.
     
  5. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Kann man die GXEngine-Klassen nicht überladbar machen?

    Also die GXengine erst laden, nachdem die MainFactory aktiv ist?
     
  6. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
    Aber das ist doch so!!!

    gxengine_classload.jpg
     
  7. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Nur beim Verzeichnis Scan...

    Die Aktivierungsreihenfolge ist aber eine andere...

    Damit sind dies GXEngine-Klassen nicht über die Factory überladbar.

    require_once(DIR_FS_CATALOG.'GXEngine/GXEngine_init.inc.php');

    require_once(DIR_FS_CATALOG.'system/core/BaseClass.inc.php');

    require_once(DIR_FS_CATALOG.'system/core/logging/Debugger.inc.php');
    require_once(DIR_FS_CATALOG.'system/core/caching/DataCache.inc.php');

    require_once(DIR_FS_CATALOG.'system/core/caching/CachedDirectory.inc.php');
    require_once(DIR_FS_CATALOG.'system/core/Registry.inc.php');
    require_once(DIR_FS_CATALOG.'system/core/ClassRegistry.inc.php');
    require_once(DIR_FS_CATALOG.'system/core/ClassOverloadRegistry.inc.php');
    require_once(DIR_FS_CATALOG.'system/core/MainFactory.inc.php');
    require_once(DIR_FS_CATALOG.'system/core/MainAutoloader.inc.php');

    require_once(DIR_FS_CATALOG.'system/core/ContentView.inc.php');
    require_once(DIR_FS_CATALOG.'system/core/AjaxHandler.inc.php');

    require_once(DIR_FS_CATALOG.'system/core/GMDataObject.inc.php');
    require_once(DIR_FS_CATALOG.'system/core/GMDataObjectGroup.inc.php');
     
  8. Steffen (indiv-style.de)

    Steffen (indiv-style.de) G-WARD 2013/14/15/16

    Registriert seit:
    30. Juni 2011
    Beiträge:
    5.143
    Danke erhalten:
    1.466
    Danke vergeben:
    452
    Beruf:
    Systemadmin, Webentwickler bei Indiv-Style
    Ort:
    PhpStorm
  9. Avenger

    Avenger G-WARD 2012/13/14/15

    Registriert seit:
    26. April 2011
    Beiträge:
    4.771
    Danke erhalten:
    1.478
    Danke vergeben:
    89
    Das ist dann aber wieder ein anderes Verfahren der Überladung....

    Kann man damit für ein Modul auch "Überladungsketten" (mehrere Overload-Klassen überladen die gleichen Methoden der Basisklasse) erzeugen, wie das mit der MainFactory geht?

    Sieht mir nicht so aus...
     
  10. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.692
    Danke vergeben:
    903
    Die GXEngine initialisiert die überladbaren Objekte über die MainFactory. Damit sind also auch Überladungsketten möglich. Am Verfahren hat sich nichts geändert.
     
  11. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    115
    Danke vergeben:
    20
    Wie genau sieht es aus mit usermod von html-Dateien wo die Originale von Gambio verändert wird?

    Beispiel
    Die Datei order_details.html habe ich durch eine order_details-USERMOD.html "ersetzt" und follgenden Inhalt hinterlegt

    HTML:
    <div class="order-wishlist col-xs-12 col-md-8" data-gambio-widget="customizer" data-customizer-page="cart">
    ...
    
    <div class="row">
        <div class="col-xs-12 col-md-4">
            <a title="{$button.continue_shopping}" href="{$BUTTON_BACK_URL}" class="btn btn-default btn-block">
                {$button.continue_shopping}
            </a>
        </div>
        <div class="col-xs-6 col-sm-4 col-sm-offset-4 col-md-3 col-md-offset-6 text-right">
            &nbsp;
        </div>
    </div>
    </div>
    

    Wenn nun z.B. die JavaScripter von Gambio das Attribut
    Code:
    data-customizer-page="cart"
    
    nach

    Code:
    data-widget-page="cart"
    
    ändern, weil vielleicht die Beschreibung des Attributs passender zutrifft.

    Müsste ich in meiner -USERMOD Datei dieses auch anpassen, oder?
    Wo finde ich die "internen" Codeänderungen dokumentiert?
     
  12. Moritz (Gambio)

    Moritz (Gambio) Administrator

    Registriert seit:
    26. April 2011
    Beiträge:
    5.786
    Danke erhalten:
    2.692
    Danke vergeben:
    903
    Hallo,

    ja, es ist korrekt, dass Änderungen in original Template-Dateien in USERMOD-Dateien nachgepflegt werden müssen. Es wird nicht jede Kleinigkeit an Änderungen dokumentiert. Größere Änderungen werden im Entwickler-Logbuch festgehalten, das du hier findest:
    https://tracker.gambio-server.net/p...bject&c[]=assigned_to&c[]=updated_on&c[]=tags

    In Updates liegt immer eine Dateiliste bei. Diese kann genutzt werden, um zu sehen, ob USERMOD-Dateien von Änderungen betroffen sind. Zum Vergleich der Dateien bietet sich WinMerge an, um schnell Unterschiede zu sehen und in den USERMOD zu übernehmen.
     
  13. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    115
    Danke vergeben:
    20

    PhpStorms Sync reicht dafür aus denke ich :)
     
  14. Wilken (Gambio)

    Wilken (Gambio) Erfahrener Benutzer

    Registriert seit:
    7. November 2012
    Beiträge:
    18.737
    Danke erhalten:
    7.309
    Danke vergeben:
    2.208
    Ja, auch. Es ist by the way geplant nochmal weitere Möglichkeiten zu schaffen in Honeygrid als Template strukturell einzugreifen, aber gut Ding will manchmal etwas Weile haben.
     
  15. Anonymous

    Anonymous Erfahrener Benutzer

    Registriert seit:
    16. Januar 2016
    Beiträge:
    656
    Danke erhalten:
    115
    Danke vergeben:
    20
    Hmm.. wenn ihr es in den nächsten Monaten/Jahren wirklich schafft eine Art "Content-Builder" umzusetzen, wo man sein Shop quasi nach einem Baukastenprinzip zusammen schustert, dann wären viele "Otto Normalverbraucher" glaube ich sehr erleichtert :D...

    ...und keiner braucht mehr die Nerds in seinem Unternehmen :(