TVProjects top



TVProjects bottom
You are not registered.
Registration allows you to subscribe to projects, open projects, and more. Click here to register.

Website Source Code
<< Back

bugtracker.php

<?php
    
function get_tracker_main($project_row$id)
    {
        if (isset(
$_GET['params']))
        {
            if (
$_GET['params'] == 'send/')
            {
                return 
get_tracker_send($project_row$id);
            }
            else
            {
                return 
get_tracker_report($project_row$id);
            }
        }
        else
        {
            return 
get_tracker_listing($project_row$id);
        }
    }
    
    function 
get_tracker_send($project_row$id)
    {
        global 
$logged_user$url;
        
        if (isset(
$_POST['title']) and ($_POST['title'] != '') and isset($_POST['desc']) and ($logged_user != -1))
        {
            
mysql_query('INSERT INTO `bugtracker` (`project`, `status`, `title`, `text`, `date`, `author`) VALUES (' $id ', 0, \'' db_escape($_POST['title']) . '\', \'' db_escape($_POST['desc']) . '\', NOW(), ' $logged_user ');');
            
tell_users(8$id'A new bug had been reported in ' $project_row[0], "Read more:\n" $url create_link($project_row[1], $id$project_row[0]) . 'bugtracker/' mysql_insert_id() . '-' format_title_address($_POST['title']));
            return 
'<div style="font-family: Tahoma; font-size: 20px;">The report has been successfuly sent.</div>';
        }
        else
        {
            if (
$logged_user == -1)
            {
                return 
'<div style="font-family: Tahoma; font-size: 20px;">Sending a Bug Report</div>
                        <div style="font-family: Arial; font-size: 15px; font-style: italic">Sorry, you have to be logged in in order to report a bug.</div>'
;
            }
            else
            {
                
$vars['TEST'] = 'test';
                return 
get_template('report_bug'$vars);
            }
        }
    }
    
    function 
get_tracker_report($project_row$id)
    {
        global 
$logged_user$project_admin;
        
        
$status = array('Open''In Progress''Waiting for User Response''Resolved''Closed');
        
$colors = array('008000''008000; font-style: italic''8f8f8f''8f8f8f; font-style: italic''ff0000');
        
        
$ex explode('-'$_GET['params']);
        
$bug_id intval($ex[0]);
        
        
$result mysql_query('SELECT `status`, `title`, `text`, `author`, `comments`, `date` FROM `bugtracker` WHERE `id` = ' $bug_id ' LIMIT 1;');
        
$row mysql_fetch_row($result);
        
        
$update comments_update($row[4]);
        if (
$update != null)
        {
            
mysql_query('UPDATE `bugtracker` SET `comments` = \'' db_escape($update) . '\' WHERE `id` = ' $bug_id ' LIMIT 1;');
            
$row[4] = $update;
        }
        
        
$vars['TITLE'] = escape_html($row[1]);
        
$vars['STATUS'] = $status[$row[0]];
        
$vars['COLOR'] = $colors[$row[0]];
        
$user get_user($row[3]);
        
$vars['AUTHOR'] = escape_html($user[1]);
        
$vars['AUTHOR_LINK'] = 'users/' $row[3] . '-' format_title_address($user[1]) . '/';
        
$vars['TEXT'] = xss_safe($row[2]);
        
//$vars['TEXT'] = nl2br(plain_to_link(escape_html($row[2])));
        
$vars['DATE'] = $row[5];
        
$vars['COMMENTS'] = comments_process($row[4]);
        
        if (
$logged_user == -1)
        {
            
$vars['SEND_COMMENT'] = '<div style="font-style: italic">You have to be registered to post comments.</div>';
        }
        else
        {
            
$send_vars['NOTHING'] = 'nothing';
            
$vars['SEND_COMMENT'] = get_template('send_comment'$send_vars);
        }
        
        if (
$project_admin)
        {
            return 
'<a href="' create_link($project_row[1], $id$project_row[0]) . 'admin/bugtracker/' $bug_id '" style="font-style: italic; font-size: 10px">[Change Status]</a><br /><br />' get_template('show_bug'$vars);
        }
        else
        {
            return 
get_template('show_bug'$vars);
        }
    }
    
    function 
