Создание настраиваемого поля формы в плагине Joomla 3.6

Я смотрю, есть ли решение для создания настраиваемого поля в XML-файле, поэтому я попытался создать поле

<field name="inject_label"
    type="note"
    default="WRAPROTECT_PLG_INJECT_LABEL"
    label="WRAPROTECT_PLG_INJECT_LABEL"
/>

Теперь в моем языковом файле я сделал это

WRAPROTECT_PLG_INJECT_LABEL="<div class='control-group'>
<label class='control-label'>.htaccess</label>
<div class='controls'>
<p class='help-block'> %s </p></div>
</div>"

В моем плагине я хочу заменить

  

% S

, проверив

  

JRequest :: GETVAR ( 'clean_cache');

и

  

Sprintf ( 'WRAPROTECT_PLG_INJECT_LABEL', $ someVar);

Я ищу, если есть лучший способ сделать это по-другому.

1 голос | спросил G. Mansour 11 +03002016-10-11T19:51:30+03:00312016bEurope/MoscowTue, 11 Oct 2016 19:51:30 +0300 2016, 19:51:30

3 ответа


0

В моем XML-файле я использовал

<fieldset label="WRAPROTECT_PLG_GLOBAL_LABEL" name="basic_1" addfieldpath="plugins/system/wraprotect/fields">
</fieldset>

В моем php-файле я использовал функцию

  

getInput ()

и

return '<tag>'.JText::_('some text %s').'</tag>';
ответил G. Mansour 14 +03002016-10-14T10:30:01+03:00312016bEurope/MoscowFri, 14 Oct 2016 10:30:01 +0300 2016, 10:30:01
2

Для создания настраиваемого поля в xml сделайте это как -

укажите type = "your_desired_name", например, я дал abcd.

Теперь создайте php-файл с именем abcd.php и поместите его в папку «fields». Теперь определим класс в нем как -

<?php

defined('JPATH_BASE') or die;
jimport('joomla.form.formfield');

class JFormFieldAbcd extends JFormField {
    protected $type = 'abcd';

    protected function getInput() {
        return 'required value';
    }

}
ответил Arti 25 52016vEurope/Moscow11bEurope/MoscowFri, 25 Nov 2016 16:54:50 +0300 2016, 16:54:50
1

Если вы хотите заменить %s, вы можете использовать следующее:

$jinput  = JFactory::getApplication()->input;
$someVar = $jinput->get('clean_cache', '');

echo JText::sprintf('WRAPROTECT_PLG_INJECT_LABEL', $someVar);

Как вы можете видеть, я использовал JInput вместо JRequest, поскольку это устарело.

ответил Lodder 13 +03002016-10-13T19:02:16+03:00312016bEurope/MoscowThu, 13 Oct 2016 19:02:16 +0300 2016, 19:02:16

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132