====== Oxid ====== Ab 15.08.2022 neue Lizenz: nicht mehr kostenlos (CE), sondern min. 111 EU/Monat. 2023: Download der letzten freien Open Source Versionen: [[https://github.com/proudcommerce/oxid-downloads]] [[oxid:gutscheine|Gutscheincodes]] [[oxid:images|Images/Bilder]] [[oxid:changes|Meine Änderungen]] {{ ::oxid_eshop_ce_4.3.0_26948_db_schema.png?nolink&100|Datenbank-Schema}} [[http://oxid-tpl-debug.stahlwarenhaus-hebsacker.de/azure/index.php?&redirected=1|Testinstallation, bei der die Namen der CSS-Elemente angezeigt werden]] [[http://wiki.oxidforge.org/Tutorials/de|Tutorials (Liste)]] [[http://docu.oxid-esales.com/CE/sourcecodedocumentation/4.1.3.19918/|Klassen-Dok/Hierarchie]] Verwendete Komponenten: * [[http://www.smarty.net|Smarty]] * [[bootstrap|Bootstrap]][[http://de.wikipedia.org/wiki/Bootstrap_%28Framework%29|Wiki]] * [[jquery|jQuery]] * [[phpmailer]] [[http://faq.oxidmodule.com/Tipps-und-Tricks/|Tips&Tricks]] Ansicht aller Module/Elemente im Layout: [[http://oxid-tpl-debug.stahlwarenhaus-hebsacker.de/azure/]] {{::oxid_class_hyrarchie.png?linkonly|Grafische Hierarchie der Klassen}} [[http://wiki.oxidforge.org/Tutorials/How_template_hierarchy_and_override_system_works|Tutorials/Understanding OXID eShop Template Hierarchy and Override System]] Blog: [[http://planet.oxidforge.org/]] [[http://www.sitepoint.com/build-infinite-scroll-list-oxid-eshop-implementation/|Build an Infinite Scroll List – Implementation]] [[http://www.oxid-esales.com/de/support-services/dokumentation-und-hilfe/archiv-oxid-eshop/design-anpassen/einstellungen/elemente-ausblenden.html|Elemente ausblenden]] (& Angebote auf Startseite) ===== Fehlermeldungen anzeigen ===== Fehler/Exceptions ansehen: Exceptions werden mitgeloggt in: /var/www/webserver/oxid/log/EXCEPTION_LOG.txt Quelle((https://faq.d3data.de/oxid-eshop/tipps-und-tricks/ich-erhalte-im-shop-eine-weisse-seite-was-nun/)): * möglicherweise protokolliert der Shop die Fehler in der Datei „exception.log“. Diese finden Sie bis Shopversion 4.1.6 im Hauptordner Ihres Shops. In späteren Versionen liegt diese Datei mit dem Namen „EXCEPTION_LOG.txt“ bzw. „oxideshop.log“ im Shop-Unterverzeichnis „log“. Diese Datei erfordert zwingend Schreibrechte. * Deaktivieren Sie den Produktivmodus im Adminbereich des Shops. Nach der Fehlersuche muss dieser unbedingt wieder aktiviert werden! Kann der Adminbereich nicht aufgerufen werden, können Sie den Produktiv-Modus auch in der Datenbank deaktivieren: Tabelle „oxshops“ -> Feld „oxproductive“ auf ‚0‘ setzen * in der Datei „config.inc.php“ setzen Sie die Zeile $this->iDebug = 0; auf $this->iDebug = 1; Diese Einstellungen sollte unbedingt danach wieder zurückgesetzt werden! * Fügen Sie ebenfalls in der „config.inc.php“ nach dem „ } catch( oxSystemComponentException $oEx ) { bitte folgenden Absatz ein: } catch (Exception $oEx) { dumpvar($oEx); die(); Der Abschnitt sieht dann wie folgt aus: try { $this->_process( $sClass, $sFunction ); } catch (Exception $oEx) { dumpvar($oEx); die(); } catch( oxSystemComponentException $oEx ) { Stellen Sie nach der Fehlersuche unbedingt die Sicherung dieser Datei wieder her! Nun sollten Sie eine Fehlermeldung sehen, anhand dieser wir das Problem besser einschätzen können. ====== Datenbankdesign ====== [[http://wiki.oxidforge.org/Tutorials/Getting,_updating_and_storing_database_data|Tutorials/Getting, updating and storing database data]] Quelle((http://planet.oxidforge.org/2015/04/datenbankdesign-kennen-lernen.html)) sehr gut ===== Model = Datenbanktabelle ===== Ein Model besitzt in der Regel eine dazugehörige Datenbanktabelle. Beispiel die Datenbanktabelle oxarticles wird dem Model /application/models/oxarticle.php zugeordnet. ===== Verknüpfungstabellen ===== Zusätzlich gibt es eine Vielzahl von Verknüpfungstabellen. Die Verknüpfungstabellen enthalten meist eine “2” innerhalb ihres Datenbanktabellennamens z.B. oxobject2category. ===== Datenbank Views ===== Datenbank Views werden innerhalb OXID eShops verwendet um z.B. unterschiedliche Sprachen abzubilden. VIEWs sind Abfragen, die in der Datenbank als Objekt fest gespeichert sind. Sie können als virtuelle Tabellen verstanden werden, deren Inhalt und Struktur auf anderen Tabellen oder Views basieren, und können in (fast) jedem SELECT-Befehl anstelle einer „echten“ Tabelle verwendet werden. Quelle: [[http://de.wikibooks.org/wiki/Einf%C3%BChrung_in_SQL:_Erstellen_von_Views|Wikibooks – Erstellen von Views]] ===== Datenverarbeitung ===== Die Datenverarbeitung läuft über das jeweilige Model der Datenbanktabelle. Zum Auslesen der Daten instanziiert man die Modelklasse über das OXID Framework und lädt über die OXID den Datensatz in der Datenbanktabelle. Beispiel: Artikel laden $product = oxNew( 'oxarticle' ); // creating model's object $product->load( 'demoId' ); // loading data Beispiel: Daten ausgeben //getting some informations echo $product->oxarticles__oxtitle->value; echo $product->oxarticles__oxshortdesc->value; Beispiel: Neuen Datensatz speichern $product = oxNew( 'oxarticle' ); $product->oxarticles__oxtitle = new oxField ( 'productTitle' ); $product->oxarticles__oxshortdesc = new oxField( 'shortdescription' ); $product->save(); Beispiel: Datensatz aktualisieren $product = oxNew( 'oxarticle' ); $product->load( 'demoId' ); $product->oxarticles__oxtitle = new oxField ( 'productTitle' ); $product->oxarticles__oxshortdesc = new oxField( 'shortdescription' ); $product->save(); $product = oxNew( 'oxarticle' ); $product->setId( 'demoId' ); $product->oxarticles__oxtitle = new oxField ( 'productTitle' ); $product->oxarticles__oxshortdesc = new oxField( 'shortdescription' ); $product->save(); ====== Config ====== [[hhttp://wiki.oxidforge.org/Tutorials/List_of_config_options|List of Config options]] ===== Eigene Module entwickeln ===== Bestehende Klassen werden durch eigenen überladen (overload). Tutorial: [[http://wiki.oxidforge.org/Tutorials]] Einführung [[http://blog.oxid-esales.com/2009/02/how-extend-oxid-eshop-with-modules-part-1/]] phpmagazin [[http://phpmagazin.de/Module-f%C3%BCr-PHP-basierte-E-Commerce-Systeme-schreiben-4487.html]] Tutorials/Understanding OXID eShop Template Hierarchy and Override System [[http://wiki.oxidforge.org/Tutorials/How_template_hierarchy_and_override_system_works]] ===== Admin: menu.xml ===== Menupunkte hinzufügen/ändern [[http://www.commodule.de/blog/allgemein/oxid-admin-menue/]] ===== Eigene Admin-Seite erstellen ===== [[http://www.einscommerce.com/eine-oxid-eshop-admin-seite-erstellen-oxid-eshop-4-7/]] ===== Programmierung ===== Quelle((http://wiki.oxidforge.org/Tutorials/Getting,_updating_and_storing_database_data)) The OXID eShop architecture is based on MVC patterns. To implement models, active record pattern is used. So in general, each model class is linked with a database table. For example, the oxArticle model is linked with the oxarticles table, oxorder with the oxorders table etc. All models are stored in the directory application/models (from OXID eShop v.5.0 and 4.7 on). Let’s take one of them, for example the oxArticle model, and try to fetch the product (with the ID ‘demoId’) data from database. $product = oxNew( 'oxarticle' ); // creating model's object $product->load( 'demoId' ); // loading data //getting some informations echo $product->oxarticles__oxtitle->value; echo $product->oxarticles__oxshortdesc->value; Magic getters are used to get models attributes; they are constructed in this approach: $model->tablename__columnname->value; * 'tablename' is the name of the database table where the model data is stored * 'columnname' is the name of the column of this table containing the data you want to fetch To set data to a model and store it, database magic setters (with the same approach as magic getters) are used: $product = oxNew( 'oxarticle' ); $product->oxarticles__oxtitle = new oxField ( 'productTitle' ); $product->oxarticles__oxshortdesc = new oxField( 'shortdescription' ); $product->save(); In this example the new record will be inserted into the table. To update an information, we have to load the model, set the new data and call the save()-method: $product = oxNew( 'oxarticle' ); $product->load( 'demoId' ); $product->oxarticles__oxtitle = new oxField ( 'productTitle' ); $product->oxarticles__oxshortdesc = new oxField( 'shortdescription' ); $product->save(); There are other ways to do the same - without loading the data - just simply setting the ID with the setId()-method: $product = oxNew( 'oxarticle' ); $product->setId( 'demoId' ); $product->oxarticles__oxtitle = new oxField ( 'productTitle' ); $product->oxarticles__oxshortdesc = new oxField( 'shortdescription' ); $product->save(); In this example, it will be checked if this ID exists and if so, the record in the database will be updated with the new record. ==== Artikeldetails aus Warenkorb auslesen ==== Quelle((http://www.foxido.de/artikeldetails-aus-warenkorb-auslesen)) Oxid Source: Anbei ein Ansatz zum Auslesen von Artikeldetails aus dem Warenkorb… $basket = oxSession::getInstance()->getBasket(); $oBasket = $basket->getContents(); foreach ( $oBasket as $oBasketItem ) { $oBasketItem->getProductId(); //usw. } ==== oxid 4.9x Invoice PDF Umlautausgabe (Filename) ==== Quelle((http://www.foxido.de/oxid-4-9-0-invoice-pdf-umlautausgabe-filename)) Oxid Source: Folgendes in invoicepdforder_overview.php unterhalb von createPDF(){…} einfügen. public function makeValidFileName($sFilename) { $sFilename = preg_replace(‘/[\s]+/’, ‘_’, $sFilename); $sFilename = preg_replace(‘/[^a-zA-Z0-9_\.-äöüÄÜÖß]/’, ”, $sFilename); return str_replace(‘ ‘, ‘_’, $sFilename); } ==== User einer bestimmten Benutzergruppe abfragen* ==== MySQL: Kundengruppe “Noch nicht bestellt” (ID: ‘oxidnotyetordered’): SELECT * FROM oxuser WHERE oxid IN (SELECT oxobjectid FROM oxobject2group WHERE oxgroupsid = ‘oxidnotyetordered’) ==== Artikeln nachträglich ein Gewicht hinzufügen* ==== MySQL: Mit folgendem Befehl können Sie Artikeln einer bestimmten Kategorie nachträglich ein Gewicht hinzufügen: UPDATE oxarticles SET oxweight = 0 where oxparentid = “” and oxid IN ( SELECT oxobjectid from oxobject2category where oxcatnid = ‘KATEGORIEID‘ ) ==== Artikel einer Kategorie löschen* ==== MySQL: DELETE FROM oxarticles WHERE oxid IN ( SELECT oxobjectid FROM oxobject2category WHERE oxcatnid = ‘KATEGORIEID‘ ) ==== Mit Smarty rechnen ==== Smarty: [{math assign=”ox_ek” equation=”(x-y)” x=$product->oxarticles__oxtprice->value y=$product->oxarticles__oxprice->value }] [{ $ox_ek|number_format:”2″}] ==== php <-> Smarty – Datenaustausch ==== Smarty: [{assign var=wasauchimmer value=$Price->getBruttoPrice()}] [{php}] $wasauchimmer=& $this->get_template_vars(‘wasauchimmer’); /*jetzt ist die Variable $wasauchimmer in php und kann verarbeitet werden*/ $ergebnis_der_verarbeitung = $xxxxxyyyyyyzzzzz + $wasauchimmer /*jetzt könnte die Variable $ergebnis_der_verarbeitung wieder an Smarty*/ $oSmarty->assign(“ergebnis”, $ergebnis_der_verarbeitung); [{/php}] /*Ergebnis in Smarty ausgeben*/ [{$ergebnis}] ==== Einfache SQL-Abfrage, ob sich die selben Benutzer mehrfach angemeldet haben ==== Mit folgendem SQL-Statement kann man Merfachaccounts mit gleichem Nachnamen und PLZ aus der Datenbank auslesen: SELECT oxuser.oxfname, oxuser.oxlname, oxuser.oxstreet, oxuser.oxstreetnr, oxuser.oxzip, oxuser.oxcity, oxuser.oxboni FROM oxuser, ( SELECT oxlname, oxzip FROM oxuser GROUP BY oxlname, oxzip HAVING COUNT( * ) >1 ) AS doubles WHERE oxuser.oxlname = doubles.oxlname AND oxuser.oxzip = doubles.oxzip ORDER BY oxuser.oxlname, oxuser.oxzip ==== Admin: Zuerst “alle” Oxid-Bestellungen anzeigen* ==== Quelle((http://www.foxido.de/oxid-bestellungen-auf-alle-statt-auf-neu)) Oxid Source: Folgendes in der order_list.php (oxid 4.87) einfügen/ersetzen: public function render() { parent::render(); $aFolders = $this->getConfig()->getConfigParam( ‚aOrderfolder‘ ); $sFolder = oxConfig::getParameter( „folder“ ); // first display new orders if ( !$sFolder && is_array( $aFolders )) { $aNames = array_keys( $aFolders ); $sFolder = $aNames[-1]; } $aSearch = array( ‚oxorderarticles‘ => ‚ARTID‘, ‚oxpayments‘ => ‚PAYMENT‘); $sSearch = oxConfig::getParameter( „addsearch“ ); $sSearchfld = oxConfig::getParameter( „addsearchfld“ ); $this->_aViewData[„folder“] = $sFolder ? $sFolder : -1; $this->_aViewData[„addsearchfld“] = $sSearchfld ? $sSearchfld : -1; $this->_aViewData[„asearch“] = $aSearch; $this->_aViewData[„addsearch“] = $sSearch; $this->_aViewData[„afolder“] = $aFolders; return „order_list.tpl“; } /** * Adding folder check * * @param array $aWhere SQL condition array * @param string $sqlFull SQL query string * * @return $sQ */ protected function _prepareWhereQuery( $aWhere, $sqlFull ) { $oDb = oxDb::getDb(); $sQ = parent::_prepareWhereQuery( $aWhere, $sqlFull ); $myConfig = $this->getConfig(); $aFolders = $myConfig->getConfigParam( ‚aOrderfolder‘ ); $sFolder = oxConfig::getParameter( ‚folder‘ ); //searchong for empty oxfolder fields if ( $sFolder && $sFolder != ‚-1‘ ) { $sQ .= “ and ( oxorder.oxfolder = „.$oDb->quote( $sFolder ).“ )“; } elseif ( !$sFolder && is_array( $aFolders ) ) { $aFolderNames = array_keys( $aFolders ); //$sQ .= “ and ( oxorder.oxfolder = „.$oDb->quote( $aFolderNames[0] ).“ )“; } return $sQ; } ==== Oxid Captcha unleserlich ==== Quelle((http://www.foxido.de/category/tipps/page/3)) Update gemacht? 4.9.7? Evtl. config.inc.php vergessen? /** * Captcha encryption key. */ $this->captchaKey = ‚‘; ==== Admin: Erledigte Bestellungen hervorheben ==== Quelle((http://www.foxido.de/erledigte-bestellungen-hervorheben)) Oxid Source: Folgendes in der order_list.tpl (oxid 4.87) in Zeile 110 einfügen: Dann unterhalb von: [{ if $listitem->getId() == $oxid }] [{assign var=“listclass“ value=listitem4 }] [{ /if}] folgendes einfügen (ca. Zeile 134): [{assign var=“ready“ value=“ ready“ }] [{ if $listitem->oxorder__oxfolder->value == „ORDERFOLDER_FINISHED“}][{assign var=“listclass“ value=$listclass$ready“ }] [{ /if}] ===== Probleme ===== Ein cat /var/www/webserver/oxid/log/EXCEPTION_LOG.txt hilft oft weiter. Ebenso ein rm /var/www/webserver/oxid/tmp/* rm /var/www/webserver/oxid/tmp/smarty/* [[http://faq.oxidmodule.com/Tipps-und-Tricks/Ich-erhalte-im-Shop-eine-weisse-Seite-was-nun.html|Weiße Seite]] ==== Problem mit zu vielen Sprachen ==== Problem: Nachdem eine eingerichtete Sprache, die nicht installiert ist (keine Sprachdateien), zeigt der Admin-Bereich nur noch ein 'Array' an. Man kommt nicht mehr rein. Shop an sich funktioniert aber ganz normal. Lösung: Öffne Datei oxid/core/oxlang.php Ab ca. Zeile 155: public function getBaseLanguage() { if ($this->_iBaseLanguageId === null) { $myConfig = $this->getConfig(); $blAdmin = $this->isAdmin(); // languages and search engines if ($blAdmin && (($iSeLang = oxRegistry::getConfig()->getRequestParameter('changelang')) !== null)) { $this->_iBaseLanguageId = $iSeLang; } if (is_null($this->_iBaseLanguageId)) { $this->_iBaseLanguageId = oxRegistry::getConfig()->getRequestParameter('lang'); } //or determining by domain $aLanguageUrls = $myConfig->getConfigParam('aLanguageURLs'); Kommeniere eine Zeile aus: public function getBaseLanguage() { if ($this->_iBaseLanguageId === null) { $myConfig = $this->getConfig(); $blAdmin = $this->isAdmin(); // languages and search engines if ($blAdmin && (($iSeLang = oxRegistry::getConfig()->getRequestParameter('changelang')) !== null)) { //$this->_iBaseLanguageId = $iSeLang; // HIER WEG } if (is_null($this->_iBaseLanguageId)) { $this->_iBaseLanguageId = oxRegistry::getConfig()->getRequestParameter('lang'); } //or determining by domain $aLanguageUrls = $myConfig->getConfigParam('aLanguageURLs'); Jetzt kann man wieder in den Admin-Bereich und die Sprache löschen (statt deaktivieren). Jetzt Kommentar wieder raus. Fertig. ==== Module werden doppelt geparst ==== Passiert anscheinend gerne bei der Entwicklung von Modulen: Modulfragmente werden doppelt geparst (also auch angezeigt). Das liegt daran, dass der Einrag in der DB doppelt ist. Lösung: doppelte Einräge löschen (nur je EINEN Eintrag löschen!). In Tabelle //oxtplblocks// nach OXMODULE sortieren und schauen, welche Templates doppelt für den Block geparst werden. Die Doppelten löschen. In der Tabelle //oxconfig// & //oxconfigdisplay// sind die Einstellungen der Module gespeichert. Die kommen auch gerne mal doppelt vor. (oxconfig: nach OXMODULE ordnen) ===== Erweiterungen zu Entwickeln von Modulen ===== * Module Internals ([[https://github.com/acirtautas/oxid-module-internals]]) WICHTIG! * OXID Cookbook :: Clear tmp ([[http://www.oxid-kochbuch.de/]]) Klein, aber fein, wenn man mal alle Caches löschen muss (Ein-Ausloggen nach Installieren; ist nur in Kopfzeile oben sichtbar) ===== DB-Änderungen ===== Nach jeder Änderung müssen die Views geupdated werden. Admin->Service->Tools Dort unten: VIEWS jetzt updaten. Hat sich wohl erledigt, weil ich die nbnumbers jetzt in pers_params speichere: ALTER TABLE `oxorderarticles` ADD `nbnumber` VARCHAR( 15 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL ALTER TABLE `oxuserbasketitems` ADD `nbnumber` VARCHAR( 15 ) CHARACTER SET latin1 COLLATE latin1_bin NOT NULL Zum Speichern der Nummern in den Userdaten: ALTER TABLE `oxuser` ADD `nbnumbers` TEXT NOT NULL , ADD `act_nbnumber` CHAR( 10 ) CHARACTER SET CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ==== Kopier-Anweisung für Tags aus der Tabelle oxArticles ==== Quelle((http://www.foxido.de/sql-anweisung-fuer-tags-aus-der-oxarticles)) MySQL: Kopieren von Tag-Inhalten aus der Tabelle oxarticles in die Tabelle oxartextends UPDATE oxartextends a JOIN oxarticles b ON a.oxid = b.oxid SET a.oxtags = b.oxsearchkeys ===== Allgemeine Tipps ===== ==== OXID Datenbankdump ohne Views ==== Quelle((http://www.marmalade.de/magazin/2014/11/oxid-datenbankdump-ohne-views/)) OXID nutzt für die Mehrsprachigkeit die Views von MySQL. Bei einigen Hostern machen diese jedoch Probleme, wenn man die Datenbank per mysqldump sichern möchte. Glücklicherweise beginnen die Views alle mit “oxv_”, so dass man diese auschließen kann. Hier das Entsprechende Script für den Aufruf auf der Commandline: mysql [dbname] -u [username] -p[password] -e 'show tables where tables_in_[dbname] not like "oxv\_%"' | grep -v Tables_in | xargs mysqldump [dbname] -u [username] -p[password] > [dump_file] Es werden alle Tabellen ausgelesen, welche nicht mit oxv_ beginnen und ein Dump mit allen anderen erzeugt. Nachdem man den Dump in die neue Datenbank importiert hat, im Backend unter “Tools” einfach die Views neu erzeugen. In manchen Versionen ist jedoch ohne Views gar kein Login ins Backend möglich. Hier hilft das setzen des entprechenden Eintrags in der config.inc.php $this->blSkipViewUsage = true; Quelle((http://wiki.oxidforge.org/Downloads/4.8.0_5.1.0)) ==== Using arguments in translations in Smarty ==== There is a possibility to use variables with arguments in translations. To use them, you need to know how sprintf or vsprintf methods work and pass the parameters accordingly. Example usage: [{ oxmultilang ident="VAT_PLUS_PERCENT_AMOUNT" suffix="COLON" args=$key }], translation: 'VAT_PLUS_PERCENT_AMOUNT' => "plus VAT %s%% Amount", %s is replaced with $key value. To use translations with multiple arguments, you have to pass an array as „args“ parameter. Example: [{assign_adv var="invite_array" value="array ( '0' => '$sender_name', '1' => '$shop_name' )"}] [{ oxmultilang ident="INVITE_TO_SHOP" args=$invite_array }] translation: 'INVITE_TO_SHOP' => "An invitation from %s to visit %s", The array here is formed in smarty, but it is possible to form the array in the controller, and pass it to the template. When using „oxmultilangassign“, you can use translations with arguments too. Example usage: [{assign var="_statusMessage" value="THANK_YOU_MESSAGE"|oxmultilangassign:$oxcmp_shop->oxshops__oxname->value}] ==== Wichtige Objekte in OXID-Templates ==== Klasse oxViewConfig (views/oxviewsconfig.php) $oViewConf->getFbAppId() - Returns facebook application key value $oViewConf->getImageUrl() - Returns image url $oViewConf->getResourceUrl() - Returns shops resource url $oViewConf->getHomeLink() - Returns shops home link $oViewConf->getSelfLink() - Returns shops self link $oViewConf->getHelpPageLink() - Returns shop help link $oxViewConfig->getActArticleId() - Returns active article id $oxViewConfig->getActCatId() - Returns active category id $oxViewConfig->getActLanguageId() - Returns session language id $oxViewConfig->getActManufacturerId() - Returns active manufacturer id $oxViewConfig->getActTplName - Returns active template name (if set) $oxViewConfig->getAdminDir() - Returns admin path $oxViewConfig->getBaseDir() - Returns shops base directory path $oxViewConfig->getBasketLink() - Returns shops basket link $oxViewConfig->getCurrentHomeDir() - Returns shops home path $oxViewConfig->getLogoutLink() - Returns shop logout link $oxViewConfig->getSslSelfLink() - Returns shops self ssl link oxViewConfig.getUrlTemplateDir() - Returns shops current templates url ==== Häufig benutzte Smary-Variablen ==== $shop->sid d3377e513705b17d12c22828b10503a6 $shop->hiddensid $shop->selflink http://www.myDomain.de/index.php?sid=d3377e513705b17d12c22828b10503a6& ebenfalls im Admin einsetzbar $shop->sslselflink https://www.myDomain.de/index.php?sid=d3377e513705b17d12c22828b10503a6& $shop->basedir http://www.myDomain.de/ $shop->selfactionlink http(s)://www.myDomain.de/index.php?sid=d3377e513705b17d12c22828b10503a6& als Target in Formularen zu verwenden $shop->currenthomedir http://www.myDomain.de/ $shop->basketlink http://www.myDomain.de/index.php?sid=d3377e513705b17d12c22828b10503a6&cl=basket $shop->orderlink http(s)://www.myDomain.de/index.php?sid=d3377e513705b17d12c22828b10503a6&cl=user $shop->paymentlink http(s)://www.myDomain.de/index.php?sid=d3377e513705b17d12c22828b10503a6&cl=payment $shop->exeorderlink http(s)://www.myDomain.de/index.php?sid=d3377e513705b17d12c22828b10503a6&cl=order&fnc=execute $shop->orderconfirmlink http(s)://www.myDomain.de/index.php?sid=d3377e513705b17d12c22828b10503a6&cl=order $shop->basetpldir http://www.myDomain.de/out/oxbaseshop/html/ ebenfalls im Admin einsetzbar $shop->templatedir /out/oxbaseshop/html/0/templates ebenfalls im Admin einsetzbar $shop->urltemplatedir http://www.myDomain.de/out/oxbaseshop/html/0/templates ebenfalls im Admin einsetzbar $shop->imagedir http(s)://www.myDomain.de/out/oxbaseshop/html/0/images ebenfalls im Admin einsetzbar $shop->nosslimagedir http://www.myDomain.de/out/oxbaseshop/html/0/images ebenfalls im Admin einsetzbar $shop->dimagedir http(s)://www.myDomain.de/out/oxbaseshop/html/0/dyn_images $shop->admindir admin URL-Erweiterung für Adminbereich, nur im Admin verfügbar $shop->isSSL true oder false Prüfung auf SSL-Mode $shop->IP 217.237.149.225 $shop->blUseStock true oder false Prüfung, ob Lager genutzt wird $shop->cl user aktuell genutzte Klasse $shop->tpl impressum.tpl aktuell genutztes Template $shop->lang 0 aktuelle Sprache $shop->helplink http://www.myDomain.de/index.php?sid=d3377e513705b17d12c22828b10503a6&cl=help&page=user&tpl= $shop->logoutlink http(s)://www.myDomain.de/index.php?sid=d3377e513705b17d12c22828b10503a6&cl=user&cnid=&fnc=logout&tpl=&redirect=1 Wird als Beispiel "http" bzw. "https" verwendet. wird auch nur explizit diese im Shop registrierte Adresse verwendet. Steht hingegen "http(s)", schaltet der Shop die Variable je nach Shopzustand selbst. ==== Shop offline ==== * nicht aktiv geschaltet * keine DB-Verbindung * DB-Views nicht verfügbar * Core-Table nicht vorhanden/fehlerhaft * Exception nicht abgefangen Sehr guter Überglick (auch technisch): [[http://www.marmalade.de/magazin/2014/07/oxid-wann-wird-die-offline-seite-angezeigt/]] ===== Bevor es live geht ===== [[http://wiki.oxidforge.org/Tutorials/Check_vor_dem_Livegang]] Stammdaten ->Grundeinstellungen -> Haken bei Produktivmodus Stammdaten ->Grundeinstellungen -> Perform. -> Überprüfen ob Templates neu kompiliert werden müssen. Schalten Sie diese Einstellung aus, wenn der eShop in den Live-Betrieb geht.