Изменение текстовых надписей

Материал из ISPWiki

Перейти к: навигация, поиск

Рассмотрим процедуру изменения текстовых надписей на свои собственные, например, с целью указания данных своей компании.

Исходные данные

  • Имеем панель управления BILLmanager
  • На форме проверки телефона (защита от мошенников) нам нужно изменить текст, указав контакты, по которым следует обращаться, если проверка не прошла в автоматическом режиме.
  • Телефон нашей компании в этом примере +7 495 111 11 11

Действия

1) Создаем файл описания плагина /usr/local/ispmgr/etc/billmgr_mod_myfraud.xml со следующим содержимым

 <?xml version="1.0" encoding="UTF-8"?>
 <mgrdata>
  <lang name="ru">
    <messages name="validate.phone.check">
       <msg name="vinfo1">При возникновении трудностей с автоматической активацией вам следует позвонить по телефону +7 495 111 11 11</msg>
    </messages>
  </lang>
  <lang name="en">
    <messages name="validate.phone.check">
       <msg name="vinfo1">If you have any problems with automatic activation, please call us +7 495 111 11 11</msg>
    </messages>
  </lang>
 </mgrdata>

2) Перезапускаем BILLmanager

Пояснения

В данном примере, как и в предыдущем, мы воспользовались возможностью замены XML-описания интерфейсов данными пользователя и заменили сообщение с внутренним именем vinfo1 в модуле с внутренним именем validate.phone.check для основного (en) и русского (ru) языка.

Откуда же взять эти внутренние имена человеку незнакомому с содержанием панели управления?


Первый способ (самый простой):


Посмотреть, как в интерфейсе выглядит исходная надпись. В нашем примере для основного (английского) языка заменяемая фраза выглядит - "If you have any problems with your phone number verification, please contact our Support center.". Открываем файл /usr/local/ispmgr/etc/billmgr_msg_en.xml в любом редакторе и поиском ищем исходную фразу. Мы найдем примерно такой блок текста (многоточием заменены вырезанные, несущественные для примера данные):

   <messages name="validate.phone.check">
     ...
     <msg name="vinfo1">If you have any problems with your phone number verification, please contact our Support center. </msg>
     ...
   </messages>

Таким образом мы определили, что внутреннее имя модуля проверки телефона равно "validate.phone.check" (значение атрибута name у тэга messages), а внутренние имя необходимой нам текстовой надписи равно "vinfo1" (значение атрибута name у тэга msg)


Однако этот способ имеет один недостаток, если сообщение слишком короткое, например "Наименование", то оно может встречаться множество раз, в этом случае лучше воспользоваться вторым способом (наиболее точным):


Открываем необходимую нам форму в своем браузере и смотрим в логе панели управления (в данном примере /usr/local/ispmgr/var/billmgr.log), как называлась функция обрабатывающая данную форму. В нашем примере мы увидим строку похожую на

May 16 23:46:35 [71288] INFO Request [192.168.1.1][myusername] 'func=validate.phone.check&country=55&nextfunc=vds%2Eorder%2E1&noback=on&phone=1111111111&price=414'

берем из нее значение параметра func, validate.phone.check - это и есть внутренние имя модуля проверки телефона. Далее смотрим в файл /usr/local/ispmgr/etc/billmgr_msg_en.xml и, зная внутренние имя модуля, ищем описание его текстовых надписей, которое будет начинаться со строчки

<messages name="validate.phone.check">

Внутри этого блока находим нужное нам сообщение и также как в первом способе определяем внутренние имя сообщения.


Существует еще и третий способ (теоретический):


Открываем документацию по API для нужной панели управления. В нашем примере BILLmanager_API, находим там описание необходимой нам функции, и мы увидим ее внутренние имя, а также внутренние имена параметров (полей). Однако этим способом не всегда можно воспользоваться, поскольку там описаны только параметры, а описание не имеющих значения для функционала текстовых надписей там отсутствует. К тому же не все модули имеют описание доступа к ним через API (ввиду отсутствия необходимости), например, для решения рассматриваемой в этой статье задачи этим способом воспользоваться нельзя.

Была ли эта информация полезной? Да | Нет
Личные инструменты