Magento块扩展 - Ajax控制器Html输出布局

时间:2014-04-23 10:42:06

标签: html ajax magento controller output

目前,我正在使用AJAX-Controller完成扩展。

AjaxController.php - 控制器 Lager.php - 扩展本身 - 具有HTML输出

扩展程序Lager.php仅在产品视图页面上运行,通过base / default / layouts中的catalog.xml设置样式并显示在pricebox下。

因此。 AjaxRequest由另一个不重要的扩展程序发送,它也像AjaxController一样工作正常。但这是一个问题。在AjaxController.php中,我有一个命令来执行Lager.php中的一个函数。它确实和我能够看到的萤火虫一样,他得到了正确的响应(HTML输出),但我认为布局是错误的。 ..新的Html不会出现在产品视图的任何地方。

AjaxController.php(工作正常,但没有HTML输出,或者没有样式..导致firebug中的html输出中没有包含css了):

<?php

require_once "Mage/Catalog/controllers/ProductController.php";

class Lager_Lager_AjaxController extends Mage_Catalog_ProductController
{
    public function indexAction()
    {
        $this->loadLayout();
        $this->renderLayout();
    }

    public function refreshAction()
    {
        $selected = $this->getRequest()->getParam('selected');

        if($selected == 'true')
        {
            $productId = $this->getRequest()->getParam('productid');
        if($productId)
        {
            $block = $this->getLayout()->getBlockSingleton('lager/lager')->runLager($productId); //does html output
        }
    }
    else
    {

    }
}
}

?>

ajax实现的config.xml部分:

<frontend>
    <routers>
        <lager>
            <use>standard</use>
            <args>
                <module>Lager_Lager</module>
                <frontName>lager</frontName>
            </args>
        </lager>
    </routers>
</frontend>

扩展实现的catalog.xml部分:

<block type="catalog/product_view" name="product.info" template="catalog/product/view.phtml">
            <!--
            <action method="addReviewSummaryTemplate"><type>default</type><template>review/helper/summary.phtml</template></action>
            <action method="addReviewSummaryTemplate"><type>short</type><template>review/helper/summary_short.phtml</template></action>
            <action method="addReviewSummaryTemplate"><type>...</type><template>...</template></action>

            BEGIN LAGER IMPLEMENTATION  -->

            <block type="lager/lager" name="lager" template="lager/lager.phtml" /> <!-- Lager Einbindung -->
            <lager_ajax_refresh>
                <block type="lager/lager" name="lager" output="toHtml" template="lager/lager.phtml" />
            </lager_ajax_refresh>

 <!--     END   -->

            <block type="catalog/product_view_media" name="product.info.media" as="media" template="catalog/product/view/media.phtml"/>
            <block type="core/text_list" name="alert.urls" as="alert_urls" translate="label">
                <label>Alert Urls</label>
            </block>

            <action method="setTierPriceTemplate"><template>catalog/product/view/tierprices.phtml</template></action>

所以Ajax Controller没有使用在catalog.xml中实现的扩展的布局配置。

http://www.directupload.net/file/d/3601/h94loqef_png.htm

0 个答案:

没有答案