Facebook with ABPro 3.0.3
Sorry, Facebook changed a bunch of rules and ABPro no longer works with it.
This How-To only apples to ABPro 3.0.3 and 3.0.4 (betas, prior to RC 1)
ABPro 3.0.3 and above make heavy use of jQuery for all AJAX server calls.
Facebook has specific requirements for apps that use JQuery. This How-To shows changes required to have ABPro meet Facebook's approval.
Booking screen
Edit the view file: \components\com_rsappt_pro3\views\booking_screen_gad\tmpl\default_fb.php
First change the JQuery that is loaded
Around line 517 look for:
<script language="JavaScript" src="/<?php echo JURI::base( true );?>/components/com_rsappt_pro3/date.js"></script>
<script language="JavaScript" src="/<?php echo JURI::base( true );?>/components/com_rsappt_pro3/script.js"></script>
<script language="JavaScript" src="/<?php echo JURI::base( true );?>/components/com_rsappt_pro3/CalendarPopup.js"></script>
<script language="JavaScript" src="/<?php echo JURI::base( true );?>/components/com_rsappt_pro3/jquery.validate.min.js"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.4/jquery.min.js"></script>
<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
Change to:
<script language="JavaScript" src="/<?php echo JURI::base( true );?>/components/com_rsappt_pro3/date.js"></script>
<script language="JavaScript" src="/<?php echo JURI::base( true );?>/components/com_rsappt_pro3/script.js"></script>
<script language="JavaScript" src="/<?php echo JURI::base( true );?>/components/com_rsappt_pro3/CalendarPopup.js"></script>
<!--<script language="JavaScript" src="/<?php echo JURI::base( true );?>/components/com_rsappt_pro3/jquery.validate.min.js"></script>-->
<!--<link rel="stylesheet" href="//code.jquery.com/ui/1.10.3/themes/smoothness/jquery-ui.css">-->
<!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.10.4/jquery.min.js"></script>-->
<!--<script src="//code.jquery.com/ui/1.10.4/jquery-ui.js"></script>-->
<!-- Facebook wants this..-->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
Add script to call FB init after page is fully loaded
Around line 600 look for and add red code:
jQuery(document).ready(function () {
jQuery.ajaxSetup({ cache: true });
jQuery.getScript('//connect.facebook.net/en_UK/all.js', function(){
FB.init({
appId: 'YOUR APP ID HERE',
});
jQuery('#loginbutton,#feedbutton').removeAttr('disabled');
//FB.getLoginStatus(updateStatusCallback);
});
window.onload = function() {
if(document.getElementById("resources")!=null){
if(document.getElementById("resources").options.length==2){
document.getElementById("resources").options[1].selected=true;
changeResource();
} else {
changeResource();
}
}
<?php if($single_category_mode){ ?>
document.getElementById("category_id").options[1].selected=true;
changeCategory();
<?php } ?>
submit_section_show_hide("hide")
}
});
My Bookings screen
Edit file: \components\com_rsappt_pro3\views\mybookings\tmpl\default_fb.php
Around line 224 look for and add red code:
<script language="JavaScript" src="/<?php echo JURI::base( true );?>/components/com_rsappt_pro3/CalendarPopup.js"></script>
<!-- Facebook wants this..-->
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<script>
jQuery(document).ready(function () {
jQuery.ajaxSetup({ cache: true });
jQuery.getScript('//connect.facebook.net/en_UK/all.js', function(){
FB.init({
appId: 'YOUR APP ID HERE',
});
jQuery('#loginbutton,#feedbutton').removeAttr('disabled');
//FB.getLoginStatus(updateStatusCallback);
});
});
</script>
<script language="JavaScript">
var cal = new CalendarPopup( <?php echo $div_cal ?>);