我知道有很多帖子我见过,我没有在下面的代码中找到错误:config.xml:
<events>
<core_block_abstract_to_html_after>
<observers>
<type>singleton</type>
<class>WebDirect_CustomPrice_Model_Observer</class>
<method>convertPricespanToInput</method>
</observers>
</core_block_abstract_to_html_after>
</events>
Run Code Online (Sandbox Code Playgroud)
观察者类:
class WebDirect_CustomPrice_Model_Observer
{
const MODULE_NAME = 'WebDirect_CustomPrice';
public function convertPricespanToInput($observer = NULL)
{
if (!$observer) {
return;
}
if ('product.info.simple' == $observer->getEvent()->getBlock()->getNameInLayout()) {
if (!Mage::getStoreConfig('advanced/modules_disable_output/'.self::MODULE_NAME)) {
$transport = $observer->getEvent()->getTransport();
$block = new WebDirect_CustomPrice_Block_priceSpanToInput();
$block->setPassingTransport($transport['html']);
$block->toHtml();
}
}
return $this;
}
}
Run Code Online (Sandbox Code Playgroud)
以及在产品视图页面中添加自定义javascript的类:
class WebDirect_CustomPrice_Block_priceSpanToInput extends Mage_Core_Block_Text {
//protected $_nameInLayout = 'selectify.qty_input_to_select';
//protected $_alias = 'qty_input_to_select';
public function setPassingTransport($transport)
{
$this->setData('text', $transport.$this->_generateQtyInputToSelectHtml());
}
private function _generatepriceSpanToInputHtml()
{
$price = Mage::registry('current_product')->getPrice();
$product_Id = Mage::registry('current_product')->getId();
return '
<script type="text/javascript">
//<![CDATA[
document.observe("dom:loaded", function() {
$("product-price-'.$product_Id.'").replace(\'<span class="price" id="product-price-'.$product_Id.'"> <input type="text" id="CP_ID" class="input-text price" name="custom_price" style="width:auto;" value="'.$price.'" onchange="onChangeCP(this);"/></span><input type="hidden" id="custom_price_total" name="custom_price_total" value="'.$price.'">\');
});
//]]>
</script>
';
}
}
Run Code Online (Sandbox Code Playgroud)
那段代码有什么错误吗?我看不到任何东西!
Moh*_*ora 23
问题在于在config.xml中定义观察者函数.
<events>
<core_block_abstract_to_html_after>
<observers>
<type>singleton</type>
<class>WebDirect_CustomPrice_Model_Observer</class>
<method>convertPricespanToInput</method>
</observers>
</core_block_abstract_to_html_after>
</events>
Run Code Online (Sandbox Code Playgroud)
应该替换为:
<events>
<core_block_abstract_to_html_after>
<observers>
<some_unique_identifier>
<type>singleton</type>
<class>WebDirect_CustomPrice_Model_Observer</class>
<method>convertPricespanToInput</method>
</some_unique_identifier>
</observers>
</core_block_abstract_to_html_after>
</events>
Run Code Online (Sandbox Code Playgroud)
其中"some_unique_identifier"可以是任何唯一的字符串.
| 归档时间: |
|
| 查看次数: |
25271 次 |
| 最近记录: |