php大型商城开发思想,ThinkPHP开发大型B2C商城2

十六、文章模块界面处理

文章表

CREATE TABLE `tp_article` (

`id` smallint(5) PRIMARY KEY AUTO_INCREMENT COMMENT '文章id',

`title` varchar(30) NOT NULL COMMENT '标题',

`keywords` varchar(60) NOT NULL COMMENT '关键词',

`description` varchar(150) NOT NULL COMMENT '描述',

`author` varchar(10) NOT NULL COMMENT '作者',

`email` varchar(20) NOT NULL COMMENT '电子邮箱',

`link_url` varchar(100) NOT NULL COMMENT '外链',

`thumb` varchar(100) NOT NULL COMMENT '缩略图',

`content` longtext NOT NULL COMMENT '内容',

`show_top` tinyint(1) NOT NULL DEFAULT '0' COMMENT '置顶 1:是 0:否',

`show_status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '显示 1:是 0:否',

`cate_id` smallint(6) NOT NULL COMMENT '所属栏目',

`addtime` int(10) NOT NULL COMMENT '发布时间'

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

文章添加页面

新增文章

enctype="multipart/form-data">

所属栏目

选择栏目

{volist name="cateRes" id="cate"}

{/in} value="{$cate.id}">

<?php echo str_repeat('-', $cate['level']*8)?>{$cate.cate_name}

{/volist}

* 必填

class="col-sm-2 control-label no-padding-right">标题

type="text">

* 必填

class="col-sm-2 control-label no-padding-right">置顶

type="radio">

class="colored-blue" type="radio">

class="col-sm-2 control-label no-padding-right">关键词

class="col-sm-2 control-label no-padding-right">描述

class="col-sm-2 control-label no-padding-right">作者

type="text">

class="col-sm-2 control-label no-padding-right">邮箱

class="col-sm-2 control-label no-padding-right">外链

type="text">

class="col-sm-2 control-label no-padding-right">缩略图

class="col-sm-2 control-label no-padding-right">文章内容

保存信息

//实例化编辑器

//建议使用工厂方法getEditor创建和引用编辑器实例,如果在某个闭包下引用该编辑器,直接调用UE.getEditor('editor')就能拿到相关的实例

UE.getEditor('content', { initialFrameWidth: 770, initialFrameHeight: 400,

模板输出字符串替换

'tpl_replace_string' => [ '{__PLUS__}' => '/static/admin/plus', ]

十七、文章添加及编辑功能

文章添加

public function add()

{

$cate=new Catetree();

if(request()->isPost()){

$data=input('post.');

$data['addtime']=time();

// $data['article_url']; http://

if($data['link_url'] && stripos($data['link_url'],'http://') === false){

$data['link_url']='http://'.$data['link_url'];

}

//处理图片上传

if($_FILES['thumb']['tmp_name']){

$file = request()->file('thumb');

// 上传到本地服务器

$data['thumb'] = \think\facade\Filesystem::putFile( 'topic', $file);

}

//验证

$validate = validate('article');

if(!$validate->check($data)){

$this->error($validate->getError());

}

$add=Db::table('tp_article')->insert($data);

if($add){

$this->success('添加文章成功!','lst');

}else{

$this->error('添加文章失败!');

}

return;

}

$cateRes = Db::table('tp_cate')->select();

$cateRes=$cate->catetree($cateRes);

View::assign([

'cateRes'=>$cateRes,

]);

return view();

}

文章列表页面

onClick="javascript:window.location.href = 'add.html'"> Add

ID标题缩略图所属栏目跳转置顶显示状态发布时间操作

{volist name="artRes" id="art"}

{$art.id}{$art.title|cut_str=###,10}

{if condition="$art['thumb'] neq ''"}

%7B%24art.thumb%7D

{else/}

暂无缩略图

{/if}

{$art.cate_name}{if condition="$art['link_url'] neq ''"} 是

{else/} 否 {/if}

{if condition="$art['show_top'] eq 1"} 是 {else/}

否 {/if}

{if condition="$art['show_status'] eq 1"} 是

{else/} 否 {/if}

{$art.addtime|date="Y-m-d H:i:s"}

编辑

删除

{$artRes|raw}

文章列表

public function lst()

{

$artRes=Db::table('tp_article')->field('a.*,c.cate_name')->alias('a')->join('tp_cate c',"a.cate_id=c.id")->order('a.id DESC')->paginate(2);

View::assign([

'artRes'=>$artRes,

]);

return view('list');

}

文章编辑页面

文章编辑

public function edit()

{

if(request()->isPost()){

$data=input('post.');

// $data['brand_url']; http://

if($data['link_url'] && stripos($data['link_url'],'http://') === false){

$data['link_url']='http://'.$data['link_url'];

}

//处理图片上传

if($_FILES['thumb']['tmp_name']){

$oldarticles=Db::table('tp_article')->field('thumb')->find($data['id']);

$oldarticleImg=IMG_UPLOADS. $oldarticles['thumb'];

if(file_exists($oldarticleImg)){

@unlink($oldarticleImg);

}

$file = request()->file('thumb');

// 上传到本地服务器

$data['thumb'] = \think\facade\Filesystem::putFile( 'topic', $file);

}

//验证

$validate = validate('article');

if(!$validate->check($data)){

$this->error($validate->getError());

}

$save=Db::table('tp_article')->update($data);

if($save !== false){

$this->success('修改品牌成功!','lst');

}else{

$this->error('修改品牌失败!');

}

return;

}

$id=input('id');

$arts=DB::table('tp_article')->find($id);

$cate=new Catetree();

$cateRes=DB::table('tp_cate')->order('sort DESC')->select();

$cateRes=$cate->catetree($cateRes);

View::assign([

'arts'=>$arts,

'cateRes'=>$cateRes,

]);

return view();

}

十八、完成文章模块功能

删除文章

public function del($id)

{

$arts=Db::table('tp_article')->field('thumb')->find($id);

$thumbSrc=IMG_UPLOADS.$arts['thumb'];

if(file_exists($thumbSrc)){

@unlink($thumbSrc);

}

$del=Db::table('tp_article')->delete($id);

if( $del){

$this->success('删除品牌成功!','lst');

}else{

$this->error('删除品牌失败!');

}

return view();

}

删除分类前判断该分类下的文章和文章相关缩略图

$article=Db::table('tp_article');

foreach ($sonids as $k => $v) {

$artRes=$article->field('id,thumb')->where(array('cate_id'=>$v))->select();

foreach ($artRes as $k1 => $v1) {

$thumbSrc=IMG_UPLOADS.$v1['thumb'];

if(file_exists($thumbSrc)){

@unlink($thumbSrc);

}

$article->delete($v1['id']);

}

}

十九、管理ueditor上传的图片

上传保存路径,可以自定义保存路径和文件名格式

"imagePathFormat": "/ueditor/{yyyy}{mm}{dd}/{time}{rand:6}"

图片列表页面

图片操作

{volist name="imgRes" id="img"}

%7B%24img%7D

class="btn btn-danger btn-sm shiny">

删除

{/volist}

function delimg(o) {

if (!confirm('确定删除本图片吗?')) {

return false;

}

var url = "{:url('delimg')}";

var imgsrc = $(o).attr('id');

$.ajax({

url: url,

type: "post",

dataType: "json",

data: { imgsrc: imgsrc },

success: function (data) {

if (data == 1) {

$(o).parent().parent().remove();

alert('删除图片成功!');

} else if (data == 2) {

alert('删除图片失败!');

} else {

alert('图片不存在!');

}

}

});

}

二十、图片列表展示

定义上传图片路径

define('UEDITOR', __DIR__ . '/ueditor');

define('HTTP_UEDITOR','/ueditor');

define('DEL_UEDITOR',__DIR__ . '');

图片资源处理函数(应用公共文件)

function my_scandir($dir=UEDITOR){

$files=array();

$dir_list=scandir($dir);

foreach ($dir_list as $file) {

if($file != '.' && $file != '..'){

if(is_dir($dir.'/'.$file)){

$files[$file]=my_scandir($dir.'/'.$file);

}else{

$files[]=$dir.'/'.$file;

}

}

}

return $files;

}

ueditor图片管理

public function imglist(){

$_files=my_scandir();

$files=array();

foreach ($_files as $k => $v) {

if(is_array($v)){

foreach ($v as $k1 => $v1) {

$v1=str_replace(UEDITOR, HTTP_UEDITOR, $v1);

$files[]=$v1;

}

}else{

$v=str_replace(UEDITOR, HTTP_UEDITOR, $v);

$files[]=$v;

}

}

View::assign([

'imgRes'=>$files,

]);

return view();

}

ajax异步删除图片

public function delimg(){

$imgsrc=input('imgsrc');

$imgsrc=DEL_UEDITOR.$imgsrc;

if(file_exists($imgsrc)){

if(@unlink($imgsrc)){

echo 1;

}else{

echo 2;

}

}else{

echo 3;

}

}

二十一、友情链接功能完成

CREATE TABLE `tp_link` (

`id` smallint(6) PRIMARY KEY AUTO_INCREMENT COMMENT '友情链接id',

`title` varchar(30) NOT NULL COMMENT '标题',

`link_url` varchar(60) NOT NULL COMMENT '链接地址',

`logo` varchar(100) NOT NULL COMMENT 'logo',

`description` varchar(255) NOT NULL COMMENT '链接描述',

`type` tinyint(1) NOT NULL DEFAULT '1' COMMENT '链接类型 1:文字 2:图片',

`status` tinyint(1) NOT NULL DEFAULT '1' COMMENT '启用状态1:启用 0:禁用'

) ENGINE=MyISAM DEFAULT CHARSET=utf8;

添加页面

新增链接

enctype="multipart/form-data">

class="col-sm-2 control-label no-padding-right">链接标题

type="text">

* 必填

class="col-sm-2 control-label no-padding-right">链接网址

type="text">

class="col-sm-2 control-label no-padding-right">链接logo

class="col-sm-2 control-label no-padding-right">链接描述

class="col-sm-2 control-label no-padding-right">链接状态

checked="checked" type="radio">

显示

type="radio">

隐藏

class="col-sm-2 control-label no-padding-right">链接类型

checked="checked" type="radio">

文字

type="radio">

图片

保存信息

列表页面

onClick="javascript:window.location.href = 'add.html'"> Add

ID链接名称链接地址链接logo链接描述链接类型链接状态操作

{volist name="linkRes" id="link"}

{$link.id}{$link.title} {$link.link_url}

{if condition="$link['logo'] neq ''"}

%7B%24link.logo%7D

{else /}

暂无图片

{/if}

{$link.description|cut_str=###,10}{$link.description|cut_str=###,10}

{if condition="$link['status'] eq 1"}

right.png

{else /}

wrong.png

{/if}

编辑

删除

{$linkRes->render()}

编辑页面

业务逻辑处理

namespace app\admin\controller;

use think\facade\Db;

use think\facade\View;

use app\BaseController;

class Link extends BaseController

{

public function lst()

{

$linkRes=Db::table('tp_link')->order('id DESC')->paginate(6);

View::assign([

'linkRes'=>$linkRes,

]);

return view('list');

}

public function add()

{

if(request()->isPost()){

$data=input('post.');

// $data['link_url']; http://

if($data['link_url'] && stripos($data['link_url'],'http://') === false){

$data['link_url']='http://'.$data['link_url'];

}

//处理图片上传

if($_FILES['logo']['tmp_name']){

$file = request()->file('logo');

// 上传到本地服务器

$data['logo'] = \think\facade\Filesystem::putFile( 'topic', $file);

}

//验证

// $validate = validate('link');

// if(!$validate->check($data)){

// $this->error($validate->getError());

// }

$add=Db::table('tp_link')->insert($data);

if($add){

$this->success('添加链接成功!','lst');

}else{

$this->error('添加链接失败!');

}

return;

}

return view();

}

public function edit()

{

if(request()->isPost()){

$data=input('post.');

// $data['link_url']; http://

if($data['link_url'] && stripos($data['link_url'],'http://') === false){

$data['link_url']='http://'.$data['link_url'];

}

//处理图片上传

if($_FILES['logo']['tmp_name']){

$oldlinks=Db::table('tp_link')->field('logo')->find($data['id']);

$oldlinkImg=IMG_UPLOADS.$oldlinks['logo'];

if(file_exists($oldlinkImg)){

@unlink($oldlinkImg);

}

$file = request()->file('logo');

// 上传到本地服务器

$data['logo'] = \think\facade\Filesystem::putFile( 'topic', $file);

}

//验证

// $validate = validate('link');

// if(!$validate->check($data)){

// $this->error($validate->getError());

// }

$save=db('link')->update($data);

if($save !== false){

$this->success('修改链接成功!','lst');

}else{

$this->error('修改链接失败!');

}

return;

}

$id=input('id');

$links=Db::table('tp_link')->find($id);

View::assign([

'links'=>$links,

]);

return view();

}

public function del($id)

{

$linkObj=Db::table('tp_link');

$links=$linkObj->field('logo')->find($id);

if($links['logo']){

$linkImg=IMG_UPLOADS.$links['logo'];

if(file_exists($linkImg)){

@unlink($linkImg);

}

}

$del=$linkObj->delete($id);

if($del){

$this->success('删除链接成功!','lst');

}else{

$this->error('删除链接失败!');

}

}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
PHPSHE基本资料】: 当前版本:PHPSHE B2C商城系统v1.3(build 20140801 UTF8) 【PHPSHE系统简介】: PHPSHE商城系统是将商品管理、品牌管理、在线购物、订单管理、支付管理、文章管理、会员管理、客户咨询评价、数据统计等功能相结合,并提供了简易的操作、实用的功能,快速让用户建立独立个性化的网上商店,为用户提供了一个低成本、高效率的网上商城建设方案。操作简单好用,会上网者就可以操作。 【PHPSHE功能概述】: 软件适用于于各行业产品销售的商家,主要包括有以下功能: (1)管理员发布、修改,删除商品信息,商品多级分类检索、关键词模糊搜索等; (2)管理员可以对商品品牌名称,图片,描述等管理; (3)管理员可以对商品规格管理,如:尺寸,颜色,套餐等; (4)管理员对商品咨询管理,商品评价管理; (5)订单流程清晰,可及时便捷查询和修改订单信息; (6)管理员对文章分类管理、文章管理、单页信息管理; (7)管理员对会员信息管理,管理帐号管理; (8)管理员对网站整体基本信息的系统设置; (9)订单支付方式集成支付宝即时到帐,担保交易,双功能收款,线下转帐/汇款,货到付款,网银等接口方便用户支付; (10)详细的统计功能,管理员可以实时看到每日订单,网站访客流量情况,提高订单转化率; (11)数据缓存处理,提高系统的运行效率; (12)一键对网站进行备份恢复,保障数据安全; (13)支持首页导航、友情链接、首页广告图管理; (14)会员注册、登录,查询历史订单,咨询,评价以及商品收藏等。 【PHPSHE安装说明】: 1.用FTP工具(如flashfxp)把程序上传到服务器; 2.给./config.php文件、./install目录、./data目录及其子目录,加 777 权限(windows服务器可忽略此步); 3.访问http://您的网址/install进行安装。 【PHPSHE升级说明】: 老版本升级至1.3版本,请先上传PHPSHE1.3程序中的 ./install目录,然后访问 http://您的网址/install/update 按教程进行升级; 【PHPSHE1.3】更新详情 [新增]商品图片放大镜 [新增]网银在线支付接口 [新增]商品批量转移 [新增]导航自定义管理 [新增]自定义快递公司 [新增]模板本地管理 [新增]在线安装模板 [新增]会员密码找回 [新增]网站邮件模块 [新增]商品数据营销(虚拟咨询,虚拟评价,虚拟销量) [新增]商品评价星级 [新增]商品规格市场价 [新增]商品品牌模块 [修正]商品列表市场价显示有误 [修正]数据备份路径被探测 [修正]管理后台商品导航链接错误 [修正]取消订单收货姓名中文验证 [修正]商品规格中价格填0自动过滤 [修正]会员中心货到付款订单付款操作 [修正]分页参数过滤 [修正]后台订单列表货到付款付款链接错误 [修正]咨询,评价删除商品统计错误 [修正]安装成功lock文件 [修正]订单搜索缺少state参数 [优化]购买数量可以手动输入 [优化]后台商品录入表单界面 [优化]后台框架界面重新设计 [优化]资讯,帮助,单页模块整合 [优化]移除售后服务 [优化]咨询、评价入库方式 [优化]商品图片字段长度

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值