如何使用MIGx - MODx Revolution在一个包中设置两个对象

时间:2014-06-06 18:26:41

标签: php sql modx

我是使用MODx Revolution(2.2.8-pl)的新手,我无法找到足够的资源来完成我目前正在进行的项目,并取得良好的成绩

简而言之,我在照片/投资组合网站上工作,我需要在数据库中创建几个项目来存储摄影师所做的所有项目。

我找到了这个名为MIGx的精彩工具,它非常棒,但是我无法弄清楚如何用它连接两个表。 (仅用于输入)

基本上我尝试做的是将一个项目添加到投资组合表中,对于每个项目,有一个描述,日期,报价......和一个图像列表,每个都有它的自己的描述。

所以我的猜测是我在同一个包中需要两个对象以及它们之间的链接。

我的XML架构看起来像这样:

    <?xml version="1.0" encoding="UTF-8"?>
<model package="portfolio" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" phpdoc-package="portfolio" phpdoc-subpackage="model" version="1.1">
    <object class="portfolio_items" table="portfolio" extends="xPDOSimpleObject">
        <field key="item_type" dbtype="varchar" precision="20" phptype="string" null="false" default=""/>
        <field key="item_date" dbtype="varchar" precision="10" phptype="string" null="false" default=""/>
        <field key="item_author" dbtype="varchar" precision="30" phptype="string" null="false" default=""/>
        <field key="item_title" dbtype="varchar" precision="250" phptype="string" null="false" default="" />
        <field key="item_description" dbtype="varchar" precision="500" phptype="string" null="false" default="" />
        <field key="item_text_color" dbtype="varchar" precision="10" phptype="string" null="false" default="grey" />
        <field key="item_sections" dbtype="varchar" precision="100" phptype="string" null="false" default="" />
        <field key="item_keywords" dbtype="varchar" precision="250" phptype="string" null="false" default="" />
        <field key="main_img" dbtype="varchar" precision="100" phptype="string" null="false" default="" />
        <field key="item_img" dbtype="varchar" precision="100" phptype="string" null="false" default="" />
        <field key="published" dbtype="int" precision="1" attributes="unsigned" phptype="integer" null="false" default="0" />
    </object>
    <object class=portfolio_item_section" table="item_content" extends="xPDOSimpleObject">
        <field key="content_id" dbtype="int" precision="10" phptype="integer" null="false" default=""/>
        <field key="content_type" dbtype="varchar" precision="20" phptype="string" null="false" default=""/>
        <field key="content_title" dbtype="varchar" precision="100" phptype="string" null="false" default=""/>
        <field key="content_quote" dbtype="varchar" precision="500" phptype="string" null="false" default=""/>
        <field key="content_color" dbtype="varchar" precision="20" phptype="string" null="false" default="" />
        <field key="content_main" dbtype="varchar" precision="2000" phptype="string" null="false" default="" />
            <field key="content_image" dbtype="varchar" precision="100" phptype="string" null="false" default="grey" />
        <field key="content_tags" dbtype="varchar" precision="10" phptype="string" null="false" default="" />
        <composite alias="contentOwner" class="portfolio_table" local="content_id" foreign="id" cardinality="one" owner="local" />
    </object>
</model>

所以,我想要实现的是两个对象之间的链接以及通过MIGx添加数据的方式。

我非常确定我必须创建一个模板变量并在MIGx formtabs中调用它,我几乎已经做了,但我不知道在哪里可以找到MIGx的良好文档以及如何让该死的东西工作。

我添加了一个&#34;添加项目到投资组合的图像&#34;窗口看起来像。从理论上讲,当用户点击&#34;添加项目&#34;时,他可以随意添加带有描述和标签的图像。

Migx interface

请指出如何配置Template变量,以便它可以将行添加到包中的第二个对象?

现在它只显示一个可爱的网格和一个输入字段。

Template variable

亲切的问候, 亚历

1 个答案:

答案 0 :(得分:0)

您需要使用自定义数据库表吗?

普通的MIGX电视会将所有值存储在电视价值的JSON字符串中,您可以通过getImageList片段进行访问。

而不是使用Form TabsGrid Columns输入,通常更容易创建配置,这可以通过在管理器菜单中转到compontents-&gt; migx并选择MIGX选项卡来完成,点击Add Item

基本上,name字段是您在电视的configurations字段中输入的字段(将grid columnsform tabs留空。标签为{{ 1}}将允许您设置内容条目GUI,标签为form tabs的选项卡用于列出MIGX条目的网格,您无需担心其他条目。

使用这种方法,您可以在另一台MIGX电视机内添加MIGX电视,最终得到包含许多其他项目的项目。

使用columns访问嵌套的MIGX值,基本上只传递嵌套的MIGX值而不是tvname值,即:

getImageList

我知道我没有回答你问过的问题,但我希望这会有所帮助