Logo Search packages:      
Sourcecode: dacode version File versions  Download package

html.php3

<?php
/**
 * Lynx theme
 *
 * daCode http://www.dacode.org
 * src/phplib/html.php3
 * $Id: html.php3,v 1.34.2.9 2003/02/07 23:16:40 ruffy Exp $
 *
 *    All HTML design will be put here
 *
 *    header($title)    Return the header with $title as title.
 *    footer()          Return footer.
 *    newsbox($title, $news, $icon, $urls, footer)    Return the box.
 *
 * Depends: Config Redirect Utils User
 */
00017 class Htmllynx extends Html {
      
      /**
       * Session instance
       *@var object Session
       */
      var $session;

      /**
       * Redirect instance
       *@var object Redirect
       */
      var $redirect;

      /**
       * Hits instance
       *@var object Hits
       */
      var $hits;

      /**
       * Fortune instance
       *@var object Fortune
       */
      var $fortune;

      /**
       * Utils instance
       *@var object Utils
       */
      var $utils;

      /**
       * Class constructor
       */
      Function Htmllynx() {
            global $config;

            $this->utils = LoadClass('Utils',$config);
            $this->session = LoadClass('Session',$config);
            $this->hits = LoadClass('Hits',$config);
            $this->redirect = LoadClass('Redirect',$config);
            $this->fortune = LoadClass('Fortunes',$config);
      }


      /**
       * Returns the HTML header 
       *@param string title of the page
       *@param boolean true if there shall be no banner on top of page
       *@return string the HTML for the header (including doctype)
       *@access public
       */
      Function header($title,$nobanner=false) {
            global $config;

            $title = (empty($title)) ? $config->titledefault : $title;
            $tmp = '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" '.
                  '"DTD/xhtml1-transitional.dtd">';
            $tmp .= '<!-- This page has been generated at the following time: '.
                  date("d/m/Y H:j:s")." -->\n";
            $tmp .= "\n<html>\n<head>\n";
            $tmp .= '<title>'.$title.'</title>'."\n";
            $tmp .= '<meta http-equiv="Content-Type" content="text/html; '.
                  'charset='.$config->encodingcharset.'" />'."\n";
            $tmp .= '</head>'."\n";
            $tmp .= '<body>'."\n";
            $tmp .= '<a name="top"></a>';
            if (!$nobanner) {
                  $tmp .= '<div align="center"><a href="'.$config->basehref.'">(( '.
                        $config->titledefault.' ))</a></div>'."\n";
            }
            return $tmp;
      }



      /**
       * Returns the footer
       *@param string text to add at the bottom of the page, if $nobanner is false
       *@param boolean if true, do nbot print standard footer
       *@return string the HTML for the footer
       *@access public
       */
      Function footer($text="",$nobanner=false) {
            $tmp = '';
            if (!$nobanner) {
                  $out = '* '.lecho("This website runs").'  <a href="http://www.dacode.org/">';
                  $out .= 'daCode</a>'."\n";

                  $out .= $this->fortune->get_random();

                  $out .= $text;
                  $tmp = $this->simplebox($out);
            }
            $tmp .= "</body>\n</html>\n";
            return $tmp;
      }


      /**
       * Return HTML code for side box with $text
       *@param string title of the box
       *@param string content of the box
       *@param string name of the box (for HTML comment, not displayed)
       *@return string the HTML for the box
       *@access public
       */
      Function sidebox($title,$text, $type="") {
            $tmp = '<!-- SIDEBOX '.$type.' -->'.
                  '<b>'.$title.'</b>'.
                  '<br />'.
                  $text.
                  '<!-- /SIDEBOX '.$type.' -->'."\n";
            return $tmp;
      }


      /**
       * Return HTML code for simple box with $text
       *@param string content of the box
       *@return string the HTML for the box
       *@access public
       */
      Function simplebox($text) {
            $tmp = '<!-- SIMPLEBOX -->'."\n";
            $tmp .= '   <p>'.$text.'</p>'."\n";
            $tmp .= '<!-- /SIMPLEBOX -->'."\n";
            return $tmp;
      }


      /**
       * Return HTML code for news box with $row from news table
       *@param array row from news table
       *@param integer if 1, special mode for preview (?!)
       *@return string the HTML for news box
       *@access public
       */
      Function newsbox($row,$preview=0) {
            global $section,$topic;
            global $config;

            $tmp = '';

            // Title is referenced by a <a name>
            if (isset ($row['id'])) {
                  $title = '<a name="n'.$row['id'].'">'.
                        ((empty($row['title'])) ? htmlentities($config->newstitledefault) :
                        htmlentities($row['title'])).'</a>';
            } else {
                  $title = ((empty($row['title']))?htmlentities($config->newstitledefault):
                        htmlentities($row['title']));
            }

            $body = (empty($row['body'])) ? htmlentities($config->newsbodydefault) :
                  (($row['content_type']=="text/plain") ?
                  nl2br(htmlentities($row['body'])) : $row['body']);

            $departement = (empty($row['departement']))
                  ? htmlentities($config->newsdepartementdefault) :
                  htmlentities($row['departement']);
            $row['section'] = (empty($row['section'])) ? "nosection" :
                  htmlentities($row['section']);
            $row['topic'] = (empty($row['topic'])) ? "notopic" :
                  htmlentities($row['topic']);
            $timestamp = $row['timestamp'];

            // Let's do HTML code
            $tmp .= '<!-- NEWSBOX '.(isset($row['id'])?$row['id']:'').' -->'."\n";
            $tmp .= ' (( '.$title.' ))<br />'."\n";
            $tmp .= $this->newsbox_posted_by($row,$preview);

            if (isset ($row['id'])) {
                  $tmp .= '<!-- ADMINEDIT:'.$row['id'].' -->';
                  if ($this->session->checked && ($this->session->level&pow(2,21))) {
                        $tmp .= ' - <b><a href="'.$config->basehref.
                              $config->adminfile.'?action=edit_news&amp;news_id='.$row['id'].
                              '">'.lecho("Edit!").'</a></b>';
                  }
                  $tmp .= '<!-- /ADMINEDIT -->';
            }

            if (!empty($departement)) {
                  $tmp .= '<br />'."\n".ucfirst(lecho("dept")).': <b>'.$departement.'</b>';
            }
            $tmp .= '<br />'.lecho("Topic").': ';
            $url_tmp = $config->basehref.($config->visiblenewsfile ?
                  $config->newsfile.'/' : '');
            if ($row['topic'] == 'notopic') {
                  $tmp .= $this->redirect->make($row['topic']);
            } else {
                  $tmp .= $this->redirect->make($row['topic'],
                        $url_tmp.'topic/'.urlencode($row['topic']).
                        $config->extraopts.$config->ext);
            }
            $tmp .= '<br />       '.$body."\n<br />";
            $tmp .= $this->newsbox_show_links($row,$preview);

            if (isset ($row['id'])) {
                  ereg("^([0-9]{4})([0-9]{2})([0-9]{2})", $row['timestamp'], $regs);
                  $tmp .= $this->newsbox_count_comments($row,$row['section'],$row['topic'],$regs[1],$regs[2],$regs[3]);
                  $tmp .= $this->newsbox_show_attachments($row);
            }
            $tmp .= '<hr />'."\n";
            $tmp .= '<!-- /NEWSBOX -->'."\n";
            return $tmp;
      }

      /**
       * Function to print comment top banner
       *@param integer the score threshold
       *@param integer the type of resource
       *@return string the HTML code
       *@access public
       */
      Function commentbanner ($score, $res_type) {
            global $config,$news;
            global $section,$topic;
            global $HTTP_GET_VARS,$HTTP_SERVER_VARS,$news_id;

            // Get information to get timestamp + news
            $this->comments = LoadClass('Comments');
            $path = ereg_replace('^/'.$config->htmldir, '/',
                  $HTTP_SERVER_VARS['PATH_INFO']);
            if (ereg("^(.*)\\.(html|$config->php)", $path, $res)) {
                  $path = $res[1];
            }
            if (ereg('^([^,]*)(,.+)$', $path, $res)) {
                  $path = $res[1];
            }
            if (ereg("^/([0-9]{4})/([0-9]{2})/([0-9]{2})/([0-9]+)$", $path, $res)) {
                  $year = $res[1];
                  $month= $res[2];
                  $day  = $res[3];
            } else {
                  $ts = $this->utils->gettimestampnews($news_id);
                  $year = $ts[0];
                  $month= $ts[1];
                  $day  = $ts[2];
            }

            if (isset($HTTP_GET_VARS['score'])) {
                  $score = $HTTP_GET_VARS['score'];
            }
            $out = '';
            $out .= '<table width="100%" border="0" cellspacing="1"'.
                  'cellpadding="2">'."\n";
            $out .= '<tr><td class="commentbox"><a name="banner" href="'.
                  $this->session->newsurls($news_id,'','',$year,$month,$day,$score).
                  '"><font color="#ffffff">'."\n";
            if (is_object($news)) {
                  $out .= $news->show_title($news_id);
            }
            $out .= '</font></a> | ';
            if (!$this->session->checked) {
                  $out .= '<a href="'.$config->basehref.
                        'users/?a=na"><font color="#ffffff">'.lecho("New Account").
                        '</font></a> | ';
                  }
            $out .= '<b>';
            $counttmp = $this->comments->count_comments($news_id, $res_type);
            $out .= $counttmp . '</b> ';
            if ($counttmp <= 1) {
                  $out .= lecho("comment")."\n";
            } else {
                  $out .= lecho("comments")."\n";
            }

            $out .= '<form method="post" action="'.$config->basehref.
                  $config->commaddfile.'">'."\n";
            $out .= '<input type="hidden" name="news_id" value="'.$news_id.'" />'."\n";
            $out .= '<input type="hidden" name="year" value="'.$year.'" />'."\n";
            $out .= '<input type="hidden" name="month" value="'.$month.'" />'."\n";
            $out .= '<input type="hidden" name="day" value="'.$day.'" />'."\n";
            $out .= '<input type="hidden" name="res_type" value="'.$res_type.'" />'.
                  "\n";

            $out .= '<input type="hidden" name="section" value="';
            $out .= !empty($section) ? $section : "0";
            $out .= '" />'."\n";

            $out .= '<input type="hidden" name="topic" value="';
            $out .= !empty($topic) ? $topic : "0";
            $out .= '" />'."\n";

            $out .= lecho("Hide signatures").
                  ': <input type="checkbox" name="hide_sig"';
            if ($config->hide_sig == "1") {
                  $out .= ' checked="checked"';
            }
            $out .= ' />'."\n";

            $out .= lecho("Score").': <select name="score">'."\n";
            $score_comment = (array) $this->comments->count_comments_array($news_id,
            $res_type);

            if ($config->moderation_type == 1) {
                  for ($i=-1;$i<6;$i++) {
                        $counttmp = $score_comment['n'.$news_id]['s'.$i];
                        $out .= '<option value="'.$i.'"';

                        if ($i == $score || (!isset($score) && $this->session->score == $i)) {
                              $out .= ' selected="selected"';
                        }

                        $out .= '>'.$i.': '.$counttmp.' ';
                        if ($counttmp <= 1) {
                              $out .= lecho("comment")."\n";
                        } else {
                              $out .= lecho("comments")."\n";
                        }
                        $out .= '</option>';
                  }
            } else {
                  $ok_tmp = 0;
                  for ($i=-1;$i<6;$i++) {
                        $counttmp = $score_comment['n'.$news_id]['s'.$i];

                        $out .= '<option value="'.$i.'"';
                        if ($i == $config->oldscore || (!isset($config->oldscore) && $this->session->score == $i)) {
                              $out .= ' selected="selected"';
                        }

                        switch ($i) {
                              case "-1":
                                    $out .= '>'.lecho("all");
                                    break;
                              case 0:
                                    $out .= '>0';
                                    break;
                              case 1:
                                    $out .= '>'.$config->last_week_score;
                                    break;
                              case 2:
                                    $out .= '>'.(2*$config->last_week_score);
                                    break;
                              case 3:
                                    $out .= '>'.(3*$config->last_week_score);
                                    break;
                              case 4:
                                    $out .= '>'.(4*$config->last_week_score);
                                    break;
                              case 5:
                                    $out .= '>'.(5*$config->last_week_score);
                                    break;
                        }

                        $out .= ': '.$counttmp.' ';
                        if ($counttmp <= 1) {
                              $out .= lecho("comment")."\n";
                        } else {
                              $out .= lecho("comments")."\n";
                        }
                        $out .= '</option>';
                  }

            }

            $out .= '</select>';
            $out .= '<input type="submit" name="op" '.
                  'value="'.lecho("Change").'" />'."\n";
            $out .= '<input type="submit" name="op" '.
                  'value="'.lecho("Reply").'" />'."\n</form>\n";

            $out .= lecho("<b>The fine print</b>: The following comments are owned by whoever posted them.")." ";
            $out .= lecho("We are not responsible for what they say.")."\n";
            $out .= '<br /><br />'."\n";
            $out .= '</table>'."\n";

            return $out;
      }

}

Generated by  Doxygen 1.6.0   Back to index