TPshop学习(4)TPshop目录结构

来源:互联网 发布:饥荒联机mod知乎 编辑:程序博客网 时间:2024/04/29 21:51

学习内容:
https://www.kancloud.cn/tpshop/thinkphp5/280417

ThinkPhP5 项目实战(第四讲):

请看下面的图,左边是thinkphp5的目录,右边是tpshop的目录。

这里写图片描述

Admin 管理员模块
Api 手机app接口模块(?)
Home网站前台模块
Mobile 手机网站模块
application\home\logic 共用逻辑层代码
application\common.php TPshop 共用函数库
application\function.php php 基础共用函数库
application\config.php 注意底部的重要配置
以及纯静态缓存规则配置 HTML_CACHE_ARR
application\database.php 数据库配置文件
每个模块父类控制器

例如 application\home\controller\Base.php

www\thinkphp\helper.php TP5 助手函数实现 M( ) D( ) U( ) S( ) C( ) I( ) F( )
(?)

www\plugins 插件目录
www\plugins \function 功能插件
www\plugins\login 登录插件
www\plugins\payment 支付插件
www\plugins\shipping 物流插件
www\public\upload 用户上传目录
www\public\upload\goods\thumb缩略图生成方式
演示缩略图 在模板中怎么生成的

缩略图,index.html首页模板文件中,看到缩略图生成的函数。

<div class="hoste_ri">                    <ul>                        <foreach name="v[hot_goods]" item="g" key="gk">                            <if condition="$gk lt 8">                                <li>                                    <a href="{:U('Home/Goods/goodsInfo',array('id'=>$g[goods_id]))}">                                        <img class="picture_main" src="{$g[goods_id]|goods_thum_images=200,200}"/>                                        <span class="name_main">{$g[goods_name]|getSubstr=0,15}</span>                                        <!--<span class="intro_main">{$g[name]}</span>-->                                        <span class="price_main"><i></i>{$g[shop_price]}</span>                                    </a>                                </li>                            </if>                        </foreach>                    </ul>                </div>

在common.php中

/** *  商品缩略图 给于标签调用 拿出商品表的 original_img 原始图来裁切出来的 * @param type $goods_id  商品id * @param type $width     生成缩略图的宽度 * @param type $height    生成缩略图的高度 */function goods_thum_images($goods_id,$width,$height){    if(empty($goods_id))        return '';    //判断缩略图是否存在    $path = "public/upload/goods/thumb/$goods_id/";    $goods_thumb_name ="goods_thumb_{$goods_id}_{$width}_{$height}";    // 这个商品 已经生成过这个比例的图片就直接返回了    if(file_exists($path.$goods_thumb_name.'.jpg'))  return '/'.$path.$goods_thumb_name.'.jpg';    if(file_exists($path.$goods_thumb_name.'.jpeg')) return '/'.$path.$goods_thumb_name.'.jpeg';    if(file_exists($path.$goods_thumb_name.'.gif'))  return '/'.$path.$goods_thumb_name.'.gif';    if(file_exists($path.$goods_thumb_name.'.png'))  return '/'.$path.$goods_thumb_name.'.png';    $original_img = M('Goods')->where("goods_id", $goods_id)->getField('original_img');    if(empty($original_img)) return '';    $original_img = '.'.$original_img; // 相对路径    if(!file_exists($original_img)) return '';    //$image = new \think\Image();    $image = \think\Image::open($original_img);    $goods_thumb_name = $goods_thumb_name. '.'.$image->type();    //生成缩略图    if(!is_dir($path))        mkdir($path,0777,true);    //参考文章 http://www.mb5u.com/biancheng/php/php_84533.html  改动参考 http://www.thinkphp.cn/topic/13542.html    $image->thumb($width, $height,2)->save($path.$goods_thumb_name,NULL,100); //按照原图的比例生成一个最大为$width*$height的缩略图并保存    //图片水印处理    $water = tpCache('water');    if($water['is_mark']==1){        $imgresource = './'.$path.$goods_thumb_name;        if($width>$water['mark_width'] && $height>$water['mark_height']){            if($water['mark_type'] == 'img'){                $image->open($imgresource)->water(".".$water['mark_img'],$water['sel'],$water['mark_degree'])->save($imgresource);            }else{                //检查字体文件是否存在                if(file_exists('./zhjt.ttf')){                    $image->open($imgresource)->text($water['mark_txt'],'./zhjt.ttf',20,'#000000',$water['sel'])->save($imgresource);                }            }        }    }    return '/'.$path.$goods_thumb_name;}

这里写图片描述

www\template\pc\default\config.php演示模板切换
大概讲述模板配置文件 config.php 和 html.php football足球模板

手机模板的切换。
实际上是更新了,/application/home/home.html
在/template/下有,mobile,pc两个目录。

原创粉丝点击