Jump to content

AtkTagAttribute

From NusaATK

Attribute: atkTagAttribute

API docs | Flags

List of other attributes

File:AtkTagAttribute.png
atkTagAttribute screenshot

Description

The tag attribute allows users to assign tags (tags as in 'keywords' and 'tagcloud') to records of an atkNode. The inputfield is probably familiair: there is a textfield where you can type several tags (comma seperated) and a list of already used keywords above it. In fact, this attribute should be a relation, because in the database the tagAttribute is just like a m2m relation with a different way of entering the values.

Parameters

  • Name String

The name of the attribute, can be anything you like. This name will be displayed to the user, but has no effect on the behaviour of the attribute.


  • Destination String

The name of the destinationnode in the format "module.node", so this is NOT the in-between node but the target node containing our tags.


  • Destinationfield String

The name of the field in the destinationnode containing the tag names.


  • Link String

The name of the intermediate node, linking our owner- and destinationnode together.


  • Mode Flag (optional)

Indicates the behaviour of the atkTagAttribute when the tag entered already exists. Can have one of the following values:

When the tag entered already exists, ....

    • TA_ADD (default): ...add the tag.
    • TA_ERROR: ...trigger an error.
    • TA_IGNORE: ...ignore tag.


  • Flags Flag (optional)

The common Attribute_Flags.

Examples

We have the following nodes:

customers (Owner node, the original node you wanted to add the atkTagAttribute to)

  • id (PK)
  • name
  • address
  • city
  • phone

customers_tags (Intermediate node, linking the owner node with the destination node)

  • customers (PK) (Note that this field has to have the same name and type as the databasetable of the ownernode)
  • tags (PK) (Must be called tags, same type as the primary key field in the destinationnode)

tags (Destination node, containing all tags available)

  • id (PK)
  • tagname

To make the atkTagAttribute work, now add the following line to the constructor of the owner node:

 $this->add(new atkTagAttribute("myowntagattribute","modulename.tags","tagname","modulename.customers_tags"));

Replace 'modulename' with the name of your module. Oh and don't forget to add the useattrib('atktagattribute') above your node.