Как вы изменяете форму входа в Joomla? - PullRequest
6 голосов
/ 01 сентября 2011

Мне было интересно, как вы можете изменить текст в форме входа в Joomla.Например:

От Имя пользователя до Usr , от Пароль до Pwd , а также другой текст.

Возможно, этот вопрос уже задавался, но я ничего не смог найти.

Кто-нибудь знает, как это сделать?

Ответы [ 2 ]

10 голосов
/ 06 сентября 2011

Вы можете сделать это с помощью переопределения шаблона, но это не будет корректно обрабатывать изменения шаблона после обновления, и вы предполагаете, что новые строки будут помещены непосредственно в шаблон - что не позволит легко использовать несколько языков.

Правильный способ сделать это (как указано в adjamaflip) через языковые файлы.

Главная страница входа в Joomla через компонент 'com_users', хотя есть также модуль 'mod_login', упомянутый hbit. Этот процесс будет работать для обоих, у них просто будут немного разные файлы и строки для переопределения (вы, вероятно, захотите переопределить оба).

Если вы посмотрите на шаблоны для какого-либо компонента или модуля, вы увидите, что в них есть такие разделы кода:

<?php echo JText::_('MOD_LOGIN_VALUE_USERNAME') ?>
<?php echo JText::_('COM_USERS_LOGIN_USERNAME_LABEL') ?>

Это в основном говорит: «вставьте переведенный текст для WHATEVERSTRING здесь». Этот переведенный текст хранится в соответствующем языковом файле, который будет находиться в /language/LANG/LANG.com_users.ini для компонента com_users и т. Д. LANG по умолчанию - en-GB, так что, вероятно, для вас в /language/en-GB/en-GB.com_users.ini вы найдете строку вроде:

COM_USERS_LOGIN_USERNAME_LABEL="User Name"

Теперь вы можете отредактировать этот файл прямо здесь. Это появится сразу на вашем сайте, и будет правильно обрабатывать несколько языков. Но, опять же, это не очень хорошо выдержит обновления (если Joomla выпустит новую версию, которая изменяет этот языковой файл, она уничтожит ваши изменения).

Для обработки обновлений в Joomla 1.6 была добавлена ​​новая функция для языковых переопределений. Вы можете добавить переопределения для ЛЮБОГО языкового файла (любой компонент / модуль / и т. Д.) В отдельную папку переопределений, в /language/overrides/LANG.override.ini. Например, добавьте строку:

COM_USERS_LOGIN_USERNAME_LABEL="Usr"

Теперь вы переопределили эту языковую строку. Добавьте строки для 'MOD_LOGIN_VALUE_USERNAME' и т. Д., А также переопределите модуль входа в систему и другие строки при необходимости.

Теперь, если вы обновите Joomla, вы получите любые изменения в этих шаблонах входа, но не потеряете ваши текстовые изменения. Вы можете применить этот же процесс для каждого языка, на котором представлен ваш сайт, переопределения будут жить бок о бок. Это также будет работать для сторонних компонентов и модулей, если они используют 'JText :: _ ()' для вывода строки - что они и должны быть.

3 голосов
/ 01 сентября 2011

Вы делаете это с так называемыми переопределениями шаблонов.Вы в основном копируете файл (где происходит вывод вашей формы) в каталог шаблонов вашего активного шаблона.Для формы входа в систему она должна выглядеть следующим образом:

Копировать

[joomla] /modules/mod_login/tmpl/default.php

в

[joomla] / templates / [используемый вами шаблон] /html/mod_login/default.php

Важно создать (если его нет) и использоватькаталог "html" в вашем каталоге шаблонов.Затем вы редактируете новый default.php так, как хотите.Идея состоит в том, что вы не редактируете файлы ядра, поскольку это плохая практика.

Вот дополнительная информация о переопределениях шаблонов: Как переопределить вывод из Joomla!ядро

...