discuz X3 2 自定義系統廣告詳解

2022-02-23 02:25:22 字數 2888 閱讀 8897

dz自身是支援自定義廣告位的歸屬於自定義類別,在廣告位圖示上不能夠醒目的顯示而且一些必要的後台互動也不好實現,所以找葫蘆畫瓢做個系統廣告。

一、在source/class/adv中新增自定義的廣告類檔案adv_protaldropdown.php,格式為[adv_廣告名]。

二、在source/language/adv中新增自定義的廣告語言檔案lang_protaldropdown.php,格式為[lang_廣告名]。 

三、在static/image/admincp中新增圖示portaldropdown.gif,格式為[廣告名.gif] 

四、在template模板中放置廣告展示位鉤子

例項:引數:鉤子類別/廣告名/廣告所處div的class/佇列廣告排序位

lang_protaldropdown.php

<?php 

/** * [discuz!] (c)2001-2099 comsenz inc.

* this is not a freeware, use is subject to license terms

* * $id: lang_portaldropdown.php 27449 2012-02-01 05:32:35z zhangguosheng $

*/if(!defined('in_discuz'))

$lang = array

( 'portaldropdown_name' => '首頁下拉廣告',

'portaldropdown_desc' => '展現方式: 廣告以長方形的形式顯示於導航下方,展示規定時間後自動縮回,通常使用寬小高大的長方形或 flash 的形式。對聯廣告一般只在使用畫素約定主**寬度的情況下使用,如使用超過 90% 以上的百分比約定主**寬度時,可能會影響訪問者的正常瀏覽。當訪問者瀏覽器寬度小於 800 畫素時,自動不顯示此類廣告。當前頁面有多個對聯廣告時,系統會隨機選取其中之一顯示。

價值分析: 對聯廣告由於只展現於高解析度(1024x768 或更高)螢幕的兩側,只占用頁面的空白區域,因此不會招致訪問者反感,能夠良好的突出推廣內容。但由於對解析度和主**寬度的特殊要求,使得廣告的受眾比例無法達到 100%。',

'portaldropdown_index' => '首頁',

'portaldropdown_replay' => '是否允許重播',

'portaldropdown_replay_comment' => '開啟此項,該廣告可重複展現',

'portaldropdown_disableclose' => '關閉廣告的鏈結',

'portaldropdown_disableclose_comment' => '如果廣告**中已內建關閉操作,可以關閉系統預置的關閉鏈結',

'portaldropdown_show' => '顯示',

'portaldropdown_hidden' => '隱藏',

'portaldropdown_yes'=>'是',

'portaldropdown_no'=>'否'

圖示

模板鉤子(區域性**)

接下來簡單說說廣告的流程

evalcode()函式返回陣列[check,create]

check:當前模組是否為廣告投放範圍,否則false;

create:當check為true時,建立組裝廣告**(這裡就可以靈活變動了)

check和create的值均為字串語句,

後台新增廣告時由/source/admincp/admincp_adv.php處理存入資料庫common_advertisement,

啟用廣告時由/source/function/cache/cache_advs.php處理,build_cache_advs()函式讀取common_advertisement表中所有的廣告屬性(adv_protaldropdown.php中的setting)建立快取儲存在common_syscache表中,

全域性鉤子系統處理廣告鉤子所展示的廣告時就進入廣告執行階段由/source/function/function_core.php中的adshow()函式執行adv_protaldropdown.php中evalcode()函式返回的字串語句(@eval($evalcode['create'])),然後create中所組裝的廣告**就得以展示,

注意在除錯時可以將**直接插入到adshow函式測試,測試通過後將**轉義再放在adv_portaldropdown.php中的evalcode()函式中。

以上是個人理解的流程整理。。。。。。

實在是寫不下去了!!!!

圖1

Discuz x3 4自定義樣式與問題彙總

持續更新中 問題目錄 修改操作 解決方案 找到static js bbcode.js 找到html2bbcode 方法 if allowhtml fetchcheckbox htmlon trim str catch e str str.replace smilieid d 1 ig,functio...

thinkphp 3 2自定義標籤

1配置標籤 在配置檔案中加入 taglib build in cx,webshop webshop 為自定義標籤類名稱 2編寫自定義標籤類 在thinkphp3.2 taglib目錄加入webshop類,本自定義標籤模仿tpshop,該類 如下namespace think template tag...

Linux自定義系統命令

在使用linux過程中,有些一大長串的命令頻繁的敲難免會厭煩 呼叫某些可執行檔案時不得不記下一長串引數 我們可以通過修改 etc bash.bashrc檔案 其他使用者在各自目錄中 使得我們登陸shell時自動載入我們自定義的命令。例如 我的 目錄是 home ln code test 我想每次在任...