找不到帮助文档?你想要哪方面的帮助教程?提交文档建议 >
帮助文档首页
DiYunCMS公众号

自动调用当前栏目下的栏目模型字段

更新时间:2025-09-24 加入收藏
0

如果创建了许多“栏目模型字段”且栏目较多,且每个栏目划分的字段都不一样,那么在栏目列表页及内容详情页想要调用这些字段就比较麻烦。

image


分享如下自动判断当前栏目划分字段的调用方法


1、循环当前栏目划分的字段

{loop $cat['field'] $f}
...
{/loop}


判断字段类型方便调用值

完整调用

show.html

{loop $cat['field'] $f}
{php $fe= $ci->module['category_data_field'][$f];}

{if $fe && $fe.fieldtype=="Text"}
    文本字段:{$fe.name}:{$this->_options[$fe.fieldname]}
    
{elseif $fe && $fe.fieldtype=="Radio"}
    单选字段:{$fe.name}:{php $field = dr_field_options($ci->module['category_data_field'][$fe.fieldname]['id']);}{$field[$this->_options[$fe.fieldname]]}
    
{elseif $fe && $fe.fieldtype=="Select"}
    单选下拉选项:{$fe.name}:{php $field = dr_field_options($ci->module['category_data_field'][$fe.fieldname]['id']);}{$field[$this->_options[$fe.fieldname]]}
   
{if $fe && $fe.fieldtype=="Selects"}
     多选下拉菜单
{/if}

{/loop}


判断

{if $this->_options[$fe.fieldname]}判断是否有值{/if}


循环列表中

{search ...}

{loop $cat['field'] $f}
{php $fe=$ci->module['category_data_field'][$f];}

{if $fe && $fe.fieldtype=="Selects"}
{if $t[$fe.fieldname]}
<li class="d-flex flex-wrap">
    <p class="name w-50">{$fe.name}</p>
    <p class="v w-50">
        {php $field = dr_field_options($ci->module['category_data_field'][$fe.fieldname]['id']);}
        {loop $field $v $name}
        {if in_array($v, $t[$fe.fieldname])}
        <span>{$name}<i>、</i></span>
        {/if}
        {/loop}
    </p>
</li>
{/if}
{/if}
{/loop}

{/search}


判断字段是否有值

{if $t[$fe.fieldname]}判断是否有值{/if}


筛选搜索

list.html、search.html

<ul>

    {category_search_field module=mall catid=$catid return=c1}
    <li class="li-c1 {if $c1.child}child-li{/if} {if $catid && dr_in_array($catid, $c1.catids)} on{else} off{/if}">
        <a class="c1 btn {if $catid && in_array($catid, $c1.catids)}active{/if}">{$c1.name} <span class=""><i class="bi bi-chevron-down"></i></span></a>
        <ul class="ul-c1" style="display: none">
            <!-- <li class="li-c2"><a class="c2 {if !$params[$c1.field]}active{/if}" href="{Router::search_url($params, $c1.field, NULL)}">{dr_lang('不限')}</a></li> -->
            {loop $c1.data $v}
            {if \Phpcmf\Service::M()->db->table('1_mall_category_data')->where('catid', $cat.id)->like($c1.field, $v['value'])->countAllResults()>0}
            <li class="li-c2">
                <a class="c2 {if $v.value==$params[$c1.field]}active{/if}" href="{Router::search_url($params, $c1.field, $v.value)}">{dr_lang($v.name)}
                    <div><span class="num">{php echo \Phpcmf\Service::M()->db->table('1_mall_category_data')->where('catid', $cat.id)->like($c1.field, $v['value'])->countAllResults();}</span></div>
                </a>
            </li>
            {/if}
            {/loop}
        </ul>
    </li>
    {/category_search_field}

</ul>




--
有帮助
--
没帮助
0
收藏
0
打赏
相关文档
Hello,欢迎来咨询~
点击在线咨询