Discuz插件制作教程【入門+精通+實戰】.doc_第1頁
Discuz插件制作教程【入門+精通+實戰】.doc_第2頁
Discuz插件制作教程【入門+精通+實戰】.doc_第3頁
Discuz插件制作教程【入門+精通+實戰】.doc_第4頁
Discuz插件制作教程【入門+精通+實戰】.doc_第5頁
已閱讀5頁,還剩15頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

一、開發插件所需資料與工具 1、DiscuzX3 插件機制 插件機制Discuz! 擁有一套完整的插件機制。合理使用插件機制,你可以更好的將自己的個性功能需求整合到Discuz!產品中的同時,保持代碼獨立,并且不受后續Discuz!產品版本升級的影響。我們鼓勵并推薦,使用插件機制進行個性需求定制和研發。插件設計的準備工作插件實現流程開始編寫社區插件,您應當首先對插件實現的流程有一個大致的了解,以下是我們推薦的插件編寫流程: 熟練使用 Discuz! 社區系統后,對希望完善或補充的個性化功能進行評估,進而提出插件的功能需求。 對插件做一個概括性的設計,例如:需要使用什么菜單、什么參數,配置哪些選項、數據結構如何設計、前后臺實現哪些功能等等。 閱讀本文檔并在系統設置中實際體驗 Discuz! 插件接口所實現的功用,例如:您的插件應當如何設計才能良好的掛接到社區系統中來。插件接口能夠實現哪些功能、不能實現哪些功能,插件為此而需要做的優化、改造和取舍。 編寫相應程序代碼和模板語句,實現所需的功能并進行代碼測試、兼容性測試和代碼改進。 如果需要公開您的插件,可以用插件導出的方式,將插件配置信息導出到一個 XML 文件中,連同相應的程序和模板文件一同打包。同時,編寫一個適合新手的插件的說明書也是必不可少的,其中包括:插件適用的 Discuz! 版本、功能概述、兼容性聲明、安裝方法、使用方法、卸載方法等等。 將插件提供給他人,或自己使用,根據使用者反饋,對插件進行完善。插件實現流程至此結束。 文件命名規范Discuz! 按照如下的規范對程序和模板進行命名,請在設計插件時盡量遵循此命名規范: 可以直接通過瀏覽器訪問的普通程序文件,以 .php 后綴命名。 被普通程序文件引用的程序文件,以 .inc.php 后綴命名。 被普通程序文件,或引用程序文件引用的函數庫或類庫,以 .func.php(函數庫) 或 .class.php(類庫) 后綴命名。 模板文件,以 .htm 后綴命名,插件模板文件存在于 source/plugin/identifier/template/ 目錄中,手機版插件模板存在于 source/plugin/identifier/template/mobile/目錄中 模板語言包文件,以 .lang.php 后綴命名,插件語言包文件開發時存放于 data/plugindata/ 目錄中,文件名為identifier.lang.php。 動態緩存文件,存放于 ./data/cache 目錄中,依據不同的功用進行獨立的命名。 使用后臺數據備份功能生成的備份文件,通常以 .sql 為后綴,存放于 data/ 目錄中。 有些目錄中存在內容為空白的 index.htm 文件,此類文件是為了避免 Web 服務器打開 Directory Index 時可能產生的安全問題。 X2.5新增內容 從 Discuz! X2.5 開始,產品對數據表進行了封裝,封裝后的文件統一命名為 Table 類,通過“C:t(Table類文件名)”方式調用。插件如需封裝自己的數據表,可將 Table 類文件存放于 source/plugin/identifier/table/ 目錄下,并以 table_表名.php 格式命名,詳見X2.5的新程序架構。 class_core.php 模塊功能白皮書source/class/class_core.php 是 Discuz! 的通用初始化模塊程序,其幾乎被所有的外部代碼所引用,在您開始插件設計之前,可以先對該模塊的大致功能做一定的了解。class_core.php 主要完成了以下任務: 對不同 PHP 及操作系統環境做了判斷和兼容性處理,使得 Discuz! 可以運行于各種不同配置的服務器環境下。 初始化常量 IN_DISCUZ 為 TRUE,用于 include 或 require 后續程序的判斷,避免其他程序被非法引用。 讀取社區程序所在絕對路徑,存放于常量 DISCUZ_ROOT 中。 加載所需的基本函數庫 source/function/function_core.php。 通過 config/config_global.php 中提供的數據庫賬號信息,建立數據庫連接。Discuz! 支持數據表的前綴,如需獲得表的全名,可使用“DB:table(tablename)”方式。 判斷用戶是否登錄,如登錄標記 $_Guid 為非 0,同時將 $_Gusername(加了 addslashes 的用戶名,可用于不加修改的插入數據庫)、 $_Gmemberusername(原始的用戶名,可用于頁面顯示)、$_Gmemberpassword(用戶密碼的MD5串)等相應用戶信息賦值,其他用戶信息存放于 $_Gmember,更多信息可通過“getuserprofile()”獲取。 判斷用戶管理權限,將管理權限標記 $_Gadminid 為 13 中間的值。0 代表普通用戶;1 代表論壇管理員;2 代表超級版主;3 代表論壇版主。 將用戶權限按照其所在的主用戶組 ID 標記為 $_Ggroupid,相關權限從該 $_Ggroupid 所對應的系統緩存中讀出,存放于 $_Ggroup。 預置讀入了每個模塊的各種設置變量。 X2.5變更內容 $_Gusername 將不進行 addslashes 處理。插件接口概述使用管理員賬號登錄 Discuz! 管理中心,在頂部菜單將可以看到“插件”菜單。“插件列表”列出了所有已安裝的插件,是控制插件打開與否、設計插件模塊、菜單、參數和使用權限的地方,插件開發者可以依照設計意圖,在此進行插件的初步設置,這里同時也提供插件導入和插件開關的功能,用于導入他人設計的插件和對插件的可用狀態進行變更。開始編寫一個新插件,請首先打開 config/config_global.php 文件,在文件結尾添加以下代碼開啟插件設計者模式。 $_configplugindeveloper = 1;在插件管理中選擇“設計新插件”,填寫插件名稱,名稱用于表明此插件的用途,例如設置為“虛擬銀行插件”。惟一標識符用于在后續的插件模塊中調用本插件,不可與現有插件重復,命名規則限制與 PHP 變量命名相同,雖然初次設置后仍可改動,但強烈建議一次性將此配置設置好,否則可能涉及到很多代碼方面的變更,增加編碼的麻煩。請注意:惟一標識符請不要設置的過短,或使用有可能與其他插件重復的命名,例如制作此插件的公司叫做 Comsenz Inc.,插件名稱是“虛擬銀行插件”,惟一標識符可設置為“comsenz_virtual_bank”。最后在 source/plugin/ 目錄中創建與唯一標識符同名的目錄名,如 source/plugin/comsenz_virtual_bank/。在插件管理中添加插件后,僅僅是增加了一條插件記錄,后面還需要很多相關的設計和設置。在列表中選擇插件的“詳情”進入插件的詳細設置。插件設置分為三個部分: 插件模塊插件模塊分為程序鏈接、擴展項目和程序腳本 3 類:程序鏈接 主導航項目:可在主導航欄增加一個菜單項,可自主指派菜單鏈接的 URL,也可以調用插件的一個模塊,模塊文件名指派為 source/plugin/插件目錄/插件模塊名.inc.php”。注意:由于引用外部程序,因此即便設置了模塊的使用等級,您的程序仍需進行判斷使用等級是否合法。 程序鏈接 主導航項目 - 插件菜單:可在主導航欄的插件子菜單中增加一個菜單項。 程序鏈接 頂部導航項目、底部導航項目、快捷導航項目、家園導航項目:可在各個導航中增加一個菜單項。 擴展項目 個人設置:可在個人設置中增加一個菜單項。 擴展項目 個人設置 - 個人資料:可在個人設置的個人資料頁上部增加一個菜單項。 擴展項目 個人設置 - 積分:可在個人設置的積分頁上部增加一個菜單項。 擴展項目 站點幫助:可在站點幫助中增加一個菜單項。 擴展項目 我的帖子:可在我的帖子中增加一個菜單項。 擴展項目 門戶管理:可在門戶管理面板上部增加一個菜單項。 擴展項目 論壇管理 - 基本:可在前臺論壇管理面板側邊上部增加一個菜單項。 擴展項目 論壇管理 - 工具:可在前臺論壇管理面板側邊下部增加一個菜單項。 擴展項目 管理中心:可在后臺插件欄目中為此插件增添一個管理模塊。 程序腳本 頁面嵌入 - 普通版:設置一個包含頁面嵌入腳本的模塊,該模塊用于在普通電腦訪問的頁面顯示。模塊文件名指派為 source/plugin/插件目錄/插件模塊名.class.php”。(頁面嵌入將在后面的頁面嵌入模塊開發中詳細說明) 程序腳本 頁面嵌入 - 手機版:設置一個包含頁面嵌入腳本的模塊,該模塊用于在手機訪問的頁面顯示。 程序腳本 特殊主題:設置一個特殊主題腳本的模塊,模塊文件名指派為 source/plugin/插件目錄/插件模塊名.class.php”。(特殊主題將在后面的特殊主題模塊開發中詳細說明) 您可以為每個模塊設置不同的使用等級,例如設置為“超級版主”,則超級版主及更高的管理者可以使用此模塊。擴展項目模塊可以在社區的特定位置擴展出新的功能,通常用于擴展新的設置項目。項目的腳本文件以 .inc.php 結尾(如 test.inc.php),模版為固定文件名,位于插件目錄的 template/ 子目錄中,文件名與腳本名同名(如 test.htm),擴展名為 .htm。添加相應的擴展項目模塊時,需注明程序模塊、菜單名稱。例如我們添加個人面板項目,程序模塊為 test,菜單名稱是“測試”,當插件啟用后,個人面板即家園的設置中會出現“測試”拓展項目。在新插件內核中,通過 plugin.php 方式訪問的插件可直接通過 plugin.php?id=xxx:yyy 方式調用而無需再在后臺定義為普通腳本模塊,只要 source/plugin/xxx/yyy.inc.php 文件存在即可。如果 xxx 和 yyy 同名,可直接通過 plugin.php?id=xxx 方式訪問。插件變量配置插件接口中提供了一個通用的插件配置管理程序,在大多數情況下可實現插件的參數配置,省卻了插件開發者自行編寫后臺管理模塊(即上面提到的“擴展項目 管理中心”模塊)的麻煩。通常情況下,應優先使用通用插件配置管理程序來實現插件的參數配置,只有在通用程序確實無法實現時,才自行編寫后臺管理模塊。輸入配置名稱和配置變量名、選擇合適的配置類型后,即可為此插件增加一個配置變量,點“詳情”可以編輯此配置變量的更多信息。為了方便插件程序調用使用者配置好的參數,配置變量同樣被存放在了緩存文件中,讀取方法將在后面的插件的參數讀取與緩存控制中詳細說明。注意:您只有在插件管理中將插件設置為“可用”,以上設置才能生效。插件的參數讀取與緩存控制 編寫插件程序時,可能需要讀取一些插件的信息,如果插件需要使用者進行配置,還需要讀取使用者設置的參數值。Discuz! 允許插件程序使用數據庫讀取和緩存讀取這兩種方法獲取插件信息和參數。Discuz! 的插件接口已經對插件信息進行了合理的緩存,使用緩存讀取的方式,將比數據庫讀取速度更快,消耗的資源更是幾乎可以忽略不計。緩存讀取唯一的局限是需要插件使用插件接口提供的通用后臺管理程序。如果使用自定義后臺模塊的方式,需要后臺模塊將參數存放到 pluginvars 數據表中,才能被系統正常緩存。我們強烈推薦您通過緩存讀取插件信息和配置數據。 由于調用系統緩存統一通過“loadcache()”函數調用,并存放于 $_Gcache 中,因此“loadcache(plugin)”后插件的變量緩會存放于 $_Gcacheplugin 中。嵌入點插件和以 plugin.php 為主腳本調用的插件無需加載此緩存,系統已自動加載了緩存。變量配置類型為“版塊/*”的變量會保存在 $_Gcacheforumsfidplugin 中。變量配置類型為“用戶組/*”的變量會保存在 $_Gcacheusergroup_groupidplugin 和 $_Ggroupplugin 中。頁面嵌入模塊開發頁面嵌入類型腳本格式 plugin_ 普通版腳本中的類名以 plugin_ 開頭。手機版腳本中的類名以 mobileplugin_ 開頭。 identifier 插件的唯一標識符,在插件設置中設置。 CURSCRIPT 嵌入點位于的腳本名,如 forum.php 為 forum。 HookId函數名調用位置聲明位置參數含義HookId()所有模塊執行前被調用腳本嵌入點類HookId_output($value)模塊執行完畢,模板輸出前被調用腳本嵌入點類$value: array(template = 當前要輸出的模版,message = showmessage 的信息內容,values = showmessage 的信息變量,)global_HookId()模塊執行完畢,模板輸出前被調用全局嵌入點類HookId_message($value)showmessage() 執行時調用腳本嵌入點類$value: array(param = showmessage() 函數的參數數組,)ad_adId($value)相應的廣告位中調用函數名為廣告位腳本 ID 如:ad_headerbanner()全局嵌入點類腳本嵌入點類$value: array(params = 廣告位參數,content = 當前廣告位原本將要顯示的內容,)common()所有模塊執行前被調用全局嵌入點類discuzcode($value)discuzcode() 函數執行時調用用于在帖子內容解析時嵌入自己的功能,函數中 $_Gdiscuzcodemessage 變量為待解析的字串全局嵌入點類$value: array(param = caller 函數的參數數組,caller = caller 函數,此嵌入點被哪個函數調用discuzcode 被 discuzcode() 調用messagecutstr 被 messagecutstr() 調用)deletethread($value)deletethread() 函數執行時調用用于在主題刪除前后嵌入自己的功能,此函數將在 deletethread() 中被調用 2 次,函數中 $_Gdeletethreadtids 變量為待處理的 TID 數組全局嵌入點類$value: array(param = deletethread() 函數的參數數組,step = 刪除的步驟check 檢測步驟delete 刪除步驟)deletepost($value)deletepost() 函數執行時調用用于在帖子刪除前后嵌入自己的功能,此函數將在 deletepost() 中被調用 2 次,函數中 $_Gdeletepostids 變量為待處理的 ID 數組全局嵌入點類$value: array(param = deletepost() 函數的參數數組,step = 刪除的步驟check 檢測步驟delete 刪除步驟)avatar($value)(X2.5 新增)avatar() 函數執行時調用用于在頭像調用時嵌入自己的功能,函數中 $_Ghookavatar 變量為新頭像返回值全局嵌入點類$value: array(param = avatar() 函數的參數數組)profile_node($post, $start, $end)(X3.0 新增)貼內用戶信息標記,返回值為標記顯示內容全局嵌入點類$post: 當前帖子信息數組$start: 用戶填寫的前置字符$end: 用戶填寫的后置字符要查看所有的預定義嵌入點,請打開 config/config_global.php 文件,將文件結尾添加的設計者模式值改成“2”,然后更新緩存即可。在頁面源碼中查找可搜索到嵌入點。(詳細內容可參閱的插件嵌入點列表)$_configplugindeveloper = 2;預定義的嵌入點會在頁面預置好的位置輸出函數返回的內容。函數返回值類型如果是 array 且是空值的,必須輸出一個空數組,如:return array();函數名并不限于以上列表,您可以自定義,只要符合以下規則,函數就會在適當的地方被調用。function CURMODULE_USERDEFINE_output()CURMODULE 指明了此函數在哪個模塊執行,可通過常量 CURMODULE 得到當前頁面的 CURMODULE 值。 USERDEFINE 可自定義,如果函數名以“_output”結尾則會在模板輸出前調用,否則會在模塊執行前調用。 如:attachment_test() 函數會在論壇的下載附件的時候執行。 “_output”結尾的函數的第一個參數為數組,含義為 array(template = 要輸出的模板名, message = showmessage 的文字) 如:以下函數將在登錄的時候輸出調試文字function logging_test_output($a) print_r($a); print_r($_POST);plugin_identifier 類中的其它函數為了便于閱讀建議以“_”開頭,如: 插件嵌入點列表 全局(common/)extcredits.htm string spacecp_credit_extra faq.htm string faq_extra footer.htm string global_footer string global_footerlink header.htm string global_cpnav_top (X2.5) string global_cpnav_extra1 string global_cpnav_extra2 string global_qmenu_top (X3) string global_qmenu_bottom (X3) string global_nav_extra (X2.5) string global_header userabout.htm array global_userabout_top string userapp_menu_top string userapp_menu_middle array global_userabout_bottom userstatus.htm string global_usernav_extra1 string global_usernav_extra2 string global_usernav_extra3 string global_usernav_extra4 (X2.5) 論壇(forum/)collection_all.htm (X2.5) string collection_index_top string collection_index_bottom collection_comment.htm (X2.5) string collection_nav_extra collection_index.htm (X2.5) string collection_index_top string collection_index_bottom collection_mycollection.htm (X2.5) string collection_index_top string collection_index_bottom collection_nav.htm (X2.5) string collection_nav_extra collection_view.htm (X2.5) string collection_viewoptions string collection_view_top string collection_threadlistbottom string collection_relatedop string collection_view_bottom string collection_side_bottom discuz.htm string index_status_extra string index_nav_extra (X2.5) string index_top string index_catlist_top (X2.5) array index_followcollection_extra (X3) array index_favforum_extra (X2.5) array index_favforum_extra (X3) array index_catlist (X2.5) array index_forum_extra (X2.5) array index_forum_extra (X2.5) array index_datacollection_extra (X3) string index_middle string index_bottom string index_side_top string index_side_bottom discuzcode.htm array viewthread_attach_extra (X2.5) editor_menu_forum.htm string post_image_btn_extra string post_image_tab_extra string post_attach_btn_extra string post_attach_tab_extra forumdisplay.htm string forumdisplay_leftside_top string forumdisplay_leftside_bottom string forumdisplay_forumaction string forumdisplay_modlink string forumdisplay_top string forumdisplay_middle string forumdisplay_postbutton_top string forumdisplay_threadtype_inner (X2.5) string forumdisplay_filter_extra (X2.5) string forumdisplay_threadtype_extra (X2.5) string forumdisplay_bottom string forumdisplay_side_top string forumdisplay_side_bottom forumdisplay_fastpost.htm string forumdisplay_fastpost_content string forumdisplay_fastpost_func_extra string forumdisplay_fastpost_ctrl_extra string global_login_text string forumdisplay_fastpost_upload_extend (X3) string forumdisplay_fastpost_btn_extra string forumdisplay_fastpost_sync_method forumdisplay_list.htm string forumdisplay_filter_extra array forumdisplay_thread array forumdisplay_thread_subject (X2.5) array forumdisplay_author array forumdisplay_thread (X2.5) array forumdisplay_author (X2.5) string forumdisplay_threadlist_bottom (X2.5) string forumdisplay_postbutton_bottom forumdisplay_sort.htm (X2.5) string forumdisplay_postbutton_bottom forumdisplay_subforum.htm (X2.5) array forumdisplay_subforum_extra array forumdisplay_subforum_extra guide.htm string guide_nav_extra string guide_top string guide_bottom index_navbar.htm string index_navbar post.htm string post_top string post_middle string post_btn_extra string post_sync_method string post_bottom string post_upload_extend (X3) post_activity.htm string post_activity_extra post_debate.htm string post_debate_extra post_editor_attribute.htm (X3) string post_attribute_extra string post_attribute_extra_body post_editor_body.htm string post_editorctrl_right string post_editorctrl_left string post_editorctrl_top string post_editorctrl_bottom post_infloat.htm string post_infloat_top string post_infloat_middle string post_infloat_btn_extra post_poll.htm string post_poll_extra string post_poll_upload_extend (X3) post_reward.htm string post_reward_extra post_trade.htm string post_trade_extra topicadmin_modlayer.htm string forumdisplay_modlayer string modcp_modlayer trade_info.htm string viewthread_tradeinfo_extra viewthread.htm string viewthread_top string viewthread_postbutton_top string viewthread_modoption string viewthread_beginline (X2.5) string viewthread_title_extra string viewthread_title_row string viewthread_middle string viewthread_bottom viewthread_activity.htm string viewthread_activity_extra1 string viewthread_activity_extra2 viewthread_album.htm (X3) string viewthread_beginline string viewthread_useraction_prefix string viewthread_useraction string viewthread_bottom viewthread_fastpost.htm string viewthread_fastpost_side string viewthread_fastpost_content string viewthread_fastpost_func_extra string viewthread_fastpost_ctrl_extra string global_login_text string viewthread_fastpost_upload_extend (X3) string viewthread_fastpost_btn_extra (X2.5) viewthread_from_node.htm array viewthread_postheader array viewthread_postheader array viewthread_postheader array viewthread_endline viewthread_node.htm array viewthread_profileside array viewthread_imicons array viewthread_magic_user array viewthread_avatar array viewthread_sidetop array viewthread_sidebottom array viewthread_postheader string viewthread_modaction (X2.5) string viewthread_share_method string viewthread_useraction array viewthread_postsightmlafter (X2.5) array viewthread_postfooter array viewthread_postaction (X2.5) string viewthread_magic_thread array viewthread_magic_post array viewthread_endline viewthread_node_body.htm array viewthread_posttop string global_login_text array viewthread_postbottom viewthread_poll.htm string viewthread_poll_top string viewthread_poll_bottom viewthread_portal.htm string viewthread_useraction_prefix string viewthread_useraction string viewthread_side_bottom viewthread_preview_node.htm (X3) array viewthread_postheader array viewthread_endline viewthread_trade.htm array viewthread_trade_extra 群組(group/)group.htm string group_navlink string forumdisplay_navlink string group_navlink string forumdisplay_navlink string group_top string forumdisplay_top string group_nav_extra string forumdisplay_nav_extra string group_bottom string forumdisplay_bottom string group_side_bottom string forumdisplay_side_bottom group_list.htm string forumdisplay_postbutton_top string forumdisplay_filter_extra array forumdisplay_thread string forumdisplay_postbutton_bottom group_my.htm string my_header string my_bottom string my_side_top string my_side_bottom group_right.htm string group_index_side string group_side_top string forumdisplay_side_top index.htm string index_header string index_top string index_bottom string index_side_top string index_side_bottom type.htm string index_top array index_grouplist string index_bottom string index_side_top string index_side_bottom 家園(home/)editor_image_menu.htm (X3) string spacecp_blog_upload_extend string portalcp_top_upload_extend follow_feed.htm string follow_nav_extra string follow_top string follow_upload_extend (X3) string follow_nav_extra (X3) spacecp_avatar.htm string spacecp_avatar_top string spacecp_avatar_bottom spacecp_blog.htm string spacecp_blog_top string spacecp_blog_middle string spacecp_blog_bottom spacecp_credit_base.htm string spacecp_credit_top string spacecp_credit_extra string spacecp_credit_bottom spacecp_credit_log.htm string spacecp_credit_top string spacecp_credit_bottom spacecp_privacy.htm string spacecp_privacy_top string spacecp_privacy_base_extra string spacecp_privacy_feed_extra string spacecp_privacy_bottom spacecp_profile.htm string spacecp_profile_top string spacecp_profile_extra string spacecp_profile_bottom spacecp_promotion.htm string spacecp_promotion_top string spacecp_promotion_bottom spacecp_upload.htm (X3) string spacecp_upload_extend spacecp_usergroup.htm string spacecp_usergroup_top string spacecp_usergroup_bottom string spacecp_usergroup_top string spacecp_usergroup_bottom string spacecp_usergroup_top string spacecp_usergroup_bottom space_album_pic.htm string space_album_pic_top string space_album_pic_op_extra string space_album_pic_bottom string space_album_pic_face_extra space_album_view.htm string space_album_op_extra space_blog_list.htm array space_blog_list_status space_blog_view.htm string space_blog_title string space_blog_share_method (X2.5) string space_blog_op_extra string space_blog_face_extra space_card.htm string space_card_top string space_card_baseinfo_middle string space_card_baseinfo_bottom string space_card_option string space_card_magic_user string space_card_bottom space_comment_li.htm array global_space_comment_op (X3) string global_comment_bottom (X3) space_doing.htm

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論