【发布时间】:2014-11-08 06:12:00
【问题描述】:
我想做的就是为 joomla 输入表单提供基本的引导样式:
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">some text</span>
<input class="form-control" />
我正在使用带有 less 的 mixin 将样式应用于现有的输入类
//input form fields
.validate-email{
.form-control;
}
我正在覆盖 com_users/remind.php 以进行其他 html 更改。
但是有一些 php 代码会弄乱输出。这是来自 com_users/remind.php 的原始代码,我将覆盖它:
<fieldset>
<?php foreach ($this->form->getFieldset($fieldset->name) as $name => $field) : ?>
<div class="control-group">
<div class="control-label">
<?php echo $field->label; ?>
</div>
<div class="controls">
<?php echo $field->input; ?>
</div>
</div>
<?php endforeach; ?>
</fieldset>
我不需要标签(见上文),所以我删除了这些行。我更改了所有可用的类,并为输入字段类创建了一个 mixin(见上文)。
这就是现在的样子:
<fieldset>
<?php foreach ($this->form->getFieldset($fieldset->name) as $name => $field) : ?>
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">E-Mail</span>
<?php echo $field->input; ?>
</div>
</div>
<?php endforeach; ?>
</fieldset>
但是该代码中周围的 php 行正在做一些奇怪的事情,我不明白。 输出如下所示:
<fieldset>
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">E-Mail</span>
<input type="email" aria-required="true" required="" size="30" value="" id="jform_email" class="validate-email invalid" name="jform[email]" aria-invalid="true"> </div>
</div>
<div class="form-group">
<div class="input-group">
<span class="input-group-addon">E-Mail</span>
</div>
</div>
</fieldset>
所以第一个表单组 - 输出就是我想要的。第二个表单组 - 输出通常是输入字段的相应标签。我需要摆脱第二个表单域输出。
我不是在做核心黑客,我正在寻找一种方法来覆盖 joomla 输入字段输出。 我不想像文档建议的那样创建自己的表单字段:http://docs.joomla.org/Creating_a_custom_form_field_type
我要么需要摆脱那个“foreach”而不创建任何 php 错误,但我不知道如何更改那个 php 代码。 或者我需要在没有所有额外内容的情况下为电子邮件加载该输入字段,但我不知道该怎么做。
我尝试通过添加来创建自己的字段覆盖
JForm::addFieldPath(JPATH_THEMES . '/MyTemplate/html/fields');
并将remind.php 复制到该文件夹。 但它没有加载我的自定义remind.php。 文档提到了覆盖 getLabel
public function getLabel() {
return '<span style="text-decoration: underline;">' . parent::getLabel() . '</span>';}
但我不知道如何在 getInput 上使用它
如果有人有正确的 php 行或其他更简单的解决方案,请告诉我。我已经试错了一段时间,但我的想法已经不多了。 谢谢,拉斯
【问题讨论】:
-
您能否更新“第一个表单组 - 输出就像预期的一样,正是我想要的,第二个看起来像这样”部分并添加导出的内容和您的期望?
-
@emmanuel 我改变了那部分。它现在显示整个输出。