我已经搜索了很多,每个CMS教程都没有解释这一点,或者给你一大块代码,而没有解释它是如何工作的。即使在堆栈溢出问题上,我也找不到任何接近答案的东西,尽管如果有人能指出我的答案,我可以吃掉我的话。动态生成CMS的页面链接
我在这个项目中使用PHP和mysql。
我正在构建一个CMS。它非常简单,我理解我认为我需要的每个概念,除了如何动态生成页面和页面链接。我想要做的方式是让数据库表存储页面的名称和页面的主要内容。就这样。然后,我只需调用一个脚本即可将页面的主要内容拖入我碰巧呼叫的任何页面。没什么大不了的,对吧?错误。
这是问题所在。如果我要这样做,那么我必须为每个我想创建的页面创建一个文件,该文件调用从正确的数据库行中提取内容的脚本。因此,我可以将各种页面名称和内容添加到表格中,但是我不知道如何在每次要链接到新页面时手动创建新文件的情况下调用它们。
理想情况下,会创建一个脚本,该脚本根据数据库表的页面名称行创建页面链接。但是,最后如何获得与?=pageName
的链接?如果我只是知道如何工作,那么我就可以找出其他问题。
UPDATE 第二个答案确实证实了我认为我必须做的一切,但有一个问题。我现在的计划是将所有代码分解为一系列函数,并将它们包含在不同的模板中或要求它们用于格式化页面显示方式。我需要一个寻找主页和其他页面的其他设计。我在想我会有一个函数说ID是0,然后调用这个页面template.php,否则调用这个其他模板file.php。但是,我如何将所需的变量传递给这些新文件?我是否只包含index.PHP页面?
谢谢!我实际上正在实施一种像你所建议的粗糙框架。这些在页面将在其他地方在一个单独的文件,我确实有一个引导文件与连接变量作为常量,我正在创建一个文件来保存所有最常用的功能,所以我可以包括他们的过程。我得到的理论和你的答案帮助了很多,并告诉我我越来越近了。这个如何:我使用if语句。如果未设置GET,则返回默认数据库行中的数据。如果GET isset,然后从GET持有的行返回数据(比如where id = whatever和page name = something。? – Bill 2011-05-21 19:59:15
Daganh!谢谢!我只是重读了这段代码,这几乎就是我在头脑中看到的!我使用不同的页面模板?如果每个页面的布局相同,我可以使用相同的索引,并根据GET的值从不同的DB行调用不同的内容。但是,如果每个页面中的HTML不同但主页I将不得不调用另一个PHP脚本,基本上与索引做同样的事情,但混合了不同的HTML。我怎样才能避免这种情况,并保持index.php上的一切? – Bill 2011-05-21 21:06:00
非常好的和彻底的答案! – SquareCat 2013-12-19 22:19:30