yy日韩无码,富婆的诱惑,国产菊爆视频在线观看,国产精品无码AV高清波波AV,国产成人啪精品视频站午夜,已满十八岁免费观看电视剧十八岁,中文字幕av久久人妻蜜桃臀

LOGO
外貿(mào)網(wǎng)站建設(shè),讓業(yè)務(wù)全球可達(dá)
0%
新聞中心 網(wǎng)絡(luò)推廣 網(wǎng)站建設(shè) 服務(wù)器相關(guān) 優(yōu)化推廣 首頁>新聞>網(wǎng)站建設(shè)

PBOOTCMS多圖帶標(biāo)題二開新增一條并調(diào)整樣式。

時間:2025-11-29   訪問量:0

在上一篇文章中我們講過修改原有的多圖帶描述增加“新增一條”按鈕功能。這一篇我們來重新添加新的擴(kuò)展字段來實(shí)現(xiàn)以下效果。方便后期在實(shí)際網(wǎng)站開發(fā)過程中的應(yīng)用。


PBOOTCMS多圖帶標(biāo)題二開新增一條并調(diào)整樣式。


第一步:在后臺的模板文件中extfield.html添加以下代碼

 {if($value->type==102)}多圖帶描述詳細(xì)版{/if}

PBOOTCMS多圖帶標(biāo)題二開新增一條并調(diào)整樣式。

同時以下面的代碼中添加:

<option value="102">多圖帶描述詳細(xì)版</option>

以及:

{if([$extfield->type]==102)} 
                                    <option value="102" selected>多圖帶描述詳細(xì)版</option> 
                                {/if}


第二步:在控制器文件中ExtFieldController.php第120行左右:

 case '8': // 編輯器
                case '24': // 多圖(帶標(biāo)題/描述)
                case '26': // 多附件(帶標(biāo)題/描述)

添加CASE 102,變成:

 case '8': // 編輯器
                case '24': // 多圖(帶標(biāo)題/描述)
                case '102': // 多圖帶描述詳細(xì)版
                case '26': // 多附件(帶標(biāo)題/描述)


這樣我們在后臺就擁有了添加擴(kuò)展字段的功能了。

PBOOTCMS多圖帶標(biāo)題二開新增一條并調(diào)整樣式。


第三步:我們在后臺模板中添加TYPE=102的相關(guān)代碼,可以直接復(fù)制原來TYPE=24的代碼,一共兩處,一處是新增加文章時,一處是修改文章處。

 {if($value->type==102)}
                                <!-- 多圖上傳(帶標(biāo)題/描述) -->
                                    <div class="layui-input-inline">
                                        <input type="text" name="[value->name]" id="[value->name]" placeholder="請上傳[value->description]"  class="layui-input">
                                    </div>
                                    <button type="button" class="layui-btn uploads watermark" data-des="[value->name]" data-type="3">
                                        <i class="layui-icon">&#xe67c;</i>上傳多圖
                                    </button>
                                    <a class="layui-btn layui-btn-warm" onclick="GetPictureFolder(100,'[value->name]','3');"><i class="layui-icon layui-icon-picture"></i>圖庫</a>
                                   <!-- 新增按鈕 -->
                                    <a class="layui-btn add-new-btn" href="javascript:;" data-des="[value->name]"><i class="layui-icon layui-icon-add-circle"></i>新增一條</a> 
                                    <div id="[value->name]_box" class="pic addedit"><dl class="hide"></dl> <!-- 規(guī)避空內(nèi)容拖動bug --></div>
                                    <script type="text/javascript">picsSortable('[value->name]'); </script>
                                    <!-- 新增一條 JS -->
                                    <script>
                                    $(document).on("click", ".add-new-btn", function() {
                                        var des = $(this).data('des'); 
                                        var box = $("#" + des + "_box");
                                        var input = $("#" + des);

                                        // 添加占位 src(用于保存)
                                        var oldVal = input.val();
                                        if (oldVal) {
                                            input.val(oldVal + ",noimg");
                                        } else {
                                            input.val("noimg");
                                        }

                                        // 默認(rèn)占位圖
                                        var defaultImg = "/static/images/ico1.png";

                                        // 新增結(jié)構(gòu)
                                        var html = "<dl class='Pics-102'>" +
                                            "<dt><img src='" + defaultImg + "' data-url='noimg' alt=''></dt>" +
                                            "<a class='replace replace_" + des + "'>更換</a><dd>刪除</dd>" +
                                            "<dt><input type='text' name='" + des + "|title[]' placeholder='標(biāo)題' class='title-input' style='width:95%'></dt>" +
                                            "<dt><textarea name='" + des + "|subtitle[]' placeholder='副標(biāo)題' class='layui-textarea' style='display:unset;height:60px;min-height:60px;width:95%'></textarea></dt>" +
                                            "<dt><textarea name='" + des + "|desc[]' placeholder='描述' class='layui-textarea' style='display:unset;height:150px;min-height:150px;width:95%'></textarea></dt>" +
                                        "</dl>";

                                        box.append(html);
                                    });
                                    </script>
                                {/if}

