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

project.php

<?php
    
function get_project()
    {
        global 
$logged_user$page_title$project_admin$feed$feed_bottom$url;
        
        if (!isset(
$_GET['subact'])) $_GET['subact'] = '';
        
        
$vars null;
        
$id intval($_GET['id']);
        
        
$result mysql_query('SELECT `name`, `category`, `options`, `description`, `positions`, `staff`, `hiring`, `subscribers`, `overview` FROM `projects` WHERE `id` = '.$id.' LIMIT 1;');
        
$project_row mysql_fetch_row($result);
        
        
$project_admin false;
        if (
$logged_user != -1)
        {
            
$staff explode(';'$project_row[5]);
            
            foreach (
$staff as $value)
            {
                
$staff_ex explode('-'$value);
                if ((
$staff_ex[0] == $logged_user) && ($staff_ex[1] == 0))
                    
$project_admin true;
            }
        }
        
        
$downloads = (intval($project_row[2]) & 1);
        
$media = (intval($project_row[2]) & 2);
        
$roadmap = (intval($project_row[2]) & 4);
        
$bugtracker = (intval($project_row[2]) & 8);

        switch (
$_GET['subact'])
        {
            case 
'news':
                
$page_title escape_html($project_row[0]) . ' - News';
                
$content get_news_page($project_row$id);
                
$key 'News';
            break;
            
            case 
'media':
                
$page_title escape_html($project_row[0]) . ' - Media';
                
$content get_media_main($project_row$id);
                
                if (!
$media$content '';
                
                
$key 'Media';
            break;
            
            case 
'downloads':
                
$page_title escape_html($project_row[0]) . ' - Downloads';
                
$content $vars['CONTENT'] = get_down_main($project_row$prj_id);
                
                if (!
$downloads$content '';
                
                
$key 'Downloads';
            break;
            
            case 
'roadmap':
                
$page_title escape_html($project_row[0]) . ' - Roadmap';
                
$content 'To Do';
                
                if (!
$roadmap$content '';
                
                
$key 'Roadmap';
            break;
            
            case 
'bugtracker':
                
$page_title escape_html($project_row[0]) . ' - Bugtracker';
                
$content get_tracker_main($project_row$id);
                
                if (!
$bugtracker$content '';
                
                
$key 'Bugtracker';
            break;
            
            case 
'admin':
                
$page_title escape_html($project_row[0]) . ' - Administration';
                if (
$project_admin)
                {
                    
$content get_admin($project_row$id);
                }
                else
                {
                    
$content 'Access Denied.';
                }
                
                
$key 'Admin';
            break;
            
            default:
                
$page_title escape_html($project_row[0]);
                
$content get_prj_main($project_row$id);
                
                
$key 'News';
            break;
        }
        
        
$href create_link($project_row[1], $id$project_row[0]);
        
$menus['News'] = $href;
        if (
$downloads$menus['Downloads'] = ($href 'downloads/');
        if (
$media$menus['Media'] = ($href 'media/');
        if (
$roadmap$menus['Roadmap'] = ($href 'roadmap/');
        if (
$bugtracker$menus['Bugtracker'] = ($href 'bugtracker/');
        if (
$project_admin$menus['Admin'] = ($href 'admin/');
        
$menus_html '';
        
        
$inside $key;
        foreach (
$menus as $key => $value)
        {
            if (
$key == $inside)
                
$style ' style="font-weight: bold; color: white"';
            else
                
$style '';
            
            
$menus_html .= "<a href=\"$value\" class=\"prj_menu\"$style>$key</a>";
        }
        
        
$vars['PRJ_ID'] = $id;
        
$vars['PRJ_NAME'] = escape_html(filter_bad_words($project_row[0]));
        
$vars['CONTENT'] = $content;
        
$vars['MENUS'] = $menus_html;
        
        if (
$logged_user > -1)
        {
            
$user get_user($logged_user);
            
$subs_ex explode(';'$user[3]);
        }
        
        if (isset(
$_POST['subscriptions']) && ($logged_user > -1))
        {
            
$sum 0;
            
            if (
$_POST['news'])
                
$sum += 1;
            
            if (
$_POST['news_com'])
                
$sum += 2;
            
            if (
$_POST['med_com'])
                
$sum += 4;
            
            if (
$_POST['bug'])
                
$sum += 8;
            
            if (
$_POST['bug_stat'])
                
$sum += 16;
            
            if (
$_POST['med'])
                
$sum += 32;
            
            
$new '';
            if (
sizeof($subs_ex) == 1)
            {
                if (
$sum == 0)
                    
$new $subs_ex[0];
                else
                    
$new $subs_ex[0] . ';' $id ';' $sum;
            }
            else
            {
                
$new $subs_ex[0];
                
$updated false;
                for (
$i 1$i sizeof($subs_ex); $i += 2)
                {
                    if (
$subs_ex[$i] == $id)
                    {
                        if (
$sum 0)
                            
$new .= ';' $id ';' $sum;
                        
                        
$updated true;
                    }
                    else
                        
$new .= ';' $subs_ex[$i] . ';' $subs_ex[$i+1];
                }
                
                if (!
$updated)
                    if (
$sum 0)
                        
$new .= ';' $id ';' $sum;
            }
            
            
mysql_query('UPDATE `users` SET `subscriptions` = \'' $new '\' WHERE `id` = ' $logged_user ' LIMIT 1');
            
$subs_ex explode(';'$new);
            
            
$project_row[7] = update_project_subscriptions($id);
        }
        
        if (
$logged_user == -1)
            
$vars['SUBSCRIBE'] = '<div style="font-style: italic">Please log in.</div>';
        else
        {
            
$cnew false;
            
$cnew_com false;
            
$cmed_com false;
            
$cbug false;
            
$cbug_stat false;
            
$cmed false;
            if (
sizeof($subs_ex) > 1)
            {
                for (
$i 1$i sizeof($subs_ex); $i += 2)
                {
                    if (
$subs_ex[$i] == $id)
                    {
                        
$cnew = ($subs_ex[$i+1] & 1);
                        
$cnew_com = ($subs_ex[$i+1] & 2);
                        
$cmed_com = ($subs_ex[$i+1] & 4);
                        
$cbug = ($subs_ex[$i+1] & 8);
                        
$cbug_stat = ($subs_ex[$i+1] & 16);
                        
$cmed = ($subs_ex[$i+1] & 32);
                    }
                }
            }
            
            
$vars['SUBSCRIBE'] = 'To get news about this project subscribe here:<br />
            <form action="" method="post">
                <input type="hidden" name="subscriptions" />
                <input type="checkbox" name="news" onclick="submit()" '
.(($cnew) ? 'checked="checked" ':'').'/> News<br />
                <input type="checkbox" name="news_com" onclick="submit()" '
.(($cnew_com) ? 'checked="checked" ':'').'/> News Comments<br />
                <input type="checkbox" name="med_com" onclick="submit()" '
.(($cmed_com) ? 'checked="checked" ':'').'/> Media Comments<br />
                <input type="checkbox" name="bug" onclick="submit()" '
.(($cbug) ? 'checked="checked" ':'').'/> Bug Report<br />
                <input type="checkbox" name="bug_stat" onclick="submit()" '
.(($cbug_stat) ? 'checked="checked" ':'').'/> Bug Status Change<br />
                <input type="checkbox" name="med" onclick="submit()" '
.(($cmed) ? 'checked="checked" ':'').'/> Media Uploaded
            </form>'
;
        }
        
        
$vars['COUNT'] = $project_row[7];
        
        
$feed '<link rel="alternate" type="application/rss+xml" title="' escape_html($project_row[0]) . ' News (TVProjects)" href="' $url 'rss.php?id=' intval($_GET['id']) . '" />';
        
$feed_bottom ' <a href="' $url 'rss.php?id=' intval($_GET['id']) . '"><img src="./images/rss.gif" alt="' escape_html($project_row[0]) . ' News (TVProjects)" style="border: none" /></a>';
        return 
get_template('project_struct'$vars);
    }
    
    function 
process_positions($positions_un)
    {
        
$positions explode(';'$positions_un);
        
$staff explode(';'$staff_un);
        
        foreach (
$staff as $key => $value)
        {
            
$ret[$key] = $value;
        }
        
        return 
$ret;
    }
    
    function 
get_prj_main($project_row$id)
    {
        global 
$project_admin;
        
        
$vars['PRJ_NAME'] = escape_html($project_row[0]);
        
$vars['PRJ_DESC'] = xss_safe($project_row[3]);
        
        
$positions explode(';'$project_row[4]);
        
$staff explode(';'$project_row[5]);
        
$vars['TEAM_LIST'] = '';
        
$first true;
        foreach (
$staff as $value)
        {
            if (!
$first$vars['TEAM_LIST'] .= '<br />';
            
            
$staff_ex explode('-'$value);
            
$user get_user($staff_ex[0]);
            
$vars['TEAM_LIST'] .= '<img src="images/arrow.png" alt="arrow" style="text-align: center" /> <a href="users/' $staff_ex[0] . '-' format_title_address($user[1]) . '/" style="color: black; text-decoration: none;">' escape_html($user[1]) . '</a> (' escape_html($positions[$staff_ex[1]]) . ')';
            
            
$first false;
        }
        
        
$vars['OVERVIEW'] = '';
        if (
trim($project_row[8]) != '')
            
$vars['OVERVIEW'] = get_template('prj_overview', array('TEXT' => $project_row[8]));
        
        
$vars['NEWS'] = '';
        
$news_result mysql_query('SELECT `id`, `title`, `text`, `author`, `date` FROM `news` WHERE `project` = ' $id ' ORDER BY `date` DESC;');
        
        if (
mysql_num_rows($news_result) == 0)
            
$vars['NEWS'] = '<div style="font-style: italic">Sorry, no news available.</div>';
        
        while (
$row mysql_fetch_assoc($news_result))
        {
            
$news_vars['TITLE'] = escape_html(filter_bad_words($row['title']));
            
$news_vars['TEXT'] = nl2br(filter_bad_words(make_shorter(preg_replace('/<[a-zA-Z\/][^>]*>/'''str_replace('<br />'"\n"$row['text'])), 500)));
            
$author get_user($row['author']);
            
$news_vars['AUTHOR'] = escape_html(filter_bad_words($author[1]));
            
$news_vars['AUTHOR_LINK'] = 'users/' $row['author'] . '-' format_title_address(filter_bad_words($author[1])) . '/';
            
$news_vars['DATE'] = date('d/m/y H:i:s'$row['date']);;
            
$news_vars['LINK'] = create_link($project_row[1], $idfilter_bad_words($project_row[0])) . 'news/' $row['id'] . '-' format_title_address(filter_bad_words($row['title'])) . '/';
            
            
$vars['NEWS'] .= get_template('main_news'$news_vars);
        }
        
        if (
$project_row[6] == '')
        {
            
$vars['HIRING'] = '';
        }
        else
        {
            
$hiring_vars['HIRING'] = xss_safe($project_row[6]);
            
$hiring_vars['NAME'] = escape_html($project_row[0]);
            
$vars['HIRING'] = get_template('hiring'$hiring_vars);
        }
        
        if (
$project_admin)
        {
            
$vars['NEWS'] = '<a href="' create_link($project_row[1], $id$project_row[0]) . 'admin/news/" style="font-style: italic; font-size: 10px">[Post News]</a>' $vars['NEWS'];
        }

        return 
get_template('prj_main'$vars);
    }
    
    function 
get_project_by_id($id)
    {
        
$result mysql_query('SELECT `name` FROM `projects` WHERE `id` = ' $id ' LIMIT 1;');
        
        if (
mysql_num_rows($result) == 0)
        {
            die(
'Error! No rows returned in get_project_by_id().');
        }
        
        
$row mysql_fetch_row($result);
        return 
$row[0];
    }
    
    function 
get_news_page($project_row$project_id)
    {
        global 
$logged_user$project_admin$url;
        
        
$temp explode('-'$_GET['params']);
        
$id intval($temp[0]);
        
        
$result mysql_query('SELECT `title`, `text`, `author`, `date`, `comments` FROM `news` WHERE `id` = ' $id ' LIMIT 1;');
        
        if (
mysql_num_rows($result) == 0)
            return 
'No news found.';
            
        
$row mysql_fetch_row($result);
        
        
$update comments_update($row[4]);
        if (
$update != null)
        {
            
mysql_query('UPDATE `news` SET `comments` = \'' db_escape($update) . '\' WHERE `id` = ' $id ' LIMIT 1;');
            
$row[4] = $update;
            
tell_users(2$project_id'A new comment had been posted in ' $project_row[0], "Read more:\n" $url create_link($project_row[1], $project_id$project_row[0]) . 'news/' $id '-' format_title_address($row[0]));
        }
        
        
$vars null;
        
$vars['TITLE'] = escape_html(filter_bad_words($row[0]));
        
$vars['DATE'] = date('d/m/y H:i:s'$row[3]);
        
$vars['PROJECT'] = escape_html(filter_bad_words($project_row[0]));
        
$vars['IMAGE'] = 'projects_images/' $project_id '.png';
        
$vars['TEXT'] = filter_bad_words(xss_safe($row[1]));
        
        
$vars['TEXT'] = preg_replace('/\[youtube\]http:\/\/www\.youtube\.com\/watch\?v=([^&]+)(.*)\[\/youtube\]/i',
                                    
'<object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/\\1&hl=en&fs=1&"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/\\1&hl=en&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object>',
                                    
$vars['TEXT']);
        
        
$author get_user($row[2]);
        
$vars['AUTHOR'] = filter_bad_words(escape_html($author[1]));
        
$vars['AUTHOR_LINK'] = 'users/' $row[2] . '-' format_title_address(filter_bad_words($author[1])) . '/';
        
$vars['COMMENTS'] = comments_process($row[4]);
        
        
$icon_size getimagesize('projects_images/' $project_id '.png');
        
$size get_image_size($icon_size[0], $icon_size[1], 88);
        
$vars['WIDTH'] = $size[0];
        
$vars['HEIGHT'] = $size[1];
        
        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], $project_idfilter_bad_words($project_row[0])) . 'admin/news/' $id '" style="font-style: italic; font-size: 10px">[Edit]</a>' get_template('read_news'$vars);
        }
        else
        {
            return 
get_template('read_news'$vars);
        }
    }
    
    function 
plain_to_link($text) {
        
$text eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:\+.~#?&//=_]+)','<a href="\\1">\\1</a>'$text);
        
$text eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:\+.~#?&//=_]+)','<a href="\\1">\\1</a>'$text);
        
$text eregi_replace('([_\.0-9a-z-]+@([0-9a-z][0-9a-z-]+\.)+[a-z]{2,3})','<a href="\\1">\\1</a>'$text);
        
        return 
$text;
    }
    
    function 
update_project_subscriptions($id)
    {
        
$result mysql_query('SELECT `subscriptions` FROM `users` WHERE `subscriptions` LIKE \'%;' $id ';%\';');
        
        
$count 0;
        while (
$row mysql_fetch_assoc($result))
        {
            
$ex explode(';'$row['subscriptions']);
            if (
sizeof($ex) > 1)
            {
                for (
$i 1$i sizeof($ex); $i += 2)
                    if (
$ex[$i] == $id)
                        
$count += 1;
            }
        }
        
        
mysql_query('UPDATE `projects` SET `subscribers` = ' $count ' WHERE `id` = ' $id ' LIMIT 1;');
        
        return 
$count;
    }
    
    function 
tell_users($event$prj$title$text)
    {
        
$users = array();
        
        if ((
$prj == -1) or ($event == 1))
        {
            if (
$prj == -1)
                
$check $event;
            else
                
$check 2;
            
            
$result mysql_query('SELECT `id`, `email`, `subscriptions` FROM `users`;');
            while (
$row mysql_fetch_row($result))
            {
                
$ex explode(';'$row[2]);
                if (
$ex[0] & $check)
                    
$users[$row[0]] = $row;
            }
        }
        
        if (
$prj > -1)
        {
            
$result mysql_query('SELECT `id`, `email`, `subscriptions` FROM `users`;');
            while (
$row mysql_fetch_row($result))
            {
                
$ex explode(';'$row[2]);
                for (
$i 1$i sizeof($ex); $i++)
                {
                    if (
$ex[$i] == $prj)
                    {
                        if (
$ex[$i+1] & $event)
                            
$users[$row[0]] = $row;
                    }
                }
            }
        }
        
        if (
sizeof($users) > 0)
        {
            foreach (
$users as $user)
                
mail($user[1], $title$text'From: noreply@noreplyland.com');
        }
        
/*
            $prj = -1; $event = 1
                Users, First: Have 1;
            
            $prj = -1; $event = 4
                Users, First: Have 4;
            
            $prj > -1;
                $event = 1
                    Users, First: Have 1
                    +
                    Users, prj: have 1
                
                $event > 1
                    Users, prj: have event
        */
    
}
?>