幫助

【教程分享】資源站增加演示站技術(shù)文檔(官方類似-不對外)

2025-03-30 15:46 易優(yōu)技巧

    對做主題模板風(fēng)格的資源站是挺方便的,只要輸入演示站地址即可,前端點(diǎn)擊演示按鈕就可以直接打開同文檔的演示效果,就沒必要再重新發(fā)表或者做自定義字段了。

具體方法請參考下面邏輯:

QQ_1743318537773.png

QQ_1743318774132.png


第一步  涉及的模型基本是下載模型和產(chǎn)品模型具體看自己,也可以是文章模型都可以等。這里以下載模型做記錄。


打開\application\admin\controller

Download.php文件 


找到(大概209行)

  /**

     * 添加

     */

    public function add()

    {

        $admin_info = session('admin_info');

        $auth_role_info = $admin_info['auth_role_info'];

        $this->assign('auth_role_info', $auth_role_info);

        $this->assign('admin_info', $admin_info);


        if (IS_POST) {

            $post = input('post.');

            model('Archives')->editor_auto_210607($post);

            /* 處理TAG標(biāo)簽 */

            if (!empty($post['tags_new'])) {

                $post['tags'] = !empty($post['tags']) ? $post['tags'] . ',' . $post['tags_new'] : $post['tags_new'];

                unset($post['tags_new']);

            }

            $post['tags'] = explode(',', $post['tags']);

            $post['tags'] = array_unique($post['tags']);

            $post['tags'] = implode(',', $post['tags']);

            /* END */


            $content = empty($post['addonFieldExt']['content']) ? '' : htmlspecialchars_decode($post['addonFieldExt']['content']);

            if (!empty($post['fileupload'])){

                foreach ($post['fileupload']['file_url'] as $k => $v){

                    if (is_http_url($v)){

                        $post['fileupload']['uhash'][$k] = md5($v);

                    }

                }

            }

            // 根據(jù)標(biāo)題自動提取相關(guān)的關(guān)鍵字

            $seo_keywords = $post['seo_keywords'];

            if (!empty($seo_keywords)) {

                $seo_keywords = str_replace(',', ',', $seo_keywords);

            } else {

                // $seo_keywords = get_split_word($post['title'], $content);

            }

            // 自動獲取內(nèi)容第一張圖片作為封面圖

            $litpic = $post['litpic'];

            if (empty($litpic)) {

                $litpic = get_html_first_imgurl($content);

            }

            $post['litpic'] = $litpic;


            /*是否有封面圖*/

            if (empty($post['litpic'])) {

                $is_litpic = 0; // 無封面圖

            } else {

                $is_litpic = 1; // 有封面圖

            }


            // SEO描述

            $seo_description = '';

            if (empty($post['seo_description']) && !empty($content)) {

                $seo_description = @msubstr(checkStrHtml($content), 0, get_seo_description_length(), false);

            } else {

                $seo_description = $post['seo_description'];

            }


            // 外部鏈接跳轉(zhuǎn)

            $jumplinks = '';

            $is_jump = isset($post['is_jump']) ? $post['is_jump'] : 0;

            if (intval($is_jump) > 0) {

                $jumplinks = $post['jumplinks'];

            }


下面添加:


       

  // 獲取并處理演示地址

             $aidurl = isset($post['aidurl']) ? trim($post['aidurl']) : '';

             if (!empty($aidurl)) {

              }


繼續(xù)查找(340行左右):


 // --存儲數(shù)據(jù)

            $newData = array(

                'typeid'=> empty($post['typeid']) ? 0 : $post['typeid'],

                'channel'   => $this->channeltype,

                'is_b'      => empty($post['is_b']) ? 0 : $post['is_b'],

                'is_head'      => empty($post['is_head']) ? 0 : $post['is_head'],

                'is_special'      => empty($post['is_special']) ? 0 : $post['is_special'],

                'is_recom'      => empty($post['is_recom']) ? 0 : $post['is_recom'],

                'is_roll'      => empty($post['is_roll']) ? 0 : $post['is_roll'],


下面添加:



             'aidurl'       =>  $aidurl,


繼續(xù)查找:


   /**

     * 編輯

     */

    public function edit()

    {

        $admin_info = session('admin_info');

        $auth_role_info = $admin_info['auth_role_info'];

        $this->assign('auth_role_info', $auth_role_info);

        $this->assign('admin_info', $admin_info);


        if (IS_POST) {

            $post = input('post.');

            model('Archives')->editor_auto_210607($post);

            $post['aid'] = intval($post['aid']);


            /* 處理TAG標(biāo)簽 */

            if (!empty($post['tags_new'])) {

                $post['tags'] = !empty($post['tags']) ? $post['tags'] . ',' . $post['tags_new'] : $post['tags_new'];

                unset($post['tags_new']);

            }

            $post['tags'] = explode(',', $post['tags']);

            $post['tags'] = array_unique($post['tags']);

            $post['tags'] = implode(',', $post['tags']);

            /* END */


            $typeid = input('post.typeid/d', 0);

            $content = empty($post['addonFieldExt']['content']) ? '' : htmlspecialchars_decode($post['addonFieldExt']['content']);

            if (!empty($post['fileupload'])){

                foreach ($post['fileupload']['file_url'] as $k => $v){

                    if (is_http_url($v)){

                        $post['fileupload']['uhash'][$k] = md5($v);

                    }

                }

            }

            // 根據(jù)標(biāo)題自動提取相關(guān)的關(guān)鍵字

            $seo_keywords = $post['seo_keywords'];

            if (!empty($seo_keywords)) {

                $seo_keywords = str_replace(',', ',', $seo_keywords);

            } else {

                // $seo_keywords = get_split_word($post['title'], $content);

            }


下面新增:


 // 獲取并處理演示地址

             $aidurl = isset($post['aidurl']) ? trim($post['aidurl']) : '';

             if (!empty($aidurl)) {

              }



繼續(xù)查找:


  // --存儲數(shù)據(jù)

            $newData = array(

                'typeid'=> $typeid,

                'channel'   => $channel,

                'is_b'      => empty($post['is_b']) ? 0 : $post['is_b'],

                'is_head'      => empty($post['is_head']) ? 0 : $post['is_head'],

                'is_special'      => empty($post['is_special']) ? 0 : $post['is_special'],

                'is_recom'      => empty($post['is_recom']) ? 0 : $post['is_recom'],

                'is_roll'      => empty($post['is_roll']) ? 0 : $post['is_roll'],

                'is_slide'      => empty($post['is_slide']) ? 0 : $post['is_slide'],

                'is_diyattr'      => empty($post['is_diyattr']) ? 0 : $post['is_diyattr'],


下面新增:


'aidurl'       =>  $aidurl,


保存


(PS:其他模型一樣 都是函數(shù) add 和edit)


第二部,打開模板文件:

\admin\template\download

add.htm和edit.htm


2個文件差不多:


找到(大概98行左右):


 <li><a href="javascript:void(0);" data-index='3' class="tab"><span>更多設(shè)置</span></a></li>

下面新增:

 <li><a href="javascript:void(0);" data-index='5' class="tab"><span>演示地址</span></a></li>


繼續(xù)查找:


        <div class="ncap-form-default">

            <div class="bot2">

                <input type="hidden" name="gourl" value="{$gourl|default=''}">

                <input type="hidden" name="editor_addonFieldExt" id="editor_addonFieldExt" value="">

                <a href="JavaScript:void(0);" onclick="check_submit();" class="ncap-btn-big ncap-btn-green" id="submitBtn">確認(rèn)提交</a>

                {include file="public/callback_page_2" /}<!-- 返回按鈕 -->

            </div>

        </div>


在上面添加以下代碼:


      <div class="ncap-form-default tab_div_5" >


            <dl class="row">

                <dt class="tit">

                    <label>演示地址</label>

                </dt>

                <dd class="opt">    

                    <input type="text" value="{$field.aidurl}" name="aidurl" id="aidurl" class="input-txt">

                </dd>

            </dl>

         

        </div>


最后繼續(xù)查找JS部分:


 $(".tab_div_1, .tab_div_2, .tab_div_3, .tab_div_4").hide();


改為:

 $(".tab_div_1, .tab_div_2, .tab_div_3, .tab_div_4, .tab_div_5").hide();


保存  


到這后端的已經(jīng)修改好了。

第二部改前端:


打開:

\application\home\controller

view.php

文件:


找到:(index函數(shù)里面)

        $result['seo_title']       = set_arcseotitle($result['title'], $result['seo_title'], $result['typename'], $result['typeid'], $this->eyou['site']);

        $result['seo_description'] = checkStrHtml($result['seo_description']);

        $result['tags'] = !empty($result['tags']['tag_arr']) ? $result['tags']['tag_arr'] : '';

        $result['litpic'] = handle_subdir_pic($result['litpic']); // 支持子目錄

        $result = view_logic($aid, $this->channel, $result, true); // 模型對應(yīng)邏輯

        $result = $this->fieldLogic->getChannelFieldList($result, $this->channel); // 自定義字段的數(shù)據(jù)格式處理


下面新增一下代碼:


$result['aidurl_field'] = $this->aidurl_field($aid);


再index函數(shù)結(jié)尾 新增一下代碼:【也就是閱讀權(quán)限上面或者結(jié)尾最后一個“}“上面】

 


 public function aidurl_field($aid)

{

    // 檢查是否是初次訪問

    $isFirstVisit = !isset($_GET['visited']);


    // 查詢 archives 表中對應(yīng) aid 的所有字段

    $archiveData = Db::name('archives')->where('aid', $aid)->find();

    

    if ($isFirstVisit) {

        // 使用框架的URL生成方法構(gòu)建偽靜態(tài)URL

        $demourl = url('home/View/aidurl_field', ['visited' => '1', 'aid' => $aid]);


        return [

            [

                'demourl' => $demourl,

                'aidurl' => $archiveData['aidurl'] ?? null

            ]

        ];

    } else {

        // 將數(shù)據(jù)賦值給模板變量

        $this->assign([

            'eyou' => [

                'field' => $archiveData

            ]

        ]);


        // 渲染模板

        return $this->fetch('system/aidurl_field');

    }

}


保存即可。



最后創(chuàng)建一個模板名稱為aidurl_field.htm  放在\template\pc\system

目錄里面。


里面代碼參考 執(zhí)行調(diào)整風(fēng)格:


<!DOCTYPE html>

<html>

<head>

    <meta charset="UTF-8">

    <meta name="viewport" content="width=device-width, initial-scale=1.0">

    <title>{$eyou.field.title}</title>

    <style>

        body, html {

            margin: 0;

            padding: 0;

            height: 100%;

        }

        iframe {

            width: 100%;

            height: 100%;

            border: none;

        }

    </style>

</head>

<body>

   

    <iframe src="{$eyou.field.aidurl}"></iframe>

</body>

</html>

    


標(biāo)簽調(diào)用:


在內(nèi)容頁源碼頁調(diào)用標(biāo)簽


{eyou:volist name="$eyou.field.aidurl_field" id="field"}

    <a href="{$field.demo確認(rèn)提交url}" target="_blank">打開演示地址</a>

{/eyou:volist}



模板調(diào)用的標(biāo)簽

{$eyou.field.aidurl}  -網(wǎng)址

{$eyou.field.title}  --標(biāo)題


數(shù)據(jù)庫備份后 執(zhí)行以下代碼:


ALTER TABLE `ey_archives` ADD COLUMN `aidurl`  varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT '' AFTER `author`;



QQ在線咨詢
AI智能客服 ×