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



我一直在尝试覆盖文件login.xml,但无论我尝试什么,我的模板文件夹中的编辑版本都不会显示。如何覆盖此文件?

更新

我尝试过template/<templatename>/html/com_users/models/login.xml和其他变体,如template/<templatename>/html/com_users/models/forms/login.xmltemplate/<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字段。这将阻止用户进行编辑。

相关内容

  • 没有找到相关文章

最新更新