For running J!5.1 you must https://fabrikar.com/forums/index.php?wiki/update-from-github/ or include the new file manually https://fabrikar.com/forums/index.php?threads/joomla-5-1-and-fabrik-cannot-find-files-error.54473/post-285151 See also Announcements
Please see our announcement here.
normalizeAttachmentsWithinRepeatableGroups:function() {
var containers = document.getElements('.fabrikSubGroup .plupload_container'), toNormalize = {}, key, keys = [];
for (var i = 0, n = containers.length; i < n; i++) {
key = containers[i].getParent('.fabrikSubGroupElements').getElement('.plg-internalid input').get('name');
key = key.split('[')[0];
if (typeof toNormalize[key] == 'undefined') {
toNormalize[key] = [];
keys.push(key);
}
toNormalize[key].push(containers[i]);
}
var els, name, j, k, ji, ki;
for (var i = 0, n = keys.length; i < n; i++) {
for (j = 0, k = toNormalize[keys[i]].length; j < k; j++) {
els = toNormalize[keys[i]][j].getParent('.fabrikSubElementContainer').getElements('input[type=hidden]');
for (ji = 0, ki = els.length; ji < ki; ji++) {
name = els[ji].get('name').replace('[]', '['+j+']');
els[ji].set('name', name);
}
}
}
}
public function onAfterProcess() {
$model = $this->getModel();
$els = array();
$tbls = array();
$parents = array();
foreach ($model->groups as $group) {
if ($group->canRepeat()) {
foreach ($group->elements as $element) {
if ($element instanceof PlgFabrik_ElementFileupload) {
$join = $group->getJoinModel()->getJoin()->table_join;
$name = $join.'___'.$element->getElement()->name;
$els[] = $name;
$name = $join.'_repeat_'.$element->getElement()->name;
$tbls[] = $name;
$name = $join.'___id';
$parents[] = $name;
}
}
}
}
$db = JFactory::getDbo();
$query = $db->getQuery(true);
foreach ($parents as $i => $parent) {
if (!isset($_POST[$parent]) || !is_array($_POST[$parent])) {
continue;
}
foreach ($_POST[$parent] as $repeatCounter => $parentId) {
$tbl = $tbls[$i];
$query->clear()->delete($tbl)->where('parent_id = '.$parentId);
$db->setQuery($query)->execute();
if (!isset($_POST[$els[$i]]) || !isset($_POST[$els[$i]][$repeatCounter]) || !is_array($_POST[$els[$i]][$repeatCounter])) continue;
$repeatInstance = $_POST[$els[$i]][$repeatCounter];
if (empty($repeatInstance) || !is_array($repeatInstance)) continue;
$repeatInstance = $repeatInstance['id'];
if (empty($repeatInstance) || !is_array($repeatInstance)) continue;
$files = array();
foreach ($repeatInstance as $file => $val) {
$files[] = $parentId.','.$db->quote($file);
}
if (empty($files)) continue;
$query->clear();
$query->
insert($tbl)->
columns(array('parent_id', 'attachment'))->
values($files)
;
$db->setQuery($query)->execute();
}
}
}