2013-03-10 23 views
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下拉菜单,以选择该项目的发布状态。我已经从Joomla com_content组件中获取这些代码(并将其复制并粘贴到我自己的form.xml文件中,但是当它在edit.php文件中呈现时(如下所示),您可以看到该项目被设置为未发布。上面的代码明确地将默认值设置为1,这应该对应于已发布的任何好的想法,为什么/如何解决这个问题,我可以轻松地将下拉从未发布到已发布 - 并且它可以很好地执行此操作。恼人的和错误,我想修复。任何想法?在Joomla中创建发布下拉菜单

This shows the module being unpublished by default

+0

我看不出你的代码有什么问题。如果你将选项混合在一起并且/或者忽略了'filter',它是否也会这样做?而且,iirc'list'字段没有'size'属性。 – Hazzit 2013-03-11 00:07:20

+0

我已经尝试了洗牌选项,没有成功(最初我没有在顶部发布,但后来改变了命令,看看它是否有所作为)。 “article.xml”中的'size'表示com_content - 但是您的第二个想法 - 无法看到它做了任何事情,所以稍后会删除它。试图删除'过滤器'并没有任何区别。我应该补充说下拉本身的功能是完美的。我可以选择删除,发布或未发布,并设置这些值。它只是在新项目上失败的默认值。 – 2013-03-11 00:38:59

回答

0

尝试看看是否有你的代码的任何替代,因为这是采取的com_content组件,也不会设置为默认t直到设置了所有必填字段,再仔细检查一下JS脚本或PHP函数是否会中断你的字段的正常行为。

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

+0

嗨,我应该添加我刚刚复制表单域到我自己的组件'form.xml'文件(并更改名称从状态发布和删除'存档'选项)。在我的组件中没有任何自定义js(只是默认的Joomla的东西) - 我甚至没有运行任何规则。不应该有任何我知道的PHP字段 - 我正试图尽可能保持我的组件尽可能简单!我会检查语言文件 - 好主意。虽然如果JPublished正在翻译为未发布的模块并发布为“com_content”,那将会非常奇怪。 – 2013-03-11 10:27:53

0

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

您可以

  • 设置在数据库中正确的默认值,
  • 检查在模型中他们的价值观,
  • 变化JPUBLISHED为0,JUNPUBLISHED 517

虽然后者看起来非常难看。

+0

是的,我确实是。我想这总是需要存储在数据库中。有趣。那么表单字段中的默认值是什么,然后如果它从数据库中读取?我想这是有道理的,因为'null' /'0'是数据库中新字段的缺省值。轻松修复以更改数据库中的默认值 - 今晚将尝试他 - 谢谢! – 2013-03-12 09:21:14

+0

好吧我设置默认数据库值为1,不幸的是没有任何区别。仍然显示未发布为默认选项。也只是看着com_weblinks和com_content我可以在他们的FB表中看到它们的默认值是0而不是1。 – 2013-03-12 19:59:40

+0

那么你肯定需要在视图中做这件事,然后再将表单绑定到数据上,设置数据的默认值。 – 2013-03-13 17:01:48