我在这里的第一篇文章,我总是在之前提出的问题中找到了我需要的帮助,谢谢,但是这次我很难过,所以这里就是这样。
我仍然是一个相对于此处人员的新手,但我开发了一个joomla 2.5组件,我需要以AES加密格式存储数据。 好的,为了保存数据,我通过在保存数据时覆盖模型中的prepareTable函数来做到这一点,并且效果非常好。
但是在将数据加载回用户表单时解密数据的最佳位置在哪里?
对于列表视图,我可以在视图甚至布局中调用我自己的解密函数,这也可以。
但是当我实际编辑单个记录时,使用标准的joomla myform.xml将数据加载到未加密的表单域中。
我需要覆盖Joomla的一些内置部分,这样我就可以在将数据填充到表单字段之前对其进行解密。 任何人都可以建议我可以覆盖什么功能来更改数据,然后才能在表单中显示。 也许我错过了一些明显的东西,但我要找的是和prepareTable相同,但是用于加载数据,而不是保存它。
提前感谢您的帮助。
答案 0 :(得分:1)
根据艾琳的建议解决了。
保存数据时,我使用覆盖prepareTable的php函数加密数据。 然后,为了将数据读回到表单中,我将JFormField扩展为JFormFieldAes,在getInput函数中添加解密逻辑。
对于自定义选择表单字段,我使用相同的逻辑,但将其放在getOptions函数中。
我现在可以加密我选择的任何字段,而无需使用任何数据库加密。最后这很快捷。