联系官方销售客服

1835022288

028-61286886

应用插件 版主:官方插件技术组
这种需求的module调用方法如何实现
类型:迅睿CMS 更新时间:2024-06-21 22:27:00 循环标签 {$t.title} custom.php 内容建站系统
插件 建站系统 V3.16
应用作者 迅睿官方团队
发布时间 2022-03-01 15:30:06
更新时间 2024-11-11 14:53:11

这种需求的module调用方法如何实现?

说明:

{get_newStartTime($t['catid'], $t['_matchtime'])} 

这个是 根目录下 config 文件夹里 custom.php 提前写好的函数调用,输出值为:直播、预约、结束


先循环处 live 模块的100条最新数据;

{module module=live order=updatetime}

{$t.title} : {get_newStartTime($t['catid'], $t['_matchtime'])} <br />

{/module}


然后根据 module循环标签内 {get_newStartTime($t['catid'], $t['_matchtime'])} 输出值 来 分别调用数据。

{if 如果 get_newStartTime($t['catid'], $t['_matchtime']) 等于 直播 }
<div>
  <div>直播中的数据</div>
  循环输出 开始
  {$t.title} - {get_newStartTime($t['catid'], $t['_matchtime'])}
  循环输出 结束
</div>
{/if}

{if 如果 get_newStartTime($t['catid'], $t['_matchtime']) 等于 预约 }
<div>
  <div>预约中的数据</div>
  循环输出 开始
  {$t.title} - {get_newStartTime($t['catid'], $t['_matchtime'])}
  循环输出 结束
</div>
{/if}

{if 如果 get_newStartTime($t['catid'], $t['_matchtime']) 等于 已结 }
<div>
  <div>已结束的数据</div>
  循环输出 开始
  {$t.title} - {get_newStartTime($t['catid'], $t['_matchtime'])}
  循环输出 结束
</div>
{/if}


因为 每个 div大区块二都在模板不同的位置,所以不知道怎么才能实现 只做一次 module 查询然后 在 不同页面位置的 div调用区块儿里 用 if来判断输出 不同值(直播、预约、结束)的数据?

笨办法是 模板里不同位置的调用div区块儿里,分别写 三个区分数据的 module 查询,这样当前页面就要查询很多次。不优化。




插件教程:https://www.xunruicms.com/doc/app-928.html

回帖
  • 太白章
    #1楼    太白章
    2024-06-21 21:04:23
    Chrome 0
    你这个逻辑思维有点强了
  • 猴子阿
    #2楼    猴子阿
    2024-06-21 21:17:40
    Chrome 0
    太白章 我是想怎么能尽量减少多次查询
  • 猴子阿
    #3楼    猴子阿
    2024-06-21 21:29:35
    Chrome 0
    太白章 来来兄弟,说说看思维怎么有点强了?我现在同一个页面不同的div位置,为了区分一个自定义函数的值,写了 3个 module 查询标签和判断。我想简化下,怎么就强了?不知者无罪,你那么说话,你牛逼你来
    Snipaste_2024-06-21_21-28-30
  • 猴子阿
    #4楼    猴子阿
    2024-06-21 22:26:45
    Chrome 0
    简化解决方法:<?php $list= \Phpcmf\Service::M()->db->table(SITE_ID."_news")->where('catid='.$catid)->orderBy('updatetime desc')->limit(50)->get()->getResultArray();?>{loop $list $t}{if get_newStartTime($t['catid'], $t['matchtime']) == "开始"}{$title} <br />{/if}{/loop}

    {loop $list $t}

    {if get_newStartTime($t['catid'], $t['matchtime']) == "暂停"}

    {$title} <br />

    {/if}

    {/loop}

    {loop $list $t}

    {if get_newStartTime($t['catid'], $t['matchtime']) == "结束"}

    {$title} <br />

    {/if}

    {/loop}


    满意答案
  • 猴子阿
    #5楼    猴子阿
    2024-06-21 22:27:00
    Chrome 0
    @猴子阿:已经解决。。。。。