settings.php 42 KB

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