Commit | Line | Data |
---|---|---|
6a488035 TO |
1 | <?php |
2 | /* | |
3 | +--------------------------------------------------------------------+ | |
232624b1 | 4 | | CiviCRM version 4.4 | |
6a488035 TO |
5 | +--------------------------------------------------------------------+ |
6 | | Copyright CiviCRM LLC (c) 2004-2013 | | |
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 | |
31 | * @copyright CiviCRM LLC (c) 2004-2013 | |
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 | |
61 | // We end the string with .js to trick apache mods into sending pro-caching headers | |
62 | // @see CRM_Admin_Page_AJAX::getNavigationMenu | |
63 | $lang = $config->lcMessages; | |
64 | $domain = CRM_Core_Config::domainID(); | |
65 | $key = CRM_Core_BAO_Navigation::getCacheKey($contactID); | |
66 | $src = CRM_Utils_System::url("civicrm/ajax/menujs/$contactID/$lang/$domain/$key.js"); | |
67 | return '<script type="text/javascript" src="' . $src . '"></script>'; | |
6a488035 TO |
68 | } |
69 | } | |
70 | return ''; | |
71 | } |