Product support

Visit this product's website for support.


  • Marketing
  • Miscellaneous
  • Utility

Universal plugin to store records in separated lists each with own form setup.

It can store many kind of data. I use it for portfolios, simple galleries, contacts, testimonials, company partners, etc.

Functions overview

  • Create any number of lists to store records
  • Define what form fields will be available to each of the lists
  • Add categories, tags and attributes to your records
  • Render records in web with components (Records and Record detail, Categories and Category detail)
  • Permissions to access each of the plugin parts and for each list
  • Import/Export categories and records
  • Connections to other plugins:
    • (Rainlab) Blog - show all records (or filtered to selected List) in blog Post form

The following themes use this plugin:

Records in a list

Small Records

Universal plugin for storing and presenting (almost) any kind of data


GitHub clone into /plugins dir:

git clone https://github.com/jan-vince/smallrecords.git

OctoberCMS backend

Just look for 'Small Records' in search field in:

Settings > Updates&Plugins > Install plugins


You can set permissions to access each of a plugin parts.


Right now just to set list's preview image height and width.


Main idea behind this is to have a place where I can easily collect records in several lists (like portfolio, partners, sliders and their images, simple photo galleries, etc.).

Records lists

Here you can add and edit lists and choose which data (and form fields) will be available.

Created list will be appended to the top of the side menu in Records administration.


You can add one main and several secondary categories to your records.

Here you can set up categories hierarchy (it is a nested tree).


Simple list of tags that can be assigned to records.


If you need a specific information for your records, here you can define a name of an attribute and it's type (string, text, number, switch).

If Attributes are allowed in Records list, you can select an attribute and add a custom content to it.

Access attributes in Twig

If you assigned one or more attributes to any record, you can iterate through them with Twig code like:

{% for attribute in record.attributes %}

    {{ attribute.name }} : {{ attribute.value }}

{% endfor %}

