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
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], $id, filter_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_id, filter_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
*/
}
?>


