免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: axgle
打印 上一主题 下一主题

[发布]PHP资源模板(assetTemplate1.15) [复制链接]

论坛徽章:
0
31 [报告]
发表于 2006-04-04 08:40 |只看该作者
原帖由 ultralqxq 于 2006-4-4 08:36 发表
iframe的问题<续集>
在template/index.htm里
<iframe width=420 height=330 src=$asset/index2.htm></iframe>
改成这样后,生成的PHP模板中的iframe也指向了$asset/in ...

我发现你对iframe是情有独衷啊.

论坛徽章:
0
32 [报告]
发表于 2006-04-04 08:56 |只看该作者
另,列表显示问题:一般都是用while语句结合mysql_fetch_array循环列出的。。。
而你的模板把这循环操作做到HTML里,用foreach来循环列出。。。

那请问要怎样得到那个列表的数据集合呢??
我用
$rows=array();
while($rows. = array(mysql_fetch_array($result)));
结果出错。。呵呵。。菜菜!!

论坛徽章:
0
33 [报告]
发表于 2006-04-04 08:58 |只看该作者
原帖由 axgle 于 2006-4-4 08:40 发表

我发现你对iframe是情有独衷啊.

呵,我只是想到什么就说什么。。。而且我自己有一套解决办法。。但我每次发出来问,你总能说出一套更好的办法。。。叫我怎么不心动啊!!!

论坛徽章:
0
34 [报告]
发表于 2006-04-04 13:02 |只看该作者
原帖由 ultralqxq 于 2006-4-4 08:56 发表
另,列表显示问题:一般都是用while语句结合mysql_fetch_array循环列出的。。。
而你的模板把这循环操作做到HTML里,用foreach来循环列出。。。

那请问要怎样得到那个列表的数据集合呢??
我用
$rows=arra ...

已解决,原来只要改成while($row[]=mysql_fetch_array($result)) ;就可以了~~

论坛徽章:
0
35 [报告]
发表于 2006-04-05 14:04 |只看该作者
原帖由 gg5g321 于 2006-4-4 08:21 发表


嗯,PHP与HTML分离...只能说,各人需求不同...但我觉得这个是必要的.
结合实际应用...在同一个模板里..根据实际情况,很多时候要显示不同的HTML代码...
难道将这些HTML代码写进PHP代码里???
为什么很多模板类 ...

那也很简单啊。。。不需要在HTML里加任何PHP代码。只要在你想显示不同的HTML代码的开始处设个开始标识符,在结束处设个结束标识符。然后在PHP文件里判断,根据判断结果进行不同的替换!!
我就拿PHPLIB模板来举例吧:
主模板index.htm
<!-- BEGIN show -->
这里可以预先随便放一个部分的内容,
当然放最有可能显示的那个部分最好了!。
<!-- END show -->

/********* show1.htm show2.htm show3.htm为你要选择显示内容!*********/
主文件index.php
<?php
include "template.php";
$who_is_show=2;
$tpl=new template("templates");
$tpl->set_file("index","index.htm");
$tpl->set_block("index","show","showme");
switch ($who_is_show)
{
case 1:
$tpl->set_file("show1","show1.htm");
$tpl->parse("contentshow","show1");
$content=$tpl->get("contentshow");
$tpl->set_var("showme",$content);
break;  
case 2:
$tpl->set_file("show2","show2.htm");
$tpl->parse("contentshow","show2");
$content=$tpl->get("contentshow");
$tpl->set_var("showme",$content);
break;
case 3:
$tpl->set_file("show3","show3.htm");
$tpl->parse("contentshow","show3");
$content=$tpl->get("contentshow");
$tpl->set_var("showme",$content);
break;
default:
break;
}
$tpl->pparse("output","index");
?>

[ 本帖最后由 ultralqxq 于 2006-4-5 15:10 编辑 ]

论坛徽章:
0
36 [报告]
发表于 2006-04-05 20:40 |只看该作者
原帖由 ultralqxq 于 2006-4-3 10:05 发表

楼主在新版本里用的是常量。。。。而你显然用的是类变量。。。请问你的代码是怎么实现的?能不能贴出来让我们看一下啊???


新版的代码还没看
常量跟变量其实功能是一样的吧
看个人喜好了。

个人认为用类变量比较好控制
可以在new的时候由程序初始化
灵活一些
当然就算用了常量也不是不能控制

论坛徽章:
0
37 [报告]
发表于 2006-04-07 10:13 |只看该作者

论坛徽章:
0
38 [报告]
发表于 2006-04-08 21:17 |只看该作者
更新到v1.1:
改写了编译函数,现在模板可以公开,由用户编辑,不再存在相对安全性问题.

论坛徽章:
0
39 [报告]
发表于 2006-04-10 16:33 |只看该作者

支持!

佩服怎是一个字能代替!
很佩服!
佩服的一塌糊涂!
请求axgle一定要简约至上呀!
什么时候对静态支持呀?

论坛徽章:
0
40 [报告]
发表于 2006-04-10 17:48 |只看该作者

不过,测试一下发现问题呀

1:这种结构不行呀

  1. <!--switch($task){case 'todo':-->
  2.   <meta http-equiv='refresh' content='2;url=login.php'>
  3.   <br>用户必须先登陆!<br>
  4.   <a href='' target="resource window">如果页面没有自动跳转,请点这里</a>
  5. <!--break;case 'do':-->
  6.   <form action="" method=post name=do>
  7.     用户名<input type="text" name=user    size="15" maxlength="10" ></input>
  8.     密码<input type=password name=passwd  size="15" maxlength="8" ></input>
  9.     <button type=submit name=login>登陆</button>
  10.   </form>
  11. <!--break;case 'ok':-->
  12.   <meta http-equiv='refresh' content='1;url=adminfm.php;target="resource window"'>
  13.   <br>用户已经登陆成功!<br>
  14.   <a href='adminfm.php; target="resource window"'>如果页面没有自动跳转,请点这里</a>
  15. <!--break;case 'fail':-->
  16.   <br>错误的用户名和密码!请再次登陆!<br>
  17. <!--}-->
复制代码
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP