source: admin-center-alpha/var/www/admin-center/main.php @ 7

Last change on this file since 7 was 7, checked in by mabarracus, 3 years ago

Ported code admin-center-alpha from trusty

File size: 6.0 KB
Line 
1<?php
2/* Load all modules i "modules" folder */
3$modules=array_diff(scandir("modules"), array('..', '.'));
4echo ("<html><meta charset='UTF-8'></meta>");
5writeHeaders($modules);
6echo ("<body>");
7
8/* Setting layout */
9echo('<div id="topBar">');
10  writeTop();
11echo('</div>');
12
13echo ('<div id="leftMenu">');
14  /* Writing menus with all modules and submodules */
15  /* it returns a list of files to include (components) */
16  $components=writeMenu($modules);
17echo ("</div>");
18
19echo ('<div id="moduleContainer">'); /* Main Space for modules content */
20  importModuleContent($modules, $components);
21echo ("</div>");
22
23importCommonLibraries();
24importModuleLibraries($modules);
25importCommonScripts();
26importModuleScripts($modules);
27echo ("</body>");
28echo ("</html>");
29
30/*  Main Functions */
31
32function writeTop(){
33//echo ('<div class="navbar-toggle collapse in data-toggle="collapse" id="menu-toggle-2"><i class="fa fa-bars fa-2x"></i></div>');
34
35  echo ("<h1 class='toptitle'>Administra el servidor</h1>");
36}
37
38function writeHeaders($mod){
39  ?>
40  <head>
41    <!-- Common Styles -->
42    <link rel="stylesheet" href="css/main.css">
43    <link rel="stylesheet" href="css/sidebar-menu.css">
44    <link rel="stylesheet" href="lib/font-awesome-4.4.0/css/font-awesome.min.css">
45
46    <link rel="stylesheet" href="lib/bootstrap/css/bootstrap.min.css">
47    <link rel="stylesheet" href="lib/bootstrap-design/css/ripples.min.css">
48    <link rel="stylesheet" href="lib/bootstrap-design/css/material.min.css">
49    <link rel="stylesheet" href="lib/bootstrap-design/css/material-fullpalette.min.css">
50
51
52    <!-- Reading module styles -->
53    <?php
54      foreach ($mod as $module){
55        $css=array_diff(scandir("modules/$module/src/css"), array('..', '.'));
56        foreach ($css as $style){
57          echo ("<link rel='stylesheet' href='modules/$module/src/css/$style'>");
58        }
59      }
60    ?>
61  </head>
62<?php } ?>
63
64<?php
65function importModuleContent($modules, $components){
66
67  echo "<div class='moduleWindow' id='info' style='display: block'>";
68    require("info.php");
69  echo "</div>";
70
71  foreach ($modules as $module){
72    echo "<div class='moduleWindow' id='$module'>";
73      require("modules/$module/src/main.html");
74    echo "</div>";
75    // Loading  components in module
76    }
77
78    foreach ($components as $component){
79      echo "<div class='moduleWindow' id='$component[0]'>";
80        require($component['1']);
81      echo "</div>";
82    }
83}
84?>
85
86<?php
87function importCommonLibraries(){
88  echo ('<!-- Common Libraries -->');
89  echo ('<script type="text/javascript" src="lib/jquery-2.1.0.min.js"></script>');
90  echo ('<script type="text/javascript" src="lib/jquery.xmlrpc.js"></script>');
91
92  echo ('<script type="text/javascript" src="lib/bootstrap/js/bootstrap.min.js"></script>');
93  echo ('<script type="text/javascript" src="lib/bootstrap-design/js/ripples.min.js"></script>');
94  echo ('<script type="text/javascript" src="lib/bootstrap-design/js/material.min.js"></script>');
95};
96
97
98function importModuleLibraries($modules){
99  /*<!-- Reading module Libraries -->
100
101  <!-- TO-DO:
102    Plantejar si fer-ho recursivament (per a llibreries tipus allò que s'instal·la dins
103    de node-modules o si cada mòdul que tinga una llista de llibreries i la seua ruta).
104    Així podriem "combinar" les diferents llibreries...
105  -->*/
106
107  foreach ($modules as $module){
108    if(is_dir("modules/$module/src/lib")){
109      $scripts=array_diff(scandir("modules/$module/src/lib"), array('..', '.'));
110      foreach ($scripts as $script){
111        echo ("<script type='text/javascript' src='modules/$module/src/lib/$script'></script>");
112      }
113    }
114  }
115};
116
117
118function importCommonScripts(){
119  /* Common Scripts */
120        echo('<script type="text/javascript" src="js/main.js"></script>');
121  echo('<script type="text/javascript" src="js/sidebar_menu.js"></script>');
122};
123
124function importModuleScripts($modules){
125  /* Reading module Scripts */
126  foreach ($modules as $module){
127    $scripts=array_diff(scandir("modules/$module/src/js"), array('..', '.'));
128    foreach ($scripts as $script){
129      echo ("<script type='text/javascript' src='modules/$module/src/js/$script'></script>");
130    }
131  }
132}
133
134?>
135
136<?php
137
138function WriteMenu($modules){
139  $modulefilelist=array();
140  ?>
141  <!-- http://seegatesite.com/create-simple-cool-sidebar-menu-with-bootstrap-3/ -->
142
143    <div id="wrapper" class="toggled-2">
144        <!-- Sidebar -->
145        <div id="sidebar-wrapper">
146            <ul class="sidebar-nav nav-pills nav-stacked" id="menu">
147              <?php
148                  foreach($modules as $moduleFile){
149
150                    //echo ("<li><a>".$module."</a></li>");
151                    $moduleManifestString = file_get_contents("modules/".$moduleFile."/module.json");
152                    $module=(json_decode($moduleManifestString, TRUE));
153                    /*$jsonIterator = new RecursiveIteratorIterator(
154                        new RecursiveArrayIterator(json_decode($moduleManifestString, TRUE)),*/
155
156                        echo ("<li><a class='menuitem' target='$moduleFile'><span class='fa-stack fa-lg pull-left'><i class='fa fa-th-large fa-stack-1x'></i></span>".$module["name"]."</a>");
157                        if (count($module["components"]>0)){
158                          echo ('<ul class="nav-pills nav-stacked" style="list-style-type:none;">');
159                          foreach($module["components"] as $component){
160                            echo('<li><a class="menuitem" target="'.$component['id'].'"><span class="fa-stack fa-lg pull-left"><i class="fa fa-external-link fa-stack-1x"></i></span>'.$component["menuEntry"].'</a></li>');
161                            // Add to list for import
162                            $moduleComponent=array($component['id'], "modules/".$moduleFile."/src/".$component['main']);
163                            array_push($modulefilelist, $moduleComponent);
164                          }
165                          echo ('</ul>');
166                        }
167                        echo ("</li>");
168                  }
169              ?>
170            </ul>
171        </div>
172    </div>
173
174
175<?php
176  return $modulefilelist;
177} ?>
Note: See TracBrowser for help on using the repository browser.