// Add global settings
$settings = array('config' => array(
'ajaxPopupsEnabled' => $this->ajaxPopupsEnabled,
+ 'isFrontend' => $config->userFrameworkFrontend,
));
// Disable profile creation if user lacks permission
if (!CRM_Core_Permission::check('edit all contacts') && !CRM_Core_Permission::check('add contacts')) {
*/
(function($, CRM, undefined) {
/**
- * Almost like {crmURL} but on the client side
- * eg: var url = CRM.url('civicrm/contact/view', {reset:1,cid:42});
- * or: $('a.my-link').crmURL();
+ * @param string p - url
+ * @param string|object params
+ * @param string mode - optionally specify "front" or "back"
*/
- var tplURL = '/civicrm/example?placeholder';
- var urlInitted = false;
- CRM.url = function (p, params) {
+ var tplURL;
+ CRM.url = function (p, params, mode) {
if (p == "init") {
- tplURL = params;
- urlInitted = true;
- return;
+ return tplURL = params;
}
- if (!urlInitted) {
+ if (!tplURL) {
console && console.log && console.log('Warning: CRM.url called before initialization');
}
+ if (!mode) {
+ mode = CRM.config.isFrontend ? 'front' : 'back';
+ }
params = params || '';
var frag = p.split ('?');
- var url = tplURL.replace("civicrm/example", frag[0]);
+ var url = tplURL[mode].replace("civicrm/example", frag[0]);
if (typeof(params) == 'string') {
url = url.replace("placeholder", params);
{rdelim}
// Initialize CRM.url and CRM.formatMoney
- CRM.url('init', '{crmURL p="civicrm/example" q="placeholder" h=0}');
+ CRM.url('init', {ldelim}back: '{crmURL p="civicrm/example" q="placeholder" h=0 fb=1}', front: '{crmURL p="civicrm/example" q="placeholder" h=0 fe=1}'{rdelim});
CRM.formatMoney('init', {$moneyFormat});
// Localize select2