shopex 二次開發實戰 新增倉庫模組

2022-03-09 12:22:33 字數 3874 閱讀 9026

近期在做乙個shopex**的修改,因為shopex不是完全開源,作二次開發不是很方便。網上這方面的資料也不多,這裡我總結一下自己的開發過程。

這裡介紹的是新增乙個倉庫模組,此處只介紹倉庫的管理,並不涉及倉庫與商品的整合部分。

1)因為後台的選單是加密了,網上有通過使用者自定義目錄的方式來新增後台選單,不過講得不夠詳細,沒試成功=.=

於是我直接修改後台選單的php,檔案路徑為:core\include_v5\adminschema.php

使用 dezender工具將這個檔案解密。這裡順帶說一下解密,如圖:

選擇 「解密核心3」,經測試,其他兩個都不能正常解密php檔案。

解密後的 adminschema.php 檔案中,有乙個 $menu['goods'] 的陣列,這個就是後台的『商品』選單組了。

然後我在』商品『管理這乙個選單組後面新增』倉庫管理『,如下:

array( "type" => "group", "label" => __( "倉庫管理" ), 

"items" => array(

array(

"type" => "menu", 、

"label" => __( "倉庫列表" ),

"link" => "index.php?ctl=goods/warehouse&act=index" ),

array(

"type" => "menu",

"label" => __( "新增倉庫" ),

"link" => "index.php?ctl=goods/warehouse&act=addnew")))

其中 type="group"表示這是乙個選單組,items 就是裡面的子選單。type="menu"就是乙個可以點選的選單,如果新增target="_blank"屬性,就會以新開視窗的形式開啟選單鏈結。

drop table if exists `hx_warehouse`;

create table `hx_warehouse` (

`id` int(11) not null auto_increment,

`name` varchar(200) not null,

`information` varchar(255) default null,

`disabled` enum('true','false') character set utf8 default 'false',

`data0` varchar(255) default null,

`data1` varchar(255) default null,

primary key (`id`)

) engine=innodb auto_increment=6 default charset=gbk;

這裡並沒有使用 shopex 裡面的字首。

shopex 也是使用mvc分層結構,其中模型層位於:core/model 和 core/model_v5 這兩個資料夾,_v5 就是php的版本在5以上時使用。

這裡的倉庫模組隸屬於商品,所以我在 core/model_v5/goods 下新建乙個 mdl.warehouse.php,注意命名格式,不然無法被檢索到這個model。

裡面為 mdl_warehouse 類,繼承於 shopobject。也可以繼承於 modelfactory,因為shopobject 也是modelfactory的子類。

如果對於 模型層這裡不是很了解,可以解密其他的 mdl 檔案來看看他們的結構。

下面是倉庫模型類:

<?php 

/*********************/

/* */

/* dezend for php5 */

/* nws */

/* nulled.ws */

/* */

/*********************/

include_once( "shopobject.php" );

class mdl_warehouse extends shopobject

public function deletebyid($id)

public function inserthouse($data)

public function updatehouse($adata)

}?>

後台的controller位於:core\admin\controller

同樣地,我們在 goods 這個目錄下新建 ctl.warehouse.php

類中有兩個屬性:

var $workground = 'goods';

var $object = 'goods/warehouse';//模型定位

**如下:

<?php 

include_once('objectpage.php');

class ctl_warehouse extends objectpage

public function addnew()

public function edit($id)

public function deletedo($id)else }

public function adddo()

$houses = &$this->system->loadmodel('goods/warehouse');

if(empty($_post['id']))else

if($r)

$this->splash('success','index.php?ctl=goods/warehouse&act=index',__($info.'倉庫成功'));

else

$this->splash('failed','index.php?ctl=goods/warehouse&act=index',__($info.'倉庫失敗')); }

/*** 設定商品倉庫

* @param unknown_type $id

*/public function count($id,$goodsname)

public function countdo($gid)

if($houses->updatehousecount($gid, $list))else }}

?>

view 層位於:

core\admin\view

倉庫列表的html檔案:

<>

<>新增倉庫<> (共有<>個倉庫)

<>序號<>

<>編輯<>

<>刪除<>

<>倉庫名稱<>

<>說明資訊<>

<>附件屬性[可選]<>

<>

<>

" class="clear_cat row" cid="<>">

<>

')">

<>

',event)">

<>

<>

<><><> <>

<>

<>

view 層 可以參考原有的,因為html檔案是開源的哈。

至此,倉庫模組已經基本完成管理的功能。再需要其他功能,可以在這上面擴充套件,遇到問題可以看看原始碼。

實戰 Ueditor擴充套件二次開發

第一部分 開發前期準備 1 ueditor從1.4.1開始,新增對於二次開發的擴充套件支援。jeewx擴充套件二次開發採用1.4.3.1 jsp 版本 2 上傳設定 簡述 ue做的不夠靈活,不如老版本 1 配置檔案 ueditor jsp config.json 說明 所有專案配置訪問字首 2 引入...

實戰 Ueditor擴充套件二次開發

分享一下我老師大神的人工智慧教程!零基礎,通俗易懂!第一部分 開發前期準備 1 ueditor從1.4.1開始,新增對於二次開發的擴充套件支援。jeewx擴充套件二次開發採用1.4.3.1 jsp 版本 2 上傳設定 簡述 ue做的不夠靈活,不如老版本 1 配置檔案 ueditor jsp conf...

postek二次開發 POSTEK二次開發介面

例項簡介 例項截圖 核心 using system using system.collections.generic using system.componentmodel using system.data using system.drawing using system.text using ...