博客列表 >模板与高亮

模板与高亮

手机用户1580651468
手机用户1580651468原创
2022年12月07日 14:58:17382浏览

模板与高亮

一. 仿写课堂中的列表与详情页模板

一)列表模板关键代码

1.模板文件代码

  1. <?php
  2. //模板类型表
  3. // 1.文本列表模板:如新闻列表
  4. // 2.图文列表:如产品列表
  5. // 3.详情页模板:文本,图文模板共用一套
  6. return
  7. [
  8. [
  9. 'id'=>1,
  10. 'name'=>'列表-文本-模板',
  11. 'style'=>[
  12. 'default'=>'list_text_default.php',
  13. 'light'=>'list_text_light.php',
  14. 'dark'=>'list_text_dark.php',
  15. ]
  16. ],
  17. [
  18. 'id'=>2,
  19. 'name'=>'列表-图文-模板',
  20. 'style'=>[
  21. 'default'=>'list_img_default.php',
  22. 'light'=>'list_img_light.php',
  23. 'dark'=>'list_img_dark.php',
  24. ]
  25. ],
  26. [
  27. 'id'=>3,
  28. 'name'=>'详情-通用-模板',
  29. 'style'=>[
  30. 'default'=>'detail_general_default.php',
  31. 'light'=>'detail_general_light.php',
  32. 'dark'=>'detail_general_dark.php',
  33. ]
  34. ],
  35. ];

2.头文件关键代码

  1. <?php
  2. session_start();
  3. // 1.统一加载配置文件
  4. require __DIR__.'/../../config/common.php';
  5. // 2.加载当前页面需要的数据
  6. $tdk = require DATA_PATH.'/tdk.php';
  7. //模板信息
  8. $tmpl =require DATA_PATH.'/tmpl.php';
  9. //栏目信息
  10. $cates = require DATA_PATH.'/cates.php';
  11. ?>
  12. .........
  13. <!-- //----------模板开始---------// -->
  14. <!-- 新闻列表导航 -->
  15. <?php
  16. //1.栏目的id
  17. $id=$cates[0]['id'];
  18. //2.栏目name
  19. $name=$cates[0]['name'];
  20. // 3.模板url
  21. $url=$tmpl[0]['style']['default'];
  22. ?>
  23. <a href="<?=$url.'?cid='.$id?>"><?=$name?></a>
  24. <!-- 产品列表导航 -->
  25. <?php
  26. //1.栏目的id
  27. $id=$cates[1]['id'];
  28. //2.栏目name
  29. $name=$cates[1]['name'];
  30. // 3.模板url
  31. $url=$tmpl[1]['style']['default'];
  32. ?>
  33. <a href="<?=$url.'?cid='.$id?>"><?=$name?></a>
  34. <!-- //----------模板结束---------// -->

3.列表页的关键代码

  1. <?php
  2. // 公共页眉
  3. require __DIR__ . '/template/public/header.php';
  4. // 用到的数据
  5. $arts = require DATA_PATH . '/arts.php';
  6. // 当前是模板,要知道显示哪个栏目的信息
  7. // $cid = intval($_GET['cid']);
  8. $cid = $_GET['cid'];
  9. // 详情页模板url
  10. $url = $tmpl[2]['style']['default'];
  11. // detail_general_default.php?cid=栏目id&id=文章id
  12. ?>
  13. <!-- 主体 -->
  14. <main>
  15. <!-- 新闻列表 -->
  16. <div class="news">
  17. <h3>新闻列表</h3>
  18. <div class="list">
  19. <!-- url中的默认全是字符串类型,不用全等,可触发自动转换 -->
  20. <?php foreach ($arts as $art) : ?>
  21. <?php if ($cid == $art['cid']) : ?>
  22. <a href="<?=$url.'?cid='.$cid.'&id='.$art['id']?>"><?=mb_substr($art['title'], 0, 17) ?>...</a>
  23. <?php endif ?>
  24. <?php endforeach ?>
  25. </div>
  26. </div>
  27. <!-- 分页条 -->
  28. <p class="pagebar">
  29. <a href="">1</a>
  30. <a href="">...</a>
  31. <a href="">6</a>
  32. <a href="">7</a>
  33. <a href="" class="active">8</a>
  34. <a href="">9</a>
  35. <a href="">10</a>
  36. <a href="">...</a>
  37. <a href="">20</a>
  38. </p>
  39. </main>
  40. <!-- 页脚 -->
  41. <?php
  42. // 公共页脚
  43. require TMPL_PATH_PUBLIC . '/footer.php';
  44. ?>
  45. <!--
  46. 1. 数据类型
  47. 2. 流程控制: 分支,循环, 替换语法
  48. -->

4.详情页的代码

  1. <?php
  2. // 公共页眉
  3. require __DIR__ . '/template/public/header.php';
  4. // 用到的数据
  5. $arts = require DATA_PATH . '/arts.php';
  6. // 栏目id
  7. $cid = $_GET['cid'];
  8. // 文章id
  9. $id = $_GET['id'];
  10. // 根据cid,id,查看要展示指定内容,只会有一个
  11. $result = array_filter($arts, function ($art) use ($cid, $id) {
  12. return $art['cid'] == $cid && $art['id'] == $id;
  13. });
  14. $art = array_shift($result);
  15. ?>
  16. <!DOCTYPE html>
  17. <html lang="zh-CN">
  18. <head>
  19. <meta charset="UTF-8">
  20. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  21. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  22. <title>Document</title>
  23. </head>
  24. <body style="height: 600px">
  25. <h3><?=$art['title']?></h3>
  26. <img src="<?=$art['img']?>" alt=""
  27. style="min-height: 200px;margin-top: -180px">
  28. <p><?=$art['content']?></p>
  29. </body>
  30. <!-- 页脚 -->
  31. <?php
  32. // 公共页脚
  33. require TMPL_PATH_PUBLIC . '/footer.php';
  34. ?>

5.完成的效果图


二. 实现导航高亮(提示,可用js 或 $_GET实现)

一)用js实现高亮

1.关键js代码

  1. <script type="text/javascript" src="https://cdn.bootcss.com/jquery/3.4.1/jquery.min.js"></script>
  2. <script type="text/javascript">
  3. const urlstr = location.href;
  4. const urlstatus=false;
  5. $("#menu a").each(function () {
  6. if ((urlstr + '/').indexOf($(this).attr('href')) > -1&&$(this).attr('href')!='') {
  7. $(this).addClass('cursel'); urlstatus = true;
  8. } else {
  9. $(this).removeClass('cursel');
  10. }
  11. });
  12. if (!urlstatus) {$("#menu a").eq(0).addClass('cursel'); }
  13. </script>

2.css代码

  1. <style>
  2. .menu { padding:0; margin:0; list-style-type:none;}
  3. .menu li { background:#FFD1A4; margin-right:1px; float:left; color:#fff; }
  4. .menu li a { display:block; width:60px; text-align:center; height:32px; line-height:32px; color:#fff; font-size:13px; text-decoration:none;}
  5. .cursel{ background:#D96C00; font-weight:bold;}
  6. </style>

3.实现效果图

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议