TPshop学习(4)TPshop目录结构

学习内容:
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两个目录。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值