smarty中有一个获取模板页内容方法fetch(), 它的声明原形是这样的: ?php function fetch ( $resource_name , $cache_id = null , $compile_id = null , $display = false ) ? 第一个参数为模板名称, 第二个参数为缓存的id, 第三个参数为编译id, 第四个参数为
smarty中有一个获取模板页内容方法fetch(), 它的声明原形是这样的:
<span><font face="新宋体"><span><?php <br />
<br>
</span><span>function </span><span>fetch</span><span>(</span><span>$resource_name</span><span>, </span><span>$cache_id </span><span>= </span><span>null</span></font><font face="新宋体"><span>, <br>
</span><span>$compile_id </span><span>= </span><span>null</span><span>, </span><span>$display </span><span>= </span><span>false</span></font><span><font face="新宋体">) <br>
<br>
</font></span><span><font face="新宋体">?><br>
</font></span></span>
第一个参数为模板名称, 第二个参数为缓存的id, 第三个参数为编译id, 第四个参数为是否显示模板内容. 生成静态页我们就需要用到这个方法.
<span><font face="新宋体"><span><?php <br />
$smarty </span><span>= new </span><span>Smarty</span></font><span><font face="新宋体">(); <br>
</font></span><font face="新宋体"><span>//其它模板替换语法... <br>
<br>
//下面这句取得页面中所有内容, 注意最后一个参数为false <br>
</span><span>$content </span><span>= </span><span>$smarty</span><span>-></span><span>fetch</span><span>(</span><span>'模板名称.tpl'</span><span>, </span><span>null</span><span>, </span><span>null</span><span>, </span><span>false</span></font><span><font face="新宋体">); <br>
<br>
</font></span><font face="新宋体"><span>//下面将内容写入至一个静态文件 <br>
</span><span>$fp </span><span>= </span><span>fopen</span><span>(</span><span>'news.html'</span><span>, </span><span>'w'</span></font><font face="新宋体"><span>); <br>
</span><span>fwrite</span><span>(</span><span>$fp</span><span>, </span><span>$content</span></font><font face="新宋体"><span>); <br>
</span><span>fclose</span><span>(</span><span>$fp</span></font><span><font face="新宋体">); <br>
<br>
</font></span><font face="新宋体"><span>//OK, 到这里这个news.html静态页就生成了, 你可以处理你下一步的工作了 <br>
</span><span>?> </span></font></span>
<span><font face="新宋体"><span>
<table>
<tr>
<td valign="top">
<p>关于新闻表的设置问题你只需要: <br>
</p>
<table>
<tr>
<td>
<p>代码:</p>
<p><code><span><br>
<span><font face="新宋体"><?php <br />
<br>
create table news </font></span><font face="新宋体"><span>( <br>
</span><span>id int unsgined not null primary key auto_increment</span></font><font face="新宋体"><span>, <br>
</span><span>title varchar</span><span>(</span><span>255</span></font><font face="新宋体"><span>), <br>
</span><span>author varchar</span><span>(</span><span>50</span></font><font face="新宋体"><span>), <br>
</span><span>url varchar</span><span>(</span><span>100</span><span>), </span></font><font face="新宋体"><span>/* 这里是生成静态页的地址 */ <br>
</span><span>... </span></font><span><font face="新宋体">/*其它字段*/ <br>
</font></span><font face="新宋体"><span>); <br>
<br>
</span><span>?></span> <br>
</font></span><br>
补充:
这个URL在新闻入库的时候就要生成, 具体的过程是这样的:
1. 页面填写新闻内容, 提交表单
2. 按时间或是你自定义的格式生成URL
3. 拼接SQL语句, 将新闻内容写入数据库, 注意这时也要将URL的值写入
4. 取得模板页面内容, 按URL地址生成静态页
URL字段不会自动产生内容的...