Or there are functions to get a specific attribute (or attribute's value) by slug like:

    {{ record.getAttributeBySlug('my-attribute-slug') }}

    {{ record.getAttributeValueBySlug('my-attribute-slug') }}

Import and Export

You can export and import data to Categories and to Records (Records through Import/Export buttons in Lists toolbar).



You can add a Records component to a page, layout or partial.

There are several parameters - only Records list slug is required.

You can access all properties in twig like: {{records.property('detailPageSlug')}}


You can add a record detail to yout page, layout or partial.

Record list and record slug is required.

Special thanks goes to:
OctoberCMS team members and supporters for this great system. Samuel Zeller for his photo I have used in the plugin banner. Font Awesome for Universal access symbol.

Created by Jan Vince, freelance web designer from Czech Republic.

  • Found the plugin useful on 31 Jul, 2018

    Absolutely delighted with your plugin! More functional than many paid solutions. If you were to document it in more detail, there would be many more using it. I also have questions. Tell me, how to do pagination? Forgive my English. Thank you!

  • author

    Replied on 6 Aug, 2018

    Hi Andrey and thank you,

    I am working on better documentation but have not much time right now. And about paginations - please open an issue on GitHub and we can discuss it there.

  • Found the plugin useful on 31 May, 2018

    Very versatile plugin. Thumbs up!

  • author

    Replied on 31 May, 2018

    Thank you!

  • Found the plugin useful on 11 Jan, 2018

    Great plugin! Perfect when builder is overkill. I've noticed few small issues that I am sure will be worked out.

    Request: Making it easier to add items in the backend. As it stands, when adding new items you must click the "New" button then create the item and close it then click the new item button again. I would suggest a new button when adding new items called "Create and add new" which saves the new item and opens another blank new item page. This should greatly improve the ease of creating long lists with little effort.

    Thanks for making this fantastic plugin!

  • author

    Replied on 12 Jan, 2018

    Hi Ethan, thanks and this is a good idea!

    I have added new buttons Create and NEW and Update and NEW and also autofocus first form field, so you can start typing without click first field.

    And one more thing - new buttons have also new keyboard shortcut: Cmd+Alt+Enter (or Ctrl+Alt+Enter if you are on Windows/Linux).

    Best regards,

  • Found the plugin useful on 4 Oct, 2017

    Love your plugin. Very flexible!

    One question: for my current project I'll try to use the images (not preview_image), but I'm not able to get them out with the recordDetail component. I was trying something like {% for record in SELF.items %} {% if recordDetail.images %} <img alt="{{ recordDetail.name }}" src="{{ recordDetail.images.getPath }}" style="width:300px;"/> {% endif %} {% endfor %}

    Can you give me a hint, please?

  • author

    Replied on 5 Oct, 2017

    Thank you and if you know how to use GitHub, let's start discussion there.

    I you don't use GitHub, try this simple page setup (you have to use correct list slug - I have portfolio here):

    title = "records"
    url = "/records/:slug?"
    layout = "default"
    is_hidden = 0
    areaSlug = "portfolio"
    categorySlug = "{{ :category }}"
    activeOnly = 1
    detailPageSlug = "record-detail"
    orderBy = "date"
    orderByDirection = "DESC"
    {% for record in records.items %}
      {% for image in record.images %}
        <img src="{{ image.getThumb(300, null) }}">
        <img src="{{ image.getPath }}">
      {% endfor %}
     {% endfor %}

  • Found the plugin useful on 3 Oct, 2017

    Very good plugin. Helpful on tasks where "Builder" is overuse. But needing some fixes from developer. (I'll write my issues to github)

  • author

    Replied on 5 Oct, 2017

    Thanks and I will check GitHub for your issues!


Added useMultiCategories property to Records component to allow filtering by categories selected in Categories tab

Jul 19, 2018


Fixed allowLimit default false state in components

May 10, 2018


Added multi-categories checkbox to Categories component. Added categories column to records list.

May 08, 2018


Added sorting to record's related blog posts

May 07, 2018


Added reverse relation 'blog_posts' to record object to allow related blog posts listing

May 07, 2018


Fixed custom reordering of records to show only selected Area records

Apr 23, 2018


Removed Prev & Next buttons in Records update form (as it never worked reliable)

Apr 23, 2018


Added limit to categories component

Apr 19, 2018


Added records columns for description and content.

Apr 19, 2018


Fixed Records component

Apr 19, 2018


Chanded input custom list column type for switch to prevent interaction with toolbar JS

Mar 08, 2018


Fixed Lists order in settings

Feb 09, 2018


Fixed settings dropdown definition

Feb 09, 2018


Added option to connect Rainlab.Blog posts and Records

Feb 09, 2018


Changed count() to mb_strlen() function in custom list type definition

Feb 06, 2018


Added new repeater tab Content blocks (specifically for website page builder blocks)

Feb 01, 2018


Temporary page reload solution to correctly refresh list after item(s) delete

Feb 01, 2018


Updated RecordDetail component partial

Jan 27, 2018


Fixed param type

Jan 27, 2018


Added option to specify detail page slug (for records component)

Jan 27, 2018


Added option to add images from Media Manager (with repeater) along with fileupload

Jan 13, 2018


Fixed records filter (Active)

Jan 13, 2018


Changed order of Create and NEW button. Fixed prev/next arrows in records.

Jan 13, 2018


Added button to add new item after create or update.

Jan 12, 2018


Added optional custom sorting of records

Dec 22, 2017


Fixed incorrectly defined testimonials repeater fields

Dec 21, 2017


Added option for Preview image selected from Media manager.

Dec 20, 2017


Added some more sorting columns (and check for allowed column types)

Dec 14, 2017


Added Categories component property to get only root categories. Fixed some translations.

Dec 13, 2017


Fixed default Tag slug for Records component

Dec 11, 2017


Added Tags to records list and Records component

Dec 11, 2017


Added limit function to Records component

Dec 11, 2017


Fixed recordDetail coponent code (thanks to https://github.com/onemedicare)

Nov 09, 2017


Added {{ record.getAttributeValueBySlug('slug') }} function.

Nov 03, 2017


Added {{ attribute.value }} and {{ record.getAttributeBySlug('slug') }} functions.

Nov 03, 2017


Improved Category component

Sep 17, 2017


Fixed typo in EN locale

Sep 17, 2017


Added navigation to next/previous record in a record edit form.

Sep 17, 2017


Added components for RecordDetail and CategoryDetail.

Sep 17, 2017


Experimental support for duplicate slugs (unique must be combination [list-slug]). Duplicates for now checked only by DB.

Sep 17, 2017


Added testimonials column.

Sep 17, 2017


Permissions for each Records list.

Sep 17, 2017


Import/Export for Records, Categories and Tags.

Sep 17, 2017


Initial version

Sep 12, 2017