知識(shí)
不管是網(wǎng)站,軟件還是小程序,都要直接或間接能為您產(chǎn)生價(jià)值,我們?cè)谧非笃湟曈X(jué)表現(xiàn)的同時(shí),更側(cè)重于功能的便捷,營(yíng)銷(xiāo)的便利,運(yùn)營(yíng)的高效,讓網(wǎng)站成為營(yíng)銷(xiāo)工具,讓軟件能切實(shí)提升企業(yè)內(nèi)部管理水平和效率。優(yōu)秀的程序?yàn)楹笃谏?jí)提供便捷的支持!
您當(dāng)前位置>首頁(yè) » 新聞資訊 » 小程序相關(guān) >
Discuz! + 微信小程序
發(fā)表時(shí)間:2021-3-31
發(fā)布人:葵宇科技
瀏覽次數(shù):92
關(guān)于這個(gè)小程序
Github : https://github.com/DowneyL/di...‘
這個(gè)小程序是公司針對(duì)一個(gè)自家產(chǎn)品的需求,而這個(gè)產(chǎn)品就是 Discuz (我知道沒(méi)啥人用了,就不要吐槽了),版本是 X3.2 ,還是 GBK 編碼!
在公司給了需求,稍微學(xué)習(xí)了一下小程序,就直接開(kāi)干了,網(wǎng)上找到一個(gè)基礎(chǔ)版本(可恥的不全是自己寫(xiě)的),修復(fù)了一些 BUG,新增了一部分功能,也砍掉了一部分功能,兼容了 GBK 版本的 Discuz,簡(jiǎn)單設(shè)計(jì)了一下小程序的樣式,產(chǎn)品也就基本成型了。
之所以分享出來(lái),是因?yàn)殛P(guān)于 Discuz 相關(guān)的文檔、產(chǎn)品之類(lèi)真的是太少了,想在一個(gè)平臺(tái)上記錄下來(lái),如果碰見(jiàn)有緣人,沒(méi)準(zhǔn)能給他一些收獲。 0.0\
我的收獲
- 關(guān)于 API 的開(kāi)發(fā)有了一些理解(正好 Summer 大神出新書(shū)了,買(mǎi)了等更完再看)
- 微信公眾號(hào)開(kāi)發(fā)(原生 PHP 開(kāi)發(fā)微信公眾號(hào),以及超神的 Easywechat)
也成功讓公司論壇關(guān)聯(lián)了 公眾號(hào),實(shí)現(xiàn)在公眾號(hào)上,領(lǐng)取論壇金錢(qián)紅包。 - 微信小程序開(kāi)發(fā)(官方文檔,正在開(kāi)發(fā)的小程序的源碼,都給了我不少啟發(fā))
- HTTP 到 HTTPS
- 小程序上富文本的解析 (一個(gè)優(yōu)秀的開(kāi)源項(xiàng)目:wxParse-微信小程序富文本解析組件 )
作用在于:解析你論壇上的帖子內(nèi)容,你論壇上加粗的文字,加了顏色的文字,圖片等等,都可以原原本本的展示在小程序中。 - Flex 布局
這里分享阮老師的兩篇文章 Flex 布局教程:語(yǔ)法篇 、Flex 布局教程:實(shí)例篇 - 兩個(gè) UI 組件 weui、zanui
- .....
部分細(xì)節(jié)
主要有以下幾點(diǎn)功能,需要記錄
第一節(jié)
file_get_content()
函數(shù),在論壇上有可能無(wú)法使用,已經(jīng)在 inc.php 文件中實(shí)現(xiàn)相同功能的get_url_content()
函數(shù)。function get_url_content($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); # curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); if (!curl_exec($ch)) { error_log(curl_error($ch)); $data = https://www.wxapp-union.com/''; } else { $data = https://www.wxapp-union.com/curl_multi_getcontent($ch); } curl_close($ch); return $data; }
由于論壇整體格式為 GBK,而和微信服務(wù)端交互,必須為 UTF-8 編碼,所以對(duì)接口編碼進(jìn)行了一部分的優(yōu)化。
輸出的情況下,有 error.php 下的
array_iconv()
函數(shù),來(lái)對(duì)輸出數(shù)組進(jìn)行編碼的轉(zhuǎn)換。static function array_iconv($str, $in_charset = "UTF-8", $out_charset = CHARSET) { if (is_array($str)) { foreach ($str as $k => $v) { $str[$k] = WmApiError::array_iconv($v, $in_charset, $out_charset); } return $str; } else { if (is_string($str)) { // return iconv('UTF-8', 'GBK//IGNORE', $str); return mb_convert_encoding($str, $out_charset, $in_charset); } else { return $str; } }
接受的情況下, 有 inc.php 下的
getDataForCharset()
函數(shù)來(lái)整合接受編碼。function getDataForCharset($data) { return (CHARSET != 'UTF-8') ? dhtmlspecialchars(WmApiError::array_iconv($data)) : dhtmlspecialchars($data); }
- 關(guān)閉了微信登陸的功能。
- 獲取帖子時(shí)新增了帖子的具體內(nèi)容,message。
- 優(yōu)化了其他一些細(xì)節(jié)部分的內(nèi)容。
第二節(jié)
wxParse 做的事情
- 輸出帖子時(shí),對(duì) Discuz Code 進(jìn)行解碼,同時(shí),獲取圖片附件,以及表情圖片。
- 接受時(shí),解析文本的加粗、高亮、斜體、字體等。讓帖子呈原樣輸出。
- 以上功能,重點(diǎn)在 wmapi/get_post_detail.php 、 wmapi/get_self_post.php 兩個(gè)腳本中重點(diǎn)突出。
第三節(jié)
- 部分獲取小程序的數(shù)據(jù)的方式為
get_url_content()
部分為file_get_content()
(生產(chǎn)環(huán)境可能由于設(shè)置問(wèn)題,導(dǎo)致如此怪異,請(qǐng)結(jié)合自身服務(wù)器來(lái)看) - 首頁(yè)新增加載狀態(tài) (加載中... 沒(méi)有更多... 暫無(wú)數(shù)據(jù)...)
- 群組帖子,無(wú)法顯示群組的名稱(chēng)
- 在小程序向服務(wù)器傳遞中文字符串的時(shí)候,先
encodeURI()
再到論壇服務(wù)器上urldecode()
最后進(jìn)行 UTF8 -> GBK 的轉(zhuǎn)碼,當(dāng)然,是有必要的情況下。
基礎(chǔ)展示
相關(guān)案例查看更多
相關(guān)閱讀
- 網(wǎng)站建設(shè)首選公司
- 云南網(wǎng)站建設(shè)招商
- 云南網(wǎng)站建設(shè)電話(huà)
- 區(qū)塊鏈
- 旅游網(wǎng)站建設(shè)
- 網(wǎng)站排名
- 汽車(chē)報(bào)廢系統(tǒng)
- 小程序的開(kāi)發(fā)公司
- 報(bào)廢車(chē)
- 曲靖小程序開(kāi)發(fā)
- 河南小程序制作
- 云南小程序開(kāi)發(fā)課程
- 網(wǎng)站建設(shè)首選
- 云南網(wǎng)站建設(shè)公司哪家好
- 網(wǎng)站建設(shè)案例
- 云南小程序哪家好
- 云南網(wǎng)站建設(shè)首頁(yè)
- 網(wǎng)絡(luò)公司排名
- 江蘇小程序開(kāi)發(fā)
- 報(bào)廢車(chē)拆解回收管理系統(tǒng)
- 云南網(wǎng)站設(shè)計(jì)
- 網(wǎng)絡(luò)公司電話(huà)
- 網(wǎng)站建設(shè)百度官方
- 網(wǎng)站收錄
- 昆明軟件定制
- 云南網(wǎng)站優(yōu)化公司
- 云南旅游網(wǎng)站建設(shè)
- 制作一個(gè)小程序
- 云南網(wǎng)站建設(shè)百度官方
- 云南網(wǎng)站建設(shè)優(yōu)化