silverstripe-tagfield/README.md

67 lines
1.4 KiB
Markdown
Raw Normal View History

2015-04-28 01:55:33 +02:00
# TagField Module
2015-04-14 03:15:28 +02:00
2015-05-15 12:29:17 +02:00
[![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)
2015-04-28 01:55:33 +02:00
## 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
2015-05-15 12:29:17 +02:00
### Relational Tags
2015-04-28 01:55:33 +02:00
```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 = TagField::create(
'BlogTags',
'Blog Tags',
BlogTag::get(),
$post->BlogTags()
)
->setShouldLazyLoad(true) // tags should be lazy loaded
->setCanCreate(true); // new tag DataObjects can be created
2015-05-15 12:29:17 +02:00
```
### String Tags
```php
class BlogPost extends DataObject {
static $db = array(
'Tags' => 'Text'
);
}
```
```php
$field = StringTagField::create(
2015-05-15 12:29:17 +02:00
'BlogTags', 'Blog Tags', array('one', 'two'), explode(',', $post->Tags)
);
$field->setShouldLazyLoad(true); // tags should be lazy loaded
```