Hallöchen, ich versuche mich gerade an einem eigen controller inkl. Ausgabe einer Template Seite. Auf der Seite: https://developers.gambio.de/tutorials.html?v=4.1.1.0_beta2&p=anlegen-neuer-http-controller Steht ganz unten: Sample Controller Man findet im Verzeichnis 'docs/PHP/samples/http-service' Beispiel-Controller mit einer Anleitung, wie sie genutzt werden können. Wo finde ich denn das Verzeichnis?
Hallo, im Anhang die Beispiele. Der Verweis in der Doku ist so Quatsch, weil man dazu Zugriff auf unser Git-Repository bräuchte. Wir arbeiten aktuell an einer überarbeiteten Dokumentation.
Hallo Moritz, vielen Dank :=) Hast Du mir vielleicht einen kleinen Tipp. Aktuell habe ich mir die Seiten die ich selber erstellt habe als PHP/HTML Mix Script über den Conent Manager eingebaut. Ich würde sie aber gern "richtig" einpflegen, so dass ich auch von den Softwareinternen Funktionen und Klassen Gebrauch machen kann. Gibt es da vielleicht schon ein vorgefertigten Controller o.ä. was mir das ermöglicht? Im Prinzip brauche ich einen, der schon die Grundfunktionen enthalten hat und ich durch Bearbeitung oder hinzufügen von eigenen Funktionen den Content-Bereich fülle, sprich Header, Footer, Menü-Links usw. sind schon vorhanden. Ich hoffe ich habe mich halbwegs verständlich ausgedrückt. Einen funktionierenden Kontroller der eine Template Datei aufruft und rendert habe ich bereits hinbekommen, nur hab ich noch nicht herausgefunden, wie ich den Shop drumherum einbinde
@BigRib Hier ein kleiner Controler der im Ordner /GXModules/MeineFirma/MeinModul/Admin/ abgelegt werden kann. Aufgerufen kann der dann über /admin/admin.php?do=Mein Aber wenn du nur eine kleine Konfigurationseite mit ein paar Felder brauchst, dann musst du keinen ganzen Controller selbst bauen, sondern kannst eine GXModule.json Datei benutzen um eine komplette Seite im Admin zu bauen ohne nur eine Zeile PHP Code schreiben zu müssen. Sie dazu auch (Link nur für registrierte Nutzer sichtbar.) PHP: <?phpMainFactory::load_class('AdminHttpViewController');class MeinController extends AdminHttpViewController{ public function actionDefault() { $template = $this->getTemplateFile('meine.html'); $title = new NonEmptyStringType("Mein Title"); /* Tabs */ $contentNavigation = MainFactory::create('ContentNavigationCollection', []); /* Data that for the HTML file */ $data = MainFactory::create('KeyValueCollection', $config); return MainFactory::create('AdminLayoutHttpControllerResponse', $title, $template, $data, $this->_getAssets(), $contentNavigation); } /** * @return \AssetCollection|bool */ protected function _getAssets() { $assets = MainFactory::create('AssetCollection'); $assets->add(MainFactory::create('Asset', 'meine.lang.inc.php')); $assets->add(MainFactory::create('Asset', 'meine.css')); $assets->add(MainFactory::create('Asset', 'meine.js')); return $assets; } /* admin.php?do=Mein/Meine */ public function actionMeine() { return MainFactory::create('RedirectHttpControllerResponse', xtc_href_link('admin.php', 'do=Mein)); }}
@Till (Gambio) Danke für Deine Antwort. Schau mal bitte auf meine Seite. Da siehst du beim oberen Kategorien_Menu eine zweite Reihe mit den sogenannten "Disc Golf Quicklinks". Dort kann man auf einen Hersteller klicken und landet auf einer Seite mit allen Scheiben zu dem jeweiligen Hersteller nach Kategorie sortiert. Diese Seite ist als Mixed-Script im Content Manager eingehangen und die würde ich gern "ordentlich" einpflegen, so dass ich auf alle Funktionen und auch auf Jquery usw. zugreifen zu können. https://thrownatur-discgolf.de/de/
@BigRib Ah, du willst eine Seite im Shop haben. Ok, das geht fast genauso. Hier musst du statt AdminHttpViewController > HttpViewController erben. Siehe dir dazu z.B. den /GXModules/Gambio/SunnyCash/Shop/Classes/Controllers/SunnyCashController.inc.php an. Das Sample von Moritz ist da schon eine gute Grundlage: PHP: <?phpMainFactory::load_class('HttpViewController');class MeinController extends HttpViewController{/*** Initialize Controller*/public function init(){ $this->templatePath = DIR_FS_CATALOG . '/GXModules/MeineFirma/MeinModul/Shop/html/';} public function actionDefault() { $contentView = MainFactory::create_object('ContentView'); $contentView->set_('meineDaten', $data); $this->templateName = 'meine.html';$contentView->set_template_dir($this->templatePath);$contentView->set_content_template($this->templateName);$contentView->set_flat_assigns(true);$contentView->set_caching_enabled(false); $p_mainContentHtml = $contentView->get_html(); $GLOBALS['breadcrumb']->add('meinbreadcrumb', xtc_href_link('shop.php', xtc_get_all_get_params(['do']) . '&do=Mein', 'SSL')); $layoutContentControl = MainFactory::create_object('LayoutContentControl'); $layoutContentControl->set_data('GET', $this->_getQueryParametersCollection()->getArray()); $layoutContentControl->set_data('POST', $this->_getPostDataCollection()->getArray()); $layoutContentControl->set_('coo_breadcrumb', $GLOBALS['breadcrumb']); $layoutContentControl->set_('coo_product', $GLOBALS['product']); $layoutContentControl->set_('coo_xtc_price', $GLOBALS['xtPrice']); $layoutContentControl->set_('c_path', $GLOBALS['cPath']); $layoutContentControl->set_('main_content', $p_mainContentHtml); $layoutContentControl->set_('request_type', $GLOBALS['request_type']); $layoutContentControl->proceed(); return MainFactory::create('HttpControllerResponse', $layoutContentControl->get_response()); } /* shop.php?do=Mein/Meine */ public function actionMeine() { return MainFactory::create('RedirectHttpControllerResponse', xtc_href_link('admin.php', 'do=Mein)); }}
@Till (Gambio) Jup genau, ich hatte mich auch bei dem SunnyCashController und der Developer Doku bedient bei meinem Versuch, nur war es so, das ich dann ausschließlich mein Template gesehen habe und das "Grundlayout" vom Shop hat gefehlt. Ich teste mal das von dir hier eingefügte Vielen lieben Dank. //Edit Funktioniert Jipie! Danke Danke Danke an Euch beide!
Ok, nun weiß ich das auch Eine Frage habe ich noch, mal wieder das leidige Thema mit dem Javascript. Irgendwie bekomme ich es manchmal eingebunden, dann wieder nicht. Ich habe versucht mich an diese Anleitung zu halten (die sich im Verlauf dann wiederholt und mit CSS gemixt ist) https://developers.gambio.de/tutorials.html?v=4.1.1.0_beta2&p=anlegen-neuer-javascript-inhalte Ich habe mir eine einfach JS Datei angelegt mit einem Alert. Die Datei liegt in: Code: /GXModules/Thrownatur/Standard/Shop/Themes/All/Javascript/custom/Global/my_script.js .dev-environment ist aktiv, somit müsste er ja eine normal js laden, ohne das sie minifyed ist. Lege ich die gleiche JS in den Ordner Code: /themes/Thrownatur/javascripts/custom dann wird sie eingebunden. Habt ihr da noch eine Idee? Cache habe ich von unten nach oben gelöscht und der Browsercache ist auch leer.
Alles klar funktioniert Dann müsste die Anleitung angepasst werden. Dort steht in allen Beispielen /custom/ und die card_handler.js habe ich im /system/ Ordner zum überladen und das geht auch, jedoch erst, als ich sie als card_handler.min.js angelegt habe... vielelicht aber auch Zufall Zusammengefasst: Wenn eine JS im GXModules/...../...../..... liegt, wird sie direkt von dort eingebunden und muss nicht minified sein. Für Eigene .js direkt in den Javascript Ordner, wenn eine andere überladen werden soll, dann muss sie in den /system/ Order. Wenn eine JS im Theme Order ablegt wird, dann muss eine eigene in den /Javascript/custom/ und zum überladen in den /Javascript/system/. Beim Cache löschen im Backend, wird die JS dann in den /public/ ordner kopiert und dabei minfied. Korrekt?
Hi, sorry to get into this question but i am new with gambio system. I have created new php page with html content and displayed it, but i want to delete or not show "<aside id="left">" . How can i do that? thanks