From 109e122d498710871c6d09d131644e4a8a219830 Mon Sep 17 00:00:00 2001 From: jsasg <735273025@qq.com> Date: Sat, 12 Apr 2025 16:21:32 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E6=96=87=E7=AB=A0=E8=AF=A6?= =?UTF-8?q?=E6=83=85=E9=A1=B5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/index/controller/Article.php | 31 +++++++- app/index/lang/en-us.php | 10 +++ app/index/lang/zh-cn.php | 10 +++ app/index/model/ArticleModel.php | 13 +++- app/index/view/article/detail.html | 84 ++++++++++++++++++++++ app/index/view/article/index.html | 11 ++- public/static/index/css/articleDetail.css | 3 +- public/static/index/images/1line.png | Bin 0 -> 1093 bytes public/static/index/images/search.png | Bin 0 -> 572 bytes public/static/index/images/share1.png | Bin 0 -> 1194 bytes public/static/index/images/share2.png | Bin 0 -> 1394 bytes public/static/index/images/share3.png | Bin 0 -> 1361 bytes public/static/index/images/share4.png | Bin 0 -> 1501 bytes 13 files changed, 150 insertions(+), 12 deletions(-) create mode 100644 app/index/view/article/detail.html create mode 100755 public/static/index/images/1line.png create mode 100755 public/static/index/images/search.png create mode 100755 public/static/index/images/share1.png create mode 100755 public/static/index/images/share2.png create mode 100755 public/static/index/images/share3.png create mode 100755 public/static/index/images/share4.png diff --git a/app/index/controller/Article.php b/app/index/controller/Article.php index 6d7d85b7..52cfadb4 100644 --- a/app/index/controller/Article.php +++ b/app/index/controller/Article.php @@ -20,8 +20,9 @@ class Article extends Common $param = request()->param([ 'pid', 'cid', - 'page/d' => 1, - 'size/d' => 12, + 'keywords' => null, + 'page/d' => 1, + 'size/d' => 12, ]); // 获取banner焦点图 @@ -55,7 +56,10 @@ class Article extends Common 'desc', 'image' ]) + ->withSearch(['title'], ['title' => $param['keywords']??null]) ->category($param['cid']??$categorys[0]['id']) + ->where('release_time', '<=', date('Y-m-d H:i:s')) + ->order(['sort' => 'asc', 'release_time' => 'desc', 'id' => 'desc']) ->paginate([ 'list_rows' => $param['size'], 'page' => $param['page'], @@ -71,6 +75,29 @@ class Article extends Common */ public function detail() { + $id = request()->param('id'); + $detail = ArticleModel::withoutField([ + 'created_at', + 'updated_at', + 'deleted_at' + ]) + ->bypk($id) + ->find(); + View::assign('detail', $detail); + // 获取倒序或发布时间倒序3篇文章做为推荐文章 + $recommends = ArticleModel::field([ + 'id', + 'title', + 'desc', + 'image' + ]) + ->where('id', '<>', $id) + ->order(['release_time' => 'desc', 'id' => 'desc']) + ->limit(3) + ->select(); + View::assign('recommends', $recommends); + + return View::fetch('detail'); } } diff --git a/app/index/lang/en-us.php b/app/index/lang/en-us.php index 75fa39c3..81f3cb94 100644 --- a/app/index/lang/en-us.php +++ b/app/index/lang/en-us.php @@ -21,5 +21,15 @@ return [ 'faq' => 'FAQ', 'faq_short_desc' => 'What are you most concerned about', 'faq_desc' => 'Our customer support is available Manday to Friday 9am600pmAverage arswer time 24h', + ], + 'article' => [ + 'detail_share' => 'SHARE', + 'detail_leave_reply' => 'Leave a Reply', + 'detail_leave_reply_name' => 'Name', + 'detail_leave_reply_email' => 'Email', + 'detail_leave_reply_email_tip' => 'Your email address will not be pulished.', + 'detail_leave_reply_comment' => 'Comment', + 'detail_leave_reply_submit' => 'POST COMMENT', + 'detail_recommend' => 'Recommended for you', ] ]; \ No newline at end of file diff --git a/app/index/lang/zh-cn.php b/app/index/lang/zh-cn.php index 3ad53f3b..14e93584 100644 --- a/app/index/lang/zh-cn.php +++ b/app/index/lang/zh-cn.php @@ -21,5 +21,15 @@ return [ 'faq' => '常见问题', 'faq_short_desc' => '回答您最关心的问题', 'faq_desc' => '客服团队的工作时间:周一到周五,早9点到晚6点 平均应答时间:24小时内', + ], + 'article' => [ + 'detail_share' => '分享', + 'detail_leave_reply' => '留言', + 'detail_leave_reply_name' => '名称', + 'detail_leave_reply_email' => '电子邮箱', + 'detail_leave_reply_email_tip' => '您的电子邮件地址不会被公开', + 'detail_leave_reply_comment' => '留言', + 'detail_leave_reply_submit' => '提交留言', + 'detail_recommend' => '你可能还喜欢', ] ]; \ No newline at end of file diff --git a/app/index/model/ArticleModel.php b/app/index/model/ArticleModel.php index 8903d51f..03b173da 100644 --- a/app/index/model/ArticleModel.php +++ b/app/index/model/ArticleModel.php @@ -20,18 +20,25 @@ class ArticleModel extends ArticleBaseModel // 语言范围查询 public function scopeLanguage($query, $language) { - return $query->where('language_id', '=', $language); + $query->where('language_id', '=', $language); } // 首页推荐状态范围查询 public function scopeRecommend($query, bool $stat = true) { - return $query->where('recommend', '=', (int)$stat); + $query->where('recommend', '=', (int)$stat); } // 文章分类范围查询 public function scopeCategory($query, $category) { - return $query->where('category_id', '=', $category); + $query->where('category_id', '=', $category); + } + + // 文章标题搜索器 + public function searchTitleAttr($query, $value) + { + if (is_null($value)) return; + $query->where('title', 'like', "%$value%"); } } diff --git a/app/index/view/article/detail.html b/app/index/view/article/detail.html new file mode 100644 index 00000000..ce450117 --- /dev/null +++ b/app/index/view/article/detail.html @@ -0,0 +1,84 @@ +{extend name="public/base" /} +{block name="title"} + {notempty name="detail.seo_title"}{$detail.seo_title}{else /}{__BLOCK__}{/notempty} +{/block} +{block name="seo"} + {notempty name="detail.seo_keywords"} + + + {else /} + {__BLOCK__} + {/notempty} +{/block} +{block name="style"} + +{/block} +{block name="main"} +
+ +
+
+
+

