Example #1
0
 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;
 }
Example #3
0
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();