Commit | Line | Data |
---|---|---|
6a488035 TO |
1 | <?php |
2 | /* | |
3 | +--------------------------------------------------------------------+ | |
39de6fd5 | 4 | | CiviCRM version 4.6 | |
6a488035 | 5 | +--------------------------------------------------------------------+ |
06b69b18 | 6 | | Copyright CiviCRM LLC (c) 2004-2014 | |
6a488035 TO |
7 | +--------------------------------------------------------------------+ |
8 | | This file is a part of CiviCRM. | | |
9 | | | | |
10 | | CiviCRM is free software; you can copy, modify, and distribute it | | |
11 | | under the terms of the GNU Affero General Public License | | |
12 | | Version 3, 19 November 2007 and the CiviCRM Licensing Exception. | | |
13 | | | | |
14 | | CiviCRM is distributed in the hope that it will be useful, but | | |
15 | | WITHOUT ANY WARRANTY; without even the implied warranty of | | |
16 | | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. | | |
17 | | See the GNU Affero General Public License for more details. | | |
18 | | | | |
19 | | You should have received a copy of the GNU Affero General Public | | |
20 | | License and the CiviCRM Licensing Exception along | | |
21 | | with this program; if not, contact CiviCRM LLC | | |
22 | | at info[AT]civicrm[DOT]org. If you have questions about the | | |
23 | | GNU Affero General Public License or the licensing of CiviCRM, | | |
24 | | see the CiviCRM license FAQ at http://civicrm.org/licensing | | |
25 | +--------------------------------------------------------------------+ | |
26 | */ | |
27 | ||
28 | /** | |
29 | * | |
30 | * @package CRM | |
06b69b18 | 31 | * @copyright CiviCRM LLC (c) 2004-2014 |
6a488035 TO |
32 | * $Id$ |
33 | * | |
34 | */ | |
35 | ||
36 | /** | |
73538697 | 37 | * Output navigation script tag |
6a488035 TO |
38 | * |
39 | * @param array $params | |
40 | * - is_default: bool, true if this is normal/default instance of the menu (which may be subject to CIVICRM_DISABLE_DEFAULT_MENU) | |
41 | * @param object $smarty the Smarty object | |
42 | * | |
43 | * @return string HTML | |
44 | */ | |
45 | function smarty_function_crmNavigationMenu($params, &$smarty) { | |
73538697 | 46 | $config = CRM_Core_Config::singleton(); |
6a488035 TO |
47 | //check if logged in user has access CiviCRM permission and build menu |
48 | $buildNavigation = !CRM_Core_Config::isUpgradeMode() && CRM_Core_Permission::check('access CiviCRM'); | |
49 | if (defined('CIVICRM_DISABLE_DEFAULT_MENU') && CRM_Utils_Array::value('is_default', $params, FALSE)) { | |
50 | $buildNavigation = FALSE; | |
51 | } | |
73538697 CW |
52 | if ($config->userFrameworkFrontend) { |
53 | $buildNavigation = FALSE; | |
54 | } | |
6a488035 TO |
55 | if ($buildNavigation) { |
56 | $session = CRM_Core_Session::singleton(); | |
57 | $contactID = $session->get('userID'); | |
58 | if ($contactID) { | |
73538697 CW |
59 | // These params force the browser to refresh the js file when switching user, domain, or language |
60 | // We don't put them as a query string because some browsers will refuse to cache a page with a ? in the url | |
73538697 CW |
61 | // @see CRM_Admin_Page_AJAX::getNavigationMenu |
62 | $lang = $config->lcMessages; | |
63 | $domain = CRM_Core_Config::domainID(); | |
64 | $key = CRM_Core_BAO_Navigation::getCacheKey($contactID); | |
43e0b589 | 65 | $src = CRM_Utils_System::url("civicrm/ajax/menujs/$contactID/$lang/$domain/$key"); |
c3bcf6ba CW |
66 | // CRM-15493 QFkey needed for quicksearch bar - must be unique on each page refresh so adding it directly to markup |
67 | $qfKey = CRM_Core_Key::get('CRM_Contact_Controller_Search', TRUE); | |
68 | return '<script id="civicrm-navigation-menu" type="text/javascript" src="' . $src . '" data-qfkey=' . json_encode($qfKey) . '></script>'; | |
6a488035 TO |
69 | } |
70 | } | |
71 | return ''; | |
72 | } |