{$detail.title}

+

{$detail.desc}

+
+ +
{$detail.content|raw}
+
+
+
+

{:lang('article.detail_share')}

+ +
+
+

{:lang('article.detail_leave_reply')}

+
+ {:lang('article.detail_leave_reply_name')} + + {:lang('article.detail_leave_reply_email')} + +

{:lang('article.detail_leave_reply_email_tip')}

+ {:lang('article.detail_leave_reply_comment')} + +
{:lang('article.detail_leave_reply_submit')}
+
+
+
+
+ {notempty name="$recommends"} +
+ +
+
+

{:lang('article.detail_recommend')}

+

+
+ +
+
+ {/notempty} +
+{/block} \ No newline at end of file diff --git a/app/index/view/article/index.html b/app/index/view/article/index.html index 75145378..3359967d 100644 --- a/app/index/view/article/index.html +++ b/app/index/view/article/index.html @@ -21,8 +21,10 @@
- - +
+ + +
{notempty name="articles"} @@ -30,7 +32,7 @@
{volist name="articles" id="ar"}
- +

{$ar.title}

{$ar.desc}

@@ -44,7 +46,4 @@ {/notempty}
-{/block} -{block name="script"} - {/block} \ No newline at end of file diff --git a/public/static/index/css/articleDetail.css b/public/static/index/css/articleDetail.css index 03a31f15..70d3ed88 100755 --- a/public/static/index/css/articleDetail.css +++ b/public/static/index/css/articleDetail.css @@ -1,7 +1,8 @@ .orico_Page_articleDetail { width: 100%; position: relative; - height: 100vh; + min-height: 100vh; + padding: 3.75rem 0; overflow-y: auto; overflow-x: hidden; background: #f2f2f2; diff --git a/public/static/index/images/1line.png b/public/static/index/images/1line.png new file mode 100755 index 0000000000000000000000000000000000000000..648af2f8b76281c824273ae8c221a3adf73e7683 GIT binary patch literal 1093 zcmaJ=OK8+U7@lga59*H+=iCiWybiJPS5#0V5T+(1k@aHdcVIo|xaXDA22 zM&GYblF7<(!^Hvbq&|E*h$tF>+>v(VxHE__4K(G4dG`CGCoJQ8dG?fA5i602ru}0J zF*><0QFj++T-{@j9Ad4fHDUqL(~nZGTn!zYO&WeYF4SMMNfHlnvlp4gjTD? zw`3m2Qv%d=T@WQfk~r$YCG#P1+FY27_82UbxUnA*ABRlJ=rr&g$+I-l)f9rLQduJo zlWw7C$%M8O36K|sAV~A-cqgQW{)N%kJE_k{NT{I%&&4k7M{~3XrnOsND0QUK7$;(% zHpQ8>usau^kd&=FOaJhm?-`1slqAy@bxAXA6~cmQ+a;}FTToOo#jM`r=!dmb(~`5M zCaPKqLR&8uEY;Rvu^_3kRJ83Lwj3tJ30>6F^{H+bn_U-cm@#q)j_VlD_9mb@jR{Vs zam1J=bKsO8dbpJwOuMt1tc7C#Jn~904wz1P4Zn}P-t@GrtRSwTIfzqKCCfE3dV`bP zhU-B`RUy*YF5c@?Hr*=0tfXa%5}iC~YnmvUx~zyLxs=f)TVw?qkdV&DfAiA2qC=RP zYtv5;Yx{#jx->D}jys>^CAwL0*(%iAZ@<1Tj4X=7gX1f&#~&`=`0--L)=g(FHCy|J z`0H15FW;Qr490i57rB)amhx^8-2ReG90XwR&8Gw4@-;SH(GSmmk6qaXz{?jO!J_nd u;~Q=WEE1xD<%^$}#z1vx|2F`Bk}@P)U>At^h={K0_4@H> zG&;{KX|-B=^ZEP~5x3dyIL>Yvx&->Z{}mDU5b?9?x^MdZ{!LX_ola+KGMRiJqC)@} zXsw^-_bq^&Ga`D=$~@28Sp~}&E}w7EcRO{5q&qtJYNgk)H>|9P)?6Aru)yp@}+mS);%P5KnTbH0000< KMNUMnLSTa1*bg88 literal 0 HcmV?d00001 diff --git a/public/static/index/images/share1.png b/public/static/index/images/share1.png new file mode 100755 index 0000000000000000000000000000000000000000..fc77bceeeebe121946338b6ed682ba5f6a3e6aae GIT binary patch literal 1194 zcmV;b1XcTqP)(b3v0#IxaZCvuuCCkIWywi6X!N}a&*+0bMGw8fq8T9dA{d!&phXO z&N&akMk^^PDLOtrz6szpm&;YmIrjm00l|X#L6Om>Z#vbSV$D*R5pLTY3{+1n< zBn-*x_4@Pj^4{j0zX`yTp+=a9R%5Z)=b=#OI{-Wr`;359RecM<2LMVl8RUw-4~b|% z)3oJu_0j@X6vazKp8%*%S2)9d4>;%Tx~_+=v%419=kqmk&OZh4>~&%`-~UNO?`WE~ zc$Lmoz@)0`T>$+yK{7QTVvN0inQvbPOp2m>OhoTyI+{cMXBcDcsi0E=`+UB8obx`1 z2A7f{qK`C9d+)sQ1z?}g*TgyhQfd_EjqWhUl30>}s_tkp!%& z>i1a;UFkxe@ArT)R%1O(0LPQUH?pc(w!6(3`&Nu$0gDj!i-Q>q)z#IgtgJ*~VIfXW zPZ5nqvAn#D-Q8W8Z`)yvy)2@J39KlJpNIl7N~vsyhlf#DS9jsn`1m-crlzEZF%0AN zP$(3zfES6VQA+8Y(a6XMYHMp#N{x+;VS0L6Y8cM>SGuk@k=P=J!{Ofn6i6wZF)Ax7 z!{Xw_%o+}d;qiDNW`1sNPIj1x$K!ckWHiUzp|i6SU0q#CK!byW2nK^FC@8?e!2u2r z4`qSDIlm=dnnfY;0_p z{ww0|{QSHfSYc}}I>*9VZ*MQ!+S;-iB~~3x9797xXlQ6i052>oU|?Xt?yM&4&BWpL zdT+U0uKP}?W*b=S*c{#bWEuG1&5xK_MNu5tUS<=Rh`!b|tz&Y>Gb^VL07VEV&j(8?iTrQV@u5w`Ir;-R7hS7dD8eBF` zTELdEs;al+WiMM9@eIsE0C%mVkj`Xe1Z??sys+3BFDzzy#TAJc7C*~+Ve$M76c-oY zh(@C~iRe`#dP!vX6s6lI05l?c6pO`vaJ$_<@9pi0lCD(y2MoH&0>007*qo IM6N<$f-u!Re*gdg literal 0 HcmV?d00001 diff --git a/public/static/index/images/share2.png b/public/static/index/images/share2.png new file mode 100755 index 0000000000000000000000000000000000000000..e7b3727e423dd4725dff7eefbaba951dd5de158f GIT binary patch literal 1394 zcmV-&1&#WNP)GCLUq$>B!JPNi{B-J{u_mp#;xpA53J=cZ$Ki>J5@BH&`=lq0i zP-<#w)a>kR27qjr%jMymYXIT_L{-W1BjH=;U}W*<>lpXeLi0g04^gh1z1(pLI7U?cuU5}CcHyL^rf!rKiSo1 z3$UUnZX)^`K%QO2l6=oN=Ve~6*SD42mVh-)E9RWH0Epd6**1UwhloDbb^Xp}dNu=0 zs;brj_-va%WX0x?Xq#U`^AGbIv;*S=o7^6O6GnSk?dzRD=FKNHDuco93LSt*#zx0IRC{^DdSy zyCB!|J!6c$8~kVi4m5=yoNC==xgy5ckHSU}uqa^zJJ`W?8vih3>}^psOu&kw93i5o zcCEz3#Nhn-^T^N7$H2eS?o7& z-o%wFSL}*A;^Ulu=kH0epOV5E&yT>w@o7H;^N{kF)@Jy2M%CrY6>r2yg+nxG!hdNF*i4d@bGYq zj*gl-b8~YMA0H3HFfcYYW+tjb>K1^7)?^t4IXOAFapMLS7Z(u`5rN9eO7!;jA~`u3 z_wV1w!omXlem~BhJ&U79kD|DEZ9d<+bqjTMVi1(3F#%X4T%3%k0Nm0dM&uQ$t*u3O zcQ-Um!^4LUt?#1LiGL#$UA}x79UUDqW(Du006Y)iH5ti_j1085w_75@laC)i-T+uI zjE|3_udfe>4jn>5LV_hTG&F=`$BxOE6}$_(3Rr+DDJe1IJ2o~Jw{PD@Qc{u$k}+n6 zizJzVr9;B5hc8^XfP44uS(xhU>n*Q}LkO=+k{J@xNoN=E#fulw+4*vut*)*{S(&&< z!1THUz-H1(m$l5yOtiJNZ5hLtE?qLiAV{ZApEfIsAW;erA3iMUV01fb98LkBIdcXT z6)V?7CxFey;dZ<8T`t!XnWJW9WudjTRocU%nv|E9I|eK!Hb=wH`WP0m`RLK34P|Y8 zNNm%?E5naCuA(SX<7Hl69Ox9N3LZRoV0~|FY+MuTA_-5PJZb$d z8jW2dqVIKGFE# z8|mrkSXx>#+jnzwvt7I(q5@slpRB$j4FX8DtzmB&*Ito??f>~D^aIA2c|qO}*Zf|_ znDuHJ>LEo8tD#4%y$u6lZQ3x5cYHpdH)wi)KUD=!v9BHj1EBZUb88UvetOWh(o0p< z69B}1W7k&(obz(8*ZXq33z6ho?l=OSP;t3j0(9;!6^dTNFv?a}gIC$H1vn_Is%lYS z?X^=KaR@+NuqoJah7{mnYzG#L9|abRwx75H@^gX3V*9Qy7T0^gaM@B}(O4kwn2X2x_5ouJ55dZ)H07*qoM6N<$f`P({ AbpQYW literal 0 HcmV?d00001 diff --git a/public/static/index/images/share3.png b/public/static/index/images/share3.png new file mode 100755 index 0000000000000000000000000000000000000000..d5ee3ef0811a7c4a9275793527fcc3c7f422dd3d GIT binary patch literal 1361 zcmV-X1+MyuP)$6y-r6$;I$YTS= z3T*-jwUvsv0aJfM+A8ElTg7h8%#JTnp*0FNx<+B=mOGuXySlsHnO&uxM?K&9zBzmE zIp^L>$iPZUO8n7i^fZ81JswXHV@v_?B7j^g>Xw#V z04Wd%RC>MMcNt@E0q{ADu|`CpSS|oi}KdEWjNnSNf!IC6Z z64AYEv-o^I)Ya9YqM`!PXcYbZ{kVJgu1O1stzj5dx~|`|1$Plqtq>AG zQ&STL2M6)!(W8`*!-o%}v$GQ?Px8e4XMKHrn46nJAP~T{YuE7j@na!c#@Kg}NTiPV zh`6@4_5{E|AtZpQsVU6Q&!fJ+9#5Wd=yq#wZ%0i{P0EnHy}jt_>caRqFG@o8%;)pH zz&o1b^GT-fmNa026zBS$baG=$t-do12ANL5udH#Z|34hyN}PK>eh zT<~W^w5_A0i*obkO_Z0HZ@Pp+A>6rh2NM$$h{a;a%ge*q*jUOC3kwUVuCB)7;-auv zOK^}^hduy&5Er&%$Bu#jq&$=H#zi{D#nW3_>GErE9AOEO^h6Xp-X)c)Wn&(B)UauGT@88Gq>;&jg1Xd zR#uvw&ZU`~&T(0@$#^Xe27|&IkY|=>I0Fm0Y8+b$`Fg%`pkCdL>G z@>`tq9*?JAG?3r#2j4i{^7Hd?=FAyfx^&5`$wbM|w0sD{2@)#Hg8RnU8L~SbKV~Q-07&E8iw(TuImxoX@6f; z*b*UfJr169BH-O+h3Xjs)9l+j>}h&w5xCzT&d*&#Z^V zuXp`nacc&Oii&dA*Vj)IQ3Vkd^A4Zn>Gm%GDiQr2i^YCAaNxj5I2`6rx~}XWw+Zb6 Tqz|AV00000NkvXXu0mjfjU|xn literal 0 HcmV?d00001 diff --git a/public/static/index/images/share4.png b/public/static/index/images/share4.png new file mode 100755 index 0000000000000000000000000000000000000000..04cdfca4599fd64da599f70b141df1352859b8f9 GIT binary patch literal 1501 zcmV<31tR*1P)OIkbi4|&$`e52L)Fy^PVtf%z zQ#9~kNDE0TQKL{%LqTI=LMus^I+r&!7E4qtE}%PqbH?2*i^$GDEKNBH56hhIoNxX) z|9AciVGNd)m6i7V`SVo(ay=f8UkKp?FdIO6IPBj5{v;yJvaEm*;+M3vw6@O9&OWzk z$pw(SUhlf3q@*GtL;-+Q$rwQ*x)2J5YE9E@1|VecQiN4i{TRSk0J3G0jN*HTh`!b| ztM4!oKOOXF}x~`XuM0!NRKA*2b2=RG> zlDi5+M3tJReK8#T8eyN$w^a!7y{jyV2W{7NJ%&pR;jkKX{09@v>8m{xLgWlpj~K$L zs{TBV(&d!oaK9_Mu74Q$XOwWbDg5X*>Nw*HbzT37b3_QUg#DVp4wh*Cow}|sX4S9> zD~hs?h?)|aW!ki9ICSU`9zA-5YuB!!ySp2?xw)7(ZyrvcK8@bqUa54JWqo9tW>bXl z4@9&@DncCR{rmT0!-fsGdi5$6E?kJ|)2GAdrYKh&ESrf@N$?mX%cE` zYH;e*DcrhsD@x4o_haVFnP_col_hKY3nB8D@Ha&CT1RmeF$_`^1!ZMr*tKidSi-!9 z6+%?7I-Cc<3-N?mQBe_=ELnnm`}QR)W;oCVCfo%eQ#Nu^QW8R;kPYMdT)TEHRgvM!_3QEQ;X_nZRN(RB$BwXJryeFe0N^dBs3S*?I3^e`W=l&8 zN=r-Qxea|jC{389Y4KuiI{zBa`ntM0EL*k=#l^+oa)}sgZc|eeHgDdHHEY(y;J93t zFJCTASgIrn3JOqJSqYXdHp{Y*laqsBFlhg7Yiq;o*}T(--OZLRT^c2H`}S>2ojNu8 zyQ-=R{3l^{Nk~t+^73+Q+O)~eBZR=-y?b%}`gP2iGY1zhUc{6sueN{v{r%XuaU)FA zv?n5u_TPHwyk5+qP}PiWMttKPJ0-_inqXNZPB#4}%m%alO3UxpOD> z?Ae1^vt~u}_x1JR<;#~biohzuCBP%iH7{#K)SzkF7Mrl!vWO&QRp8E-mzRgRbLZMB z!6m^u`{2O?TS0E#yor1F?#c3u`V&#UrfHXlZjpWikmWk!_yS|MNSy0`z6t$A*L8b? zJQ23}ExN8pPfbTUNa5Y{+vEF%9Y=p=S=PIzX&Mp4#6GHuyv2k%3=ET=SjVjq(i7=G zJ31>=RoxDN?>EN%%0LKFY8Xb{Xj3xo9Y?qmDjtuANx$!Se#<$wSe8{XR1Mw)cSJY> zR#mkyeC?H}j(7*a(MVHp@{Ur3BefmASS$`-EXp2n^@lGOYsURzarg-M{r>cUfq_*- z^d1qt!ySHvtJ`h>8WH^-3WZvelat#6fdF6Wy0U)&3JNR{M3TRN00000NkvXXu0mjf DiDJ?< literal 0 HcmV?d00001