get_tracker_listing($project_row$id)
    {
        global 
$categories;
        
        
$bold '<span style="font-weight: bold">';
        
$status = array('Open''In Progress''Waiting for User Response''Resolved''Closed');
        
$colors = array('008000''008000; font-style: italic''8f8f8f''8f8f8f; font-style: italic''ff0000');
        
$vars['SEND_LINK'] = create_link($project_row[1], $id$project_row[0]) . 'bugtracker/send/';
        
        if (!isset(
$_POST['search']))
        {
            
$query 'SELECT `id`, `status`, `title`, `author` FROM `bugtracker` WHERE `project` = ' db_escape($id) . ' ORDER BY `date` DESC;';
            
$vars['SEARCH'] = '';
            
            for (
$i 0$i <= 4$i++)
                
$vars['CHK_' $i] = ' checked="checked"';

            
$vars['AFTER_JS'] = '';
            
$vars['SHOWING'] = $bold 'every</span> bug report';
        }
        else
        {
            
$vars['SEARCH'] = escape_html($_POST['search']);
            
            
$where '';
            
$checked_list = array();
            for (
$i 0$i <= 4$i++)
            {
                if (isset(
$_POST['chk_'.$i]))
                {
                    
$checked_list[] = $i;
                    
                    if (
$where != '')
                        
$where .= ' OR ';
                    
$where .= '`status` = ' $i;
                    
                    
$vars['CHK_' $i] = ' checked="checked"';
                }
                else
                {
                    
$vars['CHK_' $i] = '';
                }
            }
            
            if (
sizeof($checked_list) == 5)
            {
                
$listing $bold 'every</span> bug report';
            }
            else
            {
                
$listing '';
                for (
$i 0$i count($checked_list); $i++)
                {
                    if ((
$i == (count($checked_list) - 1)) and ($i != 0))
                    {
                        
$listing .= ' or ';
                    }
                    elseif (
$i != 0)
                    {
                        
$listing .= ', ';
                    }
                    
                    
$listing .= $bold $status[$checked_list[$i]] . '</span>';
                }
                
$listing .= ' bug reports';
            }
            
            if (
$_POST['search'] != '')
                
$listing .= ' that contains the phrase "' $bold escape_html($_POST['search']) . '</span>"';
            
            
$vars['SHOWING'] = $listing;
            
$vars['AFTER_JS'] = 'toggle_search();';
            
            
$query 'SELECT `id`, `status`, `title`, `author` FROM `bugtracker` WHERE `project` = ' db_escape($id) . ' AND (`title` LIKE \'%' db_escape($_POST['search']) . '%\' OR `text` LIKE \'%' db_escape($_POST['search']) . '%\')' . (($where != '') ? ' AND (' $where ');' ' ORDER BY `date` DESC;');
        }
        
        
$result mysql_query($query);
        
        if (
mysql_num_rows($result) == 0)
        {
            
$vars['LIST'] = '<tr><td colspan="4" style="font-style: italic">No bug reports found.</td></tr>';
        }
        else
        {
            
$vars['LIST'] = '';
            while (
$row mysql_fetch_assoc($result))
            {
                
$vars['LIST'] .= '<tr>';
                
$vars['LIST'] .= '<td class="bt_td" style="text-align: center">#' $row['id'] . '</td>';
                
$vars['LIST'] .= '<td class="bt_td"><a href="' create_link($project_row[1], $id$project_row[0]) . 'bugtracker/' $row['id'] . '-' format_title_address($row['title']) . '/">' escape_html($row['title']) . '</a></td>';
                
$vars['LIST'] .= '<td class="bt_td" style="text-align: center; color: #' $colors[$row['status']] . '">' $status[$row['status']] . '</td>';
                
$user get_user($row['author']);
                
$vars['LIST'] .= '<td class="bt_td" style="text-align: center"><a href="users/' $row['author'] . '-' format_title_address($user[1]) . '/" style="color: black">' escape_html($user[1]) . '</a></td>';
                
$vars['LIST'] .= '</tr>';
            }
        }
        
        return 
get_template('bugtracker'$vars);
    }
?>