0
<field
    name="published"
    type="list"
    label="JSTATUS"
    description="JFIELD_PUBLISHED_DESC"
    class="inputbox"
    filter="intval"
    size="1"
    default="1"
>
    <option value="1">
        JPUBLISHED</option>
    <option value="0">
        JUNPUBLISHED</option>
    <option value="-2">
        JTRASHED</option>
</field>

我在自定义组件的 form.xml 文件中创建了一个 Joomla 下拉列表,以选择项目的发布状态。我毫不掩饰地从 Joomlacom_content组件中获取了此代码(并将其复制并粘贴到我自己的form.xml文件中。但是当它呈现在edit.php文件中时(如下所示),您可以看到该项目被设置为未发布。尽管上面的代码明确将默认值设置为 1,这应该对应于已发布。关于为什么/如何解决此问题的任何好主意。我可以轻松地将下拉列表从未发布更改为已发布 - 这样做效果很好。但这只是烦人和我想修复的错误。有什么想法吗?

这显示了默认情况下未发布的模块

4

2 回答 2

0

尝试查看您的代码是否有任何覆盖,因为这是由 com_content 组件采用的,在设置所有必填字段之前它不会设置为默认值,请仔细检查是否有任何 JS 脚本或 PHP 函数中断您的字段正常行为。

我的另一个想法是翻译可能有问题,所以仔细查看翻译文件。

于 2013-03-11T03:19:33.010 回答
0

您是否使用像 com_content 这样的表/模型方法?如果是这样,当记录不存在时,其字段将设置为默认值(从数据库中读取,因此 int 字段将默认为 0)。

你可以

  • 在数据库中设置正确的默认值,
  • 检查它们在模型中的值,
  • 将 JPUBLISHED 更改为 0 并将 JUNPUBLISHED 更改为 517

虽然后者看起来真的很丑。

于 2013-03-12T08:42:56.290 回答