1. Fabrik 3.7 is now available. This version contains critical security updates, please update as soon as possible. Please remember to backup your site before updating, we also recommend testing your updates on development sites if possible.
  2. We had to restore the site around midday (CST) on Wed 7/26 from a backup approximately 8 hours old. So a few posts in the forums were lost. You may want to check to see if you need to re-post anything.
  3. The release of Fabrik for J! 3.8 is not yet ready. Do not update your sites to J! 3.8 until this notice is removed.

Migrating from J 2.x / Fabrik 3.0

redirected from Upgrading from 3.0 to 3.1+ (redirect)

May 19, 2016
Migrating from J 2.x / Fabrik 3.0

  • Upgrade instructions(top)


    As always backup your site files and database before starting!

    There are no structure database changes between Fabrik 3.0 and 3.4+.
    "Fabrik3.4+" is referring to the latest Fabrik version, 3.4.3 at time of writing (May 2016)

    Fabrik3.4+ can't be installed on Joomla2.5.x, so
    • disable the Fabrik System Plugin (in Extensions/Plugins)
    • update Joomla to 3.5.1 (May 2016)
    • not necessary but recommended: rename the existing Fabrik list and form template folders (components/com_fabrik/view/xxx/tmpl to e.g. components/com_fabrik/view/xxx_old/tmpl)
    Install Fabrik3.4+ (download from http://fabrikar.com/download or install via ExtentionManager/Install from web).

    If you are running a GitHub update grab the most recent Fabrik 3.4+ files from https://github.com/Fabrik/fabrik/tree/joomla3 - by clicking on the "download zip" button.
    You can then ftp those files to your site.

    Enable Fabrik System Plugin (if still disabled).

    Breaking change:(top)

    • Element JavaScript - we now encode the JavaScript events when we save the element. So you will need to edit and save any elements which use JavaScript actions. Tip: to quickly identify which elements have Javascript events, issue the following sql on your database (I use MijoSql from JED)
      SELECT DISTINCT element_id FROM #__fabrik_jsactions ORDER BY element_id ASC
    • Form/List JavaScript - Please ensure you use the Fabrik JavaScript template outlined here
    • Dates - we have moved to use PHP's date()format options to keep in line with a change in Joomla's date handling. You should edit your date elements and update their formatting options. Alternatively you can try this (use at own risk): (Remark: this will only remove % from date format, but there have to be some more changes, e.g.%H:%M -->H:i etc)
      Code (Text):
      <?php
      $db = JFactory::getDBO();
      // Get the site configuration and make a db connection
      $Config = new JConfig();
      $connection = mysql_connect($Config->host,$Config->user, $Config->password);
      mysql_select_db($Config->db,$connection);

      /* List all the date type elements */
      $query = $db->getQuery(true);
      $query
          ->select('*')
          ->from('#__fabrik_elements')
          ->where('plugin="date"');
      $db->setQuery($query);
      $elements = $db->loadObjectList();  
      if ( empty($elements) ) {
          echo "There are no date elements";
      } else {
      }
      $properties = array("date_table_format",
              "date_form_format",
              "date_time_format",
              );
      /* Run through each element and update the formats by stripping the % */
      foreach($elements as $element) {
          $data = json_decode($element->params);
          if (!isset($data) || empty($data))
              continue;
          foreach ($properties as $property) {
              if (property_exists($data, $property))
                  $data->$property = str_replace("%", "", $data->$property);
          }
          /* renecode the data and write to the db */
          $element->params = json_encode($data);
          $query = $db->getQuery(true);
          $query
              ->update('#__fabrik_elements')
              ->set('params="' . mysql_real_escape_string($element->params,$connection) .'"' )
              ->where('id=' . $element->id);
          $db->setQuery($query);
          $db->execute();
      }
      ?>
    • Templates:
      • If you are updating to Joomla3 rename components/com_fabrik/views/list/tmpl to e.g. components/com_fabrik/views/tmpl_old (same with form) so that you won't get tmpl-folders including old F3.0 and new F3.2 templates
      • Fabrik is providing new templates using bootstrap (list: bootstrap, div; form/details: bootstrap, bootstrap_tabs)
      • Details view template are now in their own folder: components/com_fabrik/views/details/tmpl (or tmpl25 see below...)
      • So if you have selected specific templates in either
        • menu items
        • the list/form admin page
        • the module admin page
        • a content plug-in declaration
          Then you should edit and alter the templates
      • If you are still using Joomla 2.5 (with Fabrik3.2 only): the old core Fabrik3.0.x templates can be found in components/com_fabrik/views/xxx/tmpl25

    New Requirements(top)

    Sometimes there have been issues with different system plugins.
    So it's recommended to disable the Fabrik system plugin (Extensions/PluginManager), then update to Joomla3.x, then enable the Fabrik system plugin again.

    Know issues/manually to change (Dec. 2014), please add any others(top)

    • Element settings in general: Edit/Add access
    • Textarea element: truncation
    • Custom PHP code (in scripts or php code fields):
      • _formData --> formData

    Example script to update date and element settings via manual scheduled task(top)

    upgrade30to32.zip
    unzip
    copy upgrade30to32.php to your-site\plugins\fabrik_cron\php\scripts\
    create a Fabrik scheduled task, type php
    select any table, select this script

    Per default it will do a testrun with debug output but without DB changes (see script for details).

    Example DB queries(top)

    http://www.fabrikar.com/forums/inde...-for-upgrading-from-f-3-0-x-to-f-3-3-x.41692/
  • Loading...