Magento Entwicklung: Unterschied zwischen den Versionen

Aus Vosp.info
Wechseln zu:Navigation, Suche
(Frontend: Warenkorb)
(globale Funktionsaufrufe)
Zeile 6: Zeile 6:
  
 
== globale Funktionsaufrufe ==
 
== globale Funktionsaufrufe ==
 +
 +
=== eingeloggt ===
 +
<source lang="php">
 +
if(Mage::getSingleton('customer/session')->isLoggedIn() || Mage::app()->getStore()->isAdmin()) {
 +
 +
$customer_id = Mage::getSingleton('customer/session')->getCustomer()->getId();
 +
}
 +
</source>
 +
=== anderes ===
 +
 
dieses sind allgemeine Funktionsaufrufe, die nahe zu überall (oder Kontex bezogen) aufgerufen werden können
 
dieses sind allgemeine Funktionsaufrufe, die nahe zu überall (oder Kontex bezogen) aufgerufen werden können
  

Version vom 24. April 2014, 02:03 Uhr

magento extension: anc_image - eine einfache Extension inkl. datenbanktabelle

Entwicklung

globale Funktionsaufrufe

eingeloggt

if(Mage::getSingleton('customer/session')->isLoggedIn() || Mage::app()->getStore()->isAdmin()) {
			
	$customer_id = Mage::getSingleton('customer/session')->getCustomer()->getId(); 
}

anderes

dieses sind allgemeine Funktionsaufrufe, die nahe zu überall (oder Kontex bezogen) aufgerufen werden können

/**
 * hole _POST und _GET Variablen
 */
$post_get_array = Mage::app()->getRequest();

/**
 * hole aktuelle Session
 */
$session = Mage::getSingleton('checkout/session');

// was in die session schreiben
Mage::getSingleton('checkout/session')->setName('Value');

// was aus der session holen
Mage::getSingleton('checkout/session')->getName('Value');

/**
 * aktuelle url
 */
Mage::helper('core/url')->getCurrentUrl();

Model

/** 
 * product laden - achtung er lädt wirklich jedes mal neu, auf jeden fall chachen
 */
$product = Mage::getModel("catalog/product");
$product = $product->load($param_id);
$product_data = $product->getData();

// ein model laden, welches nicht über id identifiziert wird, sprich andere tabellenspalte (Achtung, auch wenn mehrere ergibt nur eins zurück )
$ncimages = Mage::getModel('kürzel_modulename/modeltabelleklasse')->load($value, 'tabellenspaltenname');

// zeige max() eines query
$quote = Mage::getSingleton('checkout/session')->getQuote();
$collection = Mage::getModel('sales/quote_item')->getCollection();
$string_sql = $collection->getSelect()->reset(Zend_Db_Select::COLUMNS)->columns('max(item_id) as last_item_id')
				    ->where("quote_id = ".$quote->getId()); 
$lastItemId = $collection->getData();

D::s($collection->getData(), '$maxItemId: '.$lastItemId[0]['last_item_id']);

Frontend: Warenkorb

/**
 * hole aktuellen Quote (Angebot)
 */
$quote = Mage::getSingleton('checkout/session')->getQuote();

            if (Mage::registry('current_product')) {
                $this->_product = Mage::registry('current_product');
            } else {
                $this->_product = Mage::getSingleton('catalog/product');
            }


/**
 * wenn mensch ein Posten im Warenkorb bearbeitet, kann sich über die Url=/checkout/cart/configure/id/751/ (_GET) die aktuelle Item ID geholt werden
 */
$getParamId = Mage::app()->getRequest()->getParam('id')

backend

// ist mensch admin
Mage::app()->getStore()->isAdmin()

Block .... schnipsel

{{block type=”catalog/product_list” category_id=”[Ihre Kategorie ID]” template=”catalog/product/list.phtml”}}

Statische Blöcke

Admin Panel >> CMS > Statische Blöcke >> Neuer Block
  • interner Bezeichner: wichtig_dieser_wird_benutzt_um_im_Code_drauf_zuzugreifen
  • Status: aktiviert
  • der rest nach Belieben
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('wichtig_dieser_wird_benutzt_um_im_Code_drauf_zuzugreifen')->toHTML(); ?>

<!-- es kann natürlich auch die ID genommen werden, ist aber wohl ja eher unpraktisch -->
<?php echo $this->getLayout()->createBlock('cms/block')->setBlockId('10')->toHTML(); ?>

Quelle




allgemein Backendend

 // um in einem template die customer url zu bekommen
 $customer_url = $this->getUrl('adminhtml/customer/edit/', array('id'=>$val));

allgemein Frontend

Links


jquery

local.xml

<block type="page/html_head" name="head" as="head">
  ...
 <action method="addJs"><script>scripts/jquery-1.6.min.js</script></action>
 <action method="addJs"><script>scripts/blogrammierer.js</script></action>
</block>

scripts/blogrammierer.js