以上是新增文章時的代碼。

以下是修改文章時的代碼:

{if($value->type==102)}
                                <!-- 多圖上傳(帶標(biāo)題/描述) -->
                                    {php}
                                    $name=$value->name;
                                    $description = $value->description;
                                    if([$content->$name]){
                                    $pics= unserialize([$content->$name]);
                                    }else{
                                    $pics = array();
                                    }
                                    {/php}
                                    <div class="layui-input-inline">
                                    {php}
                                    $picssrc = array();
                                    foreach ($pics as $key2 => $value2) {
                                    $picssrc[]= $value2['src'];
                                    }
                                    $picssrc = implode(',', $picssrc);
                                    echo "<input type='text' name='".$name."' id='".$name."' value='".$picssrc."' placeholder='請上傳".$description."'  class='layui-input'>";
                                    {/php}
                                    </div>
                                    <button type="button" class="layui-btn uploads watermark" data-des="[value->name]" data-type="3">
                                        <i class="layui-icon">&#xe67c;</i>上傳多圖
                                    </button>
                                    <a class="layui-btn layui-btn-warm" onclick="GetPictureFolder(100,'[value->name]','3');"><i class="layui-icon layui-icon-picture"></i>圖庫</a>
                                   <a class="layui-btn  add-new-btn" data-des="[value->name]" href="javascript:;"><i class="layui-icon layui-icon-picture"></i>新增一條</a>
                                    <div id="[value->name]_box" class="pic addedit">
                                    <dl class="hide"></dl> <!-- 規(guī)避空內(nèi)容拖動bug -->
                                    {php}
                                    foreach ($pics as $key2 => $value2) {
                                        //需要留一個空,不然被解析為標(biāo)簽了 [$key ]
                                        echo "<dl  class='Pics-102'><dt><img lay-src='".SITE_DIR.$value2['src']."' data-url='".$value2['src']."'></dt><a class='replace'>更換</a><dd>刪除</dd><dt><input type='text' name='".$name."|title[]' value='".$value2['title']."'  placeholder='標(biāo)題' class='title-input' style='width:95%'/></dt><dt><textarea name='".$name."|subtitle[]' placeholder='副標(biāo)題' class='layui-textarea' style='display:unset;height:60px;min-height:60px;width:95%'>".$value2['subtitle']."</textarea></dt><dt><textarea name='".$name."|desc[]' placeholder='描述' class='layui-textarea' style='display:unset;height:150px;min-height:150px;width:95%'>".$value2['desc']."</textarea></dt></dl>";
                                    }
                                    {/php}
                                    </div>
                                    <script type="text/javascript">picsSortable('[value->name]'); </script>
                                    <script>
                                        $(document).on("click", ".add-new-btn", function() {
                                            var des = $(this).data('des'); // 字段名
                                            var box = $("#" + des + "_box"); // box 容器
                                            var input = $("#" + des); // hidden src input

                                            // 空圖占位(你后臺顯示用的)
                                            var defaultImg = "/static/images/1.png";

                                            // ① 先在 src input 中追加一個占位值
                                            var oldVal = input.val();
                                            if (oldVal) {
                                                input.val(oldVal + ",noimg");
                                            } else {
                                                input.val("noimg");
                                            }

                                            // ② 再新增 UI 結(jié)構(gòu)
                                            var html = "<dl class='Pics-102'>" +
                                                "<dt><img src='" + defaultImg + "' data-url='noimg' alt=''></dt>" +
                                                "<a class='replace replace_" + des + "'>更換</a><dd>刪除</dd>" +
                                                "<dt><input type='text' name='" + des + "|title[]' placeholder='標(biāo)題' class='title-input' style='width:95%'/></dt>" +
                                                "<dt><textarea name='" + des + "|subtitle[]' placeholder='副標(biāo)題' class='layui-textarea' style='display:unset;height:60px;min-height:60px;width:95%'></textarea></dt>" +
                                                "<dt><textarea name='" + des + "|desc[]' placeholder='描述' class='layui-textarea' style='display:unset;height:150px;min-height:150px;width:95%'></textarea></dt>" +
                                            "</dl>";

                                            box.append(html);
                                        });

                                        </script>

                                {/if}


