【问题标题】:Joomla JCE Editor in frontend: how to add "Create date" field to the "Publishing" fieldset?前端的 Joomla JCE 编辑器:如何将“创建日期”字段添加到“发布”字段集中?
【发布时间】:2017-02-22 08:21:50
【问题描述】:

在 Joomla 网站 (Joomla 2.5) 中,使用 JCE 编辑器,我想为前端编辑提供更多的舒适度。具体来说,我想给我的编辑人员手动设置文章的“创建日期”值的选项。

背景:在后台,无论如何都可以手动设置“创建日期”。在前端,目前还没有这个选项,因为前端编辑表单不包含“创建日期”字段。但是,它包括“开始发布”字段和“完成发布”字段。

(我也知道可以将“创建日期”字段添加到前端编辑表单,因为几年前我有一个类似的网站经过调整以提供此功能,但我不记得我是如何做到的,或者是谁为我做的。)

有问题的字段集是前端编辑表单的一部分:

这是浏览器中字段集的源代码:

当然,可以在此处为“创建日期”字段再添加一行,例如:

<div class="formelm><label id="jform... >Create Date</label></input id="jform... ></div>

我需要:

  • 如何在服务器上的 php 文件中找到它并进行调整的提示

  • 提示必须在其他 php 文件中添加什么,因为我认为仅在 php 文件中添加创建编辑表单的字段是不够的,我有调整其他文件,以便表单能够与服务器上的数据库通信......

【问题讨论】:

  • 这个问题有什么不好的,以至于它立即被否决-2?

标签: php joomla2.5 frontend


【解决方案1】:

在 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:

【讨论】:

    猜你喜欢
    • 2013-11-11
    • 2021-04-03
    • 1970-01-01
    • 2020-11-22
    • 2019-08-07
    • 1970-01-01
    • 2019-01-12
    • 1970-01-01
    • 2014-07-04
    相关资源
    最近更新 更多