chinesefreesexvideos高潮,欧美极品少妇性运交,久久久国产一区二区三区,99久久婷婷国产综合精品,成人国产一区二区三区

APP推廣合作
聯(lián)系“鳥哥筆記小喬”
#線上營銷#
wiki營銷有哪些案例
好問題
The North Face強行在維基百科中植入品牌廣告,具體是怎么做到的??定制 MediaWiki ,維基百科背后的 wiki 引擎?
商淮
提問日期:2023-03-16 | 瀏覽次數(shù):2905
關(guān)注問題
舉報
查看全部3條回答
3人贊同了該回答
?  MediaWiki 應用程序最為人所知之處就是它是 Wikipedia 背后的引擎。很多人都發(fā)現(xiàn) MediaWiki 提供了一個可用的環(huán)境來在工作組、甚至整個組織以及在線社區(qū)之間共享信息。MediaWiki 讓用戶可以通過博客、wiki 以及文件來共享信息。它還允許使用一個標記云來保護所上載的文件,標記文件以便輕松定位,以及定位專家。   那么,如果想要引入一些不想手動更新的定制信息并插入到您的 wiki 頁面,該怎么辦呢? 又如果想要為特定的某種信息提供定制的輸出格式化,又該怎樣呢?這些情況正是 MediaWiki 的用武之地,因為您可以輕松地通過擴展的使用來添加這些特定于站點的特性。   讓我們來看看您如何創(chuàng)建能夠與不同的信息源協(xié)作的 MediaWiki 擴展,而同時又能通過熟悉的 wiki 頁的用戶界面來提供數(shù)據(jù)。   擴展可以向用來撰寫文章的 wiki markup 中添加新的標記,通過創(chuàng)建特殊頁面添加新的報告和管理特性,通過格式化皮膚更改 wiki 的觀感,甚至與外部的身份驗證方法相集成(但是身份驗證不會在本文中介紹)。   擴展用 PHP 編寫并利用了 MediaWiki 的各種內(nèi)部 hook、類和方法來使其作業(yè)有效完成。在您使用任何受支持的 Web 服務器以及自己偏愛的 PHP 開發(fā)環(huán)境開發(fā)和部署 MediaWiki 時,您將會用到本文中所列的如下工具:   Eclipse V3.5.2 — 支持大量編程語言和環(huán)境 PHP Development Tools (PDT) V2.2.0 — 一個面向 Eclipse 的 PHP 插件 MAMP Pro V1.9 — 一個面向 Mac OS X 的十分便利的包,用一個有用的 GUI 前端在一個隔離的環(huán)境中提供了 Apache、 MySQL 和 PHP。雖然 OS X 自帶了安裝好了的 Apache 和 PHP,但是我更愿意使用這個包,因為 OS X V10.6 Snow Leopard (V5.3.1) 內(nèi)的 PHP 版本有一個明顯的 bug,有礙于 MediaWiki 的正確運行。 MediaWiki V1.15.3 — MediaWiki 的當前穩(wěn)定版本 在深入探究不同類型的擴展之前,讓我們先來看看為大多數(shù)擴展使用的文件夾和文件布局。之后,是對皮膚擴展的高度概覽以供您更改您的 MediaWiki 站點。接下來,將創(chuàng)建一個可生成管理性統(tǒng)計數(shù)據(jù)的特殊頁擴展。最后,您將看到如何添加定制 XML 標記 markup 支持以供您在編寫 wiki 頁面時使用。   MediaWiki 擴展安裝于主 MediaWiki 路徑的 extensions 目錄。大多數(shù)現(xiàn)代的擴展都安裝于其自己的目錄并一般包含如下三個文件( 是擴展的名稱):   .php .body.php .i18n.php 第一個文件執(zhí)行初始化以及設(shè)置任務。第二個文件是擴展的主體,是實現(xiàn)擴展的工作代碼。最后一個文件包含國際化(i18n 是一個常見縮寫)字符串。通過將您的擴展消息字符串提取到這個 i18n 文件,就可以為任何 MediaWiki 支持的本地環(huán)境提供擴展的本地化版本(假設(shè)您能夠找到翻譯文本的幫助)。   舉個例子,假如我創(chuàng)建了一個名為 的 Hello World 擴展(有關(guān)本例的源代碼以及本文中其他示例的源代碼,參見 下載)。只要有人在 wiki 頁面上插入了 , 就會插入當前的日期/時間戳。它包含如下文件:   CHTimeStamp/CHTimeStamp.php CHTimeStamp/CHTimeStamp.body.php CHTimeStamp/CHTimeStamp.i18n.php   圖 1. Eclipse 內(nèi)的 布局   擴展會向 MediaWiki 的 markup 添加一個 變量。每當您將 放入一個頁面,它都會被一個時間戳取代。這不難理解,對么?如果您有興趣,可以查看源代碼;我在此只給出一個大概,旨在為您介紹 MediaWiki 擴展的總體布局和約定。   我的 CHTimeStamp.php 注冊這個國際化消息文件,告訴 wiki 引擎它能夠在 CHTimeStamp.body.php 找到 類并將此 方法添加到擴展函數(shù)的數(shù)組。   在 CHTimeStamp.body.php 內(nèi),定義 類。如果仔細看一下此代碼,就會發(fā)現(xiàn)這完全由靜態(tài)方法組成,所以它也可以在無需更改擴展行為的情況下作為一系列函數(shù)編寫。 的 方法注冊這些靜態(tài)方法來創(chuàng)建這個 變量以及處理使用此變量的那些頁面。   最后,在 CHTimeStamp.i18n.php 內(nèi),我為擴展內(nèi)惟一的靜態(tài)字符串(它的描述)創(chuàng)建了譯文。借助 Google Translate,CHTimeStamp 可支持法語、德語以及西班牙語的本地語言環(huán)境。但我希望這種自動翻譯不會將我的英語翻譯成難以理解(或不適當?shù)模┑臇|西!   創(chuàng)建或下載了擴展后,需要將它安裝到 MediaWiki 內(nèi)并激活它。   為您的 MediaWiki 站點準備好一個有趣且有用的擴展后,您肯定想要安裝并啟用它:   將此擴展復制并解壓縮到 MediaWiki 的 extensions 目錄。 編輯 MediaWiki 根目錄內(nèi)的 LocalSettings.php。使用您喜愛的文本編輯器,添加一些行來配置這個新擴展,然后使用 PHP 的 語句激活它。 比如,為了安裝 ,我已經(jīng)將它的 目錄復制到了 extensions 目錄并將如下語句添加到了 LocalSettings.php:。   通過訪問 wiki 的 Special:Version 頁面,可以檢查擴展是否已經(jīng)被成功加載。除了有關(guān)所運行的 MediaWiki 版本的信息外,這個 Special:Version 頁面還會列出已成功加載的擴展。   圖 2. Special:Version 頁面顯示   MediaWiki 利用了 PHP 的混合代碼功能以及 HTML markup 來讓您能夠通過皮膚的使用控制您 wiki 的觀感。除了主要的 PHP 代碼之外,一個皮膚可以包含各種 CSS 文件以及支持的圖像或 JavaScript。   一個皮膚通常包含兩個 PHP 文件、一個內(nèi)含其他支持文件的目錄。比如,著名的默認皮膚 MonoBook 的組成如下:   MonoBook.php — 主要的 MonoBook 皮膚代碼 MonoBook.deps.php — 對 PHP V5 的 APC opcode 緩存內(nèi)的 bug 的修復 monobook/ — 支持的 CSS 和圖片 皮膚的命名約定非常嚴格,要求必須是 SkinName.php、SkinName.deps.php,并且以 (小寫)作為這個支持文件夾的名稱。   在這個 文件夾內(nèi)有皮膚樣式所需的 main.css。特定于瀏覽器的樣式修復也位于此處,所以可以經(jīng)常在這里看到 FF2Fixes.css、IE6Fixes.css、Opera6Fixes.css 等。   SkinName.php 將開始于某些有用的元數(shù)據(jù)。   清單 1. MediaWiki 皮膚元數(shù)據(jù)   可以用適合于您皮膚的內(nèi)容代替上述代碼中方括號中的內(nèi)容。   接下來,需要創(chuàng)建 的子類并覆蓋 方法來表明您皮膚的名稱、樣式和模板。請記住用您皮膚的名稱替換 和 。   清單 2. 擴展 來提供一個新皮膚   您皮膚的主要工作將位于您的 子類中。   清單 3. 大多數(shù)的工作都是在這個模板中完成的   在 子類的內(nèi)部,通過覆蓋這些方法,可以隨心所欲地格式化和樣式化類別列表和交叉引用等。這個類的 方法將整個頁面布局為一個 XHTML 文檔,讓您得以完全控制頁面的組織和樣式化。   在這里,您不能進行 XHTML 和 CSS 頁面的布局和樣式化,但可以先看一下您 MediaWiki 的 skins 文件夾內(nèi)的示例并立即嘗試。   MediaWiki 內(nèi)的特殊頁是按需生成的,目的是做某些特定的并且對 wiki 可能有用的事情,比如讓您編輯系統(tǒng)范圍的消息文本、列出所安裝的擴展或獲得外部鏈接的列表。   除非特別指定,否則特殊頁將對所有人可用并會出現(xiàn)在 特殊頁列表內(nèi)。此外,還可以設(shè)置特殊頁以便使用 語法就能將它包含在頁面上。   與其他的擴展類似,特殊頁也作為一個目錄安裝在 extensions 文件夾內(nèi)。它們通常包含如下 4 個文件:   specialpage/specialpage.php — 擴展的設(shè)置文件 specialpage/specialpage.aliases.php — 特殊頁名稱的別名 specialpage/specialpage.body.php — 特殊頁的主要代碼 specialpage/specialpage.i18n.php — 特殊頁的國際化字符串 例如,如果要創(chuàng)建一個名為 CHStats 的特殊頁,那么它的布局將類似于圖 3。   圖 3. Eclipse 內(nèi)的 CHStats   CHStats.php 內(nèi)的代碼會為此擴展添加更多的功能,注冊別名、主體和 i18n 文件并告訴這個 wiki 引擎在需要時自動加載 類。   清單 4. 設(shè)置 CHStats 特殊頁   在 CHStats.body.php 內(nèi),創(chuàng)建一個新類 ,這個新類擴展了 類。在這個構(gòu)造函數(shù)內(nèi),初始化父類,然后通過調(diào)用 加載國際化消息。有關(guān) 類構(gòu)造函數(shù)(利用它可限制訪問、隱藏頁面等)的更多信息,請查閱特殊頁開發(fā)指南頁面。   覆蓋 方法是為了生成這個頁面。   清單 5. 生成 CHStats 特殊頁   在 方法內(nèi), 參數(shù)是子頁面。例如,如果加載 , 將會被設(shè)為 。   首先,您使用 方法來設(shè)置頁面 header,然后調(diào)用 來編寫某些 markup 到輸出流。您還能夠使用 來直接編寫格式化了的 HTML ,但我在輸出中使用了 wiki markup。有關(guān)的更多信息以及如何向特殊頁正確添加 wiki markup 和/或 HTML,請查閱特殊頁開發(fā)指南。   CHStats 頁使用了 函數(shù)來獲得對數(shù)據(jù)庫的一個引用(使用 DB_SLAVE 進行只讀操作,使用 DB_MASTER 進行寫操作)。然后從 site_stats 數(shù)據(jù)庫選擇幾個字段并使用 wiki markup 將結(jié)果格式化為項目符號格式的列表。   此特殊頁的輸出將類似于圖 4。   圖 4. 實際運行中的 CHStats   CHStats.i18n.php 內(nèi)的國際化字符串包含一個數(shù)組,針對每個受支持語言(在本例中為英語、法語、德語和西班牙語)各有一項。每一項中都有一個數(shù)組,將字符串 IDs 映射到它們的本地文本(希望如此)。法語、德語和西班牙語的翻譯是利用 Google Translate 完成的。   CHStats.aliases.php 具有一個類似的數(shù)組,包含了 CHStats 頁面名稱本身的本地化版本。這可讓法國用戶(比如)以 訪問此頁面。   擴展 MediaWiki 的另一個流行的方式是向 markup 添加對新 XML 標記的支持。這些標記可以基于標記的屬性或內(nèi)容生成不同的輸出并且對于插入內(nèi)聯(lián) HTML 甚至大塊的格式化了的輸出非常有用。   Tag 擴展安裝于 extensions 文件夾內(nèi)的其自己的目錄,并使用在本文開始時給出的這三個文件約定。讓我們來看由我虛構(gòu)的一個名為 CHUser 的簡單擴展:   CHUser/CHUser.php — 擴展設(shè)置 CHUser/CHUser.body.php — 主要的擴展代碼 CHUser/CHUser.i18n.php — 國際化數(shù)據(jù) CHUser.php 內(nèi)進行的擴展設(shè)置類似于我們已經(jīng)看到過的那些,只不過這里使用了 數(shù)組來向 列表添加此擴展的 方法。首次使用時,將會調(diào)用 。   清單 6. 設(shè)置標記擴展   在 CHUser.body.php 內(nèi), 方法注冊了兩個標記: 和 (參見清單 7)。這個擴展可在一個擴展內(nèi)提供兩個不同的標記。如果愿意,可以輕松組合本文中討論的所有擴展,這里并沒有任何拆分開來的要求(除非您自己愿意)。   清單 7. 注冊 和 標記   只要 wiki markup 引擎遇到一個 標記,它就會調(diào)用 方法,而 標記將會調(diào)用 。   呈現(xiàn)方法選擇指定的用戶全名和電子郵件地址,并將其格式化成圍繞用戶全名(如果有的話)的 鏈接的形式。從清單 8 可以看出大多數(shù)的邏輯只是為了處理在數(shù)據(jù)庫中未出現(xiàn)用戶全名或電子郵件地址的情況(比如我的 wiki 上的 Admin 帳戶)。   清單 8. 處理   清單 9 顯示了 標記是如何使用其 ID 屬性鏈接到 MediaWiki Bugzilla 數(shù)據(jù)庫內(nèi)的一個指定的 bug 報告的。它展示了處理外部的數(shù)據(jù)資源是多么地容易。如果想要更為花哨一點,可以使用 Ajax 加載這個 bug 報告,而不是只鏈接到此報告,并進而顯示報告的某些數(shù)據(jù),而不是僅顯示鏈接。   清單 9. 到 MediaWiki Bugzilla 的 鏈接   在圖 5 中可以看到實際運行中的這兩個標記。   圖 5. 實際運行中的擴展   清單 10 向您顯示了對于頁面的該部分,這個 wiki markup 看起來是什么樣子的。   清單 10. 這個 wiki markup 展示了這些擴展   正如從 擴展中看到的,添加對定制 XML 標記的支持很簡單,幾乎可隨意添加。所有的 PHP 特性和 MediaWiki 服務均可用,所以您可以從外部系統(tǒng)拉出(或向外部系統(tǒng)發(fā)送)數(shù)據(jù),基于當前用戶的憑證和權(quán)限更改您的行為或插入 JavaScript 以便直接在查看者的瀏覽器內(nèi)運行任務。可能性很多,只受限于您特定的需要和需求。   在本文中,向您介紹了幾個受 MediaWiki 支持的擴展技術(shù),MediaWiki 是一種開源的 wiki 系統(tǒng),類似于商業(yè)的 wiki 軟件,比如 Lotus? Connections。   您看到了 MediaWiki 的擴展約定,作為編寫 MediaWiki 擴展的一個簡單介紹,我還向您展示了如何創(chuàng)建一個簡單的 wiki 變量擴展。之后對 MediaWiki 的皮膚特性的概覽可幫助您開始創(chuàng)建您自己的定制站點布局。   特殊頁面常用來生成信息,不管信息是從數(shù)據(jù)庫還是其他資源檢索而來,在本文中就制作了一個特殊頁來顯示系統(tǒng)的某些統(tǒng)計信息。然后創(chuàng)建了幾個定制 XML 標記,可包含在任何頁面的 wiki markup 內(nèi)。   下載本文源碼
發(fā)布于2023-03-16
3
0條評論
2收藏
更多回答
展開
1
0條評論
2收藏
展開
3
0條評論
3收藏
查看全部3條回答