Creating your own attribute types in Concrete5 can be very confusing because there are a TON of things you can do with them. If you look through the code for the built-in attribute types (in the
SITEROOT/concrete/models/attribute/types/ directory), it is hard to figure out what is essential versus what is specific to each attribute type’s custom functionality.
I’ve had to create a few custom attribute types recently, and in the process of doing so I pared down the code to the bare essentials. I’ve posted this sample code on my github repo: https://github.com/jordanlev/c5_minimal_attribute_type
Hope this helps!