Profile
MAJ is an Open Source, PHP-based content management system (CMS) that can be deployed as a blog, bulletin or message board, Internet forum, and wiki. It is extensible via PHP panels and is HTML5 and CSS3 ready.
Git
This blob has been accessed 893 times via Git panel.

  1. <?php
  2.  
  3. require("core.php");
  4.  
  5. if (isset($_SESSION['logged_in']) and ($_SESSION['user_agent'] != $_SERVER['HTTP_USER_AGENT'])) {
  6.         header("Location: login.php");
  7. }
  8.  
  9. $login_username = file_get_contents("$maj_data_directory/username.txt");
  10.  
  11. if (!isset($_SESSION['logged_in']) or ($_SESSION['logged_in'] != $login_username)) {
  12.         exit();
  13. }
  14.  
  15. if (isset($_POST['new_id']) and !empty($_POST['new_id']) and isset($_POST['new_title']) and !empty($_POST['new_title']) and isset($_POST['new_content']) and !empty($_POST['new_content']) and !file_exists("$maj_data_directory/panels/{$_POST['new_id']}")) {
  16.  
  17.         if (!file_exists("$maj_data_directory/panels")) {
  18.                 mkdir("$maj_data_directory/panels");
  19.         }
  20.  
  21.         $new_id = trim(strip_tags(mb_strtolower(str_replace(" ", "_", $_POST['new_id']))));
  22.  
  23.         if (!file_exists("$maj_data_directory/panels/$new_id")) {
  24.                 mkdir("$maj_data_directory/panels/$new_id");
  25.         }
  26.  
  27.         $new_title = ucfirst(strip_tags(trim($_POST['new_title'])));
  28.         $open_title_file = fopen("$maj_data_directory/panels/$new_id/title.txt","w");
  29.         fwrite($open_title_file,$new_title);
  30.         fclose($open_title_file);
  31.  
  32.         $panel_content = ucfirst(trim($_POST['new_content']));
  33.        
  34.         $new_content_file = fopen("$maj_data_directory/panels/$new_id/panel.php","w");
  35.         fwrite($new_content_file,$panel_content);
  36.         fclose($new_content_file);
  37. }
  38.  
  39. if ((!isset($_POST['panel_hide']) or empty($_POST['panel_hide'])) and ($_POST['panel_edit'] == "on")) {
  40.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/private.txt")) {
  41.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/private.txt");
  42.         }
  43. }
  44.  
  45. if (isset($_POST['panel_hide']) and !empty($_POST['panel_hide']) and ($_POST['panel_hide'] == "on")) {
  46.         if (!file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/private.txt")) {
  47.                 touch("$maj_data_directory/panels/{$_POST['panel_id']}/private.txt");
  48.         }
  49. }
  50.  
  51. if ((!isset($_POST['panel_noquery']) or empty($_POST['panel_noquery'])) and ($_POST['panel_edit'] == "on")) {
  52.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/noquery.txt")) {
  53.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/noquery.txt");
  54.         }
  55. }
  56.  
  57. if (isset($_POST['panel_noquery']) and !empty($_POST['panel_noquery']) and ($_POST['panel_noquery'] == "on")) {
  58.         if (!file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/noquery.txt")) {
  59.                 touch("$maj_data_directory/panels/{$_POST['panel_id']}/noquery.txt");
  60.         }
  61. }
  62.  
  63. if ((!isset($_POST['panel_auth']) or empty($_POST['panel_auth'])) and ($_POST['panel_edit'] == "on")) {
  64.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/auth.txt")) {
  65.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/auth.txt");
  66.         }
  67. }
  68.  
  69. if (isset($_POST['panel_auth']) and !empty($_POST['panel_auth']) and ($_POST['panel_auth'] == "on")) {
  70.         if (!file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/auth.txt")) {
  71.                 touch("$maj_data_directory/panels/{$_POST['panel_id']}/auth.txt");
  72.         }
  73. }
  74.  
  75. if ((!isset($_POST['panel_nomargin']) or empty($_POST['panel_nomargin'])) and ($_POST['panel_edit'] == "on")) {
  76.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/nomargin.txt")) {
  77.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/nomargin.txt");
  78.         }
  79. }
  80.  
  81. if (isset($_POST['panel_nomargin']) and !empty($_POST['panel_nomargin']) and ($_POST['panel_nomargin'] == "on")) {
  82.         if (!file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/nomargin.txt")) {
  83.                 touch("$maj_data_directory/panels/{$_POST['panel_id']}/nomargin.txt");
  84.         }
  85. }
  86.  
  87. if ((!isset($_POST['panel_free']) or empty($_POST['panel_free'])) and ($_POST['panel_edit'] == "on")) {
  88.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/free.txt")) {
  89.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/free.txt");
  90.         }
  91.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/nomargin.txt")) {
  92.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/nomargin.txt");
  93.         }
  94. }
  95.  
  96. if (isset($_POST['panel_free']) and !empty($_POST['panel_free']) and ($_POST['panel_free'] == "on")) {
  97.         if (!file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/free.txt")) {
  98.                 touch("$maj_data_directory/panels/{$_POST['panel_id']}/free.txt");
  99.         }
  100. }
  101.  
  102. if ((!isset($_POST['panel_right']) or empty($_POST['panel_right'])) and ($_POST['panel_edit'] == "on")) {
  103.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt")) {
  104.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt");
  105.         }
  106. }
  107.  
  108. if (isset($_POST['panel_right']) and !empty($_POST['panel_right']) and ($_POST['panel_right'] == "on")) {
  109.  
  110.         if (!file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt")) {
  111.                 touch("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt");
  112.         }
  113.  
  114.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt")) {
  115.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt");
  116.         }
  117.  
  118.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt")) {
  119.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt");
  120.         }
  121.  
  122.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt")) {
  123.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt");
  124.         }
  125.  
  126.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt")) {
  127.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt");
  128.         }
  129. }
  130.  
  131. if ((!isset($_POST['panel_center']) or empty($_POST['panel_center'])) and ($_POST['panel_edit'] == "on")) {
  132.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt")) {
  133.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt");
  134.         }
  135. }
  136.  
  137. if (isset($_POST['panel_center']) and !empty($_POST['panel_center']) and ($_POST['panel_center'] == "on")) {
  138.  
  139.         if (!file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt")) {
  140.                 touch("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt");
  141.         }
  142.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt")) {
  143.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt");
  144.         }
  145.  
  146.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt")) {
  147.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt");
  148.         }
  149.  
  150.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt")) {
  151.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt");
  152.         }
  153.  
  154.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt")) {
  155.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt");
  156.         }
  157. }
  158.  
  159. if ((!isset($_POST['panel_top']) or empty($_POST['panel_top'])) and ($_POST['panel_edit'] == "on")) {
  160.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt")) {
  161.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt");
  162.         }
  163. }
  164.  
  165. if (isset($_POST['panel_top']) and !empty($_POST['panel_top']) and ($_POST['panel_top'] == "on")) {
  166.  
  167.         if (!file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt")) {
  168.                 touch("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt");
  169.         }
  170.  
  171.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt")) {
  172.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt");
  173.         }
  174.  
  175.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt")) {
  176.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt");
  177.         }
  178.  
  179.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt")) {
  180.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt");
  181.         }
  182.  
  183.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt")) {
  184.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt");
  185.         }
  186. }
  187.  
  188. if ((!isset($_POST['panel_entry']) or empty($_POST['panel_entry'])) and ($_POST['panel_edit'] == "on")) {
  189.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt")) {
  190.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt");
  191.         }
  192. }
  193.  
  194. if (isset($_POST['panel_entry']) and !empty($_POST['panel_entry']) and ($_POST['panel_entry'] == "on")) {
  195.  
  196.         if (!file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt")) {
  197.                 touch("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt");
  198.         }
  199.  
  200.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt")) {
  201.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt");
  202.         }
  203.  
  204.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt")) {
  205.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt");
  206.         }
  207.  
  208.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt")) {
  209.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt");
  210.         }
  211.  
  212.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt")) {
  213.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt");
  214.         }
  215. }
  216.  
  217. if ((!isset($_POST['panel_bottom']) or empty($_POST['panel_bottom'])) and ($_POST['panel_edit'] == "on")) {
  218.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt")) {
  219.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt");
  220.         }
  221. }
  222.  
  223. if (isset($_POST['panel_bottom']) and !empty($_POST['panel_bottom']) and ($_POST['panel_bottom'] == "on")) {
  224.  
  225.         if (!file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt")) {
  226.                 touch("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt");
  227.         }
  228.  
  229.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt")) {
  230.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt");
  231.         }
  232.  
  233.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt")) {
  234.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt");
  235.         }
  236.  
  237.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt")) {
  238.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt");
  239.         }
  240.  
  241.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt")) {
  242.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt");
  243.         }
  244. }
  245.  
  246. if ((!isset($_POST['panel_header']) or empty($_POST['panel_header'])) and ($_POST['panel_edit'] == "on")) {
  247.         if (file_exists("$maj_data_directory/header.txt") and (file_get_contents("$maj_data_directory/header.txt") == $_POST['panel_id'])) {
  248.                 unlink("$maj_data_directory/header.txt");
  249.         }
  250. }
  251.  
  252. if (isset($_POST['panel_header']) and !empty($_POST['panel_header']) and ($_POST['panel_header'] == "on")) {
  253.  
  254.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt")) {
  255.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt");
  256.         }
  257.  
  258.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt")) {
  259.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt");
  260.         }
  261.  
  262.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt")) {
  263.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt");
  264.         }
  265.  
  266.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt")) {
  267.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt");
  268.         }
  269.  
  270.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt")) {
  271.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt");
  272.         }
  273.  
  274.         $new_header_file = fopen("$maj_data_directory/header.txt","w");
  275.         fwrite($new_header_file,$_POST['panel_id']);
  276.         fclose($new_header_file);
  277. }
  278.  
  279. if ((!isset($_POST['panel_footer']) or empty($_POST['panel_footer'])) and ($_POST['panel_edit'] == "on")) {
  280.         if (file_exists("$maj_data_directory/footer.txt") and (file_get_contents("$maj_data_directory/footer.txt") == $_POST['panel_id'])) {
  281.                 unlink("$maj_data_directory/footer.txt");
  282.         }
  283. }
  284.  
  285. if (isset($_POST['panel_footer']) and !empty($_POST['panel_footer']) and ($_POST['panel_footer'] == "on")) {
  286.  
  287.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt")) {
  288.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/right.txt");
  289.         }
  290.  
  291.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt")) {
  292.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/top.txt");
  293.         }
  294.  
  295.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt")) {
  296.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/bottom.txt");
  297.         }
  298.  
  299.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt")) {
  300.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/center.txt");
  301.         }
  302.  
  303.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt")) {
  304.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/entry.txt");
  305.         }
  306.  
  307.         $new_footer_file = fopen("$maj_data_directory/footer.txt","w");
  308.         fwrite($new_footer_file,$_POST['panel_id']);
  309.         fclose($new_footer_file);
  310. }
  311.  
  312. if (isset($_POST['panel_title']) and !empty($_POST['panel_title'])) {
  313.  
  314.         $panel_title = ucfirst(strip_tags(trim($_POST['panel_title'])));
  315.  
  316.         if ($panel_title != file_get_contents("$maj_data_directory/panels/{$_POST['panel_id']}/title.txt")) {
  317.                 $edit_title_file = fopen("$maj_data_directory/panels/{$_POST['panel_id']}/title.txt","w");
  318.                 fwrite($edit_title_file,$panel_title);
  319.                 fclose($edit_title_file);
  320.         }
  321. }
  322.  
  323. if (isset($_POST['panel_content']) and !empty($_POST['panel_content'])) {
  324.  
  325.         $panel_content = ucfirst(trim($_POST['panel_content']));
  326.  
  327.         if ($panel_content != file_get_contents("$maj_data_directory/panels/{$_POST['panel_id']}/panel.php")) {
  328.                 $edit_content_file = fopen("$maj_data_directory/panels/{$_POST['panel_id']}/panel.php","w");
  329.                 fwrite($edit_content_file,$panel_content);
  330.                 fclose($edit_content_file);
  331.         }
  332. }
  333.  
  334. if (isset($_POST['panel_link']) and !empty($_POST['panel_link'])) {
  335.  
  336.         $panel_link = trim($_POST['panel_link']);
  337.  
  338.         if ($panel_link != file_get_contents("$maj_data_directory/panels/{$_POST['panel_id']}/link.txt")) {
  339.                 $edit_link_file = fopen("$maj_data_directory/panels/{$_POST['panel_id']}/link.txt","w");
  340.                 fwrite($edit_link_file,$panel_link);
  341.                 fclose($edit_link_file);
  342.         }
  343. }
  344.  
  345. if ((!isset($_POST['panel_link']) or empty($_POST['panel_link'])) and ($_POST['panel_edit'] == "on")) {
  346.         if (file_exists("$maj_data_directory/panels/{$_POST['panel_id']}/link.txt")) {
  347.                 unlink("$maj_data_directory/panels/{$_POST['panel_id']}/link.txt");
  348.         }
  349. }
  350.  
  351. if (isset($_POST['move_id']) and !empty($_POST['move_id']) and isset($_POST['old_id']) and !empty($_POST['old_id']) and isset($_POST['panel_edit']) and !empty($_POST['panel_edit']) and ($_POST['panel_edit'] == "on")) {
  352.  
  353.         $move_id = trim(strip_tags(mb_strtolower(str_replace(" ", "_", $_POST['move_id']))));
  354.         $move_id = str_replace(",","_",$move_id);
  355.  
  356.         if (!file_exists("$maj_data_directory/panels/$move_id")) {
  357.                 rename("$maj_data_directory/panels/{$_POST['old_id']}","$maj_data_directory/panels/$move_id");
  358.         }
  359. }
  360.  
  361. if (isset($_POST['panel_del']) and !empty($_POST['panel_del']) and ($_POST['panel_del'] == "on")) {
  362.  
  363.         if (file_exists("$maj_data_directory/header.txt") and (file_get_contents("$maj_data_directory/header.txt") == $_POST['panel_id'])) {
  364.                 unlink("$maj_data_directory/header.txt");
  365.         }
  366.  
  367.         if (file_exists("$maj_data_directory/footer.txt") and (file_get_contents("$maj_data_directory/footer.txt") == $_POST['panel_id'])) {
  368.                 unlink("$maj_data_directory/footer.txt");
  369.         }
  370.  
  371.         rmdirr("$maj_data_directory/panels/{$_POST['panel_id']}");
  372. }
  373.  
  374. ?>
  375.  
  376. <title>Panels</title>
  377.  
  378. <style>
  379.  
  380. body {
  381.         color: #666666;
  382.         margin: 10px;
  383.         padding: 0px;
  384.         text-align: left;
  385.         font-size: 11px;
  386.         font-family: <?php
  387.                                 if (file_exists("$maj_data_directory/fonts/body.txt")) {
  388.                                         $font_body = file_get_contents("$maj_data_directory/fonts/body.txt");
  389.                                         echo "{$font_body},";
  390.                                 }
  391.         ?> arial, helvetica, sans-serif;
  392.         background-color: #FFFFFF;
  393. }
  394.  
  395. p, td {
  396.         font-size: 11px;
  397. }
  398.  
  399. a {
  400.         font-weight: bold;
  401.         text-decoration: none;
  402. }
  403.  
  404. a:link, a:visited {
  405.         color: #666666;
  406. }
  407.  
  408. a:hover {
  409.         color: #336699;
  410. }
  411.  
  412. a:active {
  413.         color: #336699;
  414. }
  415.  
  416. .input {        
  417.         color: #666666;
  418.         background: #ffffff;
  419.         border: #999999 solid 1px;
  420.         width: 350px;
  421.         font-family: <?php
  422.                                 if (file_exists("$maj_data_directory/fonts/input.txt")) {
  423.                                         $font_input = file_get_contents("$maj_data_directory/fonts/input.txt");
  424.                                         echo "{$font_input},";
  425.                                 }
  426.         ?> arial, helvetica, sans-serif;
  427.         font-size: 11px
  428. }
  429. </style>
  430.  
  431. <p><b>Add Panel</b><br>Enter a unique panel ID, the panel title, and panel contents. Use <a href=http://php.net target=_maj>PHP</a> and <a href=http://www.w3.org/MarkUp/ target=_maj>HTML</a> with care!</p>
  432.  
  433. <table border="0" cellspacing="1" cellpadding="1">
  434. <form enctype="multipart/form-data" action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
  435. <tr><td><input type="text" class="input" name="new_id" autocomplete="off" maxlength="30" autofocus required></td><td>panel id*</td></tr>
  436. <tr><td><input type="text" class="input" name="new_title" autocomplete="off" maxlength="90" required></td><td>panel title*</td></tr>
  437. <tr><td><textarea class="input" name="new_content" rows="15" required></textarea></td><td valign="top">content*</td></tr>
  438. <tr><td><input type="submit" class="input" value="click here to add new panel"></td><td></td></tr>
  439. </form>
  440. <form enctype="multipart/form-data" action="<?php echo 'http://' . $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']); ?>" method="post">
  441. <tr><td><input class="input" type="submit" value="click here to go to the index page"></td><td></td></tr>
  442. </form>
  443. </table>
  444.  
  445. <?php
  446.         if (file_exists("$maj_data_directory/panels")) {
  447.                 if ($dh_panel = opendir("$maj_data_directory/panels")) {
  448.                         while (($entry_panel = readdir($dh_panel)) !== false) {
  449.  
  450.                                 if ($entry_panel != "." && $entry_panel != ".." && fnmatch("*", $entry_panel)) {
  451.                                         $show_panel[] = $entry_panel;
  452.                                 }
  453.                         }
  454.                         closedir($dh_panel);
  455.                 }
  456.  
  457.                 sort($show_panel);
  458.  
  459.                 $count_panel = count($show_panel);
  460.  
  461.                 if ($count_panel > 0) {
  462.  
  463.                         echo "<br><p><b>Panel Management</b><br>Hiding a panel will make it invisible to visitors. Deleting a panel will remove all its contents.</p>";
  464.  
  465.                         echo "<table border=\"0\" cellspacing=\"1\" cellpadding=\"1\">";
  466.  
  467.                         foreach ($show_panel as $panel) {
  468.                                 echo "<form enctype=\"multipart/form-data\" action=\"{$_SERVER['PHP_SELF']}\" method=\"post\">";
  469.  
  470.                                 echo "<tr><td colspan=\"2\"><a name=\"";
  471.                                 echo mb_strtolower(str_replace("_", " ", $panel));
  472.                                 echo "\"></a></td></tr>";
  473.  
  474.                                 echo "<tr><td><input type=\"text\" class=\"input\" name=\"move_id\" value=\"$panel\" autocomplete=\"off\" maxlength=\"30\" required></td>";
  475.                                 echo "<input type=\"hidden\" name=\"old_id\" value=\"$panel\">";
  476.  
  477.                                 echo "<td valign=\"top\" rowspan=\"5\">";
  478.                                
  479.                                 echo "<input type=\"checkbox\" name=\"panel_hide\"";
  480.                                 if (file_exists("$maj_data_directory/panels/$panel/private.txt")) {
  481.                                         echo " checked";
  482.                                 }
  483.                                 echo "> hide<br>";
  484.  
  485.                                 echo "<input type=\"checkbox\" name=\"panel_noquery\"";
  486.                                 if (file_exists("$maj_data_directory/panels/$panel/noquery.txt")) {
  487.                                         echo " checked";
  488.                                 }
  489.                                 echo "> noquery<br>";
  490.                                
  491.                                 echo "<input type=\"checkbox\" name=\"panel_auth\"";
  492.                                 if (file_exists("$maj_data_directory/panels/$panel/auth.txt")) {
  493.                                         echo " checked";
  494.                                 }
  495.                                 echo "> auth<br>";
  496.                                
  497.                                 echo "<input type=\"checkbox\" name=\"panel_free\"";
  498.                                 if (file_exists("$maj_data_directory/panels/$panel/free.txt")) {
  499.                                         echo " checked";
  500.                                 }
  501.                                 echo "> free<br>";
  502.                                
  503.                                 echo "<input type=\"checkbox\" name=\"panel_nomargin\"";
  504.                                 if (file_exists("$maj_data_directory/panels/$panel/nomargin.txt")) {
  505.                                         echo " checked";
  506.                                 }
  507.                                 echo "> nomargin<br>";
  508.                                
  509.                                 echo "<input type=\"checkbox\" name=\"panel_header\"";
  510.                                 if (file_exists("$maj_data_directory/header.txt") and (file_get_contents("$maj_data_directory/header.txt") == $panel)) {
  511.                                         echo " checked";
  512.                                 }
  513.                                 echo "> header<br>";
  514.                                
  515.                                 echo "<input type=\"checkbox\" name=\"panel_footer\"";
  516.                                 if (file_exists("$maj_data_directory/footer.txt") and (file_get_contents("$maj_data_directory/footer.txt") == $panel)) {
  517.                                         echo " checked";
  518.                                 }
  519.                                 echo "> footer<br>";
  520.                                
  521.                                 echo "<input type=\"checkbox\" name=\"panel_right\"";
  522.                                 if (file_exists("$maj_data_directory/panels/$panel/right.txt")) {
  523.                                         echo " checked";
  524.                                 }
  525.                                 echo "> right<br>";
  526.  
  527.                                 echo "<input type=\"checkbox\" name=\"panel_top\"";
  528.                                 if (file_exists("$maj_data_directory/panels/$panel/top.txt")) {
  529.                                         echo " checked";
  530.                                 }
  531.                                 echo "> top<br>";
  532.                                
  533.                                 echo "<input type=\"checkbox\" name=\"panel_bottom\"";
  534.                                 if (file_exists("$maj_data_directory/panels/$panel/bottom.txt")) {
  535.                                         echo " checked";
  536.                                 }
  537.                                 echo "> bottom<br>";
  538.                                
  539.                                 echo "<input type=\"checkbox\" name=\"panel_center\"";
  540.                                 if (file_exists("$maj_data_directory/panels/$panel/center.txt")) {
  541.                                         echo " checked";
  542.                                 }
  543.                                 echo "> center<br>";
  544.  
  545.                                 echo "<input type=\"checkbox\" name=\"panel_entry\"";
  546.                                 if (file_exists("$maj_data_directory/panels/$panel/entry.txt")) {
  547.                                         echo " checked";
  548.                                 }
  549.                                 echo "> entry<br>";
  550.                                
  551.                                 echo "<input type=\"checkbox\" name=\"panel_del\"> delete&nbsp;</td></tr>";
  552.  
  553.                                 echo "<tr></td><td><input type=\"text\" class=\"input\" name=\"panel_title\" value=\"";
  554.                                 readfile("$maj_data_directory/panels/$panel/title.txt");
  555.                                 echo "\" autocomplete=\"off\" maxlength=\"90\" required></td></tr>";
  556.  
  557.                                 echo "<tr><td><textarea class=\"input\" name=\"panel_content\" rows=\"15\" required>";
  558.                                 readfile("$maj_data_directory/panels/$panel/panel.php");
  559.                                 echo "</textarea></td></tr>";
  560.  
  561.                                 $links = glob("$maj_data_directory/items/*");
  562.  
  563.                                 rsort($links);
  564.  
  565.                                 if ((count($links) > 0) and ($panel != file_get_contents("$maj_data_directory/header.txt")) and ($panel != file_get_contents("$maj_data_directory/footer.txt"))) {
  566.  
  567.                                         echo "<tr></td><td><select class=\"input\" name=\"panel_link\"><option></option>";
  568.                                
  569.                                         foreach ($links as $link) {
  570.                                
  571.                                                 $link_title = file_get_contents("$link/title.txt");
  572.                                                 $link_entry = basename($link);
  573.                                                
  574.                                                 if (file_exists("$maj_data_directory/panels/$panel/link.txt") and (file_get_contents("$maj_data_directory/panels/$panel/link.txt") == $link_entry)) {
  575.                                                
  576.                                                         echo "<option value=\"$link_entry\" selected>$link_title</option>";
  577.                                                 }
  578.                                                 else {                                 
  579.                                                         echo "<option value=\"$link_entry\">$link_title</option>";
  580.                                                 }
  581.                                         }
  582.                                         echo "</select></td></tr>";
  583.                                 }
  584.                                
  585.                                 echo "<tr><td>";
  586.                                 echo "<input type=\"hidden\" name=\"panel_id\" value=\"$panel\">";
  587.                                 echo "<input type=\"hidden\" name=\"panel_edit\" value=\"on\">";
  588.                                 echo "<input type=\"submit\" class=\"input\" value=\"click here to update panel\">";
  589.                                 echo "</td></tr>";
  590.  
  591.                                 echo "<tr><td>&nbsp;</td></tr>";
  592.  
  593.                                 echo "</form>";
  594.                         }
  595.  
  596.                         echo "</table>";
  597.                 }
  598.         }
  599. ?>
  600.  
Credits
Sunday, Sep 18, 2005, 12:00 AM (Revision 11 - Thursday, Jul 14, 2011, 7:30 PM)
Open Source enables software developers to stand on the shoulders of giants instead of reinventing the wheel, so to speak. Kudos and many thanks to the folks who made their work freely available for reuse in MAJ.

read more
Bugs and Exploits
Friday, Aug 26, 2005, 12:00 AM (Revision 23 - Wednesday, May 29, 2013, 5:25 AM)
Although MAJ started as a family project, care has been taken to make it as "safe" as possible. With more people now working on MAJ, bugs and exploitable code may sometimes slip in. We invite you to poke around and see if you can find any. Generally, there are two things you can do when you find a MAJ or PHP-related bug or exploit:

1. Take advantage of it. But hey, what's so exciting about messing up someone's blog? Ho-hum, right?
2. Report it here so that we can work on a fix and make MAJ better.

read more
Search
Download
MAJ 2.0
75 files
33012 downloads
MAJ 1.0
26 files
13144 downloads
MAJ 0.14
45 files
35026 downloads