Magento Extension programmieren

jimb0p

Erfahrenes Mitglied
Hallo Zusammen,

ich hoffe ich bin hier im PHP Forum richtig mit der Anfrage. Ich möchte gerne lernen Magento Extensions zu programmieren. Dafür möchte ich zu Beginn eine schreiben, die mir nur X Produkte einer bestimmten Kategorie anzeigt mit Preis, Bild und Link. Ich habe bereits damit angefangen, doch da es meine erste Extension ist sitze ich noch ziemlich auf dem trockenen. Aktuell sind bspw. die Links korrekt, aber die Namen sind alle NULL. Ich freue mich über jeden Tipp. Hier meine Codeschnipsel (die Benennungen stammen noch aus einem Tutorial):

Bb_Product.xml
Code:
<?xml version="1.0"?> 
<config>     
	<modules>         
		<Bb_Product>             
			<active>true</active>             
			<codePool>community</codePool>         
		</Bb_Product>     
	</modules> 
</config>

config.xml
Code:
<?xml version="1.0"?> 
<config>     
	<modules>         
		<bb_product>             
			<version>1.0</version>         
		</bb_product>     
	</modules> 
	<frontend>
		<routers>
			<bbproduct>
				<use>standard</use>
				<args>
					<module>Bb_Product</module>
					<frontName>bbproduct</frontName>
				</args>
			</bbproduct>
		</routers>
	</frontend>
</config>

IndexController.php
PHP:
<?php
	class Bb_Product_IndexController extends Mage_Core_Controller_Front_Action{
		public function indexAction(){
			$categoryId = 2;
			$category = Mage::getModel('catalog/category')->load($categoryId);
			
			$products = Mage::getModel('catalog/product')
				->getCollection()
				->addCategoryFilter($category)
				->load();
			
			foreach($products as $p) {
				var_dump($p);
    			echo($p->getProductUrl());
				echo"<br>";
				var_dump($p->getName());
			}
		}	
		
		public function myactionAction(){
			
		}
		
		public function myaction2Action(){
			$this->loadLayout();
			$this->renderLayout();
		}
	}
?>
 
Also ich habe jetzt mit folgendem Code genau das was ich möchte....allerdings nur auf einer weißen Seite. Wie bekomme ich das unter eine Produktseite. Natürlich muss ich es noch ordentlich formatieren. Hier der Code:

PHP:
<?php
	class Bb_Product_IndexController extends Mage_Core_Controller_Front_Action{
		public function indexAction(){
			  $products = Mage::getModel('catalog/product')->getCollection();
			  $prodIds = $products->getAllIds();
			  $product = Mage::getModel('catalog/product');
			  $category = Mage::getModel('catalog/category');
			  $i = 0;
					   
				foreach($prodIds as $productId):
						    $i += 1;
						    $product->load($productId);
						    $product_data = array();
						    //$product_data['sku']=$product->getSku();
						    $product_data['title'] = $product->getName();
						    $product_data['price'] = $product->getPrice();
						    $product_data['picture'] = $product->getImageUrl();
				 			$product_data['buyUrl'] = Mage::helper('checkout/cart')->getAddUrl($product);
						    $html = $product_data['title']." - ".$product_data['price']." - <img src=\"".$product_data['picture']."\">
							<a href=\"".$product_data['buyUrl']."\">buy</a><br>"; 
							echo $html; 
								 
							//Anzahl an Featured Products 
							/*
							if ($i>2){
								exit();    
							}     */
							endforeach;
				}	
				
				public function myactionAction(){
					
				}
				
				public function myaction2Action(){
					$this->loadLayout();
					$this->renderLayout();
				}
			}
?>
 
Zurück