Chinaunix

标题: 第一次接触别人成熟的代码,有3个疑问的地方,请指导~ [打印本页]

作者: 中国可爱小牛    时间: 2010-04-26 13:01
标题: 第一次接触别人成熟的代码,有3个疑问的地方,请指导~
我试图用另一幅图去替代首页的其中的一幅图(通过改图片名的手段,因为我在整个站点的文件中找不到图片的名字,所以我修改图片名),达到预期目的后我把文件名改回来,可是我刷新网站首页时却还是我修改后的图片,我把替换的图片彻底删除后仍然是这样子。不知道原因是什么......
    更深一层的疑惑是:为什么这整个站点代码中没有图片名(也就是找不到图片的引用)而网站却可以加载图片呢?
下面是我认为有关联其中的一小段代码
  1. if (!empty($article[imageid])) {
  2.                eval("\$article[img] = \"".gettemplate('articlelistbit_img')."\";");
  3.            } else {
  4.                $article[img] = "";
  5.            }
复制代码
我知道这个phparticle使用模板的,但不知道是什么,感觉用法和我接触过smartTemplate 和smarty有很大的差异,例如eval("\$article[img] = \"".gettemplate('articlelistbit_img')."\";");
应该是模板的实现,函数gettemplate一知半解,关键是数据查询时我无法知道$db_prefix."template到底是什么数据表
  1. function gettemplate($templatename,$comment=1) {

  2.          global $templatecache,$DB,$templatesetid,$showcomment,$db_prefix,$templateuncache,$templateuncache;

  3.          if(isset($templatecache[$templatename])){
  4.             $template = $templatecache[$templatename];
  5.          } else {
  6.             $gettemp = $DB->fetch_one_array("SELECT template FROM ".$db_prefix."template
  7.                                                     WHERE title='".addslashes($templatename)."' AND (templatesetid=-1 OR templatesetid='$templatesetid')
  8.                                                     ORDER BY templatesetid DESC    LIMIT 1");
  9.             $template = $gettemp[template];
  10.             $templatecache[$templatename] = $gettemp[template];
  11.             $templateuncache[] = $templatename;
  12.          }

  13.          $template = str_replace("\\'","'",addslashes($template));
  14.          if ($showcomment==1 AND $comment==1) {
  15.              return "<!-- BEGIN TEMPLATE: $templatename -->\n$template\n<!-- END TEMPLATE: $templatename -->";  //不知道它使用的是什么引擎~只知道与模板有关
  16.          } else {
  17.              return $template;
  18.          }

  19. }
复制代码
最后有一个疑问,我找了很久都没有找到设计布局网站table tr td之类(除了css)的东西,如果没有这些,它是如何布局具体页面的呢?
作者: ipqtu    时间: 2010-04-26 21:29
能不能吧你的那个网站发给我阿,我想研究研究,呵呵,谢谢了,我的邮箱ipqtu123456@gmail.com
作者: geel    时间: 2010-04-26 23:08
模板存在数据库里了,找 template 结尾的表就行了。另外看样子应该有个后台来修改模板内容的,否则怎么改,呵呵。
btw, 代码很一般,甚至不合格。
作者: 中国可爱小牛    时间: 2010-04-26 23:36
本帖最后由 中国可爱小牛 于 2010-04-26 23:37 编辑
代码很一般,甚至不合格...
geel 发表于 2010-04-26 23:08



    或许现在看来是不及格,但这个是别人9年前写出来的,想象一下那时php4?
另外:在整个代码中,我找了很久都没有找到设计布局网站table tr td之类(除了css)的东西,如果没有这些,它是如何布局具体页面的呢?我很关心这个问题,毕竟从来没有见过
作者: 中国可爱小牛    时间: 2010-04-26 23:38
回复 2# ipqtu


    你可以到网上找,相信你能来到这里也当然可以找到你想要的东西。呵呵~
作者: geel    时间: 2010-04-27 00:35
本帖最后由 geel 于 2010-04-27 00:56 编辑
或许现在看来是不及格,但这个是别人9年前写出来的,想象一下那时php4?
另外:在整个代码中,我 ...
中国可爱小牛 发表于 2010-04-26 23:36



我是从php3开始的……这个代码风格明显受当初phpbb影响很深。
模板里找不到<tr>吗,模板块呢
作者: 中国可爱小牛    时间: 2010-04-27 08:42
回复 6# geel


    谢谢提醒,我已经找到了.确实是在数据库里,当时因为用了加密函数,我就没有把数据放在心上。现在觉得这是个很好的思路,直接在后台就可以更改网站而不一定要修改源代码。如果我没有推测错的话,一般的网站都是这样的吧。呵呵,要见识的内容太多太多了,亏自己还对着代码看了那么久都没有发现~
    再一次感谢~
作者: geel    时间: 2010-04-27 11:43
回复 7# 中国可爱小牛


一般的网站都不这样,这样的结构对前端人员不友好,而且不利于版本控制,当然不排除有些应用为了照顾非专业人员而喜欢这样。
作者: 中国可爱小牛    时间: 2010-04-27 12:53
回复 8# geel


    确实很有道理,有经验的人就是不一样,钦佩。网站面向的对象和开发,管理人员的质素会对网站的影响太大了,虽然我现在看的这个网站已经被改过很多次,但个人认为他们都没有从根上改过。
早上我测试这个模板,我发现一个问题,不知道你们是否认同这种做法:就是网页的底部如权利注明,ICP号之类的信息并不是公用一个模块,即站内不同的模块对应于不同的底部,而底部的信息大概一致。
这种做法可取吗?你们是过来人,清楚得很吧~
作者: geel    时间: 2010-04-27 20:53
回复 9# 中国可爱小牛


    这个就无所谓了,设计风格和需求不一样,页脚什么的不见非要一样。当然如果结构设计好的话这类问题也可以用比如装饰器之类的解决掉。
作者: james.liu    时间: 2010-04-27 21:55
呵呵,和我最近看得一个老代码写法类似

你找到这个模板就能看到你找到tr,td啥的

一般这种模板是页面某一部分
作者: 字母二十六    时间: 2010-04-28 04:05
看的头很晕。。




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2