帝国CMS多值字段morevaluefield解密
基本概述:
帝国CMS7.0新增了多值字段。像下载地址、在线地址、图片集等这样的将多个内容存放到一个字段的功能,增加字段时选择多值表单元素即可,功能更强大,扩展更灵活。
支持设定无限列与无限行数据录入,并且支持设置必填的列,以及默认行数。
结构分析:
熟知帝国CMS数据结构的用户都知道以前的morepic downpath onlinepath 字段储存是如下:
单行以换行符分割,单项以六个冒号分隔
a::::::b::::::c::::::d::::::"\r\n"
a2::::::b2::::::c2::::::d2::::::"\r\n"
帝国CMS7.0的多值字段储存则是这样大的
单行以六个竖线分割,单项以六个六个冒号分割。
a::::::b::::::c::::::d::::::||||||a2::::::b2::::::c2::::::d2::::::
内容页调用:
<?php
/*
内容页调用多值字段示例,假设字段这个多值字段为duozhi
$exp2 $exp2 以此类推分别是每行的第一个值 第二个值 第三个值
*/
// 方法1
if ($navinfor['duozhi']) {
$arr = explode('||||||', $navinfor['duozhi']);
$count = count($arr);
$duozhiStr = '';
for ($i = 0;$i < $count;$i++) {
$exp = explode('::::::', $arr[$i]);
$duozhiStr.= '<li>' . $exp . ' ' . $exp . '</li>';
}
}
// 方法2
if ($navinfor['duozhi']) {
$arr = explode('||||||', $navinfor['duozhi']);
foreach ($arr as $k => $v) {
$exp = explode('::::::', $v);
$duozhiStr.= '<li>' . $exp . ' ' . $exp . '</li>';
}
}
?>
调用:
<?=$duozhiStr?>
页:
[1]