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
See Announcement
We are still working on the Joomla update.
Fabrik ajaxfied link popup is a div injected via JS
So, simply put, instead of having a Fabrik ajaxified link injecting the content into a modal, you could have it doing so elsewhere with your own code.... I think pretty the same what you want to do with list_X.js ...
Have you asked @juuser? Obviously, he knows what he's talking about, and as per his signature he is...In case, if anyone is interested to do this as a paid job, please PM me with the quote.
Providing services related to Joomla and Fabrik development. PM for details!
1) Create custom list template with two divs side by side. On the left there would be the list rendering code and on the right add details view with Fabrik content plugin.
2) In list_xx.js add click event to catch a click on the list's row.
3) Get the id of the clicked row.
4) Within the same click event add user ajax which sends rowid to function in user_ajax.php
5) In user_ajax. php get the values of all your needed elements with a query and send these back to user ajax function.
6) And then in the ajax done or success function update all the values in details view with jQuery.
$mydb = JFactory::getDBO();
$app = JFactory::getApplication();
$input = $app->input;
$row_id = $input->get('row_id', '');
$mydb->setQuery("SELECT element1, element2, ... FROM tablename WHERE id = ".$mydb->Quote($row_id));
$myrow = $mydb->loadRow();
$element1 = $myrow['0'];
$element2 = $myrow['1'];
...
//add to array
$myarray[] = array (
"element1" => $element1,
"element2" => $element2,
...
);
//json encode and send back
echo json_encode($myarray);
jQuery.ajax({
url: 'index.php?option=com_fabrik&format=raw&task=plugin.userAjax&method=YourUserAjaxFunctionName&row_id='+myrowid,
type: "GET",
success: function(myresponse) {
var obj = jQuery.parseJSON(myresponse);
element1 = obj[0].element1;
element2 = obj[0].element2;
jQuery("#tablename___element1_ro").text(element1);
jQuery("#tablename___element2_ro").text(element2);
}
});
$app = JFactory::getApplication();
$input = $app->input;
$row_id = $input->get('row_id', '')
$db = JFactory::getDbo();
$query = $db
->getQuery(true)
->select(array('element1','element2'))
->from($db->quoteName('tablename'))
->where($db->quoteName('id') . " = " . $db->quote($row_id));
$db->setQuery($query);
$result = $db->loadObject();
echo json_encode($result);
jQuery.ajax({
url: 'index.php?option=com_fabrik&format=raw&task=plugin.userAjax&method=YourUserAjaxFunctionName&row_id='+row_id,
type: "GET",
success: function(myresponse) {
var obj = jQuery.parseJSON(myresponse);
jQuery('#tablename___element1_ro').html(obj.element1);
jQuery('#tablename___element2_ro').html(obj.element2);
}
});