Thoma Louis,
You can this by below step:
create Listlinks.php
file under app>code>local>Mage>Downloadable>Block>Catalog>Product
and code this file:
<?php
class Mage_Downloadable_Block_Catalog_Product_Listlinks extends Mage_Catalog_Block_Product_Abstract
{
/**
* Enter description here...
*
* @return boolean
*/
public function setProduct($product) {
$this->_product = $product;
return $this;
}
public function getProduct() {
return $this->_product;
}
public function getLinksPurchasedSeparately()
{
return $this->getProduct()->getLinksPurchasedSeparately();
}
/**
* Enter description here...
*
* @return boolean
*/
public function getLinkSelectionRequired()
{
return $this->getProduct()->getTypeInstance(true)
->getLinkSelectionRequired($this->getProduct());
}
/**
* Enter description here...
*
* @return boolean
*/
public function hasLinks()
{
return $this->getProduct()->getTypeInstance(true)
->hasLinks($this->getProduct());
}
/**
* Enter description here...
*
* @return array
*/
public function getLinks()
{
return $this->getProduct()->getTypeInstance(true)
->getLinks($this->getProduct());
}
/**
* Enter description here...
*
* @param Mage_Downloadable_Model_Link $link
* @return string
*/
public function getFormattedLinkPrice($link)
{
$price = $link->getPrice();
$store = $this->getProduct()->getStore();
if (0 == $price) {
return '';
}
$taxCalculation = Mage::getSingleton('tax/calculation');
if (!$taxCalculation->getCustomer() && Mage::registry('current_customer')) {
$taxCalculation->setCustomer(Mage::registry('current_customer'));
}
$taxHelper = Mage::helper('tax');
$coreHelper = $this->helper('core');
$_priceInclTax = $taxHelper->getPrice($link->getProduct(), $price, true);
$_priceExclTax = $taxHelper->getPrice($link->getProduct(), $price);
$priceStr = '<span class="price-notice">+';
if ($taxHelper->displayPriceIncludingTax()) {
$priceStr .= $coreHelper->currencyByStore($_priceInclTax, $store);
} elseif ($taxHelper->displayPriceExcludingTax()) {
$priceStr .= $coreHelper->currencyByStore($_priceExclTax, $store);
} elseif ($taxHelper->displayBothPrices()) {
$priceStr .= $coreHelper->currencyByStore($_priceExclTax, $store);
if ($_priceInclTax != $_priceExclTax) {
$priceStr .= ' (+'.$coreHelper
->currencyByStore($_priceInclTax, $store).' '.$this->__('Incl. Tax').')';
}
}
$priceStr .= '</span>';
return $priceStr;
}
/**
* Returns price converted to current currency rate
*
* @param float $price
* @return float
*/
public function getCurrencyPrice($price)
{
$store = $this->getProduct()->getStore();
return $this->helper('core')->currencyByStore($price, $store, false);
}
/**
* Enter description here...
*
* @return string
*/
public function getJsonConfig()
{
$config = array();
$coreHelper = Mage::helper('core');
foreach ($this->getLinks() as $link) {
$config[$link->getId()] = $coreHelper->currency($link->getPrice(), false, false);
}
return $coreHelper->jsonEncode($config);
}
public function getLinkSamlpeUrl($link)
{
return $this->getUrl('downloadable/download/linkSample', array('link_id' => $link->getId()));
}
/**
* Return title of links section
*
* @return string
*/
public function getLinksTitle()
{
if ($this->getProduct()->getLinksTitle()) {
return $this->getProduct()->getLinksTitle();
}
return Mage::getStoreConfig(Mage_Downloadable_Model_Link::XML_PATH_LINKS_TITLE);
}
/**
* Return true if target of link new window
*
* @return bool
*/
public function getIsOpenInNewWindow()
{
return Mage::getStoreConfigFlag(Mage_Downloadable_Model_Link::XML_PATH_TARGET_NEW_WINDOW);
}
/**
* Returns whether link checked by default or not
*
* @param Mage_Downloadable_Model_Link $link
* @return bool
*/
public function getIsLinkChecked($link)
{
$configValue = $this->getProduct()->getPreconfiguredValues()->getLinks();
if (!$configValue || !is_array($configValue)) {
return false;
}
return $configValue && (in_array($link->getId(), $configValue));
}
/**
* Returns value for link's input checkbox - either 'checked' or ''
*
* @param Mage_Downloadable_Model_Link $link
* @return string
*/
public function getLinkCheckedValue($link)
{
return $this->getIsLinkChecked($link) ? 'checked' : '';
}
}
And add the below code in list.phtml
<?php if($_product->getTypeId()=='downloadable'):?>
<?php echo $this->getLayout()->createBlock('downloadable/catalog_product_listlinks')->setTemplate('downloadable/catalog/product/links.phtml')->setProduct($_product)->toHtml();?>
<?php endif; ?>