我真的取决于你的 HTML 是如何构建的,你真正存储了什么信息以及它有多敏感。
例如,如果您有:
<div id="my-component-root">
<div class="common-content">
</div>
<!--{if[admin]}-->
<div class="admin-content">
Welcome %User, You have logged in as Administrator
</div>
<!--{endif[admin]}-->
<!--{if[captain]}-->
<div class="captain-content">
Hello, you are not Administrator.
</div>
<!--{endif[captain]}-->
</div>
因此,用户带着 userlevel=captain 来到这里,并且div
加载了 Captain-content,反之亦然。一切都是静态的,但也是一堆代码。
您还有另一个机会将文本放在存在类的事件上。因此,您可以动态构建类并在构建的类上加载内容,因为@Friend 和我已经在答案和评论中编写了。如果您有敏感内容,这种方式会更加不安全。因为有人可以根据类名编辑您的 HTML 并接收内容。
在现代架构中,内容既不是静态的,也不是写在源代码中的。例如,如果您的逻辑包含 userLevel 逻辑,这意味着您不仅想用“Hello admin”或“Hello user”向他们致敬,还想加载某些允许管理员使用而不允许用户使用的选项。
这样你需要几件事:
- 在文件中分离管理员允许的功能,即:admin_edit_profile.php ...
- 制作一个允许在给定占位符上构建文本(翻译方法)的方法
- 在 level() 传递给 admin_profile.php 的包含文件中进行安全检查,因此应该有类似
if ($userLevel != 'admin') die())
- ** 假设您有一个类 UserLevel 方法
roles()
,该方法给出了任何人都可以对分配的角色执行什么操作,即如果管理员可以edit_profile
。以及level()
返回级别(管理员,用户...)的方法**
现在你可以拥有:
<div id="my-component-root">
<div class="common-content">
</div>
<?php foreach($userLevel->roles() as $role):
<div class="<?=$userLevel->level();?>-content">
<?php require_once "$userLevel->level()" . "_" . "$role" . ".php"; ?>
<?= __('placeholder_text_for_translation_for_role' . $role); ?>
</div>
<?php endforeach; ?>
现在您可以将翻译后的 ie 的内容存储placeholder_text_for_translation_for_role_edit_profile
在数据库中,并在包含后立即返回其翻译(英文文本)。
这样,您将包含带有管理员配置文件编辑选项的文件
<?php require_once "admin_edit_profile.php"; ?>
并为它发短信
<?= "Here you can edit user profiles"; ?>
所以构建的整个内容将是:
<div id="my-component-root">
<div class="common-content">
</div>
<div class="admin-content">
<?php require_once "admin_edit_profile.php"; ?>
<?= "Here you can edit user profiles"; ?>
</div>