⌈⌋ branch:  freshcode


Hex Artifact Content

Artifact cea267f29b96aa421be81484a1880d679189f22a:

  • File page_forum.php — part of check-in [686e87487e] at 2015-03-24 18:23:10 on branch trunk — Updated stylesheet to use table-layout for #main/#sidebar split. Padding still needs work. (user: mario size: 1835)

0000: 3c 3f 70 68 70 0a 2f 2a 2a 0a 20 2a 20 61 70 69  <?php./**. * api
0010: 3a 20 66 72 65 73 68 63 6f 64 65 0a 20 2a 20 74  : freshcode. * t
0020: 79 70 65 3a 20 6d 61 69 6e 0a 20 2a 20 74 69 74  ype: main. * tit
0030: 6c 65 3a 20 6d 65 74 61 2f 66 6f 72 75 6d 0a 20  le: meta/forum. 
0040: 2a 20 64 65 73 63 72 69 70 74 69 6f 6e 3a 20 53  * description: S
0050: 69 6d 70 6c 65 20 74 68 72 65 61 64 65 64 20 64  imple threaded d
0060: 69 73 63 75 73 73 69 6f 6e 20 2f 20 64 6f 63 75  iscussion / docu
0070: 6d 65 6e 74 61 74 69 6f 6e 20 66 6f 72 75 6d 2e  mentation forum.
0080: 0a 20 2a 20 76 65 72 73 69 6f 6e 3a 20 30 2e 32  . * version: 0.2
0090: 0a 20 2a 0a 20 2a 20 44 69 73 74 69 6e 63 74 20  . *. * Distinct 
00a0: 6c 61 79 6f 75 74 20 66 72 6f 6d 20 6d 61 69 6e  layout from main
00b0: 20 73 69 74 65 20 61 6e 64 20 68 61 72 62 6f 75   site and harbou
00c0: 72 73 20 69 74 73 20 6f 77 6e 20 64 69 73 70 61  rs its own dispa
00d0: 74 63 68 65 72 2e 0a 20 2a 20 45 64 69 74 69 6e  tcher.. * Editin
00e0: 67 2f 70 6f 73 74 20 66 65 61 74 75 72 65 73 2e  g/post features.
00f0: 20 43 53 53 20 69 73 20 6d 65 6c 74 65 64 20 69   CSS is melted i
0100: 6e 2c 20 61 73 20 74 68 65 72 65 27 73 20 6e 6f  n, as there's no
0110: 20 73 75 62 70 61 67 69 6e 67 2e 0a 20 2a 0a 20   subpaging.. *. 
0120: 2a 2f 0a 0a 23 2d 2d 20 63 75 73 74 6f 6d 20 63  */..#-- custom c
0130: 6f 6e 66 69 67 0a 69 6e 63 6c 75 64 65 5f 6f 6e  onfig.include_on
0140: 63 65 28 22 2e 2f 73 68 61 72 65 64 2e 70 68 61  ce("./shared.pha
0150: 72 22 29 3b 20 20 2f 2f 20 61 75 74 6f 6c 6f 61  r");  // autoloa
0160: 64 65 72 0a 64 65 66 69 6e 65 28 22 49 4e 50 55  der.define("INPU
0170: 54 5f 51 55 49 45 54 22 2c 20 31 29 20 61 6e 64  T_QUIET", 1) and
0180: 0a 69 6e 63 6c 75 64 65 5f 6f 6e 63 65 28 22 6c  .include_once("l
0190: 69 62 2f 69 6e 70 75 74 2e 70 68 70 22 29 3b 20  ib/input.php"); 
01a0: 20 2f 2f 20 69 6e 70 75 74 20 66 69 6c 74 65 72   // input filter
01b0: 0a 64 65 66 69 6e 65 28 22 48 54 54 50 5f 48 4f  .define("HTTP_HO
01c0: 53 54 22 2c 20 24 5f 53 45 52 56 45 52 2d 3e 69  ST", $_SERVER->i
01d0: 64 5b 22 48 54 54 50 5f 48 4f 53 54 22 5d 29 3b  d["HTTP_HOST"]);
01e0: 0a 69 6e 63 6c 75 64 65 5f 6f 6e 63 65 28 22 6c  .include_once("l
01f0: 69 62 2f 64 65 66 65 72 72 65 64 5f 6f 70 65 6e  ib/deferred_open
0200: 69 64 5f 73 65 73 73 69 6f 6e 2e 70 68 70 22 29  id_session.php")
0210: 3b 20 20 2f 2f 20 61 75 74 68 2b 73 65 73 73 69  ;  // auth+sessi
0220: 6f 6e 0a 69 6e 63 6c 75 64 65 5f 6f 6e 63 65 28  on.include_once(
0230: 22 61 75 78 2e 70 68 70 22 29 3b 20 20 20 20 20  "aux.php");     
0240: 20 20 20 2f 2f 20 75 74 69 6c 69 74 79 20 66 75     // utility fu
0250: 6e 63 74 69 6f 6e 73 0a 69 6e 63 6c 75 64 65 5f  nctions.include_
0260: 6f 6e 63 65 28 22 63 6f 6e 66 69 67 2e 6c 6f 63  once("config.loc
0270: 61 6c 2e 70 68 70 22 29 3b 0a 69 6e 63 6c 75 64  al.php");.includ
0280: 65 5f 6f 6e 63 65 28 22 6c 69 62 2f 64 62 2e 70  e_once("lib/db.p
0290: 68 70 22 29 3b 20 20 20 20 20 2f 2f 20 64 61 74  hp");     // dat
02a0: 61 62 61 73 65 20 41 50 49 0a 64 62 28 6e 65 77  abase API.db(new
02b0: 20 50 44 4f 28 22 73 71 6c 69 74 65 3a 66 6f 72   PDO("sqlite:for
02c0: 75 6d 2e 64 62 22 29 29 3b 20 2f 2f 20 73 65 70  um.db")); // sep
02d0: 61 72 61 74 65 20 73 74 6f 72 61 67 65 0a 0a 0a  arate storage...
02e0: 23 2d 2d 20 73 65 74 20 75 70 20 66 6f 72 75 6d  #-- set up forum
02f0: 20 68 61 6e 64 6c 69 6e 67 0a 24 66 20 3d 20 6e   handling.$f = n
0300: 65 77 20 66 6f 72 75 6d 28 29 3b 0a 24 66 2d 3e  ew forum();.$f->
0310: 69 73 5f 61 64 6d 69 6e 20 3d 20 69 6e 5f 61 72  is_admin = in_ar
0320: 72 61 79 28 40 24 5f 53 45 53 53 49 4f 4e 5b 22  ray(@$_SESSION["
0330: 6f 70 65 6e 69 64 22 5d 2c 20 24 6d 6f 64 65 72  openid"], $moder
0340: 61 74 6f 72 5f 69 64 73 29 3b 0a 0a 0a 23 2d 2d  ator_ids);...#--
0350: 20 64 69 73 70 61 74 63 68 20 66 75 6e 63 74 69   dispatch functi
0360: 6f 6e 73 0a 73 77 69 74 63 68 20 28 24 6e 61 6d  ons.switch ($nam
0370: 65 20 3d 20 24 5f 47 45 54 2d 3e 69 64 5b 22 6e  e = $_GET->id["n
0380: 61 6d 65 22 5d 29 20 7b 0a 0a 20 20 20 20 63 61  ame"]) {..    ca
0390: 73 65 20 22 73 75 62 6d 69 74 22 3a 0a 20 20 20  se "submit":.   
03a0: 20 20 20 20 20 65 78 69 74 28 20 24 66 2d 3e 73       exit( $f->s
03b0: 75 62 6d 69 74 28 29 20 29 3b 0a 0a 20 20 20 20  ubmit() );..    
03c0: 63 61 73 65 20 22 70 6f 73 74 22 3a 0a 20 20 20  case "post":.   
03d0: 20 20 20 20 20 65 78 69 74 28 20 24 66 2d 3e 73       exit( $f->s
03e0: 75 62 6d 69 74 5f 66 6f 72 6d 28 24 5f 52 45 51  ubmit_form($_REQ
03f0: 55 45 53 54 2d 3e 69 6e 74 5b 22 70 69 64 22 5d  UEST->int["pid"]
0400: 2c 20 30 29 20 29 3b 0a 0a 20 20 20 20 63 61 73  , 0) );..    cas
0410: 65 20 22 65 64 69 74 22 3a 0a 20 20 20 20 20 20  e "edit":.      
0420: 20 20 65 78 69 74 28 20 24 66 2d 3e 65 64 69 74    exit( $f->edit
0430: 5f 66 6f 72 6d 28 30 2c 20 24 5f 52 45 51 55 45  _form(0, $_REQUE
0440: 53 54 2d 3e 69 6e 74 5b 22 69 64 22 5d 29 20 29  ST->int["id"]) )
0450: 3b 0a 0a 20 20 20 20 63 61 73 65 20 22 69 6e 64  ;..    case "ind
0460: 65 78 22 3a 0a 20 20 20 20 63 61 73 65 20 22 22  ex":.    case ""
0470: 3a 0a 20 20 20 20 64 65 66 61 75 6c 74 3a 0a 20  :.    default:. 
0480: 20 20 20 20 20 20 20 2f 2f 20 68 61 6e 64 6c 65         // handle
0490: 64 20 62 65 6c 6f 77 20 70 65 72 20 64 65 66 61  d below per defa
04a0: 75 6c 74 0a 7d 0a 20 20 20 0a 3f 3e 0a 3c 21 44  ult.}.   .?>.<!D
04b0: 4f 43 54 59 50 45 20 68 74 6d 6c 3e 0a 3c 68 74  OCTYPE html>.<ht
04c0: 6d 6c 3e 0a 3c 68 65 61 64 3e 0a 20 20 20 20 3c  ml>.<head>.    <
04d0: 74 69 74 6c 65 3e 66 72 65 73 68 63 6f 64 65 2e  title>freshcode.
04e0: 63 6c 75 62 20 66 6f 72 75 6d 3c 2f 74 69 74 6c  club forum</titl
04f0: 65 3e 0a 20 20 20 20 3c 73 63 72 69 70 74 20 73  e>.    <script s
0500: 72 63 3d 22 2f 2f 61 6a 61 78 2e 67 6f 6f 67 6c  rc="//ajax.googl
0510: 65 61 70 69 73 2e 63 6f 6d 2f 61 6a 61 78 2f 6c  eapis.com/ajax/l
0520: 69 62 73 2f 6a 71 75 65 72 79 2f 32 2e 31 2e 31  ibs/jquery/2.1.1
0530: 2f 6a 71 75 65 72 79 2e 6d 69 6e 2e 6a 73 22 3e  /jquery.min.js">
0540: 3c 2f 73 63 72 69 70 74 3e 0a 20 20 20 20 3c 73  </script>.    <s
0550: 63 72 69 70 74 20 73 72 63 3d 22 67 69 6d 6d 69  cript src="gimmi
0560: 63 6b 73 2e 6a 73 3f 30 31 39 22 3e 3c 2f 73 63  cks.js?019"></sc
0570: 72 69 70 74 3e 0a 20 20 20 20 3c 6d 65 74 61 20  ript>.    <meta 
0580: 63 68 61 72 73 65 74 3d 55 54 46 2d 38 3e 0a 20  charset=UTF-8>. 
0590: 20 20 20 3c 3f 3d 20 22 3c 73 74 79 6c 65 3e 5c     <?= "<style>\
05a0: 6e 22 0a 20 20 20 20 20 20 2e 20 66 69 6c 65 5f  n".      . file_
05b0: 67 65 74 5f 63 6f 6e 74 65 6e 74 73 28 22 66 6f  get_contents("fo
05c0: 72 75 6d 2e 63 73 73 22 29 0a 20 20 20 20 20 20  rum.css").      
05d0: 2e 20 22 3c 2f 73 74 79 6c 65 3e 22 3b 0a 20 20  . "</style>";.  
05e0: 20 20 3f 3e 0a 3c 2f 68 65 61 64 3e 0a 3c 62 6f    ?>.</head>.<bo
05f0: 64 79 3e 0a 3c 64 69 76 20 69 64 3d 74 69 74 6c  dy>.<div id=titl
0600: 65 3e 0a 20 20 20 3c 68 31 3e 3c 61 20 68 72 65  e>.   <h1><a hre
0610: 66 3d 22 2f 22 3e 3c 62 3e 66 72 65 73 68 3c 2f  f="/"><b>fresh</
0620: 62 3e 28 63 6f 64 65 29 3c 62 20 63 6c 61 73 73  b>(code)<b class
0630: 3d 72 65 64 3e 2e 3c 2f 62 3e 3c 73 70 61 6e 20  =red>.</b><span 
0640: 63 6c 61 73 73 3d 67 72 65 79 3e 63 6c 75 62 3c  class=grey>club<
0650: 2f 73 70 61 6e 3e 3c 2f 61 3e 3c 2f 68 31 3e 0a  /span></a></h1>.
0660: 3c 2f 64 69 76 3e 0a 3c 62 72 3e 0a 3c 75 6c 20  </div>.<br>.<ul 
0670: 63 6c 61 73 73 3d 66 6f 72 75 6d 3e 0a 0a 20 20  class=forum>..  
0680: 20 3c 6c 69 3e 0a 20 20 20 20 20 20 3c 64 69 76   <li>.      <div
0690: 20 63 6c 61 73 73 3d 65 6e 74 72 79 3e 0a 20 20   class=entry>.  
06a0: 20 20 20 20 20 20 20 3c 61 20 63 6c 61 73 73 3d         <a class=
06b0: 22 61 63 74 69 6f 6e 20 66 6f 72 75 6d 2d 6e 65  "action forum-ne
06c0: 77 22 20 64 61 74 61 2d 69 64 3d 30 3e 4e 65 77  w" data-id=0>New
06d0: 20 54 68 72 65 61 64 3c 2f 61 3e 0a 20 20 20 20   Thread</a>.    
06e0: 20 20 3c 2f 64 69 76 3e 0a 20 20 20 3c 2f 6c 69    </div>.   </li
06f0: 3e 0a 20 20 20 3c 3f 70 68 70 0a 20 20 20 20 20  >.   <?php.     
0700: 20 24 66 2d 3e 69 6e 64 65 78 28 29 3b 0a 20 20   $f->index();.  
0710: 20 20 3f 3e 0a 3c 2f 75 6c 3e 0a 3c 2f 62 6f 64    ?>.</ul>.</bod
0720: 79 3e 0a 3c 2f 68 74 6d 6c 3e 0a                 y>.</html>.