2012-03-24 1 views
0

Я пытался переопределить файл login.xml, но независимо от того, что я пытаюсь, отредактированная версия в моей папке шаблона не отображается. Как я могу переопределить этот файл?Переопределить компоненты/com_users/models/forms/login.xml - Joomla 2.5?

Update

Я попытался 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 и т.д. без какого-либо успеха.

+0

Привет, спасибо за ваш ответ. Я пробовал шаблон/templatename/html/com_users/models/login.xml и другие варианты, такие как template/templatename/html/com_users/models/forms/login.xml или template/templatename/html/com_users/forms/login.xml и т. Д. ... – theoth

ответ

6

Вот решение:

http://forum.joomla.org/viewtopic.php?t=583380#p2375649

Я просто проверял в Joomla 2.5.3, и это работает.

Update

здесь решение скопировано из выше 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 изменять регистрационную форму.

+0

Спасибо за ссылку. Я дам ему попытку и опубликую результаты. – theoth

+0

Кажется, что работайте по назначению, спасибо. – theoth

4

Ответ выложенные на форуме, что @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

+0

Отлично! спасибо – RustyIngles

1

Я был в состоянии использовать решение 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 полей. Это не позволяет пользователю редактировать.