Magento自定义模块块无法正常工作

时间:2016-09-28 11:56:00

标签: magento module model block

我正在使用

在cms页面中调用我的自定义模块块
{{block type="customreviews/reviews" name="customreviews_reviews" template="Customreviews/reviews.phtml"}}

我的模块配置文件如下:

<config>
<modules>
    <Suave_Customreviews>
        <version>0.0.1</version>
    </Suave_Customreviews>
</modules>

<global>
    <models>
        <customreviews>
            <class>Suave_Customreviews_Model</class>
        </customreviews>
    </models>
    <blocks>
        <customreviews>
            <class>Suave_Customreviews_Block</class>
        </customreviews>
    </blocks>
    <herlps>
        <customreviews>
            <class>Suave_Customreviews_Helper</class>
        </customreviews>
    </herlps>
</global>

<frontend>
    <routers>
        <customreview>
            <use>standard</use>
            <args>
                <module>Suave_Customreviews</module>
                <frontName>customreviews</frontName>
            </args>
        </customreview>
    </routers>
    <layout>
        <updates>
            <customreviews>
                <file>Customreview.xml</file>
            </customreviews>
        </updates>
    </layout>
</frontend>

阻止我在名为Reviews.php的模块中创建的php文件

class Suave_Customreviews_Model_Reviews extends Mage_Core_Block_Template

{

public function firstTenCategoryReviews()
{
    $data = Mage::getSingleton('customreviews/reviews')->firstTenCategoryReviews();
    return $data;
}

}

我的magento版本是1.9.2.4 我允许使用magento admin blocks权限进行自定义视图/评论,但仍然无效。

3 个答案:

答案 0 :(得分:1)

有块类是错误的。它应该是

import UIKit
import Alamofire
import SwiftyJSON

class TableViewController: UITableViewController {

var names = [String]()
var rowCount = [Int]()
var tableTitle = [String]()
typealias JSONStandard = [String : AnyObject]

override func viewDidLoad() {
    super.viewDidLoad()
    // Do any additional setup after loading the view, typically from a nib.

}


func callAlamo(){
    let url = "http://pos1.dermedia.co.il/iphone/getLasttransactions.php?cardid="
    //let id = UserDefaults.standard.string(forKey: "UserDefaults")
    Alamofire.request(url).responseJSON{(respones)->Void in

        if let value = respones.result.value{
            let json = JSON(value)
            //   print (json["items"].arrayValue)
            let rows = json["items"].arrayValue
           // print (rows)
            for anItem in rows {
                let title: String? = anItem["SupplierName"].stringValue
                self.tableTitle.append(title!)
                 print(self.tableTitle.count)
            }

        }
        DispatchQueue.main.async {
            self.tableView.reloadData()
        }

    }

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

override func viewDidAppear(_ animated: Bool) {
    // let  isUserLoggedin = UserDefaults.standard.boll(forKey: "userLogIn")
    let ststus = UserDefaults.standard.string(forKey: "userLogIn")
    if  ststus == "false" {
        self.performSegue(withIdentifier: "loginView", sender: self)
    }else{

        callAlamo()
        print ("gggggg")
        print(self.tableTitle.count)
    }
}



   @IBAction func logout(_ sender: AnyObject) {
    UserDefaults.standard.set(false, forKey: "userLogIn")
    UserDefaults.standard.synchronize()
    self.performSegue(withIdentifier: "loginView", sender: self)

}


override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    print (self.tableTitle)
    print("hhh")
    return tableTitle.count
}





}

答案 1 :(得分:0)

请检查您的xml文件是否缺少节点。

<config>
<modules>
    <Suave_Customreviews>
        <version>0.0.1</version>
    </Suave_Customreviews>
</modules>

<global>
    <models>
        <customreviews>
            <class>Suave_Customreviews_Model</class>
        </customreviews>
    </models>
    <blocks>
        <customreviews>
            <class>Suave_Customreviews_Block</class>
        </customreviews>
    </blocks>
    <herlps>
        <customreviews>
            <class>Suave_Customreviews_Helper</class>
        </customreviews>
    </herlps>
</global>

<frontend>
    <routers>
        <customreview>
            <use>standard</use>
            <args>
                <module>Suave_Customreviews</module>
                <frontName>customreviews</frontName>
            </args>
        </customreview>
    </routers>
    <layout>
        <updates>
            <customreviews>
                <file>Customreview.xml</file>
            </customreviews>
        </updates>
    </layout>
</frontend>
</config>  <!-- Check if you missed this node  -->

根据config.xml文件中提到的代码,您缺少</config>个节点。我假设您已使用<?xml version="1.0"?>作为xml文件中的第一行。

你也尝试过Suman Singh提到的内容吗?

答案 2 :(得分:0)

经过大量的谷歌搜索后,我发现了这个问题。

我使用的模块名称是customreviews,但模型的名称和我命名的块php文件是Reviews.php。

默认情况下,magento会检查名为模块名称的模块和块文件。

所以我重命名了模型并将php文件阻塞到模块名称,并且工作正常。

Suman Singh提到我的区块代码也存在问题。

感谢Suman的纠正。