$.noConflict();
jQuery(document).ready(function($) {     
  // Hier der eigentliche Jquery-Quellcode
});


Unterkategorien einer Kategorie inklusive Bilder und Beschreibung anzeigen

1. Statischen Block anlegen (Backend > CMS > Statische Blöcke >> Neuer Block)

  • Blocktitel: subcategory_listing_full
  • Interner Bezeichner: subcategory_listing_full
  • Status: Aktiviert
  • Inhalt (WYSIWYG Editor ausschalten): eine der folgenden Aufrufe eingen
 <!-- nur typo und template: er nimmt die Kategorie die (per url) aufgerufen wird -->
 {{block type="catalog/navigation"template="catalog/navigation/subcategory_listing_full.phtml"}}
 <!-- parameter category_id: er nimmt die Kategorie Id als Grundlage und ignoriert die Url -->
 {{block type="catalog/navigation" category_id="8" template="catalog/navigation/subcategory_listing_full.phtml"}}
 <!-- zusätzlich falls nur der Name ohne Bilder und Beschreibung angezeigt werden soll -->
 {{block type="catalog/navigation" category_id="8" only_name="1" template="catalog/navigation/subcategory_listing_full.phtml"}}

2. folgende Datei anlegen

app/design/frontend/<<OWNDESIGN>>/default/template/catalog/navigation/subcategory_listing_full.phtml

<div id="categories" class="listing">
	<?php
	
		$_maincategorylisting = $this->getCurrentCategory();
		$layer = Mage::getSingleton('catalog/layer');
		
		/**
		 *  category_id="X" im Blockaufruf angegeben wurde, dann nimm diese Kategorie als Grundlage
		 *	{{block type="catalog/navigation" category_id="8" template="catalog/navigation/subcategory_listing_full.phtml"}}
		 */
		if($this->getCategoryId()) {
			$paramCategory = Mage::getModel('catalog/category')->load($this->getCategoryId());
			$this->setCurrentCategory($paramCategory);		
			$layer->setCurrentCategory($paramCategory);
		}
		$_categories = $this->getCurrentChildCategories();
		$_helper = $this->helper('catalog/output'); 
	?>
	<?php if(count($_categories)):?>
		<?php foreach ($_categories as $_category):?>
			<?php if($_category->getIsActive()): ?>
				<?php
					$cur_category=Mage::getModel('catalog/category')->load($_category->getId());	
					$layer->setCurrentCategory($cur_category);
					$catName = $this->getCurrentCategory()->getName(); 
				?>
				<?php if(!$this->getOnlyName() && $_imageUrl=$this->getCurrentCategory()->getImageUrl()):?>
					<div class="category-image"><a href="<?php echo $this->getCategoryUrl($_category)?>"><img src="<?php echo $_imageUrl?>" height="188"></a></div>
				<?php endif;?>
				<div class="category-name"><a href="<?php echo $this->getCategoryUrl($_category)?>"> <?php echo $_category->getName()?></a></div>
				<?php if(!$this->getOnlyName() && $_description=$this->getCurrentCategory()->getDescription()): ?>
					<div class="category-description"><?php echo $_helper->categoryAttribute($_category, $_description, 'description') ?></div>
				<?php endif; ?>					
			<?php endif; ?>
		<?php endforeach?>
		<?php
			if($this->getCategoryId()) {
				$this->setCurrentCategory($_maincategorylisting);
			}
			$layer->setCurrentCategory($_maincategorylisting);  
		?> 
	<?php endif;?>
</div>

3. statischen Block einbinden

  • zb
    • über CMS > Seiten
    • oder CMS > Statische Blöcke >> Footer Links
    • oder über eine spezielle Kategorie Katalog > Kategorien verwalten >> spezielle Kategorie > Anzeige Einstellungen >> CMS Block

Quellen

interessante Links

Blog-Hints aktivieren

Admin > System > Konfiguration > Entwickleroptionen > obenlinks "Aktueller Konfig.-Bereich" > Main Website
  • Debug
    • Vorlagen Pfadhinweise: Ja
    • Blocknamen zu Hinweisen hinzufügen: Ja


Magento-Themes einfacher erstellen und modifizieren

cd Magento18/
cp -r app/design/frontend/base/default   app/design/frontend/default/my_theme
cd  app/design/frontend/default/my_theme
find -type f -exec rename -n 's/$/-disabled/' '{}' ';'     # simulation
find -type f -exec rename  's/$/-disabled/' '{}' ';'

cd ../../../../../../Magento18/
cp -r skin/frontend/base/default/ skin/frontend/default/my_theme/
cd skin/frontend/default/my_theme/
find -type f -exec rename -n 's/$/-disabled/' '{}' ';'     # simulation
find -type f -exec rename  's/$/-disabled/' '{}' ';'

cp app/design/frontend/default/my_theme/template/catalog/product/view.phtml-disabled app/design/frontend/default/my_theme/template/catalog/product/view.phtml





Extension Entwicklung