<p>Element Types, Custom Fields, and Sources can work closely together, but how you structure that relationship has a lot of flexibility.</p>

<p>Sources are optional.  They are a convenient way to group and filter Elements, but they vary in the way that they group those Elements – Globals use Global Sets, Categories use Category Groups, Entries use Sections – and if you don't need them, you should be able to just leave them out altogether.</p>

<p>One place, where sources aren't completely non-existent, but where you will see the Craft user interface present an Element Type without any sources is if you restrict an Asset field to a single folder or an Entry Relations field to a single Section.  When you trigger the field modal to select the related Assets or Entries, you will not see any sources in the sidebar, because all the Elements fall into that singular container that you set in the settings.</p>

<p>Building your custom Element without sources would behave in a similar way. Your Element index page and your Element Field Type will expand to full width and your user will just see your content however you wish to present it.</p>

<p><strong>Update</strong> </p>

<p>To your question in the comments: What should be an Element Type?</p>

<p>I'm sure this is a much longer discussion, but I will volunteer a vague one sentence answer!:  when the benefits of using the extendable features of Element Types (sources, search, relations, etc.) outweigh the costs of developing more specific custom solutions for your needs.</p>

CC BY-SA 3.0
2014-11-05T05:49:41.297Z
Thanks Ben, search is the real key here. I want to extend that feature to these types... Hence the decision for the element type.
Jason McCallister
CC BY-SA 3.0
2014-11-05T05:00:39.220Z
2014-11-05T05:06:15.647Z
2014-11-05T05:06:15.647Z
Ben Parizek
<p>I want to create a custom plugin (element type) that does not allow custom fields. Therefore, when digging through existing element types, do I really need to have the getSources method?</p>

<p>If this is the case, what is the P&amp;T definition of "sources" and are there any base element types that don't use "sources"?</p>

CC BY-SA 3.0
2014-11-05T02:53:16.633Z
Maybe the question is more along the lines of what really an Element Type should be? If I need to assign custom fields it should be an element type or if there can be many items of this type?
Jason McCallister
<plugin-development><elementtype><sources>
Use a custom Element Type without sources?
# Use a custom Element Type without sources?

(Asked by: username_0 on 2014-11-05)

I want to create a custom plugin (element type) that does not allow custom fields. Therefore, when digging through existing element types, do I really need to have the getSources method?

If this is the case, what is the P&T definition of "sources" and are there any base element types that don't use "sources"?

**Tags:** plugin-development, elementtype, sources

> **Comments:**
> **username_0**: Maybe the question is more along the lines of what really an Element Type should be? If I need to assign custom fields it should be an element type or if there can be many items of this type?  

---

## 1 answers

### Answer by username_1 on 2014-11-05. Score: 4 | Accepted answer

Element Types, Custom Fields, and Sources can work closely together, but how you structure that relationship has a lot of flexibility.

Sources are optional. They are a convenient way to group and filter Elements, but they vary in the way that they group those Elements – Globals use Global Sets, Categories use Category Groups, Entries use Sections – and if you don't need them, you should be able to just leave them out altogether.

One place, where sources aren't completely non-existent, but where you will see the Craft user interface present an Element Type without any sources is if you restrict an Asset field to a single folder or an Entry Relations field to a single Section. When you trigger the field modal to select the related Assets or Entries, you will not see any sources in the sidebar, because all the Elements fall into that singular container that you set in the settings.

Building your custom Element without sources would behave in a similar way. Your Element index page and your Element Field Type will expand to full width and your user will just see your content however you wish to present it.

**Update**

To your question in the comments: What should be an Element Type?

I'm sure this is a much longer discussion, but I will volunteer a vague one sentence answer!: when the benefits of using the extendable features of Element Types (sources, search, relations, etc.) outweigh the costs of developing more specific custom solutions for your needs.

> **Comments:**
> **username_0**: Thanks Ben, search is the real key here. I want to extend that feature to these types... Hence the decision for the element type.  

---

