We have now opened a commercial services section here on the forum for registered users. If you have a Fabrik project that you wish to have someone work on for you, post it under Help Wanted. If you are an application developer and wish to earn some money helping others, post your details under Fabrik Application Developers.
Both of these are unmoderated. It will be up to both parties to work out the details and come to an agreement.
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
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);
}
});