name: Joomla Articles
description: Display Joomla Articles.
type: particle
icon: fa-joomla fab

form:
  fields:
    enabled:
      type: input.checkbox
      label: Enabled
      description: Globally enable Joomla Articles particles.
      default: true

    _tabs:
      type: container.tabs
      fields:
        _tab_articles:
          label: Articles
          overridable: false
          fields:

            title:
                type: input.text
                label: Title
                description: Customize the title text.
                placeholder: Enter title

            article.filter.categories:
              type: joomla.categories
              label: Categories
              description: Select the categories the articles should be taken from.
              overridable: false

            article.filter.articles:
              type: input.text
              label: Articles
              description: 'Enter the Joomla articles that should be shown. It should be a list of article IDs separated with a comma (i.e. 1,2,3,4,5).'
              overridable: false

            article.filter.featured:
              type: select.select
              label: Featured Articles
              description: Select how Featured articles should be filtered.
              default: ''
              options:
                include: Include Featured
                exclude: Exclude Featured
                only: Only Featured
              overridable: false

            article.limit.total:
              type: input.text
              label: Number of Articles
              description: Enter the maximum number of articles to display.
              default: 2
              pattern: '\d{1,2}'
              overridable: false

            article.display.pagination_buttons:
              type: select.select
              label: Pagination
              description: Select if the pagination buttons should be shown to allow users to see more articles.
              default: ''
              options:
                show: Show
                '': Hide
              overridable: false

            article.limit.columns:
              type: select.select
              label: Number of columns
              description: Select the number of columns that you want articles to appear in.
              default: 2
              options:
                1: 1
                2: 2
                3: 3
                4: 4
                5: 5
                6: 6
              overridable: false

            article.limit.start:
              type: input.text
              label: Start From
              description: Enter offset specifying the first article to return. The default is '0' (the first article).
              default: 0
              pattern: '\d{1,2}'
              overridable: false

            article.sort.orderby:
              type: select.select
              label: Order By
              description: Select how the articles should be ordered by.
              default: publish_up
              options:
                publish_up: Published Date
                created: Created Date
                modified: Last Modified Date
                title: Title
                ordering: Ordering
                hits: Hits
                id: ID
                alias: Alias
              overridable: false

            article.sort.ordering:
              type: select.select
              label: Ordering Direction
              description: Select the direction the articles should be ordered by.
              default: ASC
              options:
                ASC: Ascending
                DESC: Descending
                RANDOM: Random
              overridable: false

        _tab_display:
          label: Display
          fields:
            article.display.image.enabled:
              type: select.select
              label: Image
              description: Select if and what image of the article should be shown.
              default: intro
              options:
                intro: Intro
                full: Full
                '': None
            article.display.text.type:
              type: select.select
              label: Article Text
              description: Select if and how the article text should be shown.
              default: intro
              options:
                intro: Introduction
                full: Full Article
                '': Hide

            article.display.text.limit:
              type: input.text
              label: Text Limit
              description: Type in the number of characters the article text should be limited to.
              default: ''
              pattern: '\d+'

            article.display.text.formatting:
              type: select.select
              label: Text Formatting
              description: Select the formatting you want to use to display the article text.
              default: text
              options:
                text: Plain Text
                html: HTML

            article.display.text.prepare:
              type: input.checkbox
              label: Prepare Content
              description: Use Joomla Content Plugins
              default: false

            article.display.edit:
              type: input.checkbox
              label: Show Edit Link
              description: Display a link to the article edit form
              default: false

            article.display.title.enabled:
              type: select.select
              label: Title
              description: Select if the article title should be shown.
              default: show
              options:
                show: Show
                '': Hide

            article.display.title.limit:
              type: input.text
              label: Title Limit
              description: Enter the maximum number of characters the article title should be limited to.
              pattern: '\d+(\.\d+){0,1}'

            article.display.date.enabled:
              type: select.select
              label: Date
              description: Select if the article date should be shown.
              default: published
              options:
                created: Show Created Date
                published: Show Published Date
                modified: Show Modified Date
                '': Hide

            article.display.date.format:
              type: select.date
              label: Date Format
              description: Select preferred date format. Leave empty not to display a date.
              default: 'l, F d, Y'
              selectize:
                  allowEmptyOption: true
              options:
                  'l, F d, Y': Date1
                  'l, d F': Date2
                  'D, d F': Date3
                  'F d': Date4
                  'd F': Date5
                  'd M': Date6
                  'D, M d, Y': Date7
                  'D, M d, y': Date8
                  'l': Date9
                  'l j F Y': Date10
                  'j F Y': Date11
                  'F d, Y': Date12

        _tab_readmore:
          label: Read More
          fields:
            article.display.read_more.enabled:
              type: select.select
              label: Read More
              description: "Select if the article 'Read More' button should be shown."
              default: show
              options:
                show: Show
                '': Hide

            article.display.read_more.label:
              type: input.text
              label: Read More Label
              description: "Type in the label for the 'Read More' button."
              placeholder: 'Read More...'

            article.display.read_more.css:
              type: input.selectize
              label: Button CSS Classes
              description: "CSS class name for the 'Read More' button."

        _tab_extras:
          label: Extras
          fields:
            article.display.author.enabled:
              type: select.select
              label: Author
              description: Select if the article author should be shown.
              default: show
              options:
                show: Show
                '': Hide

            article.display.category.enabled:
              type: select.select
              label: Category
              description: Select if and how the article category should be shown.
              default: link
              options:
                show: Show
                link: Show with Link
                '': Hide

            article.display.hits.enabled:
              type: select.select
              label: Hits
              description: Select if the article hits should be shown.
              default: show
              options:
                show: Show
                '': Hide

    css.class:
      type: input.selectize
      label: CSS Classes
      description: CSS class name for the particle.

    extra:
      type: collection.keyvalue
      label: Tag Attributes
      description: Extra Tag attributes.
      key_placeholder: 'Key (data-*, style, ...)'
      value_placeholder: Value
      exclude: ['id', 'class']
