[Phpbbproject-svn] SF.net SVN: phpbbproject: [277] trunk
phpBB download manager, mainly aimed at MOD authors
Status: Planning
Brought to you by:
lord_le_brand
From: <lor...@us...> - 2008-05-05 19:20:09
|
Revision: 277 http://phpbbproject.svn.sourceforge.net/phpbbproject/?rev=277&view=rev Author: lord_le_brand Date: 2008-05-05 12:20:09 -0700 (Mon, 05 May 2008) Log Message: ----------- Rearrage trackers module Added license_description Use project_build_select() for categories and licenses Modified Paths: -------------- trunk/develop/create_schema_files_phpbb3.php trunk/develop/todo_list.txt trunk/phpbb3/root/includes/project/project_main.php trunk/phpbb3/root/includes/project/project_trackers.php trunk/phpbb3/root/styles/prosilver/template/project_create.html Modified: trunk/develop/create_schema_files_phpbb3.php =================================================================== --- trunk/develop/create_schema_files_phpbb3.php 2008-05-04 00:34:46 UTC (rev 276) +++ trunk/develop/create_schema_files_phpbb3.php 2008-05-05 19:20:09 UTC (rev 277) @@ -1100,11 +1100,12 @@ $schema_data['phpbb_project_licenses'] = array( 'COLUMNS' => array( - 'license_id' => array('TINT:3', NULL, 'auto_increment'), - 'license_title' => array('XSTEXT_UNI', ''), - 'license_acronym' => array('VCHAR:15', ''), - 'license_text' => array('MTEXT_UNI', ''), - 'license_url' => array('STEXT_UNI', ''), + 'license_id' => array('TINT:3', NULL, 'auto_increment'), + 'license_title' => array('XSTEXT_UNI', ''), + 'license_acronym' => array('VCHAR:15', ''), + 'license_description' => array('TEXT_UNI', ''), + 'license_text' => array('MTEXT_UNI', ''), + 'license_url' => array('STEXT_UNI', ''), ), 'PRIMARY_KEY' => 'license_id', ); Modified: trunk/develop/todo_list.txt =================================================================== --- trunk/develop/todo_list.txt 2008-05-04 00:34:46 UTC (rev 276) +++ trunk/develop/todo_list.txt 2008-05-05 19:20:09 UTC (rev 277) @@ -1,7 +1,5 @@ Todo list for phpBB Project -- Make a TODO tracker!!! -- When at it make a bug tracker and feature tracker :) - Add /languages and /templates support to download (and import) class - Author ordering in MOD(X) file/project overview page - Definitive decision on storing versioned files @@ -17,7 +15,12 @@ - Manage project - Diff generator - Docs (perhaps wiki-style?) - - Trackers script++ (also needed for this todo list, so step on it! xD) + - Trackers script + - Ticket actions + - Comments + - Manage actions + - Info file + - Template files - Projects Team CP (maybe a new *CP?) - Marx - Search Modified: trunk/phpbb3/root/includes/project/project_main.php =================================================================== --- trunk/phpbb3/root/includes/project/project_main.php 2008-05-04 00:34:46 UTC (rev 276) +++ trunk/phpbb3/root/includes/project/project_main.php 2008-05-05 19:20:09 UTC (rev 277) @@ -456,7 +456,7 @@ */ $category_ids = '1 = 1'; - $sql = 'SELECT * + $sql = 'SELECT category_id, category_title FROM ' . PROJECT_CATEGORIES_TABLE . " WHERE $category_ids ORDER BY left_id ASC"; @@ -467,7 +467,7 @@ $parent_id = 0; $padding = 0; - $padding_delimiter = '--'; + $padding_delimiter = ' '; for ($i = 0, $size = sizeof($categories); $i < $size; $i++) { @@ -476,30 +476,32 @@ $padding += ($categories[$i]['parent_id'] == $categories[$i-1]['category_id']) ? 1 : -1; } - $template->assign_block_vars('category', array( - 'CATEGORY_ID' => $categories[$i]['category_id'], - 'CATEGORY_TITLE' => str_repeat($padding_delimiter, $padding) . $categories[$i]['category_title'], - )); + $category_select[$categories[$i]['category_id']] = str_repeat($padding_delimiter, $padding) . $categories[$i]['category_title']; } $sql = 'SELECT license_id, license_title FROM ' . PROJECT_LICENSES_TABLE; $result = $db->sql_query($sql, 604800); - $licenses = $db->sql_fetchrowset($result); - $db->sql_freeresult($result); - for ($i = 0, $size = sizeof($licenses); $i < $size; $i++) + $license_select = array(); + while ($row = $db->sql_fetchrow($result)) { - $template->assign_block_vars('license', array( - 'LICENSE_ID' => $licenses[$i]['license_id'], - 'LICENSE_TITLE' => $licenses[$i]['license_title'], - )); + $license_select[$row['license_id']] = $row['license_title']; } + $db->sql_freeresult($result); /** * @todo Add description javascript + query */ + $category_id = (isset($data['category_id'])) ? $data['category_id'] : 0; + $license_id = (isset($data['project_license'])) ? $data['project_license'] : 0; + + $template->assign_vars(array( + 'CATEGORY_SELECT' => project_build_select($category_select, $category_id), + 'LICENSE_SELECT' => project_build_select($license_select, $license_id), + )); + add_form_key('project_create'); $this->tpl_name = 'project_create'; Modified: trunk/phpbb3/root/includes/project/project_trackers.php =================================================================== --- trunk/phpbb3/root/includes/project/project_trackers.php 2008-05-04 00:34:46 UTC (rev 276) +++ trunk/phpbb3/root/includes/project/project_trackers.php 2008-05-05 19:20:09 UTC (rev 277) @@ -43,6 +43,7 @@ $tracker_category = request_var('tcat', 0); $ticket_id = request_var('ticket', 0); $start = request_var('start', 0); + $action = request_var('action', ''); $sql = 'SELECT project_title FROM ' . PROJECT_PROJECTS_TABLE . " @@ -56,17 +57,15 @@ switch ($mode) { default: - case 'overview': + case 'main': // Get trackers for this project - $sql = 'SELECT t.*, types.*, COUNT(tc.*) AS tracker_categories, COUNT(tickets.*) AS tracker_tickets - FROM ' . PROJECT_TRACKERS_TABLE . ' t, ' . PROJECT_TRACKER_TYPES_TABLE . ' types, ' . PROJECT_TRACKER_CATEGORIES_TABLE . ' tc, ' . PROJECT_TRACKER_ENTRIES_TABLE . " tickets + $sql = 'SELECT t.*, ty.* + FROM ' . PROJECT_TRACKERS_TABLE . ' t, ' . PROJECT_TRACKER_TYPES_TABLE . " ty WHERE t.project_id = $project_id - AND types.tracker_type_id = t.tracker_type - AND tickets.tracker_id = t.tracker_id - AND tc.tracker_id = t.tracker_id + AND ty.tracker_type_id = t.tracker_type GROUP BY t.tracker_id - ORDER BY types.tracker_type_title ASC"; + ORDER BY ty.tracker_type_title ASC"; $result = $db->sql_query($sql, 604800); $trackers = $db->sql_fetchrowset($result); @@ -77,43 +76,22 @@ $template->assign_block_vars('tracker_row', array( 'TRACKER_TITLE' => $trackers[$i]['tracker_type_title'], 'TRACKER_DESCRIPTION' => $trackers[$i]['tracker_type_description'], - 'TRACKER_TICKETS' => $trackers[$i]['tracker_tickets'], - 'TRACKER_CATEGORIES' => $trackers[$i]['tracker_categories'], - 'U_TRACKER' => append_sid(PROJECT_BASE_URL, "i=trackers&mode=tickets&tid={$trackers[$i]['tracker_id']}"), + 'U_TRACKER' => _module_trackers_url(append_sid(PROJECT_BASE_URL, "i=trackers&mode=tracker&tid={$trackers[$i]['tracker_id']}")), )); } break; - case 'tickets': + case 'tracker': // Just redirect if $tracker_id is 0 if (!$tracker_id) { - $url_extra = _module_trackers_url('tickets', array()); - redirect(append_sid(PROJECT_BASE_URL, "i=trackers&mode=overview")); + $url_extra = _module_trackers_url('tracker', array()); + redirect(_module_trackers_url(append_sid(PROJECT_BASE_URL, 'i=trackers&mode=main'))); } - if ($tracker_category) - { - $sql = 'SELECT * - FROM ' . PROJECT_TRACKER_CATEGORIES_TABLE . " - WHERE category_id = $tracker_category"; - $result = $db->sql_query($sql, 604800); - $category_info = $db->sql_fetchrow($result); - $db->sql_freeresult($result); - - if ($category_info['is_private'] && !$is_author) - { - // @todo some error... - } - - $template->assign_vars(array( - // @todo stuff... - )); - } - $sql = 'SELECT COUNT(t.*) AS num_tickets FROM ' . PROJECT_TRACKER_TICKETS_TABLE . ' t, ' . PROJECT_TRACKER_CATEGORIES_TABLE . " c WHERE t.tracker_id = $tracker_id @@ -136,6 +114,21 @@ $tickets = $db->sql_fetchrowset($result); $db->sql_freeresult($result); + // Get category dropdown + $sql = 'SELECT * + FROM ' . PROJECT_TRACKER_CATEGORIES_TABLE . " + WHERE tracker_id = $tracker_id" . ((!$is_author) ? ' AND is_private = 0' : ''); + $result = $db->sql_query($sql, 604800); + + $category_select = array($user->lang['PROJECT_ALL_CATEGORIES']); + while ($row = $db->sql_fetchrow($result)) + { + $category_select[$row['category_id']] = $row['category_title']; + } + $db->sql_freeresult($result); + + $category_select = project_build_select($category_select, $category_id); + for ($i = 0, $size = sizeof($tickets); $i < $size; $i++) { $template->assign_block_vars('ticket_row', array( @@ -145,132 +138,169 @@ 'TICKET_AUTHOR' => get_username_string('full', $tickets[$i]['ticket_author'], project_get_author_name($tickets[$i]['ticket_author'])), 'TICKET_TIME' => $user->format_date($tickets[$i]['ticket_time']), - 'U_VIEW_TICKET' => append_sid(PROJECT_BASE_URL, "i=trackers&mode=view_ticket&tid=$tracker_id&ticket={$trackers[$i]['ticket_id']}"), + 'U_VIEW_TICKET' => _module_trackers_url(append_sid(PROJECT_BASE_URL, "i=trackers&mode=ticket&ticket={$trackers[$i]['ticket_id']}")), )); } - $pagination = generate_pagination(append_sid(PROJECT_BASE_URL, "i=trackers&mode=tickets" . _module_trackers_url('tickets', array())), $num_tickets, $config['project_tracker_tickets_per_page'], $start); + $pagination = generate_pagination(_module_trackers_url(append_sid(PROJECT_BASE_URL, "i=trackers&mode=tracker" . 'tracker', array())), $num_tickets, $config['project_tracker_tickets_per_page'], $start); break; - case 'view_ticket': + case 'ticket': if (!$ticket_id) { if ($tracker_id) { - redirect(append_sid(PROJECT_BASE_URL, 'i=trackers&mode=tickets' . _module_trackers_url('tickets', array()))); + redirect(_module_trackers_url(append_sid(PROJECT_BASE_URL, 'i=trackers&mode=tracker' . 'tracker', array()))); } else { - redirect(append_sid(PROJECT_BASE_URL, 'i=trackers&mode=overview')); + redirect(_module_trackers_url(append_sid(PROJECT_BASE_URL, 'i=trackers&mode=main'))); } } - // Display: Full ticket, category title, tracker (type) title, ticket status, author - // OMFG! See the size of this baby O_O; - $sql = 'SELECT t.*, c.category_title, c.is_private, type.tracker_type_title, tracker.tracker_id, s.*, u.username, u.user_colour - FROM ' . PROJECT_TRACKER_TICKETS_TABLE . ' t, ' . PROJECT_TRACKER_CATEGORIES_TABLE . ' c, ' . PROJECT_TRACKERS_TABLE . ' tracker, ' . PROJECT_TRACKER_TYPES_TABLE . ' tt, ' . PROJECT_TRACKER_STATUS_TABLE . ' s, ' . USERS_TABLE . " u - WHERE t.ticket_id = $ticket_id - AND c.category_id = t.tracker_category - AND type.tracker_type_id = tracker.tracker_type - AND tracker_tracker_id = t.tracker_id - AND s.status_id = t.ticket_status - AND u.user_id = t.ticket_author"; - $result = $db->sql_query($sql, 604800); - $ticket_info = $db->sql_fetchrow($result); - $db->sql_freeresult($result); - - if ($ticket_info['is_private'] && !$is_author) + switch ($action) { - // @todo Die, you hacker! - } + default: - $sql = 'SELECT COUNT(*) AS num_comments - FROM ' . PROJECT_TRACKER_COMMENTS_TABLE . " - WHERE ticket_id = $ticket_id"; - $result = $db->sql_query($sql, 604800); - $num_comments = $db->sql_fetchfield('num_comments', false, $result); - $db->sql_freeresult($result); + // Display: Full ticket, category title, tracker (type) title, ticket status, author + // OMFG! See the size of this baby O_O; + $sql = 'SELECT t.*, c.category_title, c.is_private, type.tracker_type_title, tracker.tracker_id, s.*, u.username, u.user_colour, COUNT(tc.*) as num_comments + FROM ' . PROJECT_TRACKER_TICKETS_TABLE . ' t, ' . PROJECT_TRACKER_CATEGORIES_TABLE . ' c, ' . PROJECT_TRACKERS_TABLE . ' tracker, ' . PROJECT_TRACKER_TYPES_TABLE . ' tt, ' . PROJECT_TRACKER_STATUS_TABLE . ' s, ' . USERS_TABLE . ' u, ' . PROJECT_TRACKER_COMMENTS_TABLE . " tc + WHERE t.ticket_id = $ticket_id + AND c.category_id = t.tracker_category + AND type.tracker_type_id = tracker.tracker_type + AND tracker_tracker_id = t.tracker_id + AND s.status_id = t.ticket_status + AND u.user_id = t.ticket_author + AND tc.ticket_id = t.ticket_id + GROUP BY t.ticket_id"; + $result = $db->sql_query($sql, 604800); + $ticket_info = $db->sql_fetchrow($result); + $db->sql_freeresult($result); - $sql = 'SELECT c.*, u.username, u.user_colour - FROM ' . PROJECT_TRACKER_COMMENTS_TABLE . ' c, ' . USERS_TABLE . " u - WHERE c.ticket_id = $ticket_id - ORDER BY c.comment_time ASC"; - $result = $db->sql_query_limit($sql, $config['project_tracker_comments_per_page'], $start, 86400); - $comments = $db->sql_fetchrowset($result); - $db->sql_freeresult($result); + if ($ticket_info['is_private'] && !$is_author) + { + // @todo Die, you hacker! + } - for ($i = 0, $size = sizeof($comments); $i < $size; $i++) - { - $template->assign_block_vars('comment_row', array( - 'COMMENT_TITLE' => $comments[$i]['comment_title'], - 'COMMENT_TEXT' => $comments[$i]['comment_text'], - 'COMMENT_DATE' => $user->format_date($comments[$i]['comment_time']), - 'COMMENT_AUTHOR' => get_username_string('full', $comments[$i]['comment_author'], $comments[$i]['username'], $comments[$i]['user_colour']), - )); - } + $sql = 'SELECT c.*, u.username, u.user_colour + FROM ' . PROJECT_TRACKER_COMMENTS_TABLE . ' c, ' . USERS_TABLE . " u + WHERE c.ticket_id = $ticket_id + ORDER BY c.comment_time ASC"; + $result = $db->sql_query_limit($sql, $config['project_tracker_comments_per_page'], $start, 86400); + $comments = $db->sql_fetchrowset($result); + $db->sql_freeresult($result); - $template->assign_vars(array( - 'TRACKER_TITLE' => $ticket_info['tracker_title'], - 'CATEGORY_TITLE' => $ticket_info['category_title'], + for ($i = 0, $size = sizeof($comments); $i < $size; $i++) + { + $template->assign_block_vars('comment_row', array( + 'COMMENT_TITLE' => $comments[$i]['comment_title'], + 'COMMENT_TEXT' => $comments[$i]['comment_text'], + 'COMMENT_DATE' => $user->format_date($comments[$i]['comment_time']), + 'COMMENT_AUTHOR' => get_username_string('full', $comments[$i]['comment_author'], $comments[$i]['username'], $comments[$i]['user_colour']), + )); + } - 'TICKET_TITLE' => $ticket_info['ticket_title'], - 'TICKET_DESCRIPTION' => $ticket_info['ticket_description'], - 'TICKET_DATE' => $user->format_date($ticket_info['ticket_time']), - 'TICKET_AUTHOR' => get_username_string('full', $ticket_info['ticket_author'], $ticket_info['username'], $ticket_info['user_colour']), - 'TICKET_STATUS' => $ticket_info['status_title'], + $template->assign_vars(array( + 'TRACKER_TITLE' => $ticket_info['tracker_title'], + 'CATEGORY_TITLE' => $ticket_info['category_title'], - 'PAGINATION' => $pagination, - )); + 'TICKET_TITLE' => $ticket_info['ticket_title'], + 'TICKET_DESCRIPTION' => $ticket_info['ticket_description'], + 'TICKET_DATE' => $user->format_date($ticket_info['ticket_time']), + 'TICKET_AUTHOR' => get_username_string('full', $ticket_info['ticket_author'], $ticket_info['username'], $ticket_info['user_colour']), + 'TICKET_STATUS' => $ticket_info['status_title'], - // @todo Commenting stuff + 'PAGINATION' => $pagination, + )); - break; + break; - case 'add_ticket': + case 'new': - if (isset($_POST['submit'])) - { - // Check data and insert + if (isset($_POST['submit'])) + { + // Check data and insert + } + + // General tracker data + $sql = 'SELECT ty.tracker_type_title + FROM ' . PROJECT_TRACKER_TYPES_TABLE . ' ty, ' . PROJECT_TRACKERS_TABLE . " tr + WHERE ty.tracker_type_id = tr.tracker_type + AND tr.tracker_id = $tracker_id"; + $result = $db->sql_query($sql, 604800); + $tracker_title = $db->sql_fetchfield('tracker_type_title', false, $result); + $db->sql_freeresult($result); + + // Get category dropdown + $sql = 'SELECT * + FROM ' . PROJECT_TRACKER_CATEGORIES_TABLE . " + WHERE tracker_id = $tracker_id" . ((!$is_author) ? ' AND is_private = 0' : ''); + $result = $db->sql_query($sql, 604800); + + while ($row = $db->sql_fetchrow($result)) + { + $category_select[$row['category_id']] = $row['category_title']; + } + $db->sql_freeresult($result); + + $template->assign_vars(array( + 'PROJECT_TITLE' => $project_title, + 'TRACKER_TITLE' => $tracker_title, + + 'CATEGORIES_SELECT' => project_build_select($category_select, $category_id), + 'U_ACTION' => $this->u_action . '&action=new', + )); + + break; + + case 'edit': + + + break; + + case 'delete': + + + break; } - // General tracker data - $sql = 'SELECT ty.tracker_type_title - FROM ' . PROJECT_TRACKER_TYPES_TABLE . ' ty, ' . PROJECT_TRACKERS_TABLE . " tr - WHERE ty.tracker_type_id = tr.tracker_type - AND tr.tracker_id = $tracker_id"; - $result = $db->sql_query($sql, 604800); - $tracker_title = $db->sql_fetchfield('tracker_type_title', false, $result); - $db->sql_freeresult($result); + break; - // Get category dropdown - $sql = 'SELECT * - FROM ' . PROJECT_TRACKER_CATEGORIES_TABLE . " - WHERE tracker_id = $tracker_id" . ((!$is_author) ? ' AND is_private = 0' : ''); - $result = $db->sql_query($sql, 604800); + case 'comment': - while ($row = $db->sql_fetchrow($result)) + + break; + + // Manage trackers + case 'manage': + + switch ($action) { - $category_select[$row['category_id']] = $row['category_title']; - } - $db->sql_freeresult($result); + default: - $template->assign_vars(array( - 'PROJECT_TITLE' => $project_title, - 'TRACKER_TITLE' => $tracker_title, - 'S_CATEGORIES_SELECT' => project_build_select($category_select, $category_id), - )); + break; + case 'add': + + + break; + + case 'edit': + + + break; + + case 'delete': + + + break; + } + break; - - /** - * @todo Add modes: - * - add ticket - * - manage tickets - * - more... - */ } } } Modified: trunk/phpbb3/root/styles/prosilver/template/project_create.html =================================================================== --- trunk/phpbb3/root/styles/prosilver/template/project_create.html 2008-05-04 00:34:46 UTC (rev 276) +++ trunk/phpbb3/root/styles/prosilver/template/project_create.html 2008-05-05 19:20:09 UTC (rev 277) @@ -11,8 +11,8 @@ <!-- IF ERROR --><dl><dd class="error">{ERROR}</dd></dl><!-- ENDIF --> <dl> <dt><label for="project_category">{L_PROJECT_CATEGORY}</label></dt> - <dd><select tabindex="1" name="project_category" id="project_category" title="{L_PROJECT_CATEGORY}"><!-- BEGIN category --> - <option value="{category.CATEGORY_ID}"<!-- IF category.CATEGORY_ID == CATEGORY_ID --> selected="selected"<!-- ENDIF -->>{category.CATEGORY_TITLE}</option><!-- END --> + <dd><select tabindex="1" name="project_category" id="project_category" title="{L_PROJECT_CATEGORY}"> + {CATEGORY_SELECT} </select></dd> </dl> <dl> @@ -29,8 +29,8 @@ </dl> <dl> <dt><label for="project_license">{L_PROJECT_LICENSE}:</label></dt> - <dd><select tabindex="5" name="project_license" id="project_license" title="{L_PROJECT_LICENSE}" onchange="set_description(this.value)"><!-- BEGIN license --> - <option value="{license.LICENSE_ID}"<!-- IF (license.S_STANDARD && not PROJECT_LICENSE) || license.LICENSE_ID == PROJECT_LICENSE --> selected="selected"<!-- ENDIF -->>{license.LICENSE_TITLE}</option><!-- END --> + <dd><select tabindex="5" name="project_license" id="project_license" title="{L_PROJECT_LICENSE}" onchange="set_description(this.value)"> + {LICENSE_SELECT} </select> <!--noscript><input type="submit" name="license_description" value="{L_PROJECT_DISPLAY_LICENSE_DESC}" class="button2" /></noscript> <span id="license_description">{LICENSE_DESCRIPTION}</span--></dd> This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |