我一直在尝试覆盖文件login.xml
,但无论我尝试什么,我的模板文件夹中的编辑版本都不会显示。如何覆盖此文件?
更新
我尝试过template/<templatename>/html/com_users/models/login.xml
和其他变体,如template/<templatename>/html/com_users/models/forms/login.xml
或template/<templatename>/html/com_users/forms/login.xml
等,但没有成功。
这里有一个解决方案:
http://forum.joomla.org/viewtopic.php?t=583380#p2375649
我刚刚在Joomla 2.5.3中测试了它,它很有效。
更新
这是从上面的URL 复制的解决方案
我们可以通过使用普通模板覆盖功能来覆盖输出。对我来说,我正在尝试覆盖登录页面。所以,我要复制一份/components/com_users/views/login/tmpl/default.php
并将其放入/templates/beez_20/html/com_users/login
中。
现在复制一份/components/com_users/models/forms/login.xml
,并将其放置在/templates/beez_20/html/com_users/login
中。
然后编辑/templates/beez_20/html/com_users/login/default.php
并在表单顶部添加以下代码行(我在表单标签后面添加了我的代码行):
// to reset the form xml loaded by the view
$this->form->reset( true );
// to load in our own version of login.xml
$this->form->loadFile( dirname(__FILE__) . DS . "login.xml");
类似地,您可以安全地编辑/templates/beez_20/html/com_users/registration/registration.xml
来修改注册表。
论坛上发布的答案是@Shaz肯定有效,但对于Joomla3.X,你必须稍微调整一下,所以它将是
首先你要复制
/components/com_users/models/forms/login.xml
至
/templates/YOUR_TEMPLATE/html/com_users/login/forms/login.xml
把这段代码放在的顶部
if(!defined('DS')) define('DS', DIRECTORY_SEPARATOR);
$this->form->reset( true ); // to reset the form xml loaded by the view
$this->form->loadFile( dirname(__FILE__) . DS . "forms" . DS . "login.xml"); // to load in our own version of login.xml
这为我赢得了用户@dylanjh的赞誉,该用户在Joomla论坛
我能够利用Griiettner的Joomla 3解决方案。我不想让用户在前端的个人资料编辑屏幕上编辑他们的电子邮件地址。我只是稍微修改了一下,复制这个文件:
components/com_users/models/forms/profile.xml
至:
/templates/YOUR_TEMPLATE/html/com_users/profile/forms/profile.xml
同时复制此文件:
components/com_users/views/profile/tmpl/edit.php
至:
/templates/YOUR_TEMPLATE/html/com_users/profile/edit.php
并将此代码放在edit.php文件的顶部:之后
defined('_JEXEC') or die;
我遗漏了$this->form->reset( true ); // to reset the form xml loaded by the view
并且只使用了这个:
// JOOMLA 3
if(!defined('DS')) define('DS', DIRECTORY_SEPARATOR);
$this->form->loadFile( dirname(__FILE__) . DS . "forms" . DS . "profile.xml");
这使我可以在编辑表单中填充用户配置文件信息。然后,我编辑了profile.xml文件并添加了:
readonly="true"
至email1和email2字段。这将阻止用户进行编辑。