• Payment Plugins Poll

    We need your feedback on the need for updated payment plugins. Please go here and give us your feedback.

  • Joomla 5.1

    For running J!5.1 you must install Fabrik 4.1
    See also Announcements

  • Subscription and download (Fabrik 4.1 for J!4.2+ and J!5.1) are working now

    See Announcement
    Please post subscription questions and issues here

    We have resolved the issue with the J! updater and this will be fixed in the next release.

  • Update & Changlog URL Fixer

    At the present time the update site URL for Fabrik is incorrect in all installations up to and including 4.1. This will be corrected in 4.2, however, if you wish to update Fabrik via the J! Updater you can download and install this plugin.

    This file is installed just like any other extension through the J! Extension Installation panel. It will not however actually install anything. Its sole purpose is to fix the Update Site and Changlog URL's. Once done it will simply exit.

    As always, we recommend you perform a site backup priot to installation.

Birthday element

  • Views Views: 14,681
  • Last updated Last updated:


      Access element (+)
      Birthday element
      Button element
      Calculation element
      Captcha element
      Checkbox element
      Colour Picker element
      Count element (+)
      Database join element
      Date element
      Digg element
      Display text element
      Dropdown element
      Facebook Like element
      Field element
      File Upload element
      Folder element
      Google Map element
      Image element
         Image databese join
      Internal id element
      IP element
      J!Date element
      Kaltura element
      Link element
      Notes element
      OpenStreetMap element
      Picklist element
      Radio Button element
      Rating element
      Sequence element
      Slider element
      Tags element
      Textarea element
      Thumbs element
      Time element
      Timer element
      Timestamp element
      Total element
      User element
      User group element
      Video element
      View level element
      YesNo element
      Youtube element
      Akismet validation
      Is Email validation
      Is Not validation
      Is Numeric validation
      Not empty validation
      PHP validation
      Rsa id
  • Introduction​

    The birthday element provides three dropdowns enabling users to select a date (which may or may not be their birthday!)


    Options - Labels​


    • Day label - The label for the day drop down
    • Month label - The label for the month drop down.
    • Year label - The label for the year drop down.

    Options - form​


    • List generation method- Defines how the year dropdown list is populated.
      • Number of years - how many previous years should the dropdown contains. E.g. if 100 entered and this year is 2013, then there will be 100 Options with the oldest year being 1913
      • Since year - Enter the oldest year at which the select list will start from in 'Number of years /start year'
    • Number of years / start year - Value to define the oldest year to show in the year select list. See 'List generation method' for examples of what can be used in this field.
    • Years forward / backward - Define an offset for the most recent year to show in the year select list. The default is 0, that means the list ends with current year. Negative number means years backward, e.g -10 means in 2012 that the list ends with year 2002

    Options - details​


    • Date format - the format to use for the date when showing in the details view
    • Append age - should the date's age also be appended to the date.

    Options - list​


    • Date format - The date format to use when rendering the date in the list view
    • Age / anniversary- Choose whether to append the age or an anniversary to the date.
      • Only date - don't append the age
      • Show only the age / anniversary without date
      • or how to combine age/anv with dates.
      • Combinations of dates use the same date format, which you have previously selected
    • Save empty dates as null - Sometimes is useful that 'no date' means NULL value in database, sometimes you may prefer null dates ('0000-00-00'). <br />YES is recommended when you use Fabrik to work with another component's data, e.g EventList where empty date MUST BE NULL. <br />NO is recommended when this element is in joined repeated group AND shown in list view in merged mode AND you submit/edit its data using this list's original form. When you have earlier submitted empty data and you decide to change this option then you should resave them to get '0000-00-00' instead of NULL or vice versa.

    A brief tutorial​

    List view of people and their birthdays (anniversaries) is present, the format / detail views as well. But how to show the list next year's jubilees?

    1) Make a copy of the existing Fabrik table
    2) in your new table, find the Birthday element which shows the birthday's. Open it and remove the link to the parent element. Now you can change the properties of that element.
    3) in 'List View: age / anniversary' select 'Next year's anniversaries'
    Now your new table shows all at all bd-s/anv-s what bd/anv would be next year and also their birth dates (format depends of your chosen date format). Example: 44 (23.06.1967) Jubilarian's bd/anv is highlighted (bold text). Example: 500 (June 23, 1511)

    OK, but you only want jubilarians?
    In this case, you need to add a pre-filter to this table view: 'tables_pk' 'IN', 'SELECT FROM table WHERE tables_pk SUBSTRING ((YEAR (DATE_ADD (CURDATE (), INTERVAL 1 YEAR)) - YEAR (anv_field)), -2) IN ('00' , '10 ', '20', '25 ', '30', '40 ', '50', '60 ', '70', '75 ', '80', '90 ')' and as value type select 'Query'.


    Check if older than 18​


    $bd = new DateTime();
    $bits = explode('-', $data);
    $year = JArrayHelper::getValue($bits, 0, '');
    $month = JArrayHelper::getValue($bits, 1, '');
    $day = JArrayHelper::getValue($bits, 2, '');
    $bd->setDate($year, $month, $day);
    $limit = new DateTime();
    $limit->sub(new DateInterval('P18Y'));
    return $bd <= $limit;