Переопределить компоненты / com_users / models / forms / login.xml - Joomla 2.5? - PullRequest
2 голосов
/ 24 марта 2012

Я пытался переопределить файл 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 и т. Д., Но безуспешно.

Ответы [ 3 ]

7 голосов
/ 24 марта 2012

Вот решение:

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, чтобы изменить форму регистрации.

4 голосов
/ 28 июля 2014

Ответ, опубликованный на форуме, что @Shaz определенно работает, но для Joomla 3.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

1 голос
/ 15 декабря 2015

Мне удалось использовать решение 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.Это мешает пользователю редактировать.

...