Templates 加载动态HTML以显示自定义模板

Templates 加载动态HTML以显示自定义模板,templates,dynamic,lamp,Templates,Dynamic,Lamp,我有一个小网站,向用户显示带有css的html模板。每个用户都可以更改可自定义的模板 默认情况下,我有一个模板,每次我都复制给一个新用户,或者如果我得到一个好的模板,用户可以选择它 有没有一种简单的方法来代替一遍又一遍地复制模板,让我创建一个模板,然后当页面加载时,它会显示在用户页面上,然后他可以交互ajax调用、href链接等 例如: 新用户首次登录时,用户许可协议显示,然后他单击“接受”,其页面显示。此主页包含表单、链接、图像等。。。使用默认模板。这就是我希望动态加载的模板,而不是将此模板复

我有一个小网站,向用户显示带有css的html模板。每个用户都可以更改可自定义的模板

默认情况下,我有一个模板,每次我都复制给一个新用户,或者如果我得到一个好的模板,用户可以选择它

有没有一种简单的方法来代替一遍又一遍地复制模板,让我创建一个模板,然后当页面加载时,它会显示在用户页面上,然后他可以交互ajax调用、href链接等

例如:

新用户首次登录时,用户许可协议显示,然后他单击“接受”,其页面显示。此主页包含表单、链接、图像等。。。使用默认模板。这就是我希望动态加载的模板,而不是将此模板复制到每个用户

原因:我在页面中发现HTML错误,现在我需要将此模板复制到127个用户。。。这是一种痛苦

我在用台灯


谢谢

我刚从你的帖子中听到,你有一个目录,里面有一堆文件user1.html、user2.html或类似的东西。所有这些都是相同或相似的,因为它们基本上是相同的模板

我的建议是: 有一个数据库表或平面文件,但我推荐一个映射用户ID或名称的数据库表,不管您如何将它们安排为模板。例如,如果user1和user2使用template_default.html,而user3使用template_popular.html,则数据库中将包含以下内容:

name|template
user1|template_default.html
user2|template_default.html
user3|template_popular.html
然后,在任何代码当前决定向用户显示哪个页面的情况下,将其更改为将用户选择的模板从数据库中拉出并显示该模板。所以你只有1或2页,而不是127页

如果允许用户对其模板进行编辑(也可以作为元数据存储在表中),则可以使用替换参数将其添加到模板中

例如:

MySQL表:

CREATE TABLE user_templates (
    `user` varchar(100),
    template varchar(100)
);
收到新用户后:

INSERT INTO user_templates(`user`,template) VALUES("<username>","default_template.html");
用户选择新模板时:

UPDATE user_templates set template = "<new template>" WHERE `user` = "<username>";
在用户加载用户页面时,此操作在php中完成:

$template = "default_template.html";
$query = "SELECT template FROM user_templates WHERE `user` = \"" . mysql_real_escape_string($username) . "\"";
$result = mysql_query($query,$databaseHandle);
if ($result && mysql_num_rows($result) > 0) {
    $template = mysql_result($result,0,"template");
}

// 1st way to do it
$pageToLoad = "http://www.someserver.com/templates/$template";
header("Location: $pageToLoad");
// 2nd way, if you want it embedded in a page somewhere
$directory = "/var/www/site/templates/$template";
$pageContents = file_get_contents($directory);
print "<div id=\"userPage\">$pageContents</div>";
是的,使用jQuery

$'divID'。只要html文件存储在同一域中,加载'pathToHTMLTemplate'就是您的答案:

这将使用ajax获取html模板,并将其内容附加到所需的div中。它也可以是“身体”

这是应该告诉你所有你需要的

加载模板后,您可以使用ajax或正在使用的任何应用服务器加载用户特定的数据。load函数提供一个回调函数:

$('#divID').load('pathToHTMLTemplate', function(){
// now the template is loaded and you can maniupulate it further or load user specific data
});

我假设您的意思是,您有一个HTML文件,该文件是为每个用户的外观、感觉等定制的:

User1-theme.html
User2-theme.html
User3-theme.html
User4-theme.html
User4-theme.html
然后,您将拥有一个文件,其中包含您希望为每个用户提供的所有ajax调用、链接等:

User-Controls.html
你需要做的是

确保已下载并包含在每个用户主题页面中

将此代码snipplet添加到每个用户主题页面:

$myDiv.loadUser-Controls.html

其中myDiv是模板页面上要将控件加载到的div ID User-Controls.html是包含要加载的控件的html文件的路径


你能提供网站网址吗?