github.com/rpdict/ponzu@v0.10.1-0.20190226054626-477f29d6bf5e/docs/src/Content/Extending-Content.md (about) 1 title: Extending Content through built-in Interfaces and optional Addons 2 3 Extending your Content types with more features and functionality within the system 4 is done by implementing the various built-in interfaces provided by Ponzu. To learn 5 more about interfaces, see [A Tour of Go - Interfaces](https://tour.golang.org/methods/10). 6 7 It is also common to add more advanced functionality to Content types using Addons. Refer to the [Addon documentation](/Ponzu-Addons) for more information about how to use and create Ponzu Addons. 8 9 ## [Item Interfaces](/Interfaces/Item) 10 11 All Content types which embed an `item.Item` will implicitly [implement](#) its many 12 interfaces. In Ponzu, the following interfaces are exported from the `system/item` 13 package and have a default implementation which can be overridden to change your 14 content types' functionality within the system. 15 16 - [`item.Pushable`](/Interfaces/Item#itempushable) 17 - [`item.Hideable`](/Interfaces/Item#itemhideable) 18 - [`item.Omittable`](/Interfaces/Item#itemomittable) 19 - [`item.Hookable`](/Interfaces/Item#itemhookable) 20 - [`item.Identifiable`](/Interfaces/Item#itemidentifiable) 21 - [`item.Sortable`](/Interfaces/Item#itemsortable) 22 - [`item.Sluggable`](/Interfaces/Item#itemsluggable) 23 24 ## [API Interfaces](/Interfaces/API) 25 26 To enable 3rd-party clients to interact with your Content types, you can extend your types with the API interfaces: 27 28 - [`api.Createable`](/Interfaces/API/#apicreateable) 29 - [`api.Updateable`](/Interfaces/API/#apiupdateable) 30 - [`api.Deleteable`](/Interfaces/API/#apideleteable) 31 - [`api.Trustable`](/Interfaces/API/#apitrustable) 32 33 ## [Editor Interfaces](/Interfaces/Editor) 34 35 To manage how content is edited and handled in the CMS, use the following Editor interfaces: 36 37 - [`editor.Editable`](/Interfaces/Editor/#editoreditable) 38 - [`editor.Mergeable`](/Interfaces/Editor/#editormergeable) 39 40 ## [Search Interfaces](/Interfaces/Search) 41 42 To enable and customize full-text search on your content types, use the following interfaces: 43 44 - [`search.Searchable`](/Interfaces/Search/#searchsearchable)