Welcome to the website navigation,本站只接受合法正规的企业网站,欢迎站长们提交你的网站获得展示和流量有任何问题请联系站长,欢迎大家加入本站。

                
提交网站
  • 网站:76083
  • 待审:5
  • APP:577
  • 文章:304411
  • 会员:56004
文字内链包年1000元 文字内链包年1000元 文字内链包年1000元 AI办公网站 AI绘画工具 AIchat

dede, 增加, 安卓, 安卓客, 卓客

开发一个网站站点客户端有很多中办法,最简单的就是后台什么也不便,安卓客户端只是根据URL地址获得整个网页放到webview中,但这种没什么意义,可以更进一步,仍然只是显示完整网页,但是为客户端专门布局html。
但真正做的好的客户端不是这么敷衍了事,php服务端只提供数据,而不负责数据的显示,所有显示在手机上完成。
而网站站点的服务器数据一般都是返回xml或者是json。
遗憾的是dedecms到现在为止都没有推出任何平台的客户端,服务端根本连个接口都没有。
本文介绍如何为安卓客户端提供后台支持,返回xml数据。
这里以获取文章详情为例。
思路:其实为客户端提供数据咱们只需改变返回的数据格式,将原本的html改成xml格式,也就是说咱们只需要一个xml格式的模版,其他具体代码如下可以不变。
因为不管是安卓客户端还是网页,对于一篇文章而言,咱们需要的信息基本是一致的。
问题是,既然咱们需要为安卓客户采用专门的模版,如何让dede识别到请求来自安卓客户端,且在什么地方加载这个模版呢?
识别来自安卓客户端只需在客户端的请求里面加入一个标志位就行了,我这里的标志名称为isMobile,然后在dede的/plus/view.php文件中获得这个变量:if($isMobile==1)$arc->setMobileVisitFlag(true);else{$arc->setMobileVisitFlag(false);}isMobile变量可以直接获取到,不需要自己处理,dede对所有请求做了处理,将每个请求的值映射到了和请求名称完全一致的变量中。
上面的具体代码如下获得了这个变量,判断是否为1,如果为一表示来自于客户端,这时咱们调用一个我自己在/include/arc.archives.class.php文件中加入的函数setMobileVisitFlag()。
setMobileVisitFlag()函数是这样定义的publicfunctionsetMobileVisitFlag($flag){$this->mobileVisitFlag=$flag;}其中$mobileVisitFlag为咱们给Archives类增加的一个变量。
现在咱们需要找到Archives类中加载模版文件的地方,在这里对mobileVisitFlag的情况做判断,如果为真,则网站的模板换成咱们的xml模版,也就是客户端需要的数据格式。
具体代码如下在GetTempletFile()函数中。
下面是GetTempletFile原来的具体代码如下:functionGetTempletFile(){global$cfg_basedir,$cfg_templets_dir,$cfg_df_style;$cid=$this->ChannelUnit->ChannelInfos['nid'];if(!empty($this->Fields['templet'])){$filetag=MfTemplet($this->Fields['templet']);if(!preg_match("#\/#",$filetag))$filetag=$GLOBALS['cfg_df_style'].'/'.$filetag;}else{$filetag=MfTemplet($this->TypeLink->TypeInfos["temparticle"]);}$tid=$this->Fields['typeid'];$filetag=str_replace('{cid}',$cid,$filetag);$filetag=str_replace('{tid}',$tid,$filetag);$tmpfile=$cfg_basedir.$cfg_templets_dir.'/'.$filetag;if($cid=='spec'){if(!empty($this->Fields['templet'])){$tmpfile=$cfg_basedir.$cfg_templets_dir.'/'.$filetag;}else{$tmpfile=$cfg_basedir.$cfg_templets_dir."/{$cfg_df_style}/article_spec.htm";}}if(!file_exists($tmpfile)){$tmpfile=$cfg_basedir.$cfg_templets_dir."/{$cfg_df_style}/".($cid=='spec'?'article_spec.htm':'article_default.htm');}if(!preg_match("#.htm$#",$tmpfile))returnFALSE;return$tmpfile;}改成这样functionGetTempletFile(){global$cfg_basedir,$cfg_templets_dir,$cfg_df_style;$cid=$this->ChannelUnit->ChannelInfos['nid'];if(!empty($this->Fields['templet'])){$filetag=MfTemplet($this->Fields['templet']);if(!preg_match("#\/#",$filetag))$filetag=$GLOBALS['cfg_df_style'].'/'.$filetag;}else{$filetag=MfTemplet($this->TypeLink->TypeInfos["temparticle"]);}$tid=$this->Fields['typeid'];$filetag=str_replace('{cid}',$cid,$filetag);$filetag=str_replace('{tid}',$tid,$filetag);/*HEJIE_MODIFY客户端@www.jcodecraeer.com*/if($this->mobileVisitFlag){header("Content-Type:text/xml;charset=GBK");$tmpfile=$cfg_basedir.$cfg_templets_dir."/{$cfg_df_style}/article_detail_mobile.xml";return$tmpfile;}$tmpfile=$cfg_basedir.$cfg_templets_dir.'/'.$filetag;if($cid=='spec'){if(!empty($this->Fields['templet'])){$tmpfile=$cfg_basedir.$cfg_templets_dir.'/'.$filetag;}else{$tmpfile=$cfg_basedir.$cfg_templets_dir."/{$cfg_df_style}/article_spec.htm";}}if(!file_exists($tmpfile)){$tmpfile=$cfg_basedir.$cfg_templets_dir."/{$cfg_df_style}/".($cid=='spec'?'article_spec.htm':'article_default.htm');}if(!preg_match("#.htm$#",$tmpfile))returnFALSE;return$tmpfile;}红色部分为加入的具体代码如下。
最后是这个xml模版的写法了,这个模版基本上是按照一种约定来写的,跟客户端如何解析xml相关,这里只是给出一个我自己的例子{dede:field.id/}{dede:field.authoranme/}http://www.jcodecraeer.com{dede:field.arcurl/}{dede:field.title/}{dede:field.authoranme/}{dede:field.pubdatefunction="MyDate('Y-m-dH:i:s',@me)"/}{dede:field.body/}]]>{dede:field.pubdatefunction="MyDate('Y-m-dH:i:s',@me)"/}{dede:field.idrunphp=’yes’}$dsql=newdedesql(false);$dsql->SetQuery(“Selectcount(id)ascfromdede_feedbackwhereaid=”[email 988365@gmail.com]);$row=$dsql->getone();@me=$row['c'];{/dede:field.id}
                                                            客户端                        ,            接口                        ,            流程
