loading请求处理中...
10大优享服务
62项会员特权

网页插件是用何种软件何种平台何种语言何种环境开发的?

问题补充:类似于开心农场,小小战争这种网页插件是用何种软件何种平台何种语言何种环境开发的?然后它的数据库是用的网页的数据库还是得自己有数据库的?
提问者:xiaoqiuming1 1回答 浏览次数:2707 提问时间: 2021/12/01 11:42
提问者采纳
一、插件的程序文件和数据表简介
  软件采用模块化结构,每个模块的前后台程序、模板都放在单独得模块目录下,例如:文章模块的目录是news,该目录下包含了文章管理后台(admin)、插件目录(module)、模板目录(templates)等,各模块目录名的介绍")){
   $Arr=explode(".html",$_SERVER["QUERY_STRING"]);
   $nowcatid=$Arr[0];
  }elseif($_GET["catid"]>0){
   $nowcatid=$_GET["catid"];
  }else{
   $nowcatid=0;
  }
 
 #文章列表插件中根据插件插入的不同地方,判断当前页面的分类id,以求根据页面自动显示当前分类下的文章。 #默认查询条件
  $scl=" iffb='1' and catid!='0' ";#如果插件设置了只显示推荐,则只取tj=1的数据  if($showtj!="" && $showtj!="0"){
   $scl.=" and tj='1' ";
  }
  #显示分类规则:如果插件设置时未指定分类,则显示当前所在分类,否则不限分类  if($catid!=0 && $catid!=""){
   $catid=fmpath($catid);
   $scl.=" and catpath regexp '$catid' ";
  }elseif($nowcatid!=0 && $nowcatid!=""){
   $catid=fmpath($nowcatid);
   $scl.=" and catpath regexp '$nowcatid' ";
  }  #匹配专题,如果插件设置中选择了只显示某个专题的文章,则只获取匹配某专题的数据
  if($projid!=0 && $projid!=""){
   $projid=fmpath($projid);
   $scl.=" and proj regexp '$projid' ";
  }#判断匹配标签,如果插件设置中填写了匹配标签,只获取匹配的记录
  if($tags!=""){
   $tags=$tags.",";
   $scl.=" and tags regexp '$tags' ";
  }#模版解释,读入插件模板,将插件模板中的代码按<!- ->标签进行分离,存入数组
#例如<!-start->和<!-start->之间的内容,就是$TempArr["start"],依此类推


  $Temp=LoadTemp($tempname);
  $TempArr=SplitTblTemp($Temp);#首先将模板的start部分需要的显示的变量替换给模板  $var=array(
   'coltitle' => $coltitle,
   'morelink' => $morelink
  );
  $str=ShowTplTemp($TempArr["start"],$var);
