')
{
return $this->displayPrices(
$dataObject,
$dataObject->getData('base_'.$code),
$dataObject->getData($code),
$strong,
$separator
);
}
/**
* Get "double" prices html (block with base and place currency)
*
* @param Varien_Object $dataObject
* @param float $basePrice
* @param float $price
* @param bool $strong
* @param string $separator
* @return string
*/
public function displayPrices($dataObject, $basePrice, $price, $strong = false, $separator = '
')
{
$order = false;
if ($dataObject instanceof Mage_Sales_Model_Order) {
$order = $dataObject;
} else {
$order = $dataObject->getOrder();
}
if ($order && $order->isCurrencyDifferent()) {
$res = '';
$res.= $order->formatBasePrice($basePrice);
$res.= ''.$separator;
$res.= '['.$order->formatPrice($price).']';
} elseif ($order) {
$res = $order->formatPrice($price);
if ($strong) {
$res = ''.$res.'';
}
} else {
$res = Mage::app()->getStore()->formatPrice($price);
if ($strong) {
$res = ''.$res.'';
}
}
return $res;
}
/**
* Filter collection by removing not available product types
*
* @param Mage_Core_Model_Mysql4_Collection_Abstract $collection
* @return Mage_Core_Model_Mysql4_Collection_Abstract
*/
public function applySalableProductTypesFilter($collection)
{
$productTypes = Mage::getConfig()->getNode('adminhtml/sales/order/create/available_product_types')->asArray();
$productTypes = array_keys($productTypes);
foreach($collection->getItems() as $key => $item) {
if ($item instanceof Mage_Catalog_Model_Product) {
$type = $item->getTypeId();
} else if ($item instanceof Mage_Sales_Model_Order_Item) {
$type = $item->getProductType();
} else if ($item instanceof Mage_Sales_Model_Quote_Item) {
$type = $item->getProductType();
} else {
$type = '';
}
if (!in_array($type, $productTypes)) {
$collection->removeItemByKey($key);
}
}
return $collection;
}
/**
* Escape string preserving links
*
* @param array|string $data
* @param null|array $allowedTags
* @return string
*/
public function escapeHtmlWithLinks($data, $allowedTags = null)
{
if (is_string($data) && is_array($allowedTags) && in_array('a', $allowedTags)) {
$links = array();
$i = 1;
$data = str_replace('%', '%%', $data);
$regexp = '@(]*>(?:[^<]|<[^/]|[^a]|])*)@';
while (preg_match($regexp, $data, $matches)) {
$links[] = $matches[1];
$data = str_replace($matches[1], '%' . $i . '$s', $data);
++$i;
}
$data = Mage::helper('core')->escapeHtml($data, $allowedTags);
return vsprintf($data, $links);
}
return Mage::helper('core')->escapeHtml($data, $allowedTags);
}
}