英文:
Adding a button type to joomla plugin xml config
问题
我已创建一个 Joomla 插件,并在 XML 文件中添加了以下代码中的 2 个字段。我想要添加一个按钮类型。由于我在 Joomla 中找不到按钮类型,该如何实现?我正在使用 Joomla v4。
请参考下面的截图以更清楚地了解我正在寻找的内容。
[![Joomla 配置屏幕][1]][1]
英文:
I have created a joomla plugin and added 2 fields in xml file with the below code. I want to add a button type. As I don't find the button type in joomla, how to achieve this? I am using Joomla v4.
<fieldset name="basic">
<field
name="email"
type="text"
filter="raw"
default=""
label="PLG_EDITORS-XTD_XXX_FIELD_EMAIL"
description="Enter your XXX Email"
size="50"/>
<field
name="password"
type="password"
label="PLG_EDITORS-XTD_XXX_FIELD_PASSWORD"
description="Enter the password"
maxlength="25"
size="30"/>
</fieldset>
Please refer the screenshot for better clarity on what I was looking for.
答案1
得分: 1
你需要构建一个自定义字段类型,将其存储在你的插件中,并在你的插件的XML文件中加载它。
参考 plugins/system/stats
插件。它像这样定义了自定义字段类型 data
:
<fieldset name="basic" addfieldprefix="Joomla\Plugin\System\Stats\Field">
<field
name="data"
type="data"
label=""
/>
</fieldset>
data
字段存储在 plugins/system/stats/src/Field/DataField.php
中,最终的HTML从布局 plugins/system/stats/layouts/field/data.php
渲染。在你的情况下,你自定义字段类型的布局是用于渲染登录按钮的。
英文:
You need to build a custom field type, store it in your plugin and load it in your plugin's XML file.
Take a look at plugins/system/stats
plugin. It defines the custom field type data
like this:
<fieldset name="basic" addfieldprefix="Joomla\Plugin\System\Stats\Field">
<field
name="data"
type="data"
label=""
/>
</fieldset>
The data
field is stored in plugins/system/stats/src/Field/DataField.php
, the final HTML is rendered from the layout plugins/system/stats/layouts/field/data.php
. In your case, your custom field type's layout is the one rendering the login button.
答案2
得分: 0
Sure, here are the translated parts:
- 为登录按钮添加一个字段,该字段将是自定义类型,让我们称之为 loginbtn:
<fieldset name="basic" addfieldprefix="Joomla\Plugin\<Your plugin group>\<Your plugin name>\Field">
<field
name="email"
type="text"
filter="raw"
default=""
label="PLG_EDITORS-XTD_XXX_FIELD_EMAIL"
description="输入您的XXX电子邮件"
size="50"/>
<field
name="password"
type="password"
label="PLG_EDITORS-XTD_XXX_FIELD_LOGINBTN"
description="登录"/>
</fieldset>
- 在 plugins/<Your plugin group>/<Your plugin name>/src/Field 中创建一个名为 Loginbtn.php 的文件。
Loginbtn.php 代码:
<?php
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Form\FormField;
class JFormFieldLoginbtn extends FormField
{
protected $type = 'loginbtn';
protected function getInput()
{
$html = '<input type="submit" name="submit" id="submit" class="your btn class" />';
return $html;
}
public function getLabel() {
return '<span style="text-decoration: underline;">' . parent::getLabel() . '</span>';
}
}
- 在插件的 XML 文件中添加一个 Field 文件夹:
<files>
<folder>field</folder>
</files>
请注意,这些是您提供的代码的翻译部分,不包括任何问题的回答。如果您需要进一步的帮助,请随时提出。
英文:
-
Add a field for the Login button, the field will be custom type, lets name it loginbtn:
<fieldset name="basic" addfieldprefix="Joomla\Plugin\<Your plugin group>\<Your plugin name>\Field"> <field name="email" type="text" filter="raw" default="" label="PLG_EDITORS-XTD_XXX_FIELD_EMAIL" description="Enter your XXX Email" size="50"/> <field name="password" type="password" label="PLG_EDITORS-XTD_XXX_FIELD_LOGINBTN" description="Login"/> </fieldset>
-
Create a file, Loginbtn.php in plugins/< Your plugin group >/< Your plugin name >/src/Field
Loginbtn.php code:
<?php
defined('JPATH_PLATFORM') or die;
use Joomla\CMS\Factory;
use Joomla\CMS\Form\FormField;
class JFormFieldLoginbtn extends FormField
{
protected $type = 'loginbtn';
protected function getInput()
{
$html = '<input type="submit" name="submit" id="submit" class="your btn class" />';
return $html;
}
public function getLabel() {
return '<span style="text-decoration: underline;">' . parent::getLabel() . '</span>';
}
}
- Add a folder for Field in plugin's xml <files>
< folder >field< /folder >
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论