#开始循环,按条件取出文章  $picnum=1;
  $fsql->query("select * from pw_news_con where $scl order by $ord $sc limit 0,$shownums");  while($fsql->next_record()){
   
   $id=$fsql->f('id');
   $title=$fsql->f('title');
   $catpath=$fsql->f('catpath');
   $dtime=$fsql->f('dtime');
   $nowcatid=$fsql->f('catid');
   $ifnew=$fsql->f('ifnew');
   $ifred=$fsql->f('ifred');
   $ifbold=$fsql->f('ifbold');
   $author=$fsql->f('author');
   $source=$fsql->f('source');
   $cl=$fsql->f('cl');
   $src=$fsql->f('src');
   $cl=$fsql->f('cl');
   $fileurl=$fsql->f('fileurl');
   $downcount=$fsql->f('downcount');
   $prop1=$fsql->f('prop1');
   $prop2=$fsql->f('prop2');
   $prop3=$fsql->f('prop3');
   $prop4=$fsql->f('prop4');
   $prop5=$fsql->f('prop5');
   $prop6=$fsql->f('prop6');
   $prop7=$fsql->f('prop7');
   $prop8=$fsql->f('prop8');
   $prop9=$fsql->f('prop9');
   $prop10=$fsql->f('prop10');
   $prop11=$fsql->f('prop11');
   $prop12=$fsql->f('prop12');
   $prop13=$fsql->f('prop13');
   $prop14=$fsql->f('prop14');
   $prop15=$fsql->f('prop15');
   $prop16=$fsql->f('prop16');
   $prop17=$fsql->f('prop17');
   $prop18=$fsql->f('prop18');
   $prop19=$fsql->f('prop19');
   $prop20=$fsql->f('prop20');
   $memo=$fsql->f('memo');
   $mid=$fsql->f('memberid');  #对取出的数据进行一系列判断,取出在该插件中可能被显示的数据if($mid>0){
    $memberurl=ROOTPATH."member/home.php?mid=".$mid;
   }else{
    $memberurl="#";
   }   if($GLOBALS["CONF"]["CatchOpen"]=="1" && file_exists(ROOTPATH."news/html/".$id.".html")){
    $link=ROOTPATH."news/html/".$id.".html";
   }else{
    $link=ROOTPATH."news/html/?".$id.".html";
   }
   
   $dtime=date("m/d",$dtime);   if($ifbold=="1"){$bold=" style='font-weight:bold' ";}else{$bold="";}   if($ifred!="0"){$red=" style='color:".$ifred."' ";}else{$red="";}   if($cutword!="0"){$title=csubstr($title,0,$cutword);}
   if($cutbody!="0"){$memo=csubstr($memo,0,$cutbody);}
   if($src==""){$src="news/pics/nopic.gif";}
   
   $src=ROOTPATH.$src;   $downurl=ROOTPATH."news/download.php?id=".$id;
   //显示所属分类
   $msql->query("select cat from pw_news_cat where catid='$nowcatid'");
   if($msql->next_record()){
    $cat=$msql->f('cat');
   }
   
   //参数列
   $i=1;
   $msql->query("select * from pw_news_prop where catid='$nowcatid' order by xuhao");
   while($msql->next_record()){
    $pn="propname".$i;
    $$pn=$msql->f('propname');
   $i++;
   } #模版标签解释,将数据解释给模板   $var=array (
   'title' => $title, 
   'memo' => $memo,
   'dtime' => $dtime, 
   'red' => $red, 
   'bold' => $bold,
   'link' => $link,
   'target' => $target,
   'author' => $author, 
   'source' => $source,
   'cat' => $cat, 
   'src' => $src, 
   'cl' => $cl, 
   'memberurl' => $memberurl, 
   'picnum' => $picnum, 
   'downurl' => $downurl, 
   'fileurl' => $fileurl, 
   'downcount' => $downcount, 
   'prop1' => $prop1,
   'prop2' => $prop2,
   'prop3' => $prop3,
   'prop4' => $prop4,
   'prop5' => $prop5,
   'prop6' => $prop6,
   'prop7' => $prop7,
   'prop8' => $prop8,
   'prop9' => $prop9,
   'prop10' => $prop10,
   'prop11' => $prop11,
   'prop12' => $prop12,
   'prop13' => $prop13,
   'prop14' => $prop14,
   'prop15' => $prop15,
   'prop16' => $prop16,
   'prop17' => $prop17,
   'prop18' => $prop18,
   'prop19' => $prop19,
   'prop20' => $prop20,
   'propname1' => $propname1,
   'propname2' => $propname2,
   'propname3' => $propname3,
   'propname4' => $propname4,
   'propname5' => $propname5,
   'propname6' => $propname6,
   'propname7' => $propname7,
   'propname8' => $propname8,
   'propname9' => $propname9,
   'propname10' => $propname10,
   'propname11' => $propname11,
   'propname12' => $propname12,
   'propname13' => $propname13,
   'propname14' => $propname14,
   'propname15' => $propname15,
   'propname16' => $propname16,
   'propname17' => $propname17,
   'propname18' => $propname18,
   'propname19' => $propname19,
   'propname20' => $propname20
   );
   $str.=ShowTplTemp($TempArr["list"],$var);
  $picnum++;  }#循环结束,将模板的结尾部分,即<!-end->标签之间的内容加入$str,最后返回$str,$str的内容将被完整显示。$str.=$TempArr["end"];
  return $str;}?>
四、插件默认模板制作以“文章列表”插件的默认模板tpl_newslist.htm为例,源码如下:
<!-start->


<!-end->插件模板一般具有开始部分、循环部分、结束部分,可根据显示的需要,将内容放在合适的位置。如果插件中需要进行多个循环,或加入其它内容,除了这些标签外,还可以使用以下标签:
<!-m1-><!-m1->
<!-m2-><!-m2->
<!-m3-><!-m3->
<!-menu-><!-menu->
<!-text-><!-text->
<!-rowstart-><!-rowstart->
<!-rowend-><!-rowend->
<!-con-><!-con->
实际上,标签的作用是让程序把其中的内容加入到数组元素中,而循环是在程序中进行的。例如<!-menu-><!-menu->之间的内容在被加入到数组后就是$TempArr["menu"],在程序中可以将其中的内容进行判断,输出需要的数据。
文章列表插件是所有插件中设置参数最多,也是比较复杂的插件。学习插件开发,可以从简单的开始。比如你可以尝试只从数据库中取出一条数据,通过插件+模板将其显示出来,然后逐步深入研究插件开发。你也可以通过研究学习现有的插件,通过修改现有插件来逐步熟悉插件的开发。
五、插件资源包制作方法
插件可以打包发布到资源分享区,分享插件赚取P币。
如果你希望发布自己制作的插件,建议你给插件的命名带有自己的英文网名,以避免插件重名。例如你自己制作的特色文章列表插件,可以是MyNameNewsList.php,pluslable是modMyNameNewsList.。插件打包时应按原来的文件结构,从模块目录开始,按实际目录存放文件,方便用户了解文件的上传位置。还要在后台“模块插件设置”中,将此插件的记录导出为.dat文件,一起打包。初次制作插件资源包,建议先自己测试一次插件安装过程,以保证插件资源包的正确。

全部回答

问题分类

我 要 回 答 我 要 提 问
问题分类   验证码 换一组

相关问题