在 Joomla 的 php 文件中搜索后,我自己找到了解决方案。这里是:
在前端编辑时呈现给前端访问者的字段集在以下文件中定义:
/components/com_content/views/form/tmpl/edit.php
或在早期版本的 Joomla 中:
/components/com_content/views/article/tmpl/form.php
这是要添加的内容(包括一些上下文代码);留意我的 cmets “CG 加法”:
<fieldset>
<legend><?php echo JText::_('COM_CONTENT_PUBLISHING'); ?></legend>
<div class="formelm">
<?php echo $this->form->getLabel('catid'); ?>
<span class="category">
<?php echo $this->form->getInput('catid'); ?>
</span>
</div>
<div class="formelm">
<?php echo $this->form->getLabel('created_by_alias'); ?>
<?php echo $this->form->getInput('created_by_alias'); ?>
</div>
<?php if ($this->item->params->get('access-change')): ?>
<div class="formelm">
<?php echo $this->form->getLabel('state'); ?>
<?php echo $this->form->getInput('state'); ?>
</div>
<div class="formelm">
<?php echo $this->form->getLabel('featured'); ?>
<?php echo $this->form->getInput('featured'); ?>
</div>
<!-- Addition by CG to make the "Create Date" field available -->
<div class="formelm">
<?php echo $this->form->getLabel('created'); ?>
<?php echo $this->form->getInput('created'); ?>
</div>
<!-- End of addition by CG -->
<div class="formelm">
<?php echo $this->form->getLabel('publish_up'); ?>
<?php echo $this->form->getInput('publish_up'); ?>
</div>
<div class="formelm">
<?php echo $this->form->getLabel('publish_down'); ?>
<?php echo $this->form->getInput('publish_down'); ?>
</div>
<?php endif; ?>
<div class="formelm">
<?php echo $this->form->getLabel('access'); ?>
<?php echo $this->form->getInput('access'); ?>
</div>
<?php if (is_null($this->item->id)):?>
<div class="form-note">
<p><?php echo JText::_('COM_CONTENT_ORDERING'); ?></p>
</div>
<?php endif; ?>
</fieldset>
其实就是这样。不需要更多。新字段完全可用并与网站数据库通信。
但是,如果这样使用,前端用户将以丑陋的“JGLOBAL_FIELD_CREATED_LABEL”字符串的形式显示,而不是合理命名的标签。
为了显示一个好听的名称(例如“创建日期”),我建议在后端的 Joomla 语言管理器中创建一个语言覆盖;或者您可以手动覆盖相应语言文件中的值(例如 en-GB.ini,或者,如果存储在“覆盖”文件夹中:en-GB.override.ini),例如所以:
JGLOBAL_FIELD_CREATED_LABEL="Create date, or date of the event"
请注意,Joomla 2.5 中有两个存储语言设置的位置,一个在主文件夹/语言中,另一个在管理员/语言中。
因此,前端编辑表单中的“发布”字段集将类似于 so: