覆盖组件/ com_users/models/forms/login.xml - Joomla 2.5?

the*_*oth 2 joomla joomla-template joomla1.6 joomla1.7 joomla2.5

我一直试图覆盖该文件,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等没有任何成功.

Sha*_*haz 7

这是一个解决方案:

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");
Run Code Online (Sandbox Code Playgroud)

同样,您可以安全地编辑/templates/beez_20/html/com_users/registration/registration.xml以修改注册表单.


Pau*_*ner 5

在论坛上发布的答案肯定是@Shaz,但是对于Joomla 3.X,您必须进行一些调整,因此

首先你复制

/components/com_users/models/forms/login.xml
Run Code Online (Sandbox Code Playgroud)

/templates/YOUR_TEMPLATE/html/com_users/login/forms/login.xml
Run Code Online (Sandbox Code Playgroud)

并将这段代码放在顶部

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
Run Code Online (Sandbox Code Playgroud)

这为我@@ dylanjh赢得了赞誉,该用户在Joomla论坛上发布了原始答案