settings.php 42 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974
  1. <?php
  2. error_reporting (E_ALL ^ E_NOTICE);
  3. try {
  4. $config = parse_ini_file('settings.ini.php', true);
  5. } catch(Exception $e) {
  6. die('<b>Unable to read settings.ini.php. Did you rename it from example.ini.php?</b><br><br>Error message: ' .$e->getMessage());
  7. }
  8. $html = "https://github.com/causefx/iDashboard-PHP/releases/latest";
  9. $doc = new DOMDocument();
  10. libxml_use_internal_errors(true);
  11. $doc->loadHTMLFile($html);
  12. libxml_use_internal_errors(false);
  13. $xpath = new DomXpath($doc);
  14. $githubChanges = $xpath->query('//div[@class="markdown-body"]//p')->item(0)->nodeValue;
  15. $githubVersion = $xpath->query('//span[@class="css-truncate-target"]')->item(0)->nodeValue;
  16. if(!isset($githubVersion)){
  17. $githubVersion = "null";
  18. }
  19. if(!isset($githubChanges)){
  20. $githubChanges = "null";
  21. }
  22. $currentVersion = "1.082";
  23. foreach ($config as $keyname => $section) {
  24. if(($keyname == "general")) {
  25. $cookiepass = $section["password"];
  26. $backgroundColor = $section["tabcolor"];
  27. }
  28. }
  29. if($currentVersion == $githubVersion){
  30. $alertColor = "info";
  31. $alertTitle = "Up-To-Date!";
  32. $alertText = "Nice, no worries here, you're on the current version :)";
  33. }elseif($githubVersion == "null"){
  34. $alertColor = "warning";
  35. $alertTitle = "Can't Get GitHub Version!";
  36. $alertText = "The Dashboard Failed to check for update! We need to have php-xml enabled.";
  37. }elseif($currentVersion < $githubVersion){
  38. $alertColor = "success";
  39. $alertTitle = "New Version Is Out!";
  40. $alertText = "Looks like it's time to update the dashboard. <a class=\"btn btn-success btn-sm\" href=\"https://github.com/causefx/iDashboard-PHP/archive/master.zip\" role=\"button\">Download Now</a> <button type=\"button\" class=\"btn btn-success btn-sm\" data-toggle=\"modal\" data-target=\"#changes\">View Changes</button>";
  41. }
  42. if($_COOKIE["logged"] !== $cookiepass){
  43. echo "<!DOCTYPE html>";
  44. echo "<head>";
  45. echo "<title>Form submitted</title>";
  46. echo "<script type='text/javascript'>window.location.replace('setup.php');</script>";
  47. echo "</head>";
  48. echo "<body></body></html>";
  49. die;
  50. }
  51. if(isset($_GET["action"])){$action = $_GET["action"];}
  52. if($action == "logout"){
  53. if (isset($_COOKIE['logged'])) {
  54. unset($_COOKIE['logged']);
  55. setcookie('logged', '', time() - 3600, '/');
  56. }
  57. sleep(.5);
  58. echo "<!DOCTYPE html>";
  59. echo "<head>";
  60. echo "<title>Logout</title>";
  61. echo "<script type='text/javascript'>window.parent.location.reload();</script>";
  62. echo "</head>";
  63. echo "<body></body></html>";
  64. }
  65. if($action == "dontbugme"){
  66. setcookie("dontbugme", "true", time() + (86400 * 365), "/");
  67. sleep(.5);
  68. echo "<!DOCTYPE html>";
  69. echo "<head>";
  70. echo "<title>Dont bug me scrub</title>";
  71. echo "<script type='text/javascript'>window.location.replace('settings.php');</script>";
  72. echo "</head>";
  73. echo "<body></body></html>";
  74. }
  75. function write_ini_file($content, $path) {
  76. if (!$handle = fopen($path, 'w')) {
  77. return false;
  78. }
  79. $success = fwrite($handle, $content);
  80. fclose($handle);
  81. return $success;
  82. }
  83. $configfile = 'settings.ini.php';
  84. if(array_key_exists('category-0', $_POST) == true){
  85. foreach ($config as $keyname => $section) { if(($keyname == "general")) { $nopass = $section["password"]; } }
  86. if(empty($_POST["password-0"])){ $_POST["password-0"] = $nopass;}
  87. if(strlen($_POST["password-0"]) < 50){ $_POST["password-0"] = password_hash($_POST["password-0"], PASSWORD_DEFAULT); }
  88. setcookie("logged", $_POST["password-0"], time() + (86400 * 7), "/");
  89. $sampleData .= '; <?php die("Access denied"); ?>' . "\r\n";
  90. $getGroup = 0;
  91. foreach ($_POST as $parameter => $value) {
  92. $splitParameter = explode('-', $parameter);
  93. if ($value == "on")
  94. $value = "true";
  95. if($splitParameter[0] == "group"){
  96. if($value > $getGroup){
  97. $getGroup++;
  98. }
  99. }
  100. if($splitParameter[0] == "category"){
  101. $sampleData .= "[" . $value . "]\r\n";
  102. }else{
  103. $sampleData .= $splitParameter[0] . " = \"" . $value . "\"\r\n";
  104. }
  105. }
  106. //$sampleData .= "[groups]\r\n";
  107. $sampleData .= "groups = \"" . $getGroup . "\"\r\n";
  108. if($action == "write"){
  109. write_ini_file($sampleData, $configfile);
  110. sleep(.5);
  111. echo "<!DOCTYPE html>";
  112. echo "<head>";
  113. echo "<title>Form submitted</title>";
  114. echo "<script type='text/javascript'>window.parent.location.reload();</script>";
  115. echo "</head>";
  116. echo "<body></body></html>";
  117. }
  118. }
  119. ?>
  120. <!doctype html>
  121. <html>
  122. <head>
  123. <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
  124. <meta name="apple-mobile-web-app-capable" content="yes" />
  125. <meta name="mobile-web-app-capable" content="yes" />
  126. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  127. <meta name="msapplication-tap-highlight" content="no" />
  128. <link rel="shortcut icon" href="favicon.ico" type="image/ico"/>
  129. <link rel='stylesheet prefetch' href='https://maxcdn.bootstrapcdn.com/bootstrap/3.3.2/css/bootstrap.min.css'>
  130. <link rel='stylesheet prefetch' href='https://maxcdn.bootstrapcdn.com/font-awesome/4.3.0/css/font-awesome.min.css'>
  131. <!-- Bootstrap -->
  132. <link rel="stylesheet" href="css/bootstrap.min.css"/>
  133. <!-- Font Awesome -->
  134. <link rel="stylesheet" href="css/font-awesome.min.css"/>
  135. <!-- Bootstrap-Iconpicker -->
  136. <link rel="stylesheet" href="css/bootstrap-iconpicker.min.css"/>
  137. <!--test-->
  138. <link href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css" rel="stylesheet">
  139. <link href="css/bootstrap-colorpicker.min.css" rel="stylesheet">
  140. <!--end test-->
  141. <style>
  142. body {
  143. margin: 10px;
  144. background-color: <?=$backgroundColor;?>;
  145. }
  146. .well {
  147. background-color: white;
  148. }
  149. .fa {
  150. min-width: 14px;
  151. }
  152. .form-inline .form-control,
  153. .form-inline .btn {
  154. margin-bottom: 8px;
  155. }
  156. .form-group {
  157. width: 100%;
  158. }
  159. input[type=checkbox].css-checkbox {
  160. position:absolute; z-index:-1000; left:-1000px; overflow: hidden; clip: rect(0 0 0 0); height:1px; width:1px; margin:-1px; padding:0; border:0;
  161. }
  162. input[type=checkbox].css-checkbox + label.css-label {
  163. padding-left:55px;
  164. height:30px;
  165. display:inline-block;
  166. line-height:30px;
  167. background-repeat:no-repeat;
  168. background-position: 0 0;
  169. font-size:14px;
  170. vertical-align:middle;
  171. cursor:pointer;
  172. }
  173. input[type=checkbox].css-checkbox:checked + label.css-label {
  174. background-position: 0 -30px;
  175. }
  176. label.css-label {
  177. background-image:url(img/check.png);
  178. -webkit-touch-callout: none;
  179. -webkit-user-select: none;
  180. -khtml-user-select: none;
  181. -moz-user-select: none;
  182. -ms-user-select: none;
  183. user-select: none;
  184. }
  185. hr {
  186. display: block;
  187. height: 1px;
  188. border: 0;
  189. border-top: 1px solid #ccc;
  190. margin: 1em 0 auto;
  191. padding: 0;
  192. }
  193. </style>
  194. </head>
  195. <body>
  196. <div class="alert alert-<?=$alertColor;?> alert-dismissible fade in" role="alert">
  197. <button type="button" class="close" data-dismiss="alert" aria-label="Close">
  198. <span aria-hidden="true">&times;</span>
  199. </button>
  200. <strong><?=$alertTitle;?></strong> <?=$alertText;?>
  201. </div>
  202. <form action="?action=write" method="post" name="adminForm" class="form-inline">
  203. <?php if($_COOKIE["dontbugme"] !== "true"){
  204. echo "<div class=\"alert alert-warning\">";
  205. echo "<a href=\"#\" class=\"close\" data-dismiss=\"alert\" aria-label=\"close\">&times;</a>";
  206. echo "<strong>Tip!</strong> Choose an option from below to change some settings. <strong><a href=\"?action=dontbugme\">Dont Remind Me Again!</a></strong></div>";
  207. }?>
  208. <div class="btn-group btn-group-justified">
  209. <div class="btn-group"><button data-toggle="collapse" data-target="#general" type="button" class="btn btn-primary">General</button></div>
  210. <div class="btn-group"><button data-toggle="collapse" data-target="#color" type="button" class="btn btn-primary">Colors</button></div>
  211. <div class="btn-group"><button data-toggle="collapse" data-target="#tabs" type="button" class="btn btn-primary">Tabs</button></div>
  212. <div class="btn-group"><a href="?action=logout" class="btn btn-warning" role="button">Logout</a></div>
  213. <div class="btn-group"><button type="submit" class="btn btn-success">Save</button></div>
  214. </div>
  215. <?php foreach ($config as $keyname => $section) {
  216. if(($keyname == "general")) {
  217. echo "<div id=\"general\" class=\"collapse\">";
  218. echo "<div class=\"form-group clearfix well well-sm\" style=\"padding-bottom: 0px;p adding-top: 10px; margin-bottom: 5px; background-color: $versionColor\"><span class=\"btn btn-inactive \" type=\"button\"><span class=\"fa fa-server\"></span></span> Current Version:[<strong>$currentVersion</strong>] - GitHub Version: [<strong>" . $githubVersion . "</strong>]</div> <br>";
  219. echo "<div class=\"form-group clearfix well well-sm\" style=\"padding-bottom: 0px; padding-top: 10px; margin-bottom: 5px;\">";
  220. echo "<input type=\"hidden\" name=\"category-0\" class=\"form-control\" value=\"general\">";
  221. echo "<input type=\"hidden\" name=\"version-0\" class=\"form-control\" value=\"$currentVersion\">";
  222. echo "<span class=\"btn btn-inactive \" type=\"button\"><span class=\"fa fa-cog\"></span></span> ";
  223. echo "<div style=\"margin-bottom: 8px\" class=\"input-group\"><div class=\"input-group-addon\">Title</div>";
  224. echo "<input style=\"margin-bottom: 0px\" type=\"text\" name=\"title-0\" class=\"form-control\" value=\"" . $section["title"] ."\"></div> ";
  225. echo "<div style=\"margin-bottom: 8px\" class=\"input-group\"><div class=\"input-group-addon\">Password</div>";
  226. echo "<input style=\"margin-bottom: 0px\" type=\"password\" name=\"password-0\" class=\"form-control\" placeholder=\"Leave Blank if no change\" value=\"\"></div> ";
  227. if($section['useicons'] == "true"){echo "<input type=\"checkbox\" name=\"useicons-0\" id=\"useicons-0\" class=\"css-checkbox\" checked> ";}else {echo "<input type=\"checkbox\" name=\"useicons-0\" id=\"useicons-0\" class=\"css-checkbox\"> ";}
  228. echo "<label for=\"useicons-0\" class=\"css-label\">Icons</label> ";
  229. if($section['usemargins'] == "true"){echo "<input type=\"checkbox\" name=\"usemargins-0\" id=\"usemargins-0\" class=\"css-checkbox\" checked> ";}else {echo "<input type=\"checkbox\" name=\"usemargins-0\" id=\"usemargins-0\" class=\"css-checkbox\"> ";}
  230. echo "<label for=\"usemargins-0\" class=\"css-label\">Margins</label> </div></div>";
  231. echo"<div id=\"color\" class=\"collapse\">";
  232. echo "<div class=\"form-group clearfix well well-sm\" style=\"padding-bottom: 0px;p adding-top: 10px; margin-bottom: 5px;\">";
  233. echo "<span class=\"btn btn-inactive \" type=\"button\"><span class=\"fa fa-eyedropper\"></span></span> ";
  234. echo "<div style=\"margin-bottom: 8px\" id=\"bg\" class=\"input-group colorpicker-component\"><div class=\"input-group-addon\">Bg&nbsp;</div>";
  235. echo "<input style=\"margin-bottom: 0px\" id=\"bgText\" name=\"bg-0\" type=\"text\" data-format=\"hex\" value=\"" . $section["bg"] ."\" class=\"form-control\"/>";
  236. echo "<span class=\"input-group-addon\"><i></i></span>";
  237. echo "</div> ";
  238. echo "<div style=\"margin-bottom: 8px\" id=\"tabborder\" class=\"input-group colorpicker-component\"><div class=\"input-group-addon\">Tab Border</div>";
  239. echo "<input style=\"margin-bottom: 0px\" id=\"tabborderText\" name=\"tabborder-0\" type=\"text\" data-format=\"hex\" value=\"" . $section["tabborder"] ."\" class=\"form-control\"/>";
  240. echo "<span class=\"input-group-addon\"><i></i></span>";
  241. echo "</div> ";
  242. echo "<div style=\"margin-bottom: 8px\" id=\"tabhighlight\" class=\"input-group colorpicker-component\"><div class=\"input-group-addon\">Tab Highlight</div>";
  243. echo "<input style=\"margin-bottom: 0px\" id=\"tabhighlightText\" name=\"tabhighlight-0\" type=\"text\" data-format=\"hex\" value=\"" . $section["tabhighlight"] ."\" class=\"form-control\"/>";
  244. echo "<span class=\"input-group-addon\"><i></i></span>";
  245. echo "</div> ";
  246. echo "<br><span class=\"btn btn-inactive \" type=\"button\"><span class=\"fa fa-paint-brush\"></span></span> ";
  247. echo "<div style=\"margin-bottom: 8px\" id=\"tabcoloractive\" class=\"input-group colorpicker-component\"><div class=\"input-group-addon\">Tab</div>";
  248. echo "<input style=\"margin-bottom: 0px\" id=\"tabcoloractiveText\" name=\"tabcoloractive-0\" type=\"text\" data-format=\"hex\" value=\"" . $section["tabcoloractive"] ."\" class=\"form-control\"/>";
  249. echo "<span class=\"input-group-addon\"><i></i></span>";
  250. echo "</div> ";
  251. echo "<div style=\"margin-bottom: 8px\" id=\"fontcoloractive\" class=\"input-group colorpicker-component\"><div class=\"input-group-addon\">Font Color</div>";
  252. echo "<input style=\"margin-bottom: 0px\" id=\"fontcoloractiveText\" name=\"fontcoloractive-0\" type=\"text\" data-format=\"hex\" value=\"" . $section["fontcoloractive"] ."\" class=\"form-control\"/>";
  253. echo "<span class=\"input-group-addon\"><i></i></span>";
  254. echo "</div> ";
  255. echo "<div style=\"margin-bottom: 8px\" id=\"tabshadowactive\" class=\"input-group colorpicker-component\"><div class=\"input-group-addon\">Tab &nbsp;Shadow</div>";
  256. echo "<input style=\"margin-bottom: 0px\" id=\"tabshadowactiveText\" name=\"tabshadowactive-0\" type=\"text\" data-format=\"hex\" value=\"" . $section["tabshadowactive"] ."\" class=\"form-control\"/>";
  257. echo "<span class=\"input-group-addon\"><i></i></span>";
  258. echo "</div> ";
  259. echo "<br><span class=\"btn btn-inactive disabled\" type=\"button\"><span class=\"fa fa-paint-brush\"></span></span> ";
  260. echo "<div style=\"margin-bottom: 8px\" id=\"tabcolor\" class=\"input-group colorpicker-component\"><div class=\"input-group-addon\">Tab</div>";
  261. echo "<input style=\"margin-bottom: 0px\" id=\"tabcolorText\" name=\"tabcolor-0\" type=\"text\" data-format=\"hex\" value=\"" . $section["tabcolor"] ."\" class=\"form-control\"/>";
  262. echo "<span class=\"input-group-addon\"><i></i></span>";
  263. echo "</div> ";
  264. echo "<div style=\"margin-bottom: 8px\" id=\"fontcolor\" class=\"input-group colorpicker-component\"><div class=\"input-group-addon\">Font Color</div>";
  265. echo "<input style=\"margin-bottom: 0px\" id=\"fontcolorText\" name=\"fontcolor-0\" type=\"text\" data-format=\"hex\" value=\"" . $section["fontcolor"] ."\" class=\"form-control\"/>";
  266. echo "<span class=\"input-group-addon\"><i></i></span>";
  267. echo "</div> ";
  268. echo "<div style=\"margin-bottom: 8px\" id=\"tabshadow\" class=\"input-group colorpicker-component\"><div class=\"input-group-addon\">Tab &nbsp;Shadow</div>";
  269. echo "<input style=\"margin-bottom: 0px\" id=\"tabshadowText\" name=\"tabshadow-0\" type=\"text\" data-format=\"hex\" value=\"" . $section["tabshadow"] ."\" class=\"form-control\"/>";
  270. echo "<span class=\"input-group-addon\"><i></i></span>";
  271. echo "</div></div> ";
  272. echo "<div class=\"form-group clearfix well well-sm\" style=\"padding-bottom: 0px;p adding-top: 10px; margin-bottom: 5px;\">";
  273. echo "<span class=\"btn btn-inactive \" type=\"button\"><span class=\"fa fa-eye\"></span></span> ";
  274. echo "<button onclick=\"defaultTheme()\" class=\"btn btn-default\">Default</button> ";
  275. echo "<button onclick=\"plexTheme()\" class=\"btn btn-info\" style=\"background-color: #cc7c2a; border-color: #975c20;\">Plex</button> ";
  276. echo "<button onclick=\"Theme1()\" class=\"btn btn-info\">Theme 1</button> ";
  277. echo "<button onclick=\"Theme2()\" class=\"btn btn-success\">Theme 2</button> ";
  278. echo "<button onclick=\"Theme3()\" class=\"btn btn-warning\">Theme 3</button> ";
  279. echo "<button onclick=\"Theme4()\" class=\"btn btn-primary\">Theme 4</button> ";
  280. echo "<button onclick=\"Theme5()\" class=\"btn btn-danger\">Theme 5</button> ";
  281. echo "</div> </div>";
  282. }
  283. }?>
  284. <div id="tabs" class="collapse">
  285. <div class="btn-group"><button data-toggle="collapse" data-target="#groupnames" type="button" class="btn btn-primary">Edit Group Names</button></div>
  286. <div id="tagsForm" class="sortable">
  287. <?php $i = 0;
  288. foreach ($config as $keyname => $section) {
  289. if(($keyname !== "general") && ($keyname !== "groups")) {
  290. if(!isset($section['group'])){
  291. $section['group'] = "1";
  292. }?>
  293. <div class="form-group clearfix well well-sm" style="padding-bottom: 0px; padding-top: 10px; margin-bottom: 5px;">
  294. <span class="btn btn-default move" type="button"><span class="fa fa-arrows"></span></span>
  295. <div style="margin-bottom: 8px" class="input-group">
  296. <div class="input-group-addon">Name</div>
  297. <input style="margin-bottom: 0px" type="text" name="category-<?=$i;?>" class="form-control" value="<?=$keyname;?>">
  298. </div>
  299. <div style="margin-bottom: 8px" class="input-group">
  300. <div class="input-group-addon">URL</div>
  301. <input style="margin-bottom: 0px" type="text" name="url-<?=$i;?>" class="form-control" placeholder="url" value="<?=$section['url']?>">
  302. </div>
  303. <div style="margin-bottom: 8px" class="input-group">
  304. <div class="input-group-addon">Group</div>
  305. <input style="margin-bottom: 0px; width: 35px" type="text" name="group-<?=$i;?>" class="form-control" placeholder="1" value="<?=$section['group']?>">
  306. </div>
  307. <button data-placement="left" data-cols="5" data-rows="5" class="btn btn-default" name="icon-<?=$i;?>" role="iconpicker" data-iconset="fontawesome" data-icon="<?=$section['icon']?>"></button>
  308. <?php if($section['default'] == "true"){echo '<input type="radio" name="default" checked>';}else {echo '<input type="radio" name="default">';}?> <label> Default</label>
  309. <?php if($section['enabled'] == "true"){echo '<input type="checkbox" name="enabled-' . $i .'" id="enabled-' . $keyname . '" class="css-checkbox" checked>';}else {echo '<input type="checkbox" name="enabled-' . $i .'" id="enabled-' . $keyname . '" class="css-checkbox">';}?>
  310. <label for="enabled-<?=$keyname;?>" class="css-label">Enabled</label>
  311. <?php if($section['guest'] == "true"){echo '<input type="checkbox" name="guest-' . $i .'" id="guest-' . $keyname . '" class="css-checkbox" checked>';}else {echo '<input type="checkbox" name="guest-' . $i .'" id="guest-' . $keyname . '" class="css-checkbox">';}?>
  312. <label for="guest-<?=$keyname;?>" class="css-label">Guest</label> &nbsp;&nbsp;
  313. <button style="float: right;" class="btn btn-danger deleteGroup" id="remScnt" type="button"><span class="fa fa-trash"></span></button>
  314. </div>
  315. <?php }
  316. $i++;
  317. }?>
  318. </div>
  319. <div id="groupnames" class="collapse">
  320. <input type="hidden" name="category-x" class="form-control" value="groups">
  321. <?php
  322. $alphabet = range('A', 'Z');
  323. //echo $alphabet[3]; // returns D
  324. //echo array_search('D', $alphabet); // returns 3
  325. foreach ($config as $keyname => $section) {
  326. if(($keyname == "groups")) {
  327. if($section['groups'] > count($section)){
  328. echo "<div class=\"form-group clearfix well well-sm\" style=\"padding-bottom: 0px; padding-top: 10px; margin-bottom: 5px;\">";
  329. foreach(range(1,$section['groups']) as $index) {
  330. echo "<span class=\"btn btn-inactive \" type=\"button\"><span class=\"fa fa-folder-open\"></span></span> ";
  331. echo "<div style=\"margin-bottom: 8px\" class=\"input-group\"><div class=\"input-group-addon\">Group-". $alphabet[$index - 1] . "</div>";
  332. echo "<input style=\"margin-bottom: 0px\" type=\"text\" name=\"group" . $alphabet[$index - 1] . "-xx\" class=\"form-control\" value=\"" . $section["title"] . "\"></div> <br>";
  333. }
  334. echo "</div>";
  335. }else{
  336. echo "<div class=\"form-group clearfix well well-sm\" style=\"padding-bottom: 0px; padding-top: 10px; margin-bottom: 5px;\">";
  337. foreach(range(1,$section['groups']) as $index) {
  338. $groupLetter = $alphabet[$index - 1];
  339. echo "<span class=\"btn btn-inactive \" type=\"button\"><span class=\"fa fa-folder-open\"></span></span> ";
  340. echo "<div style=\"margin-bottom: 8px\" class=\"input-group\"><div class=\"input-group-addon\">Group-" . $index . "</div>";
  341. echo "<input style=\"margin-bottom: 0px\" type=\"text\" name=\"group" . $groupLetter . "-xx\" class=\"form-control\" value=\"" . $section["group$groupLetter"] . "\"></div> <br>";
  342. }
  343. echo "</div>";
  344. }
  345. }
  346. }?>
  347. </div>
  348. <div class="form-group clearfix">
  349. <button class="btn btn-primary" id="addScnt" type="button"><span class="fa fa-plus"></span></button>
  350. <button class="btn btn-success" type="submit"> Save Settings </button>
  351. </div>
  352. </div>
  353. </form>
  354. <div class="modal fade" id="changes" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
  355. <div class="modal-dialog" role="document">
  356. <div class="modal-content">
  357. <div class="modal-header">
  358. <button type="button" class="close" data-dismiss="modal" aria-label="Close">
  359. <span aria-hidden="true">×</span>
  360. </button>
  361. <h4 class="modal-title" id="myModalLabel">New Changes/Fixes</h4>
  362. </div>
  363. <div class="modal-body">
  364. <?=$githubChanges;?>
  365. </div>
  366. <div class="modal-footer">
  367. <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
  368. </div>
  369. </div>
  370. </div>
  371. </div>
  372. <script type="text/javascript" src="https://code.jquery.com/jquery-1.4.3.min.js"></script>
  373. <script>
  374. $(function () {
  375. $('#tabcoloractive').colorpicker({
  376. format: "hex",
  377. align: "left",
  378. colorSelectors: {
  379. '#777777': '#777777',
  380. '#337ab7': '#337ab7',
  381. '#5cb85c': '#5cb85c',
  382. '#5bc0de': '#5bc0de',
  383. '#f0ad4e': '#f0ad4e',
  384. '#d9534f': '#d9534f'
  385. }
  386. });
  387. });
  388. </script>
  389. <script>
  390. $(function () {
  391. $('#fontcoloractive').colorpicker({
  392. format: "hex",
  393. align: "left",
  394. colorSelectors: {
  395. '#777777': '#777777',
  396. '#337ab7': '#337ab7',
  397. '#5cb85c': '#5cb85c',
  398. '#5bc0de': '#5bc0de',
  399. '#f0ad4e': '#f0ad4e',
  400. '#d9534f': '#d9534f'
  401. }
  402. });
  403. });
  404. </script>
  405. <script>
  406. $(function () {
  407. $('#tabcolor').colorpicker({
  408. format: "hex",
  409. align: "left",
  410. colorSelectors: {
  411. '#777777': '#777777',
  412. '#337ab7': '#337ab7',
  413. '#5cb85c': '#5cb85c',
  414. '#5bc0de': '#5bc0de',
  415. '#f0ad4e': '#f0ad4e',
  416. '#d9534f': '#d9534f'
  417. }
  418. });
  419. });
  420. </script>
  421. <script>
  422. $(function () {
  423. $('#fontcolor').colorpicker({
  424. format: "hex",
  425. align: "left",
  426. colorSelectors: {
  427. '#777777': '#777777',
  428. '#337ab7': '#337ab7',
  429. '#5cb85c': '#5cb85c',
  430. '#5bc0de': '#5bc0de',
  431. '#f0ad4e': '#f0ad4e',
  432. '#d9534f': '#d9534f'
  433. }
  434. });
  435. });
  436. </script>
  437. <script>
  438. $(function () {
  439. $('#tabshadowactive').colorpicker({
  440. format: "hex",
  441. align: "left",
  442. colorSelectors: {
  443. '#777777': '#777777',
  444. '#337ab7': '#337ab7',
  445. '#5cb85c': '#5cb85c',
  446. '#5bc0de': '#5bc0de',
  447. '#f0ad4e': '#f0ad4e',
  448. '#d9534f': '#d9534f'
  449. }
  450. });
  451. });
  452. </script>
  453. <script>
  454. $(function () {
  455. $('#tabshadow').colorpicker({
  456. format: "hex",
  457. align: "left",
  458. colorSelectors: {
  459. '#777777': '#777777',
  460. '#337ab7': '#337ab7',
  461. '#5cb85c': '#5cb85c',
  462. '#5bc0de': '#5bc0de',
  463. '#f0ad4e': '#f0ad4e',
  464. '#d9534f': '#d9534f'
  465. }
  466. });
  467. });
  468. </script>
  469. <script>
  470. $(function () {
  471. $('#tabborder').colorpicker({
  472. format: "hex",
  473. align: "left",
  474. colorSelectors: {
  475. '#777777': '#777777',
  476. '#337ab7': '#337ab7',
  477. '#5cb85c': '#5cb85c',
  478. '#5bc0de': '#5bc0de',
  479. '#f0ad4e': '#f0ad4e',
  480. '#d9534f': '#d9534f'
  481. }
  482. });
  483. });
  484. </script>
  485. <script>
  486. $(function () {
  487. $('#bg').colorpicker({
  488. format: "hex",
  489. align: "left",
  490. colorSelectors: {
  491. '#777777': '#777777',
  492. '#337ab7': '#337ab7',
  493. '#5cb85c': '#5cb85c',
  494. '#5bc0de': '#5bc0de',
  495. '#f0ad4e': '#f0ad4e',
  496. '#d9534f': '#d9534f'
  497. }
  498. });
  499. });
  500. </script>
  501. <script>
  502. $(function () {
  503. $('#tabhighlight').colorpicker({
  504. format: "hex",
  505. align: "left",
  506. colorSelectors: {
  507. '#777777': '#777777',
  508. '#337ab7': '#337ab7',
  509. '#5cb85c': '#5cb85c',
  510. '#5bc0de': '#5bc0de',
  511. '#f0ad4e': '#f0ad4e',
  512. '#d9534f': '#d9534f'
  513. }
  514. });
  515. });
  516. </script>
  517. <script type='text/javascript'>
  518. $(function() {
  519. var scntDiv = $('#tagsForm');
  520. var i = <?=$i?>;
  521. $('#addScnt').on('click', function() {
  522. $('<div class="form-group clearfix ui-sortable-handle well well-sm" style="padding-bottom: 0px; padding-top: 10px; margin-bottom: 5px;"> <span class="btn btn-default move" type="button"><span class="fa fa-arrows"></span></span> <div style="margin-bottom: 8px" class="input-group"><div class="input-group-addon">Name</div><input style="margin-bottom: 0px" name="category-' + i +'" class="form-control" placeholder="Tag" value="New Tab"></div> <div style="margin-bottom: 8px" class="input-group"><div class="input-group-addon">URL</div><input style="margin-bottom: 0px" type="text" name="url-' + i +'" class="form-control" placeholder="url" value="Add URL"></div> <div style="margin-bottom: 8px" class="input-group"><div class="input-group-addon">Group</div><input style="margin-bottom: 0px; width: 35px" type="text" name="group-' + i +'" class="form-control" placeholder="1" value="1"></div> <button data-placement="left" data-cols="5" data-rows="5" class="btn btn-default iconpicker" name="icon-' + i +'" role="iconpicker" data-iconset="fontawesome" data-icon="fa-question"><i class="fa fa-play-circle-o"></i><input type="hidden" name="icon-' + i +'" value="fa-play-circle-o"><span class="caret"></span></button> <input type="radio" name="default"> <label> Default</label><input type="checkbox" name="enabled-' + i +'" id="enabled-' + i +'" class="css-checkbox" checked> <label for="enabled-' + i +'" class="css-label">Enabled</label> <input type="checkbox" name="guest-' + i +'" id="guest-' + i +'" class="css-checkbox"> <label for="guest-' + i +'" class="css-label">Guest</label> <button style="float: right" class="btn btn-danger deleteGroup" id="remScnt" type="button"><span class="fa fa-trash"></span></button></div>').appendTo(scntDiv);
  523. i++;
  524. return false;
  525. });
  526. $(document).on('click','#remScnt', function() {
  527. $(this).closest('div').remove();
  528. i--;
  529. return false;
  530. });
  531. });
  532. </script>
  533. <script>
  534. function defaultTheme() {
  535. document.getElementById("bgText").value = "#f2f2f2";
  536. document.getElementById("tabborderText").value = "#cecece";
  537. document.getElementById("tabhighlightText").value = "#f44343";
  538. document.getElementById("tabcoloractiveText").value = "#ffffff";
  539. document.getElementById("fontcoloractiveText").value = "#f44343";
  540. document.getElementById("tabshadowactiveText").value = "#808080";
  541. document.getElementById("tabcolorText").value = "#ffffff";
  542. document.getElementById("fontcolorText").value = "#000000";
  543. document.getElementById("tabshadowText").value = "#c7c6c6";
  544. }
  545. </script>
  546. <script>
  547. function Theme1() {
  548. document.getElementById("bgText").value = "#d1d1d1";
  549. document.getElementById("tabborderText").value = "#ffffff";
  550. document.getElementById("tabhighlightText").value = "#5bc0de";
  551. document.getElementById("tabcoloractiveText").value = "#ffffff";
  552. document.getElementById("fontcoloractiveText").value = "#000000";
  553. document.getElementById("tabshadowactiveText").value = "#777777";
  554. document.getElementById("tabcolorText").value = "#5bc0de";
  555. document.getElementById("fontcolorText").value = "#ffffff";
  556. document.getElementById("tabshadowText").value = "#777777";
  557. }
  558. </script>
  559. <script>
  560. function Theme2() {
  561. document.getElementById("bgText").value = "#d1d1d1";
  562. document.getElementById("tabborderText").value = "#ffffff";
  563. document.getElementById("tabhighlightText").value = "#5cb85c";
  564. document.getElementById("tabcoloractiveText").value = "#ffffff";
  565. document.getElementById("fontcoloractiveText").value = "#000000";
  566. document.getElementById("tabshadowactiveText").value = "#777777";
  567. document.getElementById("tabcolorText").value = "#5cb85c";
  568. document.getElementById("fontcolorText").value = "#ffffff";
  569. document.getElementById("tabshadowText").value = "#777777";
  570. }
  571. </script>
  572. <script>
  573. function Theme3() {
  574. document.getElementById("bgText").value = "#d1d1d1";
  575. document.getElementById("tabborderText").value = "#ffffff";
  576. document.getElementById("tabhighlightText").value = "#f0ad4e";
  577. document.getElementById("tabcoloractiveText").value = "#ffffff";
  578. document.getElementById("fontcoloractiveText").value = "#000000";
  579. document.getElementById("tabshadowactiveText").value = "#777777";
  580. document.getElementById("tabcolorText").value = "#f0ad4e";
  581. document.getElementById("fontcolorText").value = "#ffffff";
  582. document.getElementById("tabshadowText").value = "#777777";
  583. }
  584. </script>
  585. <script>
  586. function Theme4() {
  587. document.getElementById("bgText").value = "#d1d1d1";
  588. document.getElementById("tabborderText").value = "#ffffff";
  589. document.getElementById("tabhighlightText").value = "#337ab7";
  590. document.getElementById("tabcoloractiveText").value = "#ffffff";
  591. document.getElementById("fontcoloractiveText").value = "#000000";
  592. document.getElementById("tabshadowactiveText").value = "#777777";
  593. document.getElementById("tabcolorText").value = "#337ab7";
  594. document.getElementById("fontcolorText").value = "#ffffff";
  595. document.getElementById("tabshadowText").value = "#777777";
  596. }
  597. </script>
  598. <script>
  599. function Theme5() {
  600. document.getElementById("bgText").value = "#d1d1d1";
  601. document.getElementById("tabborderText").value = "#ffffff";
  602. document.getElementById("tabhighlightText").value = "#d9534f";
  603. document.getElementById("tabcoloractiveText").value = "#ffffff";
  604. document.getElementById("fontcoloractiveText").value = "#000000";
  605. document.getElementById("tabshadowactiveText").value = "#777777";
  606. document.getElementById("tabcolorText").value = "#d9534f";
  607. document.getElementById("fontcolorText").value = "#ffffff";
  608. document.getElementById("tabshadowText").value = "#777777";
  609. }
  610. </script>
  611. <script>
  612. function plexTheme() {
  613. document.getElementById("bgText").value = "#8b8b8b";
  614. document.getElementById("tabborderText").value = "#1f1f1f";
  615. document.getElementById("tabhighlightText").value = "#cc7c2a";
  616. document.getElementById("tabcoloractiveText").value = "#f5bc32";
  617. document.getElementById("fontcoloractiveText").value = "#000000";
  618. document.getElementById("tabshadowactiveText").value = "#808080";
  619. document.getElementById("tabcolorText").value = "#1f1f1f";
  620. document.getElementById("fontcolorText").value = "#ffffff";
  621. document.getElementById("tabshadowText").value = "#c7c6c6";
  622. }
  623. </script>
  624. <script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js'></script>
  625. <script src='https://code.jquery.com/ui/1.11.2/jquery-ui.min.js'></script>
  626. <script>$( "#tagsForm" ).sortable({connectWith: ".sortable"});</script>
  627. <!-- jQuery -->
  628. <script type="text/javascript" src="js/jquery-1.10.2.min.js"></script>
  629. <!-- Bootstrap -->
  630. <script type="text/javascript" src="js/bootstrap.min.js"></script>
  631. <!-- Bootstrap-Iconpicker Iconset for Font Awesome -->
  632. <script type="text/javascript" src="js/iconset-fontawesome-4.2.0.min.js"></script>
  633. <!-- Bootstrap-Iconpicker -->
  634. <script type="text/javascript" src="js/bootstrap-iconpicker.min.js"></script>
  635. <script src="https://code.jquery.com/jquery-2.2.2.min.js"></script>
  636. <script src="js/bootstrap-colorpicker.js"></script>
  637. </body>
  638. </html>