Magento Online Doku / Documentation
Eine strukturierte Online Doku inkl. Datenstruktur, Klassenhierarchie, etc. findet ihr unter folgendem Link:
Eine strukturierte Online Doku inkl. Datenstruktur, Klassenhierarchie, etc. findet ihr unter folgendem Link:
Add a Success, Info or Error Message to the session and save this for re-direction in Magento
//A Success Message Mage::getSingleton('checkout/session')->addSuccess("Your cart has been updated successfully!"); //A Error Message Mage::getSingleton('checkout/session')->addError("Your cart has been updated successfully!"); //A Info Message (See link below) Mage::getSingleton('checkout/session')->addNotice("This is just a FYI message..."); //These two lines are required to get it to work session_write_close(); //THIS LINE IS VERY IMPORTANT! $this->_redirect('checkout/cart');
Aus Sicherheitsgründen ist es nicht gestattet in Magento-CMS-Pages direkt PHP-Code einzubinden.
Über dem folgenden Weg ist dies möglich:
Im Template Ordner muss dazu eine Datei zum einbinden vorhanden oder angelegt werden. Z.B. die test.phtml welche im Ordner /app/design/frontend/default/default/test/test.phtml abgelegt wird.
In dieser Datei kann, wie in den phtml-template-files üblich, php-code aufgerufen werden, z.b.:
<strong><?php echo "Hello World"; ?></strong>
In der CMS-Page ruft ihr diese Template-Datei wie folgt auf:
{{block type="core/template" template="test/test.phtml"}}
Zuerst muss in der Datenbank die Quote Tabelle entsprechend mit dem neuen Attribute erweitert werden, dies geht wie gewohnt über die setup-scripte (z.B. mysql4-install-0.0.X.php):
$installer = $this; $installer->startSetup(); $installer->addAttribute('quote', 'new_attribute', array( 'label' => 'New Attribute', 'type' => 'varchar', )); $installer->endSetup();
Danach könnt ihr, z.b. im OnepageController.php dieses Attribute wie folgt mit Werten füllen:
Mage::getSingleton('checkout/session')->getQuote()->setNewAttribute('value'); Mage::getSingleton('checkout/session')->getQuote()->collectTotals(); Mage::getSingleton('checkout/session')->getQuote()->save();
Be careful on input and type. Input means the input type of the attribute. And type means the input type in database.
For textfield it will be:
'input' => 'text',
'type' => 'text',
For textarea it will be:
'input' => 'textarea',
'type' => 'text',
For date field it will be:
'input' => 'date',
'type' => 'datetime',
For select list it will be:
'input' => 'select',
'type' => 'text',
For boolean select it will be:
'input' => 'boolean',
'type' => 'int',
Den Pfad in der URL zum Magento Admin-Backend-Bereich könnt ihrin der local.xml unter app/etc/ im folgenden Bereich ändern:
<admin> <routers> <adminhtml> <args> <frontName><![CDATA[admin]]></frontName> </args> </adminhtml> </routers> </admin>
Wichtig ist dabei der Teil wo „Admin“ steht bei <frontName><![CDATA[admin]]></frontName>, soll der neue path lauten „admin-admin“ ändert den Part wie folgt: <frontName><![CDATA[admin-admin]]></frontName>
Nach der Veröffentlichung es neuen Internet-Explorer 9 (kurz: IE9), berichten einige Benutzer über Probleme mit Magento und JavaScript. Die Ursache ist ein geändertes DOM-Handling im IE9, die in Magento verwendete Ajax-Bibliothek Prototype berücksichtigt dies noch nicht berücksichtigt. In der aktuellen Prototype Version 1.7 ist dieser Fehler bereits behoben. Allerdings setzen die meisten Magento-Installationen noch ältere Prototype-Bibliotheken ein.
Durch hinzufügen folgender Meta-Tags könnt ihr diesen Fehler temporär umgehen:
<meta http-equiv="X-UA-Compatible" content="IE=8" /> <meta http-equiv="X-UA-Compatible" content="IE=7" />
Events mit Hilfe des Observer im Magento definiert ihr in der config.xml des Modules wie folgt (bsp. Event in der Customer_Adress-Klasse):
<frontend> <events> <namespace_module_address_save_after> <observers> <namespace_module_observer> <type>singleton</type> <class>namespace_module/observer</class> <method>customerSaveFrontEnd</method> </namespace_module_observer> </observers> </namespace_module_address_save_after> </events> </frontend>
Der Aufruf in PHP in der entsprechenden Funktion:
$eventArgs = array( 'address' => $address, 'request' => $this->getRequest(), ); Mage::dispatchEvent('customer_address_save_after', $eventArgs);
Die aufgerufene Funktion in der Observer-Klasse:
public function customerSaveFrontEnd(Varien_Event_Observer $observer) { // add your code here }
Ihr möchtet eine Magento Extension ohne Magento-Connect laden?
Über die Webseite connect.get-the-code.de ist dies möglich. Es gibt keine Garantie dass ihr alle Module findet, meine Tests waren bisher viel versprechend positiv und die Trefferquote bisher 100%!
Mit dem folgenden Code könnt ihr in Magento eine Liste aller Attribute und deren Optionen ausgeben.
require_once $_SERVER['DOCUMENT_ROOT'] . '/app/Mage.php'; umask(0); Mage::app(); $product = Mage::getModel('catalog/product'); $collection = Mage::getResourceModel('eav/entity_attribute_collection') ->setEntityTypeFilter($product->getResource()->getTypeId()); echo "<pre>\n"; foreach ($collection as $attribute) { echo $attribute['attribute_code'] . "\n"; $collection = Mage::getResourceModel('eav/entity_attribute_collection') ->setEntityTypeFilter($product->getResource()->getTypeId()) ->addFieldToFilter('attribute_code', $attribute['attribute_code']); $_attribute = $collection->getFirstItem()->setEntity($product->getResource()); $attribute_options = $_attribute->getSource()->getAllOptions(false); if ($attribute_options) { foreach ($attribute_options as $option) { if ($option['label']) { echo "\t" . $option['label'] . "\n"; } } } } echo "</pre>\n";
Wenn ihr ein MySQL-Datenbank-Dump in eine MySQL 5.0 importieren möchtet welche mit mysqldump auf einer 5.1 erzeugt wurde, dann bekommt ihr höchstwahrscheinlich eine Fehlermeldung wie die folgende:
Der Grund ist dass die key syntax von 5.0 auf 5.1 wie folgt geändert wurde:
mysql50
UNIQUE KEY IDX_BASE( entity_type_id, entity_id, attribute_id, store_id ) USING BTREE,
mysql51
UNIQUE KEY IDX_BASE USING BTREE ( entity_type_id, entity_id, attribute_id, store_id ),
Leider gibt es kein aktuellen Kompatabilitäts-Modus like –comptability=mysql50 in mysqldump.
Es kann zwar mysqldump –comptability=mysql40 benutzt werden, allerdings auf eigene Gefahr 😉
Mit dem folgenden Befehl könnt ihr in der Bash den dump vor dem Import bereinigen (benutzt das consolen-programm „sed“):
sed -i -r 's/\(([^)]+)\) USING BTREE/USING BTREE (\1)/g' magento.sql