首页 文章

Magento - 向管理员添加新标签客户编辑并在模型中包含表单

提问于
浏览
0

我正在尝试向Magento管理员的“客户编辑”页面添加一个新选项卡,并在该选项卡上有一个表单,该表单使用模型加载和保存数据 .

我有这样的标签工作正常(但我很确定这种方式真的很糟糕):

萨勒曼/ Tabtest /座/ Adminhtml /客户/编辑/标签/ action.php的

public function __construct()
    {
        $this->setTemplate('tabtest/action.phtml');
    }

    public function getCustomtabInfo(){
        $customer = Mage::registry('current_customer');
        $customtab='My test tab';
        return $customtab;
    }
    /**
     * Return Tab label
     *
     * @return string
     */
    public function getTabLabel()
    {
        return $this->__('Sulman Test Tab');
    }
    /**
     * Return Tab title
     *
     * @return string
     */
    public function getTabTitle()
    {
        return $this->__('Sulman Test Tab Title');
    }
    /**
     * Can show tab in tabs
     *
     * @return boolean
     */
    public function canShowTab()
    {
        $customer = Mage::registry('current_customer');
        return (bool)$customer->getId();
    }
    /**
     * Tab is hidden
     *
     * @return boolean
     */
    public function isHidden()
    {
        return false;
    }
    /**
     * Defines after which tab, this tab should be rendered
     *
     * @return string
     */
    public function getAfter()
    {
        return 'tags';
    }
}

然后我的etc / config.xml看起来像这样:

<?xml version="1.0" encoding="UTF-8"?>
<config>
    <modules>
        <Sulman_Tabtest>
            <version>0.0.1</version>
        </Sulman_Tabtest>
    </modules>
    <adminhtml>
        <layout>
            <updates>
                <tabtest>
                    <file>tabtest.xml</file>
                </tabtest>
            </updates>
        </layout>
    </adminhtml>
    <admin>
        <routers>
            <adminhtml>
                <args>
                    <modules>
                        <sulman_tabtest before="Mage_Adminhtml">Sulman_Tabtest_Adminhtml</sulman_tabtest>
                    </modules>
                </args>
            </adminhtml>
        </routers>
    </admin>
    <global>
        <blocks>
            <tabtest>
                <class>Sulman_Tabtest_Block</class>
            </tabtest>
        </blocks>
    </global>
</config>

最后我的tabtest / action.phtml看起来像这样(可怕的......):

<?php
$customer = Mage::registry('current_customer');
$read = Mage::getSingleton('core/resource')->getConnection('core_read');
$sql = "SELECT * FROM mytable WHERE entity_id = '".$customer->getId()."'";
$results = $read->fetchAll($sql);
?>
<div id="customer_info_tabs_customer_edit_tab_action_content">
    <div class="entry-edit">
        <div class="entry-edit-head">
            <h4 class="icon-head head-edit-form fieldset-legend">My title</h4>
        </div>
        <div id="group_fields4" class="fieldset fieldset-wide">
            <div class="hor-scroll">
                <h3>My title</h3>
                <div>
                    <form action="<?php echo $this->getUrl('adminhtml/tabtest/update/', array('customer_id' => $customer_id)); ?>;" method="get">
                        <?php foreach($results as $result):?>
                            <p>
                                <strong><?php echo $result['email']?></strong>
Max Order Amount: <input type="text" name="max_order_amount" value="<?php echo $result['max_order_amount']?>">
</p> <?php endforeach; ?> <input type="submit" value="Post This Form"/> </form> </div> </div> </div> </div> </div>

然后我将设置一个updateAction控制器来处理帖子,更新数据库等并重定向...

坦率地说,这一切看起来都是一种非常糟糕的方式......我已经在谷歌和这里找到了但却找不到解决方案 . 我也尝试通过Magento Core追踪 . 我也试图找到一个Magento连接模块,这样做,所以我可以研究它!

我真的需要一个tab_form并以这种方式设置它,但我找不到这样做的方法 .

有人指出我正确的方向吗?谢谢 .

1 回答

相关问题