什么是.tpl文件?PHP和网页设计

110

有人让我重新设计一个运行在PHP(VideoCMS)上的网站。但是当我要求他将源代码发送给我时,他发送给我的是*.tpl文件而不是*.php文件。这些文件内部包含一些代码:

{include file='header.tpl' p="article"}

<br />
<table width="886" border="0" cellspacing="0" cellpadding="0">
  <tr>
    <td width="150" valign="top">
    <div id="reg_box">
    <h3 class="captions">{$lang.articles}</h3>
        <div id="list_cats">
        <ul>
            {$article_categories}
        </ul>
        </div>
    </div>
    <br />
    <div id="reg_box">
    <h3 class="captions">{$lang.members}</h3>
    {if $logged_in == '1'}
    {include file='loggedin_body.tpl'}
    {else}
    {include file='login_body.tpl'}
    {/if}
或。
{include file='header.tpl' p="index"}

{php} $_SESSION['isFair'] = "Yes"; {/php}

代码的解释器是什么?我如何重新设计这个网站?

10个回答

110

这看起来像是Smarty。Smarty是用PHP编写的模板解析器。

你可以阅读关于如何使用Smarty文档

如果您无法访问CMS源代码:要在浏览器中查看模板,只需查看Smarty正在使用哪些变量,并创建一个PHP文件,用虚拟数据填充已使用的变量。

如果我没记错的话,一旦设置好Smarty,您就可以使用:

$smarty->assign('nameofvar', 'some data');

设置变量。


30
.tpl 不仅仅是用于 smarty 文件的扩展名。许多其他解析器和实际上的自定义解决方案也使用 .tpl。即使是自定义的解决方案,你也可以在 .tpl 文件中放置 PHP 代码。OpenCart 和 vBulletin 就是这种情况,在 .tpl 文件中可以包含 PHP 代码。这就是为什么许多服务器(如 NGINX)都预先构建了防止人们查看 .tpl 文件的功能。 - TheBlackBenzKid

27

模板。我认为这是Smarty语法。


19

.tplSmarty 文件的扩展名,意思是“模板”。

提示:如果您使用 NetBeans 并且想要正确的语法高亮显示这些文件:

  • 进入菜单 选项(Options)工具(Tools)
  • 其他(Miscellaneous) 下选择 文件(Files) 选项卡
  • 点击新建文件扩展名,输入 tpl
  • 关联的文件类型(MIME) 中,选择 HTML 文件(text/html)
  • 点击 确定(OK)

6
“.tpl”不仅是Smarty文件的扩展名。许多其他解析器,事实上自定义解决方案也使用“.tpl”。 - TheBlackBenzKid

13

在谷歌搜索关键词"tpl文件"时,这份内容排名第三(尽管这是那些烦人的“立刻修复TPL错误”、“使用我们的病毒扫描器扫描TPL文件”,用花哨、丑陋广告向你推销全球一切,而你只是想要文件描述)。该内容翻译如下:

TPL文件被PHP Web开发和PHP Web应用程序作为模板文件使用。它主要由Smarty模板引擎使用。模板是一个普通的文本文件(类似于.html文件),包含用户定义的变量,在PHP Web应用程序解析模板文件时将其替换为用户定义的输出内容。


2
实际上,我是在搜索“tpl文件”并点击第三个结果后才找到了这个问题... - MoralCode
2
回答问题时,最好直接包含链接,而不是依赖于Google SERP。因为它会根据用户设置和位置在不同的浏览器中有所变化。此外,并不能保证结果总是排名相同。这篇文章来自2009年,而我在2017年看到了它。今天已经没有什么用处了。 - Mohammed Akhtar Zuberi
2
@Mohammed,我并不依赖于谷歌总是返回相同的结果。我将文本复制到这个答案中的整个原因是,即使谷歌从地球上消失,答案仍然有效。 - paxdiablo

6

这些文件使用某种模板引擎,其中花括号表示由该模板引擎生成的变量,创建这些变量的文件必须以与tpl文件名更或多或少相同的名称存在于其他地方。以下是一些常用的模板引擎:

Smarty

Savant

Tinybutstrong

等等

其中Smarty被广泛使用。


4
在这种特定情况下,它是Smarty,但也可能是Jinja2模板。它们通常也有.tpl扩展名。

3

这些看起来像是Smarty模板。应该有一些额外的PHP脚本,实际上会实例化Smarty引擎并提供数据以供可替换元素使用。


3

您需要学习Smarty语法,这是一种模板系统。


3

.tpl文件表明使用了Smarty!Smarty是一种模板语言,可以将PHP代码与HTML代码分离。这使我们能够在不包含PHP代码的页面上进行设计操作。


0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接