@版权声明 名站网址导航声明: 1.该文观点仅代表作者本人,名站网址导航系信息发布平台,名站网址导航仅提供信息存储空间服务。 2.名站网址导航所发布的一切资源、破解补丁、注册机和注册信息及软件的解密分析文章等仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该网站程序,请支持正版软件,购买注册,得到更好的正版服务。 3.如有侵权请邮件与咱们联系删除或处理(邮箱:[email 988365@gmail.com]),本站将立即改正,谢谢。

关于dedecms文章处理类Archives中的body字段YjsAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

YjsAIChat_企业网址导航_网址分类目录_企业黄页网址提交查询专业网站!

分享到:

  网友投稿

注册时间:

网站:0 个   APP:0 个  文章:0 篇

  • 76083

    网站

  • 577

    APP

  • 304411

    文章

  • 56004

    会员

赶快注册账号,推广您的网站吧!
文章分类
热门网站
最新入驻APP小程序

宝贝市场2023-02-08

宝贝市场——买手和卖家商品展示

夺宝助手2023-02-08

夺宝助手小程序,查看每日快夺宝平

查诚信2023-02-08

查诚信是一款免费的商业查询工具

车价天天报2023-02-08

快速连接汽车销售,获知汽车最新报

考勤助理小程序2023-02-08

上班签到考勤,实时定位,后台轻松

汽车报价大全查询2023-02-08

汽车报价大全查询提供最新汽车市