我需要为站点管理员提供一种翻译站点界面的方法。按钮、标题和标签中的所有文本都应该是可编辑的,当添加新语言时,他将能够为它们输入新的翻译。
为此,我想使用所见即所得的编辑器。我与 thou 编辑有一些经验,所以我没有任何技术问题使它工作。我的问题是这样的:
当我使用所见即所得编辑器编辑 html 时,然后通过 ajax 请求将更改提交到服务器以进行存储(在数据库中)。为了识别提交的内容,并将其与某个表/行相关联,我使用唯一标识符,例如table_name+row_id
。此标识符写入 html,然后在提交内容时使用
当内容来源于数据库并且table_name+row_id
没有问题时,但是我如何编辑界面,所有没有这个uid的静态html元素。
首先,我将所有静态文本移至数据库,但问题是所有这些内容都源自 html 文件,所以我没有任何方法可以识别它并将其绑定到需要编辑的数据库行
现在我在 html 中使用手写的唯一 ID,但这需要很多时间和精力。我需要一个更好的方法来做到这一点,我无法在网上找到任何东西
这是它现在的工作方式:
.html 文件:
<h1 id="page_title">
<?=get_text('51920ae518647','This is a page title')?>
</h1>
*$uniq_id
参数是手写在html中
服务器端 :
function get_text($uniq_id, $default){
$return_text = "";
if (!empty($page['data']['html_text']['by_uniq_id'][$uniq_id])){
$return_text = $page['data']['html_text']['by_uniq_id'][$uniq_id]->text;
}
else{// insert the default value to the db
$text = new html_text($uniq_id, $default);
if ($text->save()){
$page['data']['html_text']['by_uniq_id'][$uniq_id] = $text;
$return_text = $default;
}
else{
error_log("Get html text error : new text save failed");
}
}
if ($is_admin)
return '<span class="editable_content" id="' . $uniq_id . '">' . $return_text . '</span>';
else
return $return_text;
}