Discuz!官方免费开源建站系统

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

diy 的xml 导入程序流程分析

[复制链接]
云天一 发表于 2011-5-31 14:53:39 | 显示全部楼层 |阅读模式
*************************************************
** 本教程基于版本:Discuz! X 2.0               **
*************************************************
我们经常会在论坛上看到很多人分享自已做好了的diy的xml ,此时我们可以拿来导入到我们自已的站点使用,在导入时程序是怎么个流程的我们来了解一下,

我们使用有diy权限的管理员帐号,打开进入 diy 界面时, 右上角保存有一个向下的按纽

我们点击 该按纽下的导入 此时该导入链接的onclick 属性
  1. onclick="drag.openFrameImport();$('button_more_menu').style.display='none';return false;"
复制代码
执行 drag.openFrameImport(); 从 ./static/js/portal_diy.js 从 openFrameImport 方法可以看到
  1. openFrameImport : function (type) {
  2.         type = type || 0;
  3.         showWindow('showimport','portal.php?mod=portalcp&ac=diy&op=import&tpl='+document.diyform.template.value+'&type='+type, 'get');
  4. }
复制代码
它使用 showWindow 打开了 'portal.php?mod=portalcp&ac=diy&op=import&tpl='+document.diyform.template.value+'&type='+type 导入的界面,其所加载的模块是 ./template/default/portal/portalcp_diy.htm



我们选择现成的 diy 的 xml 文件,点击导入
  1. <form name="frameimport" id="frameimport" enctype="multipart/form-data" method="post" autocomplete="off" action="portal.php?mod=portalcp&ac=diy&op=import" onsubmit="ajaxpost('frameimport','return_$_G[gp_handlekey]','','onerror',$('frameimportbutton'));">
复制代码
程序将我们所选择的 xml 提交到 portal.php?mod=portalcp&ac=diy&op=import 地址,即程序最终处理的模块是 ./source/include/portalcp/portalcp_diy.php

该程序对提交过来的 xml 文件进行处理上传到附件的临时目录 ./data/attachment/temp/ 下 .attach 后缀名的文件

然后使用 import_diy (在 ./source/funciton/function_portalcp.php 文件中查看该函数) 函数对该 .attach 文件进行数据分析处理展示

到这里导入和展示基本完成,此时 点击右上角的 保存按纽
  1. <a href="javascript:;" onclick="javascript:spaceDiy.save();return false;">保存</a>
复制代码
程序使用 js 的 spaceDiy.save() 的方法提交数据到 portal.php?mod=portalcp&ac=diy

程序 ./source/include/portalcp/portalcp_diy.php 就使用 save_diy_data 等函数对diy 的数据进行入库 更新到缓存等

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Discuz! 官方站 ( 皖ICP备16010102号 )star

GMT+8, 2024-11-17 08:22 , Processed in 0.030925 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表