稍微調(diào)整一下textarea高度和添加CLASS,方便后面單獨(dú)對他進(jìn)行調(diào)整CSS

<dl class='Pics-102'>

然后我們添加一段CSS來調(diào)整樣式:

<style>
    .pic .Pics-102{width:100%; max-width: 100%; background: #fff;}
    .pic .Pics-102 dt{width:calc(100% - 150px); float: left; }
    .pic .Pics-102 dt input,
    .pic .Pics-102 dt textarea{
         width:99%!important;
    }
    .pic .Pics-102 dt:nth-child(1){width:150px;}
    .pic .Pics-102 .replace{left:20px; right:auto;}
    .pic .Pics-102 dd{left:60px; right:auto;}
</style>



第四步:我們需要在content的控制器中修改代碼:

找到

case 24: // 多圖文處理
case 26: // 多附件處理

修改成:一共有兩處。修改保存即可。

 case 24: // 多圖文處理
 case 102: // 多圖文處理
 case 26: // 多附件處理


經(jīng)測試發(fā)現(xiàn),如果不存圖片的話,拖動調(diào)整排序功能不太方便,所以我們可以做一張透明的PNG圖片,然后將原來的空圖:noimg改成這張透明的圖片。這樣再拖動的時候就比較方便了。

PBOOTCMS多圖帶標(biāo)題二開新增一條并調(diào)整樣式。


經(jīng)測試發(fā)現(xiàn),由于原來的多圖上傳的尺寸是和現(xiàn)在的CSS沖突,所以在點(diǎn)擊上傳圖片和從圖庫中調(diào)用圖片來增加一條數(shù)據(jù)的話,他的寬度是原來的尺寸,所以看自己如何取舒 ,可以直接去掉這兩個按鈕。這是最簡單的方案。


如果不想用這個方案,那么我們就需要對代碼再次進(jìn)行修改。

第一步:修改上傳圖片的功能按鈕。

1:修改后臺模板文件中

<button type="button" class="layui-btn uploads watermark" data-des="[value->name]" data-type="3">
                                        <i class="layui-icon">&#xe67c;</i>上傳多圖
                                    </button>
                                    <a class="layui-btn layui-btn-warm" onclick="GetPictureFolder(100,'[value->name]','3');"><i class="layui-icon layui-icon-picture"></i>圖庫</a>

data-type="3"

,將他修改成:后面修改文章處也修改成5

<button type="button" class="layui-btn uploads watermark" data-des="[value->name]" data-type="5">
                                        <i class="layui-icon">&#xe67c;</i>上傳多圖
                                    </button>
  <a class="layui-btn layui-btn-warm" onclick="GetPictureFolder(100,'[value->name]','5');"><i class="layui-icon layui-icon-picture"></i>圖庫</a>

為什么要修改成5,而不是4,按原來的順序有了1,2,3,原因是在后面圖庫中已經(jīng)有了4,所以我們改成5方便一些。


2:在upload.js中修改代碼:

添加: html5 = '',
添加:else if (type == '5') {   
                                    html5 += "<dl class=Pics-102><dt><img src='" + sitedir + value + "' data-url='" + value + "' alt='" + itemsName[index] + "'></dt><a class='replace replace_" + des + desk + "'>更換</a><dd>刪除</dd>" +
                                        "<dt><input type='text' name='" + des + "|title[]' value='" + itemsName[index] + "' placeholder='標(biāo)題' class='title-input' style='width:95%'/></dt>" +
                                        "<dt><textarea name='" + des + "|subtitle[]' placeholder='副標(biāo)題' class='layui-textarea' style='display:unset;height:60px;min-height:60px;width:95%'></textarea></dt>" +
                                        "<dt><textarea name='" + des + "|desc[]' placeholder='描述' class='layui-textarea' style='display:unset;height:250px;min-height:250px;width:95%'></textarea></dt>" +
                                    "</dl>";
                                }
添加:else if (type == '5') {   // ★ 新增
                                $('#' + des + '_box').append(html5);
添加:html5 = '';

共四處,最終形成代碼如下:

  // 執(zhí)行多圖片/多文件上傳實(shí)例
    // type判斷字段類型 1為默認(rèn)帶標(biāo)題多圖 2為只有圖片多圖 3為帶標(biāo)題描述多圖
    function initMultiUpload(selectName, exts, size, accept = 'images', acceptMime = 'image/*') {
        layui.use('upload', function() {
            var upload = layui.upload;
            var files = '',
                html = '',
                html2 = '',
                html3 = '',
                html5 = '',
                desk = '1',
                itemsArr = [],
                itemsName = [];
            var uploadsInst = upload.render({
                elem: selectName,
                url: uploadurl,
                field: 'upload',
                multiple: true,
                accept: accept,
                acceptMime: acceptMime,
                exts: exts,
                size: 1024 * size,
                before: function(obj) {
                    var item = this.item;
                    if (accept === 'images' && $(item).hasClass('watermark')) {
                        uploadsInst.config.url = uploadurl + '/watermark/1'; //改變URL
                    }
                    layer.load(); //上傳loading
                },
                done: function(res, index) {
                    if (res.code == 1) {
                        itemsArr[index.split('-')[1]] = res.data['src'];
                        itemsName[index.split('-')[1]] = res.data['name'];
                    } else {
                        layer.msg('有文件上傳失?。?#39; + res.data);
                    }
                },
                allDone: function(obj) {
                    var item = this.item;
                    var des = $(item).data('des');
                    var type = $(item).data('type');

                    layer.closeAll('loading'); //關(guān)閉loading
                    //修復(fù)批量上順序錯亂 @LiuXiaoBai
                    if (itemsArr) {
                        $.each(itemsArr, function(index, value) {
                            if (files) {
                                files += ',' + value;
                            } else {
                                files += value;
                            }
                            if (accept === 'images') {
                                if (des == 'pics' || des == 'pics_batch') {
                                    html += "<dl><dt><img src='" + sitedir + value + "' data-url='" + value + "' alt='" + itemsName[index] + "'></dt><a class='replace replace_" + des + desk + "'>更換</a><dd>刪除</dd>" +
                                        "<dt><input type='text' name='picstitle[]' value='" + itemsName[index] + "' placeholder='標(biāo)題' class='title-input' style='width:95%'/></dt>" +
                                        "</dl>";
                                } else if (type == '3') {
                                    html3 += "<dl class=Pics-102><dt><img src='" + sitedir + value + "' data-url='" + value + "' alt='" + itemsName[index] + "'></dt><a class='replace replace_" + des + desk + "'>更換</a><dd>刪除</dd>" +
                                        "<dt><input type='text' name='" + des + "|title[]' value='" + itemsName[index] + "' placeholder='標(biāo)題' class='title-input' style='width:95%'/></dt>" +                        
                                        "<dt><textarea name='" + des + "|subtitle[]' placeholder='副標(biāo)題' class='layui-textarea' style='display:unset;height:60px;min-height:60px;width:95%'></textarea></dt>" + 
                                        "<dt><textarea name='" + des + "|desc[]' placeholder='描述' class='layui-textarea' style='display:unset;height:250px;min-height:250px;width:95%'></textarea></dt>" +
                                        "</dl>";
                                } else if (type == '5') {   
                                    html5 += "<dl class=Pics-102><dt><img src='" + sitedir + value + "' data-url='" + value + "' alt='" + itemsName[index] + "'></dt><a class='replace replace_" + des + desk + "'>更換</a><dd>刪除</dd>" +
                                        "<dt><input type='text' name='" + des + "|title[]' value='" + itemsName[index] + "' placeholder='標(biāo)題' class='title-input' style='width:95%'/></dt>" +
                                        "<dt><textarea name='" + des + "|subtitle[]' placeholder='副標(biāo)題' class='layui-textarea' style='display:unset;height:60px;min-height:60px;width:95%'></textarea></dt>" +
                                        "<dt><textarea name='" + des + "|desc[]' placeholder='描述' class='layui-textarea' style='display:unset;height:250px;min-height:250px;width:95%'></textarea></dt>" +
                                    "</dl>";
                                } else {
                                    html2 += "<dl><dt><img src='" + sitedir + value + "' data-url='" + value + "'></dt><a class='replace replace_" + des + desk + "'>更換</a><dd>刪除</dd>" + "</dl>";                                
                                }
                            } else {
                                var suffix = value.split('.').pop().toLowerCase();
                                var icon = maps[suffix] ? '/core/extend/ueditor/themes/default/exts/' + maps[suffix] : '/core/extend/ueditor/themes/default/exts/unknown.svg';
                                html += "<dl class='files-box'><dt><img src='" + sitedir + icon + "' data-url='" + value + "' alt='" + itemsName[index] + "'></dt><a class='replacefile replacefile_" + des + desk + "'>更換</a><dd>刪除</dd>" +
                                    "<dt><input type='text' name='" + des + "|title[]' value='" + itemsName[index] + "' placeholder='附件標(biāo)題' class='title-input' style='width:95%'/></dt>" +
                                    "<dt><textarea name='" + des + "|desc[]' placeholder='附件描述' class='layui-textarea' style='display:unset;height:250px;min-height:250px;width:95%'></textarea></dt>" +
                                    "</dl>";
                            }
                        });
                    };
                    if (files != '') {
                        if ($('#' + des).val()) {
                            $('#' + des).val($('#' + des).val() + ',' + files);
                        } else {
                            $('#' + des).val(files);
                        }
                        //修復(fù)批量上傳標(biāo)題
                        if (accept === 'images') {
                            if (des == 'pics' || des == 'pics_batch') {
                                $('#' + des + '_box').append(html);
                            } else if (type == '3') {
                                $('#' + des + '_box').append(html3);
                            } else if (type == '5') {   // ★ 新增
                                $('#' + des + '_box').append(html5);
                            } else {
                                $('#' + des + '_box').append(html2);
                            }
                            replaceUpload('.replace_' + des + desk, imagetype, imagesize);
                        } else {
                            $('#' + des + '_box').append(html);
                            replaceUpload('.replacefile_' + des + desk, filetype, filesize, 'file', '*/*');
                        }
                        layer.msg('成功上傳' + obj.successful + '個文件!');
                        files = '';
                        html = '';
                        html2 = '';
                        html3 = '';
                        html5 = '';
                        desk++;
                        itemsArr = [];
                        itemsName = [];
                    } else {
                        layer.msg('全部上傳失??!');
                    }
                },
                error: function() {
                    layer.closeAll('loading'); //關(guān)閉loading
                    layer.msg('上傳發(fā)生錯誤!');
                }
            });
        });
    }


以上,上傳多圖功能按鈕就修改完成了。


第二步:就是從圖庫中選擇圖片后自動生成代碼。后臺模板文件:media_index.html

將最后面的JS代碼添加一個判斷為5的代碼,找到原來的:

else if (inputType == '4') {
                        html += "<p><img src='" + sitedir + images_array[i] + "'></p>";
                    }

這里原來有type=4的了,這也就是為什么剛才我說要用5的原因。

添加代碼如下:

else if (inputType == '5') {
                        html += "<dl class='Pics-102'><dt><img src='" + sitedir + images_array[i] + "' data-url='" + images_array[i] + "' alt='" + images_name_array[i] + "'></dt><dd>刪除</dd>" +
                            "<dt><input type='text' name='" + inputId + "|title[]' value='" + images_name_array[i] + "' placeholder='標(biāo)題' class='title-input' style='width:95%'/></dt>" +
                            "<dt><textarea name='" + inputId + "|subtitle[]' placeholder='副標(biāo)題' class='layui-textarea' style='display:unset;height:60px;min-height:60px;width:95%'></textarea></dt>" +  //新增副標(biāo)題
                            "<dt><textarea name='" + inputId + "|desc[]' placeholder='描述' class='layui-textarea' style='display:unset;height:250px;min-height:250px;width:95%'></textarea></dt>" +
                            "</dl>";
                    }


即可完成。


最后前端調(diào)用按以上修改后還無法調(diào)用,原因是前端解析的時候沒有添加102

打開:ParserController.php文件。

在: // 解析指定內(nèi)容多圖/欄目多圖/定制標(biāo)簽多圖 的函數(shù)中

 public function parserContentPicsLabel($content, $targetType = '')

系列化數(shù)據(jù)中添加:102

elseif (in_array($targetType, ['label', 'company', 'sort'], true) || in_array($type, ['24','102','26'], true)) { // 序列化多圖數(shù)據(jù)


以上就是最終代碼了。

服務(wù)咨詢
1對1咨詢,專業(yè)客服為您解疑答惑
聯(lián)系銷售
15899750475
在線咨詢
聯(lián)系在線客服,為您解答所有的疑問
ARE YOU INTERESTED IN ?
感興趣嗎?

有關(guān)我們服務(wù)的更多信息,請聯(lián)系項(xiàng)目經(jīng)理

15899750475 楊先生