Am besten, die Anmeldungen abfangen, wenn das Formular übertragen wird:
/oxid/core/inputvalidator.php
public function checkRequiredFields($oUser, $aBillingAddress, $aDeliveryAddress)
$aBillingAddress: [oxuser__oxsal] => MR [oxuser__oxfname] => ??? [oxuser__oxlname] => google [oxuser__oxcompany] => [oxuser__oxaddinfo] => [oxuser__oxstreet] => ???? [oxuser__oxstreetnr] => ??? [oxuser__oxzip] => ?? [oxuser__oxcity] => ??? [oxuser__oxustid] => [oxuser__oxcountryid] => a7c40f631fc920687.20179984 [oxuser__oxstateid] => [oxuser__oxfon] =>
Die Tags schaltet man im AdminFrontend aus: Stammdaten→Grundeinstellungen→Reiter Einstellungen. Dort Shop-Frontend und Häckchen bei 'Tags im eShop anzeigen' wegmachen.
Auskommentieren in:
application/views/azure/tpl/page/details/inc/tabs.tpl
[{* if $oView->isPriceAlarm() && !$oDetailsProduct->isParentNotBuyable()}] [{capture append="tabs"}]<a href="#pricealarm">[{oxmultilang ident="PRICE_ALERT"}]</a>[{/capture}] [{capture append="tabsContent"}]<div id="pricealarm">[{include file="form/pricealarm.tpl"}]</div>[{/capture}] [{/if *}]
application/views/azure/tpl/page/details/inc/productmain.tpl
[{* if $oView->isPriceAlarm() && $oDetailsProduct->isBuyable()}]
<li><a id="priceAlarmLink" rel="nofollow" href="[{ $oDetailsProduct->getLink()|cat:'#itemTabs'}]">[{oxmultilang ident="PRICE_ALERT"}]</a></li>
[{/if *}]
method getIconUrl in application/models/oxbasketitem.php echt reingeschrieben
application/views/azure/tpl/layout/sidebar.tpl
Auskommentiert:
[{* include file="widget/trustedshops/ratings.tpl" *}] [{* include file="widget/sidebar/partners.tpl" *}] [{* include file="widget/shoplupe/ratings.tpl" *}]
Könnte man auch über die Modul-Blocküberschreibung machen. Blöcke: sidebar_trustedshopsratings sidebar_partners sidebar_shopluperatings
Hab es jetzt aber über eigenes, von Azure vererbtes Theme gemacht…
modules/oe/invoicepdf/views/admin/blocks/order_overview.tpl
Zeile von:
<option value="[{$lang }]" [{if $lang == "0" }]SELECTED[{/if}]>[{$slang }]</option>
auf
<option value="[{$lang }]" [{if $lang == "1" }]SELECTED[{/if}]>[{$slang }]</option>
setzen
Das Modul macht an einige Stellen durch Blocküberschreibung schon Newsletter-Links (und Forms) weg.
application/views/azure/tpl/layout/footer.tpl
[{*if $oView->showNewsletter()}] [{include file="widget/footer/newsletter.tpl"}] [{/if*}]
Unten bei Informationen:
application/views/azure/tpl/widget/footer/info.tpl Zeile auskommentieren:
<li><a href="[{ oxgetseourl ident=$oViewConf->getSelfLink()|cat:"cl=newsletter" }]" rel="nofollow">[{ oxmultilang ident="NEWSLETTER" }]</a></li>
Der Shop soll offline gehen, wenn sich das Modul aus irgendwelchen Gründen nicht deaktiviert.
Umsetzung: In den festen Code wird in eine Methode die Zeile:
oxRegistry::getUtils()->redirectOffline();
geschrieben. Die setzt den Shop offline.
Diese Methode MUSS durch das Modul komplett überschrieben werden. Natürlich ohne die Zeile. Dann geht der Shop immer offline, wenn das Modul nicht aktiviert ist.
Ich nehme die Methode isNotBuyable()
in der Klasse oxid/application/models/oxarticle.php . Die Methode sieht dann so aus:
/**
* Returns true if article is not buyable
*
* @return bool
*/
public function isNotBuyable()
{
oxRegistry::getUtils()->redirectOffline(); // gerald: diese methode wird vom nbnumber-modul überschieben!
return $this->_blNotBuyable;
}
Im eigenen Modul muss es die Methode (natürlich ohne die Zeile) auch geben).
Beim Mobile-Theme musste ich das Original nehmen, weil ich es nicht geschafft habe, das Theme zu vererben und dass dann der Theme Switcher nocht funtkioniert. Da hätte man evtl. so viel am Theme Switcher ändern müssen (Das Ändern der Einstellungen reicht nicht), dass es keine Sinn macht. Also nehme ich das Original-Theme und mache so viel über Blocks wie möglich. Es ist jedoch nicht nicht alles verblockt, besonders die Startseite nicht. Daher eine Änderung im Theme in oxid/application/views/mobile/tpl/layout/page.tpl
[{include file="message/errors.tpl"}] [{include file="qqq/start.tpl"}] [{foreach from=$oxidBlock_content item="_block"}]
Also qqq/start.tpl . Ich habe ein tpl-Unterverzeichnis 'qqq' angelegt, und schreibe Änderungen da rein, damit es nicht beim Update überschrieben werden kann…
ALTER TABLE `oxorder` ADD `OXPAID_SUM` DOUBLE NOT NULL DEFAULT '0' COMMENT 'exact payment (not inserted by GUI))', ADD `OXREMARK_INTERN` TEXT CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT 'internal remark for payment'
INSERT INTO `oxgroups` (`OXID`, `OXACTIVE`, `OXTITLE`, `OXTITLE_1`, `OXTITLE_2`, `OXTITLE_3`, `OXTIMESTAMP`) VALUES ('einzelschatzkiste', 1, 'Einzelschatzkiste', 'Einzelschatzkiste', '', '', '2015-08-12 12:37:49');
Dann zu den Einstellungen gehen. Shopeinstellungen→ Rabatte. Neuen Rabatt über 10% anlegen namens (egal) 'Gruppe Einzahlerschatzkiste'. Unter Benutzer→ Benutzergruppen zuordnen die neu angelegte (datenbank) Gruppe 'Einzelzahlerschatzkiste' zuordnen.
Das Modul sieht sich die XMl-Datei an und wenn User über die NB-Nummer berechtigt ist, dann fügt er den Nutzer zu der Gruppe mit der OXID 'einzelschatzkiste' hinzu (daher muss man den Datenbankeintrag auch manuell anlegen, weil er sonst eine zufällig OXID vergibt). Den Nutzer fügt das Modul bei jedem Seitenaufruf erneut der Gruppe zu und speichert das NICHT in die DB. Auch wenn der Nutzer gar nicht angemeldet ist (wichtig!).
Wird voll in das File-Download-System integriert. Fängt Fälle ab, wenn die Downloaddate 'download.php' heisst (hardcoded).
/application/models/oxfile.php : public function download() : Umbiegen der Seite, wenn 'download.php'; DB-Abfrage, nach nbnumber.
/application/models/oxorderfilelist.php : Erweiterung der DB-Abfragen der 2 einzigen Funktionen (& $oOrderFile→addFieldName ?)
/application/controllers/account_downloads.php : _prepareForTemplate: liest die nbnumber der Bestellung aus pers_params aus.
Theme /Views :
application/views/(azure|mobile|qqq)/tpl/page/account/downloads.tpl : Bild statt Dateiname anzeigen & weitere Infos.
application/views/(azure|mobile|qqq)/tpl/page/account/inc/file_attributes.tpl : Dateigrösse entfernt
Richtige Anzeige statt Dateinamens (due NB-Nummer soll angezeigt werden) in Download-Link-eMails und Bestätigungsmails:
/application/models/oxorderfile.php : getFileSize() gibt leeren String zurück (damit kein Bytegrösse angezeigt wird) & neue Methode getNBNUMBER() (liest nbnumber aus persParam aus). Ausserdem wird modules/qqq/nbnumbers/out/get_fullimage.php aufgerufen (via curl), um das volle Bild in den Cache zu bekommen. Diese Datei wird nur von den TPLs gebraucht.
Dazugehörende TPLs: (wegen getFileSize & additional [{$oOrderFile→getNBNUMBER()}] )
application/views/(azure|mobile|qqq)/tpl/email/html/order_cust.tpl (block email_html_order_cust_download_link)
application/views/(azure|mobile)/tpl/email/html/senddownloadlinks.tpl (block email_html_senddownloadlinks_download_link)
(application/views/(azure|mobile)/tpl/page/account/inc/file_attributes.tpl : sollte schon anderweitig abgefangen werden)