silverstripe-tagfield/README.md
Christopher Pitt 5efeb5642f Stabilized API
2015-05-22 15:22:13 +12:00

65 lines
1.4 KiB
Markdown

# TagField Module
[![Build Status](http://img.shields.io/travis/silverstripe-labs/silverstripe-tagfield.svg?style=flat-square)](https://travis-ci.org/silverstripe-labs/silverstripe-tagfield)
[![Code Quality](http://img.shields.io/scrutinizer/g/silverstripe-labs/silverstripe-tagfield.svg?style=flat-square)](https://scrutinizer-ci.com/g/silverstripe-labs/silverstripe-tagfield)
## Requirements
* SilverStripe 3.1 or newer
* Database: MySQL 5+, SQLite3, Postgres 8.3, SQL Server 2008
## Download/Information
* http://silverstripe.org/tag-field-module
## Usage
### Relational Tags
```php
class BlogPost extends DataObject {
static $many_many = array(
'BlogTags' => 'BlogTag'
);
}
```
```php
class BlogTag extends DataObject {
static $db = array(
'Title' => 'Varchar(200)',
);
static $belongs_many_many = array(
'BlogPosts' => 'BlogPost'
);
}
```
```php
$field = new TagField(
'BlogTags', 'Blog Tags', BlogTags::get(), $post->BlogTags()
);
$field->setShouldLazyLoad(true); // tags should be lazy loaded
$field->setCanCreate(true); // new tag DataObjects can be created
```
### String Tags
```php
class BlogPost extends DataObject {
static $db = array(
'Tags' => 'Text'
);
}
```
```php
$field = new StringTagField(
'BlogTags', 'Blog Tags', array('one', 'two'), explode(',', $post->Tags)
);
$field->setShouldLazyLoad(true); // tags should be lazy loaded
```