comment-form now in view/comment-form.php
[dylansserver.git] / cms.php
diff --git a/cms.php b/cms.php
index 00a8d7c..961a1f5 100644 (file)
--- a/cms.php
+++ b/cms.php
@@ -6,7 +6,6 @@ abstract class cms {
   protected $db;
   protected $recaptcha_publickey;
   protected $recaptcha_privatekey;
-  protected  $scripts;
   public $title;
   public $home_link;
 
@@ -70,63 +69,6 @@ abstract class cms {
     }
     $statement->free_result();
     return $return;
-      }
-
-  public function display_head($title = "dylansserver",
-                                  $home_link = "/") {
-    $scripts = $this->scripts;
-    $stylesheets = "<link href='/includes/style.css' rel='stylesheet' type='text/css'>";
-    $home_link = "http://validator.w3.org/unicorn/check?ucn_uri=dylansserver.com&amp;ucn_task=conformance#";
-    echo <<<END_OF_HEAD
-<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
-"http://www.w3.org/TR/html4/loose.dtd">
-
-<html>
-<head>
-  <meta name="generator" content=
-  "HTML Tidy for Linux (vers 25 March 2009), see www.w3.org">
-  <meta http-equiv="Content-type" content="text/html;charset=UTF-8">
-
-  <title>$this->title</title>
-  <link rel="icon" href="/favicon.ico" type="image/png">
-  $stylesheets
-  $scripts
-</head>
-
-<body onload="return typeof highlight == 'function' ? highlight() : true;">
-  <div id="structure">
-    <div id="banner">
-      <a href="$this->home_link">
-      <img src="/images/dylansserver.png" alt="dylansserver"
-      border="0"></a>
-    </div>
-
-    <div id="content">
-END_OF_HEAD;
-  }
-
-  public function display_contact() {
-    echo <<<END_OF_CONTACT
-      <div id="contact_me"><h1><a href=
-      "mailto:dylan@psu.edu">dylan</a></h1><a href=
-      "mailto:dylan@psu.edu">@psu.edu</a>
-      </div>
-END_OF_CONTACT;
-  }
-
-  public function display_close($show_contact = true) {
-    if ($show_contact) {
-      $this->display_contact();
-    }
-    echo <<<END_OF_CLOSE
-    </div>
-    <br>
-    <br>
-  </div>
-</body>
-</html>
-END_OF_CLOSE;
-    ob_flush();
   }
 
   public function init() {
@@ -168,61 +110,7 @@ END_OF_CLOSE;
 class index extends cms {
 
   public function display() {
-    $this->scripts = "<script type='text/javascript' src='/includes/index.js'></script>"; 
-    $this->display_head();
-    $this->display_exhibits();
-    echo "<ul id='portfolio'>";
-    $this->list_projects();
-    echo <<<OTHER_PROJECTS
-        <li>
-          <h3>things i've done for others:</h3>
-        </li>
-
-        <li><a href=
-        "http://activehamptons.com">activehamptons.com</a></li>
-
-        <li><a href=
-        "http://transfishing.com">transfishing.com</a></li>
-
-        <li>
-          <h3>something i've worked on:</h3>
-        </li>
-
-        <li><a href=
-        "http://tempositions.com">tempositions.com</a></li>
-
-        <li>
-          <h3>my repositories:</h3>
-        </li>
-
-        <li><a href=
-        "/git/">git://dylansserver.com</a></li>
-
-        <li>
-          <h3>some notes:</h3>
-        </li>
-
-        <li><a href=
-        "/notes/">here</a> [<a href="/notes/rss">rss</a>]</li>
-
-        <li>
-          <h3>my resume:</h3>
-        </li>
-
-        <li>[<a href=
-        "/resume">pdf</a>]</li>
-
-        <li>
-        </li>
-OTHER_PROJECTS;
-    // Because of the CSS necessary for the animations,
-    // the contact link needs to be in #portfolio to clear
-    // the floats.
-    echo "<li>";
-    $this->display_contact();
-    echo "</li>";
-    echo "</ul>";
-    $this->display_close($show_contact = false);
+      require_once("view/index.php");
   }
 
   protected function display_exhibits() {
@@ -236,11 +124,6 @@ OTHER_PROJECTS;
   }
 
   private function list_projects() {
-    echo <<<HEREDOC
-        <li>
-          <h3>my projects:</h3>
-        </li>
-HEREDOC;
     $sql = "SELECT title FROM projects ORDER BY rank";
     $result = $this->db->query($sql);
     while ($entry = $result->fetch_object()) {
@@ -280,24 +163,6 @@ class page extends cms {
   public function __construct() {
     parent::__construct();
     $this->page_offset();
-    $this->scripts = "
-        <script type='text/javascript' src='/includes/syntax/scripts/shCore.js'></script>
-        <script type='text/javascript' src='/includes/syntax/scripts/shAutoloader.js'></script>
-        <link type='text/css' rel='stylesheet' href='/includes/syntax/styles/shCore.css'>
-        <link type='text/css' rel='stylesheet' href='/includes/syntax/styles/shThemeDefault.css'>
-        <script type='text/javascript'>
-          function highlight() {
-            SyntaxHighlighter.autoloader(
-             'js /includes/syntax/scripts/shBrushJScript.js',
-             'bash /includes/syntax/scripts/shBrushBash.js',
-             'sql /includes/syntax/scripts/shBrushSql.js',
-             'cpp /includes/syntax/scripts/shBrushCpp.js');
-            SyntaxHighlighter.defaults['gutter'] = false;
-            SyntaxHighlighter.defaults['toolbar'] = false;
-            SyntaxHighlighter.all();
-          }
-        </script>
-    ";
   }
 
   private function page_offset() {
@@ -368,30 +233,6 @@ class note extends cms {
   public $number_of_comments;
 
   public function __construct() {
-      $this->scripts = "
-        <script type='text/javascript' src='/includes/syntax/scripts/shCore.js'></script>
-        <script type='text/javascript' src='/includes/syntax/scripts/shAutoloader.js'></script>
-        <link type='text/css' rel='stylesheet' href='/includes/syntax/styles/shCore.css'>
-        <link type='text/css' rel='stylesheet' href='/includes/syntax/styles/shThemeDefault.css'>
-        <script type='text/javascript'>
-          function highlight() {
-            SyntaxHighlighter.autoloader(
-             'js /includes/syntax/scripts/shBrushJScript.js',
-             'bash /includes/syntax/scripts/shBrushBash.js',
-             'sql /includes/syntax/scripts/shBrushSql.js',
-             'cpp /includes/syntax/scripts/shBrushCpp.js');
-            SyntaxHighlighter.defaults['gutter'] = false;
-            SyntaxHighlighter.defaults['toolbar'] = false;
-            SyntaxHighlighter.all();
-          }
-        </script>
-      ";
-
-    if (isset($_GET['comments'])) {
-      $this->scripts .= "
-        <script type='text/javascript' src='http://www.google.com/recaptcha/api/js/recaptcha_ajax.js'></script>
-        <script type='text/javascript' src='/includes/comment.js'></script>";
-    }
     parent::__construct();
     if (isset($_GET['comments'])) {
       $this->comments_enabled = true;
@@ -485,84 +326,17 @@ class note extends cms {
       $author = $entry['author'];
       $text = htmlspecialchars($entry['text']);
       $head = "<h3>" . htmlspecialchars($author) . "</h3>";
-      echo <<<END_OF_COMMENT
-      <div class='comment'>
-      $head
-      $text
-      </div>
-END_OF_COMMENT;
+      echo "<div class='comment'>";
+      echo $head;
+      echo $text;
+      echo "</div>";
       }
     echo "</div>";
   }
 
   private function display_comment_form() {
     $publickey = $this->recaptcha_publickey;
-    echo <<<END_CAPTCHA_STYLE
-<script type="text/javascript">
-Recaptcha.create("$publickey",
-   "recaptcha_div", 
-   {
-     theme : 'custom',
-     custom_theme_widget: 'recaptcha_widget',
-     callback: Recaptcha.focus_response_field
-   });
-</script>
-END_CAPTCHA_STYLE;
-    require_once('includes/recaptchalib.php');
-    $url = $this->url . "verify";
-    echo "<form id='comment_form'  method='post' action='$url'>";
-    echo <<<END_OF_FORM
-    <div id="comment">
-      <h3>comment:</h3>
-      <textarea rows="10" cols="70" name="text" id="comment_text"></textarea>
-      <h3>name:</h3>
-      <input type=text name="name" id="comment_name">
-  
-      <nowiki>
-      <div id="recaptcha_widget"> 
-        <br>
-        <h3><b>what's this say</b>?</h3>
-        <br>
-          <div id="recaptcha_image"></div>
-        <br><br><br>
-        <span class="recaptcha_only_if_image"><br><br><br></span>
-        <input type="text" id="recaptcha_response_field" name="recaptcha_response_field" />
-        <br><br>
-        <h3 class="recaptcha_only_if_audio"><b>enter the numbers you hear</b>:</h3>
-        <span class="recaptcha_help">
-          <a href="javascript:Recaptcha.reload()">another?</a> /
-          <span class="recaptcha_only_if_image"><a href="javascript:Recaptcha.switch_type('audio')">audio?</a> /</span>
-          <span class="recaptcha_only_if_audio"><a href="javascript:Recaptcha.switch_type('image')">image?</a></span><a href="javascript:Recaptcha.showhelp()">help?</a>
-        </span>
-      </div>
-END_OF_FORM;
-    echo recaptcha_get_html($this->recaptcha_publickey); 
-    if ($this->failed_captcha) {
-    echo <<<END_OF_ERRORS
-        <div id="not_human">
-          reCAPTCHA said you're not human, <br>
-          try again?
-        </div>
-        <input id="submit" class="submit" type="submit" value="post comment">
-        </form>
-      </div>
-END_OF_ERRORS;
-    } else {
-      echo <<<END_OF_ERRORS
-        <div id="not_human">
-          reCAPTCHA said you're not human, <br>
-          try again?
-        </div>
-        <div id="blank_comment">
-          but you didn't write anything! <br>
-        </div>
-END_OF_ERRORS;
-    }
-    echo <<<END_OF_FORM
-      <input id="submit" class="submit" type="submit" value="post comment">
-      </form>
-      </div>
-END_OF_FORM;
+    require_once("view/comment-form.php");
   }
 }
 
@@ -583,7 +357,10 @@ class archive extends cms {
   }
 
   public function display() {
-    $this->display_head();
+      require_once("view/archive.php");
+  }
+
+  public function display_notes() {
     switch (true) {
       case (isset($_GET['year']) && !isset($_GET['month'])
                 && !isset($_GET['day'])):
@@ -632,38 +409,26 @@ class archive extends cms {
         echo "</div>";
       }
       echo "</div>";
-      $this->write_navigation();
     } else {
       echo "<br>";
       echo "<h1>sorry, nothing here</h2>";
       echo "<pre>Empty set (0.00 sec)</pre>";
     }
-    $this->display_close();
-  }
-
-  private function write_navigation() {
-    echo "<br>";
-    echo "<div id='navigation'>";
-    // fill me in!
-    echo "</div>";
   }
 
 }
 
 
 class rss extends cms {
+
   public function display() {
+    require_once("view/rss.php");
+  }
+
+  public function display_items() {
     $result = $this->db->query("SELECT date_posted, title, text, url
                                          FROM notes ORDER BY date_posted DESC
                                          LIMIT 5");
-         echo <<<END_OF_ENTRY
-         <rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
-      <channel>
-           <title>dylansserver.com/notes/rss</title>
-               <link>http://dylansserver.com/notes</link>
-               <description>dylansserver.com/notes/rss</description>
-               <atom:link href="http://dylansserver.com/notes/rss" rel="self" type="application/rss+xml" />
-END_OF_ENTRY;
        while ($entry = $result->fetch_object()) {
          $title = $entry->title;
          $date_posted = $entry->date_posted;
@@ -679,18 +444,13 @@ END_OF_ENTRY;
                  $description = substr($text, '0', ($end_of_first_sentence + 1));
                }
          }
-         echo <<<END_OF_ENTRY
-           <item>
-                 <title>$title</title>
-                 <link>$url</link>
-                 <guid>$url</guid>
-                 <description>$description</description>
-           </item>
-END_OF_ENTRY;
+      echo "<item>";
+      echo "  <title>$title</title>";
+      echo "  <link>$url</link>";
+      echo "  <guid>$url</guid>";
+      echo "  <description>$description</description>";
+      echo "</item>";
        }
-      echo "</channel>";
-      echo "</rss>";
-    
   }
 }