public static function list_available() { $themes = glob(NAVIGATE_PATH . '/themes/*/*.theme'); for ($t = 0; $t < count($themes); $t++) { $theme_json = @json_decode(@file_get_contents($themes[$t])); debug_json_error($themes[$t]); // if debug is enabled, show last json error $code = substr($themes[$t], strrpos($themes[$t], '/') + 1); $code = substr($code, 0, strpos($code, '.theme')); $themes[$t] = ''; if (!empty($theme_json)) { $themes[$t] = array('code' => $code, 'title' => $theme_json->title, 'version' => $theme_json->version); } } $themes = array_filter($themes); sort($themes); return $themes; }
public static function list_installed($type = '', $ignore_permissions = true) { global $website; global $DB; global $user; $extensions = glob(NAVIGATE_PATH . '/plugins/*/*.plugin'); $updates = @$_SESSION['extensions_updates']; $enabled = array(); $DB->query(' SELECT extension, enabled FROM nv_extensions WHERE website = ' . protect($website->id), 'array'); $rs = $DB->result(); foreach ($rs as $row) { $properties[$row['extension']] = array('enabled' => intval($row['enabled'])); } $allowed_extensions = array(); // empty => all of them if (!$ignore_permissions) { if (method_exists($user, "permission")) { $allowed_extensions = $user->permission("extensions.allowed"); } } for ($t = 0; $t < count($extensions); $t++) { $extension_json = @json_decode(@file_get_contents($extensions[$t])); debug_json_error($extensions[$t]); // if debug is enabled, show last json error $code = substr($extensions[$t], strrpos($extensions[$t], '/') + 1); $code = substr($code, 0, strpos($code, '.plugin')); if (!empty($allowed_extensions) && !in_array($code, $allowed_extensions)) { $extensions[$t] = null; continue; } if (!empty($extension_json)) { $extensions[$t] = (array) $extension_json; if (!empty($type) && $extensions[$t]['type'] != $type) { $extensions[$t] = ''; continue; } if (substr($extensions[$t]['description'], 0, 1) == '@') { $tmp = new extension(); $tmp->load($code); $extensions[$t]['description'] = $tmp->t($extensions[$t]['description']); } $extensions[$t]['code'] = $code; $extensions[$t]['update'] = version_compare($updates[$code], $extensions[$t]['version']) > 0 ? $updates[$code] : ''; if (isset($properties) && isset($properties[$code])) { $extensions[$t]['enabled'] = $properties[$code]['enabled'] === 0 ? '0' : '1'; } else { $extensions[$t]['enabled'] = '1'; } } } if (!is_array($extensions)) { $extensions = array(); } $extensions = array_filter($extensions); sort($extensions); return $extensions; }
define('NVWEB_ABSOLUTE', $nvweb_absolute); define('NVWEB_OBJECT', $nvweb_absolute . '/object'); // prepare layout $layout = new layout('navigate'); $layout->add_content('<div class="navigate-top"></div>'); $layout->navigate_logo(); $layout->navigate_session(); $layout->navigate_title(); $menu_html = $menu_layout->generate_html(); // load website theme if (!empty($website->theme)) { $theme = new theme(); $theme->load($website->theme); if (!empty($website->theme) && empty($theme->title)) { $layout->navigate_notification(t(439, 'Error loading theme') . ' ' . $website->theme, true); debug_json_error($website->theme . ': JSON ERROR '); } } $layout->add_content('<div id="navigate-menu">' . $menu_html . '</div>'); $content = core_run(); $layout->navigate_footer(); $layout->add_content('<div id="navigate-content" class="navigate-content ui-corner-all">' . $content . '</div>'); $layout->navigate_additional_scripts(); // print layout if (!isset($_GET['mute'])) { if (!APP_DEBUG && headers_sent()) { ob_start("ob_gzhandler"); } echo $layout->generate(); if (!APP_DEBUG) { ob_end_flush();