Changeset 30

Show
Ignore:
Timestamp:
10/22/06 21:12:01 (14 years ago)
Author:
exi
Message:

Added base killmail importer, it takes killmails from a specified directory, 1 mail per file.
Changed session interface to php, that reduces siteload by one mysql query and offers room for page variables.
Removed the need to enter a password to post comments if you're logged in as admin.

Location:
dev/common
Files:
6 modified

Legend:

Unmodified
Added
Removed
  • dev/common/admin.php

    r22 r30  
    1010$page->setAdmin(); 
    1111 
    12 $config = $killboard->getConfig(); 
    1312if ($_POST['submit']) 
    1413{ 
     
    5352    $config->setPostPassword($_POST['post_password']); 
    5453    $config->setPostMailto($_POST['post_mailto']); 
    55      
     54 
    5655    if ($_POST['filter_apply'] == "on") 
    57     {            
     56    { 
    5857        $config->setConfig('filter_apply', '1'); 
    59         $config->setConfig('filter_date', mktime(0,0,0,$_POST['filter_month'],($_POST['filter_day'] > 31 ? 31 : $_POST['filter_day']),$_POST['filter_year']));         
    60     }else{ 
     58        $config->setConfig('filter_date', mktime(0, 0, 0, $_POST['filter_month'], ($_POST['filter_day'] > 31 ? 31 : $_POST['filter_day']), $_POST['filter_year'])); 
     59    } 
     60    else 
     61    { 
    6162        $config->setConfig('filter_apply', '0'); 
    6263        $config->setConfig('filter_date', 0); 
     
    7071$html .= "<table class=kb-subtable>"; 
    7172$html .= "<tr><td width=120><b>Banner:</b></td><td><select id=style_banner name=style_banner>"; 
     73 
    7274$dir = "img/banners/"; 
    7375if (is_dir($dir)) 
     
    8284                $html .= "<option value=\"" . $file . "\""; 
    8385                if ($file == $config->getStyleBanner()) 
     86                { 
    8487                    $html .= " selected=\"selected\""; 
     88                } 
    8589                $html .= ">" . $file . "</option>"; 
    8690            } 
     
    9195$html .= "<option value=\"custom\""; 
    9296if ($config->getStyleBanner() == "custom") 
     97{ 
    9398    $html .= " selected=\"selected\""; 
     99} 
    94100$html .= ">custom</option></select></td></tr>"; 
    95101$html .= "<tr><td width=120><b>Style:</b></td><td><select id=style_name name=style_name>"; 
     102 
    96103$dir = "style/"; 
    97104if (is_dir($dir)) 
     
    104111            { 
    105112                if ($file == "." || $file == ".." || $file == ".svn") 
     113                { 
    106114                    continue; 
     115                } 
    107116                $html .= "<option value=\"" . $file . "\""; 
    108117                if ($file == $config->getStyleName()) 
     118                { 
    109119                    $html .= " selected=\"selected\""; 
     120                } 
    110121                $html .= ">" . $file . "</option>"; 
    111122            } 
     
    121132$html .= "<tr><td width=120><b>Display killpoints:</b></td><td><input type=checkbox name=kill_points id=kill_points"; 
    122133if ($config->getConfig('kill_points')) 
     134{ 
    123135    $html .= " checked=\"checked\""; 
     136} 
    124137$html .= "></td></tr>"; 
    125138$html .= "<tr><td width=120><b>Enable Comments:</b></td><td><input type=checkbox name=comments id=comments"; 
    126139if ($config->getConfig('comments')) 
     140{ 
    127141    $html .= " checked=\"checked\""; 
     142} 
    128143$html .= "></td></tr>"; 
    129144$html .= "<tr><td width=120><b>Require password for Comments:</b></td><td><input type=checkbox name=comments_pw id=comments_pw"; 
    130145if ($config->getConfig('comments_pw')) 
     146{ 
    131147        $html .= " checked=\"checked\""; 
     148} 
    132149$html .= "></td></tr>"; 
    133150 
     
    143160$html .= "<tr><td width=120><b>Post password:</b></td><td><input type=text name=post_password id=post_password size=20 maxlength=20 value=\"" . $config->getPostPassword() . "\"></td></tr>"; 
    144161$html .= "<tr><td width=120><b>Killmail CC:</b></td><td><input type=text name=post_mailto id=post_mailto size=20 maxlength=80 value=\"" . $config->getPostMailto() . "\"> (e-mail address)</td></tr>"; 
    145 $html .= "<tr><td width=120><b>Disallow any killmails before:</b></td><td>" . dateSelector($config->getConfig('filter_apply'),$config->getConfig('filter_date')) . "</td></tr>"; 
     162$html .= "<tr><td width=120><b>Disallow any killmails before:</b></td><td>" . dateSelector($config->getConfig('filter_apply'), $config->getConfig('filter_date')) . "</td></tr>"; 
    146163$html .= "</table>"; 
    147164 
     
    158175$page->generate(); 
    159176 
    160 function dateSelector($apply,$date){ 
    161         if($date > 0){ 
    162                 $date = getdate($date);          
    163         }else{ 
     177function dateSelector($apply, $date) 
     178{ 
     179        if ($date > 0) 
     180    { 
     181                $date = getdate($date); 
     182        } 
     183    else 
     184    { 
    164185                $date = getdate(); 
    165         }        
     186        } 
    166187        $html = "<input type=\"text\" name=\"filter_day\" id=\"filter_day\" style=\"width:20px\" value=\"{$date['mday']}\"/>&nbsp;"; 
    167188        $html .= "<select name=\"filter_month\" id=\"filter_month\">"; 
    168         for($i=1;$i<=12;$i++){ 
    169                 $t = mktime(0,0,0,$i,1,1980);            
    170                 $month = date("M",$t);           
    171                 if($date['mon'] == $i) $selected = " selected=\"selected\""; else $selected = ""; 
     189        for ($i = 1; $i <= 12; $i++) 
     190    { 
     191                $t = mktime(0, 0, 0, $i, 1, 1980); 
     192                $month = date("M", $t); 
     193                if($date['mon'] == $i) 
     194        { 
     195            $selected = " selected=\"selected\""; 
     196        } 
     197        else 
     198        { 
     199            $selected = ""; 
     200        } 
     201 
    172202                $html .= "<option value=\"$i\"$selected>$month</option>"; 
    173203        } 
    174204        $html .= "</select>&nbsp;"; 
    175          
     205 
    176206        $html .= "<select name=\"filter_year\" id=\"filter_year\">"; 
    177         for($i=date("Y")-7;$i<=date("Y");$i++){          
    178                 if($date['year'] == $i) $selected = " selected=\"selected\""; else $selected = ""; 
     207        for ($i = date("Y")-7; $i <= date("Y"); $i++) 
     208    { 
     209                if ($date['year'] == $i) 
     210        { 
     211            $selected = " selected=\"selected\""; 
     212        } 
     213        else 
     214        { 
     215            $selected = ""; 
     216        } 
    179217                $html .= "<option value=\"$i\"$selected>$i</option>"; 
    180218        } 
    181219        $html .= "</select>&nbsp;"; 
    182220        $html .= "<input type=checkbox name=filter_apply id=filter_apply"; 
    183         if($apply=="1") $html .= " checked=\"checked\""; 
    184         $html .= "/>Apply&nbsp;";        
     221        if ($apply) 
     222    { 
     223        $html .= " checked=\"checked\""; 
     224    } 
     225        $html .= "/>Apply&nbsp;"; 
    185226        return $html; 
    186227} 
  • dev/common/admin_menu.php

    r24 r30  
    88$menubox->addOption("Synchronization", "?a=admin_sync"); 
    99$menubox->addOption("Mods", "?a=admin_mods"); 
     10$menubox->addOption("Kill Import", "?a=kill_import"); 
    1011//$menubox->addOption("Rental", "?a=admin_rental"); 
    1112?> 
  • dev/common/class.page.php

    r12 r30  
    2020        $this->killboard_ = new Killboard(KB_SITE); 
    2121 
    22         $this->session_ = new Session($_COOKIE['EVK_COOKIE'], 
    23             $_SERVER['REMOTE_ADDR']); 
     22        $this->session_ = new Session(); 
    2423 
    2524        $this->cachable_ = $cachable; 
  • dev/common/class.session.php

    r10 r30  
    11<?php 
    2 require_once("db.php"); 
     2require_once('db.php'); 
    33 
    44class Session 
    55{ 
    6     function Session($cookie, $ip) 
     6    function Session() 
    77    { 
    8         $this->qry_ = new DBQuery(); 
    9         $this->sql_ = "select * 
    10                        from kb3_sessions ses 
    11                       where ses.ses_id = '" . $cookie . "' 
    12                         and ses.ses_ip = '" . $ip . "'"; 
     8        if ($_REQUEST['PHPSESSID']) 
     9        { 
     10            session_start(); 
     11        } 
     12//        $this->qry_ = new DBQuery(); 
     13//        $this->sql_ = "select * 
     14//                       from kb3_sessions ses 
     15//                      where ses.ses_id = '" . $cookie . "' 
     16//                      and ses.ses_ip = '" . $ip . "'"; 
    1317    } 
    1418 
    1519    function isAdmin() 
    1620    { 
     21        return isset($_SESSION['admin']); 
     22 
    1723        $this->execQuery(); 
    1824        return $this->qry_->recordCount() == 1; 
     
    2127    function isSuperAdmin() 
    2228    { 
     29        return isset($_SESSION['admin_super']); 
     30 
    2331        $this->execQuery(); 
    2432        return ($this->qry_->recordCount() == 1 && $this->row_['ses_super'] == 1); 
     
    2735    function execQuery() 
    2836    { 
     37        return true; 
     38 
    2939        if (!$this->qry_->executed_) 
    3040            $this->qry_->execute($this->sql_); 
     
    3545    function cleanup() 
    3646    { 
     47        return true; 
     48 
    3749        $qry = new DBQuery(); 
    3850        $qry->execute("delete from kb3_sessions 
     
    4254    function create($super) 
    4355    { 
    44         $current = time(); 
    45         $random = $_SERVER['REMOTE_ADDR'] . $current . KB_SITE; 
    46         $ses_id = md5($random); 
    47  
    48         if (!setcookie("EVK_COOKIE", $ses_id, 0)) 
    49             die("Unable to set cookie"); 
    50  
    51         $qry = new DBQuery(); 
    52         $qry->execute("insert into kb3_sessions values ('" . $ses_id . "', 
    53                                                         '" . $_SERVER['REMOTE_ADDR'] . "', 
    54                                                         now(), " . $super . " )"); 
     56        session_start(); 
     57        $_SESSION['admin'] = 1; 
     58        $_SESSION['admin_super'] = $super; 
     59//        $current = time(); 
     60//        $random = $_SERVER['REMOTE_ADDR'] . $current . KB_SITE; 
     61//        $ses_id = md5($random); 
     62// 
     63//        if (!setcookie("EVK_COOKIE", $ses_id, 0)) 
     64//            die("Unable to set cookie"); 
     65// 
     66//        $qry = new DBQuery(); 
     67//        $qry->execute("insert into kb3_sessions values ('" . $ses_id . "', 
     68//                                                        '" . $_SERVER['REMOTE_ADDR'] . "', 
     69//                                                        now(), " . $super . " )"); 
    5570    } 
    5671} 
  • dev/common/comments.php

    r16 r30  
    2121 
    2222    $pw = false; 
    23     if (!$config->getConfig('comments_pw')) 
     23    if (!$config->getConfig('comments_pw') || $page->isAdmin()) 
    2424    { 
    2525        $pw = true; 
     
    2727    if ($_POST['password'] == $config->getPostPassword() || $pw) 
    2828    { 
    29         if ($_POST['comment'] == null) 
     29        if ($_POST['comment'] == '') 
    3030        { 
    3131            $html .= "Error: Sillent type hey? good for you, bad for a comment."; 
     
    8181$html .= "<b>Name:</b>"; 
    8282$html .= "<input style=\"position:relative; right:-3px;\" class=\"comment-button\" name=\"name\" type=\"text\" size=\"24\" maxlength=\"24\">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"; 
    83 if ($config->getConfig('comments_pw')) 
     83if ($config->getConfig('comments_pw') && !$page->isAdmin()) 
    8484{ 
    8585    $html .= "<br><b>Password:</b>"; 
  • dev/common/index.php

    r24 r30  
    11<?php 
    2 require_once("db.php"); 
    3 require_once("class.killboard.php"); 
     2require_once('db.php'); 
     3require_once('class.killboard.php'); 
    44 
    5 $page = str_replace(".", "", $_GET['a']); 
    6 $page = str_replace("/", "", $page); 
    7  
    8 require_once("config.php"); 
    9  
    10 $killboard = new Killboard(KB_SITE); 
    11 //if ($killboard->isSuspended()) 
    12 //    $page = "suspended"; 
    13  
    14 if (substr($_SERVER['HTTP_USER_AGENT'], 0, 15) == "EVE-minibrowser" && $page != "igb" && $page != "post_igb" && $page != "portrait_grab" && $page != "bills") 
    15     $page = "igb"; 
    16      
    17 if ($page == "") 
    18     $page = "home"; 
    19 if(substr($page,0,9) == "settings_"){ 
    20         $settingsPage = true; 
     5$page = str_replace('.', '', $_GET['a']); 
     6$page = str_replace('/', '', $page); 
     7if ($page == '') 
     8{ 
     9    $page = 'home'; 
    2110} 
    22 $config = $killboard->getConfig(); 
    23 $mods_active = explode(",",$config->getConfig("mods_active")); 
    24 $modOverrides = false; 
    25 foreach($mods_active as $mod){ 
    26         if(file_exists("mods/$mod/$page.php")){ 
    27                 if($modOverrides) die("Error: Two or more of the mods you have activated are conflicting"); 
    28                 $modOverrides = true; 
    29                 $modOverride = $mod; 
    30         } 
    31 } 
    32 if(!$settingsPage && !file_exists("common/".$page.".php") && !$modOverrides){ 
    33     $page = "home"; 
     11if (substr($_SERVER['HTTP_USER_AGENT'], 0, 15) == 'EVE-minibrowser' && $page != 'igb' && $page != 'post_igb' && $page != 'portrait_grab' && $page != 'bills') 
     12{ 
     13    $page = 'igb'; 
    3414} 
    3515 
    36 if (KB_CACHE == 1 && count($_POST) == 0 && !in_array($page, $cacheignore)) $docache = true; 
     16require_once('config.php'); 
     17$killboard = new Killboard(KB_SITE); 
     18$config = $killboard->getConfig(); 
     19// if ($killboard->isSuspended()) 
     20// $page = 'suspended'; 
     21 
     22if (substr($page, 0, 9) == 'settings_') 
     23{ 
     24    $settingsPage = true; 
     25} 
     26$mods_active = explode(',', $config->getConfig('mods_active')); 
     27$modOverrides = false; 
     28foreach ($mods_active as $mod) 
     29{ 
     30    if (file_exists('mods/'.$mod.'/'.$page.'.php')) 
     31    { 
     32        if ($modOverrides) 
     33        { 
     34            die('Error: Two or more of the mods you have activated are conflicting'); 
     35        } 
     36        $modOverrides = true; 
     37        $modOverride = $mod; 
     38    } 
     39} 
     40if (!$settingsPage && !file_exists('common/'.$page.'.php') && !$modOverrides) 
     41{ 
     42    $page = 'home'; 
     43} 
     44 
     45if (KB_CACHE == 1 && count($_POST) == 0 && !in_array($page, $cacheignore)) 
     46{ 
     47    $docache = true; 
     48} 
    3749 
    3850if ($docache) 
    3951{ 
    40     if (!file_exists(KB_CACHEDIR . "/" . KB_SITE)) 
    41         @mkdir(KB_CACHEDIR . "/" . KB_SITE); 
     52    if (!file_exists(KB_CACHEDIR . '/' . KB_SITE)) 
     53    { 
     54        @mkdir(KB_CACHEDIR . '/' . KB_SITE); 
     55    } 
    4256 
    43     if ($cachetimes[$page]) $cachetime = $cachetimes[$page]; 
    44     else $cachetime = 5; 
     57    if ($cachetimes[$page]) 
     58    { 
     59        $cachetime = $cachetimes[$page]; 
     60    } 
     61    else 
     62    { 
     63        $cachetime = 5; 
     64    } 
    4565 
    4666    $cachetime = $cachetime * 60; 
    4767 
    48     $cachefile = KB_CACHEDIR . "/" . KB_SITE . "/" . md5($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']) . ".cache"; 
     68    $cachefile = KB_CACHEDIR . '/' . KB_SITE . '/' . md5($_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']) . '.cache'; 
    4969    $timestamp = ((@file_exists($cachefile))) ? @filemtime($cachefile) : 0; 
    5070 
     
    6080} 
    6181 
    62 if($settingsPage) include ("mods/" . substr($page,9,strlen($page)-9) . "/settings.php"); 
    63 elseif($modOverrides) include("mods/$modOverride/" . $page . ".php"); 
    64 else include("common/" . $page . ".php"); 
     82if ($settingsPage) 
     83{ 
     84    include ('mods/'.substr($page, 9, strlen($page)-9).'/settings.php'); 
     85} 
     86elseif ($modOverrides) 
     87{ 
     88    include('mods/'.$modOverride.'/'.$page.'.php'); 
     89} 
     90else 
     91{ 
     92    include('common/'.$page.'.php'); 
     93} 
    6594 
    6695if ($docache) 
     
    6897    $fp = @fopen($cachefile, 'w'); 
    6998    @fwrite($fp, ob_get_contents()); 
    70     @fwrite($fp, "<!-- Generated from cache -->"); 
     99    @fwrite($fp, '<!-- Generated from cache -->'); 
    71100    @fclose($fp); 
    72101    ob_end_flush();