答案 0 :(得分:7)
首先使用http://www.silksoftware.com/magento-module-creator/创建基本模块,然后您必须创建以下文件并在给定路径中添加此文件。
模块路径= app/code/local/Restapi/Categories
1) app / code / local / Restapi / Categories / etc / api2.xml
<?xml version="1.0"?>
<config>
<api2>
<resource_groups>
<catalog translate="title" module="api2">
<title>Catalog</title>
<sort_order>10</sort_order>
</catalog>
</resource_groups>
<resources>
<categories translate="title" module="api2">
<group>catalog</group>
<model>categories/api2_category</model>
<title>Categories</title>
<sort_order>10</sort_order>
<privileges>
<admin>
<retrieve>1</retrieve>
<!-- <create>1</create>
<update>1</update>
<delete>1</delete> -->
</admin>
<customer>
<retrieve>1</retrieve>
<!-- <create>1</create>
<update>1</update>
<delete>1</delete> -->
</customer>
<guest>
<retrieve>1</retrieve>
<!-- <create>1</create>
<update>1</update>
<delete>1</delete> -->
</guest>
</privileges>
<attributes>
<category_id>Category ID</category_id>
<name>Name</name>
<parent_id>Category Parent ID</parent_id>
<child_id>Category Child List</child_id>
<active>Active</active>
<level>Level</level>
<position>Position</position>
</attributes>
<routes>
<route>
<route>/categories/:cat_id</route>
<action_type>collection</action_type>
</route>
</routes>
<versions>1</versions>
</categories>
</resources>
</api2>
</config>
这里cat_id是我们传递给获取子类别的类别ID。
2) app / code / local / Restapi / Categories / Model / Api2 / Category / Rest / Customer / V1.php
<?php
class Restapi_Categories_Model_Api2_Category_Rest_Customer_V1 extends Restapi_Categories_Model_Api2_Category
{
/**
* Retrieve list of category list.
*
* @return array
*/
protected function _retrieveCollection()
{
$ruleId = $this->getRequest()->getParam('cat_id');
// $cat_mod = Mage::getModel('catalog/category')->load($ruleId)->toArray();
$cats = Mage::getModel('catalog/category')->load($ruleId);
$subcats = Mage::getModel('catalog/category')->load($ruleId)->getChildren();
$cur_category = array();
$node['category_id'] = $ruleId;
$node['name'] = $cats->getName();
$node['parent_id'] = $cats->getParentId();
$node['child_id'] = $subcats;
if($cats->getIsActive()){
$node['active'] = 1;
}else{
$node['active'] = 0;
}
$node['level'] = $cats->getLevel();
$node['position'] = $cats->getPosition();
$cur_category[] = $node;
// $subcats = Mage::getModel('catalog/category')->load($ruleId)->getAllChildren();
// $subcats = Mage::getModel('catalog/category')->load($ruleId)->getChildren();
if($subcats != '')
{
foreach(explode(',',$subcats) as $subCatid)
{
$_category = Mage::getModel('catalog/category')->load($subCatid);
$childcats = Mage::getModel('catalog/category')->load($subCatid)->getChildren();
$node['category_id'] = $subCatid;
$node['name'] = $_category->getName();
$node['parent_id'] = $_category->getParentId();
$node['child_id'] = $childcats;
if($_category->getIsActive()){
$node['active'] = 1;
}else{
$node['active'] = 0;
}
$node['level'] = $_category->getLevel();
$node['position'] = $_category->getPosition();
$cur_category[] = $node;
}
}
return $cur_category;
}
如果您有其他用户,例如admin和guest,您也可以在此路径中添加此相同的V1.php文件。
app/code/local/Restapi/Categories/Model/Api2/Category/Rest/Admin/V1.php
app/code/local/Restapi/Categories/Model/Api2/Category/Rest/Guest/V1.php
您只想更改V1.php文件中的类路径,例如Customer = Admin。